patches/gcc/3.2.3/gcc-sh-linux.spec
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Sun Feb 17 22:08:06 2008 +0000 (2008-02-17)
changeset 431 8bde4c6ea47a
permissions -rw-r--r--
Robert P. J. DAY says:

apparently, the patchset for gcc 4.2.1 applies properly to the
source for gcc 4.2.2 and gcc 4.2.3. so, if you want, you can simply
add support for those last two just by augmenting menuconfig and
adding a couple symlinks for those two directories. seems like a
cheap way to add a couple new versions.
     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.