[meego-commits] 8373: New package devel:tools:sdk:host/meego-sdk-i586-gcc-bootstrap

jackiewu no_reply at build.meego.com
Wed Oct 13 14:33:10 UTC 2010


Hi,
Adding new package meego-sdk-i586-gcc-bootstrap in project devel:tools:sdk:host. Please review and accept ASAP.

Justification for this new package:

meego sdk toolchain

Thank You,
jackiewu

[This message was auto-generated]

---

Request #8373:

  submit:   home:jackiewu:toolchain/meego-sdk-i586-gcc-bootstrap(r4) -> devel:tools:sdk:host/meego-sdk-i586-gcc-bootstrap


Message:
    meego sdk toolchain

State:   new          2010-10-13T07:33:09 jackiewu
Comment: None


This is a NEW package in devel:tools:sdk:host project.
The files in the new package:
meego-sdk-i586-gcc-bootstrap/
  |__  README.libgcjwebplugin.so
  |__  aaa_README.PACKAGER
  |__  baselibs.conf
  |__  cross-armv5tel-gcc-accel.spec
  |__  cross-armv5tel-gcc.spec
  |__  cross-armv7l-gcc-accel.spec
  |__  cross-armv7l-gcc.spec
  |__  fastjar-0.97-segfault.patch
  |__  fastjar-0.97.tar.gz
  |__  gcc-4.5.0-rpmlintrc
  |__  gcc-4.5.0.tar.bz2
  |__  gcc.changes
  |__  gcc.spec
  |__  gcc44-ARM-boehm-gc-stack-qemu.patch
  |__  gcc44-build-id.patch
  |__  gcc44-c++-builtin-redecl.patch
  |__  gcc44-hack.patch
  |__  gcc44-i386-libgomp.patch
  |__  gcc44-java-debug-iface-type.patch
  |__  gcc44-java-nomulti.patch
  |__  gcc44-libgomp-omp_h-multilib.patch
  |__  gcc44-libstdc++-docs.patch
  |__  gcc44-libtool-no-rpath.patch
  |__  gcc44-max-vartrack-size-2.patch
  |__  gcc44-max-vartrack-size.patch
  |__  gcc44-pr33763.patch
  |__  gcc44-rh341221.patch
  |__  gcc45-pr43572.patch
  |__  gcc45-pr43698.patch
  |__  gcc45-pr45094.patch
  |__  gcc45-use-atom.patch
  |__  libgcc_post_upgrade.c
  |__  libgcc_post_upgrade.c.arm.patch
  |__  meego-sdk-i586-gcc-bootstrap.changes
  |__  meego-sdk-i586-gcc-bootstrap.spec
  |__  precheckin.sh
  |__  protoize.1
  |__  var-tracking1.patch
  |__  var-tracking2.patch
  |__  var-tracking3.patch

The content of the spec file, meego-sdk-i586-gcc-bootstrap.spec:
===================================================================
%define _meego_cpu i586
%define _meego_arch i586
%define TARGET %{_meego_arch}-meego-linux-gnu
%define install_prefix /opt/meego/meego-sdk-%{_meego_cpu}-toolchain/%{TARGET}

# Combined gcc / cross-armv*-gcc(-accel) specfile
Name: meego-sdk-%{_meego_cpu}-gcc-bootstrap
# Keep Name on top !
Provides: meego-sdk-%{_meego_arch}-gcc-bootstrap
%global _default_patch_fuzz -1
# crossbuild / accelerator section
# \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/
%define crossbuild 0
%define accelerator_crossbuild 0
%if "%{name}" != "gcc"
# this is the ix86 -> arm cross compiler (cross-armv*-gcc)
#
# cross arch retrieval
%define crossarch  %(echo %{name} | sed -e "s/meego-sdk-\\(.*\\)-gcc-bootstrap/\\1/")

