[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#336064: marked as done (gcc-2.95: Please add big-endian arm (armeb) support)



Your message dated Tue, 06 Jun 2006 00:47:17 -0700
with message-id <E1FnWHV-00065v-Hf@spohr.debian.org>
and subject line Bug#336064: fixed in gcc-2.95 2.95.4.ds15-25
has caused the attached Bug report to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what I am
talking about this indicates a serious mail system misconfiguration
somewhere.  Please contact me immediately.)

Debian bug tracking system administrator
(administrator, Debian Bugs database)

--- Begin Message ---
Package: gcc-2.95
Severity: wishlist
Tags: patch

The attached patch adds big-endian arm support to gcc-2.95.  It's
more-or-less the same as its gcc-4.0 counterpart: teach the debian
build scripts about 'armeb', and patch gcc so that it defaults to
big-endian.

Since gcc-2.95 is so old, I haven't bothered with making a patch that
detects the endianness at configure time -- instead, if we're being
built for the armeb arch, a patch is applied that just hardcodes the
default endianity to big-endian.  Please let me know if this is not
acceptable.

Together with the patches for #323512 and #336057 this allows for a
fully native build of gcc-2.95 on a big-endian arm system.


-- System Information:
Debian Release: testing/unstable
  APT prefers stable
  APT policy: (500, 'stable')
Architecture: armeb (armv4b)
Shell:  /bin/sh linked to /bin/bash
Kernel: Linux 2.6.13
Locale: LANG=C, LC_CTYPE=C (charmap=ANSI_X3.4-1968)
--- gcc-2.95-2.95.4.ds15/debian/rules2.orig	2005-10-11 11:15:05.000000000 +0200
+++ gcc-2.95-2.95.4.ds15/debian/rules2	2005-10-11 11:15:50.000000000 +0200
@@ -555,6 +555,11 @@
   d_softfloat  = debian/$(p_softfloat)
 endif
 
+ifeq ($(DEB_HOST_ARCH),armeb)
+  p_softfloat  = gcc$(pkg_ver)-soft-float$(ss_suffix)
+  d_softfloat  = debian/$(p_softfloat)
+endif
+
 # gcc must be moved after g77 and g++
 # not all files $(PF)/include/*.h are part of gcc,
 # but it becomes difficult to name all these files ...
@@ -598,6 +603,10 @@
     dirs_gcc += $(gcc_lib_dir)/soft-float
     files_gcc += $(gcc_lib_dir)/soft-float/{libgcc.a,*.o}
 endif
