mhlavink pushed to arm-none-eabi-gcc-cs (f22). "update to gcc 4.9.2 (..more)"

notifications at fedoraproject.org notifications at fedoraproject.org
Tue Apr 14 16:01:50 UTC 2015


>From 3f0a47ae08f0b55700e1f96c201998cba63f8901 Mon Sep 17 00:00:00 2001
From: Michal Hlavinka <mhlavink at redhat.com>
Date: Tue, 14 Apr 2015 18:01:29 +0200
Subject: update to gcc 4.9.2

- fix library compatiblity
- BOOTSTRAP version, not for regular use

diff --git a/.gitignore b/.gitignore
index 218007c..1ce55fb 100644
--- a/.gitignore
+++ b/.gitignore
@@ -2,3 +2,4 @@
 /gcc-2013.05-23.tar.bz2
 /gcc-2013.11-24.tar.bz2
 /gcc-2014.05-28.tar.bz2
+/gcc-4.9.2.tar.bz2
diff --git a/arm-none-eabi-gcc-cs.spec b/arm-none-eabi-gcc-cs.spec
index 41ccc72..c5620ec 100644
--- a/arm-none-eabi-gcc-cs.spec
+++ b/arm-none-eabi-gcc-cs.spec
@@ -6,16 +6,17 @@
 
 %global processor_arch arm
 %global target         %{processor_arch}-none-eabi
-%global gcc_ver        4.8.3
-%global gcc_short_ver  4.8
+%global gcc_ver        4.9.2
+%global gcc_short_ver  4.9
 
 # we need newlib to compile complete gcc, but we need gcc to compile newlib,
 # so compile minimal gcc first
-%global bootstrap      0
+%global bootstrap      1
 
 Name:           %{target}-gcc-cs
-Version:        %{cs_date}.%{cs_rel}
-Release:        2%{?dist}
+Epoch:          1
+Version:        4.9.2
+Release:        1%{?dist}
 Summary:        GNU GCC for cross-compilation for %{target} target
 Group:          Development/Tools
 
@@ -33,13 +34,15 @@ License:        GPLv2+ and GPLv3+ and LGPLv2+ and BSD
 URL:            http://www.codesourcery.com/sgpp/lite/%{processor_arch}
 
 #we don't use orignal tarball, because it's HUGE
-Source0:        gcc-%{cs_date}-%{cs_rel}.tar.bz2
+#Source0:        gcc-%{cs_date}-%{cs_rel}.tar.bz2
+Source0:        gcc-%{gcc_ver}.tar.bz2
 #Source0 origin:
 #wget https://sourcery.mentor.com/GNUToolchain/package%{cs_pkgnum}/public/%{target}/%{processor_arch}-%{cs_date}-%{cs_rel}-%{target}.src.tar.bz2
 #tar jxvf %{processor_arg}-%{cs_date}-%{cs_rel}-%{target}.src.tar.bz2
 
 Source1:        README.fedora
 Source2:        bootstrapexplain
+Patch1:         enable-with-multilib-list-for-arm.patch
 
 BuildRequires:  %{target}-binutils >= 2.21, zlib-devel gmp-devel mpfr-devel libmpc-devel flex autogen
 %if ! %{bootstrap}
@@ -74,7 +77,8 @@ GNU GCC release.
 
 %prep
 %setup -q -c
-pushd gcc-%{gcc_short_ver}-%{cs_date}
+pushd gcc-%{gcc_ver}
+%patch1 -p2 -b .arm
 
 contrib/gcc_update --touch
 popd
@@ -105,23 +109,37 @@ sed -e 's,^[ ]*/usr/lib/rpm.*/brp-strip,./brp-strip,' \
 mkdir -p gcc-%{target}
 pushd gcc-%{target}
 CC="%{__cc} ${RPM_OPT_FLAGS}" \
-../gcc-%{gcc_short_ver}-%{cs_date}/configure --prefix=%{_prefix} --mandir=%{_mandir} --libdir=%{_libdir} \
+../gcc-%{gcc_ver}/configure --prefix=%{_prefix} --mandir=%{_mandir} \
   --with-pkgversion="Fedora %{version}-%{release}" \
   --with-bugurl="https://bugzilla.redhat.com/" \
