[gcc] ppc build fixes.

Jakub Jelinek jakub at fedoraproject.org
Mon Jan 24 11:54:20 UTC 2011


commit eaa63a45985af5ab811f190ea6bbb351a92ab10e
Author: Jakub Jelinek <jakub at redhat.com>
Date:   Mon Jan 24 12:53:05 2011 +0100

    ppc build fixes.

 gcc.spec |   48 +++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 43 insertions(+), 5 deletions(-)
---
diff --git a/gcc.spec b/gcc.spec
index b23e100..46c53a7 100644
--- a/gcc.spec
+++ b/gcc.spec
@@ -12,7 +12,11 @@
 %global build_ada 0
 %endif
 %global build_java 1
+%ifarch %{ix86} x86_64
 %global build_go 1
+%else
+%global build_go 0
+%endif
 %ifarch %{ix86} x86_64 ia64
 %global build_libquadmath 1
 %else
@@ -732,6 +736,14 @@ case "$OPT_FLAGS" in
       ../gcc/Makefile.in
     ;;
 esac
+enablelgo=
+enablelada=
+%if %{build_ada}
+enablelada=,ada
+%endif
+%if %{build_go}
+enablelgo=,go
+%endif
 CC="$CC" CFLAGS="$OPT_FLAGS" CXXFLAGS="`echo $OPT_FLAGS | sed 's/ -Wall / /g'`" \
 	XCFLAGS="$OPT_FLAGS" TCFLAGS="$OPT_FLAGS" GCJFLAGS="$OPT_FLAGS" \
 	../configure --prefix=%{_prefix} --mandir=%{_mandir} --infodir=%{_infodir} \
@@ -739,11 +751,7 @@ CC="$CC" CFLAGS="$OPT_FLAGS" CXXFLAGS="`echo $OPT_FLAGS | sed 's/ -Wall / /g'`"
 	--enable-shared --enable-threads=posix --enable-checking=release \
 	--with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions \
 	--enable-gnu-unique-object --enable-linker-build-id \
-%if !%{build_ada}
-	--enable-languages=c,c++,objc,obj-c++,java,fortran,go,lto \
-%else
-	--enable-languages=c,c++,objc,obj-c++,java,fortran,ada,go,lto \
-%endif
+	--enable-languages=c,c++,objc,obj-c++,java,fortran${enablelada}${enablelgo},lto \
 	--enable-plugin \
 %if !%{build_java}
 	--disable-libgcj \
@@ -859,12 +867,14 @@ cp -p libjava/LIBGCJ_LICENSE rpm.doc/libjava/
 	cp -p $i ../rpm.doc/libquadmath/$i.libquadmath
 done)
 %endif
+%if %{build_go}
 (cd gcc/go; for i in README* ChangeLog*; do
 	cp -p $i ../../rpm.doc/go/$i
 done)
 (cd libgo; for i in LICENSE* PATENTS* README; do
 	cp -p $i ../rpm.doc/libgo/$i.libgo
 done)
+%endif
 
 rm -f rpm.doc/changelogs/gcc/ChangeLog.[1-9]
 find rpm.doc -name \*ChangeLog\* | xargs bzip2 -9
@@ -1080,7 +1090,9 @@ ln -sf ../../../libgfortran.so.3.* libgfortran.so
 ln -sf ../../../libgomp.so.1.* libgomp.so
 ln -sf ../../../libmudflap.so.0.* libmudflap.so
 ln -sf ../../../libmudflapth.so.0.* libmudflapth.so
+%if %{build_go}
 ln -sf ../../../libgo.so.0.* libgo.so
+%endif
 %if %{build_libquadmath}
 ln -sf ../../../libquadmath.so.0.* libquadmath.so
 %endif
@@ -1096,7 +1108,9 @@ ln -sf ../../../../%{_lib}/libgfortran.so.3.* libgfortran.so
 ln -sf ../../../../%{_lib}/libgomp.so.1.* libgomp.so
 ln -sf ../../../../%{_lib}/libmudflap.so.0.* libmudflap.so
 ln -sf ../../../../%{_lib}/libmudflapth.so.0.* libmudflapth.so
