1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1.2 +++ b/patches/gcc/3.2.3/gcc-sh-linux.spec Sat Jun 16 17:56:17 2007 +0000
1.3 @@ -0,0 +1,739 @@
1.4 +Summary: The GNU Compiler Collection for SuperH.
1.5 +%define GCC_VERSION 3.2.3
1.6 +%define arch_list sh3-linux sh3eb-linux sh4-linux sh4eb-linux
1.7 +%define TARGET_LIBSTDC 1
1.8 +%define TARGET_JAVA 1
1.9 +
1.10 +Name: gcc
1.11 +Version: 3.2.3
1.12 +Release: 3
1.13 +
1.14 +Copyright: GPL
1.15 +Group: Development/Languages
1.16 +Source0: gcc-%{GCC_VERSION}.tar.bz2
1.17 +Patch1: gcc-20030210-sh-linux-1.patch
1.18 +Patch2: gcc-3.2.3-libffi-1.patch
1.19 +Patch3: gcc-3.2.3-sh-linux-dwarf2-1.patch
1.20 +Buildroot: /var/tmp/gcc-%{_target}-root
1.21 +ExclusiveArch: i386 sh3 sh3eb sh4 sh4eb
1.22 +
1.23 +%description
1.24 +This package contains the GNU Compiler Collection: gcc and g++.
1.25 +You'll need this package in order to compile C/C++ code.
1.26 +
1.27 +%ifarch i386
1.28 +
1.29 +# ==================== Cross Compiler ===============================
1.30 +
1.31 +%package sh-linux
1.32 +Summary: The GNU Compiler Collection for sh-linux.
1.33 +Group: Development/Languages
1.34 +Requires: binutils-sh-linux >= 2.13.2
1.35 +Provides: gcc-sh-linux
1.36 +Obsoletes: gcc-sh3-linux gcc-sh3eb-linux gcc-sh4-linux gcc-sh4eb-linux
1.37 +Obsoletes: gcc-sh3-linux-c++ gcc-sh3eb-linux-c++ gcc-sh4-linux-c++ gcc-sh4eb-linux-c++
1.38 +Obsoletes: libstdc++-sh3-linux libstdc++-sh3eb-linux libstdc++-sh4-linux libstdc++-sh4eb-linux
1.39 +AutoReqProv: no
1.40 +
1.41 +%description sh-linux
1.42 +The gcc-sh-linux package contains GNU Compiler Collection: gcc g++ and libstdc++-v3.
1.43 +
1.44 +It includes support for most of the current C++ specification, including templates and
1.45 +exception handling. It does also include the standard C++ library and C++ header files.
1.46 +You'll need this package in order to cross compile C/C++ code for sh-linux.
1.47 +
1.48 +%package -n libgcj-sh-linux
1.49 +Summary: Header files and libraries for sh-linux Java development.
1.50 +Group: Development/Libraries
1.51 +Requires: gcc-sh-linux = %{version}-%{release}
1.52 +AutoReqProv: no
1.53 +
1.54 +%description -n libgcj-sh-linux
1.55 +The Java static libraries and C header files. You will need this
1.56 +package to compile your Java programs for sh-linux using the gcc Java compiler (gcj).
1.57 +
1.58 +%else
1.59 +# =========================== Native Compiler =================================
1.60 +%package libgcc
1.61 +Summary: runtime libraries for the GNU Compiler Collection.
1.62 +Group: System Environment/Libraries
1.63 +
1.64 +%description libgcc
1.65 +This package contains libgcc shared libraries for the GNU C Compiler Collection.
1.66 +You'll need this package in order to execute C,C++,JAVA code
1.67 +that uses shared libgcc.
1.68 +
1.69 +%package c++
1.70 +Summary: C++ support for gcc
1.71 +Group: Development/Languages
1.72 +Requires: gcc = %{version}-%{release}
1.73 +
1.74 +%description c++
1.75 +This package adds C++ support to the GNU Compiler Collection. It includes
1.76 +support for most of the current C++ specification, including templates and
1.77 +exception handling. It does include the static standard C++
1.78 +library and C++ header files; the library for dynamically linking
1.79 +programs is available separately.
1.80 +
1.81 +%package -n libstdc++
1.82 +Summary: GNU c++ library.
1.83 +Group: System Environment/Libraries
1.84 +
1.85 +%description -n libstdc++
1.86 +The libstdc++ package contains a snapshot of the GCC Standard C++
1.87 +Library v3, an ongoing project to implement the ISO 14882 Standard C++
1.88 +library.
1.89 +
1.90 +%package -n libstdc++-devel
1.91 +Summary: Header files and libraries for C++ development
1.92 +Group: Development/Libraries
1.93 +Requires: libstdc++ = %{version}-%{release}, gcc-c++ = %{version}-%{release}
1.94 +
1.95 +%description -n libstdc++-devel
1.96 +This is the GNU implementation of the standard C++ libraries. This
1.97 +package includes the header files and libraries needed for C++
1.98 +development. This includes SGI's implementation of the STL.
1.99 +
1.100 +%package java
1.101 +Summary: Java support for gcc
1.102 +Group: Development/Languages
1.103 +Requires: gcc = %{version}-%{release}, libgcj = %{version}-%{release}, libgcj-devel = %{version}-%{release}
1.104 +
1.105 +%description java
1.106 +This package adds experimental support for compiling Java(tm) programs and
1.107 +bytecode into native code. To use this you will also need the libgcj and
1.108 +libgcj-devel packages.
1.109 +
1.110 +%package -n libgcj
1.111 +Summary: Java runtime library for gcc.
1.112 +Group: System Environment/Libraries
1.113 +
1.114 +%description -n libgcj
1.115 +The Java runtime library. You will need this package to run your Java
1.116 +programs compiled using the gcc Java compiler (gcj).
1.117 +
1.118 +%package -n libgcj-devel
1.119 +Summary: Header files and libraries for Java development.
1.120 +Group: Development/Libraries
1.121 +Requires: libgcj = %{version}-%{release}
1.122 +
1.123 +%description -n libgcj-devel
1.124 +The Java static libraries and C header files. You will need this
1.125 +package to compile your Java programs using the gcc Java compiler (gcj).
1.126 +
1.127 +%endif
1.128 +
1.129 +%prep
1.130 +%setup -q -n gcc-%{GCC_VERSION}
1.131 +%patch1 -p1
1.132 +%patch2 -p1
1.133 +##%patch3 -p1
1.134 +
1.135 +%build
1.136 +%ifarch i386
1.137 +# build cross compiler for i386-linux host
1.138 +for arch in sh-linux; do
1.139 + rm -rf ${arch}
1.140 + mkdir ${arch}
1.141 +
1.142 + CONFIG_ARGS="\
1.143 + --prefix=%{_prefix} \
1.144 + --mandir=%{_mandir} \
1.145 + --infodir=%{_infodir} \
1.146 + --target=${arch} \
1.147 + --host=%{_host} \
1.148 + --build=%{_build} \
1.149 + --enable-languages=c,c++,java \
1.150 + --with-system-zlib \
1.151 + --with-gxx-include-dir=%{_prefix}/${arch}/include/g++-v3 \
1.152 + --includedir=%{_prefix}/${arch}/include \
1.153 + --disable-checking \
1.154 + --disable-shared \
1.155 + --enable-__cxa_atexit \
1.156 + --enable-c99 \
1.157 + --enable-threads=posix \
1.158 + --enable-long-long"
1.159 + if [ %{TARGET_JAVA} -ne 0 ]; then
1.160 + CONFIG_ARGS="$CONFIG_ARGS --enable-libgcj"
1.161 + fi
1.162 + ( cd $arch
1.163 + ../configure ${CONFIG_ARGS}
1.164 + )
1.165 + if [ %{TARGET_LIBSTDC} -ne 0 -o %{TARGET_JAVA} -ne 0 ]; then
1.166 + sed -e s:-Dinhibit_libc::g ${arch}/gcc/Makefile >${arch}/gcc/Makefile.$$$
1.167 + mv -f ${arch}/gcc/Makefile.$$$ ${arch}/gcc/Makefile
1.168 + fi
1.169 + make all-gcc -C ${arch}
1.170 +
1.171 + if [ %{TARGET_LIBSTDC} -ne 0 ]; then
1.172 + CONFIG_ARGS="`echo $CONFIG_ARGS | sed -e s/--disable-shared/--enable-shared/`"
1.173 + make TARGET_CONFIGARGS="${CONFIG_ARGS} --with-cross-host" all-target-libstdc++-v3 -C ${arch}
1.174 + fi
1.175 +
1.176 + if [ %{TARGET_JAVA} -ne 0 ]; then
1.177 + make all-fastjar -C ${arch}
1.178 + CONFIG_ARGS="`echo $CONFIG_ARGS | sed -e s/--host=%{_host}/--host=${arch}/`"
1.179 + dir=`pwd`
1.180 +
1.181 + ac_cv_file__proc_self_exe=yes \
1.182 + 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" \
1.183 + make TARGET_CONFIGARGS="${CONFIG_ARGS} --with-cross-host --enable-multilib --with-target-subdir=${arch} --with-x=no" \
1.184 + all-target-libjava -C ${arch}
1.185 + fi
1.186 +
1.187 +%else
1.188 +# Canadian cross (build native compiler)
1.189 +for arch in %{_target}; do
1.190 + rm -rf ${arch}
1.191 + mkdir -p ${arch}
1.192 + CONFIG_ARGS="\
1.193 + --prefix=%{_prefix} \
1.194 + --mandir=%{_mandir} \
1.195 + --infodir=%{_infodir} \
1.196 + --target=${arch} \
1.197 + --host=${arch} \
1.198 + --build=%{_build} \
1.199 + --enable-languages=c,c++,java \
1.200 + --with-system-zlib \
1.201 + --with-gxx-include-dir=%{_prefix}/include/g++-v3 \
1.202 + --disable-checking \
1.203 + --disable-shared \
1.204 + --enable-__cxa_atexit \
1.205 + --enable-c99 \
1.206 + --enable-threads=posix \
1.207 + --enable-long-long"
1.208 +
1.209 + if [ %{TARGET_JAVA} -ne 0 ]; then
1.210 + CONFIG_ARGS="$CONFIG_ARGS --enable-libgcj"
1.211 + fi
1.212 +
1.213 + ( cd ${arch}
1.214 + CC=${arch}-gcc AR=${arch}-ar RANLIB=${arch}-ranlib CXX=${arch}-g++ \
1.215 + ../configure $CONFIG_ARGS
1.216 + )
1.217 +
1.218 + if [ %{TARGET_LIBSTDC} -ne 0 -o %{TARGET_JAVA} -ne 0 ]; then
1.219 + sed -e s:-Dinhibit_libc::g ${arch}/gcc/Makefile >${arch}/gcc/Makefile.$$$
1.220 + mv -f ${arch}/gcc/Makefile.$$$ ${arch}/gcc/Makefile
1.221 + fi
1.222 +
1.223 + make all-build-libiberty all-gcc -C ${arch}
1.224 +
1.225 + if [ %{TARGET_LIBSTDC} -ne 0 ]; then
1.226 + CONFIG_ARGS="`echo $CONFIG_ARGS | sed -e s/--disable-shared/--enable-shared/`"
1.227 + make TARGET_CONFIGARGS="${CONFIG_ARGS}" all-target-libstdc++-v3 -C ${arch}
1.228 + if [ %{TARGET_JAVA} -ne 0 ]; then
1.229 + ( mkdir -p ${arch}/fastjar; cd ${arch}/fastjar; rm *; ../../fastjar/configure --with-system-zlib; make )
1.230 + ac_cv_file__proc_self_exe=yes \
1.231 + CC=${arch}-gcc AR=${arch}-ar RANLIB=${arch}-ranlib CXX=${arch}-g++ GCJ=${arch}-gcj \
1.232 + make TARGET_CONFIGARGS="${CONFIG_ARGS} --with-x=no" configure-target-libjava -C ${arch}
1.233 +
1.234 + make -C ${arch}/${arch}/libffi
1.235 + make -C ${arch}/${arch}/boehm-gc
1.236 + make -C ${arch}/${arch}/zlib
1.237 + make GCJ=${arch}-gcj GCJH=${arch}-gcjh ZIP=${arch}-jar -C ${arch}/${arch}/libjava
1.238 + (
1.239 + rm -rf ${arch}/${arch}/fastjar
1.240 + mkdir -p ${arch}/${arch}/fastjar
1.241 + cd ${arch}/${arch}/fastjar
1.242 +
1.243 + ac_cv_sizeof_char=1 \
1.244 + ac_cv_sizeof_short=2 \
1.245 + ac_cv_sizeof_int=4 \
1.246 + ac_cv_sizeof_long=4 \
1.247 + ac_cv_sizeof_long_long=8 \
1.248 + ac_cv_sizeof_float=4 \
1.249 + ac_cv_sizeof_double=8 \
1.250 + ac_cv_sizeof_long_double=8 \
1.251 + ac_cv_sizeof_void_p=4 \
1.252 + ac_cv_file__proc_self_exe=yes \
1.253 + ac_cv_header_langinfo_h=yes \
1.254 + CC=${arch}-gcc ../../../fastjar/configure $CONFIG_ARGS
1.255 +
1.256 + make
1.257 + )
1.258 +
1.259 + fi
1.260 + fi
1.261 +%endif
1.262 +done
1.263 +
1.264 +%install
1.265 +rm -rf $RPM_BUILD_ROOT
1.266 +mkdir -p ${RPM_BUILD_ROOT}/{%{_prefix}/bin,lib}
1.267 +
1.268 +%ifarch i386
1.269 + ARCH_STRTIP=strip
1.270 + EXESUFFIX=""
1.271 + arch=sh-linux
1.272 + TOOLPREFIX=${arch}-
1.273 + mkdir -p ${RPM_BUILD_ROOT}%{_prefix}/${arch}/{bin,include,lib,share}
1.274 + mkdir -p ${RPM_BUILD_ROOT}%{_prefix}/${arch}/lib/{m4,mb/m4}
1.275 + make DESTDIR=${RPM_BUILD_ROOT} \
1.276 + install-gcc \
1.277 + install-fastjar \
1.278 + -C ${arch}
1.279 +%if 0
1.280 + ( cd ${RPM_BUILD_ROOT}%{_prefix}/sh-linux/lib
1.281 + rm -f libgcc_s_*.so
1.282 + mv libgcc_s_mb.so.1 mb/libgcc_s.so.1
1.283 + mv libgcc_s_m4.so.1 m4/libgcc_s.so.1
1.284 + mv libgcc_s_mb_m4.so.1 mb/m4/libgcc_s.so.1
1.285 + ln -s libgcc_s.so.1 mb/libgcc_s.so
1.286 + ln -s libgcc_s.so.1 m4/libgcc_s.so
1.287 + ln -s libgcc_s.so.1 mb/m4/libgcc_s.so
1.288 + )
1.289 +%endif
1.290 +
1.291 + if [ %{TARGET_LIBSTDC} -ne 0 ]; then
1.292 + make DESTDIR=${RPM_BUILD_ROOT} \
1.293 + install-target-libstdc++-v3 \
1.294 + -C ${arch}
1.295 + fi
1.296 + if [ %{TARGET_JAVA} -ne 0 ]; then
1.297 + make DESTDIR=${RPM_BUILD_ROOT} \
1.298 + install-target-libjava \
1.299 + install-target-boehm-gc \
1.300 + install-target-zlib \
1.301 + -C ${arch}
1.302 + make DESTDIR=${RPM_BUILD_ROOT} prefix=%{_prefix}/${arch} \
1.303 + install -C ${arch}/${arch}/libffi
1.304 + mv -f $RPM_BUILD_ROOT%{_prefix}/share/java $RPM_BUILD_ROOT%{_prefix}/sh-linux/share/
1.305 + fi
1.306 + rm -f $RPM_BUILD_ROOT%{_prefix}/bin/{gcov,gccbug}
1.307 + rm -f $RPM_BUILD_ROOT%{_prefix}/${arch}/bin/{gij,jv-convert}
1.308 + sed -e 's/@@VERSION@@/%{GCC_VERSION}/g' debian/shCPU-linux-GCC >$RPM_BUILD_ROOT%{_prefix}/bin/shCPU-linux-GCC
1.309 + chmod 0755 $RPM_BUILD_ROOT%{_prefix}/bin/shCPU-linux-GCC
1.310 +
1.311 + LIBSTDC=`cd $RPM_BUILD_ROOT%{_prefix}/sh-linux/lib; echo libstdc++.so*`
1.312 + LIBGCJ=`cd $RPM_BUILD_ROOT%{_prefix}/sh-linux/lib; echo libgcj.so*`
1.313 + LIBFFI=`cd $RPM_BUILD_ROOT%{_prefix}/sh-linux/lib; echo libffi*.so*`
1.314 + # literally (binary-ly) same
1.315 + PROGS="cpp c++ g++ g77 gcc gcj"
1.316 + DRIVERS="cc1 cc1obj cc1plus collect2 cpp0 f771 jc1 tradcpp0 jvgenmain"
1.317 + OBJS="crtbegin.o crtbeginS.o crtend.o crtendS.o crtbeginT.o"
1.318 + LIBS="libgcc.a libgcc_eh.a libobjc.a"
1.319 + LIBS_1="$LIBSTDC \
1.320 + $LIBGCJ libgcj.spec \
1.321 + $LIBFFI "
1.322 + LIBS_2="libstdc++.a libstdc++.la \
1.323 + libsupc++.a libsupc++.la \
1.324 + libgcj.a libgcj.la \
1.325 + libffi.a libffi.la"
1.326 + INCLUDE="include"
1.327 +
1.328 + for CPU in sh3 sh3eb sh4 sh4eb; do
1.329 + mkdir -p ${RPM_BUILD_ROOT}%{_prefix}/lib/gcc-lib/${CPU}-linux/%{GCC_VERSION}
1.330 + mkdir -p ${RPM_BUILD_ROOT}%{_prefix}/${CPU}-linux/{lib,share/java}
1.331 + # Make symbolic links for include dir.
1.332 + ln -s ../sh-linux/include $RPM_BUILD_ROOT%{_prefix}/${CPU}-linux/include
1.333 +
1.334 + # Make symbolic links for libgcj.jar
1.335 + ln -s ../../sh-linux/share/java/libgcj-%{GCC_VERSION}.jar $RPM_BUILD_ROOT%{_prefix}/${CPU}-linux/share/java/libgcj-%{GCC_VERSION}.jar
1.336 +
1.337 + # Make symbolic links for executables.
1.338 + for p in ${PROGS}; do
1.339 + ln -s shCPU-linux-GCC $RPM_BUILD_ROOT%{_prefix}/bin/${CPU}-linux-$p
1.340 + done
1.341 + ln -s sh-linux-gcjh $RPM_BUILD_ROOT%{_prefix}/bin/${CPU}-linux-gcjh
1.342 +
1.343 + case "${CPU}" in
1.344 + sh3)
1.345 + MULTILIBDIR=
1.346 + MULTIPARENTDIR=
1.347 + AS_ENDIAN_FLAG="-little"
1.348 + CPP_ENDIAN_DEF="-D__LITTLE_ENDIAN__"
1.349 + CPP_CPU_DEFS='-D__SH3__ -D__sh3__'
1.350 + CC1_CPU_ENDIAN_FLAGS="-ml -m3"
1.351 + CC1PLUS_CPU_ENDIAN_FLAGS="-ml -m3"
1.352 + LINKER_CPU_ENDIAN_FLAGS="-m shlelf_linux -EL --architecture sh3"
1.353 + LINKER_RPATH_LINK_FLAG="-rpath-link %{_prefix}/sh3-linux/lib"
1.354 + ;;
1.355 + sh3eb)
1.356 + MULTILIBDIR=/mb
1.357 + MULTIPARENTDIR=../
1.358 + AS_ENDIAN_FLAG="-big"
1.359 + CPP_ENDIAN_DEF="-D__BIG_ENDIAN__"
1.360 + CPP_CPU_DEFS='-D__SH3__ -D__sh3__'
1.361 + CC1_CPU_ENDIAN_FLAGS="-mb -m3"
1.362 + CC1PLUS_CPU_ENDIAN_FLAGS="-mb -m3"
1.363 + LINKER_CPU_ENDIAN_FLAGS="-m shelf_linux -EB --architecture sh3"
1.364 + LINKER_RPATH_LINK_FLAG="-rpath-link %{_prefix}/sh3eb-linux/lib"
1.365 + ;;
1.366 + sh4)
1.367 + MULTILIBDIR=/m4
1.368 + MULTIPARENTDIR=../
1.369 + AS_ENDIAN_FLAG="-little"
1.370 + CPP_ENDIAN_DEF="-D__LITTLE_ENDIAN__"
1.371 + CPP_CPU_DEFS="-D__SH4__"
1.372 + CC1_CPU_ENDIAN_FLAGS="-ml -m4"
1.373 + CC1PLUS_CPU_ENDIAN_FLAGS="-ml -m4"
1.374 + LINKER_CPU_ENDIAN_FLAGS="-m shlelf_linux -EL --architecture sh4"
1.375 + LINKER_RPATH_LINK_FLAG="-rpath-link %{_prefix}/sh4-linux/lib"
1.376 + ;;
1.377 + sh4eb)
1.378 + MULTILIBDIR=/mb/m4
1.379 + MULTIPARENTDIR=../../
1.380 + AS_ENDIAN_FLAG="-big"
1.381 + CPP_ENDIAN_DEF="-D__BIG_ENDIAN__"
1.382 + CPP_CPU_DEFS="-D__SH4__"
1.383 + CC1_CPU_ENDIAN_FLAGS="-mb -m4"
1.384 + CC1PLUS_CPU_ENDIAN_FLAGS="-mb -m4"
1.385 + LINKER_CPU_ENDIAN_FLAGS="-m shelf_linux -EB --architecture sh4"
1.386 + LINKER_RPATH_LINK_FLAG="-rpath-link %{_prefix}/sh4eb-linux/lib"
1.387 + ;;
1.388 + esac
1.389 +
1.390 + # Make symbolic links for GCC drivers, objects, libraries, and include dir.
1.391 + for f in ${DRIVERS} ${INCLUDE}; do
1.392 + if [ -a $RPM_BUILD_ROOT%{_prefix}/lib/gcc-lib/sh-linux/%{GCC_VERSION}/$f ]; then
1.393 + ln -s ../../sh-linux/%{GCC_VERSION}/$f $RPM_BUILD_ROOT%{_prefix}/lib/gcc-lib/${CPU}-linux/%{GCC_VERSION}/$f
1.394 + fi
1.395 + done
1.396 + for f in ${OBJS} ${LIBS}; do
1.397 + if [ -a $RPM_BUILD_ROOT%{_prefix}/lib/gcc-lib/sh-linux/%{GCC_VERSION}${MULTILIBDIR}/$f ]; then
1.398 + ln -s ../../sh-linux/%{GCC_VERSION}${MULTILIBDIR}/$f $RPM_BUILD_ROOT%{_prefix}/lib/gcc-lib/${CPU}-linux/%{GCC_VERSION}/$f
1.399 + fi
1.400 + done
1.401 +
1.402 + for f in ${LIBS_1} ${LIBS_2}; do
1.403 + if [ -e $RPM_BUILD_ROOT%{_prefix}/sh-linux/lib${MULTILIBDIR}/$f ]; then
1.404 + mv -f $RPM_BUILD_ROOT%{_prefix}/sh-linux/lib${MULTILIBDIR}/$f $RPM_BUILD_ROOT%{_prefix}/${CPU}-linux/lib
1.405 + ln -s ${MULTIPARENTDIR}../../${CPU}-linux/lib/$f $RPM_BUILD_ROOT%{_prefix}/sh-linux/lib${MULTILIBDIR}/$f
1.406 + fi
1.407 + done
1.408 +
1.409 + sed -e "s+@AS_ENDIAN_FLAG@+${AS_ENDIAN_FLAG}+" \
1.410 + -e "s+@CPP_ENDIAN_DEF@+${CPP_ENDIAN_DEF}+" \
1.411 + -e "s+@CPP_CPU_DEFS@+${CPP_CPU_DEFS}+" \
1.412 + -e "s+@CC1_CPU_ENDIAN_FLAGS@+${CC1_CPU_ENDIAN_FLAGS}+" \
1.413 + -e "s+@CC1PLUS_CPU_ENDIAN_FLAGS@+${CC1PLUS_CPU_ENDIAN_FLAGS}+" \
1.414 + -e "s+@LINKER_CPU_ENDIAN_FLAGS@+${LINKER_CPU_ENDIAN_FLAGS}+" \
1.415 + -e "s+@LINKER_RPATH_LINK_FLAG@+${LINKER_RPATH_LINK_FLAG}+" \
1.416 + debian/edit-specs.in >${arch}/edit-specs-${CPU}.sed
1.417 +
1.418 + sed -f ${arch}/edit-specs-${CPU}.sed \
1.419 + $RPM_BUILD_ROOT%{_prefix}/lib/gcc-lib/sh-linux/%{GCC_VERSION}/specs \
1.420 + > $RPM_BUILD_ROOT%{_prefix}/lib/gcc-lib/${CPU}-linux/%{GCC_VERSION}/specs
1.421 +
1.422 + done
1.423 +
1.424 +%else
1.425 + ARCH_STRTIP=%{_target}-strip
1.426 + EXESUFFIX=""
1.427 + TOOLPREFIX=""
1.428 + ln -s ..%{_prefix}/bin/cpp ${RPM_BUILD_ROOT}/lib/cpp
1.429 + ln -s gcc ${RPM_BUILD_ROOT}%{_prefix}/bin/cc
1.430 + arch=%{_target}
1.431 + make DESTDIR=${RPM_BUILD_ROOT} \
1.432 + install -C ${arch}
1.433 + if [ %{TARGET_JAVA} -ne 0 ]; then
1.434 + make DESTDIR=${RPM_BUILD_ROOT} install -C ${arch}/${arch}/libffi
1.435 + make DESTDIR=${RPM_BUILD_ROOT} install -C ${arch}/${arch}/fastjar
1.436 + mv -f ${RPM_BUILD_ROOT}/%{_prefix}/%{_lib}/libgcj.spec \
1.437 + ${RPM_BUILD_ROOT}/%{_prefix}/lib/gcc-lib/${arch}/%{GCC_VERSION}/
1.438 + fi
1.439 + $ARCH_STRTIP $RPM_BUILD_ROOT%{_prefix}/bin/gcov$EXESUFFIX || :
1.440 +
1.441 +cat >${arch}/edit-specs <<EOF
1.442 +/^*cross_compile:$/ {
1.443 +n
1.444 +c\\
1.445 +0
1.446 +}
1.447 +EOF
1.448 + sed -f ${arch}/edit-specs -e 's#-rpath-link.*/usr/%{_target}/lib##' \
1.449 + ${RPM_BUILD_ROOT}%{_prefix}/lib/gcc-lib/${arch}/%{GCC_VERSION}/specs \
1.450 + >${RPM_BUILD_ROOT}%{_prefix}/lib/gcc-lib/${arch}/%{GCC_VERSION}/specs.$$
1.451 + mv -f ${RPM_BUILD_ROOT}%{_prefix}/lib/gcc-lib/${arch}/%{GCC_VERSION}/specs.$$ \
1.452 + ${RPM_BUILD_ROOT}%{_prefix}/lib/gcc-lib/${arch}/%{GCC_VERSION}/specs
1.453 +
1.454 + sed -e "s/dependency_libs=.*/dependency_libs='-lm -lgcc -lc -lgcc'/" \
1.455 + ${RPM_BUILD_ROOT}%{_prefix}/lib/libstdc++.la \
1.456 + >${RPM_BUILD_ROOT}%{_prefix}/lib/libstdc++.la.$$
1.457 + mv -f ${RPM_BUILD_ROOT}%{_prefix}/lib/libstdc++.la.$$ \
1.458 + ${RPM_BUILD_ROOT}%{_prefix}/lib/libstdc++.la
1.459 +
1.460 + sed -e "s/dependency_libs=.*/dependency_libs='-lpthread -ldl -lz -lm -lgcc -lc -lgcc'/" \
1.461 + ${RPM_BUILD_ROOT}%{_prefix}/lib/libgcj.la \
1.462 + >${RPM_BUILD_ROOT}%{_prefix}/lib/libgcj.la.$$
1.463 + mv -f ${RPM_BUILD_ROOT}%{_prefix}/lib/libgcj.la.$$ \
1.464 + ${RPM_BUILD_ROOT}%{_prefix}/lib/libgcj.la
1.465 +
1.466 +cat >$RPM_BUILD_ROOT%{_prefix}/lib/gcc-lib/%{_target}/%{GCC_VERSION}/include/syslimits.h <<EOF
1.467 +#define _GCC_NEXT_LIMITS_H /* tell gcc's limits.h to recurse */
1.468 +#include_next <limits.h>
1.469 +#undef _GCC_NEXT_LIMITS_H
1.470 +EOF
1.471 +
1.472 +%endif
1.473 +
1.474 + $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 || :
1.475 + FULLPATH=$(dirname $RPM_BUILD_ROOT%{_prefix}/lib/gcc-lib/${arch}/%{GCC_VERSION}/cc1${EXESUFFIX})
1.476 + $ARCH_STRTIP $FULLPATH/{cc1${EXESUFFIX},cc1plus${EXESUFFIX},cpp0${EXESUFFIX},tradcpp0${EXESUFFIX},collect2${EXESUFFIX},jc1${EXESUFFIX},jvgenmain${EXESUFFIX}} || :
1.477 +
1.478 + # Strip static libraries
1.479 + sh-linux-strip -S -R .comment `find $RPM_BUILD_ROOT -type f -name "*.a"` || :
1.480 +
1.481 + # Strip ELF shared objects
1.482 + for f in `find $RPM_BUILD_ROOT -type f \( -perm -0100 -or -perm -0010 -or -perm -0001 \) `; do
1.483 + if file $f | grep -q "shared object.*not stripped"; then
1.484 + sh-linux-strip --strip-unneeded -R .comment $f
1.485 + fi
1.486 + done
1.487 +
1.488 +%clean
1.489 +rm -rf $RPM_BUILD_ROOT
1.490 +
1.491 +# ==================== Cross Compiler ===============================
1.492 +%ifarch i386
1.493 +
1.494 +%files sh-linux
1.495 +%defattr(-,root,root)
1.496 +%{_prefix}/bin/sh*
1.497 +%dir %{_prefix}/lib/gcc-lib/sh-linux
1.498 +%dir %{_prefix}/lib/gcc-lib/sh-linux/%{GCC_VERSION}
1.499 +%dir %{_prefix}/lib/gcc-lib/sh-linux/%{GCC_VERSION}/include
1.500 +%dir %{_prefix}/lib/gcc-lib/sh3-linux
1.501 +%dir %{_prefix}/lib/gcc-lib/sh3-linux/%{GCC_VERSION}
1.502 +%dir %{_prefix}/lib/gcc-lib/sh3eb-linux
1.503 +%dir %{_prefix}/lib/gcc-lib/sh3eb-linux/%{GCC_VERSION}
1.504 +%dir %{_prefix}/lib/gcc-lib/sh4-linux
1.505 +%dir %{_prefix}/lib/gcc-lib/sh4-linux/%{GCC_VERSION}
1.506 +%dir %{_prefix}/lib/gcc-lib/sh4eb-linux
1.507 +%dir %{_prefix}/lib/gcc-lib/sh4eb-linux/%{GCC_VERSION}
1.508 +%{_prefix}/lib/gcc-lib/sh-linux/%{GCC_VERSION}/cc1
1.509 +%{_prefix}/lib/gcc-lib/sh-linux/%{GCC_VERSION}/cc1plus
1.510 +%{_prefix}/lib/gcc-lib/sh-linux/%{GCC_VERSION}/collect2
1.511 +%{_prefix}/lib/gcc-lib/sh-linux/%{GCC_VERSION}/cpp0
1.512 +%{_prefix}/lib/gcc-lib/sh-linux/%{GCC_VERSION}/*.o
1.513 +%{_prefix}/lib/gcc-lib/sh-linux/%{GCC_VERSION}/libgcc*.a
1.514 +%{_prefix}/lib/gcc-lib/sh-linux/%{GCC_VERSION}/specs
1.515 +%{_prefix}/lib/gcc-lib/sh-linux/%{GCC_VERSION}/tradcpp0
1.516 +%{_prefix}/lib/gcc-lib/sh-linux/%{GCC_VERSION}/jc1
1.517 +%{_prefix}/lib/gcc-lib/sh-linux/%{GCC_VERSION}/jvgenmain
1.518 +%{_prefix}/lib/gcc-lib/sh-linux/%{GCC_VERSION}/m4
1.519 +%{_prefix}/lib/gcc-lib/sh-linux/%{GCC_VERSION}/mb
1.520 +%{_prefix}/lib/gcc-lib/sh-linux/%{GCC_VERSION}/include/stddef.h
1.521 +%{_prefix}/lib/gcc-lib/sh-linux/%{GCC_VERSION}/include/stdarg.h
1.522 +%{_prefix}/lib/gcc-lib/sh-linux/%{GCC_VERSION}/include/varargs.h
1.523 +%{_prefix}/lib/gcc-lib/sh-linux/%{GCC_VERSION}/include/float.h
1.524 +%{_prefix}/lib/gcc-lib/sh-linux/%{GCC_VERSION}/include/limits.h
1.525 +%{_prefix}/lib/gcc-lib/sh-linux/%{GCC_VERSION}/include/stdbool.h
1.526 +%{_prefix}/lib/gcc-lib/sh-linux/%{GCC_VERSION}/include/iso646.h
1.527 +%{_prefix}/lib/gcc-lib/sh-linux/%{GCC_VERSION}/include/syslimits.h
1.528 +%{_prefix}/lib/gcc-lib/sh-linux/%{GCC_VERSION}/include/README
1.529 +%{_prefix}/lib/gcc-lib/sh3-linux/%{GCC_VERSION}/*
1.530 +%{_prefix}/lib/gcc-lib/sh3eb-linux/%{GCC_VERSION}/*
1.531 +%{_prefix}/lib/gcc-lib/sh4-linux/%{GCC_VERSION}/*
1.532 +%{_prefix}/lib/gcc-lib/sh4eb-linux/%{GCC_VERSION}/*
1.533 +%{_mandir}/man1/sh-linux-*
1.534 +%dir %{_prefix}/sh-linux/include
1.535 +%{_prefix}/sh3-linux/include
1.536 +%{_prefix}/sh3eb-linux/include
1.537 +%{_prefix}/sh4-linux/include
1.538 +%{_prefix}/sh4eb-linux/include
1.539 +%endif
1.540 +
1.541 +%if %{TARGET_LIBSTDC}
1.542 +%ifarch i386
1.543 +%{_prefix}/sh-linux/include/g++-v3
1.544 +%{_prefix}/sh-linux/lib/libs*
1.545 +%{_prefix}/sh-linux/lib/m4/libs*
1.546 +%{_prefix}/sh-linux/lib/mb/libs*
1.547 +%{_prefix}/sh-linux/lib/mb/m4/libs*
1.548 +%{_prefix}/sh3-linux/lib/libs*
1.549 +%{_prefix}/sh4-linux/lib/libs*
1.550 +%{_prefix}/sh3eb-linux/lib/libs*
1.551 +%{_prefix}/sh4eb-linux/lib/libs*
1.552 +%endif
1.553 +%endif
1.554 +
1.555 +%if %{TARGET_JAVA}
1.556 +%ifarch i386
1.557 +%files -n libgcj-sh-linux
1.558 +%defattr(-,root,root)
1.559 +%{_prefix}/sh-linux/include/*.h
1.560 +%{_prefix}/sh-linux/include/gcj
1.561 +%{_prefix}/sh-linux/include/gnu/*
1.562 +%{_prefix}/sh-linux/include/java
1.563 +%{_prefix}/sh-linux/lib/lib*gcj*
1.564 +%{_prefix}/sh-linux/lib/m4/lib*gcj*
1.565 +%{_prefix}/sh-linux/lib/mb/lib*gcj*
1.566 +%{_prefix}/sh-linux/lib/mb/m4/lib*gcj*
1.567 +%{_prefix}/sh-linux/lib/libffi*
1.568 +%{_prefix}/sh-linux/lib/m4/libffi*
1.569 +%{_prefix}/sh-linux/lib/mb/libffi*
1.570 +%{_prefix}/sh-linux/lib/mb/m4/libffi*
1.571 +%{_prefix}/sh-linux/share/java/libgcj-%{GCC_VERSION}.jar
1.572 +%{_prefix}/sh3-linux/lib/lib*gcj*
1.573 +%{_prefix}/sh3-linux/lib/libffi*
1.574 +%{_prefix}/sh3-linux/share/java/libgcj-%{GCC_VERSION}.jar
1.575 +%{_prefix}/sh4-linux/lib/lib*gcj*
1.576 +%{_prefix}/sh4-linux/lib/libffi*
1.577 +%{_prefix}/sh4-linux/share/java/libgcj-%{GCC_VERSION}.jar
1.578 +%{_prefix}/sh3eb-linux/lib/lib*gcj*
1.579 +%{_prefix}/sh3eb-linux/lib/libffi*
1.580 +%{_prefix}/sh3eb-linux/share/java/libgcj-%{GCC_VERSION}.jar
1.581 +%{_prefix}/sh4eb-linux/lib/lib*gcj*
1.582 +%{_prefix}/sh4eb-linux/lib/libffi*
1.583 +%{_prefix}/sh4eb-linux/share/java/libgcj-%{GCC_VERSION}.jar
1.584 +%endif
1.585 +%endif
1.586 +
1.587 +%ifarch sh3 sh3eb sh4 sh4eb
1.588 +# =========================== Native Compiler =================================
1.589 +%files
1.590 +%defattr(-,root,root)
1.591 +%dir %{_prefix}/lib/gcc-lib/%{_target}
1.592 +%dir %{_prefix}/lib/gcc-lib/%{_target}/%{GCC_VERSION}
1.593 +%dir %{_prefix}/lib/gcc-lib/%{_target}/%{GCC_VERSION}/include
1.594 +%{_prefix}/lib/gcc-lib/%{_target}/%{GCC_VERSION}/cc1
1.595 +%{_prefix}/lib/gcc-lib/%{_target}/%{GCC_VERSION}/collect2
1.596 +%{_prefix}/lib/gcc-lib/%{_target}/%{GCC_VERSION}/cpp0
1.597 +%{_prefix}/lib/gcc-lib/%{_target}/%{GCC_VERSION}/crt*.o
1.598 +%{_prefix}/lib/gcc-lib/%{_target}/%{GCC_VERSION}/libgcc*.a
1.599 +%{_prefix}/lib/gcc-lib/%{_target}/%{GCC_VERSION}/specs
1.600 +%{_prefix}/lib/gcc-lib/%{_target}/%{GCC_VERSION}/tradcpp0
1.601 +%{_prefix}/lib/gcc-lib/%{_target}/%{GCC_VERSION}/include/stddef.h
1.602 +%{_prefix}/lib/gcc-lib/%{_target}/%{GCC_VERSION}/include/stdarg.h
1.603 +%{_prefix}/lib/gcc-lib/%{_target}/%{GCC_VERSION}/include/varargs.h
1.604 +%{_prefix}/lib/gcc-lib/%{_target}/%{GCC_VERSION}/include/float.h
1.605 +%{_prefix}/lib/gcc-lib/%{_target}/%{GCC_VERSION}/include/limits.h
1.606 +%{_prefix}/lib/gcc-lib/%{_target}/%{GCC_VERSION}/include/stdbool.h
1.607 +%{_prefix}/lib/gcc-lib/%{_target}/%{GCC_VERSION}/include/iso646.h
1.608 +%{_prefix}/lib/gcc-lib/%{_target}/%{GCC_VERSION}/include/syslimits.h
1.609 +%{_prefix}/lib/gcc-lib/%{_target}/%{GCC_VERSION}/include/README
1.610 +%{_prefix}/bin/gcc
1.611 +%{_prefix}/bin/%{_target}-gcc
1.612 +%{_prefix}/bin/cpp
1.613 +%{_prefix}/bin/gccbug
1.614 +%{_prefix}/bin/gcov
1.615 +%{_prefix}/bin/cc
1.616 +/lib/cpp
1.617 +%{_infodir}/cpp*
1.618 +%{_infodir}/gcc*
1.619 +
1.620 +%if 0
1.621 +%files libgcc
1.622 +%defattr(-,root,root)
1.623 +/lib/libgcc_s.so*
1.624 +%endif
1.625 +
1.626 +%files c++
1.627 +%defattr(-,root,root)
1.628 +%{_prefix}/bin/c++
1.629 +%{_prefix}/bin/g++
1.630 +%{_prefix}/bin/c++filt
1.631 +%{_prefix}/bin/%{_target}-c++
1.632 +%{_prefix}/bin/%{_target}-g++
1.633 +%{_prefix}/lib/gcc-lib/%{_target}/%{GCC_VERSION}/cc1plus
1.634 +%endif
1.635 +
1.636 +%if %{TARGET_LIBSTDC}
1.637 +%ifarch sh3 sh3eb sh4 sh4eb
1.638 +%files -n libstdc++
1.639 +%defattr(-,root,root)
1.640 +%{_prefix}/lib/libstdc++.so*
1.641 +
1.642 +%files -n libstdc++-devel
1.643 +%defattr(-,root,root)
1.644 +%{_prefix}/include/g++-v3
1.645 +%{_prefix}/lib/libstdc++.*a
1.646 +%endif
1.647 +%endif
1.648 +
1.649 +%if %{TARGET_JAVA}
1.650 +%ifarch sh3 sh3eb sh4 sh4eb
1.651 +%files java
1.652 +%defattr(-,root,root)
1.653 +%{_prefix}/bin/addr2name.awk
1.654 +%{_prefix}/bin/gcj
1.655 +%{_prefix}/bin/gcjh
1.656 +%{_prefix}/bin/gij
1.657 +%{_prefix}/bin/jar
1.658 +%{_prefix}/bin/grepjar
1.659 +%{_prefix}/bin/jcf-dump
1.660 +%{_prefix}/bin/jv-convert
1.661 +%{_prefix}/bin/jv-scan
1.662 +%dir %{_prefix}/lib/gcc-lib
1.663 +%dir %{_prefix}/lib/gcc-lib/%{_target}
1.664 +%dir %{_prefix}/lib/gcc-lib/%{_target}/%{GCC_VERSION}
1.665 +%{_prefix}/lib/gcc-lib/%{_target}/%{GCC_VERSION}/jc1
1.666 +%{_prefix}/lib/gcc-lib/%{_target}/%{GCC_VERSION}/jvgenmain
1.667 +%{_infodir}/gcj*
1.668 +
1.669 +%files -n libgcj
1.670 +%defattr(-,root,root)
1.671 +%{_prefix}/%{_lib}/libgcj.so*
1.672 +%{_prefix}/%{_lib}/libffi*.so*
1.673 +%{_prefix}/lib/gcc-lib/%{_target}/%{GCC_VERSION}/libgcj.spec
1.674 +%{_prefix}/share/java/libgcj-%{GCC_VERSION}.jar
1.675 +
1.676 +%files -n libgcj-devel
1.677 +%defattr(-,root,root)
1.678 +%{_prefix}/include/*.h
1.679 +%{_prefix}/include/gcj
1.680 +%{_prefix}/include/gnu/*
1.681 +%{_prefix}/include/java
1.682 +%{_prefix}/lib/libgcj.*a
1.683 +%{_prefix}/lib/libffi.*a
1.684 +%endif
1.685 +%endif
1.686 +
1.687 +%changelog
1.688 +* Wed Feb 19 2003 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
1.689 +- version 3.2.2.
1.690 +
1.691 +* Tue Feb 19 2002 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
1.692 +- version 3.0.4.
1.693 +
1.694 +* Tue Feb 12 2002 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
1.695 +- add java support.
1.696 +
1.697 +* Thu Feb 7 2002 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
1.698 +- follow debian/SH update.
1.699 +
1.700 +* Tue Feb 5 2002 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
1.701 +- follow debian/SH update.
1.702 +
1.703 +* Thu Jan 24 2002 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
1.704 +- rebuild with new binutils.
1.705 +
1.706 +* Tue Jan 22 2002 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
1.707 +- leaf function optimization fixed.
1.708 +
1.709 +* Thu Dec 06 2001 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
1.710 +- add gcc-ice-rml patch.
1.711 +
1.712 +* Tue Nov 13 2001 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
1.713 +- add configure option.
1.714 +
1.715 +* Thu Nov 01 2001 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
1.716 +- tablejump fix by gniibe.
1.717 +
1.718 +* Mon Oct 22 2001 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
1.719 +- updated gcc patch.
1.720 +
1.721 +* Wed Oct 17 2001 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
1.722 +- updated gcc patch.
1.723 +
1.724 +* Tue Oct 02 2001 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
1.725 +- gcc/config/sh/sh.c bug fix.
1.726 +
1.727 +* Fri Aug 24 2001 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
1.728 +- gcc version 3.0.1.
1.729 +
1.730 +* Thu Jun 28 2001 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
1.731 +- gcc version 3.0.
1.732 +- Add libstdc++ package.
1.733 +
1.734 +* Mon Apr 23 2001 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
1.735 +- Add cygwin host.
1.736 +
1.737 +* Sat Dec 23 2000 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
1.738 +- fix file attribute.
1.739 +- add asmspecs patch.
1.740 +
1.741 +* Sat Nov 11 2000 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
1.742 +- initial version.