-  --enable-lto \
   --infodir=%{_infodir} --target=%{target} \
   --enable-interwork --enable-multilib \
+  --with-python-dir=share/gcc-%{target} \
+  --with-multilib-list=armv6-m,armv7-m,armv7e-m,armv7-r \
+    --enable-plugins \
+    --disable-decimal-float \
+    --disable-libffi \
+    --disable-libgomp \
+    --disable-libmudflap \
+    --disable-libquadmath \
+    --disable-libssp \
+    --disable-libstdcxx-pch \
+   --disable-libstdc++-v3 \
+    --disable-nls \
+    --disable-shared \
+    --disable-threads \
+    --disable-tls \
 %if %{bootstrap}
-  --enable-languages=c --disable-nls --disable-shared --disable-threads --with-gnu-as --with-gnu-ld --with-gmp --with-mpfr --with-mpc --without-headers --with-system-zlib --disable-libssp
+   --enable-languages=c --with-newlib --disable-nls --disable-shared --disable-threads --with-gnu-as --with-gnu-ld --with-gmp --with-mpfr --with-mpc --without-headers 
 %else
-  --enable-languages=c,c++ --enable-plugins --disable-nls --disable-shared --disable-threads --with-gnu-as --with-gnu-ld --with-gmp --with-mpfr --with-mpc --with-newlib --with-headers=/usr/%{target}/include --with-system-zlib
+   --enable-languages=c,c++ --with-newlib --disable-nls --disable-shared --disable-threads --with-gnu-as --with-gnu-ld --with-gmp --with-mpfr --with-mpc --with-headers=/usr/%{target}/include --with-system-zlib
 %endif
+#  --enable-lto \
 
-# In general, building GCC is not smp-safe, but give it initial push anyway
 %if %{bootstrap}
-make all-gcc %{?_smp_mflags} || make all-gcc
+make all-gcc  INHIBIT_LIBC_CFLAGS='-DUSE_TM_CLONE_REGISTRY=0'
 %else
-make %{?_smp_mflags} || make
+make  INHIBIT_LIBC_CFLAGS='-DUSE_TM_CLONE_REGISTRY=0'
 %endif
 popd
 
@@ -139,12 +157,17 @@ popd
 # we don't want these as we are a cross version
 rm -r $RPM_BUILD_ROOT%{_infodir}
 rm -r $RPM_BUILD_ROOT%{_mandir}/man7
