All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] python3-setuptools: Fix building python modules using cython
@ 2022-05-18  7:15 Zoltan Boszormenyi
  2022-05-18 12:32 ` [OE-core] " Ross Burton
  0 siblings, 1 reply; 5+ messages in thread
From: Zoltan Boszormenyi @ 2022-05-18  7:15 UTC (permalink / raw)
  To: openembedded-core; +Cc: Zoltán Böszörményi

From: Zoltán Böszörményi <zboszor@gmail.com>

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 <zboszor@gmail.com>
---
 ...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?=
+ <zboszor@gmail.com>
+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]
+
+Signed-off-by: Zoltán Böszörményi <zboszor@gmail.com>
+---
+ 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
 SRC_URI += "\
     file://0001-change-shebang-to-python3.patch \
     file://0001-_distutils-sysconfig-append-STAGING_LIBDIR-python-sy.patch \
+    file://0001-Fix-_is_gcc-for-cross-compiler-prefixes-and-handle-c.patch \
 "
 
 SRC_URI[sha256sum] = "d144f85102f999444d06f9c0e8c737fd0194f10f2f7e5fdb77573f6e2fa4fad0"
-- 
2.36.1


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [OE-core] [PATCH] python3-setuptools: Fix building python modules using cython
  2022-05-18  7:15 [PATCH] python3-setuptools: Fix building python modules using cython Zoltan Boszormenyi
@ 2022-05-18 12:32 ` Ross Burton
  2022-05-18 13:28   ` Zoltan Boszormenyi
  0 siblings, 1 reply; 5+ messages in thread
From: Ross Burton @ 2022-05-18 12:32 UTC (permalink / raw)
  To: zboszor, openembedded-core; +Cc: Zoltán Böszörményi

[-- Attachment #1: Type: text/plain, Size: 4303 bytes --]

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.

If this patch is just extending the logic to consider clang as gcc, then that should be called out explicitly.

Ross

From: openembedded-core@lists.openembedded.org <openembedded-core@lists.openembedded.org> on behalf of Zoltan Boszormenyi via lists.openembedded.org <zboszor=pr.hu@lists.openembedded.org>
Date: Wednesday, 18 May 2022 at 08:16
To: openembedded-core@lists.openembedded.org <openembedded-core@lists.openembedded.org>
Cc: Zoltán Böszörményi <zboszor@gmail.com>
Subject: [OE-core] [PATCH] python3-setuptools: Fix building python modules using cython
From: Zoltán Böszörményi <zboszor@gmail.com>

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 <zboszor@gmail.com>
---
 ...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?=
+ <zboszor@gmail.com>
+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]
+
+Signed-off-by: Zoltán Böszörményi <zboszor@gmail.com>
+---
+ 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.

[-- Attachment #2: Type: text/html, Size: 7430 bytes --]

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [OE-core] [PATCH] python3-setuptools: Fix building python modules using cython
  2022-05-18 12:32 ` [OE-core] " Ross Burton
@ 2022-05-18 13:28   ` Zoltan Boszormenyi
  2022-05-18 15:55     ` Khem Raj
  0 siblings, 1 reply; 5+ messages in thread
From: Zoltan Boszormenyi @ 2022-05-18 13:28 UTC (permalink / raw)
  To: Ross Burton, openembedded-core; +Cc: Zoltán Böszörményi

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.

