From 6e9746a29c23951d259095145c1c60148cacec1a Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Wed, 15 May 2002 16:38:16 +0000 Subject: 2002-06-15 Ralf Corsepius * mkgcc3newlibspec.in: Remove SETUP (bogus). * gcc3newlib/target-c++.add: New. * gcc3newlib/Makefile.am: Add target-c++.add. * gcc3newlib/base-g77.add: Adapt to gcc-3.1. Reflect having split out c++. Various minor fixes. * gcc3newlib/base-gcc.add: Ditto. * gcc3newlib/gccnewlib.add: Ditto. * gcc3newlib/target-gcc.add: Ditto. --- scripts/ChangeLog | 11 +++++++++ scripts/gcc3newlib/Makefile.am | 6 +++-- scripts/gcc3newlib/base-g77.add | 2 +- scripts/gcc3newlib/base-gcc.add | 16 ++++--------- scripts/gcc3newlib/gccnewlib.add | 50 +++++++++++++++++++++++++++++++-------- scripts/gcc3newlib/target-c++.add | 25 ++++++++++++++++++++ scripts/gcc3newlib/target-gcc.add | 14 ++++------- scripts/mkgcc3newlibspec.in | 3 --- 8 files changed, 90 insertions(+), 37 deletions(-) create mode 100644 scripts/gcc3newlib/target-c++.add (limited to 'scripts') diff --git a/scripts/ChangeLog b/scripts/ChangeLog index 340943ccfe..6cd3026b95 100644 --- a/scripts/ChangeLog +++ b/scripts/ChangeLog @@ -1,3 +1,14 @@ +2002-06-15 Ralf Corsepius + + * mkgcc3newlibspec.in: Remove SETUP (bogus). + * gcc3newlib/target-c++.add: New. + * gcc3newlib/Makefile.am: Add target-c++.add. + * gcc3newlib/base-g77.add: Adapt to gcc-3.1. + Reflect having split out c++. Various minor fixes. + * gcc3newlib/base-gcc.add: Ditto. + * gcc3newlib/gccnewlib.add: Ditto. + * gcc3newlib/target-gcc.add: Ditto. + 2002-04-20 Ralf Corsepius * gcc3newlib/gccnewlib.add: Add gcc_update --touch to fix diff --git a/scripts/gcc3newlib/Makefile.am b/scripts/gcc3newlib/Makefile.am index 04f8764506..ee77454223 100644 --- a/scripts/gcc3newlib/Makefile.am +++ b/scripts/gcc3newlib/Makefile.am @@ -8,14 +8,16 @@ SUBPACKAGES = gccnewlib.add \ base-gcc.add target-gcc.add \ base-g77.add target-g77.add \ base-gcj.add target-gcj.add \ - target-objc.add + target-objc.add \ + target-c++.add gccnewlib.spec.in: $(SUBPACKAGES) cat $^ \ | sed -e 's%@GCCLANGS@%%g' > $@ CLEANFILES = gccnewlib.spec.in -gccnewlib_c_only.spec.in: gccnewlib.add base-gcc.add target-gcc.add +gccnewlib_c_only.spec.in: gccnewlib.add base-gcc.add target-gcc.add \ + target-c++.add cat $^ \ | sed -e "s%@GCCLANGS@%\'--enable-languages=c,c++\'%g" > $@ CLEANFILES += gccnewlib_c_only.spec.in diff --git a/scripts/gcc3newlib/base-g77.add b/scripts/gcc3newlib/base-g77.add index 1d75a55317..96f7d28efd 100644 --- a/scripts/gcc3newlib/base-g77.add +++ b/scripts/gcc3newlib/base-g77.add @@ -18,7 +18,7 @@ This is the files for gcc/g77 that are shared by all targets. %dir %{_prefix}/man %dir %{_prefix}/man/man1 -%doc %{_prefix}/man/man1/@target_alias@-g77.1 +%doc %{_prefix}/man/man1/@target_alias@-g77.1* %post -n rtems-base-g77 if test -d $RPM_INSTALL_PREFIX%{_prefix}/info; diff --git a/scripts/gcc3newlib/base-gcc.add b/scripts/gcc3newlib/base-gcc.add index 370ad9f366..21341bb0a9 100644 --- a/scripts/gcc3newlib/base-gcc.add +++ b/scripts/gcc3newlib/base-gcc.add @@ -20,22 +20,16 @@ This is the files for gcc and newlib that are shared by all targets. %doc %{_prefix}/info/libc.info*.gz %doc %{_prefix}/info/libm.info*.gz -%dir %{_prefix}/bin -%{_prefix}/bin/gcov@exe_ext@ -%{_prefix}/bin/gccbug@exe_ext@ - %dir %{_prefix}/man %dir %{_prefix}/man/man1 -%doc %{_prefix}/man/man1/cpp.1 -%doc %{_prefix}/man/man1/gcov.1 -# %doc %{_prefix}/man/man1/cccp.1 +%doc %{_prefix}/man/man1/cpp.1* +%doc %{_prefix}/man/man1/gcov.1* %dir %{_prefix}/man/man7 -%doc %{_prefix}/man/man7/fsf-funding.7 -%doc %{_prefix}/man/man7/gfdl.7 -%doc %{_prefix}/man/man7/gpl.7 +%doc %{_prefix}/man/man7/fsf-funding.7* +%doc %{_prefix}/man/man7/gfdl.7* +%doc %{_prefix}/man/man7/gpl.7* %dir %{_prefix}/include -%{_prefix}/include/g++-v3 %post -n rtems-base-gcc if test -d $RPM_INSTALL_PREFIX%{_prefix}/info; diff --git a/scripts/gcc3newlib/gccnewlib.add b/scripts/gcc3newlib/gccnewlib.add index 9ce4ad1198..dab0dd4b5e 100644 --- a/scripts/gcc3newlib/gccnewlib.add +++ b/scripts/gcc3newlib/gccnewlib.add @@ -60,13 +60,16 @@ This is gcc's and newlib C Library's sources with patches for RTEMS. %prep # untar the sources inside @target_alias@-gcc-newlib -%setup -c -n %{name} @SETUP@ +%setup -c -T -n %{name} -a0 -a1 @PATCH2@ @PATCH4@ # Fix timestamps - gcc-@gcc_version@/contrib/gcc_update --touch + cd gcc-@gcc_version@ + contrib/gcc_update --touch + cd .. + # Copy the C library into gcc's source tree ln -s ../newlib-@newlib_version@/newlib gcc-@gcc_version@ test -d build || mkdir build @@ -81,8 +84,9 @@ This is gcc's and newlib C Library's sources with patches for RTEMS. ../gcc-@gcc_version@/configure $CONFIGURE_ARGS --target=@target_alias@ \ --with-gnu-as --with-gnu-ld --with-newlib --verbose \ + --with-system-zlib --disable-nls \ + --enable-version-specific-runtime-libs \ --enable-threads=rtems --prefix=%{_prefix} @GCCLANGS@ - make all make info @@ -93,20 +97,19 @@ This is gcc's and newlib C Library's sources with patches for RTEMS. # ../gcc-@gcc_version@/mkinstalldirs \ # $RPM_BUILD_ROOT%{_prefix}/@target_alias@/bin # - + make prefix=$RPM_BUILD_ROOT%{_prefix} install cd @target_alias@/newlib make prefix=$RPM_BUILD_ROOT%{_prefix} install-info + # cd back to build/ + cd ../.. # Bug in gcc-3.0.x: It puts the build dirs into *.la files files=`find ${RPM_BUILD_ROOT}%{_prefix}/@target_alias@/lib -name '*.la'` - for i in $files; do + test -n "$files" && for i in $files; do rm -f $i done - # cd back to build/ - cd ../.. - # Bug in gcc-2.95.x: It bogusly tries to share cpp for all targets. # Rename it to target_alias-cpp # if test -f $RPM_BUILD_ROOT%{_prefix}/bin/cpp@exe_ext@; @@ -126,8 +129,19 @@ This is gcc's and newlib C Library's sources with patches for RTEMS. echo "%dir %{_prefix}/lib/gcc-lib/@target_alias@" >> dirs ; # Collect multilib subdirectories - TGTDIR="%{_prefix}/lib/gcc-lib/@target_alias@/@gcc_version@" f=`gcc/xgcc -Bgcc/ --print-multi-lib | sed -e 's,;.*$,,'` + + TGTDIR="%{_prefix}/lib/gcc-lib/@target_alias@/@gcc_version@" + for i in $f; do + case $i in + \.) echo "%dir ${TGTDIR}" >> dirs + ;; + *) echo "%dir ${TGTDIR}/$i" >> dirs + ;; + esac + done + + TGTDIR="%{_prefix}/@target_alias@/lib" for i in $f; do case $i in \.) echo "%dir ${TGTDIR}" >> dirs @@ -142,22 +156,38 @@ This is gcc's and newlib C Library's sources with patches for RTEMS. cp dirs files.g77 cp dirs files.objc cp dirs files.gcj + cp dirs files.g++ + TGTDIR="%{_prefix}/lib/gcc-lib/@target_alias@/@gcc_version@" f=`find ${RPM_BUILD_ROOT}${TGTDIR} ! -type d -print | sed -e "s,^$RPM_BUILD_ROOT,,g"`; for i in $f; do case $i in + *lib*.la);; # ignore: gcc produces bogus libtool libs *f771) ;; *cc1obj) ;; *libobjc*) echo "$i" >> files.objc ;; *include/objc*) ;; + *include/g++*);; *jc1) ;; *jvgenmain) ;; + *libstdc++.a) echo "$i" >> files.g++ ;; + *libsupc++.a) echo "$i" >> files.g++ ;; *) echo "$i" >> files.gcc ;; esac done + TGTDIR="%{_prefix}/@target_alias@/lib" + f=`find ${RPM_BUILD_ROOT}${TGTDIR} ! -type d -print | sed -e "s,^$RPM_BUILD_ROOT,,g"`; + for i in $f; do + case $i in + *lib*.la);; # ignore - gcc produces bogus libtool libs + *libiberty.a) ;; # ignore - GPL'ed +# all other files belong to gcc + *) echo "$i" >> files.gcc ;; + esac + done + %clean # let rpm --clean remove BuildRoot iif using the default BuildRoot test "$RPM_BUILD_ROOT" = "%{_tmppath}/%{name}" && \ rm -rf $RPM_BUILD_ROOT - diff --git a/scripts/gcc3newlib/target-c++.add b/scripts/gcc3newlib/target-c++.add new file mode 100644 index 0000000000..5e310a9e4e --- /dev/null +++ b/scripts/gcc3newlib/target-c++.add @@ -0,0 +1,25 @@ +# ============================================================== +# @target_alias@-c++ +# ============================================================== +%package -n @target_alias@-c++ +Provides: @target_alias@-c++ +Summary: gcc/g++ compiler (c++) for @target_alias@ +Group: rtems +Requires: rtems-base-gcc @target_alias@-gcc + +%description -n @target_alias@-c++ +RTEMS is an open source operating system for embedded systems. + +This is the gcc/g++ compiler for @target_alias@ + +%files -n @target_alias@-c++ -f build/files.g++ +%doc %{_prefix}/man/man1/@target_alias@-g++.1* + +%dir %{_prefix}/bin +%{_prefix}/bin/@target_alias@-c++@exe_ext@ +%{_prefix}/bin/@target_alias@-g++@exe_ext@ +%{_prefix}/bin/@target_alias@-c++filt@exe_ext@ + +%{_prefix}/lib/gcc-lib/@target_alias@/@gcc_version@/cc1plus@exe_ext@ +%dir %{_prefix}/lib/gcc-lib/@target_alias@/@gcc_version@/include +%{_prefix}/lib/gcc-lib/@target_alias@/@gcc_version@/include/g++ diff --git a/scripts/gcc3newlib/target-gcc.add b/scripts/gcc3newlib/target-gcc.add index 313d3d9b49..825eb7289f 100644 --- a/scripts/gcc3newlib/target-gcc.add +++ b/scripts/gcc3newlib/target-gcc.add @@ -13,18 +13,12 @@ RTEMS is an open source operating system for embedded systems. This is gcc and newlib C Library for @target_alias@. %files -n @target_alias@-gcc -f build/files.gcc -%doc %{_prefix}/man/man1/@target_alias@-gcc.1 -%doc %{_prefix}/man/man1/@target_alias@-g++.1 +%doc %{_prefix}/man/man1/@target_alias@-gcc.1* %{_prefix}/bin/@target_alias@-cpp@exe_ext@ -%{_prefix}/bin/@target_alias@-c++@exe_ext@ -%{_prefix}/bin/@target_alias@-g++@exe_ext@ %{_prefix}/bin/@target_alias@-gcc@exe_ext@ -%{_prefix}/bin/@target_alias@-c++filt@exe_ext@ -# %{_prefix}/bin/@target_alias@-protoize@exe_ext@ -# %{_prefix}/bin/@target_alias@-unprotoize@exe_ext@ +%{_prefix}/bin/@target_alias@-gcov@exe_ext@ +%{_prefix}/bin/@target_alias@-gccbug@exe_ext@ +%{_prefix}/@target_alias@/include %dir %{_prefix}/lib/gcc-lib/@target_alias@/@gcc_version@/include - -%{_prefix}/@target_alias@ - diff --git a/scripts/mkgcc3newlibspec.in b/scripts/mkgcc3newlibspec.in index 12d71f193d..00be744092 100644 --- a/scripts/mkgcc3newlibspec.in +++ b/scripts/mkgcc3newlibspec.in @@ -62,14 +62,12 @@ if test -n "${gcc3_patch_version}"; then patchn=`expr $patchn + 1` PATCH1="Patch${patchn}: gcc-${gcc3_version}-rtems-${gcc3_patch_version}.diff" PATCH2="%patch${patchn} -p0" -SETUP="${SETUP} -a${patchn}" fi if test -n "${gcc3newlib_patch_version}"; then patchn=`expr $patchn + 1` PATCH3="Patch${patchn}: newlib-${gcc3newlib_version}-rtems-${gcc3newlib_patch_version}.diff" PATCH4="%patch${patchn} -p0" -SETUP="${SETUP} -a${patchn}" fi # note that the variables in the gcc3newlib directory are actually the same @@ -77,7 +75,6 @@ sed -e "s,@PATCH1\@,${PATCH1}," \ -e "s,@PATCH2\@,${PATCH2}," \ -e "s,@PATCH3\@,${PATCH3}," \ -e "s,@PATCH4\@,${PATCH4}," \ - -e "s,@SETUP\@,${SETUP}," \ -e "s%@Release\@%${gcc3newlib_rpm_release}%g" \ -e "s%@target_alias\@%${target_alias}%g" \ -e "s%@prefix\@%@prefix@%g" \ -- cgit v1.2.3