-rm -f $RPM_BUILD_ROOT%{_libdir}/libiberty.a
+rm -f $RPM_BUILD_ROOT%{_prefix}/lib/libiberty.a
 # and these aren't usefull for embedded targets
 rm -r $RPM_BUILD_ROOT%{_prefix}/lib*/gcc/%{target}/%{gcc_ver}/install-tools ||:
 rm -r $RPM_BUILD_ROOT%{_libexecdir}/gcc/%{target}/%{gcc_ver}/install-tools ||:
 rm -f $RPM_BUILD_ROOT%{_libexecdir}/gcc/%{target}/%{gcc_ver}/*.la
 
+
+mkdir -p $RPM_BUILD_ROOT/usr/%{target}/share/gcc-%{gcc_ver}/
+mv $RPM_BUILD_ROOT/%{_datadir}/gcc-%{gcc_ver}/* $RPM_BUILD_ROOT/usr/%{target}/share/gcc-%{gcc_ver}/ ||:
+rm -rf $RPM_BUILD_ROOT/%{_datadir}/gcc-%{gcc_ver} ||:
+
 %global __os_install_post . ./os_install_post
 
 
@@ -159,18 +182,18 @@ popd
 
 %files
 %defattr(-,root,root,-)
-%doc gcc-%{gcc_short_ver}-%{cs_date}/COPYING*
-%doc gcc-%{gcc_short_ver}-%{cs_date}/README README.fedora
+%doc gcc-%{gcc_ver}/COPYING*
+%doc gcc-%{gcc_ver}/README README.fedora
 %{_bindir}/%{target}-*
-%dir %{_libdir}/gcc
-%dir %{_libdir}/gcc/%{target}
-%{_libdir}/gcc/%{target}/%{gcc_ver}
+%dir %{_prefix}/lib/gcc
+%dir %{_prefix}/lib/gcc/%{target}
+%{_prefix}/lib/gcc/%{target}/%{gcc_ver}
 %dir %{_libexecdir}/gcc
 %dir %{_libexecdir}/gcc/%{target}
 %{_libexecdir}/gcc/%{target}/%{gcc_ver}
 %{_mandir}/man1/%{target}-*.1.gz
 %if ! %{bootstrap}
-/usr/%{target}/lib/
+#/usr/%{target}/lib/
 %exclude %{_bindir}/%{target}-?++
 %exclude %{_libexecdir}/gcc/%{target}/%{gcc_ver}/cc1plus
 %exclude %{_mandir}/man1/%{target}-g++.1.gz
@@ -181,13 +204,18 @@ popd
 %{_bindir}/%{target}-?++
 %if ! %{bootstrap}
 %{_libexecdir}/gcc/%{target}/%{gcc_ver}/cc1plus
-/usr/%{target}/include/c++/
-%dir /usr/%{target}/share/gcc-%{gcc_ver}/python/
-/usr/%{target}/share/gcc-%{gcc_ver}/python/libstdcxx/
+#/usr/%{target}/include/c++/
+#%dir /usr/%{target}/share/gcc-%{gcc_ver}/python/
+#/usr/%{target}/share/gcc-%{gcc_ver}/python/libstdcxx/
 %{_mandir}/man1/%{target}-g++.1.gz
 %endif
 
 %changelog
+* Tue Apr 14 2015 Michal Hlavinka <mhlavink at redhat.com> - 1:4.9.2-1
+- update to gcc 4.9.2
+- fix library compatiblity 
+- BOOTSTRAP version, not for regular use
+
 * Tue Sep 02 2014 Michal Hlavinka <mhlavink at redhat.com> - 2014.05.28-2
 - update workaround that prevents stripping of arm libraries
 
diff --git a/enable-with-multilib-list-for-arm.patch b/enable-with-multilib-list-for-arm.patch
new file mode 100644
index 0000000..49dda39
--- /dev/null
+++ b/enable-with-multilib-list-for-arm.patch
@@ -0,0 +1,189 @@
+diff -up arm-none-eabi-gcc-cs-2014.05.28/gcc-4.9.2/gcc/config/arm/t-mlibs.arm arm-none-eabi-gcc-cs-2014.05.28/gcc-4.9.2/gcc/config/arm/t-mlibs
+--- arm-none-eabi-gcc-cs-2014.05.28/gcc-4.9.2/gcc/config/arm/t-mlibs.arm	2015-04-14 13:16:49.730451942 +0200
++++ arm-none-eabi-gcc-cs-2014.05.28/gcc-4.9.2/gcc/config/arm/t-mlibs	2015-04-14 13:16:49.730451942 +0200
+@@ -0,0 +1,89 @@
++# A set of predefined MULTILIB which can be used for different ARM targets.
++# Via the configure option --with-multilib-list, user can customize the
++# final MULTILIB implementation.
++
++comma := ,
++space :=
++space +=
++
++MULTILIB_OPTIONS   = mthumb/marm
++MULTILIB_DIRNAMES  = thumb arm
++MULTILIB_OPTIONS  += march=armv6s-m/march=armv7-m/march=armv7e-m/march=armv7
++MULTILIB_DIRNAMES += armv6-m armv7-m armv7e-m armv7-ar
++MULTILIB_OPTIONS  += mfloat-abi=softfp/mfloat-abi=hard
++MULTILIB_DIRNAMES += softfp fpu
++MULTILIB_OPTIONS  += mfpu=fpv4-sp-d16/mfpu=vfpv3-d16
++MULTILIB_DIRNAMES += fpv4-sp-d16 vfpv3-d16
++
++MULTILIB_MATCHES   = march?armv6s-m=mcpu?cortex-m0
++MULTILIB_MATCHES  += march?armv6s-m=mcpu?cortex-m0plus
++MULTILIB_MATCHES  += march?armv6s-m=mcpu?cortex-m1
++MULTILIB_MATCHES  += march?armv6s-m=march?armv6-m
++MULTILIB_MATCHES  += march?armv7-m=mcpu?cortex-m3
++MULTILIB_MATCHES  += march?armv7e-m=mcpu?cortex-m4
++MULTILIB_MATCHES  += march?armv7e-m=mcpu?cortex-m7
++MULTILIB_MATCHES  += march?armv7=march?armv7-r
++MULTILIB_MATCHES  += march?armv7=march?armv7-a
++MULTILIB_MATCHES  += march?armv7=mcpu?cortex-r4
++MULTILIB_MATCHES  += march?armv7=mcpu?cortex-r4f
++MULTILIB_MATCHES  += march?armv7=mcpu?cortex-r5
++MULTILIB_MATCHES  += march?armv7=mcpu?cortex-r7
++MULTILIB_MATCHES  += march?armv7=mcpu?cortex-a5
++MULTILIB_MATCHES  += march?armv7=mcpu?cortex-a7
++MULTILIB_MATCHES  += march?armv7=mcpu?cortex-a8
++MULTILIB_MATCHES  += march?armv7=mcpu?cortex-a9
++MULTILIB_MATCHES  += march?armv7=mcpu?cortex-a15
++MULTILIB_MATCHES  += mfpu?fpv4-sp-d16=mfpu?fpv5-sp-d16
++MULTILIB_MATCHES  += mfpu?fpv4-sp-d16=mfpu?fpv5-d16
++MULTILIB_MATCHES  += mfpu?vfpv3-d16=mfpu?vfpv3
++MULTILIB_MATCHES  += mfpu?vfpv3-d16=mfpu?vfpv3-fp16
++MULTILIB_MATCHES  += mfpu?vfpv3-d16=mfpu?vfpv3-d16-fp16
++MULTILIB_MATCHES  += mfpu?vfpv3-d16=mfpu?vfpv3xd
++MULTILIB_MATCHES  += mfpu?vfpv3-d16=mfpu?vfpv3xd-fp16
++MULTILIB_MATCHES  += mfpu?vfpv3-d16=mfpu?vfpv4
++MULTILIB_MATCHES  += mfpu?vfpv3-d16=mfpu?vfpv4-d16
++MULTILIB_MATCHES  += mfpu?vfpv3-d16=mfpu?neon
++MULTILIB_MATCHES  += mfpu?vfpv3-d16=mfpu?neon-fp16
++MULTILIB_MATCHES  += mfpu?vfpv3-d16=mfpu?neon-vfpv4
++
++MULTILIB_EXCEPTIONS =
++MULTILIB_REUSE =
++
++MULTILIB_REQUIRED  = mthumb
++MULTILIB_REQUIRED += marm
++MULTILIB_REQUIRED += mfloat-abi=hard
++
++MULTILIB_OSDIRNAMES  = mthumb=!thumb
++MULTILIB_OSDIRNAMES += marm=!arm
++MULTILIB_OSDIRNAMES += mfloat-abi.hard=!fpu
++
++ifneq (,$(findstring armv6-m,$(subst $(comma),$(space),$(with_multilib_list))))
++MULTILIB_REQUIRED   += mthumb/march=armv6s-m
++MULTILIB_OSDIRNAMES += mthumb/march.armv6s-m=!armv6-m
++endif
++
++ifneq (,$(findstring armv7-m,$(subst $(comma),$(space),$(with_multilib_list))))
++MULTILIB_REQUIRED   += mthumb/march=armv7-m
++MULTILIB_OSDIRNAMES += mthumb/march.armv7-m=!armv7-m
++endif
++
++ifneq (,$(findstring armv7e-m,$(subst $(comma),$(space),$(with_multilib_list))))
++MULTILIB_REQUIRED   += mthumb/march=armv7e-m
++MULTILIB_REQUIRED   += mthumb/march=armv7e-m/mfloat-abi=softfp/mfpu=fpv4-sp-d16
++MULTILIB_REQUIRED   += mthumb/march=armv7e-m/mfloat-abi=hard/mfpu=fpv4-sp-d16
++MULTILIB_OSDIRNAMES += mthumb/march.armv7e-m=!armv7e-m
++MULTILIB_OSDIRNAMES += mthumb/march.armv7e-m/mfloat-abi.hard/mfpu.fpv4-sp-d16=!armv7e-m/fpu
++MULTILIB_OSDIRNAMES += mthumb/march.armv7e-m/mfloat-abi.softfp/mfpu.fpv4-sp-d16=!armv7e-m/softfp
++endif
++
++ifneq (,$(filter armv7 armv7-r armv7-a,$(subst $(comma),$(space),$(with_multilib_list))))
++MULTILIB_REQUIRED   += mthumb/march=armv7
++MULTILIB_REQUIRED   += mthumb/march=armv7/mfloat-abi=softfp/mfpu=vfpv3-d16
++MULTILIB_REQUIRED   += mthumb/march=armv7/mfloat-abi=hard/mfpu=vfpv3-d16
++MULTILIB_OSDIRNAMES += mthumb/march.armv7=!armv7-ar/thumb
++MULTILIB_OSDIRNAMES += mthumb/march.armv7/mfloat-abi.hard/mfpu.vfpv3-d16=!armv7-ar/thumb/fpu
++MULTILIB_OSDIRNAMES += mthumb/march.armv7/mfloat-abi.softfp/mfpu.vfpv3-d16=!armv7-ar/thumb/softfp
++MULTILIB_REUSE      += mthumb/march.armv7=marm/march.armv7
++MULTILIB_REUSE      += mthumb/march.armv7/mfloat-abi.softfp/mfpu.vfpv3-d16=marm/march.armv7/mfloat-abi.softfp/mfpu.vfpv3-d16
++MULTILIB_REUSE      += mthumb/march.armv7/mfloat-abi.hard/mfpu.vfpv3-d16=marm/march.armv7/mfloat-abi.hard/mfpu.vfpv3-d16
++endif
+diff -up arm-none-eabi-gcc-cs-2014.05.28/gcc-4.9.2/gcc/config.gcc.arm arm-none-eabi-gcc-cs-2014.05.28/gcc-4.9.2/gcc/config.gcc
+--- arm-none-eabi-gcc-cs-2014.05.28/gcc-4.9.2/gcc/config.gcc.arm	2014-09-17 16:16:02.000000000 +0200
++++ arm-none-eabi-gcc-cs-2014.05.28/gcc-4.9.2/gcc/config.gcc	2015-04-14 13:27:35.826348751 +0200
+@@ -1056,7 +1056,7 @@ arm*-*-eabi* | arm*-*-symbianelf* | arm*
+ 	case ${target} in
+ 	arm*-*-eabi*)
+ 	  tm_file="$tm_file newlib-stdint.h"
+-	  tmake_file="${tmake_file} arm/t-bpabi"
++	  tmake_file="${tmake_file} arm/t-bpabi arm/t-mlibs"
+ 	  use_gcc_stdint=wrap
+ 	  ;;
+ 	arm*-*-rtems*)
+@@ -3589,42 +3589,6 @@ case "${target}" in
+ 			echo "Warning: --with-arch overrides --with-cpu=$with_cpu" 1>&2
+ 		fi
+ 
+-		# Add extra multilibs
+-		if test "x$with_multilib_list" != x; then
+-			arm_multilibs=`echo $with_multilib_list | sed -e 's/,/ /g'`
+-			for arm_multilib in ${arm_multilibs}; do
+-				case ${arm_multilib} in
+-				aprofile)
+-				# Note that arm/t-aprofile is a
+-				# stand-alone make file fragment to be
+-				# used only with itself.  We do not
+-				# specifically use the
+-				# TM_MULTILIB_OPTION framework because
+-				# this shorthand is more
+-				# pragmatic. Additionally it is only
+-				# designed to work without any
+-				# with-cpu, with-arch with-mode
+-				# with-fpu or with-float options.
+-					if test "x$with_arch" != x \
+-					    || test "x$with_cpu" != x \
+-					    || test "x$with_float" != x \
+-					    || test "x$with_fpu" != x \
+-					    || test "x$with_mode" != x ; then
+-					    echo "Error: You cannot use any of --with-arch/cpu/fpu/float/mode with --with-multilib-list=aprofile" 1>&2
+-					    exit 1
+-					fi
+-					tmake_file="${tmake_file} arm/t-aprofile"
+-					break
+-					;;
+-				default)
+-					;;
+-				*)
+-					echo "Error: --with-multilib-list=${with_multilib_list} not supported." 1>&2
+-					exit 1
+-					;;
+-				esac
+-			done
+-		fi
+ 		;;
+ 
+ 	fr*-*-*linux*)
+diff -up arm-none-eabi-gcc-cs-2014.05.28/gcc-4.9.2/gcc/configure.ac.arm arm-none-eabi-gcc-cs-2014.05.28/gcc-4.9.2/gcc/configure.ac
+--- arm-none-eabi-gcc-cs-2014.05.28/gcc-4.9.2/gcc/configure.ac.arm	2014-10-10 14:51:28.000000000 +0200
++++ arm-none-eabi-gcc-cs-2014.05.28/gcc-4.9.2/gcc/configure.ac	2015-04-14 13:16:49.734451928 +0200
+@@ -838,6 +838,7 @@ AC_ARG_WITH(multilib-list,
+ [AS_HELP_STRING([--with-multilib-list], [select multilibs (AArch64, SH and x86-64 only)])],
+ :,
+ with_multilib_list=default)
++AC_SUBST(with_multilib_list)
+ 
+ # -------------------------
+ # Checks for other programs
+diff -up arm-none-eabi-gcc-cs-2014.05.28/gcc-4.9.2/gcc/configure.arm arm-none-eabi-gcc-cs-2014.05.28/gcc-4.9.2/gcc/configure
+--- arm-none-eabi-gcc-cs-2014.05.28/gcc-4.9.2/gcc/configure.arm	2014-10-10 14:51:28.000000000 +0200
++++ arm-none-eabi-gcc-cs-2014.05.28/gcc-4.9.2/gcc/configure	2015-04-14 13:16:49.733451932 +0200
+@@ -761,6 +761,7 @@ LN
+ LN_S
+ AWK
+ SET_MAKE
++with_multilib_list
+ REPORT_BUGS_TEXI
+ REPORT_BUGS_TO
+ PKGVERSION
+@@ -7301,6 +7302,7 @@ else
+ fi
+ 
+ 
++
+ # -------------------------
+ # Checks for other programs
+ # -------------------------
+diff -up arm-none-eabi-gcc-cs-2014.05.28/gcc-4.9.2/gcc/Makefile.in.arm arm-none-eabi-gcc-cs-2014.05.28/gcc-4.9.2/gcc/Makefile.in
+--- arm-none-eabi-gcc-cs-2014.05.28/gcc-4.9.2/gcc/Makefile.in.arm	2014-10-16 15:50:42.000000000 +0200
++++ arm-none-eabi-gcc-cs-2014.05.28/gcc-4.9.2/gcc/Makefile.in	2015-04-14 13:16:49.729451945 +0200
+@@ -540,6 +540,7 @@ lang_opt_files=@lang_opt_files@ $(srcdir
+ lang_specs_files=@lang_specs_files@
+ lang_tree_files=@lang_tree_files@
+ target_cpu_default=@target_cpu_default@
++with_multilib_list=@with_multilib_list@
+ OBJC_BOEHM_GC=@objc_boehm_gc@
+ extra_modes_file=@extra_modes_file@
+ extra_opt_files=@extra_opt_files@
diff --git a/sources b/sources
index 7f89f01..ff000f3 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-f17815dccade0fea6e37ebcc9aca6e2f  gcc-2014.05-28.tar.bz2
+4df8ee253b7f3863ad0b86359cd39c43  gcc-4.9.2.tar.bz2
-- 
cgit v0.10.2


	http://pkgs.fedoraproject.org/cgit/arm-none-eabi-gcc-cs.git/commit/?h=f22&id=3f0a47ae08f0b55700e1f96c201998cba63f8901


More information about the scm-commits mailing list