* [Buildroot] [PATCH] package/qt5base: fix building with correct optimization
@ 2019-10-01 10:23 Giulio Benetti
[not found] ` <20191001233246.36aef601@gmx.net>
0 siblings, 1 reply; 6+ messages in thread
From: Giulio Benetti @ 2019-10-01 10:23 UTC (permalink / raw)
To: buildroot
On previous patch:
https://git.buildroot.net/buildroot/commit/?id=7c0aa83527e0b0179f9e3f73a3e63df1fdc5a6e6
we didn't take care that QMAKE_CXXFLAGS_RELEASE variable is set to
QMAKE_CFLAGS_OPTIMIZE(-O2) inside the same file:
mkspecs/common/gcc-base.conf
So overriding all QMAKE_CFLAGS_OPTIMIZE* variables after gcc.base.conf
file doesn't change the content of QMAKE_CXXFLAGS_RELEASE.
QMAKE_CXXFLAGS_RELEASE/DEBUG is appended to the end of QMAKE_CXXFLAGS in
mkspecs/features/default_post.prf if building with or without debug
symbols.
Let's override directly QMAKE_CFLAGS_RELEASE/DEBUG and
QMAKE_CXXFLAGS_RELEASE/DEBUG in qmake.conf.in and drop all
QMAKE_CFLAGS_OPTIMIZE* variables overriding.
Fixes:
http://autobuild.buildroot.net/results/ada/adaa9b4bcc6f9d2b5e82c479859a07e8abf5cf13/
http://autobuild.buildroot.net/results/a83/a83bdd1f3bf309c07abebe871b017c331ed36e67/
Signed-off-by: Giulio Benetti <giulio.benetti@benettiengineering.com>
---
package/qt5/qt5base/qmake.conf.in | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/package/qt5/qt5base/qmake.conf.in b/package/qt5/qt5base/qmake.conf.in
index 2eb564e172..66b80c302a 100644
--- a/package/qt5/qt5base/qmake.conf.in
+++ b/package/qt5/qt5base/qmake.conf.in
@@ -15,10 +15,10 @@ QMAKE_CXX = $${CROSS_COMPILE}g++
# modifications to gcc-base.conf
QMAKE_CFLAGS += $${BR_COMPILER_CFLAGS}
QMAKE_CXXFLAGS += $${BR_COMPILER_CXXFLAGS}
-QMAKE_CFLAGS_OPTIMIZE =
-QMAKE_CFLAGS_OPTIMIZE_DEBUG =
-QMAKE_CFLAGS_OPTIMIZE_FULL =
-QMAKE_CFLAGS_OPTIMIZE_SIZE =
+QMAKE_CFLAGS_DEBUG =
+QMAKE_CXXFLAGS_DEBUG =
+QMAKE_CFLAGS_RELEASE =
+QMAKE_CXXFLAGS_RELEASE =
CONFIG += nostrip
QMAKE_LIBS += -lrt -lpthread -ldl
--
2.20.1
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [Buildroot] [PATCH] package/qt5base: fix building with correct optimization
[not found] ` <20191001233246.36aef601@gmx.net>
@ 2019-10-01 21:48 ` Peter Seiderer
2019-10-02 15:53 ` Giulio Benetti
0 siblings, 1 reply; 6+ messages in thread
From: Peter Seiderer @ 2019-10-01 21:48 UTC (permalink / raw)
To: buildroot
Re-added buildroot at builroot.org and Julien Corjon to CC (hit the wrong button for reply)...
Regards,
Peter
On Tue, 1 Oct 2019 23:32:46 +0200, Peter Seiderer <ps.report@gmx.net> wrote:
> Hello Giulio,
>
> On Tue, 1 Oct 2019 12:23:04 +0200, Giulio Benetti <giulio.benetti@benettiengineering.com> wrote:
>
> > On previous patch:
> > https://git.buildroot.net/buildroot/commit/?id=7c0aa83527e0b0179f9e3f73a3e63df1fdc5a6e6
> > we didn't take care that QMAKE_CXXFLAGS_RELEASE variable is set to
> > QMAKE_CFLAGS_OPTIMIZE(-O2) inside the same file:
> > mkspecs/common/gcc-base.conf
> > So overriding all QMAKE_CFLAGS_OPTIMIZE* variables after gcc.base.conf
> > file doesn't change the content of QMAKE_CXXFLAGS_RELEASE.
> > QMAKE_CXXFLAGS_RELEASE/DEBUG is appended to the end of QMAKE_CXXFLAGS in
> > mkspecs/features/default_post.prf if building with or without debug
> > symbols.
> >
> > Let's override directly QMAKE_CFLAGS_RELEASE/DEBUG and
> > QMAKE_CXXFLAGS_RELEASE/DEBUG in qmake.conf.in and drop all
> > QMAKE_CFLAGS_OPTIMIZE* variables overriding.
>
> What is the difference in the resulting compile flags?
>
> >
> > Fixes:
> > http://autobuild.buildroot.net/results/ada/adaa9b4bcc6f9d2b5e82c479859a07e8abf5cf13/
> > http://autobuild.buildroot.net/results/a83/a83bdd1f3bf309c07abebe871b017c331ed36e67/
>
> qgeoaddress.cpp: In function 'QString formattedAddress(const QGeoAddress&, const QString&)':
> qgeoaddress.cpp:285:1: error: VOIDmode on an output
> }
> ^
> (insn 849 12033 850 87 (parallel [
> (const_int 0 [0])
> (reg:SI 970)
> (mem/v:SI (reg/f:SI 3694 [ D.102094.d ]) [-1 S4 A32])
> (reg:SI 970)
> (reg:SI 3527)
> (const_int 0 [0])
> (const_int 32773 [0x8005])
> (const_int 0 [0])
> (clobber (scratch:SI))
> ]) "/home/buildroot/autobuild/instance-1/output-1/host/opt/ext-toolchain/microblazeel-buildroot-linux-uclibc/include/c++/7.4.0/bits/atomic_base.h":304 85 {atomic_compare_and_swapsi}
> (nil))
> qgeoaddress.cpp:285:1: internal compiler error: in do_output_reload, at reload1.c:7978
>
> And why does it fix in internal compile error?
>
> Regards,
> Peter
>
> >
> > Signed-off-by: Giulio Benetti <giulio.benetti@benettiengineering.com>
> > ---
> > package/qt5/qt5base/qmake.conf.in | 8 ++++----
> > 1 file changed, 4 insertions(+), 4 deletions(-)
> >
> > diff --git a/package/qt5/qt5base/qmake.conf.in b/package/qt5/qt5base/qmake.conf.in
> > index 2eb564e172..66b80c302a 100644
> > --- a/package/qt5/qt5base/qmake.conf.in
> > +++ b/package/qt5/qt5base/qmake.conf.in
> > @@ -15,10 +15,10 @@ QMAKE_CXX = $${CROSS_COMPILE}g++
> > # modifications to gcc-base.conf
> > QMAKE_CFLAGS += $${BR_COMPILER_CFLAGS}
> > QMAKE_CXXFLAGS += $${BR_COMPILER_CXXFLAGS}
> > -QMAKE_CFLAGS_OPTIMIZE =
> > -QMAKE_CFLAGS_OPTIMIZE_DEBUG =
> > -QMAKE_CFLAGS_OPTIMIZE_FULL =
> > -QMAKE_CFLAGS_OPTIMIZE_SIZE =
> > +QMAKE_CFLAGS_DEBUG =
> > +QMAKE_CXXFLAGS_DEBUG =
> > +QMAKE_CFLAGS_RELEASE =
> > +QMAKE_CXXFLAGS_RELEASE =
> > CONFIG += nostrip
> >
> > QMAKE_LIBS += -lrt -lpthread -ldl
>
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Buildroot] [PATCH] package/qt5base: fix building with correct optimization
2019-10-01 21:48 ` Peter Seiderer
@ 2019-10-02 15:53 ` Giulio Benetti
2019-10-02 18:46 ` Peter Seiderer
0 siblings, 1 reply; 6+ messages in thread
From: Giulio Benetti @ 2019-10-02 15:53 UTC (permalink / raw)
To: buildroot
Hi Peter,
On 10/1/19 11:48 PM, Peter Seiderer wrote:
> Re-added buildroot at builroot.org and Julien Corjon to CC (hit the wrong button for reply)...
>
> Regards,
> Peter
>
> On Tue, 1 Oct 2019 23:32:46 +0200, Peter Seiderer <ps.report@gmx.net> wrote:
>
>> Hello Giulio,
>>
>> On Tue, 1 Oct 2019 12:23:04 +0200, Giulio Benetti <giulio.benetti@benettiengineering.com> wrote:
>>
>>> On previous patch:
>>> https://git.buildroot.net/buildroot/commit/?id=7c0aa83527e0b0179f9e3f73a3e63df1fdc5a6e6
>>> we didn't take care that QMAKE_CXXFLAGS_RELEASE variable is set to
>>> QMAKE_CFLAGS_OPTIMIZE(-O2) inside the same file:
>>> mkspecs/common/gcc-base.conf
>>> So overriding all QMAKE_CFLAGS_OPTIMIZE* variables after gcc.base.conf
>>> file doesn't change the content of QMAKE_CXXFLAGS_RELEASE.
>>> QMAKE_CXXFLAGS_RELEASE/DEBUG is appended to the end of QMAKE_CXXFLAGS in
>>> mkspecs/features/default_post.prf if building with or without debug
>>> symbols.
>>>
>>> Let's override directly QMAKE_CFLAGS_RELEASE/DEBUG and
>>> QMAKE_CXXFLAGS_RELEASE/DEBUG in qmake.conf.in and drop all
>>> QMAKE_CFLAGS_OPTIMIZE* variables overriding.
>>
>> What is the difference in the resulting compile flags?
Before QMAKE_CFLAGS_OPTIMIZE(-O2) was appended at the end.
>>>
>>> Fixes:
>>> http://autobuild.buildroot.net/results/ada/adaa9b4bcc6f9d2b5e82c479859a07e8abf5cf13/
>>> http://autobuild.buildroot.net/results/a83/a83bdd1f3bf309c07abebe871b017c331ed36e67/
>>
>> qgeoaddress.cpp: In function 'QString formattedAddress(const QGeoAddress&, const QString&)':
>> qgeoaddress.cpp:285:1: error: VOIDmode on an output
>> }
>> ^
>> (insn 849 12033 850 87 (parallel [
>> (const_int 0 [0])
>> (reg:SI 970)
>> (mem/v:SI (reg/f:SI 3694 [ D.102094.d ]) [-1 S4 A32])
>> (reg:SI 970)
>> (reg:SI 3527)
>> (const_int 0 [0])
>> (const_int 32773 [0x8005])
>> (const_int 0 [0])
>> (clobber (scratch:SI))
>> ]) "/home/buildroot/autobuild/instance-1/output-1/host/opt/ext-toolchain/microblazeel-buildroot-linux-uclibc/include/c++/7.4.0/bits/atomic_base.h":304 85 {atomic_compare_and_swapsi}
>> (nil))
>> qgeoaddress.cpp:285:1: internal compiler error: in do_output_reload, at reload1.c:7978
>>
>> And why does it fix in internal compile error?
Oops right,
it fixes the ICE by *not* overriding -O0 with QMAKE_CFLAGS_OPTIMIZE(-O2)
appended.
Do I reword the patch?
Best regards
--
Giulio Benetti
Benetti Engineering sas
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Buildroot] [PATCH] package/qt5base: fix building with correct optimization
2019-10-02 15:53 ` Giulio Benetti
@ 2019-10-02 18:46 ` Peter Seiderer
2019-10-02 19:06 ` Peter Seiderer
0 siblings, 1 reply; 6+ messages in thread
From: Peter Seiderer @ 2019-10-02 18:46 UTC (permalink / raw)
To: buildroot
Hello Giulio,
On Wed, 2 Oct 2019 17:53:54 +0200, Giulio Benetti <giulio.benetti@benettiengineering.com> wrote:
> Hi Peter,
>
> On 10/1/19 11:48 PM, Peter Seiderer wrote:
> > Re-added buildroot at builroot.org and Julien Corjon to CC (hit the wrong button for reply)...
> >
> > Regards,
> > Peter
> >
> > On Tue, 1 Oct 2019 23:32:46 +0200, Peter Seiderer <ps.report@gmx.net> wrote:
> >
> >> Hello Giulio,
> >>
> >> On Tue, 1 Oct 2019 12:23:04 +0200, Giulio Benetti <giulio.benetti@benettiengineering.com> wrote:
> >>
> >>> On previous patch:
> >>> https://git.buildroot.net/buildroot/commit/?id=7c0aa83527e0b0179f9e3f73a3e63df1fdc5a6e6
> >>> we didn't take care that QMAKE_CXXFLAGS_RELEASE variable is set to
> >>> QMAKE_CFLAGS_OPTIMIZE(-O2) inside the same file:
> >>> mkspecs/common/gcc-base.conf
> >>> So overriding all QMAKE_CFLAGS_OPTIMIZE* variables after gcc.base.conf
> >>> file doesn't change the content of QMAKE_CXXFLAGS_RELEASE.
> >>> QMAKE_CXXFLAGS_RELEASE/DEBUG is appended to the end of QMAKE_CXXFLAGS in
> >>> mkspecs/features/default_post.prf if building with or without debug
> >>> symbols.
> >>>
> >>> Let's override directly QMAKE_CFLAGS_RELEASE/DEBUG and
> >>> QMAKE_CXXFLAGS_RELEASE/DEBUG in qmake.conf.in and drop all
> >>> QMAKE_CFLAGS_OPTIMIZE* variables overriding.
> >>
> >> What is the difference in the resulting compile flags?
>
> Before QMAKE_CFLAGS_OPTIMIZE(-O2) was appended at the end.
I see the following in the logfiles:
/home/test/autobuild/run/instance-0/output-1/host/bin/microblazeel-linux-g++ -c -pipe \
-D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Os -O0 \
--sysroot=/home/test/autobuild/run/instance-0/output-1/host/microblazeel-buildroot-linux-uclibc/sysroot \
-O2 -std=c++1z ...
- '-Os' is from BR2_OPTIMIZE_S=y?
- '-O0' is from?
- '-O2' is fixed/removed with your patch?
Do your have an compiler command line example with your patch applied (did not yet
find enough time to test the patch locally)?
>
> >>>
> >>> Fixes:
> >>> http://autobuild.buildroot.net/results/ada/adaa9b4bcc6f9d2b5e82c479859a07e8abf5cf13/
> >>> http://autobuild.buildroot.net/results/a83/a83bdd1f3bf309c07abebe871b017c331ed36e67/
> >>
> >> qgeoaddress.cpp: In function 'QString formattedAddress(const QGeoAddress&, const QString&)':
> >> qgeoaddress.cpp:285:1: error: VOIDmode on an output
> >> }
> >> ^
> >> (insn 849 12033 850 87 (parallel [
> >> (const_int 0 [0])
> >> (reg:SI 970)
> >> (mem/v:SI (reg/f:SI 3694 [ D.102094.d ]) [-1 S4 A32])
> >> (reg:SI 970)
> >> (reg:SI 3527)
> >> (const_int 0 [0])
> >> (const_int 32773 [0x8005])
> >> (const_int 0 [0])
> >> (clobber (scratch:SI))
> >> ]) "/home/buildroot/autobuild/instance-1/output-1/host/opt/ext-toolchain/microblazeel-buildroot-linux-uclibc/include/c++/7.4.0/bits/atomic_base.h":304 85 {atomic_compare_and_swapsi}
> >> (nil))
> >> qgeoaddress.cpp:285:1: internal compiler error: in do_output_reload, at reload1.c:7978
> >>
> >> And why does it fix in internal compile error?
>
> Oops right,
> it fixes the ICE by *not* overriding -O0 with QMAKE_CFLAGS_OPTIMIZE(-O2)
> appended.
>
> Do I reword the patch?
Suggestion (or something similar):
Avoids the internal compiler error by avoiding the '-O2' optimization and applying
the '-Os' buildroot default.
Regards,
Peter
>
> Best regards
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Buildroot] [PATCH] package/qt5base: fix building with correct optimization
2019-10-02 18:46 ` Peter Seiderer
@ 2019-10-02 19:06 ` Peter Seiderer
2019-10-02 21:30 ` Giulio Benetti
0 siblings, 1 reply; 6+ messages in thread
From: Peter Seiderer @ 2019-10-02 19:06 UTC (permalink / raw)
To: buildroot
Hello Giulio,
On Wed, 2 Oct 2019 20:46:19 +0200, Peter Seiderer <ps.report@gmx.net> wrote:
> Hello Giulio,
>
> On Wed, 2 Oct 2019 17:53:54 +0200, Giulio Benetti <giulio.benetti@benettiengineering.com> wrote:
>
> > Hi Peter,
> >
> > On 10/1/19 11:48 PM, Peter Seiderer wrote:
> > > Re-added buildroot at builroot.org and Julien Corjon to CC (hit the wrong button for reply)...
> > >
> > > Regards,
> > > Peter
> > >
> > > On Tue, 1 Oct 2019 23:32:46 +0200, Peter Seiderer <ps.report@gmx.net> wrote:
> > >
> > >> Hello Giulio,
> > >>
> > >> On Tue, 1 Oct 2019 12:23:04 +0200, Giulio Benetti <giulio.benetti@benettiengineering.com> wrote:
> > >>
> > >>> On previous patch:
> > >>> https://git.buildroot.net/buildroot/commit/?id=7c0aa83527e0b0179f9e3f73a3e63df1fdc5a6e6
> > >>> we didn't take care that QMAKE_CXXFLAGS_RELEASE variable is set to
> > >>> QMAKE_CFLAGS_OPTIMIZE(-O2) inside the same file:
> > >>> mkspecs/common/gcc-base.conf
> > >>> So overriding all QMAKE_CFLAGS_OPTIMIZE* variables after gcc.base.conf
> > >>> file doesn't change the content of QMAKE_CXXFLAGS_RELEASE.
> > >>> QMAKE_CXXFLAGS_RELEASE/DEBUG is appended to the end of QMAKE_CXXFLAGS in
> > >>> mkspecs/features/default_post.prf if building with or without debug
> > >>> symbols.
> > >>>
> > >>> Let's override directly QMAKE_CFLAGS_RELEASE/DEBUG and
> > >>> QMAKE_CXXFLAGS_RELEASE/DEBUG in qmake.conf.in and drop all
> > >>> QMAKE_CFLAGS_OPTIMIZE* variables overriding.
> > >>
> > >> What is the difference in the resulting compile flags?
> >
> > Before QMAKE_CFLAGS_OPTIMIZE(-O2) was appended at the end.
>
> I see the following in the logfiles:
>
> /home/test/autobuild/run/instance-0/output-1/host/bin/microblazeel-linux-g++ -c -pipe \
> -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Os -O0 \
> --sysroot=/home/test/autobuild/run/instance-0/output-1/host/microblazeel-buildroot-linux-uclibc/sysroot \
> -O2 -std=c++1z ...
>
> - '-Os' is from BR2_OPTIMIZE_S=y?
> - '-O0' is from?
This one is from 'BR2_TOOLCHAIN_HAS_GCC_BUG_90620=y' and package/qt5/qt5base/qt5base.mk:
40 ifeq ($(BR2_TOOLCHAIN_HAS_GCC_BUG_90620),y)
41 QT5BASE_CFLAGS += -O0
42 QT5BASE_CXXFLAGS += -O0
43 endif
> - '-O2' is fixed/removed with your patch?
>
> Do your have an compiler command line example with your patch applied (did not yet
> find enough time to test the patch locally)?
>
> >
> > >>>
> > >>> Fixes:
> > >>> http://autobuild.buildroot.net/results/ada/adaa9b4bcc6f9d2b5e82c479859a07e8abf5cf13/
> > >>> http://autobuild.buildroot.net/results/a83/a83bdd1f3bf309c07abebe871b017c331ed36e67/
> > >>
> > >> qgeoaddress.cpp: In function 'QString formattedAddress(const QGeoAddress&, const QString&)':
> > >> qgeoaddress.cpp:285:1: error: VOIDmode on an output
> > >> }
> > >> ^
> > >> (insn 849 12033 850 87 (parallel [
> > >> (const_int 0 [0])
> > >> (reg:SI 970)
> > >> (mem/v:SI (reg/f:SI 3694 [ D.102094.d ]) [-1 S4 A32])
> > >> (reg:SI 970)
> > >> (reg:SI 3527)
> > >> (const_int 0 [0])
> > >> (const_int 32773 [0x8005])
> > >> (const_int 0 [0])
> > >> (clobber (scratch:SI))
> > >> ]) "/home/buildroot/autobuild/instance-1/output-1/host/opt/ext-toolchain/microblazeel-buildroot-linux-uclibc/include/c++/7.4.0/bits/atomic_base.h":304 85 {atomic_compare_and_swapsi}
> > >> (nil))
> > >> qgeoaddress.cpp:285:1: internal compiler error: in do_output_reload, at reload1.c:7978
> > >>
> > >> And why does it fix in internal compile error?
> >
> > Oops right,
> > it fixes the ICE by *not* overriding -O0 with QMAKE_CFLAGS_OPTIMIZE(-O2)
> > appended.
> >
> > Do I reword the patch?
>
> Suggestion (or something similar):
>
> Avoids the internal compiler error by avoiding the '-O2' optimization and applying
> the '-Os' buildroot default.
With the above 'BR2_TOOLCHAIN_HAS_GCC_BUG_90620=y' point it is a real fix
of the internal compile error (by respecting the intentional '-Os -O0' -> '-O0')...
Regards,
Peter
>
> Regards,
> Peter
>
> >
> > Best regards
>
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Buildroot] [PATCH] package/qt5base: fix building with correct optimization
2019-10-02 19:06 ` Peter Seiderer
@ 2019-10-02 21:30 ` Giulio Benetti
0 siblings, 0 replies; 6+ messages in thread
From: Giulio Benetti @ 2019-10-02 21:30 UTC (permalink / raw)
To: buildroot
Hello Peter,
On 10/2/19 9:06 PM, Peter Seiderer wrote:
> Hello Giulio,
>
> On Wed, 2 Oct 2019 20:46:19 +0200, Peter Seiderer <ps.report@gmx.net> wrote:
>
>> Hello Giulio,
>>
>> On Wed, 2 Oct 2019 17:53:54 +0200, Giulio Benetti <giulio.benetti@benettiengineering.com> wrote:
>>
>>> Hi Peter,
>>>
>>> On 10/1/19 11:48 PM, Peter Seiderer wrote:
>>>> Re-added buildroot at builroot.org and Julien Corjon to CC (hit the wrong button for reply)...
>>>>
>>>> Regards,
>>>> Peter
>>>>
>>>> On Tue, 1 Oct 2019 23:32:46 +0200, Peter Seiderer <ps.report@gmx.net> wrote:
>>>>
>>>>> Hello Giulio,
>>>>>
>>>>> On Tue, 1 Oct 2019 12:23:04 +0200, Giulio Benetti <giulio.benetti@benettiengineering.com> wrote:
>>>>>
>>>>>> On previous patch:
>>>>>> https://git.buildroot.net/buildroot/commit/?id=7c0aa83527e0b0179f9e3f73a3e63df1fdc5a6e6
>>>>>> we didn't take care that QMAKE_CXXFLAGS_RELEASE variable is set to
>>>>>> QMAKE_CFLAGS_OPTIMIZE(-O2) inside the same file:
>>>>>> mkspecs/common/gcc-base.conf
>>>>>> So overriding all QMAKE_CFLAGS_OPTIMIZE* variables after gcc.base.conf
>>>>>> file doesn't change the content of QMAKE_CXXFLAGS_RELEASE.
>>>>>> QMAKE_CXXFLAGS_RELEASE/DEBUG is appended to the end of QMAKE_CXXFLAGS in
>>>>>> mkspecs/features/default_post.prf if building with or without debug
>>>>>> symbols.
>>>>>>
>>>>>> Let's override directly QMAKE_CFLAGS_RELEASE/DEBUG and
>>>>>> QMAKE_CXXFLAGS_RELEASE/DEBUG in qmake.conf.in and drop all
>>>>>> QMAKE_CFLAGS_OPTIMIZE* variables overriding.
>>>>>
>>>>> What is the difference in the resulting compile flags?
>>>
>>> Before QMAKE_CFLAGS_OPTIMIZE(-O2) was appended at the end.
>>
>> I see the following in the logfiles:
>>
>> /home/test/autobuild/run/instance-0/output-1/host/bin/microblazeel-linux-g++ -c -pipe \
>> -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Os -O0 \
>> --sysroot=/home/test/autobuild/run/instance-0/output-1/host/microblazeel-buildroot-linux-uclibc/sysroot \
>> -O2 -std=c++1z ...
>>
>> - '-Os' is from BR2_OPTIMIZE_S=y?
This comes from Buildroot CXXFLAGS.
>> - '-O0' is from?
>
> This one is from 'BR2_TOOLCHAIN_HAS_GCC_BUG_90620=y' and package/qt5/qt5base/qt5base.mk:
>
> 40 ifeq ($(BR2_TOOLCHAIN_HAS_GCC_BUG_90620),y)
> 41 QT5BASE_CFLAGS += -O0
> 42 QT5BASE_CXXFLAGS += -O0
> 43 endif
Exactly from this ^^^
>> - '-O2' is fixed/removed with your patch?
This comes from QMAKE_CXXFLAGS_RELEASE that is set to
QMAKE_CFLAGS_OPTIMIZE(-O2) in mkspecs/features/default_post.prf
>> Do your have an compiler command line example with your patch applied (did not yet
>> find enough time to test the patch locally)?
>>
>>>
>>>>>>
>>>>>> Fixes:
>>>>>> http://autobuild.buildroot.net/results/ada/adaa9b4bcc6f9d2b5e82c479859a07e8abf5cf13/
>>>>>> http://autobuild.buildroot.net/results/a83/a83bdd1f3bf309c07abebe871b017c331ed36e67/
>>>>>
>>>>> qgeoaddress.cpp: In function 'QString formattedAddress(const QGeoAddress&, const QString&)':
>>>>> qgeoaddress.cpp:285:1: error: VOIDmode on an output
>>>>> }
>>>>> ^
>>>>> (insn 849 12033 850 87 (parallel [
>>>>> (const_int 0 [0])
>>>>> (reg:SI 970)
>>>>> (mem/v:SI (reg/f:SI 3694 [ D.102094.d ]) [-1 S4 A32])
>>>>> (reg:SI 970)
>>>>> (reg:SI 3527)
>>>>> (const_int 0 [0])
>>>>> (const_int 32773 [0x8005])
>>>>> (const_int 0 [0])
>>>>> (clobber (scratch:SI))
>>>>> ]) "/home/buildroot/autobuild/instance-1/output-1/host/opt/ext-toolchain/microblazeel-buildroot-linux-uclibc/include/c++/7.4.0/bits/atomic_base.h":304 85 {atomic_compare_and_swapsi}
>>>>> (nil))
>>>>> qgeoaddress.cpp:285:1: internal compiler error: in do_output_reload, at reload1.c:7978
>>>>>
>>>>> And why does it fix in internal compile error?
>>>
>>> Oops right,
>>> it fixes the ICE by *not* overriding -O0 with QMAKE_CFLAGS_OPTIMIZE(-O2)
>>> appended.
>>>
>>> Do I reword the patch?
>>
>> Suggestion (or something similar):
>>
>> Avoids the internal compiler error by avoiding the '-O2' optimization and applying
>> the '-Os' buildroot default.
>
> With the above 'BR2_TOOLCHAIN_HAS_GCC_BUG_90620=y' point it is a real fix
> of the internal compile error (by respecting the intentional '-Os -O0' -> '-O0')...
Yes, thank you, it is very long and not simple to write this commit log.
I try again with your suggestion as a v2 patch.
Thanks for reviewing!
Kind regards
--
Giulio Benetti
Benetti Engineering sas
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2019-10-02 21:30 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-10-01 10:23 [Buildroot] [PATCH] package/qt5base: fix building with correct optimization Giulio Benetti
[not found] ` <20191001233246.36aef601@gmx.net>
2019-10-01 21:48 ` Peter Seiderer
2019-10-02 15:53 ` Giulio Benetti
2019-10-02 18:46 ` Peter Seiderer
2019-10-02 19:06 ` Peter Seiderer
2019-10-02 21:30 ` Giulio Benetti
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.