> 
> If this patch is just extending the logic to consider clang as gcc, then that should be 
> called out explicitly.
> 
> Ross
> 
> *From: *openembedded-core@lists.openembedded.org 
> <openembedded-core@lists.openembedded.org> on behalf of Zoltan Boszormenyi via 
> lists.openembedded.org <zboszor=pr.hu@lists.openembedded.org>
> *Date: *Wednesday, 18 May 2022 at 08:16
> *To: *openembedded-core@lists.openembedded.org <openembedded-core@lists.openembedded.org>
> *Cc: *Zoltán Böszörményi <zboszor@gmail.com>
> *Subject: *[OE-core] [PATCH] python3-setuptools: Fix building python modules using cython
> 
> From: Zoltán Böszörményi <zboszor@gmail.com>
> 
> 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 <zboszor@gmail.com>
> ---
>   ...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?=
> + <zboszor@gmail.com>
> +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 <zboszor@gmail.com>
> +---
> + 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.
> 
> 
> 
> 


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [OE-core] [PATCH] python3-setuptools: Fix building python modules using cython
  2022-05-18 13:28   ` Zoltan Boszormenyi
@ 2022-05-18 15:55     ` Khem Raj
  2022-05-19  8:25       ` Zoltan Boszormenyi
  0 siblings, 1 reply; 5+ messages in thread
From: Khem Raj @ 2022-05-18 15:55 UTC (permalink / raw)
  To: zboszor, Ross Burton, openembedded-core
  Cc: Zoltán Böszörményi



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.

> 
>>
>> If this patch is just extending the logic to consider clang as gcc, 
>> then that should be called out explicitly

>>
>> Ross
>>
>> *From: *openembedded-core@lists.openembedded.org 
>> <openembedded-core@lists.openembedded.org> on behalf of Zoltan 
>> Boszormenyi via lists.openembedded.org 
>> <zboszor=pr.hu@lists.openembedded.org>
>> *Date: *Wednesday, 18 May 2022 at 08:16
>> *To: *openembedded-core@lists.openembedded.org 
>> <openembedded-core@lists.openembedded.org>
>> *Cc: *Zoltán Böszörményi <zboszor@gmail.com>
>> *Subject: *[OE-core] [PATCH] python3-setuptools: Fix building python 
>> modules using cython
>>
>> From: Zoltán Böszörményi <zboszor@gmail.com>
>>
>> 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 <zboszor@gmail.com>
>> ---
>>   ...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?=
>> + <zboszor@gmail.com>
>> +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 <zboszor@gmail.com>
>> +---
>> + 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.
>>
>>
>>
>>
> 
> 
> 
> 
> 

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [OE-core] [PATCH] python3-setuptools: Fix building python modules using cython
  2022-05-18 15:55     ` Khem Raj
@ 2022-05-19  8:25       ` Zoltan Boszormenyi
  0 siblings, 0 replies; 5+ messages in thread
From: Zoltan Boszormenyi @ 2022-05-19  8:25 UTC (permalink / raw)
  To: Khem Raj, Ross Burton, openembedded-core
  Cc: Zoltán Böszörményi

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: *openembedded-core@lists.openembedded.org 
>>> <openembedded-core@lists.openembedded.org> on behalf of Zoltan Boszormenyi via 
>>> lists.openembedded.org <zboszor=pr.hu@lists.openembedded.org>
>>> *Date: *Wednesday, 18 May 2022 at 08:16
>>> *To: *openembedded-core@lists.openembedded.org <openembedded-core@lists.openembedded.org>
>>> *Cc: *Zoltán Böszörményi <zboszor@gmail.com>
>>> *Subject: *[OE-core] [PATCH] python3-setuptools: Fix building python modules using cython
>>>
>>> From: Zoltán Böszörményi <zboszor@gmail.com>
>>>
>>> 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 <zboszor@gmail.com>
>>> ---
>>>   ...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?=
>>> + <zboszor@gmail.com>
>>> +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 <zboszor@gmail.com>
>>> +---
>>> + 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.
>>>
>>>
>>>
>>>
>>
>>
>>
>>
>>
> 
> 
> 
> 


^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2022-05-19  8:25 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-05-18  7:15 [PATCH] python3-setuptools: Fix building python modules using cython Zoltan Boszormenyi
2022-05-18 12:32 ` [OE-core] " Ross Burton
2022-05-18 13:28   ` Zoltan Boszormenyi
2022-05-18 15:55     ` Khem Raj
2022-05-19  8:25       ` Zoltan Boszormenyi

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.