diff mbox series

[1/2] package/gcc: define _REENTRANT for OpenRISC when -pthread is passed

Message ID 20220118222425.164134-1-fontaine.fabrice@gmail.com
State Accepted
Headers show
Series [1/2] package/gcc: define _REENTRANT for OpenRISC when -pthread is passed | expand

Commit Message

Fabrice Fontaine Jan. 18, 2022, 10:24 p.m. UTC
Patch added by commit eee96b0f0ad224b3e09a9b98c26d056e18f17fd5 on gcc
9.3.0 must also be applied on gcc 10 and 11 to avoid the following build
failure on numerous packages (babeltrace2, pcsc-lite, tpm2-pkcs11,
etc.):

configure:13774: checking whether pthreads work with -pthread
configure:13868: /home/giuliobenetti/autobuild/run/instance-0/output-1/host/bin/or1k-linux-gcc -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64  -Os -g2  -std=gnu99 -pthread -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64  conftest.c   >&5
conftest.c:27:26: error: #error "_REENTRANT must be defined"
   27 | #                        error "_REENTRANT must be defined"
      |                          ^~~~~

It should be noted that external bootlins will have to be rebuilt.

Fixes:
 - http://autobuild.buildroot.org/results/cb58d4fbaeb08d188c2f8bf05ef1604789fa8766
 - http://autobuild.buildroot.org/results/7af9d4b68bd46ed260ed66ba2cc3c9c21482e741
 - http://autobuild.buildroot.org/results/6f926bec146752873f8032b593f0de1cb222ea46

Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
---
 ...TRANT-for-OpenRISC-when-pthread-is-p.patch | 31 +++++++++++++++++++
 ...TRANT-for-OpenRISC-when-pthread-is-p.patch | 31 +++++++++++++++++++
 2 files changed, 62 insertions(+)
 create mode 100644 package/gcc/10.3.0/0005-gcc-define-_REENTRANT-for-OpenRISC-when-pthread-is-p.patch
 create mode 100644 package/gcc/11.2.0/0003-gcc-define-_REENTRANT-for-OpenRISC-when-pthread-is-p.patch

Comments

Thomas Petazzoni Jan. 19, 2022, 7:54 a.m. UTC | #1
Hello Fabrice,

On Tue, 18 Jan 2022 23:24:24 +0100
Fabrice Fontaine <fontaine.fabrice@gmail.com> wrote:

> Patch added by commit eee96b0f0ad224b3e09a9b98c26d056e18f17fd5 on gcc
> 9.3.0 must also be applied on gcc 10 and 11 to avoid the following build
> failure on numerous packages (babeltrace2, pcsc-lite, tpm2-pkcs11,
> etc.):
> 
> configure:13774: checking whether pthreads work with -pthread
> configure:13868: /home/giuliobenetti/autobuild/run/instance-0/output-1/host/bin/or1k-linux-gcc -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64  -Os -g2  -std=gnu99 -pthread -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64  conftest.c   >&5
> conftest.c:27:26: error: #error "_REENTRANT must be defined"
>    27 | #                        error "_REENTRANT must be defined"
>       |                          ^~~~~
> 
> It should be noted that external bootlins will have to be rebuilt.
> 
> Fixes:
>  - http://autobuild.buildroot.org/results/cb58d4fbaeb08d188c2f8bf05ef1604789fa8766
>  - http://autobuild.buildroot.org/results/7af9d4b68bd46ed260ed66ba2cc3c9c21482e741
>  - http://autobuild.buildroot.org/results/6f926bec146752873f8032b593f0de1cb222ea46
> 
> Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>

Wow, this patch still hasn't been accepted in upstream gcc? It's been
submitted a looong time ago I believe.

