%define EGCS_VERSION 1.0.1 %define SOURCEURL ftp://ftp.cygnus.com/pub/egcs/releases/egcs-1.0.1/egcs-1.0.1.tar.gz #%define PREFIX /usr %define PREFIX /usr/egcs # The name of the directory underneath /usr/egcs/lib/gcc-lib/[target] that # this builds for. # EGCS-1.0.1 %define FULLVER egcs-2.90.23 %define LIBSTDCPPRELEASE 1e Summary: Experimental GNU Compiler System Name: egcs Version: %{EGCS_VERSION} Release: 1e Copyright: GPL Group: Development/Languages Source: %{SOURCEURL} Patch0: egcs-1.0-ppc.patch Patch1: egcs-1.0-make.patch Patch2: egcs-1.0-ppc_trampoline.patch Patch3: egcs-1.0-ppc_jump.patch Patch4: egcs-1.0-ppc_readme.patch Patch5: egcs-1.0-ppc_mcount.patch Patch6: egcs-1.0-ppc_loop.patch Patch7: egcs-1.0-ppc_varargs.patch Patch8: egcs-g77-1.0.1-ppc_shared.patch BuildRoot: /tmp/egcs-root URL: http://www.cygnus.com/egcs/ Requires: binutils %description A compiler aimed at integrating all the optimizations and features necessary for a high-performance and stable development environment. %package c++ Summary: C++ support for gcc Group: Development/Languages Requires: egcs = %{EGCS_VERSION} %description c++ C++ support for gcc %package objc Summary: Objective C support for gcc Group: Development/Languages Requires: egcs = %{EGCS_VERSION} %description objc Objective C support for gcc %package g77 Summary: Fortran 77 support for gcc Group: Development/Languages Requires: egcs = %{EGCS_VERSION} %description g77 Fortran 77 support for gcc #%package -n libstdc++ %package libstdc++ Summary: GNU c++ library Group: Libraries Version: 2.8.0 Release: %{LIBSTDCPPRELEASE} #%description -n libstdc++ %description libstdc++ This is the GNU implementation of the standard C++ libraries, along with additional GNU tools. This package includes the shared libraries necessary to run C++ applications. #%package -n libstdc++-devel %package libstdc++-devel Summary: Header files and libraries for C++ development Group: Development/Libraries Version: 2.8.0 Requires: egcs-libstdc++ = 2.8.0-%{LIBSTDCPPRELEASE} #%description -n libstdc++-devel %description libstdc++-devel This is the GNU implementation of the standard C++ libraries. This package includes the header files and libraries needed for C++ development. %changelog * Tue Feb 24 1998 Keisuke Fujii - Use official EGCS-1.0.1 release. - Changed prefix to /usr/egcs * Tue Feb 10 1998 Gary Thomas - Better fix for varargs problem (from Richard Kenner & GCC-2.8) - Fix additional varargs problem when passing 'long long' arguments. * Sun Feb 8 1998 Gary Thomas - Fix some problems with code generation and functions with varargs. - Integrate 'loop' patch from GCC-2.8 - Changed 'libstdc++' packages to have 'egcs-' prefix to minimize confusion. * Fri Jan 30 1998 Gary Thomas - Fix a code optimization bug - Change profiling interface - Change README & info to point bugs to linuxppc.org * Thu Jan 29 1998 Gary Thomas - Changed for experimental configuration - install in "/usr/local/egcs" * Sat Jan 17 1998 Gary Thomas - Fix problem with runtime "trampoline" * Sun Jan 4 1998 Gary Thomas - Added EGCS-1.0.1 patches - Small changes for installing in current GLIBC-2.0 systems - Fix problem with Makefile - not building C++ include directory in the RPM root directory (only a problem for RPM packaging) * Tue Dec 02 1997 Elliot Lee - Took off egcs- prefix for /usr/bin/* files, seeing as this works well enough to be system compiler. - Miscellaneous fixups for the release (make it do 'make bootstrap', etc. etc.) * Wed Nov 26 1997 Elliot Lee - Updated version, split libstdc++ into a separate package, etc. * Fri Nov 14 1997 Elliot Lee - Added dependencies - Added "egcs-" to prefix all /usr/bin/* files. %prep # Notes: # the nof %setup -q %patch1 -p1 %ifarch ppc %patch0 -p1 %patch2 -p1 %patch3 -p1 %patch4 -p1 %patch5 -p1 %patch6 -p1 %patch7 -p1 %endif %patch8 -p1 %build %ifarch i386 %define GCCARCH i386 %define GCCDIR %{GCCARCH}-linux %endif %ifarch axp %define GCCARCH alpha %define GCCDIR %{GCCARCH}-linux %endif %ifarch sparc %define GCCARCH sparc %define GCCDIR %{GCCARCH}-linux %endif %ifarch ppc %define GCCARCH ppc %define GCCDIR powerpc-unknown-linux-gnulibc1 %endif %ifarch ppc # I want some different options CFLAGS="$RPM_OPT_FLAGS" ./configure \ --prefix=%{PREFIX} --with-gxx-include-dir=%{PREFIX}/include/g++ \ --enable-shared --enable-haifa %else CFLAGS="$RPM_OPT_FLAGS" ./configure --enable-threads=posix \ --prefix=%{PREFIX} --with-gxx-include-dir=%{PREFIX}/include/g++ \ --enable-shared \ %{GCCDIR} %endif make #bootstrap %install rm -rf $RPM_BUILD_ROOT mkdir -p $RPM_BUILD_ROOT%{PREFIX}/info $RPM_BUILD_ROOT/lib make prefix=$RPM_BUILD_ROOT%{PREFIX} \ gxx_include_dir=$RPM_BUILD_ROOT%{PREFIX}/include/g++ install strip $RPM_BUILD_ROOT%{PREFIX}/bin/* gzip -n -9f $RPM_BUILD_ROOT%{PREFIX}/info/*.info* ln -sf gcc $RPM_BUILD_ROOT%{PREFIX}/bin/cc ln -sf cccp.1 $RPM_BUILD_ROOT%{PREFIX}/man/man1/cpp.1 ln -sf ..%{PREFIX}/lib/gcc-lib/%{GCCDIR}/%{FULLVER}/cpp $RPM_BUILD_ROOT/lib/cpp strip \ $RPM_BUILD_ROOT%{PREFIX}/lib/gcc-lib/%{GCCDIR}/%{FULLVER}/{cc1,cc1obj,cc1plus,cpp,f771,ld} ln -s g77 $RPM_BUILD_ROOT%{PREFIX}/bin/f77 cp gcc/libf2c.so $RPM_BUILD_ROOT%{PREFIX}/lib/gcc-lib/%{GCCDIR}/%{FULLVER}/libf2c.so chmod a+x $RPM_BUILD_ROOT%{PREFIX}/lib/gcc-lib/%{GCCDIR}/%{FULLVER}/libf2c.so ln -sf gcc-lib/%{GCCDIR}/%{FULLVER}/libf2c.so $RPM_BUILD_ROOT%{PREFIX}/lib/libf2c.so %clean rm -rf $RPM_BUILD_ROOT #%post -n libstdc++ -p /sbin/ldconfig %post libstdc++ -p /sbin/ldconfig #%postun -n libstdc++ -p /sbin/ldconfig %postun libstdc++ -p /sbin/ldconfig %files %doc README* COPYING COPYING.LIB %dir %{PREFIX}/lib/gcc-lib %dir %{PREFIX}/lib/gcc-lib/%{GCCDIR} %dir %{PREFIX}/lib/gcc-lib/%{GCCDIR}/%{FULLVER} %dir %{PREFIX}/lib/gcc-lib/%{GCCDIR}/%{FULLVER}/include %{PREFIX}/bin/%{GCCDIR}-gcc %{PREFIX}/bin/gcc %{PREFIX}/bin/cc %{PREFIX}/bin/gcov %{PREFIX}/bin/protoize %{PREFIX}/bin/unprotoize /lib/cpp %{PREFIX}/man/man1/cpp.1 %{PREFIX}/man/man1/cccp.1 %{PREFIX}/man/man1/gcc.1 %{PREFIX}/info/cpp.info*.gz %{PREFIX}/info/gcc.info*.gz %{PREFIX}/lib/gcc-lib/%{GCCDIR}/%{FULLVER}/SYSCALLS.c.X %{PREFIX}/lib/gcc-lib/%{GCCDIR}/%{FULLVER}/cc1 %{PREFIX}/lib/gcc-lib/%{GCCDIR}/%{FULLVER}/cpp %{PREFIX}/lib/gcc-lib/%{GCCDIR}/%{FULLVER}/libgcc.a %{PREFIX}/lib/gcc-lib/%{GCCDIR}/%{FULLVER}/specs %{PREFIX}/lib/gcc-lib/%{GCCDIR}/%{FULLVER}/crtbegin.o %{PREFIX}/lib/gcc-lib/%{GCCDIR}/%{FULLVER}/crtbeginS.o %{PREFIX}/lib/gcc-lib/%{GCCDIR}/%{FULLVER}/crtend.o %{PREFIX}/lib/gcc-lib/%{GCCDIR}/%{FULLVER}/crtendS.o %{PREFIX}/lib/gcc-lib/%{GCCDIR}/%{FULLVER}/ld %ifarch ppc %{PREFIX}/lib/gcc-lib/%{GCCDIR}/%{FULLVER}/nof %{PREFIX}/lib/gcc-lib/%{GCCDIR}/%{FULLVER}/ecrti.o %{PREFIX}/lib/gcc-lib/%{GCCDIR}/%{FULLVER}/ecrtn.o %{PREFIX}/lib/gcc-lib/%{GCCDIR}/%{FULLVER}/scrt0.o %{PREFIX}/lib/gcc-lib/%{GCCDIR}/%{FULLVER}/scrti.o %{PREFIX}/lib/gcc-lib/%{GCCDIR}/%{FULLVER}/scrtn.o %endif %{PREFIX}/lib/gcc-lib/%{GCCDIR}/%{FULLVER}/include/README %{PREFIX}/lib/gcc-lib/%{GCCDIR}/%{FULLVER}/include/float.h %{PREFIX}/lib/gcc-lib/%{GCCDIR}/%{FULLVER}/include/iso646.h %{PREFIX}/lib/gcc-lib/%{GCCDIR}/%{FULLVER}/include/limits.h %{PREFIX}/lib/gcc-lib/%{GCCDIR}/%{FULLVER}/include/proto.h %{PREFIX}/lib/gcc-lib/%{GCCDIR}/%{FULLVER}/include/stdarg.h %{PREFIX}/lib/gcc-lib/%{GCCDIR}/%{FULLVER}/include/stddef.h %{PREFIX}/lib/gcc-lib/%{GCCDIR}/%{FULLVER}/include/syslimits.h %{PREFIX}/lib/gcc-lib/%{GCCDIR}/%{FULLVER}/include/va-*.h %{PREFIX}/lib/gcc-lib/%{GCCDIR}/%{FULLVER}/include/varargs.h %ifarch ppc %{PREFIX}/lib/gcc-lib/%{GCCDIR}/%{FULLVER}/include/%{GCCARCH}-asm.h %endif %files c++ %{PREFIX}/man/man1/g++.1 %{PREFIX}/bin/g++ %{PREFIX}/bin/c++ %{PREFIX}/lib/gcc-lib/%{GCCDIR}/%{FULLVER}/cc1plus %{PREFIX}/lib/gcc-lib/%{GCCDIR}/%{FULLVER}/include/exception %{PREFIX}/lib/gcc-lib/%{GCCDIR}/%{FULLVER}/include/new %{PREFIX}/lib/gcc-lib/%{GCCDIR}/%{FULLVER}/include/typeinfo %{PREFIX}/lib/gcc-lib/%{GCCDIR}/%{FULLVER}/include/new.h %ifarch ppc %{PREFIX}/lib/nof %endif %files objc %{PREFIX}/lib/gcc-lib/%{GCCDIR}/%{FULLVER}/cc1obj %{PREFIX}/lib/gcc-lib/%{GCCDIR}/%{FULLVER}/libobjc.a %{PREFIX}/lib/gcc-lib/%{GCCDIR}/%{FULLVER}/include/objc %files g77 %{PREFIX}/bin/g77 %{PREFIX}/bin/f77 %{PREFIX}/info/g77.info*.gz %{PREFIX}/lib/gcc-lib/%{GCCDIR}/%{FULLVER}/f771 %{PREFIX}/lib/gcc-lib/%{GCCDIR}/%{FULLVER}/libf2c.a %{PREFIX}/lib/gcc-lib/%{GCCDIR}/%{FULLVER}/libf2c.so %{PREFIX}/lib/gcc-lib/%{GCCDIR}/%{FULLVER}/include/f2c.h %{PREFIX}/lib/libf2c.a %{PREFIX}/lib/libf2c.so #%files -n libstdc++-devel %files libstdc++-devel %{PREFIX}/include/g++ %{PREFIX}/lib/libstdc++.a %{PREFIX}/lib/libstdc++.so %ifarch ppc %{PREFIX}/lib/nof/libstdc++.a %{PREFIX}/lib/nof/libstdc++.so %endif #%files -n libstdc++ %files libstdc++ %{PREFIX}/lib/libstdc++.so.2.8.0 %ifarch ppc %{PREFIX}/lib/nof/libstdc++.so.2.8.0 %endif