+%if %{build_go}
 ln -sf ../../../../%{_lib}/libgo.so.0.* libgo.so
+%endif
 %if %{build_libquadmath}
 ln -sf ../../../../%{_lib}/libquadmath.so.0.* libquadmath.so
 %endif
@@ -1118,8 +1132,10 @@ mv -f %{buildroot}%{_prefix}/%{_lib}/libmudflap{,th}.*a $FULLLPATH/
 %if %{build_libquadmath}
 mv -f %{buildroot}%{_prefix}/%{_lib}/libquadmath.*a $FULLLPATH/
 %endif
+%if %{build_go}
 mv -f %{buildroot}%{_prefix}/%{_lib}/libgo.*a $FULLLPATH/
 mv -f %{buildroot}%{_prefix}/%{_lib}/libgobegin.*a $FULLLPATH/
+%endif
 
 %if %{build_ada}
 %ifarch sparcv9 ppc
@@ -1170,9 +1186,11 @@ echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib/libmudflap.so.0.* | sed 's,^
 echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib/libmudflapth.so.0.* | sed 's,^.*libm,libm,'`' )' > libmudflapth.so
 echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib/libmudflap.so.0.* | sed 's,^.*libm,libm,'`' )' > 64/libmudflap.so
 echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib/libmudflapth.so.0.* | sed 's,^.*libm,libm,'`' )' > 64/libmudflapth.so
+%if %{build_go}
 rm -f libgo.so
 echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib/libgo.so.0.* | sed 's,^.*libg,libg,'`' )' > libgo.so
 echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib/libgo.so.0.* | sed 's,^.*libg,libg,'`' )' > 64/libgo.so
+%endif
 %if %{build_libquadmath}
 rm -f libquadmath.so
 echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib/libquadmath.so.0.* | sed 's,^.*libq,libq,'`' )' > libquadmath.so
@@ -1201,10 +1219,12 @@ ln -sf ../lib64/libmudflapth.a 64/libmudflapth.a
 ln -sf lib32/libquadmath.a libquadmath.a
 ln -sf ../lib64/libquadmath.a 64/libquadmath.a
 %endif
+%if %{build_go}
 ln -sf lib32/libgo.a libgo.a
 ln -sf ../lib64/libgo.a 64/libgo.a
 ln -sf lib32/libgobegin.a libgobegin.a
 ln -sf ../lib64/libgobegin.a 64/libgobegin.a
+%endif
 %if %{build_ada}
 ln -sf lib32/adainclude adainclude
 ln -sf ../lib64/adainclude 64/adainclude
@@ -1223,9 +1243,11 @@ echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib64/libmudflap.so.0.* | sed
 echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib64/libmudflapth.so.0.* | sed 's,^.*libm,libm,'`' )' > libmudflapth.so
 echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib64/libmudflap.so.0.* | sed 's,^.*libm,libm,'`' )' > 32/libmudflap.so
 echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib64/libmudflapth.so.0.* | sed 's,^.*libm,libm,'`' )' > 32/libmudflapth.so
+%if %{build_go}
 rm -f libgo.so
 echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib64/libgo.so.0.* | sed 's,^.*libg,libg,'`' )' > libgo.so
 echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib64/libgo.so.0.* | sed 's,^.*libg,libg,'`' )' > 32/libgo.so
+%endif
 %if %{build_libquadmath}
 rm -f libquadmath.so
 echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib64/libquadmath.so.0.* | sed 's,^.*libq,libq,'`' )' > libquadmath.so
@@ -1254,10 +1276,12 @@ ln -sf lib64/libmudflapth.a libmudflapth.a
 ln -sf ../lib32/libquadmath.a 32/libquadmath.a
 ln -sf lib64/libquadmath.a libquadmath.a
 %endif
