meta-openembedded/meta-python/recipes-devtools/python/python3-posix-ipc/0001-build_support-fix-cross-compilation-error-when-CC-is.patch
Haixiao Yan f2dc694c52
python3-posix-ipc: upgrade 1.2.0 -> 1.3.0
Remove following patches, they have been fixed since 1.3.0.
0001-build_support-use-source-filename-instead-of-foo-for.patch
0002-build_support-handle-empty-max_priority-value-as-Non.patch
0003-build_support-use-does_build_succeed-in-compile_and_.patch

Backport a patch to fix dicsovery fails when CC contains flags

License-Update: update copyright statements to include contributors

Signed-off-by: Haixiao Yan <haixiao.yan.cn@windriver.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2025-08-13 12:25:37 -07:00

54 lines
2.1 KiB
Diff

From 01134093c9150248f9ea8890a41e922159593a7f Mon Sep 17 00:00:00 2001
From: Haixiao Yan <haixiao.yan.cn@windriver.com>
Date: Fri, 8 Aug 2025 19:30:16 +0800
Subject: [PATCH] build_support: fix cross-compilation error when CC is a
multi-part command
Fix the following error when cross-compiling with an environment-defined CC
that includes flags:
FileNotFoundError: [Errno 2] No such file or directory: 'x86_64-wrs-linux-gcc
-m64 -march=nehalem -mtune=generic -mfpmath=sse -msse4.2
-fstack-protector-strong -O2 -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security
-Werror=format-security
--sysroot=/build-1.3.0/tmp/work/corei7-64-wrs-linux/python3-posix-ipc/1.3.0/recipe-sysroot'
This happened because the CC environment variable was treated as a single
string instead of being split into arguments. The fix uses shlex.split() to
correctly parse CC into a list of compiler and flags, and then unpacks it when
forming the subprocess command.
Upstream-Status: Backport [https://github.com/osvenskan/posix_ipc/commit/0113409]
Signed-off-by: Haixiao Yan <haixiao.yan.cn@windriver.com>
---
build_support/discover_system_info.py | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/build_support/discover_system_info.py b/build_support/discover_system_info.py
index d1b171e4f602..1c3741f5577c 100644
--- a/build_support/discover_system_info.py
+++ b/build_support/discover_system_info.py
@@ -1,6 +1,7 @@
import subprocess
import platform
import os
+import shlex
# Set these to None for compile/link debugging or subprocess.PIPE to silence
# compiler warnings and errors.
@@ -49,7 +50,9 @@ def does_build_succeed(filename, linker_options=""):
# - 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 = [os.getenv("CC", "cc"),
+ cc = os.getenv("CC", "cc")
+ cmd = [
+ *shlex.split(cc),
'-Wall',
'-o',
f'./build_support/src/{filename[:-2]}',
--
2.34.1