+ifeq ($(TARGET)-$(with_arm_soft_float),armeb-yes)
+    dirs_gcc += $(gcc_lib_dir)/soft-float
+    files_gcc += $(gcc_lib_dir)/soft-float/{libgcc.a,*.o}
+endif
 endif
 files_gcc += \
 	$(shell test -e $(d)/$(gcc_lib_dir)/SYSCALLS.c.X \
@@ -630,6 +639,15 @@
 	$(gcc_lib_dir)/soft-float
 endif
 
+ifeq ($(TARGET)-$(with_arm_soft_float),armeb-yes)
+  dirs_softfloat = \
+	$(PF)/lib/soft-float \
+	$(gcc_lib_dir)/soft-float
+  files_softfloat = \
+	$(PF)/lib/soft-float \
+	$(gcc_lib_dir)/soft-float
+endif
+
 dirs_cpp = \
 	$(docdir)/$(p_cpp) \
 	$(PF)/share/man/man1 \
@@ -891,6 +909,10 @@
   dirs_gcc += $(PF)/lib/soft-float
 endif
 
+ifeq ($(TARGET)-$(with_arm_soft_float),armeb-yes)
+  dirs_gcc += $(PF)/lib/soft-float
+endif
+
 foo-%:
 	echo T: $(TARGET) $(d)
 	echo $(dirs_gcc)
@@ -1049,6 +1071,9 @@
 ifeq ($(TARGET)-$(with_arm_soft_float),arm-yes)
 	dh_installdirs -p$(p_softfloat) $(dirs_softfloat)
 endif
+ifeq ($(TARGET)-$(with_arm_soft_float),armeb-yes)
+	dh_installdirs -p$(p_softfloat) $(dirs_softfloat)
+endif
 
 ifeq ($(TARGET),native)
 
@@ -1187,6 +1212,9 @@
 ifeq ($(TARGET)-$(with_arm_soft_float),arm-yes)
 	dh_movefiles -p$(p_softfloat) $(files_softfloat)
 endif
+ifeq ($(TARGET)-$(with_arm_soft_float),armeb-yes)
+	dh_movefiles -p$(p_softfloat) $(files_softfloat)
+endif
 	dh_movefiles -p$(p_cpp)   $(files_cpp)
 	dh_movefiles -p$(p_cppd)  $(files_cppd)
 ifeq ($(with_objc),yes)
--- gcc-2.95-2.95.4.ds15/debian/control.in.orig	2005-10-11 11:14:28.000000000 +0200
+++ gcc-2.95-2.95.4.ds15/debian/control.in	2005-10-11 11:14:16.000000000 +0200
@@ -427,7 +427,7 @@
  with the -msoft-float option, for CPUs without a floating-point unit.
 #endif
 
-#if defined(__arm__) && defined(ARM_SOFT_FLOAT)
+#if (defined(__arm__) || defined(__ARMEB__)) && defined(ARM_SOFT_FLOAT)
 Package: PN(gcc_PV_-soft-float)
 Architecture: any
 Priority: PRI(optional)
--- gcc-2.95-2.95.4.ds15/debian/rules.patch.orig	2005-10-11 11:11:23.000000000 +0200
+++ gcc-2.95-2.95.4.ds15/debian/rules.patch	2005-10-11 11:12:45.000000000 +0200
@@ -142,9 +142,14 @@
 	arm-const-double arm-tune arm-output-int libgcc-umodsi3 \
 	arm-profile arm-gcc4-fix
 endif
+ifeq ($(DEB_HOST_ARCH),armeb)
+  debian_patches += arm-pic arm-nested-func arm-various arm-exception \
+	arm-const-double arm-tune arm-output-int libgcc-umodsi3 \
+	arm-profile arm-gcc4-fix arm-big-endian
+endif
 all_patches += arm-pic arm-nested-func arm-various arm-exception \
 	arm-const-double arm-tune arm-output-int libgcc-umodsi3 \
-	arm-profile arm-gcc4-fix
+	arm-profile arm-gcc4-fix arm-big-endian
 
 ifeq ($(DEB_HOST_ARCH),m68k)
   debian_patches += 68060-build gcc-m68k-pic m68k-md m68k-reload g77-m68k-pic
--- gcc-2.95-2.95.4.ds15/debian/patches/arm-big-endian.dpatch.orig	2005-10-11 13:20:53.000000000 +0200
+++ gcc-2.95-2.95.4.ds15/debian/patches/arm-big-endian.dpatch	2005-10-11 13:20:14.000000000 +0200
@@ -0,0 +1,89 @@
+#! /bin/sh -e
+
+dir=
+if [ $# -eq 3 -a "$2" = '-d' ]; then
+    pdir="-d $3"
+    dir="$3/"
+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 < $0
+        ;;
+    -unpatch)
+        patch $pdir -f --no-backup-if-mismatch -R -p0 < $0
+        ;;
+    *)
+        echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
+        exit 1
+esac
+exit 0
+
+--- gcc/config/arm/elf.h.orig	2005-10-11 13:14:35.000000000 +0200
++++ gcc/config/arm/elf.h	2005-10-11 13:17:23.000000000 +0200
+@@ -146,12 +146,12 @@
+ #define JUMP_TABLES_IN_TEXT_SECTION 1
+ 
+ #ifndef ASM_SPEC
+-#define ASM_SPEC "%{mbig-endian:-EB} %{mcpu=*:-m%*} %{march=*:-m%*} \
++#define ASM_SPEC "%{mbig-endian:-EB} %{mlittle-endian:-EL} %{mcpu=*:-m%*} %{march=*:-m%*} \
+  %{mapcs-*:-mapcs-%*} %{mthumb-interwork:-mthumb-interwork} %{mapcs-float:mfloat}"
+ #endif
+ 
+ #ifndef LINK_SPEC
+-#define LINK_SPEC "%{mbig-endian:-EB} -X"
++#define LINK_SPEC "%{mbig-endian:-EB} %{mlittle-endian:-EL} -X"
+ #endif
+   
+ /* Run-time Target Specification.  */
+--- gcc/config/arm/arm.h.orig	2005-10-11 13:14:42.000000000 +0200
++++ gcc/config/arm/arm.h	2005-10-11 13:17:23.000000000 +0200
+@@ -209,8 +209,8 @@
+ %{!mlittle-endian:%{!mbig-endian:%(cpp_endian_default)}} \
+ "
+ 
+-/* Default is little endian, which doesn't define anything. */
+-#define CPP_ENDIAN_DEFAULT_SPEC ""
++/* Default is big endian, which defines __ARMEB__ */
++#define CPP_ENDIAN_DEFAULT_SPEC "-D__ARMEB__"
+ 
+ #define CC1_SPEC ""
+ 
+--- gcc/config/arm/linux-elf.h.orig	2005-10-11 13:15:07.000000000 +0200
++++ gcc/config/arm/linux-elf.h	2005-10-11 13:17:52.000000000 +0200
+@@ -30,13 +30,13 @@
+ 
+ #ifndef SUBTARGET_DEFAULT_APCS26
+ /* Default is to use APCS-32 mode.  */
+-# define TARGET_DEFAULT (ARM_FLAG_APCS_32 | ARM_FLAG_SHORT_BYTE)
++# define TARGET_DEFAULT (ARM_FLAG_APCS_32 | ARM_FLAG_SHORT_BYTE | ARM_FLAG_BIG_END)
+ # ifdef SUBTARGET_OLD_LINKER
+ #  define SUBTARGET_EXTRA_LINK_SPEC	\
+ 	" %{mapcs-26:-m elf32arm26} %{!mapcs-26:-m elf32arm}"
+ # else	/* new linker */
+ #  define SUBTARGET_EXTRA_LINK_SPEC	\
+-	" %{mapcs-26:-m armelf_linux26} %{!mapcs-26:-m armelf_linux} -p"
++	" %{mapcs-26:-m armelfb_linux26} %{!mapcs-26:-m armelfb_linux} -p"
+ # endif
+ # define SUBTARGET_EXTRA_ASM_SPEC	\
+ 	" %{mapcs-26:-mapcs-26} %(!mapcs-26:-mapcs-32}"
+@@ -48,7 +48,7 @@
+ 	" %{mapcs-32:-m elf32arm} %{!mapcs-32:-m elf32arm26}"
+ # else	/* new linker */
+ #  define SUBTARGET_LINK_SPEC	\
+-	" %{mapcs-32:-m armelf_linux} %{!mapcs-32:-m armelf_linux26} -p"
++	" %{mapcs-32:-m armelfb_linux} %{!mapcs-32:-m armelfb_linux26} -p"
+ # endif
+ # define SUBTARGET_EXTRA_ASM_SPEC	\
+ 	" %{mapcs-32:-mapcs-32} %(!mapcs-32:-mapcs-26}"
+@@ -98,7 +98,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
+ 
+ #undef  CPP_PREDEFINES

