Opened on 12/19/17 at 13:55:52
Last modified on 01/23/18 at 03:03:54
#3262 assigned defect
GCC-4 Build failure with GCC-4.3+
Reported by: | Gedare Bloom | Owned by: | Chris Johns |
---|---|---|---|
Priority: | normal | Milestone: | 4.10.3 |
Component: | tool/rsb | Version: | 4.10 |
Severity: | normal | Keywords: | |
Cc: | Blocked By: | #2439 | |
Blocking: |
Description (last modified by Gedare Bloom)
While building 4.10 tools (gcc-4.4.7) with gcc 5.4, I stumbled on the issue discussed at https://bugzilla.redhat.com/show_bug.cgi?id=476370
The gcc build apparently needs -fgnu89-inline
I hacked the following fix locally in my 4.10 RSB branch, but am not sure of the appropriate long-term solution:
diff --git a/source-builder/config/gcc-common-1.cfg b/source-builder/config/gcc-common-1.cfg index 941e15c..d2608ec 100644 --- a/source-builder/config/gcc-common-1.cfg +++ b/source-builder/config/gcc-common-1.cfg @@ -167,7 +167,7 @@ BuildRoot: %{_tmppath}/%{name}-root-%(%{__id_u} -n) cp ../${source_dir_gcc}/gcc/gsyslimits.h gcc/include/syslimits.h fi - %{__make} %{?_smp_mflags} all + %{__make} %{?_smp_mflags} CFLAGS="-fgnu89-inline" all cd ${build_top}
Change History (10)
comment:1 Changed on 12/19/17 at 13:56:02 by Gedare Bloom
Owner: | set to Chris Johns |
---|---|
Status: | new → assigned |
comment:2 Changed on 12/19/17 at 13:56:59 by Gedare Bloom
Description: | modified (diff) |
---|
comment:3 Changed on 12/21/17 at 04:27:17 by Chris Johns
comment:4 follow-up: 5 Changed on 01/05/18 at 16:51:03 by Joel Sherrill
This is needed on the 4.10 branch to build tools with GCC >= 4.3 but the option does not exist on older GCC's. Given that 4.3 is quite old, any recent distribution should be OK. But if someone updated on an old distribution with a gcc < 4.3, this option should not be present.
Is there a clean way to make this CFLAGS="-fgnu89-inline" default to on but let someone disable it if they are still on an old distribution? They would be using a host OS which is completely unsupported since even CentOS 6 had a gcc new enough.
Chris? What would be the cleanest way to achieve this? We need to be able to build 4.10 on recent environments.
comment:5 Changed on 01/15/18 at 23:26:14 by Chris Johns
Replying to Joel Sherrill:
Chris? What would be the cleanest way to achieve this? We need to be able to build 4.10 on recent environments.
Test on the hosts this release must support. I have not been able to find that list?
comment:6 Changed on 01/16/18 at 07:02:43 by Chris Johns
The change posted in the description is not suitable. The flags cannot be set on make
's command line this way as it overrides any RSB derived flag updates. A better solution is to use:
# %global _gcclibdir %{_prefix}/lib +# +# Update the build flags need to build the older gcc with newer compilers. +# +%define build_cflags %{build_cflags} -fgnu89-inline
The -fgnu89-inline
is not needed on FreeBSD, adding it does not harm the build.
The FreeBSD builds all fail with the same problem reported in #3027 on the 4.11 branch, building makeinfo
. Adding the patch from that ticket lets the ARM architecture build but it then fails with a number of these error messages:
../../../../gcc-4.4.7/libgcc/../gcc/config/arm/ieee754-sf.S: Assembler messages: ../../../../gcc-4.4.7/libgcc/../gcc/config/arm/ieee754-sf.S:452: Error: invalid constant (ff) after fixup ../../../../gcc-4.4.7/libgcc/../gcc/config/arm/ieee754-sf.S:518: Error: invalid constant (7f) after fixup
comment:7 Changed on 01/16/18 at 07:12:30 by Chris Johns
The ARM build issue is the same as #2439. Using binutils-2.26
fixes the issue.
comment:8 Changed on 01/16/18 at 09:49:47 by Chris Johns
All but SPARC and AVR build with this version of binutils. The SPARC builds with the current binutils-2.20
and the AVR looks like something unrelated and I wonder if it built before now on FreeBSD.
As a result ARM needs to change it's binutils version.
comment:9 Changed on 01/22/18 at 22:52:01 by Chris Johns <chrisj@…>
comment:10 Changed on 01/23/18 at 03:03:54 by Chris Johns
Blocked By: | 2439 added |
---|
I am also not sure if it is an issue on other host OSes or distros. Is this specific to RedHat?? We would need to check Windows, MacOS and FreeBSD to know.
I am sorry I have no unfunded time for 4.10 issues. Maybe the Milestone should be indefinite.