From df1f734e38c63d3f46f6fca98787621f0afb9934 Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Wed, 3 Apr 2002 17:58:26 +0000 Subject: 2002-04-03 Ralf Corsepius * mkbinutilspec.in: Add support for empty patch-version (no patch). * mkgcc3newlibspec.in: Ditto. * setup: Fix gcc3*_versions handling. * setup.def: binutils_patch_version=. * binutils/binutils.add: Reflect changes to mkbinutilspec.in, Use "%{_target_os}" != "%{_build_os}" to detect cross-building. * binutils/target-binutils.add: Comment out c++filt. * gcc3newlib/base-gcc.add: Remove duplicate libm.info. * gcc3newlib/gccnewlib.add: Reflect changes to mkgcc3newlibspec.in. Use "%{_target_os}" != "%{_build_os}" to detect cross-building. Comment out gcc-2.95.x hacks. Remove *.la from installed files. * gcc3newlib/gccnewlib_c_only.spec.in: Remove. --- scripts/ChangeLog | 16 ++ scripts/binutils/binutils.add | 10 +- scripts/binutils/target-binutils.add | 3 +- scripts/gcc3newlib/base-gcc.add | 1 - scripts/gcc3newlib/gccnewlib.add | 43 +++-- scripts/gcc3newlib/gccnewlib_c_only.spec.in | 244 ---------------------------- scripts/mkbinutilspec.in | 7 + scripts/mkgcc3newlibspec.in | 22 ++- scripts/setup | 4 +- scripts/setup.def | 2 +- 10 files changed, 79 insertions(+), 273 deletions(-) (limited to 'scripts') diff --git a/scripts/ChangeLog b/scripts/ChangeLog index dac6c89643..c537ad2255 100644 --- a/scripts/ChangeLog +++ b/scripts/ChangeLog @@ -1,3 +1,19 @@ +2002-04-03 Ralf Corsepius + + * mkbinutilspec.in: Add support for empty patch-version (no patch). + * mkgcc3newlibspec.in: Ditto. + * setup: Fix gcc3*_versions handling. + * setup.def: binutils_patch_version=. + * binutils/binutils.add: Reflect changes to mkbinutilspec.in, + Use "%{_target_os}" != "%{_build_os}" to detect cross-building. + * binutils/target-binutils.add: Comment out c++filt. + * gcc3newlib/base-gcc.add: Remove duplicate libm.info. + * gcc3newlib/gccnewlib.add: Reflect changes to mkgcc3newlibspec.in. + Use "%{_target_os}" != "%{_build_os}" to detect cross-building. + Comment out gcc-2.95.x hacks. + Remove *.la from installed files. + * gcc3newlib/gccnewlib_c_only.spec.in: Remove. + 2001-04-02 Joel Sherrill * buildall.in: Correct logic for detecting 0 RTEMS RPMS installed. diff --git a/scripts/binutils/binutils.add b/scripts/binutils/binutils.add index 301fb0c70b..25f9666de6 100644 --- a/scripts/binutils/binutils.add +++ b/scripts/binutils/binutils.add @@ -22,8 +22,9 @@ Prefix: %{_prefix} BuildRoot: %{_tmppath}/@target_alias@-binutils Version: @binutils_version@ -Source0: ftp://ftp.gnu.org/pub/gnu/binutils/binutils-@binutils_version@.tar.bz2 -# Patch0: binutils-@binutils_version@-rtems-@binutils_patch_version@.diff +Source0: ftp://ftp.gnu.org/pub/gnu/binutils/binutils-@binutils_version@.tar.bz2 +@PATCH1@ + # # The original sources are not included in the source RPM. # If we included them, then the source RPMs for each target @@ -46,13 +47,12 @@ This is binutils sources with patches for RTEMS. %prep # untar the sources inside @target_alias@-binutils %setup -c -n @target_alias@-binutils - -# %patch0 -p0 +@PATCH2@ test -d build || mkdir build %build # HACK: This should be %{target} != %{build}, but SuSE's rpm screws it. -%if "%{target_os}" != "%{build_os}" +%if "%{_target_os}" != "%{_build_os}" CONFIGURE_ARGS="--build=%{_build} --host=%{_target}" %endif diff --git a/scripts/binutils/target-binutils.add b/scripts/binutils/target-binutils.add index 519d3390e8..8124917889 100644 --- a/scripts/binutils/target-binutils.add +++ b/scripts/binutils/target-binutils.add @@ -21,7 +21,8 @@ This is the GNU binutils for RTEMS targetting @target_alias@. %{_prefix}/bin/@target_alias@-addr2line@exe_ext@ %{_prefix}/bin/@target_alias@-ar@exe_ext@ %{_prefix}/bin/@target_alias@-as@exe_ext@ -%{_prefix}/bin/@target_alias@-c++filt@exe_ext@ +# c++filt now comes from gcc +# %{_prefix}/bin/@target_alias@-c++filt@exe_ext@ %{_prefix}/bin/@target_alias@-gasp@exe_ext@ %{_prefix}/bin/@target_alias@-ld@exe_ext@ %{_prefix}/bin/@target_alias@-nm@exe_ext@ diff --git a/scripts/gcc3newlib/base-gcc.add b/scripts/gcc3newlib/base-gcc.add index 8ab4d49934..370ad9f366 100644 --- a/scripts/gcc3newlib/base-gcc.add +++ b/scripts/gcc3newlib/base-gcc.add @@ -19,7 +19,6 @@ This is the files for gcc and newlib that are shared by all targets. %doc %{_prefix}/info/gcc.info*.gz %doc %{_prefix}/info/libc.info*.gz %doc %{_prefix}/info/libm.info*.gz -%doc %{_prefix}/info/libm.info*.gz %dir %{_prefix}/bin %{_prefix}/bin/gcov@exe_ext@ diff --git a/scripts/gcc3newlib/gccnewlib.add b/scripts/gcc3newlib/gccnewlib.add index 2e8fb89533..2674f83441 100644 --- a/scripts/gcc3newlib/gccnewlib.add +++ b/scripts/gcc3newlib/gccnewlib.add @@ -25,8 +25,8 @@ Version: gcc@gcc_version@newlib@newlib_version@ # gcc 2.95.x Source0: ftp://ftp.gnu.org/pub/gnu/gcc/gcc-@gcc_version@.tar.gz Source1: ftp://sources.redhat.com/pub/newlib/newlib-@newlib_version@.tar.gz -Patch0: gcc-@gcc_version@-rtems-@gcc_patch_version@.diff -Patch1: newlib-@newlib_version@-rtems-@newlib_patch_version@.diff +@PATCH1@ +@PATCH3@ Buildroot: %{_tmppath}/%{name} # @@ -60,10 +60,10 @@ 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} -a 0 -a 1 +%setup -c -n %{name} @SETUP@ -%patch0 -p0 -%patch1 -p0 +@PATCH2@ +@PATCH4@ # Copy the C library into gcc's source tree ln -s ../newlib-@newlib_version@/newlib gcc-@gcc_version@ @@ -73,9 +73,9 @@ This is gcc's and newlib C Library's sources with patches for RTEMS. cd build # HACK: This should be %{target} != %{build}, but SuSE's rpm screws it. -# %if "%{target_os}" != "%{build_os}" -# CONFIGURE_ARGS="--build=%{_build} --host=%{_target}" -# %endif +%if "%{_target_os}" != "%{_build_os}" + CONFIGURE_ARGS="--build=%{_build} --host=%{_target}" +%endif ../gcc-@gcc_version@/configure $CONFIGURE_ARGS --target=@target_alias@ \ --with-gnu-as --with-gnu-ld --with-newlib --verbose \ @@ -86,25 +86,32 @@ This is gcc's and newlib C Library's sources with patches for RTEMS. %install cd build - # Bug in gcc-2.95.1: It doesn't build this installation directory - # If it doesn't find it, gcc doesn't install @target_alias@/bin/gcc - ../gcc-@gcc_version@/mkinstalldirs \ - $RPM_BUILD_ROOT%{_prefix}/@target_alias@/bin - +# # Bug in gcc-2.95.1: It doesn't build this installation directory +# # If it doesn't find it, gcc doesn't install @target_alias@/bin/gcc +# ../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 + # 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 + 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@; - then - mv $RPM_BUILD_ROOT%{_prefix}/bin/cpp@exe_ext@ \ - $RPM_BUILD_ROOT%{_prefix}/bin/@target_alias@-cpp@exe_ext@ - fi +# if test -f $RPM_BUILD_ROOT%{_prefix}/bin/cpp@exe_ext@; +# then +# mv $RPM_BUILD_ROOT%{_prefix}/bin/cpp@exe_ext@ \ +# $RPM_BUILD_ROOT%{_prefix}/bin/@target_alias@-cpp@exe_ext@ +# fi # gzip info files gzip -f $RPM_BUILD_ROOT%{_prefix}/info/*.info 2>/dev/null diff --git a/scripts/gcc3newlib/gccnewlib_c_only.spec.in b/scripts/gcc3newlib/gccnewlib_c_only.spec.in index 9c242a2582..e69de29bb2 100644 --- a/scripts/gcc3newlib/gccnewlib_c_only.spec.in +++ b/scripts/gcc3newlib/gccnewlib_c_only.spec.in @@ -1,244 +0,0 @@ -# -# spec file for building gcc for rtems -# -# Copyright (c) 1999,2000,2001 OARCorp, Huntsville, AL -# -# please send bugfixes or comments to joel@OARcorp.com -# - -%define _prefix @prefix@ - -Vendor: OAR Corporation -Distribution: Linux -Name: @target_alias@-gcc-newlib -Summary: gcc and newlib C Library for @target_alias@. -Group: rtems -Release: @Release@ -License: gcc is GPL/LGPL ; newlib no has restrictions on run-time usage - -Autoreqprov: on -Packager: corsepiu@faw.uni-ulm.de and joel@OARcorp.com - -Version: gcc@gcc_version@newlib@newlib_version@ -# gcc 3.x and gcc 2.9 -# Source0: ftp://ftp.gnu.org/pub/gnu/gcc/gcc-@gcc_version@.tar.bz2 -# gcc 2.95.x -Source0: ftp://ftp.gnu.org/pub/gnu/gcc/gcc-@gcc_version@.tar.gz -Source1: ftp://sources.redhat.com/pub/newlib/newlib-@newlib_version@.tar.gz -Patch0: gcc-@gcc_version@-rtems-@gcc_patch_version@.diff -Patch1: newlib-@newlib_version@-rtems-@newlib_patch_version@.diff -Buildroot: %{_tmppath}/%{name} - -# -# The original sources are not included in the source RPM. -# If we included them, then the source RPMs for each target -# would duplicate MBs of source unnecessarily. This is -# a duplication of over 30 MBs of source for each of -# the more than 10 targets it is possible to build. -# -# You can get them yourself from the Internet and copy them to -# your /usr/src/redhat/SOURCES directory ($RPM_SOURCE_DIR). -# Or you can try the ftp options of rpm :-) -# -NoSource: 0 -NoSource: 1 - -%description -RTEMS is an open source operating system for embedded systems. - -This is gcc's and newlib C Library's sources with patches for RTEMS. - - The original sources are not included in the source RPM. - If we included them, then the source RPMs for each target - would duplicate MBs of source unnecessarily. This is - a duplication of over 30 MBs of source for each of - the more than 10 targets it is possible to build. - - You can get them yourself from the Internet and copy them to - your /usr/src/[redhat|packages]/SOURCES directory ($RPM_SOURCE_DIR). - Or you can try the ftp options of rpm :-) - -%prep -# untar the sources inside @target_alias@-gcc-newlib -%setup -c -n %{name} -a 0 -a 1 - -%patch0 -p0 -%patch1 -p0 - - # Copy the C library into gcc's source tree - ln -s ../newlib-@newlib_version@/newlib gcc-@gcc_version@ - test -d build || mkdir build - -%build - cd build - -# HACK: This should be %{target} != %{build}, but SuSE's rpm screws it. -# %if "%{target_os}" != "%{build_os}" -# CONFIGURE_ARGS="--build=%{_build} --host=%{_target}" -# %endif - - ../gcc-@gcc_version@/configure $CONFIGURE_ARGS --target=@target_alias@ \ - --with-gnu-as --with-gnu-ld --with-newlib --verbose \ - --enable-threads=rtems --prefix=%{_prefix} '--enable-languages=c,c++' - - make all - make info - -%install - cd build - # Bug in gcc-2.95.1: It doesn't build this installation directory - # If it doesn't find it, gcc doesn't install @target_alias@/bin/gcc - ../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-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@; - then - mv $RPM_BUILD_ROOT%{_prefix}/bin/cpp@exe_ext@ \ - $RPM_BUILD_ROOT%{_prefix}/bin/@target_alias@-cpp@exe_ext@ - fi - - # gzip info files - gzip -f $RPM_BUILD_ROOT%{_prefix}/info/*.info 2>/dev/null - gzip -f $RPM_BUILD_ROOT%{_prefix}/info/*.info-? 2>/dev/null - gzip -f $RPM_BUILD_ROOT%{_prefix}/info/*.info-?? 2>/dev/null - - rm -f dirs ; - echo "%dir %{_prefix}/lib" >> dirs ; - echo "%dir %{_prefix}/lib/gcc-lib" >> dirs ; - echo "%dir %{_prefix}/lib/gcc-lib/@target_alias@" >> dirs ; - - # Collect multilib subdirectories - TGTDIR="%{_prefix}/lib/gcc-lib/@target_alias@/@gcc_version@" - f=`gcc/xgcc --print-multi-lib | sed -e 's,;.*$,,'` - for i in $f; do - case $i in - \.) echo "%dir ${TGTDIR}" >> dirs - ;; - *) echo "%dir ${TGTDIR}/$i" >> dirs - ;; - esac - done - - # Collect files to go into different packages - cp dirs files.gcc - cp dirs files.g77 - cp dirs files.objc - cp dirs files.gcj - - f=`find ${RPM_BUILD_ROOT}${TGTDIR} ! -type d -print | sed -e "s,^$RPM_BUILD_ROOT,,g"`; - for i in $f; do - case $i in - *f771) ;; - *cc1obj) ;; - *libobjc*) echo "$i" >> files.objc ;; - *include/objc*) ;; - *jc1) ;; - *jvgenmain) ;; - *) 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 - -# ============================================================== -# rtems-base-gcc -# ============================================================== -%package -n rtems-base-gcc -Provides: rtems-base-gcc -Summary: base package for rtems gcc and newlib C Library -Group: rtems - -%description -n rtems-base-gcc - -RTEMS is an open source operating system for embedded systems. - -This is the files for gcc and newlib that are shared by all targets. - -%files -n rtems-base-gcc -%dir %{_prefix}/info -%doc %{_prefix}/info/cpp.info*.gz -%doc %{_prefix}/info/cppinternals.info*.gz -%doc %{_prefix}/info/gcc.info*.gz -%doc %{_prefix}/info/libc.info*.gz -%doc %{_prefix}/info/libm.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 -%dir %{_prefix}/man/man7 -%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; - then - rm -f $RPM_INSTALL_PREFIX%{_prefix}/info/dir - f=`find $RPM_INSTALL_PREFIX%{_prefix}/info -name '*.info.gz'` - test -n "$f" && for i in $f; do - install-info $i $RPM_INSTALL_PREFIX%{_prefix}/info/dir - done - fi - -%postun -n rtems-base-gcc - if test -d $RPM_INSTALL_PREFIX%{_prefix}/info; - then - rm -f $RPM_INSTALL_PREFIX%{_prefix}/info/dir - f=`find $RPM_INSTALL_PREFIX%{_prefix}/info -name '*.info.gz'` - test -n "$f" && for i in $f; do - install-info $i $RPM_INSTALL_PREFIX%{_prefix}/info/dir - done - fi - -# ============================================================== -# @target_alias@-gcc -# ============================================================== -%package -n @target_alias@-gcc -Provides: @target_alias@-gcc -Summary: rtems gcc and newlib C Library for @target_alias@ -Group: rtems -Requires: @target_alias@-binutils rtems-base-gcc - -%description -n @target_alias@-gcc -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 - -%{_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@ - -%dir %{_prefix}/lib/gcc-lib/@target_alias@/@gcc_version@/include - -%{_prefix}/@target_alias@ - diff --git a/scripts/mkbinutilspec.in b/scripts/mkbinutilspec.in index c94636979a..c17cbd795f 100644 --- a/scripts/mkbinutilspec.in +++ b/scripts/mkbinutilspec.in @@ -50,6 +50,11 @@ target_alias=$1 specfile=${dst}/$target_alias-binutils-${binutils_version}.spec +if test -n "${binutils_patch_version}"; then +PATCH1="Patch0: binutils-${binutils_version}-rtems-${binutils_patch_version}.diff" +PATCH2="%patch -p0 -P0" +fi + sed -e "s%@Release\@%${binutils_rpm_release}%g" \ -e "s%@rpm_build_root\@%${rpm_build_root}%g" \ -e "s%@target_alias\@%${target_alias}%g" \ @@ -57,6 +62,8 @@ sed -e "s%@Release\@%${binutils_rpm_release}%g" \ -e "s%@binutils_version\@%${binutils_version}%g" \ -e "s%@binutils_patch_version\@%${binutils_patch_version}%g" \ -e "s%@exe_ext\@%${exe_ext}%g" \ + -e "s,@PATCH1\@,${PATCH1}," \ + -e "s,@PATCH2\@,${PATCH2}," \ < ${RTEMS_DIR}/binutils/binutils.spec.in \ > ${specfile} diff --git a/scripts/mkgcc3newlibspec.in b/scripts/mkgcc3newlibspec.in index c3bbbed256..12d71f193d 100644 --- a/scripts/mkgcc3newlibspec.in +++ b/scripts/mkgcc3newlibspec.in @@ -57,8 +57,28 @@ target_alias=$1 specfile=${dst}/${target_alias}-gcc-${gcc3_version}-newlib-${gcc3newlib_version}.spec +patchn=-1 +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 -sed -e "s%@Release\@%${gcc3newlib_rpm_release}%g" \ +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" \ -e "s%@rpm_build_root\@%${rpm_build_root}%g" \ diff --git a/scripts/setup b/scripts/setup index 068ffe9a27..edb41a08be 100755 --- a/scripts/setup +++ b/scripts/setup @@ -80,9 +80,9 @@ do f) echo -n "GCC3 patch version>" read gcc3_patch_version ;; g) echo -n "NEWLIB source >" - read newlib_version ;; + read gcc3newlib_version ;; h) echo -n "NEWLIB patch version>" - read newlib_patch_version ;; + read gcc3newlib_patch_version ;; i) echo -n "GCC3/NEWLIB RPM release >" read gcc3newlib_rpm_release ;; *) diff --git a/scripts/setup.def b/scripts/setup.def index d2a1a25049..5153b0d635 100644 --- a/scripts/setup.def +++ b/scripts/setup.def @@ -4,7 +4,7 @@ # $Id$ # binutils_version=2.12 -binutils_patch_version=none +binutils_patch_version= binutils_rpm_release=1 newlib_version=1.10.0 newlib_patch_version=20020322 -- cgit v1.2.3