2022. 05. 18. 17:55 keltezéssel, Khem Raj írta:
On 5/18/22 6:28 AM, Zoltan Boszormenyi via lists.openembedded.org wrote:
2022. 05. 18. 14:32 keltezéssel, Ross Burton írta:
I left a comment on the PR you filed, but the triplet thing seems to be a red herring
as the old code uses ‘in’ so a compiler called arm-poky-linux-gcc would still be
detected as gcc.
The "in" is also a problem. Any command can have a
"gcc" substring somewhere in the middle.
It's important that the command name ends in the pattern.
Maybe compiler_name.endswith() would be a better choice
but a regex is less typing and more compact then spelling
out compiler_name.endswith() 4 times on the same line.
Sneaking clang under is_gcc() garb seems a bit dubious to me. Perhaps check if is_gcc is
meant to select some gcc'ness. Then you are better of detecting clang separately.
Python core has this particular quirk for some reason.
I thought is wasn't a big deal because of this.
But for this particular problem (passing "-Wl,-Rpath"
vs "-Rpath" to the compiler), the upstream distutils
has a different solution. It simply handles every other
system where GCC is not a thing then does -Wl,-R for
the remaining systems unconditionally.
It's just a matter of time when setuptools syncs with distutils.
If this patch is just extending the logic to consider clang as gcc, then that should be
called out explicitly
Ross
*From: *[email protected]
<[email protected]> on behalf of Zoltan Boszormenyi via
lists.openembedded.org <[email protected]>
*Date: *Wednesday, 18 May 2022 at 08:16
*To: *[email protected]
<[email protected]>
*Cc: *Zoltán Böszörményi <[email protected]>
*Subject: *[OE-core] [PATCH] python3-setuptools: Fix building python modules
using cython
From: Zoltán Böszörményi <[email protected]>
The function _is_gcc() was not taking a machine triplet into
account. Also handle clang and clang++ because they also
want the rpath option via -Wl,-R instead of just -R.
Signed-off-by: Zoltán Böszörményi <[email protected]>
---
...cross-compiler-prefixes-and-handle-c.patch | 31 +++++++++++++++++++
.../python/python3-setuptools_59.5.0.bb | 1 +
2 files changed, 32 insertions(+)
create mode 100644
meta/recipes-devtools/python/python3-setuptools/0001-Fix-_is_gcc-for-cross-compiler-prefixes-and-handle-c.patch
diff --git
a/meta/recipes-devtools/python/python3-setuptools/0001-Fix-_is_gcc-for-cross-compiler-prefixes-and-handle-c.patch
b/meta/recipes-devtools/python/python3-setuptools/0001-Fix-_is_gcc-for-cross-compiler-prefixes-and-handle-c.patch
new file mode 100644
index 0000000000..7f91d8e6cd
--- /dev/null
+++
b/meta/recipes-devtools/python/python3-setuptools/0001-Fix-_is_gcc-for-cross-compiler-prefixes-and-handle-c.patch
@@ -0,0 +1,31 @@
+From 695800847eb519209c2b45e26fd65d3117a4efcd Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Zolt=C3=A1n=20B=C3=B6sz=C3=B6rm=C3=A9nyi?=
+ <[email protected]>
+Date: Wed, 18 May 2022 06:51:22 +0200
+Subject: [PATCH] Fix _is_gcc() for cross-compiler prefixes and handle
+ clang and clang++
+
+Upstream-Status: Submitted [https://github.com/pypa/setuptools/pull/3326
<https://github.com/pypa/setuptools/pull/3326>]
+
+Signed-off-by: Zoltán Böszörményi <[email protected]>
+---
+ setuptools/_distutils/unixccompiler.py | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/setuptools/_distutils/unixccompiler.py
b/setuptools/_distutils/unixccompiler.py
+index 715408f5..3a4d642e 100644
+--- a/setuptools/_distutils/unixccompiler.py
++++ b/setuptools/_distutils/unixccompiler.py
+@@ -260,7 +260,8 @@ class UnixCCompiler(CCompiler):
+ return "-L" + dir
+
+ def _is_gcc(self, compiler_name):
+- return "gcc" in compiler_name or "g++" in compiler_name
++ cnpat = re.compile('.*(gcc|g\+\+|clang|clang\+\+)$')
++ return not (cnpat.match(compiler_name) is None)
+
+ def runtime_library_dir_option(self, dir):
+ # XXX Hackish, at the very least. See Python bug #445902:
+--
+2.36.1
+
diff --git a/meta/recipes-devtools/python/python3-setuptools_59.5.0.bb
b/meta/recipes-devtools/python/python3-setuptools_59.5.0.bb
index f2810e18d3..20ecf5223d 100644
--- a/meta/recipes-devtools/python/python3-setuptools_59.5.0.bb
+++ b/meta/recipes-devtools/python/python3-setuptools_59.5.0.bb
@@ -11,6 +11,7 @@ SRC_URI:append:class-native = "
file://0001-conditionally-do-not-fetch-code-by-e
<file:///0001-conditionally-do-not-fetch-code-by-e>
SRC_URI += "\
file://0001-change-shebang-to-python3.patch
<file:///0001-change-shebang-to-python3.patch> \
file://0001-_distutils-sysconfig-append-STAGING_LIBDIR-python-sy.patch
<file:///0001-_distutils-sysconfig-append-STAGING_LIBDIR-python-sy.patch> \
+ file://0001-Fix-_is_gcc-for-cross-compiler-prefixes-and-handle-c.patch
<file:///0001-Fix-_is_gcc-for-cross-compiler-prefixes-and-handle-c.patch> \
"
SRC_URI[sha256sum] =
"d144f85102f999444d06f9c0e8c737fd0194f10f2f7e5fdb77573f6e2fa4fad0"
--
2.36.1
IMPORTANT NOTICE: The contents of this email and any attachments are confidential and
may also be privileged. If you are not the intended recipient, please notify the sender
immediately and do not disclose the contents to any other person, use it for any
purpose, or store or copy the information in any medium. Thank you.
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#165867):
https://lists.openembedded.org/g/openembedded-core/message/165867
Mute This Topic: https://lists.openembedded.org/mt/91181312/21656
Group Owner: [email protected]
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-