diff options
Diffstat (limited to 'meta-openembedded/meta-python/recipes-devtools/python/python3-posix-ipc')
4 files changed, 161 insertions, 45 deletions
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-posix-ipc/0001-Use-default-cc-from-environment-variable.patch b/meta-openembedded/meta-python/recipes-devtools/python/python3-posix-ipc/0001-Use-default-cc-from-environment-variable.patch deleted file mode 100644 index 86829869a2..0000000000 --- a/meta-openembedded/meta-python/recipes-devtools/python/python3-posix-ipc/0001-Use-default-cc-from-environment-variable.patch +++ /dev/null @@ -1,45 +0,0 @@ -From 2db4d9974052e28f25252b3204a73dd25de1dd89 Mon Sep 17 00:00:00 2001 -From: Gyorgy Sarvari <skandigraun@gmail.com> -Date: Sat, 25 Jan 2025 13:09:00 +0100 -Subject: [PATCH] Use default cc from environment variable - -In case the system uses a custom c compiler instead of cc -(e.g. for cross-compiling), probing system features can -fail or can misidentify the features due to the incorrect C compiler. - -Instead of using only "cc" for probing features, check if the CC environment -variable has a custom C compiler set. If it is present, use that instead of -"cc". If it is not present, fall back to "cc". - -Upstream-Status: Submitted [https://github.com/osvenskan/posix_ipc/pull/56] ---- - prober.py | 7 +++++-- - 1 file changed, 5 insertions(+), 2 deletions(-) - -diff --git a/prober.py b/prober.py -index 48432b7..ace6d3b 100644 ---- a/prober.py -+++ b/prober.py -@@ -52,14 +52,17 @@ def print_bad_news(value_name, default): - def does_build_succeed(filename, linker_options=""): - # Utility function that returns True if the file compiles and links - # successfully, False otherwise. -- # Two things to note here -- -+ # Three things to note here -- - # - If there's a linker option like -lrt, it needs to come *after* - # the specification of the C file or linking will fail on Ubuntu 11.10 - # (maybe because of the gcc version?) - # - Some versions of Linux place the sem_xxx() functions in libpthread. - # Rather than testing whether or not it's needed, I just specify it - # everywhere since it's harmless to specify it when it's not needed. -- cmd = "cc -Wall -o ./prober/foo ./prober/%s %s -lpthread" % (filename, linker_options) -+ # - In case the used C compiler is not cc, take it from the CC environment -+ # variable -+ cc = os.getenv("CC", "cc") -+ cmd = "%s -Wall -o ./prober/foo ./prober/%s %s -lpthread" % (cc, filename, linker_options) - - p = subprocess.Popen(cmd, shell=True, stdout=STDOUT, stderr=STDERR) - --- -2.48.1 - diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-posix-ipc/0001-build_support-use-source-filename-instead-of-foo-for.patch b/meta-openembedded/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-openembedded/meta-python/recipes-devtools/python/python3-posix-ipc/0001-build_support-use-source-filename-instead-of-foo-for.patch @@ -0,0 +1,50 @@ +From 09cfcf7de2aab873a13949d5a128ccfb9e54732d Mon Sep 17 00:00:00 2001 +From: Martin Jansa <martin.jansa@gmail.com> +Date: Mon, 5 May 2025 08:15:37 +0200 +Subject: [PATCH] build_support: use source filename instead of 'foo' for + discover tests + +* helps when debugging the issues +* use the same order of CC arguments in compile_and_run and + does_build_succeed just for consistency +* use pthread in both compile_and_run and does_build_succeed functions + it was added only to does_build_succeed in 5ec39f7af8cfd8525d225b1302fa93f7133b3849 + not sure if it was intentional + +Signed-off-by: Martin Jansa <martin.jansa@gmail.com> +Upstream-Status: Submitted [https://github.com/osvenskan/posix_ipc/pull/77] +--- + build_support/discover_system_info.py | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/build_support/discover_system_info.py b/build_support/discover_system_info.py +index bc4d174..6d059d9 100644 +--- a/build_support/discover_system_info.py ++++ b/build_support/discover_system_info.py +@@ -60,7 +60,7 @@ def does_build_succeed(filename, linker_options=""): + # Rather than testing whether or not it's needed, I just specify it + # everywhere since it's harmless to specify it when it's not needed. + cc = os.getenv("CC", "cc") +- cmd = "%s -Wall -o ./build_support/src/foo ./build_support/src/%s %s -lpthread" % (cc, filename, linker_options) ++ cmd = "%s -Wall -o ./build_support/src/%s ./build_support/src/%s %s -lpthread" % (cc, filename[:-2], filename, linker_options) + + p = subprocess.Popen(cmd, shell=True, stdout=STDOUT, stderr=STDERR) + +@@ -73,7 +73,7 @@ def compile_and_run(filename, linker_options=""): + # Utility function that returns the stdout output from running the + # compiled source file; None if the compile fails. + cc = os.getenv("CC", "cc") +- cmd = "%s -Wall -o ./build_support/src/foo %s ./build_support/src/%s" % (cc, linker_options, filename) ++ cmd = "%s -Wall -o ./build_support/src/%s ./build_support/src/%s %s -lpthread" % (cc, filename[:-2], filename, linker_options) + + p = subprocess.Popen(cmd, shell=True, stdout=STDOUT, stderr=STDERR) + +@@ -82,7 +82,7 @@ def compile_and_run(filename, linker_options=""): + return None + + try: +- s = subprocess.Popen(["./build_support/src/foo"], ++ s = subprocess.Popen(["./build_support/src/%s" % filename[:-2]], + stdout=subprocess.PIPE).communicate()[0] + return s.strip().decode() + except Exception: diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-posix-ipc/0002-build_support-handle-empty-max_priority-value-as-Non.patch b/meta-openembedded/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-openembedded/meta-python/recipes-devtools/python/python3-posix-ipc/0002-build_support-handle-empty-max_priority-value-as-Non.patch @@ -0,0 +1,49 @@ +From 8fc46d871639dbe799f6ff0a61b046412ef5dcc6 Mon Sep 17 00:00:00 2001 +From: Martin Jansa <martin.jansa@gmail.com> +Date: Mon, 5 May 2025 08:16:30 +0200 +Subject: [PATCH] build_support: handle empty max_priority value as None +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +When cross-compiling these tests they fail when the host cannot execute +the binaries built for target. + +On my local ubuntu-22.04 docker container running +build_support/src/sniff_mq_prio_max results in: +posix_ipc-1.2.0 $ ./build_support/src/foo +bash: ./build_support/src/foo: cannot execute binary file: Exec format error +which triggers the Exception in compile_and_run and returns None + +While on some other ubuntu-22.04 containers I see: +posix_ipc-1.2.0$ ./build_support/src/sniff_mq_prio_max +/usr/lib/ld-linux-aarch64.so.1: No such file or directory + +and the compile_and_run returns +b'' +which then causes +posix_ipc-1.2.0/build_support/discover_system_info.py", line 244, in sniff_mq_prio_max + if max_priority < 0: + ^^^^^^^^^^^^^^^^ + +Handle the empty value the same as None to avoid this. + +Signed-off-by: Martin Jansa <martin.jansa@gmail.com> +Upstream-Status: Submitted [https://github.com/osvenskan/posix_ipc/pull/77] +--- + build_support/discover_system_info.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/build_support/discover_system_info.py b/build_support/discover_system_info.py +index 6d059d9..f8a3c83 100644 +--- a/build_support/discover_system_info.py ++++ b/build_support/discover_system_info.py +@@ -223,7 +223,7 @@ def sniff_mq_prio_max(): + except ValueError: + max_priority = None + +- if max_priority is None: ++ if not max_priority: + # Looking for a #define didn't work; ask sysconf() instead. + # Note that sys.sysconf_names doesn't exist under Cygwin. + if hasattr(os, "sysconf_names") and \ diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-posix-ipc/0003-build_support-use-does_build_succeed-in-compile_and_.patch b/meta-openembedded/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-openembedded/meta-python/recipes-devtools/python/python3-posix-ipc/0003-build_support-use-does_build_succeed-in-compile_and_.patch @@ -0,0 +1,62 @@ +From 760374e778fc28193cfea1416a739e206f9201c6 Mon Sep 17 00:00:00 2001 +From: Martin Jansa <martin.jansa@gmail.com> +Date: Mon, 5 May 2025 08:28:56 +0200 +Subject: [PATCH] build_support: use does_build_succeed in compile_and_run + +* avoid the duplication and building the sniff_mq_prio_max.c twice + +Signed-off-by: Martin Jansa <martin.jansa@gmail.com> +Upstream-Status: Submitted [https://github.com/osvenskan/posix_ipc/pull/77] +--- + build_support/discover_system_info.py | 27 ++++++++++----------------- + 1 file changed, 10 insertions(+), 17 deletions(-) + +diff --git a/build_support/discover_system_info.py b/build_support/discover_system_info.py +index f8a3c83..f6e6c8c 100644 +--- a/build_support/discover_system_info.py ++++ b/build_support/discover_system_info.py +@@ -72,22 +72,17 @@ def does_build_succeed(filename, linker_options=""): + def compile_and_run(filename, linker_options=""): + # Utility function that returns the stdout output from running the + # compiled source file; None if the compile fails. +- cc = os.getenv("CC", "cc") +- cmd = "%s -Wall -o ./build_support/src/%s ./build_support/src/%s %s -lpthread" % (cc, filename[:-2], filename, linker_options) +- +- p = subprocess.Popen(cmd, shell=True, stdout=STDOUT, stderr=STDERR) +- +- if p.wait(): ++ if does_build_succeed(filename, linker_options=""): ++ try: ++ s = subprocess.Popen(["./build_support/src/%s" % filename[:-2]], ++ stdout=subprocess.PIPE).communicate()[0] ++ return s.strip().decode() ++ except Exception: ++ # execution resulted in an error ++ return None ++ else: + # uh-oh, compile failed + return None +- +- try: +- s = subprocess.Popen(["./build_support/src/%s" % filename[:-2]], +- stdout=subprocess.PIPE).communicate()[0] +- return s.strip().decode() +- except Exception: +- # execution resulted in an error +- return None + + + def get_sysctl_value(name): +@@ -211,11 +206,9 @@ def sniff_mq_prio_max(): + # ref: http://www.opengroup.org/onlinepubs/009695399/basedefs/limits.h.html + DEFAULT_PRIORITY_MAX = 32 + +- max_priority = None + # OS X up to and including 10.8 doesn't support POSIX messages queues and + # doesn't define MQ_PRIO_MAX. Maybe this aggravation will cease in 10.9? +- if does_build_succeed("sniff_mq_prio_max.c"): +- max_priority = compile_and_run("sniff_mq_prio_max.c") ++ max_priority = compile_and_run("sniff_mq_prio_max.c") + + if max_priority: + try: |