# We set requires/provides by hand and disable post-build-checks.
# Captain Trunk: Sledge, you cannot disarm that nuclear bomb!
# Sledge Hammer: Trust me, I know what I'm doing. 
AutoReqProv: 0
AutoReq: false
#BuildRequires: -rpmlint-Moblin -rpmlint-mini -post-build-checks
# cross platform
%define cross_gcc_target_platform %{crossarch}-meego-linux-gnueabi
# gcc_target_platform holds the host (executing the compiler)
# cross_gcc_target_platform holds the target (for which the compiler is producing binaries)
# prefix for cross compiler
%define _prefix /opt/cross
%define _prefix %{install_prefix}
# strip of 'foreign arch' symbols fails
%define __strip /bin/true
# sysroot for cross-compiler
%define crosssysroot %{_prefix}/%{cross_gcc_target_platform}/sys-root
# flag
%define crossbuild 1
# macros in buildrequires is hard to expand for the scheduler (e.g. crossarch) which would make this easier.
#BuildRequires: cross-%{crossarch}-glibc cross-%{crossarch}-glibc-devel cross-%{crossarch}-glibc-headers
#BuildRequires: cross-%{crossarch}-kernel-headers cross-%{crossarch}-binutils
# Fixme: find way to make this without listing every package
%if "%{name}" == "cross-armv5tel-gcc"
BuildRequires: cross-armv5tel-glibc cross-armv5tel-glibc-devel cross-armv5tel-glibc-headers
BuildRequires: cross-armv5tel-kernel-headers cross-armv5tel-binutils
%endif
%if "%{name}" == "cross-armv7l-gcc"
BuildRequires: cross-armv7l-glibc cross-armv7l-glibc-devel cross-armv7l-glibc-headers
BuildRequires: cross-armv7l-kernel-headers cross-armv7l-binutils
%endif
# Fixme: see above
%if "%{name}" == "cross-armv5tel-gcc-accel"
BuildRequires: cross-armv5tel-glibc cross-armv5tel-glibc-devel cross-armv5tel-glibc-headers
BuildRequires: cross-armv5tel-kernel-headers cross-armv5tel-binutils
%endif
%if "%{name}" == "cross-armv7l-gcc-accel"
BuildRequires: cross-armv7l-glibc cross-armv7l-glibc-devel cross-armv7l-glibc-headers
BuildRequires: cross-armv7l-kernel-headers cross-armv7l-binutils
%endif
BuildRequires: meego-sdk-%{_meego_cpu}-kernel-headers meego-sdk-%{_meego_cpu}-binutils
BuildRequires: meego-sdk-%{_meego_cpu}-glibc-headers
BuildRequires: libmpc-devel, gmp-devel, mpfr-devel
Requires: libmpc, gmp, mpfr

# single target atm.
#
# special handling for MeeGo ARM build acceleration
# cross-armv*-gcc-accel
%if "%(echo %{name} | sed -e "s/cross-.*-gcc-\\(.*\\)/\\1/")" == "accel"
# cross architecture
%define crossarch %(echo %{name} | sed -e "s/cross-\\(.*\\)-gcc-accel/\\1/")
# cross target platform
%define cross_gcc_target_platform %{crossarch}-meego-linux-gnueabi
# prefix - as it's going to "replace" the original compiler ...
%define _prefix /usr
# cross-build sets sysroot as default , we need to override this a bit
%define crosssysroot /
# where to find the libs during the build
%define crossbuildsysroot /opt/cross/%{cross_gcc_target_platform}/sys-root
# flags
%define crossbuild 1
%define accelerator_crossbuild 1
# where to find the libs at runtime
%define newrpath /emul/ia32-linux/lib:/emul/ia32-linux/usr/lib
%define _build_name_fmt    %%{ARCH}/%%{NAME}-%%{VERSION}-%%{RELEASE}.%%{ARCH}.dontuse.rpm
%endif
# end special accel
%endif
# /\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
# end crossbuild / accelerator section

%global gcc_version 4.5.0
%global gcc_release 1
%global _unpackaged_files_terminate_build 0
%global include_gappletviewer 0
%global build_ada 0
%global build_java 0
%ifarch %{arm}
%global build_cloog 0
%else
%if %{crossbuild}
%global build_cloog 0
%else
%global build_cloog 1
%endif
%endif
%global build_libstdcxx_docs 0
%global bootstrap_java %{?_with_java_bootstrap:%{build_java}}%{!?_with_java_bootstrap:0}
%global build_java_tar %{?_with_java_tar:%{build_java}}%{!?_with_java_tar:0}
%global multilib_64_archs x86_64
%ifarch x86_64
%global multilib_32_arch i686
%endif
%global build_64bit_multilib 0

