All of lore.kernel.org
 help / color / mirror / Atom feed
* [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.