Message ID | 20190606131035.47417-1-giulio.benetti@micronovasrl.com |
---|---|
State | Superseded |
Headers | show |
Series | package/kmsxx: work around gcc bug 85180 | expand |
Am Thu, 6 Jun 2019 15:10:35 +0200 schrieb Giulio Benetti <giulio.benetti@micronovasrl.com>: > With Microblaze Gcc version < 8.x the build hangs due to gcc bug > 85180: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85180. The bug > shows up when building kmsxx with optimization but not when building > with -O0. To work around this, if BR2_TOOLCHAIN_HAS_GCC_BUG_85180=y we > force using -O0. According to the description in the bugzilla, the bug should also go away when compiling with -fno-dse ... so wouldn't it be better to use "-fno-dse" here instead of disabling the optimizations completely? Thomas
Hello Thomas H., adding Thomas P.+ Il 07/06/2019 08:08, Thomas Huth ha scritto: > Am Thu, 6 Jun 2019 15:10:35 +0200 > schrieb Giulio Benetti <giulio.benetti@micronovasrl.com>: > >> With Microblaze Gcc version < 8.x the build hangs due to gcc bug >> 85180: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85180. The bug >> shows up when building kmsxx with optimization but not when building >> with -O0. To work around this, if BR2_TOOLCHAIN_HAS_GCC_BUG_85180=y we >> force using -O0. > > According to the description in the bugzilla, the bug should also go > away when compiling with -fno-dse ... so wouldn't it be better to use > "-fno-dse" here instead of disabling the optimizations completely? Honestly I've completely missed that possible solution and didn't even tested. Anyway it's been discussed on IRC channel to keep a common work around for every different GCC_BUG_*, so since many packages are affected by Bug 85180 and -O0 seemed to work every time Thomas P. suggested to always keep that flag as solution. I hope I've understood correctly at that time on IRC! Best regards
Am Fri, 7 Jun 2019 08:39:07 +0200 schrieb Giulio Benetti <giulio.benetti@micronovasrl.com>: > Hello Thomas H., > > adding Thomas P.+ > > Il 07/06/2019 08:08, Thomas Huth ha scritto: > > Am Thu, 6 Jun 2019 15:10:35 +0200 > > schrieb Giulio Benetti <giulio.benetti@micronovasrl.com>: > > > >> With Microblaze Gcc version < 8.x the build hangs due to gcc bug > >> 85180: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85180. The bug > >> shows up when building kmsxx with optimization but not when > >> building with -O0. To work around this, if > >> BR2_TOOLCHAIN_HAS_GCC_BUG_85180=y we force using -O0. > > > > According to the description in the bugzilla, the bug should also go > > away when compiling with -fno-dse ... so wouldn't it be better to > > use "-fno-dse" here instead of disabling the optimizations > > completely? > > Honestly I've completely missed that possible solution and didn't > even tested. > > Anyway it's been discussed on IRC channel to keep a common work > around for every different GCC_BUG_*, so since many packages are > affected by Bug 85180 and -O0 seemed to work every time Thomas P. > suggested to always keep that flag as solution. Well, if -fno-dse is also "fixing" this bug, maybe you could add "-fno-dse" to the global compiler flags instead of manually fixing each and every package with -O0? ... anyway, just my 0.02 €. Thomas H
On 07/06/2019 09:19, Thomas Huth wrote: > Am Fri, 7 Jun 2019 08:39:07 +0200 > schrieb Giulio Benetti <giulio.benetti@micronovasrl.com>: > >> Hello Thomas H., >> >> adding Thomas P.+ >> >> Il 07/06/2019 08:08, Thomas Huth ha scritto: >>> Am Thu, 6 Jun 2019 15:10:35 +0200 >>> schrieb Giulio Benetti <giulio.benetti@micronovasrl.com>: >>> >>>> With Microblaze Gcc version < 8.x the build hangs due to gcc bug >>>> 85180: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85180. The bug >>>> shows up when building kmsxx with optimization but not when >>>> building with -O0. To work around this, if >>>> BR2_TOOLCHAIN_HAS_GCC_BUG_85180=y we force using -O0. >>> >>> According to the description in the bugzilla, the bug should also go >>> away when compiling with -fno-dse ... so wouldn't it be better to >>> use "-fno-dse" here instead of disabling the optimizations >>> completely? >> >> Honestly I've completely missed that possible solution and didn't >> even tested. >> >> Anyway it's been discussed on IRC channel to keep a common work >> around for every different GCC_BUG_*, so since many packages are >> affected by Bug 85180 and -O0 seemed to work every time Thomas P. >> suggested to always keep that flag as solution. It's not the same solution for every GCC_BUG_* that we want, it is the same solution for every package. So we don't want to use -O2 -g0 in one package and -O0 in another package. If the -fno-dse also works, that would be an even better solution. > Well, if -fno-dse is also "fixing" this bug, maybe you could add > "-fno-dse" to the global compiler flags instead of manually fixing each > and every package with -O0? ... anyway, just my 0.02 €. That's a good idea, actually... And very easy to test if it works: just remove the definition of GCC_BUG_85180 (so the -O0 is never passed), add -fno-dse to the toolchain wrapper flags, and build all affected packages with a toolchain that is known to be broken. Great for Giulio's patch count: so many patches adding this stuff, and then the same number of patches removing it again :-) Regards, Arnout
Hi Arnout, Thomas H., Il 08/06/2019 12:56, Arnout Vandecappelle ha scritto: > > > On 07/06/2019 09:19, Thomas Huth wrote: >> Am Fri, 7 Jun 2019 08:39:07 +0200 >> schrieb Giulio Benetti <giulio.benetti@micronovasrl.com>: >> >>> Hello Thomas H., >>> >>> adding Thomas P.+ >>> >>> Il 07/06/2019 08:08, Thomas Huth ha scritto: >>>> Am Thu, 6 Jun 2019 15:10:35 +0200 >>>> schrieb Giulio Benetti <giulio.benetti@micronovasrl.com>: >>>> >>>>> With Microblaze Gcc version < 8.x the build hangs due to gcc bug >>>>> 85180: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85180. The bug >>>>> shows up when building kmsxx with optimization but not when >>>>> building with -O0. To work around this, if >>>>> BR2_TOOLCHAIN_HAS_GCC_BUG_85180=y we force using -O0. >>>> >>>> According to the description in the bugzilla, the bug should also go >>>> away when compiling with -fno-dse ... so wouldn't it be better to >>>> use "-fno-dse" here instead of disabling the optimizations >>>> completely? >>> >>> Honestly I've completely missed that possible solution and didn't >>> even tested. >>> >>> Anyway it's been discussed on IRC channel to keep a common work >>> around for every different GCC_BUG_*, so since many packages are >>> affected by Bug 85180 and -O0 seemed to work every time Thomas P. >>> suggested to always keep that flag as solution. > > It's not the same solution for every GCC_BUG_* that we want, it is the same > solution for every package. So we don't want to use -O2 -g0 in one package and > -O0 in another package. Yes you'r right. > If the -fno-dse also works, that would be an even better solution. Yes, I was thinking about it and you've beaten me on time :) >> Well, if -fno-dse is also "fixing" this bug, maybe you could add >> "-fno-dse" to the global compiler flags instead of manually fixing each >> and every package with -O0? ... anyway, just my 0.02 €. > > That's a good idea, actually... Yes, Thomas H. is totally right. > And very easy to test if it works: just remove the definition of GCC_BUG_85180 > (so the -O0 is never passed), add -fno-dse to the toolchain wrapper flags, and > build all affected packages with a toolchain that is known to be broken. Yep, I'm going to do that starting from Monday. > Great for Giulio's patch count: so many patches adding this stuff, and then the > same number of patches removing it again :-) :) yes, 10 patches more, more or less. This way easier to produce them though. Best regards
Il 08/06/2019 13:51, Giulio Benetti ha scritto: > Hi Arnout, Thomas H., > > Il 08/06/2019 12:56, Arnout Vandecappelle ha scritto: >> >> >> On 07/06/2019 09:19, Thomas Huth wrote: >>> Am Fri, 7 Jun 2019 08:39:07 +0200 >>> schrieb Giulio Benetti <giulio.benetti@micronovasrl.com>: >>> >>>> Hello Thomas H., >>>> >>>> adding Thomas P.+ >>>> >>>> Il 07/06/2019 08:08, Thomas Huth ha scritto: >>>>> Am Thu, 6 Jun 2019 15:10:35 +0200 >>>>> schrieb Giulio Benetti <giulio.benetti@micronovasrl.com>: >>>>> >>>>>> With Microblaze Gcc version < 8.x the build hangs due to gcc bug >>>>>> 85180: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85180. The bug >>>>>> shows up when building kmsxx with optimization but not when >>>>>> building with -O0. To work around this, if >>>>>> BR2_TOOLCHAIN_HAS_GCC_BUG_85180=y we force using -O0. >>>>> >>>>> According to the description in the bugzilla, the bug should also go >>>>> away when compiling with -fno-dse ... so wouldn't it be better to >>>>> use "-fno-dse" here instead of disabling the optimizations >>>>> completely? >>>> >>>> Honestly I've completely missed that possible solution and didn't >>>> even tested. >>>> >>>> Anyway it's been discussed on IRC channel to keep a common work >>>> around for every different GCC_BUG_*, so since many packages are >>>> affected by Bug 85180 and -O0 seemed to work every time Thomas P. >>>> suggested to always keep that flag as solution. >> >> It's not the same solution for every GCC_BUG_* that we want, it is the same >> solution for every package. So we don't want to use -O2 -g0 in one package and >> -O0 in another package. > > Yes you'r right. > >> If the -fno-dse also works, that would be an even better solution. > > Yes, I was thinking about it and you've beaten me on time :) I've given a try with kmsxx using -fno-dse, unfortunately it's a NOK. -fno-dse still hangs while -O0 is ok. Thomas H.: Can you please double check with this defconfig substituting '-O0' with '-fno-dse'? R2_microblazeel=y BR2_ENABLE_DEBUG=y BR2_TOOLCHAIN_BUILDROOT_LOCALE=y BR2_GCC_VERSION_4_9_X=y BR2_TOOLCHAIN_BUILDROOT_CXX=y BR2_PACKAGE_KMSXX=y Thanks!
Il 08/06/2019 14:46, Giulio Benetti ha scritto: > Il 08/06/2019 13:51, Giulio Benetti ha scritto: >> Hi Arnout, Thomas H., >> >> Il 08/06/2019 12:56, Arnout Vandecappelle ha scritto: >>> >>> >>> On 07/06/2019 09:19, Thomas Huth wrote: >>>> Am Fri, 7 Jun 2019 08:39:07 +0200 >>>> schrieb Giulio Benetti <giulio.benetti@micronovasrl.com>: >>>> >>>>> Hello Thomas H., >>>>> >>>>> adding Thomas P.+ >>>>> >>>>> Il 07/06/2019 08:08, Thomas Huth ha scritto: >>>>>> Am Thu, 6 Jun 2019 15:10:35 +0200 >>>>>> schrieb Giulio Benetti <giulio.benetti@micronovasrl.com>: >>>>>> >>>>>>> With Microblaze Gcc version < 8.x the build hangs due to gcc bug >>>>>>> 85180: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85180. The bug >>>>>>> shows up when building kmsxx with optimization but not when >>>>>>> building with -O0. To work around this, if >>>>>>> BR2_TOOLCHAIN_HAS_GCC_BUG_85180=y we force using -O0. >>>>>> >>>>>> According to the description in the bugzilla, the bug should also go >>>>>> away when compiling with -fno-dse ... so wouldn't it be better to >>>>>> use "-fno-dse" here instead of disabling the optimizations >>>>>> completely? >>>>> >>>>> Honestly I've completely missed that possible solution and didn't >>>>> even tested. >>>>> >>>>> Anyway it's been discussed on IRC channel to keep a common work >>>>> around for every different GCC_BUG_*, so since many packages are >>>>> affected by Bug 85180 and -O0 seemed to work every time Thomas P. >>>>> suggested to always keep that flag as solution. >>> >>> It's not the same solution for every GCC_BUG_* that we want, it is the same >>> solution for every package. So we don't want to use -O2 -g0 in one package and >>> -O0 in another package. >> >> Yes you'r right. >> >>> If the -fno-dse also works, that would be an even better solution. >> >> Yes, I was thinking about it and you've beaten me on time :) > > I've given a try with kmsxx using -fno-dse, unfortunately it's a NOK. > -fno-dse still hangs while -O0 is ok. > > Thomas H.: > Can you please double check with this defconfig substituting '-O0' with > '-fno-dse'? > R2_microblazeel=y > BR2_ENABLE_DEBUG=y > BR2_TOOLCHAIN_BUILDROOT_LOCALE=y > BR2_GCC_VERSION_4_9_X=y > BR2_TOOLCHAIN_BUILDROOT_CXX=y > BR2_PACKAGE_KMSXX=y > > Thanks! > Hmm, now it works... I will check for every toolchain and every package affected by Gcc Bug 85180 and if it's ok I proceed creating new patches.
Hi Arnout, Thomas H., Il 08/06/2019 15:00, Giulio Benetti ha scritto: > Il 08/06/2019 14:46, Giulio Benetti ha scritto: >> Il 08/06/2019 13:51, Giulio Benetti ha scritto: >>> Hi Arnout, Thomas H., >>> >>> Il 08/06/2019 12:56, Arnout Vandecappelle ha scritto: >>>> >>>> >>>> On 07/06/2019 09:19, Thomas Huth wrote: >>>>> Am Fri, 7 Jun 2019 08:39:07 +0200 >>>>> schrieb Giulio Benetti <giulio.benetti@micronovasrl.com>: >>>>> >>>>>> Hello Thomas H., >>>>>> >>>>>> adding Thomas P.+ >>>>>> >>>>>> Il 07/06/2019 08:08, Thomas Huth ha scritto: >>>>>>> Am Thu, 6 Jun 2019 15:10:35 +0200 >>>>>>> schrieb Giulio Benetti <giulio.benetti@micronovasrl.com>: >>>>>>>> With Microblaze Gcc version < 8.x the build hangs due to gcc bug >>>>>>>> 85180: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85180. The bug >>>>>>>> shows up when building kmsxx with optimization but not when >>>>>>>> building with -O0. To work around this, if >>>>>>>> BR2_TOOLCHAIN_HAS_GCC_BUG_85180=y we force using -O0. >>>>>>> >>>>>>> According to the description in the bugzilla, the bug should also go >>>>>>> away when compiling with -fno-dse ... so wouldn't it be better to >>>>>>> use "-fno-dse" here instead of disabling the optimizations >>>>>>> completely? >>>>>> >>>>>> Honestly I've completely missed that possible solution and didn't >>>>>> even tested. >>>>>> >>>>>> Anyway it's been discussed on IRC channel to keep a common work >>>>>> around for every different GCC_BUG_*, so since many packages are >>>>>> affected by Bug 85180 and -O0 seemed to work every time Thomas P. >>>>>> suggested to always keep that flag as solution. >>>> >>>> It's not the same solution for every GCC_BUG_* that we want, it >>>> is the same >>>> solution for every package. So we don't want to use -O2 -g0 in one >>>> package and >>>> -O0 in another package. >>> >>> Yes you'r right. >>> >>>> If the -fno-dse also works, that would be an even better solution. >>> >>> Yes, I was thinking about it and you've beaten me on time :) >> >> I've given a try with kmsxx using -fno-dse, unfortunately it's a NOK. >> -fno-dse still hangs while -O0 is ok. >> >> Thomas H.: >> Can you please double check with this defconfig substituting '-O0' with >> '-fno-dse'? >> R2_microblazeel=y >> BR2_ENABLE_DEBUG=y >> BR2_TOOLCHAIN_BUILDROOT_LOCALE=y >> BR2_GCC_VERSION_4_9_X=y >> BR2_TOOLCHAIN_BUILDROOT_CXX=y >> BR2_PACKAGE_KMSXX=y >> >> Thanks! >> > > Hmm, now it works... > > I will check for every toolchain and every package affected by Gcc Bug > 85180 and if it's ok I proceed creating new patches. Just checked and even if this is true for "kmsxx" package, it's not for "atop","chocolate-doom","ddrescue","jasper" packages. And "kismet" package is NOK for Gcc 4.9/5 but OK for 6/7 with -fno-dse, so it seems only a case it worked for "kmsxx". So they still hangs during building with -fno-dse instead of -O0 override. As discussed on IRC with Arnout let's proceed using -O0 per-package. Best regards
diff --git a/package/kmsxx/kmsxx.mk b/package/kmsxx/kmsxx.mk index c664d52361..829beb1d68 100644 --- a/package/kmsxx/kmsxx.mk +++ b/package/kmsxx/kmsxx.mk @@ -12,6 +12,14 @@ KMSXX_INSTALL_STAGING = YES KMSXX_DEPENDENCIES = libdrm host-pkgconf KMSXX_CONF_OPTS = -DKMSXX_ENABLE_PYTHON=OFF +KMSXX_CXXFLAGS = $(TARGET_CXXFLAGS) + +ifeq ($(BR2_TOOLCHAIN_HAS_GCC_BUG_85180),y) +KMSXX_CXXFLAGS += -O0 +endif + +KMSXX_CONF_OPTS += -DCMAKE_CXX_FLAGS="$(KMSXX_CXXFLAGS)" + ifeq ($(BR2_PACKAGE_KMSXX_INSTALL_TESTS),y) KMSXX_TESTS = \ fbtest kmsblank kmscapture \
With Microblaze Gcc version < 8.x the build hangs due to gcc bug 85180: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85180. The bug shows up when building kmsxx with optimization but not when building with -O0. To work around this, if BR2_TOOLCHAIN_HAS_GCC_BUG_85180=y we force using -O0. Fixes: http://autobuild.buildroot.net/results/360/360f19645e76314048c75424bb4b64da91742f47/ Signed-off-by: Giulio Benetti <giulio.benetti@micronovasrl.com> --- package/kmsxx/kmsxx.mk | 8 ++++++++ 1 file changed, 8 insertions(+)