--- End Message ---
--- Begin Message ---
Source: gcc-2.95
Source-Version: 2.95.4.ds15-25

We believe that the bug you reported is fixed in the latest version of
gcc-2.95, which is due to be installed in the Debian FTP archive:

chill-2.95_2.95.4-25_mips.deb
  to pool/main/g/gcc-2.95/chill-2.95_2.95.4-25_mips.deb
cpp-2.95-doc_2.95.4-25_all.deb
  to pool/main/g/gcc-2.95/cpp-2.95-doc_2.95.4-25_all.deb
cpp-2.95_2.95.4-25_mips.deb
  to pool/main/g/gcc-2.95/cpp-2.95_2.95.4-25_mips.deb
g++-2.95_2.95.4-25_mips.deb
  to pool/main/g/gcc-2.95/g++-2.95_2.95.4-25_mips.deb
g77-2.95-doc_2.95.4-25_all.deb
  to pool/main/g/gcc-2.95/g77-2.95-doc_2.95.4-25_all.deb
g77-2.95_2.95.4-25_mips.deb
  to pool/main/g/gcc-2.95/g77-2.95_2.95.4-25_mips.deb
gcc-2.95-doc_2.95.4-25_all.deb
  to pool/main/g/gcc-2.95/gcc-2.95-doc_2.95.4-25_all.deb
