⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gcc-sh-linux.spec

📁 linux下编译交叉工具链的工具源码
💻 SPEC
📖 第 1 页 / 共 2 页
字号:
Summary: The GNU Compiler Collection for SuperH.%define GCC_VERSION 3.2.3%define arch_list sh3-linux sh3eb-linux sh4-linux sh4eb-linux%define TARGET_LIBSTDC 1%define TARGET_JAVA 1Name: gccVersion: 3.2.3Release: 3Copyright: GPLGroup: Development/LanguagesSource0: gcc-%{GCC_VERSION}.tar.bz2Patch1: gcc-20030210-sh-linux-1.patchPatch2: gcc-3.2.3-libffi-1.patchPatch3: gcc-3.2.3-sh-linux-dwarf2-1.patchBuildroot: /var/tmp/gcc-%{_target}-rootExclusiveArch: i386 sh3 sh3eb sh4 sh4eb%descriptionThis package contains the GNU Compiler Collection: gcc and g++.You'll need this package in order to compile C/C++ code.%ifarch i386# ==================== Cross Compiler ===============================%package sh-linuxSummary: The GNU Compiler Collection for sh-linux.Group: Development/LanguagesRequires: binutils-sh-linux >= 2.13.2Provides: gcc-sh-linuxObsoletes: gcc-sh3-linux gcc-sh3eb-linux gcc-sh4-linux gcc-sh4eb-linuxObsoletes: gcc-sh3-linux-c++ gcc-sh3eb-linux-c++ gcc-sh4-linux-c++ gcc-sh4eb-linux-c++Obsoletes: libstdc++-sh3-linux libstdc++-sh3eb-linux libstdc++-sh4-linux libstdc++-sh4eb-linuxAutoReqProv: no%description sh-linuxThe gcc-sh-linux package contains GNU Compiler Collection: gcc g++ and libstdc++-v3.It includes support for most of the current C++ specification, including templates andexception handling. It does also include the standard C++ library and C++ header files.You'll need this package in order to cross compile C/C++ code for sh-linux.%package -n libgcj-sh-linuxSummary: Header files and libraries for sh-linux Java development.Group: Development/LibrariesRequires: gcc-sh-linux = %{version}-%{release}AutoReqProv: no%description -n libgcj-sh-linuxThe Java static libraries and C header files. You will need thispackage to compile your Java programs for sh-linux using the gcc Java compiler (gcj).%else# =========================== Native Compiler =================================%package libgccSummary: runtime libraries for the GNU Compiler Collection.Group: System Environment/Libraries%description libgccThis package contains libgcc shared libraries for the GNU C Compiler Collection.You'll need this package in order to execute C,C++,JAVA codethat uses shared libgcc.%package c++Summary: C++ support for gccGroup: Development/LanguagesRequires: gcc = %{version}-%{release}%description c++This package adds C++ support to the GNU Compiler Collection. It includessupport for most of the current C++ specification, including templates andexception handling. It does include the static standard C++library and C++ header files; the library for dynamically linkingprograms is available separately.%package -n libstdc++Summary: GNU c++ library.Group: System Environment/Libraries%description -n libstdc++The libstdc++ package contains a snapshot of the GCC Standard C++Library v3, an ongoing project to implement the ISO 14882 Standard C++library.%package -n libstdc++-develSummary: Header files and libraries for C++ developmentGroup: Development/LibrariesRequires: libstdc++ = %{version}-%{release}, gcc-c++ = %{version}-%{release}%description -n libstdc++-develThis is the GNU implementation of the standard C++ libraries.  Thispackage includes the header files and libraries needed for C++development. This includes SGI's implementation of the STL.%package javaSummary: Java support for gccGroup: Development/LanguagesRequires: gcc = %{version}-%{release}, libgcj = %{version}-%{release}, libgcj-devel = %{version}-%{release}%description javaThis package adds experimental support for compiling Java(tm) programs andbytecode into native code. To use this you will also need the libgcj andlibgcj-devel packages.%package -n libgcjSummary: Java runtime library for gcc.Group: System Environment/Libraries%description -n libgcjThe Java runtime library. You will need this package to run your Javaprograms compiled using the gcc Java compiler (gcj).%package -n libgcj-develSummary: Header files and libraries for Java development.Group: Development/LibrariesRequires: libgcj = %{version}-%{release}%description -n libgcj-develThe Java static libraries and C header files. You will need thispackage to compile your Java programs using the gcc Java compiler (gcj).%endif%prep%setup -q -n gcc-%{GCC_VERSION}%patch1 -p1%patch2 -p1##%patch3 -p1%build%ifarch i386# build cross compiler for i386-linux hostfor arch in sh-linux; do  rm -rf ${arch}  mkdir ${arch}  CONFIG_ARGS="\        --prefix=%{_prefix} \        --mandir=%{_mandir} \        --infodir=%{_infodir} \        --target=${arch} \        --host=%{_host} \        --build=%{_build} \        --enable-languages=c,c++,java \        --with-system-zlib \        --with-gxx-include-dir=%{_prefix}/${arch}/include/g++-v3 \        --includedir=%{_prefix}/${arch}/include \	--disable-checking \	--disable-shared \	--enable-__cxa_atexit \	--enable-c99 \        --enable-threads=posix \        --enable-long-long"  if [ %{TARGET_JAVA} -ne 0 ]; then    CONFIG_ARGS="$CONFIG_ARGS --enable-libgcj"  fi  (  cd $arch     ../configure ${CONFIG_ARGS}  )  if [ %{TARGET_LIBSTDC} -ne 0 -o %{TARGET_JAVA} -ne 0 ]; then    sed -e s:-Dinhibit_libc::g ${arch}/gcc/Makefile >${arch}/gcc/Makefile.$$$    mv -f ${arch}/gcc/Makefile.$$$ ${arch}/gcc/Makefile  fi  make all-gcc -C ${arch}  if [ %{TARGET_LIBSTDC} -ne 0 ]; then    CONFIG_ARGS="`echo $CONFIG_ARGS | sed -e s/--disable-shared/--enable-shared/`"    make TARGET_CONFIGARGS="${CONFIG_ARGS} --with-cross-host" all-target-libstdc++-v3 -C ${arch}  fi  if [ %{TARGET_JAVA} -ne 0 ]; then    make all-fastjar -C ${arch}    CONFIG_ARGS="`echo $CONFIG_ARGS | sed -e s/--host=%{_host}/--host=${arch}/`"    dir=`pwd`    ac_cv_file__proc_self_exe=yes \    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" \      make TARGET_CONFIGARGS="${CONFIG_ARGS} --with-cross-host --enable-multilib --with-target-subdir=${arch} --with-x=no" \      all-target-libjava -C ${arch}  fi%else# Canadian cross (build native compiler)for arch in %{_target}; do  rm -rf ${arch}  mkdir -p ${arch}  CONFIG_ARGS="\        --prefix=%{_prefix} \        --mandir=%{_mandir} \        --infodir=%{_infodir} \        --target=${arch} \        --host=${arch} \        --build=%{_build} \        --enable-languages=c,c++,java \        --with-system-zlib \        --with-gxx-include-dir=%{_prefix}/include/g++-v3 \	--disable-checking \	--disable-shared \	--enable-__cxa_atexit \	--enable-c99 \        --enable-threads=posix \        --enable-long-long"  if [ %{TARGET_JAVA} -ne 0 ]; then    CONFIG_ARGS="$CONFIG_ARGS --enable-libgcj"  fi  (  cd ${arch}     CC=${arch}-gcc AR=${arch}-ar RANLIB=${arch}-ranlib CXX=${arch}-g++ \        ../configure $CONFIG_ARGS  )  if [ %{TARGET_LIBSTDC} -ne 0 -o %{TARGET_JAVA} -ne 0 ]; then    sed -e s:-Dinhibit_libc::g ${arch}/gcc/Makefile >${arch}/gcc/Makefile.$$$    mv -f ${arch}/gcc/Makefile.$$$ ${arch}/gcc/Makefile  fi  make all-build-libiberty all-gcc -C ${arch}  if [ %{TARGET_LIBSTDC} -ne 0 ]; then    CONFIG_ARGS="`echo $CONFIG_ARGS | sed -e s/--disable-shared/--enable-shared/`"    make TARGET_CONFIGARGS="${CONFIG_ARGS}" all-target-libstdc++-v3 -C ${arch}    if [ %{TARGET_JAVA} -ne 0 ]; then      ( mkdir -p ${arch}/fastjar; cd ${arch}/fastjar; rm *; ../../fastjar/configure --with-system-zlib; make )      ac_cv_file__proc_self_exe=yes \        CC=${arch}-gcc AR=${arch}-ar RANLIB=${arch}-ranlib CXX=${arch}-g++ GCJ=${arch}-gcj \        make TARGET_CONFIGARGS="${CONFIG_ARGS} --with-x=no" configure-target-libjava -C ${arch}        make -C ${arch}/${arch}/libffi        make -C ${arch}/${arch}/boehm-gc        make -C ${arch}/${arch}/zlib        make GCJ=${arch}-gcj GCJH=${arch}-gcjh ZIP=${arch}-jar -C ${arch}/${arch}/libjava      (        rm -rf ${arch}/${arch}/fastjar        mkdir -p ${arch}/${arch}/fastjar        cd ${arch}/${arch}/fastjar        ac_cv_sizeof_char=1 \        ac_cv_sizeof_short=2 \        ac_cv_sizeof_int=4 \        ac_cv_sizeof_long=4 \        ac_cv_sizeof_long_long=8 \        ac_cv_sizeof_float=4 \        ac_cv_sizeof_double=8 \        ac_cv_sizeof_long_double=8 \        ac_cv_sizeof_void_p=4 \        ac_cv_file__proc_self_exe=yes \        ac_cv_header_langinfo_h=yes \        CC=${arch}-gcc ../../../fastjar/configure $CONFIG_ARGS        make      )    fi  fi%endifdone%installrm -rf $RPM_BUILD_ROOTmkdir -p ${RPM_BUILD_ROOT}/{%{_prefix}/bin,lib}%ifarch i386  ARCH_STRTIP=strip  EXESUFFIX=""  arch=sh-linux  TOOLPREFIX=${arch}-  mkdir -p ${RPM_BUILD_ROOT}%{_prefix}/${arch}/{bin,include,lib,share}  mkdir -p ${RPM_BUILD_ROOT}%{_prefix}/${arch}/lib/{m4,mb/m4}  make DESTDIR=${RPM_BUILD_ROOT} \	install-gcc \	install-fastjar \	-C ${arch}%if 0  ( cd ${RPM_BUILD_ROOT}%{_prefix}/sh-linux/lib    rm -f libgcc_s_*.so    mv libgcc_s_mb.so.1 mb/libgcc_s.so.1    mv libgcc_s_m4.so.1 m4/libgcc_s.so.1    mv libgcc_s_mb_m4.so.1 mb/m4/libgcc_s.so.1    ln -s libgcc_s.so.1 mb/libgcc_s.so    ln -s libgcc_s.so.1 m4/libgcc_s.so    ln -s libgcc_s.so.1 mb/m4/libgcc_s.so  )%endif  if [ %{TARGET_LIBSTDC} -ne 0 ]; then    make DESTDIR=${RPM_BUILD_ROOT} \      install-target-libstdc++-v3 \      -C ${arch}  fi  if [ %{TARGET_JAVA} -ne 0 ]; then    make DESTDIR=${RPM_BUILD_ROOT} \      install-target-libjava \      install-target-boehm-gc \      install-target-zlib \      -C ${arch}    make DESTDIR=${RPM_BUILD_ROOT} prefix=%{_prefix}/${arch} \      install -C ${arch}/${arch}/libffi    mv -f $RPM_BUILD_ROOT%{_prefix}/share/java $RPM_BUILD_ROOT%{_prefix}/sh-linux/share/  fi  rm -f $RPM_BUILD_ROOT%{_prefix}/bin/{gcov,gccbug}  rm -f $RPM_BUILD_ROOT%{_prefix}/${arch}/bin/{gij,jv-convert}  sed -e 's/@@VERSION@@/%{GCC_VERSION}/g' debian/shCPU-linux-GCC >$RPM_BUILD_ROOT%{_prefix}/bin/shCPU-linux-GCC  chmod 0755 $RPM_BUILD_ROOT%{_prefix}/bin/shCPU-linux-GCC  LIBSTDC=`cd $RPM_BUILD_ROOT%{_prefix}/sh-linux/lib; echo libstdc++.so*`  LIBGCJ=`cd $RPM_BUILD_ROOT%{_prefix}/sh-linux/lib; echo libgcj.so*`  LIBFFI=`cd $RPM_BUILD_ROOT%{_prefix}/sh-linux/lib; echo libffi*.so*`  # literally (binary-ly) same  PROGS="cpp c++ g++ g77 gcc gcj"  DRIVERS="cc1 cc1obj cc1plus collect2 cpp0 f771 jc1 tradcpp0 jvgenmain"  OBJS="crtbegin.o crtbeginS.o crtend.o crtendS.o crtbeginT.o"  LIBS="libgcc.a libgcc_eh.a libobjc.a"  LIBS_1="$LIBSTDC \          $LIBGCJ libgcj.spec \          $LIBFFI "  LIBS_2="libstdc++.a libstdc++.la \	  libsupc++.a libsupc++.la \	  libgcj.a libgcj.la \          libffi.a libffi.la"  INCLUDE="include"  for CPU in sh3 sh3eb sh4 sh4eb; do    mkdir -p ${RPM_BUILD_ROOT}%{_prefix}/lib/gcc-lib/${CPU}-linux/%{GCC_VERSION}    mkdir -p ${RPM_BUILD_ROOT}%{_prefix}/${CPU}-linux/{lib,share/java}    # Make symbolic links for include dir.    ln -s ../sh-linux/include $RPM_BUILD_ROOT%{_prefix}/${CPU}-linux/include    # Make symbolic links for libgcj.jar    ln -s ../../sh-linux/share/java/libgcj-%{GCC_VERSION}.jar $RPM_BUILD_ROOT%{_prefix}/${CPU}-linux/share/java/libgcj-%{GCC_VERSION}.jar    # Make symbolic links for executables.    for p in ${PROGS}; do      ln -s shCPU-linux-GCC $RPM_BUILD_ROOT%{_prefix}/bin/${CPU}-linux-$p    done    ln -s sh-linux-gcjh $RPM_BUILD_ROOT%{_prefix}/bin/${CPU}-linux-gcjh    case "${CPU}" in        sh3)	    MULTILIBDIR=	    MULTIPARENTDIR=	    AS_ENDIAN_FLAG="-little"	    CPP_ENDIAN_DEF="-D__LITTLE_ENDIAN__"	    CPP_CPU_DEFS='-D__SH3__ -D__sh3__'	    CC1_CPU_ENDIAN_FLAGS="-ml -m3"	    CC1PLUS_CPU_ENDIAN_FLAGS="-ml -m3"	    LINKER_CPU_ENDIAN_FLAGS="-m shlelf_linux -EL --architecture sh3"	    LINKER_RPATH_LINK_FLAG="-rpath-link %{_prefix}/sh3-linux/lib"        ;;        sh3eb)	    MULTILIBDIR=/mb	    MULTIPARENTDIR=../	    AS_ENDIAN_FLAG="-big"	    CPP_ENDIAN_DEF="-D__BIG_ENDIAN__"	    CPP_CPU_DEFS='-D__SH3__ -D__sh3__'	    CC1_CPU_ENDIAN_FLAGS="-mb -m3"	    CC1PLUS_CPU_ENDIAN_FLAGS="-mb -m3"	    LINKER_CPU_ENDIAN_FLAGS="-m shelf_linux -EB --architecture sh3"	    LINKER_RPATH_LINK_FLAG="-rpath-link %{_prefix}/sh3eb-linux/lib"        ;;        sh4)	    MULTILIBDIR=/m4	    MULTIPARENTDIR=../	    AS_ENDIAN_FLAG="-little"	    CPP_ENDIAN_DEF="-D__LITTLE_ENDIAN__"	    CPP_CPU_DEFS="-D__SH4__"	    CC1_CPU_ENDIAN_FLAGS="-ml -m4"	    CC1PLUS_CPU_ENDIAN_FLAGS="-ml -m4"

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -