Package: gcc-4.0 Version: 4.0.1-8 Severity: wishlist Tags: patch Attached is a patch that teaches the gcc-4.0 package build scripts about the armeb architecture, and a patch for gcc to default to big-endian in case of an arm*b-*-* target triple. This allows a fully native gcc-4.0 package build on a big-endian ARM platform.
-- System Information: Debian Release: 3.1 Architecture: armeb (armv5teb) Kernel: Linux 2.6.13 Locale: LANG=C, LC_CTYPE=C (charmap=ANSI_X3.4-1968)
--- gcc-4.0-4.0.1/debian/rules2.orig 2005-09-25 00:30:44.000000000 +0000 +++ gcc-4.0-4.0.1/debian/rules2 2005-09-25 00:30:50.000000000 +0000 @@ -246,7 +246,7 @@ bootstrap_target = bootstrap # Increase the timeout for one testrun on slow architectures -ifeq ($(DEB_TARGET_GNU_CPU), $(findstring $(DEB_TARGET_GNU_CPU),arm hppa m68k)) +ifeq ($(DEB_TARGET_GNU_CPU), $(findstring $(DEB_TARGET_GNU_CPU),arm armeb hppa m68k)) DEJAGNU_TIMEOUT=600 else DEJAGNU_TIMEOUT=450 @@ -676,7 +676,7 @@ done # start the script only on architectures known to have slow autobilders ... -logwatch_archs := arm m68k mips mipsel sparc +logwatch_archs := arm armeb m68k mips mipsel sparc ifeq ($(DEB_HOST_GNU_CPU), $(findstring $(DEB_HOST_GNU_CPU),$(logwatch_archs))) start_logwatch = yes endif --- gcc-4.0-4.0.1/debian/control.orig 2005-09-25 00:30:44.000000000 +0000 +++ gcc-4.0-4.0.1/debian/control 2005-09-25 00:30:50.000000000 +0000 @@ -4,7 +4,7 @@ Maintainer: Debian GCC Maintainers <debian-gcc@lists.debian.org> Uploaders: Matthias Klose <[EMAIL PROTECTED]> Standards-Version: 3.6.2 -Build-Depends: dpkg-dev (>= 1.13.9), libc6.1-dev (>= 2.3.2.ds1-16) [alpha ia64] | libc0.3-dev (>= 2.3.2.ds1-16) | libc0.1-dev (>= 2.3.2.ds1-16) | libc12-dev (>= 2.3.2.ds1-16) | libc6-dev (>= 2.3.2.ds1-16), libc6-dev-sparc64 [sparc], libc6-dev-s390x [s390], libc6-dev-i386 [amd64] | ia32-libs-dev [amd64], libc6-dev-powerpc [ppc64], libc6-dev-ppc64 [powerpc], lib32gcc1 [amd64 ppc64], lib64gcc1 [i386 powerpc sparc s390], libc6-dev-amd64 [i386] | amd64-libs-dev (>= 1.2) [i386], libunwind7-dev (>= 0.98.5-6) [ia64], libatomic-ops-dev [ia64], m4, autoconf, automake1.9, libtool, autogen, gawk, dejagnu (>= 1.4.3) [!hurd-any !hurd-i386], expect-tcl8.3 [hppa] | expect [hppa], expect (>= 5.38.0) [!hppa !hurd-any !hurd-i386], bzip2, binutils (>= 2.16.1) | binutils-multiarch (>= 2.16.1), binutils-hppa64 (>= 2.16.1) [hppa], debhelper (>= 4.1), gperf (>= 3.0.1), bison (>= 1:1.875a-1), flex, gettext, texinfo (>= 4.3), zlib1g-dev, libgc-dev [!avr !alpha !amd64 !arm !hppa !i386 !ia64 !m68k !mips !mipsel !powerpc !s390 !sparc !knetbsd-any !knetbsd-i386], gnat-4.0 [!alpha !arm !m68k !sh3 !sh3eb !sh4 !sh4eb !kfreebsd-any !knetbsd-any !netbsd-any !kfreebsd-i386 !knetbsd-i386 !netbsd-i386 !hurd-any !hurd-i386] | gnat-3.4 [!alpha !arm !m68k !sh3 !sh3eb !sh4 !sh4eb !kfreebsd-any !knetbsd-any !netbsd-any !kfreebsd-i386 !knetbsd-i386 !netbsd-i386 !hurd-any !hurd-i386] | gnat-3.3 [!alpha !arm !m68k !sh3 !sh3eb !sh4 !sh4eb !kfreebsd-any !knetbsd-any !netbsd-any !kfreebsd-i386 !knetbsd-i386 !netbsd-i386 !hurd-any !hurd-i386], libmpfr-dev [!m68k !avr], locales [!hurd-i386 !knetbsd-i386 !netbsd-i386 !hurd-any !knetbsd-any !netbsd-any], procps [!hurd-any !hurd-i386], sharutils, xlibs-dev [!mips !mipsel !knetbsd-any !netbsd-any !knetbsd-i386 !netbsd-i386], libgtk2.0-dev (>= 2.4.4-2) [!mips !mipsel !knetbsd-any !netbsd-any !knetbsd-i386 !netbsd-i386], libart-2.0-dev [!mips !mipsel !knetbsd-any !netbsd-any !knetbsd-i386 !netbsd-i386], libcairo2-dev [!mips !mipsel !knetbsd-any !netbsd-any !knetbsd-i386 !netbsd-i386], realpath (>= 1.9.12), chrpath, lsb-release, dash [hppa] +Build-Depends: dpkg-dev (>= 1.13.9), libc6.1-dev (>= 2.3.2.ds1-16) [alpha ia64] | libc0.3-dev (>= 2.3.2.ds1-16) | libc0.1-dev (>= 2.3.2.ds1-16) | libc12-dev (>= 2.3.2.ds1-16) | libc6-dev (>= 2.3.2.ds1-16), libc6-dev-sparc64 [sparc], libc6-dev-s390x [s390], libc6-dev-i386 [amd64] | ia32-libs-dev [amd64], libc6-dev-powerpc [ppc64], libc6-dev-ppc64 [powerpc], lib32gcc1 [amd64 ppc64], lib64gcc1 [i386 powerpc sparc s390], libc6-dev-amd64 [i386] | amd64-libs-dev (>= 1.2) [i386], libunwind7-dev (>= 0.98.5-6) [ia64], libatomic-ops-dev [ia64], m4, autoconf, automake1.9, libtool, autogen, gawk, dejagnu (>= 1.4.3) [!hurd-any !hurd-i386], expect-tcl8.3 [hppa] | expect [hppa], expect (>= 5.38.0) [!hppa !hurd-any !hurd-i386], bzip2, binutils (>= 2.16.1) | binutils-multiarch (>= 2.16.1), binutils-hppa64 (>= 2.16.1) [hppa], debhelper (>= 4.1), gperf (>= 3.0.1), bison (>= 1:1.875a-1), flex, gettext, texinfo (>= 4.3), zlib1g-dev, libgc-dev [!avr !alpha !amd64 !arm !armeb !hppa !i386 !ia64 !m68k !mips !mipsel !powerpc !s390 !sparc !knetbsd-any !knetbsd-i386], gnat-4.0 [!alpha !arm !armeb !m68k !sh3 !sh3eb !sh4 !sh4eb !kfreebsd-any !knetbsd-any !netbsd-any !kfreebsd-i386 !knetbsd-i386 !netbsd-i386 !hurd-any !hurd-i386] | gnat-3.4 [!alpha !arm !armeb !m68k !sh3 !sh3eb !sh4 !sh4eb !kfreebsd-any !knetbsd-any !netbsd-any !kfreebsd-i386 !knetbsd-i386 !netbsd-i386 !hurd-any !hurd-i386] | gnat-3.3 [!alpha !arm !armeb !m68k !sh3 !sh3eb !sh4 !sh4eb !kfreebsd-any !knetbsd-any !netbsd-any !kfreebsd-i386 !knetbsd-i386 !netbsd-i386 !hurd-any !hurd-i386], libmpfr-dev [!m68k !avr], locales [!hurd-i386 !knetbsd-i386 !netbsd-i386 !hurd-any !knetbsd-any !netbsd-any], procps [!hurd-any !hurd-i386], sharutils, xlibs-dev [!mips !mipsel !knetbsd-any !netbsd-any !knetbsd-i386 !netbsd-i386], libgtk2.0-dev (>= 2.4.4-2) [!mips !mipsel !knetbsd-any !netbsd-any !knetbsd-i386 !netbsd-i386], libart-2.0-dev [!mips !mipsel !knetbsd-any !netbsd-any !knetbsd-i386 !netbsd-i386], libcairo2-dev [!mips !mipsel !knetbsd-any !netbsd-any !knetbsd-i386 !netbsd-i386], realpath (>= 1.9.12), chrpath, lsb-release, dash [hppa] Build-Depends-Indep: doxygen (>= 1.4.2), graphviz (>= 2.2), gsfonts-x11 Package: gcc-4.0-base @@ -644,7 +644,7 @@ interest in it. Package: gcc-4.0-soft-float -Architecture: arm +Architecture: arm armeb Priority: optional Depends: gcc-4.0-base (= ${gcc:Version}), gcc-4.0 (= ${gcc:Version}), ${shlibs:Depends} Replaces: gcc-soft-float-ss --- gcc-4.0-4.0.1/debian/rules.defs.orig 2005-09-25 00:30:44.000000000 +0000 +++ gcc-4.0-4.0.1/debian/rules.defs 2005-09-25 00:30:50.000000000 +0000 @@ -423,7 +423,7 @@ with_objc_gc := yes # disable ObjC garbage collection library (needs libgc) -libgc_no_cpus := avr alpha amd64 arm hppa i386 ia64 m68k mips mipsel powerpc s390 sparc +libgc_no_cpus := avr alpha amd64 arm armeb hppa i386 ia64 m68k mips mipsel powerpc s390 sparc libgc_no_systems := knetbsd-gnu ifneq (, $(filter $(DEB_TARGET_ARCH_CPU),$(libgc_no_cpus))) with_objc_gc := disabled for architecture $(DEB_TARGET_ARCH_CPU) @@ -478,7 +478,7 @@ endif with_libgnat := yes -ada_no_cpus := alpha arm m68k sh3 sh3eb sh4 sh4eb +ada_no_cpus := alpha arm armeb m68k sh3 sh3eb sh4 sh4eb ada_no_systems := hurd-i386 kfreebsd-gnu knetbsd-gnu netbsdelf-gnu ifneq (, $(filter $(DEB_TARGET_ARCH_CPU),$(ada_no_cpus))) with_ada := disabled for architecure $(DEB_TARGET_ARCH_CPU) --- gcc-4.0-4.0.1/debian/rules.patch.orig 2005-09-25 00:31:33.000000000 +0000 +++ gcc-4.0-4.0.1/debian/rules.patch 2005-09-25 00:31:14.000000000 +0000 @@ -34,6 +34,7 @@ libjava-awt-peer-gtk \ libjava-dlsearch-path \ libjava-echo-fix \ + arm-bigendian \ # cvs-updates \ # pr23891 \ --- gcc-4.0-4.0.1/debian/patches/arm-bigendian.dpatch.orig 2005-09-25 00:31:37.000000000 +0000 +++ gcc-4.0-4.0.1/debian/patches/arm-bigendian.dpatch 2005-09-25 00:29:41.000000000 +0000 @@ -0,0 +1,85 @@ +#! /bin/sh -e + +src=gcc +if [ $# -eq 3 -a "$2" = '-d' ]; then + pdir="-d $3" + src=$3/gcc +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) + patch $pdir -f --no-backup-if-mismatch -p0 --fuzz 10 < $0 + ;; + -unpatch) + patch $pdir -f --no-backup-if-mismatch -R -p0 --fuzz 10 < $0 + ;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +esac +exit 0 + +--- gcc/config/arm/linux-elf.h.orig 2005-03-09 01:06:55.000000000 +0100 ++++ gcc/config/arm/linux-elf.h 2005-04-10 17:01:09.000000000 +0200 +@@ -31,19 +31,33 @@ + /* Do not assume anything about header files. */ + #define NO_IMPLICIT_EXTERN_C + ++/* ++ * 'config.gcc' defines TARGET_BIG_ENDIAN_DEFAULT as 1 for arm*b-* ++ * (big endian) configurations. ++ */ ++#if TARGET_BIG_ENDIAN_DEFAULT ++#define TARGET_ENDIAN_DEFAULT ARM_FLAG_BIG_END ++#define TARGET_ENDIAN_OPTION "mbig-endian" ++#define TARGET_LINKER_EMULATION "armelfb_linux" ++#else ++#define TARGET_ENDIAN_DEFAULT 0 ++#define TARGET_ENDIAN_OPTION "mlittle-endian" ++#define TARGET_LINKER_EMULATION "armelf_linux" ++#endif ++ + #undef TARGET_DEFAULT_FLOAT_ABI + #define TARGET_DEFAULT_FLOAT_ABI ARM_FLOAT_ABI_HARD + + #undef TARGET_DEFAULT +-#define TARGET_DEFAULT (0) ++#define TARGET_DEFAULT (TARGET_ENDIAN_DEFAULT) + + #define SUBTARGET_CPU_DEFAULT TARGET_CPU_arm6 + +-#define SUBTARGET_EXTRA_LINK_SPEC " -m armelf_linux -p" ++#define SUBTARGET_EXTRA_LINK_SPEC " -m " TARGET_LINKER_EMULATION " -p" + + #undef MULTILIB_DEFAULTS + #define MULTILIB_DEFAULTS \ +- { "marm", "mlittle-endian", "mhard-float", "mno-thumb-interwork" } ++ { "marm", TARGET_ENDIAN_OPTION, "mhard-float", "mno-thumb-interwork" } + + /* The GNU C++ standard library requires that these macros be defined. */ + #undef CPLUSPLUS_CPP_SPEC +@@ -90,7 +104,7 @@ + %{rdynamic:-export-dynamic} \ + %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2} \ + -X \ +- %{mbig-endian:-EB}" \ ++ %{mbig-endian:-EB} %{mlittle-endian:-EL}" \ + SUBTARGET_EXTRA_LINK_SPEC + + #define TARGET_OS_CPP_BUILTINS() \ +--- gcc/config.gcc.orig 2005-04-10 16:58:06.000000000 +0200 ++++ gcc/config.gcc 2005-04-10 17:01:09.000000000 +0200 +@@ -660,6 +660,11 @@ + ;; + arm*-*-linux*) # ARM GNU/Linux with ELF + tm_file="dbxelf.h elfos.h linux.h arm/elf.h arm/linux-gas.h arm/linux-elf.h arm/aout.h arm/arm.h" ++ case $target in ++ arm*b-*) ++ tm_defines="TARGET_BIG_ENDIAN_DEFAULT=1 $tm_defines" ++ ;; ++ esac + tmake_file="${tmake_file} arm/t-arm arm/t-linux" + extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o" + gnu_ld=yes --- gcc-4.0-4.0.1/debian/control.m4.orig 2005-09-25 00:30:44.000000000 +0000 +++ gcc-4.0-4.0.1/debian/control.m4 2005-09-25 00:30:50.000000000 +0000 @@ -849,7 +849,7 @@ ifdef(`TARGET',`',`dnl ifenabled(`libs',` Package: gcc`'PV-soft-float -Architecture: arm +Architecture: arm armeb Priority: PRI(optional) Depends: gcc`'PV-base (= ${gcc:Version}), ifenabled(`cdev',`gcc`'PV (= ${gcc:Version}),') ${shlibs:Depends} Replaces: gcc-soft-float-ss