Summary: Various compilers (C, C++, Objective-C, Java, ...)
Version: %{gcc_version}
Release: %{gcc_release}
License: GPLv3+, GPLv3+ with exceptions and GPLv2+ with exceptions
Group: Development/Languages
URL: http://gcc.gnu.org
Source0: gcc-%{version}.tar.bz2
Source1: libgcc_post_upgrade.c
Source2: README.libgcjwebplugin.so
%global fastjar_ver 0.97
Source4: http://download.savannah.nongnu.org/releases/fastjar/fastjar-%{fastjar_ver}.tar.gz
Source100: gcc-4.5.0-rpmlintrc

BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
#BuildRequires: binutils >= 2.19.51.0.14
#BuildRequires: glibc-static
BuildRequires: zlib-devel, gettext,  bison, flex, texinfo
#BuildRequires: mpc-devel
#BuildRequires: glibc-devel >= 2.4.90-13
#BuildRequires: elfutils-devel >= 0.72

%if %{build_java}
BuildRequires: /usr/share/java/eclipse-ecj.jar, zip, unzip
%if %{bootstrap_java}
Source10: libjava-classes-%{version}-%{release}.tar.bz2
%else
BuildRequires: gcc-java, libgcj
%endif
%endif

%if %{build_ada}
# Ada requires Ada to build
BuildRequires: gcc-gnat >= 3.1, libgnat >= 3.1
%endif

%if %{build_cloog}
BuildRequires: ppl >= 0.10, ppl-devel >= 0.10, cloog-ppl >= 0.15, cloog-ppl-devel >= 0.15
%endif

%if %{build_libstdcxx_docs}
BuildRequires: doxygen
BuildRequires: graphviz
%endif

Requires: meego-sdk-%{_meego_cpu}-binutils

%if !%{crossbuild} 
%if !%{build_ada}
Obsoletes: gcc-gnat < %{version}-%{release}
Obsoletes: libgnat < %{version}-%{release}
%endif

%if %{build_cloog}
Requires: cloog-ppl >= 0.15
%endif

%if %{build_64bit_multilib}
Requires: glibc64bit-helper
%endif

Requires(post): /sbin/install-info
Requires(preun): /sbin/install-info
Obsoletes: gcc < %{version}-%{release}
Obsoletes: gcc43
AutoReq: true
# /!crossbuild
%endif

Patch0: gcc44-hack.patch
Patch1: gcc44-build-id.patch
Patch2: gcc44-c++-builtin-redecl.patch
Patch4: gcc44-java-nomulti.patch
Patch9: gcc44-pr33763.patch
Patch11: gcc44-rh341221.patch
Patch12: gcc44-java-debug-iface-type.patch
Patch13: gcc44-i386-libgomp.patch
Patch16: gcc44-libgomp-omp_h-multilib.patch
Patch20: gcc44-libtool-no-rpath.patch
Patch29: gcc44-libstdc++-docs.patch
Patch30: gcc45-pr43572.patch
Patch31: gcc45-pr43698.patch

Patch40: gcc45-use-atom.patch
Patch41: libgcc_post_upgrade.c.arm.patch

#Patch42: var-tracking1.patch
#Patch43: var-tracking2.patch
#Patch44: var-tracking3.patch

#Patch45: gcc44-max-vartrack-size.patch
#Patch46: gcc44-max-vartrack-size-2.patch

Patch50: gcc45-pr45094.patch

Patch1000: fastjar-0.97-segfault.patch
Patch9999: gcc44-ARM-boehm-gc-stack-qemu.patch

#We need -gnueabi indicator for ARM
%ifnarch %{arm}
%global _gnu %{nil}
%endif
%global gcc_target_platform %{_target_platform}

%description
The gcc package contains the GNU Compiler Collection version 4.5.0.
You'll need this package in order to compile C code.

%prep
%setup -q -n gcc-%{version}
%patch0 -p0 -b .hack~
%patch1 -p0 -b .build-id~
%patch2 -p0 -b .c++-builtin-redecl~
%patch4 -p0 -b .java-nomulti~
%patch9 -p0 -b .pr33763~
%patch11 -p0 -b .rh341221~
%patch12 -p0 -b .java-debug-iface-type~
%patch13 -p0 -b .i386-libgomp~
%patch16 -p0 -b .libgomp-omp_h-multilib~
%patch20 -p0 -b .libtool-no-rpath~

%if %{build_libstdcxx_docs}
%patch29 -p0 -b .libstdc++-docs~
%endif

