Index: contrib/crossrpms/rtems4.8/m68k/rtems-4.8-m68k-rtems4.8-gcc.spec
===================================================================
--- contrib/crossrpms/rtems4.8/m68k/rtems-4.8-m68k-rtems4.8-gcc.spec	(revision 3fac2408301f59a95639444c12fed68f4a884508)
+++ contrib/crossrpms/rtems4.8/m68k/rtems-4.8-m68k-rtems4.8-gcc.spec	(revision f81476f579d8cc8383ee792090020ff46a2219b7)
@@ -15,7 +15,7 @@
 
 
-%define gcc_pkgvers 4.2.0
-%define gcc_version 4.2.0
-%define gcc_rpmvers %{expand:%(echo "4.2.0" | tr - _ )}
+%define gcc_pkgvers 4.2.1
+%define gcc_version 4.2.1
+%define gcc_rpmvers %{expand:%(echo "4.2.1" | tr - _ )}
 
 %define newlib_version		1.15.0
@@ -27,5 +27,5 @@
 Group:	      	Development/Tools
 Version:        %{gcc_rpmvers}
-Release:      	18%{?dist}
+Release:      	20%{?dist}
 License:      	GPL
 URL:		http://gcc.gnu.org
@@ -41,4 +41,5 @@
 BuildRequires:	rtems-4.8-m68k-rtems4.8-binutils
 
+Requires:	rtems-4.8-gcc-common
 Requires:	rtems-4.8-m68k-rtems4.8-binutils
 Requires:	rtems-4.8-m68k-rtems4.8-newlib = %{newlib_version}-%{release}
@@ -68,4 +69,8 @@
 Source0:	ftp://gcc.gnu.org/pub/gcc/%{gcc_pkgvers}/gcc-core-%{gcc_pkgvers}.tar.bz2
 Patch0:		gcc-core-%{gcc_pkgvers}-rtems4.8-20070613.diff
+%endif
+%if "%{gcc_version}" == "4.2.1"
+Source0:	ftp://gcc.gnu.org/pub/gcc/%{gcc_pkgvers}/gcc-core-%{gcc_pkgvers}.tar.bz2
+Patch0:		gcc-core-4.2.1-rtems4.8-20070719.diff
 %endif
 %{?_without_sources:NoSource:	0}
@@ -157,4 +162,5 @@
 
   make all
+  make info
   cd ..
 
@@ -187,9 +193,7 @@
 
 
-# Conflict with a native GCC's infos
-  rm -rf $RPM_BUILD_ROOT%{_infodir}
-
-# Conflict with a native GCC's man pages
-  rm -rf $RPM_BUILD_ROOT%{_mandir}/man7
+  # We don't ship info/dir
+  rm -f $RPM_BUILD_ROOT%{_infodir}/dir
+  touch $RPM_BUILD_ROOT%{_infodir}/dir
 
 
@@ -372,5 +376,5 @@
 %dir %{gcclib}/m68k-rtems4.8/%{gcc_version}/include
 %if "%{gcc_version}" > "4.0.3"
-%if "m68k-rtems4.8" != "bfin-rtems4.7"
+%if "m68k-rtems4.8" != "bfin-rtems4.8"
 %dir %{gcclib}/m68k-rtems4.8/%{gcc_version}/include/ssp
 %endif
@@ -384,4 +388,63 @@
 
 # ==============================================================