+%if %{build_go}
 ln -sf ../lib32/libgo.a 32/libgo.a
 ln -sf lib64/libgo.a libgo.a
 ln -sf ../lib32/libgobegin.a 32/libgobegin.a
 ln -sf lib64/libgobegin.a libgobegin.a
+%endif
 %if %{build_java}
 ln -sf ../lib32/libgcj_bc.so 32/libgcj_bc.so
 ln -sf lib64/libgcj_bc.so libgcj_bc.so
@@ -1278,8 +1302,10 @@ ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_version}/libm
 %if %{build_libquadmath}
 ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_version}/libquadmath.a 32/libquadmath.a
 %endif
+%if %{build_go}
 ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_version}/libgo.a 32/libgo.a
 ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_version}/libgobegin.a 32/libgobegin.a
+%endif
 %if %{build_java}
 ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_version}/libgcj_bc.so 32/libgcj_bc.so
 %endif
@@ -1299,8 +1325,12 @@ popd
 chmod 755 %{buildroot}%{_prefix}/%{_lib}/libgfortran.so.3.*
 chmod 755 %{buildroot}%{_prefix}/%{_lib}/libgomp.so.1.*
 chmod 755 %{buildroot}%{_prefix}/%{_lib}/libmudflap{,th}.so.0.*
+%if %{build_libquadmath}
 chmod 755 %{buildroot}%{_prefix}/%{_lib}/libquadmath.so.0.*
+%endif
+%if %{build_go}
 chmod 755 %{buildroot}%{_prefix}/%{_lib}/libgo.so.0.*
+%endif
 chmod 755 %{buildroot}%{_prefix}/%{_lib}/libobjc.so.3.*
 
 %if %{build_ada}
@@ -1369,17 +1399,21 @@ rm -f %{buildroot}%{_prefix}/bin/%{_target_platform}-gcj || :
 # Remove libraries for the other arch on multilib arches
 rm -f %{buildroot}%{_prefix}/lib/lib*.so*
 rm -f %{buildroot}%{_prefix}/lib/lib*.a
+%if %{build_go}
 rm -rf %{buildroot}%{_prefix}/lib/go/%{gcc_version}/%{gcc_target_platform}
 %ifnarch sparc64 ppc64
 ln -sf %{multilib_32_arch}-%{_vendor}-%{_target_os} %{buildroot}%{_prefix}/lib/go/%{gcc_version}/%{gcc_target_platform}
 %endif
+%endif
 %else
 %ifarch sparcv9 ppc
 rm -f %{buildroot}%{_prefix}/lib64/lib*.so*
 rm -f %{buildroot}%{_prefix}/lib64/lib*.a
+%if %{build_go}
 rm -rf %{buildroot}%{_prefix}/lib64/go/%{gcc_version}/%{gcc_target_platform}
 %endif
 %endif
+%endif
 
 %if %{build_java}
 mkdir -p %{buildroot}%{_prefix}/share/java/gcj-endorsed \
@@ -2206,6 +2240,7 @@ fi
 %endif
 %endif
 
+%if %{build_go}
 %files go
 %defattr(-,root,root,-)
 %{_prefix}/bin/gccgo
@@ -2287,6 +2322,7 @@ fi
 %ifnarch sparcv9 sparc64 ppc ppc64
 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libgo.a
 %endif
+%endif
 
 %files plugin-devel
 %defattr(-,root,root,-)
@@ -2296,6 +2332,8 @@ fi
 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/plugin
 
 %changelog
+- build gcc-go and libgo* only on architectures that support it
+
 * Sat Jan 22 2011 Jakub Jelinek <jakub at redhat.com> 4.6.0-0.3
 - add gcc-go, libgo{,-devel,-static}, libquadmath{,-devel,-static},
   libgfortran-static and gcc-plugin-devel subpackages


More information about the scm-commits mailing list