%patch30 -p1 -b .pr43572

%ifarch %{arm}
%patch31 -p1 -b .pr43698
%else
%if %crossbuild
# add it for arm crossbuild, too
%patch31 -p1 -b .pr43698
%endif
%endif

%patch40 -p1 -b .atom

#%patch42 -p0 -b .var-track1~
#%patch43 -p0 -b .var-track2~
#%patch44 -p0 -b .var-track3~

#%patch45 -p0 -b .max-vartrack-size~
#%patch46 -p1 -b .max-vartrack-size-2~

%patch50 -p0 -b .pr45094

# This testcase doesn't compile.
rm libjava/testsuite/libjava.lang/PR35020*

tar xzf %{SOURCE4}

%patch1000 -p0 -b .fastjar-0.97-segfault~
%patch9999 -p1 -b .arm-boehm-gc~

%if %{bootstrap_java}
tar xjf %{SOURCE10}
%endif

echo 'MeeGo %{version}-%{gcc_release}' > gcc/DEV-PHASE

# Default to -gdwarf-3 rather than -gdwarf-2
sed -i '/UInteger Var(dwarf_version)/s/Init(2)/Init(3)/' gcc/common.opt
sed -i 's/\(may be either 2 or 3; the default version is \)2\./\13./' gcc/doc/invoke.texi

cp -a libstdc++-v3/config/cpu/i{4,3}86/atomicity.h

# Hack to avoid building multilib libjava
perl -pi -e 's/^all: all-redirect/ifeq (\$(MULTISUBDIR),)\nall: all-redirect\nelse\nall:\n\techo Multilib libjava build disabled\nendif/' libjava/Makefile.in
perl -pi -e 's/^install: install-redirect/ifeq (\$(MULTISUBDIR),)\ninstall: install-redirect\nelse\ninstall:\n\techo Multilib libjava install disabled\nendif/' libjava/Makefile.in
perl -pi -e 's/^check: check-redirect/ifeq (\$(MULTISUBDIR),)\ncheck: check-redirect\nelse\ncheck:\n\techo Multilib libjava check disabled\nendif/' libjava/Makefile.in
perl -pi -e 's/^all: all-recursive/ifeq (\$(MULTISUBDIR),)\nall: all-recursive\nelse\nall:\n\techo Multilib libjava build disabled\nendif/' libjava/Makefile.in
perl -pi -e 's/^install: install-recursive/ifeq (\$(MULTISUBDIR),)\ninstall: install-recursive\nelse\ninstall:\n\techo Multilib libjava install disabled\nendif/' libjava/Makefile.in
perl -pi -e 's/^check: check-recursive/ifeq (\$(MULTISUBDIR),)\ncheck: check-recursive\nelse\ncheck:\n\techo Multilib libjava check disabled\nendif/' libjava/Makefile.in

./contrib/gcc_update --touch

LC_ALL=C sed -i -e 's/\xa0/ /' gcc/doc/options.texi

%build

# Avoid rebuilding of generated files  
contrib/gcc_update --touch

rm -rf obj
mkdir obj 
cd obj

#export PATH=/opt/meego-toolchain/bin:$PATH

../configure \
    --prefix=%{_prefix} \
    --infodir=%{_infodir} --mandir=%{_mandir} \
    --libdir=%{_libdir} --libexecdir=%{_libdir} \
    --enable-languages=c \
    --disable-nls --disable-shared \
    --enable-version-specific-runtime-libs \
    --with-sysroot=%{_prefix}/%{TARGET}/sys-root \
    --target=%{TARGET} \
    --enable-ssp --disable-libssp \
    --disable-libmudflap \
    --disable-__cxa_atexit --disable-checking --disable-threads \
    --without-newlib --enable-fp

make %{?jobs:-j%jobs} all-gcc
make %{?jobs:-j%jobs} all-target-libgcc

%install

cd obj
#make -C gcc install DESTDIR=%{buildroot}
make install-gcc DESTDIR=%{buildroot}
make install-target-libgcc DESTDIR=%{buildroot}
rm -rf %{buildroot}%{_infodir}
rm -rf %{buildroot}%{_mandir}

%clean
rm -rf %{buildroot}

%files
%defattr(-,root,root,-)
%{_prefix}

===================================================================




More information about the MeeGo-commits mailing list