2002-04-03 Ralf Corsepius <corsepiu@faw.uni-ulm.de>

* 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.
This commit is contained in:
Joel Sherrill
2002-04-03 17:58:26 +00:00
parent 47f7dc5dac
commit df1f734e38
10 changed files with 79 additions and 273 deletions

View File

@@ -1,3 +1,19 @@
2002-04-03 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* 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 <joel@OARcorp.com>
* buildall.in: Correct logic for detecting 0 RTEMS RPMS installed.

View File

@@ -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

View File

@@ -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@

View File

@@ -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@

View File

@@ -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

View File

@@ -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@

View File

@@ -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}

View File

@@ -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" \

View File

@@ -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 ;;
*)

View File

@@ -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