+# rtems-4.8-gcc-common
+# ==============================================================
+%package -n rtems-4.8-gcc-common
+Summary:	Base package for rtems gcc and newlib C Library
+Group:          Development/Tools
+Version:        %{gcc_rpmvers}
+License:	GPL
+
+Requires(post): 	/sbin/install-info
+Requires(preun):	/sbin/install-info
+
+%description -n rtems-4.8-gcc-common
+
+GCC files that are shared by all targets.
+
+%files -n rtems-4.8-gcc-common
+%defattr(-,root,root)
+%dir %{_infodir}
+%ghost %{_infodir}/dir
+%{_infodir}/cpp.info*
+%{_infodir}/cppinternals.info*
+%{_infodir}/gcc.info*
+%{_infodir}/gccint.info*
+%if "%{gcc_version}" >= "3.4"
+%{_infodir}/gccinstall.info*
+%endif
+
+%dir %{_mandir}
+%if "%{gcc_version}" < "3.4"
+%dir %{_mandir}/man1
+%{_mandir}/man1/cpp.1*
+%{_mandir}/man1/gcov.1*
+%endif
+%dir %{_mandir}/man7
+%{_mandir}/man7/fsf-funding.7*
+%{_mandir}/man7/gfdl.7*
+%{_mandir}/man7/gpl.7*
+
+%post -n rtems-4.8-gcc-common
+  /sbin/install-info --info-dir=%{_infodir} %{_infodir}/cpp.info.gz || :
+  /sbin/install-info --info-dir=%{_infodir} %{_infodir}/cppinternals.info.gz || :
+  /sbin/install-info --info-dir=%{_infodir} %{_infodir}/gcc.info.gz || :
+  /sbin/install-info --info-dir=%{_infodir} %{_infodir}/gccint.info.gz || :
+%if "%{gcc_version}" >= "3.4"
+  /sbin/install-info --info-dir=%{_infodir} %{_infodir}/gccinstall.info.gz || :
+%endif
+
+%preun -n rtems-4.8-gcc-common
+if [ $1 -eq 0 ]; then
+  /sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/cpp.info.gz || :
+  /sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/cppinternals.info.gz || :
+  /sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/gcc.info.gz || :
+  /sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/gccint.info.gz || :
+%if "%{gcc_version}" >= "3.4"
+  /sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/gccinstall.info.gz || :
+%endif
+fi
+
+# ==============================================================
 # rtems-4.8-m68k-rtems4.8-gcc-c++
 # ==============================================================
@@ -395,4 +458,5 @@
 Obsoletes:	rtems-4.8-m68k-rtems4.8-c++ < %{gcc_rpmvers}-%{release}
 
+Requires:       rtems-4.8-gcc-common
 Requires:       rtems-4.8-m68k-rtems4.8-gcc = %{gcc_rpmvers}-%{release}
 
@@ -433,4 +497,5 @@
 Obsoletes:	rtems-4.8-m68k-rtems4.8-libc < %{newlib_version}-%{release}
 
+Requires:	rtems-4.8-newlib-common
 
 %description -n rtems-4.8-m68k-rtems4.8-newlib
@@ -443,2 +508,34 @@
 %{_exec_prefix}/m68k-rtems4.8/include
 
+# ==============================================================
+# rtems-4.8-newlib-common
+# ==============================================================
+%package -n rtems-4.8-newlib-common
+Summary:	Base package for RTEMS newlib C Library
+Group:          Development/Tools
+Version:        %{newlib_version}
+License:	Distributable
+
+Requires(post): 	/sbin/install-info
+Requires(preun):	/sbin/install-info
+
+%description -n rtems-4.8-newlib-common
+newlib files that are shared by all targets.
+
+%files -n rtems-4.8-newlib-common
+%defattr(-,root,root)
+%dir %{_infodir}
+%ghost %{_infodir}/dir
+%{_infodir}/libc.info*
+%{_infodir}/libm.info*
+
+%post -n rtems-4.8-newlib-common
+  /sbin/install-info --info-dir=%{_infodir} %{_infodir}/libc.info.gz || :
+  /sbin/install-info --info-dir=%{_infodir} %{_infodir}/libm.info.gz || :
+
+%preun -n rtems-4.8-newlib-common
+if [ $1 -eq 0 ]; then
+  /sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/libc.info.gz || :
+  /sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/libm.info.gz || :
+fi
+
