patches/gcc/3.2.3/gcc-sh-linux.spec
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Sat Feb 24 11:00:05 2007 +0000 (2007-02-24)
changeset 1 eeea35fbf182
permissions -rw-r--r--
Add the full crosstool-NG sources to the new repository of its own.
You might just say: 'Yeah! crosstool-NG's got its own repo!".
Unfortunately, that's because the previous repo got damaged beyond repair and I had no backup.
That means I'm putting backups in place in the afternoon.
That also means we've lost history... :-(
     1 Summary: The GNU Compiler Collection for SuperH.
     2 %define GCC_VERSION 3.2.3
     3 %define arch_list sh3-linux sh3eb-linux sh4-linux sh4eb-linux
     4 %define TARGET_LIBSTDC 1
     5 %define TARGET_JAVA 1
     6 
     7 Name: gcc
     8 Version: 3.2.3
     9 Release: 3
    10 
    11 Copyright: GPL
    12 Group: Development/Languages
    13 Source0: gcc-%{GCC_VERSION}.tar.bz2
    14 Patch1: gcc-20030210-sh-linux-1.patch
    15 Patch2: gcc-3.2.3-libffi-1.patch
    16 Patch3: gcc-3.2.3-sh-linux-dwarf2-1.patch
    17 Buildroot: /var/tmp/gcc-%{_target}-root
    18 ExclusiveArch: i386 sh3 sh3eb sh4 sh4eb
    19 
    20 %description
    21 This package contains the GNU Compiler Collection: gcc and g++.
    22 You'll need this package in order to compile C/C++ code.
    23 
    24 %ifarch i386
    25 
    26 # ==================== Cross Compiler ===============================
    27 
    28 %package sh-linux
    29 Summary: The GNU Compiler Collection for sh-linux.
    30 Group: Development/Languages
    31 Requires: binutils-sh-linux >= 2.13.2
    32 Provides: gcc-sh-linux
    33 Obsoletes: gcc-sh3-linux gcc-sh3eb-linux gcc-sh4-linux gcc-sh4eb-linux
    34 Obsoletes: gcc-sh3-linux-c++ gcc-sh3eb-linux-c++ gcc-sh4-linux-c++ gcc-sh4eb-linux-c++
    35 Obsoletes: libstdc++-sh3-linux libstdc++-sh3eb-linux libstdc++-sh4-linux libstdc++-sh4eb-linux
    36 AutoReqProv: no
    37 
    38 %description sh-linux
    39 The gcc-sh-linux package contains GNU Compiler Collection: gcc g++ and libstdc++-v3.
    40 
    41 It includes support for most of the current C++ specification, including templates and
    42 exception handling. It does also include the standard C++ library and C++ header files.
    43 You'll need this package in order to cross compile C/C++ code for sh-linux.
    44 
    45 %package -n libgcj-sh-linux
    46 Summary: Header files and libraries for sh-linux Java development.
    47 Group: Development/Libraries
    48 Requires: gcc-sh-linux = %{version}-%{release}
    49 AutoReqProv: no
    50 
    51 %description -n libgcj-sh-linux
    52 The Java static libraries and C header files. You will need this
    53 package to compile your Java programs for sh-linux using the gcc Java compiler (gcj).
    54 
    55 %else
    56 # =========================== Native Compiler =================================
    57 %package libgcc
    58 Summary: runtime libraries for the GNU Compiler Collection.
    59 Group: System Environment/Libraries
    60 
    61 %description libgcc
    62 This package contains libgcc shared libraries for the GNU C Compiler Collection.
    63 You'll need this package in order to execute C,C++,JAVA code
    64 that uses shared libgcc.
    65 
    66 %package c++
    67 Summary: C++ support for gcc
    68 Group: Development/Languages
    69 Requires: gcc = %{version}-%{release}
    70 
    71 %description c++
    72 This package adds C++ support to the GNU Compiler Collection. It includes
    73 support for most of the current C++ specification, including templates and
    74 exception handling. It does include the static standard C++
    75 library and C++ header files; the library for dynamically linking
    76 programs is available separately.
    77 
    78 %package -n libstdc++
    79 Summary: GNU c++ library.
    80 Group: System Environment/Libraries
    81 
    82 %description -n libstdc++
    83 The libstdc++ package contains a snapshot of the GCC Standard C++
    84 Library v3, an ongoing project to implement the ISO 14882 Standard C++
    85 library.
    86 
    87 %package -n libstdc++-devel
    88 Summary: Header files and libraries for C++ development
    89 Group: Development/Libraries
    90 Requires: libstdc++ = %{version}-%{release}, gcc-c++ = %{version}-%{release}
    91 
    92 %description -n libstdc++-devel
    93 This is the GNU implementation of the standard C++ libraries.  This
    94 package includes the header files and libraries needed for C++
    95 development. This includes SGI's implementation of the STL.
    96 
    97 %package java
    98 Summary: Java support for gcc
    99 Group: Development/Languages
   100 Requires: gcc = %{version}-%{release}, libgcj = %{version}-%{release}, libgcj-devel = %{version}-%{release}
   101 
   102 %description java
   103 This package adds experimental support for compiling Java(tm) programs and
   104 bytecode into native code. To use this you will also need the libgcj and
   105 libgcj-devel packages.
   106 
   107 %package -n libgcj
   108 Summary: Java runtime library for gcc.
   109 Group: System Environment/Libraries
   110 
   111 %description -n libgcj
   112 The Java runtime library. You will need this package to run your Java
   113 programs compiled using the gcc Java compiler (gcj).
   114 
   115 %package -n libgcj-devel
   116 Summary: Header files and libraries for Java development.
   117 Group: Development/Libraries
   118 Requires: libgcj = %{version}-%{release}
   119 
   120 %description -n libgcj-devel
   121 The Java static libraries and C header files. You will need this
   122 package to compile your Java programs using the gcc Java compiler (gcj).
   123 
   124 %endif
   125 
   126 %prep
   127 %setup -q -n gcc-%{GCC_VERSION}
   128 %patch1 -p1
   129 %patch2 -p1
   130 ##%patch3 -p1
   131 
   132 %build
   133 %ifarch i386
   134 # build cross compiler for i386-linux host
   135 for arch in sh-linux; do
   136   rm -rf ${arch}
   137   mkdir ${arch}
   138 
   139   CONFIG_ARGS="\
   140         --prefix=%{_prefix} \
   141         --mandir=%{_mandir} \
   142         --infodir=%{_infodir} \
   143         --target=${arch} \
   144         --host=%{_host} \
   145         --build=%{_build} \
   146         --enable-languages=c,c++,java \
   147         --with-system-zlib \
   148         --with-gxx-include-dir=%{_prefix}/${arch}/include/g++-v3 \
   149         --includedir=%{_prefix}/${arch}/include \
   150 	--disable-checking \
   151 	--disable-shared \
   152 	--enable-__cxa_atexit \
   153 	--enable-c99 \
   154         --enable-threads=posix \
   155         --enable-long-long"
   156   if [ %{TARGET_JAVA} -ne 0 ]; then
   157     CONFIG_ARGS="$CONFIG_ARGS --enable-libgcj"
   158   fi
   159   (  cd $arch
   160      ../configure ${CONFIG_ARGS}
   161   )
   162   if [ %{TARGET_LIBSTDC} -ne 0 -o %{TARGET_JAVA} -ne 0 ]; then
   163     sed -e s:-Dinhibit_libc::g ${arch}/gcc/Makefile >${arch}/gcc/Makefile.$$$
   164     mv -f ${arch}/gcc/Makefile.$$$ ${arch}/gcc/Makefile
   165   fi
   166   make all-gcc -C ${arch}
   167 
   168   if [ %{TARGET_LIBSTDC} -ne 0 ]; then
   169     CONFIG_ARGS="`echo $CONFIG_ARGS | sed -e s/--disable-shared/--enable-shared/`"
   170     make TARGET_CONFIGARGS="${CONFIG_ARGS} --with-cross-host" all-target-libstdc++-v3 -C ${arch}
   171   fi
   172 
   173   if [ %{TARGET_JAVA} -ne 0 ]; then
   174     make all-fastjar -C ${arch}
   175     CONFIG_ARGS="`echo $CONFIG_ARGS | sed -e s/--host=%{_host}/--host=${arch}/`"
   176     dir=`pwd`
   177 
   178     ac_cv_file__proc_self_exe=yes \
   179     ac_cv_prog_GCJ="$dir/$arch/gcc/gcj -B$dir/$arch/$arch/libjava/ -B$dir/$arch/gcc/ -B%{_prefix}/$arch/bin/ -B%{_prefix}/$arch/lib/ -isystem %{_prefix}/$arch/include" \
   180       make TARGET_CONFIGARGS="${CONFIG_ARGS} --with-cross-host --enable-multilib --with-target-subdir=${arch} --with-x=no" \
   181       all-target-libjava -C ${arch}
   182   fi
   183 
   184 %else
   185 # Canadian cross (build native compiler)
   186 for arch in %{_target}; do
   187   rm -rf ${arch}
   188   mkdir -p ${arch}
   189   CONFIG_ARGS="\
   190         --prefix=%{_prefix} \
   191         --mandir=%{_mandir} \
   192         --infodir=%{_infodir} \
   193         --target=${arch} \
   194         --host=${arch} \
   195         --build=%{_build} \
   196         --enable-languages=c,c++,java \
   197         --with-system-zlib \
   198         --with-gxx-include-dir=%{_prefix}/include/g++-v3 \
   199 	--disable-checking \
   200 	--disable-shared \
   201 	--enable-__cxa_atexit \
   202 	--enable-c99 \
   203         --enable-threads=posix \
   204         --enable-long-long"
   205 
   206   if [ %{TARGET_JAVA} -ne 0 ]; then
   207     CONFIG_ARGS="$CONFIG_ARGS --enable-libgcj"
   208   fi
   209 
   210   (  cd ${arch}
   211      CC=${arch}-gcc AR=${arch}-ar RANLIB=${arch}-ranlib CXX=${arch}-g++ \
   212         ../configure $CONFIG_ARGS
   213   )
   214 
   215   if [ %{TARGET_LIBSTDC} -ne 0 -o %{TARGET_JAVA} -ne 0 ]; then
   216     sed -e s:-Dinhibit_libc::g ${arch}/gcc/Makefile >${arch}/gcc/Makefile.$$$
   217     mv -f ${arch}/gcc/Makefile.$$$ ${arch}/gcc/Makefile
   218   fi
   219 
   220   make all-build-libiberty all-gcc -C ${arch}
   221 
   222   if [ %{TARGET_LIBSTDC} -ne 0 ]; then
   223     CONFIG_ARGS="`echo $CONFIG_ARGS | sed -e s/--disable-shared/--enable-shared/`"
   224     make TARGET_CONFIGARGS="${CONFIG_ARGS}" all-target-libstdc++-v3 -C ${arch}
   225     if [ %{TARGET_JAVA} -ne 0 ]; then
   226       ( mkdir -p ${arch}/fastjar; cd ${arch}/fastjar; rm *; ../../fastjar/configure --with-system-zlib; make )
   227       ac_cv_file__proc_self_exe=yes \
   228         CC=${arch}-gcc AR=${arch}-ar RANLIB=${arch}-ranlib CXX=${arch}-g++ GCJ=${arch}-gcj \
   229         make TARGET_CONFIGARGS="${CONFIG_ARGS} --with-x=no" configure-target-libjava -C ${arch}
   230 
   231         make -C ${arch}/${arch}/libffi
   232         make -C ${arch}/${arch}/boehm-gc
   233         make -C ${arch}/${arch}/zlib
   234         make GCJ=${arch}-gcj GCJH=${arch}-gcjh ZIP=${arch}-jar -C ${arch}/${arch}/libjava
   235       (
   236         rm -rf ${arch}/${arch}/fastjar
   237         mkdir -p ${arch}/${arch}/fastjar
   238         cd ${arch}/${arch}/fastjar
   239 
   240         ac_cv_sizeof_char=1 \
   241         ac_cv_sizeof_short=2 \
   242         ac_cv_sizeof_int=4 \
   243         ac_cv_sizeof_long=4 \
   244         ac_cv_sizeof_long_long=8 \
   245         ac_cv_sizeof_float=4 \
   246         ac_cv_sizeof_double=8 \
   247         ac_cv_sizeof_long_double=8 \
   248         ac_cv_sizeof_void_p=4 \
   249         ac_cv_file__proc_self_exe=yes \
   250         ac_cv_header_langinfo_h=yes \
   251         CC=${arch}-gcc ../../../fastjar/configure $CONFIG_ARGS
   252 
   253         make
   254       )
   255 
   256     fi
   257   fi
   258 %endif
   259 done
   260 
   261 %install
   262 rm -rf $RPM_BUILD_ROOT
   263 mkdir -p ${RPM_BUILD_ROOT}/{%{_prefix}/bin,lib}
   264 
   265 %ifarch i386
   266   ARCH_STRTIP=strip
   267   EXESUFFIX=""
   268   arch=sh-linux
   269   TOOLPREFIX=${arch}-
   270   mkdir -p ${RPM_BUILD_ROOT}%{_prefix}/${arch}/{bin,include,lib,share}
   271   mkdir -p ${RPM_BUILD_ROOT}%{_prefix}/${arch}/lib/{m4,mb/m4}
   272   make DESTDIR=${RPM_BUILD_ROOT} \
   273 	install-gcc \
   274 	install-fastjar \
   275 	-C ${arch}
   276 %if 0
   277   ( cd ${RPM_BUILD_ROOT}%{_prefix}/sh-linux/lib
   278     rm -f libgcc_s_*.so
   279     mv libgcc_s_mb.so.1 mb/libgcc_s.so.1
   280     mv libgcc_s_m4.so.1 m4/libgcc_s.so.1
   281     mv libgcc_s_mb_m4.so.1 mb/m4/libgcc_s.so.1
   282     ln -s libgcc_s.so.1 mb/libgcc_s.so
   283     ln -s libgcc_s.so.1 m4/libgcc_s.so
   284     ln -s libgcc_s.so.1 mb/m4/libgcc_s.so
   285   )
   286 %endif
   287 
   288   if [ %{TARGET_LIBSTDC} -ne 0 ]; then
   289     make DESTDIR=${RPM_BUILD_ROOT} \
   290       install-target-libstdc++-v3 \
   291       -C ${arch}
   292   fi
   293   if [ %{TARGET_JAVA} -ne 0 ]; then
   294     make DESTDIR=${RPM_BUILD_ROOT} \
   295       install-target-libjava \
   296       install-target-boehm-gc \
   297       install-target-zlib \
   298       -C ${arch}
   299     make DESTDIR=${RPM_BUILD_ROOT} prefix=%{_prefix}/${arch} \
   300       install -C ${arch}/${arch}/libffi
   301     mv -f $RPM_BUILD_ROOT%{_prefix}/share/java $RPM_BUILD_ROOT%{_prefix}/sh-linux/share/
   302   fi
   303   rm -f $RPM_BUILD_ROOT%{_prefix}/bin/{gcov,gccbug}
   304   rm -f $RPM_BUILD_ROOT%{_prefix}/${arch}/bin/{gij,jv-convert}
   305   sed -e 's/@@VERSION@@/%{GCC_VERSION}/g' debian/shCPU-linux-GCC >$RPM_BUILD_ROOT%{_prefix}/bin/shCPU-linux-GCC
   306   chmod 0755 $RPM_BUILD_ROOT%{_prefix}/bin/shCPU-linux-GCC
   307 
   308   LIBSTDC=`cd $RPM_BUILD_ROOT%{_prefix}/sh-linux/lib; echo libstdc++.so*`
   309   LIBGCJ=`cd $RPM_BUILD_ROOT%{_prefix}/sh-linux/lib; echo libgcj.so*`
   310   LIBFFI=`cd $RPM_BUILD_ROOT%{_prefix}/sh-linux/lib; echo libffi*.so*`
   311   # literally (binary-ly) same
   312   PROGS="cpp c++ g++ g77 gcc gcj"
   313   DRIVERS="cc1 cc1obj cc1plus collect2 cpp0 f771 jc1 tradcpp0 jvgenmain"
   314   OBJS="crtbegin.o crtbeginS.o crtend.o crtendS.o crtbeginT.o"
   315   LIBS="libgcc.a libgcc_eh.a libobjc.a"
   316   LIBS_1="$LIBSTDC \
   317           $LIBGCJ libgcj.spec \
   318           $LIBFFI "
   319   LIBS_2="libstdc++.a libstdc++.la \
   320 	  libsupc++.a libsupc++.la \
   321 	  libgcj.a libgcj.la \
   322           libffi.a libffi.la"
   323   INCLUDE="include"
   324 
   325   for CPU in sh3 sh3eb sh4 sh4eb; do
   326     mkdir -p ${RPM_BUILD_ROOT}%{_prefix}/lib/gcc-lib/${CPU}-linux/%{GCC_VERSION}
   327     mkdir -p ${RPM_BUILD_ROOT}%{_prefix}/${CPU}-linux/{lib,share/java}
   328     # Make symbolic links for include dir.
   329     ln -s ../sh-linux/include $RPM_BUILD_ROOT%{_prefix}/${CPU}-linux/include
   330 
   331     # Make symbolic links for libgcj.jar
   332     ln -s ../../sh-linux/share/java/libgcj-%{GCC_VERSION}.jar $RPM_BUILD_ROOT%{_prefix}/${CPU}-linux/share/java/libgcj-%{GCC_VERSION}.jar
   333 
   334     # Make symbolic links for executables.
   335     for p in ${PROGS}; do
   336       ln -s shCPU-linux-GCC $RPM_BUILD_ROOT%{_prefix}/bin/${CPU}-linux-$p
   337     done
   338     ln -s sh-linux-gcjh $RPM_BUILD_ROOT%{_prefix}/bin/${CPU}-linux-gcjh
   339 
   340     case "${CPU}" in
   341         sh3)
   342 	    MULTILIBDIR=
   343 	    MULTIPARENTDIR=
   344 	    AS_ENDIAN_FLAG="-little"
   345 	    CPP_ENDIAN_DEF="-D__LITTLE_ENDIAN__"
   346 	    CPP_CPU_DEFS='-D__SH3__ -D__sh3__'
   347 	    CC1_CPU_ENDIAN_FLAGS="-ml -m3"
   348 	    CC1PLUS_CPU_ENDIAN_FLAGS="-ml -m3"
   349 	    LINKER_CPU_ENDIAN_FLAGS="-m shlelf_linux -EL --architecture sh3"
   350 	    LINKER_RPATH_LINK_FLAG="-rpath-link %{_prefix}/sh3-linux/lib"
   351         ;;
   352         sh3eb)
   353 	    MULTILIBDIR=/mb
   354 	    MULTIPARENTDIR=../
   355 	    AS_ENDIAN_FLAG="-big"
   356 	    CPP_ENDIAN_DEF="-D__BIG_ENDIAN__"
   357 	    CPP_CPU_DEFS='-D__SH3__ -D__sh3__'
   358 	    CC1_CPU_ENDIAN_FLAGS="-mb -m3"
   359 	    CC1PLUS_CPU_ENDIAN_FLAGS="-mb -m3"
   360 	    LINKER_CPU_ENDIAN_FLAGS="-m shelf_linux -EB --architecture sh3"
   361 	    LINKER_RPATH_LINK_FLAG="-rpath-link %{_prefix}/sh3eb-linux/lib"
   362         ;;
   363         sh4)
   364 	    MULTILIBDIR=/m4
   365 	    MULTIPARENTDIR=../
   366 	    AS_ENDIAN_FLAG="-little"
   367 	    CPP_ENDIAN_DEF="-D__LITTLE_ENDIAN__"
   368 	    CPP_CPU_DEFS="-D__SH4__"
   369 	    CC1_CPU_ENDIAN_FLAGS="-ml -m4"
   370 	    CC1PLUS_CPU_ENDIAN_FLAGS="-ml -m4"
   371 	    LINKER_CPU_ENDIAN_FLAGS="-m shlelf_linux -EL --architecture sh4"
   372 	    LINKER_RPATH_LINK_FLAG="-rpath-link %{_prefix}/sh4-linux/lib"
   373         ;;
   374         sh4eb)
   375 	    MULTILIBDIR=/mb/m4
   376 	    MULTIPARENTDIR=../../
   377 	    AS_ENDIAN_FLAG="-big"
   378 	    CPP_ENDIAN_DEF="-D__BIG_ENDIAN__"
   379 	    CPP_CPU_DEFS="-D__SH4__"
   380 	    CC1_CPU_ENDIAN_FLAGS="-mb -m4"
   381 	    CC1PLUS_CPU_ENDIAN_FLAGS="-mb -m4"
   382 	    LINKER_CPU_ENDIAN_FLAGS="-m shelf_linux -EB --architecture sh4"
   383 	    LINKER_RPATH_LINK_FLAG="-rpath-link %{_prefix}/sh4eb-linux/lib"
   384         ;;
   385     esac
   386 
   387     # Make symbolic links for GCC drivers, objects, libraries, and include dir.
   388     for f in ${DRIVERS} ${INCLUDE}; do
   389        if [ -a $RPM_BUILD_ROOT%{_prefix}/lib/gcc-lib/sh-linux/%{GCC_VERSION}/$f ]; then
   390          ln -s ../../sh-linux/%{GCC_VERSION}/$f $RPM_BUILD_ROOT%{_prefix}/lib/gcc-lib/${CPU}-linux/%{GCC_VERSION}/$f
   391        fi
   392     done
   393     for f in ${OBJS} ${LIBS}; do
   394        if [ -a $RPM_BUILD_ROOT%{_prefix}/lib/gcc-lib/sh-linux/%{GCC_VERSION}${MULTILIBDIR}/$f ]; then
   395          ln -s ../../sh-linux/%{GCC_VERSION}${MULTILIBDIR}/$f $RPM_BUILD_ROOT%{_prefix}/lib/gcc-lib/${CPU}-linux/%{GCC_VERSION}/$f
   396        fi
   397     done
   398 
   399     for f in ${LIBS_1} ${LIBS_2}; do
   400       if [ -e $RPM_BUILD_ROOT%{_prefix}/sh-linux/lib${MULTILIBDIR}/$f ]; then
   401         mv -f $RPM_BUILD_ROOT%{_prefix}/sh-linux/lib${MULTILIBDIR}/$f $RPM_BUILD_ROOT%{_prefix}/${CPU}-linux/lib
   402         ln -s ${MULTIPARENTDIR}../../${CPU}-linux/lib/$f $RPM_BUILD_ROOT%{_prefix}/sh-linux/lib${MULTILIBDIR}/$f
   403       fi
   404     done
   405 
   406     sed -e "s+@AS_ENDIAN_FLAG@+${AS_ENDIAN_FLAG}+" \
   407         -e "s+@CPP_ENDIAN_DEF@+${CPP_ENDIAN_DEF}+" \
   408         -e "s+@CPP_CPU_DEFS@+${CPP_CPU_DEFS}+" \
   409         -e "s+@CC1_CPU_ENDIAN_FLAGS@+${CC1_CPU_ENDIAN_FLAGS}+" \
   410         -e "s+@CC1PLUS_CPU_ENDIAN_FLAGS@+${CC1PLUS_CPU_ENDIAN_FLAGS}+" \
   411         -e "s+@LINKER_CPU_ENDIAN_FLAGS@+${LINKER_CPU_ENDIAN_FLAGS}+" \
   412         -e "s+@LINKER_RPATH_LINK_FLAG@+${LINKER_RPATH_LINK_FLAG}+" \
   413         debian/edit-specs.in >${arch}/edit-specs-${CPU}.sed
   414 
   415     sed -f ${arch}/edit-specs-${CPU}.sed \
   416         $RPM_BUILD_ROOT%{_prefix}/lib/gcc-lib/sh-linux/%{GCC_VERSION}/specs \
   417         > $RPM_BUILD_ROOT%{_prefix}/lib/gcc-lib/${CPU}-linux/%{GCC_VERSION}/specs
   418 
   419   done
   420 
   421 %else
   422   ARCH_STRTIP=%{_target}-strip
   423   EXESUFFIX=""
   424   TOOLPREFIX=""
   425   ln -s ..%{_prefix}/bin/cpp ${RPM_BUILD_ROOT}/lib/cpp
   426   ln -s gcc ${RPM_BUILD_ROOT}%{_prefix}/bin/cc
   427   arch=%{_target}
   428   make DESTDIR=${RPM_BUILD_ROOT} \
   429 	install -C ${arch}
   430   if [ %{TARGET_JAVA} -ne 0 ]; then
   431     make DESTDIR=${RPM_BUILD_ROOT} install -C ${arch}/${arch}/libffi
   432     make DESTDIR=${RPM_BUILD_ROOT} install -C ${arch}/${arch}/fastjar
   433     mv -f ${RPM_BUILD_ROOT}/%{_prefix}/%{_lib}/libgcj.spec \
   434           ${RPM_BUILD_ROOT}/%{_prefix}/lib/gcc-lib/${arch}/%{GCC_VERSION}/
   435   fi
   436   $ARCH_STRTIP $RPM_BUILD_ROOT%{_prefix}/bin/gcov$EXESUFFIX || :
   437 
   438 cat >${arch}/edit-specs <<EOF
   439 /^*cross_compile:$/ {
   440 n
   441 c\\
   442 0
   443 }
   444 EOF
   445   sed -f ${arch}/edit-specs -e 's#-rpath-link.*/usr/%{_target}/lib##' \
   446      ${RPM_BUILD_ROOT}%{_prefix}/lib/gcc-lib/${arch}/%{GCC_VERSION}/specs \
   447     >${RPM_BUILD_ROOT}%{_prefix}/lib/gcc-lib/${arch}/%{GCC_VERSION}/specs.$$
   448   mv -f ${RPM_BUILD_ROOT}%{_prefix}/lib/gcc-lib/${arch}/%{GCC_VERSION}/specs.$$ \
   449         ${RPM_BUILD_ROOT}%{_prefix}/lib/gcc-lib/${arch}/%{GCC_VERSION}/specs
   450 
   451   sed -e "s/dependency_libs=.*/dependency_libs='-lm -lgcc -lc -lgcc'/" \
   452      ${RPM_BUILD_ROOT}%{_prefix}/lib/libstdc++.la \
   453     >${RPM_BUILD_ROOT}%{_prefix}/lib/libstdc++.la.$$
   454   mv -f ${RPM_BUILD_ROOT}%{_prefix}/lib/libstdc++.la.$$ \
   455         ${RPM_BUILD_ROOT}%{_prefix}/lib/libstdc++.la
   456 
   457   sed -e "s/dependency_libs=.*/dependency_libs='-lpthread -ldl -lz -lm -lgcc -lc -lgcc'/" \
   458      ${RPM_BUILD_ROOT}%{_prefix}/lib/libgcj.la \
   459     >${RPM_BUILD_ROOT}%{_prefix}/lib/libgcj.la.$$
   460   mv -f ${RPM_BUILD_ROOT}%{_prefix}/lib/libgcj.la.$$ \
   461         ${RPM_BUILD_ROOT}%{_prefix}/lib/libgcj.la
   462 
   463 cat >$RPM_BUILD_ROOT%{_prefix}/lib/gcc-lib/%{_target}/%{GCC_VERSION}/include/syslimits.h <<EOF
   464 #define _GCC_NEXT_LIMITS_H		/* tell gcc's limits.h to recurse */
   465 #include_next <limits.h>
   466 #undef _GCC_NEXT_LIMITS_H
   467 EOF
   468 
   469 %endif
   470 
   471   $ARCH_STRTIP $RPM_BUILD_ROOT%{_prefix}/bin/${TOOLPREFIX}{gcc,cpp,c++,c++filt,gcj,gcjh,gij,jar,grepjar,jcf-dump,jv-convert,jv-scan}$EXESUFFIX || :
   472   FULLPATH=$(dirname $RPM_BUILD_ROOT%{_prefix}/lib/gcc-lib/${arch}/%{GCC_VERSION}/cc1${EXESUFFIX})
   473   $ARCH_STRTIP $FULLPATH/{cc1${EXESUFFIX},cc1plus${EXESUFFIX},cpp0${EXESUFFIX},tradcpp0${EXESUFFIX},collect2${EXESUFFIX},jc1${EXESUFFIX},jvgenmain${EXESUFFIX}} || :
   474 
   475   # Strip static libraries
   476   sh-linux-strip -S -R .comment `find $RPM_BUILD_ROOT -type f -name "*.a"` || :
   477 
   478   # Strip ELF shared objects
   479   for f in `find $RPM_BUILD_ROOT -type f  \( -perm -0100 -or -perm -0010 -or -perm -0001 \) `; do
   480         if file $f | grep -q "shared object.*not stripped"; then
   481                 sh-linux-strip --strip-unneeded -R .comment $f
   482         fi
   483   done
   484 
   485 %clean
   486 rm -rf $RPM_BUILD_ROOT
   487 
   488 # ==================== Cross Compiler ===============================
   489 %ifarch i386
   490 
   491 %files sh-linux
   492 %defattr(-,root,root)
   493 %{_prefix}/bin/sh*
   494 %dir %{_prefix}/lib/gcc-lib/sh-linux
   495 %dir %{_prefix}/lib/gcc-lib/sh-linux/%{GCC_VERSION}
   496 %dir %{_prefix}/lib/gcc-lib/sh-linux/%{GCC_VERSION}/include
   497 %dir %{_prefix}/lib/gcc-lib/sh3-linux
   498 %dir %{_prefix}/lib/gcc-lib/sh3-linux/%{GCC_VERSION}
   499 %dir %{_prefix}/lib/gcc-lib/sh3eb-linux
   500 %dir %{_prefix}/lib/gcc-lib/sh3eb-linux/%{GCC_VERSION}
   501 %dir %{_prefix}/lib/gcc-lib/sh4-linux
   502 %dir %{_prefix}/lib/gcc-lib/sh4-linux/%{GCC_VERSION}
   503 %dir %{_prefix}/lib/gcc-lib/sh4eb-linux
   504 %dir %{_prefix}/lib/gcc-lib/sh4eb-linux/%{GCC_VERSION}
   505 %{_prefix}/lib/gcc-lib/sh-linux/%{GCC_VERSION}/cc1
   506 %{_prefix}/lib/gcc-lib/sh-linux/%{GCC_VERSION}/cc1plus
   507 %{_prefix}/lib/gcc-lib/sh-linux/%{GCC_VERSION}/collect2
   508 %{_prefix}/lib/gcc-lib/sh-linux/%{GCC_VERSION}/cpp0
   509 %{_prefix}/lib/gcc-lib/sh-linux/%{GCC_VERSION}/*.o
   510 %{_prefix}/lib/gcc-lib/sh-linux/%{GCC_VERSION}/libgcc*.a
   511 %{_prefix}/lib/gcc-lib/sh-linux/%{GCC_VERSION}/specs
   512 %{_prefix}/lib/gcc-lib/sh-linux/%{GCC_VERSION}/tradcpp0
   513 %{_prefix}/lib/gcc-lib/sh-linux/%{GCC_VERSION}/jc1
   514 %{_prefix}/lib/gcc-lib/sh-linux/%{GCC_VERSION}/jvgenmain
   515 %{_prefix}/lib/gcc-lib/sh-linux/%{GCC_VERSION}/m4
   516 %{_prefix}/lib/gcc-lib/sh-linux/%{GCC_VERSION}/mb
   517 %{_prefix}/lib/gcc-lib/sh-linux/%{GCC_VERSION}/include/stddef.h
   518 %{_prefix}/lib/gcc-lib/sh-linux/%{GCC_VERSION}/include/stdarg.h
   519 %{_prefix}/lib/gcc-lib/sh-linux/%{GCC_VERSION}/include/varargs.h
   520 %{_prefix}/lib/gcc-lib/sh-linux/%{GCC_VERSION}/include/float.h
   521 %{_prefix}/lib/gcc-lib/sh-linux/%{GCC_VERSION}/include/limits.h
   522 %{_prefix}/lib/gcc-lib/sh-linux/%{GCC_VERSION}/include/stdbool.h
   523 %{_prefix}/lib/gcc-lib/sh-linux/%{GCC_VERSION}/include/iso646.h
   524 %{_prefix}/lib/gcc-lib/sh-linux/%{GCC_VERSION}/include/syslimits.h
   525 %{_prefix}/lib/gcc-lib/sh-linux/%{GCC_VERSION}/include/README
   526 %{_prefix}/lib/gcc-lib/sh3-linux/%{GCC_VERSION}/*
   527 %{_prefix}/lib/gcc-lib/sh3eb-linux/%{GCC_VERSION}/*
   528 %{_prefix}/lib/gcc-lib/sh4-linux/%{GCC_VERSION}/*
   529 %{_prefix}/lib/gcc-lib/sh4eb-linux/%{GCC_VERSION}/*
   530 %{_mandir}/man1/sh-linux-*
   531 %dir %{_prefix}/sh-linux/include
   532 %{_prefix}/sh3-linux/include
   533 %{_prefix}/sh3eb-linux/include
   534 %{_prefix}/sh4-linux/include
   535 %{_prefix}/sh4eb-linux/include
   536 %endif
   537 
   538 %if %{TARGET_LIBSTDC}
   539 %ifarch i386
   540 %{_prefix}/sh-linux/include/g++-v3
   541 %{_prefix}/sh-linux/lib/libs*
   542 %{_prefix}/sh-linux/lib/m4/libs*
   543 %{_prefix}/sh-linux/lib/mb/libs*
   544 %{_prefix}/sh-linux/lib/mb/m4/libs*
   545 %{_prefix}/sh3-linux/lib/libs*
   546 %{_prefix}/sh4-linux/lib/libs*
   547 %{_prefix}/sh3eb-linux/lib/libs*
   548 %{_prefix}/sh4eb-linux/lib/libs*
   549 %endif
   550 %endif
   551 
   552 %if %{TARGET_JAVA}
   553 %ifarch i386
   554 %files -n libgcj-sh-linux
   555 %defattr(-,root,root)
   556 %{_prefix}/sh-linux/include/*.h
   557 %{_prefix}/sh-linux/include/gcj
   558 %{_prefix}/sh-linux/include/gnu/*
   559 %{_prefix}/sh-linux/include/java
   560 %{_prefix}/sh-linux/lib/lib*gcj*
   561 %{_prefix}/sh-linux/lib/m4/lib*gcj*
   562 %{_prefix}/sh-linux/lib/mb/lib*gcj*
   563 %{_prefix}/sh-linux/lib/mb/m4/lib*gcj*
   564 %{_prefix}/sh-linux/lib/libffi*
   565 %{_prefix}/sh-linux/lib/m4/libffi*
   566 %{_prefix}/sh-linux/lib/mb/libffi*
   567 %{_prefix}/sh-linux/lib/mb/m4/libffi*
   568 %{_prefix}/sh-linux/share/java/libgcj-%{GCC_VERSION}.jar
   569 %{_prefix}/sh3-linux/lib/lib*gcj*
   570 %{_prefix}/sh3-linux/lib/libffi*
   571 %{_prefix}/sh3-linux/share/java/libgcj-%{GCC_VERSION}.jar
   572 %{_prefix}/sh4-linux/lib/lib*gcj*
   573 %{_prefix}/sh4-linux/lib/libffi*
   574 %{_prefix}/sh4-linux/share/java/libgcj-%{GCC_VERSION}.jar
   575 %{_prefix}/sh3eb-linux/lib/lib*gcj*
   576 %{_prefix}/sh3eb-linux/lib/libffi*
   577 %{_prefix}/sh3eb-linux/share/java/libgcj-%{GCC_VERSION}.jar
   578 %{_prefix}/sh4eb-linux/lib/lib*gcj*
   579 %{_prefix}/sh4eb-linux/lib/libffi*
   580 %{_prefix}/sh4eb-linux/share/java/libgcj-%{GCC_VERSION}.jar
   581 %endif
   582 %endif
   583 
   584 %ifarch sh3 sh3eb sh4 sh4eb
   585 # =========================== Native Compiler =================================
   586 %files
   587 %defattr(-,root,root)
   588 %dir %{_prefix}/lib/gcc-lib/%{_target}
   589 %dir %{_prefix}/lib/gcc-lib/%{_target}/%{GCC_VERSION}
   590 %dir %{_prefix}/lib/gcc-lib/%{_target}/%{GCC_VERSION}/include
   591 %{_prefix}/lib/gcc-lib/%{_target}/%{GCC_VERSION}/cc1
   592 %{_prefix}/lib/gcc-lib/%{_target}/%{GCC_VERSION}/collect2
   593 %{_prefix}/lib/gcc-lib/%{_target}/%{GCC_VERSION}/cpp0
   594 %{_prefix}/lib/gcc-lib/%{_target}/%{GCC_VERSION}/crt*.o
   595 %{_prefix}/lib/gcc-lib/%{_target}/%{GCC_VERSION}/libgcc*.a
   596 %{_prefix}/lib/gcc-lib/%{_target}/%{GCC_VERSION}/specs
   597 %{_prefix}/lib/gcc-lib/%{_target}/%{GCC_VERSION}/tradcpp0
   598 %{_prefix}/lib/gcc-lib/%{_target}/%{GCC_VERSION}/include/stddef.h
   599 %{_prefix}/lib/gcc-lib/%{_target}/%{GCC_VERSION}/include/stdarg.h
   600 %{_prefix}/lib/gcc-lib/%{_target}/%{GCC_VERSION}/include/varargs.h
   601 %{_prefix}/lib/gcc-lib/%{_target}/%{GCC_VERSION}/include/float.h
   602 %{_prefix}/lib/gcc-lib/%{_target}/%{GCC_VERSION}/include/limits.h
   603 %{_prefix}/lib/gcc-lib/%{_target}/%{GCC_VERSION}/include/stdbool.h
   604 %{_prefix}/lib/gcc-lib/%{_target}/%{GCC_VERSION}/include/iso646.h
   605 %{_prefix}/lib/gcc-lib/%{_target}/%{GCC_VERSION}/include/syslimits.h
   606 %{_prefix}/lib/gcc-lib/%{_target}/%{GCC_VERSION}/include/README
   607 %{_prefix}/bin/gcc
   608 %{_prefix}/bin/%{_target}-gcc
   609 %{_prefix}/bin/cpp
   610 %{_prefix}/bin/gccbug
   611 %{_prefix}/bin/gcov
   612 %{_prefix}/bin/cc
   613 /lib/cpp
   614 %{_infodir}/cpp*
   615 %{_infodir}/gcc*
   616 
   617 %if 0
   618 %files libgcc
   619 %defattr(-,root,root)
   620 /lib/libgcc_s.so*
   621 %endif
   622 
   623 %files c++
   624 %defattr(-,root,root)
   625 %{_prefix}/bin/c++
   626 %{_prefix}/bin/g++
   627 %{_prefix}/bin/c++filt
   628 %{_prefix}/bin/%{_target}-c++
   629 %{_prefix}/bin/%{_target}-g++
   630 %{_prefix}/lib/gcc-lib/%{_target}/%{GCC_VERSION}/cc1plus
   631 %endif
   632 
   633 %if %{TARGET_LIBSTDC}
   634 %ifarch sh3 sh3eb sh4 sh4eb
   635 %files -n libstdc++
   636 %defattr(-,root,root)
   637 %{_prefix}/lib/libstdc++.so*
   638 
   639 %files -n libstdc++-devel
   640 %defattr(-,root,root)
   641 %{_prefix}/include/g++-v3
   642 %{_prefix}/lib/libstdc++.*a
   643 %endif
   644 %endif
   645 
   646 %if %{TARGET_JAVA}
   647 %ifarch sh3 sh3eb sh4 sh4eb
   648 %files java
   649 %defattr(-,root,root)
   650 %{_prefix}/bin/addr2name.awk
   651 %{_prefix}/bin/gcj
   652 %{_prefix}/bin/gcjh
   653 %{_prefix}/bin/gij
   654 %{_prefix}/bin/jar
   655 %{_prefix}/bin/grepjar
   656 %{_prefix}/bin/jcf-dump
   657 %{_prefix}/bin/jv-convert
   658 %{_prefix}/bin/jv-scan
   659 %dir %{_prefix}/lib/gcc-lib
   660 %dir %{_prefix}/lib/gcc-lib/%{_target}
   661 %dir %{_prefix}/lib/gcc-lib/%{_target}/%{GCC_VERSION}
   662 %{_prefix}/lib/gcc-lib/%{_target}/%{GCC_VERSION}/jc1
   663 %{_prefix}/lib/gcc-lib/%{_target}/%{GCC_VERSION}/jvgenmain
   664 %{_infodir}/gcj*
   665 
   666 %files -n libgcj
   667 %defattr(-,root,root)
   668 %{_prefix}/%{_lib}/libgcj.so*
   669 %{_prefix}/%{_lib}/libffi*.so*
   670 %{_prefix}/lib/gcc-lib/%{_target}/%{GCC_VERSION}/libgcj.spec
   671 %{_prefix}/share/java/libgcj-%{GCC_VERSION}.jar
   672 
   673 %files -n libgcj-devel
   674 %defattr(-,root,root)
   675 %{_prefix}/include/*.h
   676 %{_prefix}/include/gcj
   677 %{_prefix}/include/gnu/*
   678 %{_prefix}/include/java
   679 %{_prefix}/lib/libgcj.*a
   680 %{_prefix}/lib/libffi.*a
   681 %endif
   682 %endif
   683 
   684 %changelog
   685 * Wed Feb 19 2003 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
   686 - version 3.2.2.
   687 
   688 * Tue Feb 19 2002 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
   689 - version 3.0.4.
   690 
   691 * Tue Feb 12 2002 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
   692 - add java support.
   693 
   694 * Thu Feb 7 2002 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
   695 - follow debian/SH update.
   696 
   697 * Tue Feb 5 2002 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
   698 - follow debian/SH update.
   699 
   700 * Thu Jan 24 2002 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
   701 - rebuild with new binutils.
   702 
   703 * Tue Jan 22 2002 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
   704 - leaf function optimization fixed.
   705 
   706 * Thu Dec 06 2001 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
   707 - add gcc-ice-rml patch.
   708 
   709 * Tue Nov 13 2001 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
   710 - add configure option.
   711 
   712 * Thu Nov 01 2001 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
   713 - tablejump fix by gniibe.
   714 
   715 * Mon Oct 22 2001 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
   716 - updated gcc patch.
   717 
   718 * Wed Oct 17 2001 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
   719 - updated gcc patch.
   720 
   721 * Tue Oct 02 2001 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
   722 - gcc/config/sh/sh.c bug fix.
   723 
   724 * Fri Aug 24 2001 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
   725 - gcc version 3.0.1.
   726 
   727 * Thu Jun 28 2001 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
   728 - gcc version 3.0.
   729 - Add libstdc++ package.
   730 
   731 * Mon Apr 23 2001 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
   732 - Add cygwin host.
   733 
   734 * Sat Dec 23 2000 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
   735 - fix file attribute.
   736 - add asmspecs patch.
   737 
   738 * Sat Nov 11 2000 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
   739 - initial version.