gcc-2.95_2.95.4-25_mips.deb
  to pool/main/g/gcc-2.95/gcc-2.95_2.95.4-25_mips.deb
gcc-2.95_2.95.4.ds15-25.diff.gz
  to pool/main/g/gcc-2.95/gcc-2.95_2.95.4.ds15-25.diff.gz
gcc-2.95_2.95.4.ds15-25.dsc
  to pool/main/g/gcc-2.95/gcc-2.95_2.95.4.ds15-25.dsc
gobjc-2.95_2.95.4-25_mips.deb
  to pool/main/g/gcc-2.95/gobjc-2.95_2.95.4-25_mips.deb
gpc-2.95-doc_2.95.4-25_all.deb
  to pool/main/g/gcc-2.95/gpc-2.95-doc_2.95.4-25_all.deb
gpc-2.95_2.95.4-25_mips.deb
  to pool/main/g/gcc-2.95/gpc-2.95_2.95.4-25_mips.deb
libg++2.8.1.3-dbg_2.95.4-25_mips.deb
  to pool/main/g/gcc-2.95/libg++2.8.1.3-dbg_2.95.4-25_mips.deb
libg++2.8.1.3-dev_2.95.4-25_mips.deb
  to pool/main/g/gcc-2.95/libg++2.8.1.3-dev_2.95.4-25_mips.deb
libg++2.8.1.3-glibc2.2_2.95.4-25_mips.deb
  to pool/main/g/gcc-2.95/libg++2.8.1.3-glibc2.2_2.95.4-25_mips.deb
libstdc++2.10-dbg_2.95.4-25_mips.deb
  to pool/main/g/gcc-2.95/libstdc++2.10-dbg_2.95.4-25_mips.deb
libstdc++2.10-dev_2.95.4-25_mips.deb
  to pool/main/g/gcc-2.95/libstdc++2.10-dev_2.95.4-25_mips.deb
libstdc++2.10-glibc2.2_2.95.4-25_mips.deb
  to pool/main/g/gcc-2.95/libstdc++2.10-glibc2.2_2.95.4-25_mips.deb



A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to 336064@bugs.debian.org,
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Thiemo Seufer <ths@debian.org> (supplier of updated gcc-2.95 package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing ftpmaster@debian.org)


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Format: 1.7
Date: Tue, 06 Jun 2006 02:14:15 +0100
Source: gcc-2.95
Binary: cpp-2.95-doc libg++2.8.1.3-glibc2.2 g77-2.95-doc cpp-2.95 gobjc-2.95 libstdc++2.10-dbg gcc-2.95 gpc-2.95-doc chill-2.95 gpc-2.95 libg++2.8.1.3-dev libg++2.8.1.3-dbg libstdc++2.10-dev libstdc++2.10-glibc2.2 g++-2.95 g77-2.95 gcc-2.95-doc
Architecture: source mips all
Version: 2.95.4.ds15-25
Distribution: unstable
Urgency: low
Maintainer: ths@debian.org
Changed-By: Thiemo Seufer <ths@debian.org>
Description: 
 chill-2.95 - The GNU CHILL compiler
 cpp-2.95   - The GNU C preprocessor
 cpp-2.95-doc - Documentation for the GNU C preprocessor (cpp)
 g++-2.95   - The GNU C++ compiler
 g77-2.95   - The GNU Fortran 77 compiler
 g77-2.95-doc - Documentation for the GNU Fortran compiler (g77)
 gcc-2.95   - The GNU C compiler
 gcc-2.95-doc - Documentation for the GNU compilers (gcc, gobjc, g++)
 gobjc-2.95 - The GNU Objective-C compiler
 gpc-2.95   - The GNU Pascal compiler
 gpc-2.95-doc - Documentation for the GNU Pascal compiler (gpc)
 libg++2.8.1.3-dbg - The GNU C++ extension library - debugging files
 libg++2.8.1.3-dev - The GNU C++ extension library - development files
 libg++2.8.1.3-glibc2.2 - The GNU C++ extension library - runtime version
 libstdc++2.10-dbg - The GNU stdc++ library (debugging files)
 libstdc++2.10-dev - The GNU stdc++ library (development files)
 libstdc++2.10-glibc2.2 - The GNU stdc++ library