Thomas
Stafford Horne Jan. 19, 2022, 8:13 a.m. UTC | #2
On Wed, Jan 19, 2022 at 08:54:11AM +0100, Thomas Petazzoni wrote:
> Hello Fabrice,
> 
> On Tue, 18 Jan 2022 23:24:24 +0100
> Fabrice Fontaine <fontaine.fabrice@gmail.com> wrote:
> 
> > Patch added by commit eee96b0f0ad224b3e09a9b98c26d056e18f17fd5 on gcc
> > 9.3.0 must also be applied on gcc 10 and 11 to avoid the following build
> > failure on numerous packages (babeltrace2, pcsc-lite, tpm2-pkcs11,
> > etc.):
> > 
> > configure:13774: checking whether pthreads work with -pthread
> > configure:13868: /home/giuliobenetti/autobuild/run/instance-0/output-1/host/bin/or1k-linux-gcc -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64  -Os -g2  -std=gnu99 -pthread -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64  conftest.c   >&5
> > conftest.c:27:26: error: #error "_REENTRANT must be defined"
> >    27 | #                        error "_REENTRANT must be defined"
> >       |                          ^~~~~
> > 
> > It should be noted that external bootlins will have to be rebuilt.
> > 
> > Fixes:
> >  - http://autobuild.buildroot.org/results/cb58d4fbaeb08d188c2f8bf05ef1604789fa8766
> >  - http://autobuild.buildroot.org/results/7af9d4b68bd46ed260ed66ba2cc3c9c21482e741
> >  - http://autobuild.buildroot.org/results/6f926bec146752873f8032b593f0de1cb222ea46
> > 
> > Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
> 
> Wow, this patch still hasn't been accepted in upstream gcc? It's been
> submitted a looong time ago I believe.

Hello,

I must have missed this one.  It looks good to me I will push it upstream.

-Stafford
Giulio Benetti Jan. 19, 2022, 8:14 a.m. UTC | #3
Hi Thomas, All,

> Il giorno 19 gen 2022, alle ore 08:56, Thomas Petazzoni <thomas.petazzoni@bootlin.com> ha scritto:
> 
> Hello Fabrice,
> 
>> On Tue, 18 Jan 2022 23:24:24 +0100
>> Fabrice Fontaine <fontaine.fabrice@gmail.com> wrote:
>> 
>> Patch added by commit eee96b0f0ad224b3e09a9b98c26d056e18f17fd5 on gcc
>> 9.3.0 must also be applied on gcc 10 and 11 to avoid the following build
>> failure on numerous packages (babeltrace2, pcsc-lite, tpm2-pkcs11,
>> etc.):
>> 
>> configure:13774: checking whether pthreads work with -pthread
>> configure:13868: /home/giuliobenetti/autobuild/run/instance-0/output-1/host/bin/or1k-linux-gcc -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64  -Os -g2  -std=gnu99 -pthread -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64  conftest.c   >&5
>> conftest.c:27:26: error: #error "_REENTRANT must be defined"
>>   27 | #                        error "_REENTRANT must be defined"
>>      |                          ^~~~~
>> 
>> It should be noted that external bootlins will have to be rebuilt.
>> 
>> Fixes:
>> - http://autobuild.buildroot.org/results/cb58d4fbaeb08d188c2f8bf05ef1604789fa8766
>> - http://autobuild.buildroot.org/results/7af9d4b68bd46ed260ed66ba2cc3c9c21482e741
>> - http://autobuild.buildroot.org/results/6f926bec146752873f8032b593f0de1cb222ea46
>> 
>> Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
> 
> Wow, this patch still hasn't been accepted in upstream gcc? It's been
> submitted a looong time ago I believe.

That’s when the new maintainer took over the previous one. I ping him about this so he can commit it. YetAnotherOr1kBug :-)

Best regards
Giulio

> 
> Thomas
> -- 
> Thomas Petazzoni, co-owner and CEO, Bootlin
> Embedded Linux and Kernel engineering and training
> https://bootlin.com
Giulio Benetti Jan. 19, 2022, 8:16 a.m. UTC | #4
Hi Stafford,

> Il giorno 19 gen 2022, alle ore 09:14, Stafford Horne <shorne@gmail.com> ha scritto:
> 
> On Wed, Jan 19, 2022 at 08:54:11AM +0100, Thomas Petazzoni wrote:
>> Hello Fabrice,
>> 
>>> On Tue, 18 Jan 2022 23:24:24 +0100
>>> Fabrice Fontaine <fontaine.fabrice@gmail.com> wrote:
>>> 
>>> Patch added by commit eee96b0f0ad224b3e09a9b98c26d056e18f17fd5 on gcc
>>> 9.3.0 must also be applied on gcc 10 and 11 to avoid the following build
>>> failure on numerous packages (babeltrace2, pcsc-lite, tpm2-pkcs11,
>>> etc.):
>>> 
>>> configure:13774: checking whether pthreads work with -pthread
>>> configure:13868: /home/giuliobenetti/autobuild/run/instance-0/output-1/host/bin/or1k-linux-gcc -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64  -Os -g2  -std=gnu99 -pthread -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64  conftest.c   >&5
>>> conftest.c:27:26: error: #error "_REENTRANT must be defined"
>>>   27 | #                        error "_REENTRANT must be defined"
>>>      |                          ^~~~~
>>> 
>>> It should be noted that external bootlins will have to be rebuilt.
>>> 
>>> Fixes:
>>> - http://autobuild.buildroot.org/results/cb58d4fbaeb08d188c2f8bf05ef1604789fa8766
>>> - http://autobuild.buildroot.org/results/7af9d4b68bd46ed260ed66ba2cc3c9c21482e741
>>> - http://autobuild.buildroot.org/results/6f926bec146752873f8032b593f0de1cb222ea46
>>> 
>>> Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
>> 
>> Wow, this patch still hasn't been accepted in upstream gcc? It's been
>> submitted a looong time ago I believe.
> 
> Hello,
> 
> I must have missed this one.  It looks good to me I will push it upstream.

I’ve just written I would have pinged you soon and you’ve appeared:-)
Better this way!

Kind regards
—-
Giulio Benetti
Benetti Engineering sas

> 
> -Stafford
> _______________________________________________
> buildroot mailing list
> buildroot@buildroot.org
> https://lists.buildroot.org/mailman/listinfo/buildroot
Thomas Petazzoni Jan. 22, 2022, 2:36 p.m. UTC | #5
Hello,

On Tue, 18 Jan 2022 23:24:24 +0100
Fabrice Fontaine <fontaine.fabrice@gmail.com> wrote:

> Patch added by commit eee96b0f0ad224b3e09a9b98c26d056e18f17fd5 on gcc
> 9.3.0 must also be applied on gcc 10 and 11 to avoid the following build
> failure on numerous packages (babeltrace2, pcsc-lite, tpm2-pkcs11,
> etc.):
> 
> configure:13774: checking whether pthreads work with -pthread
> configure:13868: /home/giuliobenetti/autobuild/run/instance-0/output-1/host/bin/or1k-linux-gcc -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64  -Os -g2  -std=gnu99 -pthread -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64  conftest.c   >&5
> conftest.c:27:26: error: #error "_REENTRANT must be defined"
>    27 | #                        error "_REENTRANT must be defined"
>       |                          ^~~~~
> 
> It should be noted that external bootlins will have to be rebuilt.
> 
> Fixes:
>  - http://autobuild.buildroot.org/results/cb58d4fbaeb08d188c2f8bf05ef1604789fa8766
>  - http://autobuild.buildroot.org/results/7af9d4b68bd46ed260ed66ba2cc3c9c21482e741
>  - http://autobuild.buildroot.org/results/6f926bec146752873f8032b593f0de1cb222ea46
> 
> Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
> ---
>  ...TRANT-for-OpenRISC-when-pthread-is-p.patch | 31 +++++++++++++++++++
>  ...TRANT-for-OpenRISC-when-pthread-is-p.patch | 31 +++++++++++++++++++
>  2 files changed, 62 insertions(+)
>  create mode 100644 package/gcc/10.3.0/0005-gcc-define-_REENTRANT-for-OpenRISC-when-pthread-is-p.patch
>  create mode 100644 package/gcc/11.2.0/0003-gcc-define-_REENTRANT-for-OpenRISC-when-pthread-is-p.patch

Both patches applied. The Bootlin toolchains are being rebuilt. I'll
send an update when the toolchains are ready.

Best regards,

Thomas Petazzoni
Peter Korsgaard Jan. 28, 2022, 8:05 p.m. UTC | #6
>>>>> "Fabrice" == Fabrice Fontaine <fontaine.fabrice@gmail.com> writes:

 > Patch added by commit eee96b0f0ad224b3e09a9b98c26d056e18f17fd5 on gcc
 > 9.3.0 must also be applied on gcc 10 and 11 to avoid the following build
 > failure on numerous packages (babeltrace2, pcsc-lite, tpm2-pkcs11,
 > etc.):

 > configure:13774: checking whether pthreads work with -pthread
 > configure:13868: /home/giuliobenetti/autobuild/run/instance-0/output-1/host/bin/or1k-linux-gcc -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64  -Os -g2  -std=gnu99 -pthread -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64  conftest.c   >&5
 > conftest.c:27:26: error: #error "_REENTRANT must be defined"
 >    27 | #                        error "_REENTRANT must be defined"
 >       |                          ^~~~~

 > It should be noted that external bootlins will have to be rebuilt.

 > Fixes:
 >  - http://autobuild.buildroot.org/results/cb58d4fbaeb08d188c2f8bf05ef1604789fa8766
 >  - http://autobuild.buildroot.org/results/7af9d4b68bd46ed260ed66ba2cc3c9c21482e741
 >  - http://autobuild.buildroot.org/results/6f926bec146752873f8032b593f0de1cb222ea46

 > Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>

Committed to 2021.02.x and 2021.11.x, thanks.
diff mbox series

Patch

diff --git a/package/gcc/10.3.0/0005-gcc-define-_REENTRANT-for-OpenRISC-when-pthread-is-p.patch b/package/gcc/10.3.0/0005-gcc-define-_REENTRANT-for-OpenRISC-when-pthread-is-p.patch
new file mode 100644
index 0000000000..5ac03d7c0c
--- /dev/null
+++ b/package/gcc/10.3.0/0005-gcc-define-_REENTRANT-for-OpenRISC-when-pthread-is-p.patch
@@ -0,0 +1,31 @@ 
+From f80e9941739fb3973b61fc6a5abddef5ad2faf73 Mon Sep 17 00:00:00 2001
+From: Bernd Kuhls <bernd.kuhls@t-online.de>
+Date: Fri, 27 Mar 2020 21:23:53 +0100
+Subject: [PATCH] gcc: define _REENTRANT for OpenRISC when -pthread is passed
+
+The detection of pthread support fails on OpenRISC unless _REENTRANT
+is defined. Added the CPP_SPEC definition to correct this.
+
+Patch sent upstream: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94372
+
+Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
+---
+ gcc/config/or1k/linux.h | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/gcc/config/or1k/linux.h b/gcc/config/or1k/linux.h
+index cbdc781418f..36303af892c 100644
+--- a/gcc/config/or1k/linux.h
++++ b/gcc/config/or1k/linux.h
+@@ -32,6 +32,8 @@
+ #undef MUSL_DYNAMIC_LINKER
+ #define MUSL_DYNAMIC_LINKER  "/lib/ld-musl-or1k.so.1"
+ 
++#define CPP_SPEC "%{pthread:-D_REENTRANT}"
++
+ #undef LINK_SPEC
+ #define LINK_SPEC "%{h*}			\
+    %{static:-Bstatic}				\
+-- 
+2.31.1
+
diff --git a/package/gcc/11.2.0/0003-gcc-define-_REENTRANT-for-OpenRISC-when-pthread-is-p.patch b/package/gcc/11.2.0/0003-gcc-define-_REENTRANT-for-OpenRISC-when-pthread-is-p.patch
new file mode 100644
index 0000000000..5ac03d7c0c
--- /dev/null
+++ b/package/gcc/11.2.0/0003-gcc-define-_REENTRANT-for-OpenRISC-when-pthread-is-p.patch
@@ -0,0 +1,31 @@ 
+From f80e9941739fb3973b61fc6a5abddef5ad2faf73 Mon Sep 17 00:00:00 2001
+From: Bernd Kuhls <bernd.kuhls@t-online.de>
+Date: Fri, 27 Mar 2020 21:23:53 +0100
+Subject: [PATCH] gcc: define _REENTRANT for OpenRISC when -pthread is passed
+
+The detection of pthread support fails on OpenRISC unless _REENTRANT
+is defined. Added the CPP_SPEC definition to correct this.
+
+Patch sent upstream: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94372
+
+Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
+---
+ gcc/config/or1k/linux.h | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/gcc/config/or1k/linux.h b/gcc/config/or1k/linux.h
+index cbdc781418f..36303af892c 100644
+--- a/gcc/config/or1k/linux.h
++++ b/gcc/config/or1k/linux.h
+@@ -32,6 +32,8 @@
+ #undef MUSL_DYNAMIC_LINKER
+ #define MUSL_DYNAMIC_LINKER  "/lib/ld-musl-or1k.so.1"
+ 
++#define CPP_SPEC "%{pthread:-D_REENTRANT}"
++
+ #undef LINK_SPEC
+ #define LINK_SPEC "%{h*}			\
+    %{static:-Bstatic}				\
+-- 
+2.31.1
+