diff options
Diffstat (limited to 'meta-python/recipes-devtools/python/python3-posix-ipc')
3 files changed, 161 insertions, 0 deletions
diff --git a/meta-python/recipes-devtools/python/python3-posix-ipc/0001-build_support-use-source-filename-instead-of-foo-for.patch b/meta-python/recipes-devtools/python/python3-posix-ipc/0001-build_support-use-source-filename-instead-of-foo-for.patch new file mode 100644 index 0000000000..8bb7267086 --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-posix-ipc/0001-build_support-use-source-filename-instead-of-foo-for.patch | |||
| @@ -0,0 +1,50 @@ | |||
| 1 | From 09cfcf7de2aab873a13949d5a128ccfb9e54732d Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Martin Jansa <martin.jansa@gmail.com> | ||
| 3 | Date: Mon, 5 May 2025 08:15:37 +0200 | ||
| 4 | Subject: [PATCH] build_support: use source filename instead of 'foo' for | ||
| 5 | discover tests | ||
| 6 | |||
| 7 | * helps when debugging the issues | ||
| 8 | * use the same order of CC arguments in compile_and_run and | ||
| 9 | does_build_succeed just for consistency | ||
| 10 | * use pthread in both compile_and_run and does_build_succeed functions | ||
| 11 | it was added only to does_build_succeed in 5ec39f7af8cfd8525d225b1302fa93f7133b3849 | ||
| 12 | not sure if it was intentional | ||
| 13 | |||
| 14 | Signed-off-by: Martin Jansa <martin.jansa@gmail.com> | ||
| 15 | Upstream-Status: Submitted [https://github.com/osvenskan/posix_ipc/pull/77] | ||
| 16 | --- | ||
| 17 | build_support/discover_system_info.py | 6 +++--- | ||
| 18 | 1 file changed, 3 insertions(+), 3 deletions(-) | ||
| 19 | |||
| 20 | diff --git a/build_support/discover_system_info.py b/build_support/discover_system_info.py | ||
| 21 | index bc4d174..6d059d9 100644 | ||
| 22 | --- a/build_support/discover_system_info.py | ||
| 23 | +++ b/build_support/discover_system_info.py | ||
| 24 | @@ -60,7 +60,7 @@ def does_build_succeed(filename, linker_options=""): | ||
| 25 | # Rather than testing whether or not it's needed, I just specify it | ||
| 26 | # everywhere since it's harmless to specify it when it's not needed. | ||
| 27 | cc = os.getenv("CC", "cc") | ||
| 28 | - cmd = "%s -Wall -o ./build_support/src/foo ./build_support/src/%s %s -lpthread" % (cc, filename, linker_options) | ||
| 29 | + cmd = "%s -Wall -o ./build_support/src/%s ./build_support/src/%s %s -lpthread" % (cc, filename[:-2], filename, linker_options) | ||
| 30 | |||
| 31 | p = subprocess.Popen(cmd, shell=True, stdout=STDOUT, stderr=STDERR) | ||
| 32 | |||
| 33 | @@ -73,7 +73,7 @@ def compile_and_run(filename, linker_options=""): | ||
| 34 | # Utility function that returns the stdout output from running the | ||
| 35 | # compiled source file; None if the compile fails. | ||
| 36 | cc = os.getenv("CC", "cc") | ||
| 37 | - cmd = "%s -Wall -o ./build_support/src/foo %s ./build_support/src/%s" % (cc, linker_options, filename) | ||
| 38 | + cmd = "%s -Wall -o ./build_support/src/%s ./build_support/src/%s %s -lpthread" % (cc, filename[:-2], filename, linker_options) | ||
| 39 | |||
| 40 | p = subprocess.Popen(cmd, shell=True, stdout=STDOUT, stderr=STDERR) | ||
| 41 | |||
| 42 | @@ -82,7 +82,7 @@ def compile_and_run(filename, linker_options=""): | ||
| 43 | return None | ||
| 44 | |||
| 45 | try: | ||
| 46 | - s = subprocess.Popen(["./build_support/src/foo"], | ||
| 47 | + s = subprocess.Popen(["./build_support/src/%s" % filename[:-2]], | ||
| 48 | stdout=subprocess.PIPE).communicate()[0] | ||
| 49 | return s.strip().decode() | ||
| 50 | except Exception: | ||
diff --git a/meta-python/recipes-devtools/python/python3-posix-ipc/0002-build_support-handle-empty-max_priority-value-as-Non.patch b/meta-python/recipes-devtools/python/python3-posix-ipc/0002-build_support-handle-empty-max_priority-value-as-Non.patch new file mode 100644 index 0000000000..54c8ddaba7 --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-posix-ipc/0002-build_support-handle-empty-max_priority-value-as-Non.patch | |||
| @@ -0,0 +1,49 @@ | |||
| 1 | From 8fc46d871639dbe799f6ff0a61b046412ef5dcc6 Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Martin Jansa <martin.jansa@gmail.com> | ||
| 3 | Date: Mon, 5 May 2025 08:16:30 +0200 | ||
| 4 | Subject: [PATCH] build_support: handle empty max_priority value as None | ||
| 5 | MIME-Version: 1.0 | ||
| 6 | Content-Type: text/plain; charset=UTF-8 | ||
| 7 | Content-Transfer-Encoding: 8bit | ||
| 8 | |||
| 9 | When cross-compiling these tests they fail when the host cannot execute | ||
| 10 | the binaries built for target. | ||
| 11 | |||
| 12 | On my local ubuntu-22.04 docker container running | ||
| 13 | build_support/src/sniff_mq_prio_max results in: | ||
| 14 | posix_ipc-1.2.0 $ ./build_support/src/foo | ||
| 15 | bash: ./build_support/src/foo: cannot execute binary file: Exec format error | ||
| 16 | which triggers the Exception in compile_and_run and returns None | ||
| 17 | |||
| 18 | While on some other ubuntu-22.04 containers I see: | ||
| 19 | posix_ipc-1.2.0$ ./build_support/src/sniff_mq_prio_max | ||
| 20 | /usr/lib/ld-linux-aarch64.so.1: No such file or directory | ||
| 21 | |||
| 22 | and the compile_and_run returns | ||
| 23 | b'' | ||
| 24 | which then causes | ||
| 25 | posix_ipc-1.2.0/build_support/discover_system_info.py", line 244, in sniff_mq_prio_max | ||
| 26 | if max_priority < 0: | ||
| 27 | ^^^^^^^^^^^^^^^^ | ||
| 28 | |||
| 29 | Handle the empty value the same as None to avoid this. | ||
| 30 | |||
| 31 | Signed-off-by: Martin Jansa <martin.jansa@gmail.com> | ||
| 32 | Upstream-Status: Submitted [https://github.com/osvenskan/posix_ipc/pull/77] | ||
| 33 | --- | ||
| 34 | build_support/discover_system_info.py | 2 +- | ||
| 35 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
| 36 | |||
| 37 | diff --git a/build_support/discover_system_info.py b/build_support/discover_system_info.py | ||
| 38 | index 6d059d9..f8a3c83 100644 | ||
| 39 | --- a/build_support/discover_system_info.py | ||
| 40 | +++ b/build_support/discover_system_info.py | ||
| 41 | @@ -223,7 +223,7 @@ def sniff_mq_prio_max(): | ||
| 42 | except ValueError: | ||
| 43 | max_priority = None | ||
| 44 | |||
| 45 | - if max_priority is None: | ||
| 46 | + if not max_priority: | ||
| 47 | # Looking for a #define didn't work; ask sysconf() instead. | ||
| 48 | # Note that sys.sysconf_names doesn't exist under Cygwin. | ||
| 49 | if hasattr(os, "sysconf_names") and \ | ||
diff --git a/meta-python/recipes-devtools/python/python3-posix-ipc/0003-build_support-use-does_build_succeed-in-compile_and_.patch b/meta-python/recipes-devtools/python/python3-posix-ipc/0003-build_support-use-does_build_succeed-in-compile_and_.patch new file mode 100644 index 0000000000..b36d1cdb3a --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-posix-ipc/0003-build_support-use-does_build_succeed-in-compile_and_.patch | |||
| @@ -0,0 +1,62 @@ | |||
| 1 | From 760374e778fc28193cfea1416a739e206f9201c6 Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Martin Jansa <martin.jansa@gmail.com> | ||
| 3 | Date: Mon, 5 May 2025 08:28:56 +0200 | ||
| 4 | Subject: [PATCH] build_support: use does_build_succeed in compile_and_run | ||
| 5 | |||
| 6 | * avoid the duplication and building the sniff_mq_prio_max.c twice | ||
| 7 | |||
| 8 | Signed-off-by: Martin Jansa <martin.jansa@gmail.com> | ||
| 9 | Upstream-Status: Submitted [https://github.com/osvenskan/posix_ipc/pull/77] | ||
| 10 | --- | ||
| 11 | build_support/discover_system_info.py | 27 ++++++++++----------------- | ||
| 12 | 1 file changed, 10 insertions(+), 17 deletions(-) | ||
| 13 | |||
| 14 | diff --git a/build_support/discover_system_info.py b/build_support/discover_system_info.py | ||
| 15 | index f8a3c83..f6e6c8c 100644 | ||
| 16 | --- a/build_support/discover_system_info.py | ||
| 17 | +++ b/build_support/discover_system_info.py | ||
| 18 | @@ -72,22 +72,17 @@ def does_build_succeed(filename, linker_options=""): | ||
| 19 | def compile_and_run(filename, linker_options=""): | ||
| 20 | # Utility function that returns the stdout output from running the | ||
| 21 | # compiled source file; None if the compile fails. | ||
| 22 | - cc = os.getenv("CC", "cc") | ||
| 23 | - cmd = "%s -Wall -o ./build_support/src/%s ./build_support/src/%s %s -lpthread" % (cc, filename[:-2], filename, linker_options) | ||
| 24 | - | ||
| 25 | - p = subprocess.Popen(cmd, shell=True, stdout=STDOUT, stderr=STDERR) | ||
| 26 | - | ||
| 27 | - if p.wait(): | ||
| 28 | + if does_build_succeed(filename, linker_options=""): | ||
| 29 | + try: | ||
| 30 | + s = subprocess.Popen(["./build_support/src/%s" % filename[:-2]], | ||
| 31 | + stdout=subprocess.PIPE).communicate()[0] | ||
| 32 | + return s.strip().decode() | ||
| 33 | + except Exception: | ||
| 34 | + # execution resulted in an error | ||
| 35 | + return None | ||
| 36 | + else: | ||
| 37 | # uh-oh, compile failed | ||
| 38 | return None | ||
| 39 | - | ||
| 40 | - try: | ||
| 41 | - s = subprocess.Popen(["./build_support/src/%s" % filename[:-2]], | ||
| 42 | - stdout=subprocess.PIPE).communicate()[0] | ||
| 43 | - return s.strip().decode() | ||
| 44 | - except Exception: | ||
| 45 | - # execution resulted in an error | ||
| 46 | - return None | ||
| 47 | |||
| 48 | |||
| 49 | def get_sysctl_value(name): | ||
| 50 | @@ -211,11 +206,9 @@ def sniff_mq_prio_max(): | ||
| 51 | # ref: http://www.opengroup.org/onlinepubs/009695399/basedefs/limits.h.html | ||
| 52 | DEFAULT_PRIORITY_MAX = 32 | ||
| 53 | |||
| 54 | - max_priority = None | ||
| 55 | # OS X up to and including 10.8 doesn't support POSIX messages queues and | ||
| 56 | # doesn't define MQ_PRIO_MAX. Maybe this aggravation will cease in 10.9? | ||
| 57 | - if does_build_succeed("sniff_mq_prio_max.c"): | ||
| 58 | - max_priority = compile_and_run("sniff_mq_prio_max.c") | ||
| 59 | + max_priority = compile_and_run("sniff_mq_prio_max.c") | ||
| 60 | |||
| 61 | if max_priority: | ||
| 62 | try: | ||