Closes: 336061 336064 350688
Changes: 
 gcc-2.95 (2.95.4.ds15-25) unstable; urgency=low
 .
   * Matthias Klose <doko@debian.org>
 .
     * Add big-endian arm (armeb) support (Lennert Buytenhek).
       Closes: #336064.
     * Generate the control file explicitely (debian/rules control-file)
       still using cpp-2.95, remove the build dependency on cpp-2.95.
       Closes: #336061.
     * Fix build failure with new make. Closes: #350688.
 .
   * Thiemo Seufer <ths@debian.org>
 .
     * Provide the canonical chill compiler.
     * Update standards version.
     * Fix some lintian warnings by adjusting the build dependencies
     * Fix changelog formatting.
Files: 
 047c34cf1438b6a595f34d2b95c84261 1146 devel optional gcc-2.95_2.95.4.ds15-25.dsc
 f260c4cdeafa57683f03fe6dc94e8674 867634 devel optional gcc-2.95_2.95.4.ds15-25.diff.gz
 5ac034c4738bc82d8652d7dc8e2179d5 69856 doc optional cpp-2.95-doc_2.95.4-25_all.deb
 0de55302caa68d748bc6ad46aba72cb1 315374 doc optional g77-2.95-doc_2.95.4-25_all.deb
 fdbb868146347fdd2cc68d668df01d79 447474 doc optional gcc-2.95-doc_2.95.4-25_all.deb
 57288cfdd7f0377ed60d997298c7c958 531000 doc optional gpc-2.95-doc_2.95.4-25_all.deb
 a21c6ecb7e1005dbd749601ec20e1d62 1145380 devel optional gcc-2.95_2.95.4-25_mips.deb
 685d9b593d244c5f7e048923eb0bba04 131068 interpreters optional cpp-2.95_2.95.4-25_mips.deb
 5ac7f41b68d1cb4c95251b358c831409 1263350 devel optional g++-2.95_2.95.4-25_mips.deb
 c9d8a034dd2ed9ec4c47e03dfa197c8e 1063740 devel optional gobjc-2.95_2.95.4-25_mips.deb
 91ecf4bf76d7a1b9592ecce4f6b3e9e6 1355402 devel optional g77-2.95_2.95.4-25_mips.deb
 aa476f59589abc0848df351e77c0cf5f 1056956 devel extra chill-2.95_2.95.4-25_mips.deb
 6bc8e649e0cf82c9e6f7aed8ae9e787e 371456 libs optional libstdc++2.10-glibc2.2_2.95.4-25_mips.deb
 d85df52bd7470f1b7293bf421407b973 328892 libdevel optional libstdc++2.10-dev_2.95.4-25_mips.deb
 9d0c689b6d5ffa4e9b2a8c63fe5e4d91 334588 libdevel extra libstdc++2.10-dbg_2.95.4-25_mips.deb
 c94c7afeeb8824d826f1d30ddfee1be7 347582 libs optional libg++2.8.1.3-glibc2.2_2.95.4-25_mips.deb
 67963cfe8d8f3ae26b15f198de51ceb9 355682 libdevel extra libg++2.8.1.3-dev_2.95.4-25_mips.deb
 10dfbdb084db0aba898e8d6134d40509 314978 libdevel extra libg++2.8.1.3-dbg_2.95.4-25_mips.deb
 3dd45caf88b1595da5ac9c16713a68d4 1696932 devel optional gpc-2.95_2.95.4-25_mips.deb

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.3 (GNU/Linux)

iD8DBQFEhStrXNuq0tFCNaARAgvlAJ9GTeDlY4lnScBZT0so1Kp86rJf5QCg2ZUn
BSAZ9wTVqykod8Yzc7oaOPg=
=jmH6
-----END PGP SIGNATURE-----


--- End Message ---

Reply to: