[Glibc-bsd-commits] r1842 - trunk/web/patches
Aurelien Jarno
aurel32 at alioth.debian.org
Thu Jan 4 22:00:16 CET 2007
Author: aurel32
Date: 2007-01-04 22:00:16 +0100 (Thu, 04 Jan 2007)
New Revision: 1842
Modified:
trunk/web/patches/gcc_amd64.diff
Log:
Update for gcc-4.1, add biarch support
Modified: trunk/web/patches/gcc_amd64.diff
===================================================================
--- trunk/web/patches/gcc_amd64.diff 2007-01-04 20:51:17 UTC (rev 1841)
+++ trunk/web/patches/gcc_amd64.diff 2007-01-04 21:00:16 UTC (rev 1842)
@@ -1,106 +1,596 @@
-Author: rmh
+Author: rmh, aurel32
Status: DO NOT SEND YET, see patches/upstream-only/gcc.diff
-diff -Nur gcc-4.0.2.old/gcc/config/i386/kfreebsd-gnu.h gcc-4.0.2/gcc/config/i386/kfreebsd-gnu.h
---- gcc-4.0.2.old/gcc/config/i386/kfreebsd-gnu.h 2004-06-24 04:56:23.000000000 +0200
-+++ gcc-4.0.2/gcc/config/i386/kfreebsd-gnu.h 2002-02-22 18:06:42.369039552 +0100
-@@ -1,5 +1,5 @@
--/* Definitions for Intel 386 running kFreeBSD-based GNU systems with ELF format
-- Copyright (C) 2004
-+/* Definitions for Intel 386 (and AMD x86-64) running kFreeBSD-based GNU systems with ELF format
-+ Copyright (C) 2004, 2006
- Free Software Foundation, Inc.
- Contributed by Robert Millan.
+diff -u gcc-4.1-4.1.1ds2/debian/rules.conf gcc-4.1-4.1.1ds2/debian/rules.conf
+--- gcc-4.1-4.1.1ds2/debian/rules.conf
++++ gcc-4.1-4.1.1ds2/debian/rules.conf
+@@ -83,6 +83,10 @@
+ LIBC_BIARCH_DEP := libc6-powerpc$(LS) (>= $(libc_ver))
+ LIBC_BIARCH_DEV_DEP := libc6-dev-powerpc$(LS) (>= $(libc_ver))
+ endif
++ ifeq ($(DEB_TARGET_ARCH),kfreebsd-amd64)
++ LIBC_BIARCH_DEV_DEP := libc0.1-dev-i386$(LS) (>= $(libc_ver))
++ LIBC_BIARCH_DEP := libc0.1-i386$(LS) (>= $(libc_ver))
++ endif
+ LIBCXX_BIARCH_DEP = lib32stdc++$(CXX_SONAME)$(LS)
+ endif
-@@ -22,5 +22,11 @@
+@@ -92,7 +96,7 @@
+ endif
- #undef LINK_EMULATION
- #define LINK_EMULATION "elf_i386_fbsd"
-+
-+#ifdef LINK_EMULATION64
-+#undef LINK_EMULATION64
-+#define LINK_EMULATION64 "elf_x86_64_fbsd"
-+#endif
-+
- #undef REG_NAME
- #define REG_NAME(reg) sc_ ## reg
-diff -Nur gcc-4.0.2.old/gcc/config/i386/linux64.h gcc-4.0.2/gcc/config/i386/linux64.h
---- gcc-4.0.2.old/gcc/config/i386/linux64.h 2004-11-27 23:29:34.000000000 +0100
-+++ gcc-4.0.2/gcc/config/i386/linux64.h 2002-02-22 18:07:41.220092832 +0100
-@@ -1,5 +1,5 @@
- /* Definitions for AMD x86-64 running Linux-based GNU systems with ELF format.
-- Copyright (C) 2001, 2002, 2004 Free Software Foundation, Inc.
-+ Copyright (C) 2001, 2002, 2004, 2006 Free Software Foundation, Inc.
- Contributed by Jan Hubicka <jh at suse.cz>, based on linux.h.
+ ifndef DEB_CROSS
+-LIBC_BUILD_DEP := libc6.1-dev (>= $(libc_ver)) [alpha ia64] | libc0.3-dev (>= $(libc_ver)) [hurd-i386] | libc0.1-dev (>= $(libc_ver)) [kfreebsd-i386 knetbsd-gnu] | libc12-dev (>= $(libc_ver)) [netbsd-elf-gnu] | libc6-dev (>= $(libc_ver))
++LIBC_BUILD_DEP := libc6.1-dev (>= $(libc_ver)) [alpha ia64] | libc0.3-dev (>= $(libc_ver)) [hurd-i386] | libc0.1-dev (>= $(libc_ver)) [kfreebsd-i386 kfreebsd-amd64 knetbsd-gnu] | libc12-dev (>= $(libc_ver)) [netbsd-elf-gnu] | libc6-dev (>= $(libc_ver))
- This file is part of GCC.
-@@ -54,14 +54,27 @@
- When the -shared link option is used a final link is not being
- done. */
+ ifneq (,$(java_awt_peers))
+ JAVA_BUILD_DEP := libasound2-dev [java_no_archs !hurd-i386 !kfreebsd-i386 !kfreebsd-amd64],
+@@ -148,7 +152,7 @@
-+/* These macros may be overridden in i386/k*bsd-gnu.h. */
-+#define LINK_EMULATION "elf_i386"
-+#define LINK_EMULATION64 "elf_x86_64"
-+#define DYNAMIC_LINKER "/lib/ld-linux.so.2"
-+#define DYNAMIC_LINKER64 "/lib64/ld-linux-x86-64.so.2"
-+
-+#undef SUBTARGET_EXTRA_SPECS
-+#define SUBTARGET_EXTRA_SPECS \
-+ { "link_emulation", LINK_EMULATION },\
-+ { "link_emulation64", LINK_EMULATION64 },\
-+ { "dynamic_linker", DYNAMIC_LINKER },\
-+ { "dynamic_linker64", DYNAMIC_LINKER64 }
-+
- #undef LINK_SPEC
--#define LINK_SPEC "%{!m32:-m elf_x86_64} %{m32:-m elf_i386} \
-+#define LINK_SPEC "%{!m32:-m %(link_emulation64)} %{m32:-m %(link_emulation)} \
- %{shared:-shared} \
- %{!shared: \
- %{!static: \
- %{rdynamic:-export-dynamic} \
-- %{m32:%{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \
-- %{!m32:%{!dynamic-linker:-dynamic-linker /lib64/ld-linux-x86-64.so.2}}} \
-+ %{m32:%{!dynamic-linker:-dynamic-linker %(dynamic_linker)}} \
-+ %{!m32:%{!dynamic-linker:-dynamic-linker %(dynamic_linker64)}}} \
- %{static:-static}}"
+ #PASCAL_BUILD_DEP := libncurses5-dev [pascal_no_archs], tetex-bin [pascal_no_archs], libgmp3-dev [pascal_no_archs], help2man [pascal_no_archs],
- #define MULTILIB_DEFAULTS { "m64" }
-diff -Nur gcc-4.0.2.old/gcc/config/kfreebsd-gnu.h gcc-4.0.2/gcc/config/kfreebsd-gnu.h
---- gcc-4.0.2.old/gcc/config/kfreebsd-gnu.h 2004-06-24 04:56:23.000000000 +0200
-+++ gcc-4.0.2/gcc/config/kfreebsd-gnu.h 2002-02-22 18:01:48.768673592 +0100
-@@ -34,3 +34,8 @@
+-LIBC_BIARCH_BUILD_DEP = libc6-dev-amd64 [i386], libc6-dev-sparc64 [sparc], libc6-dev-s390x [s390], libc6-dev-i386 [amd64], libc6-dev-powerpc [ppc64], libc6-dev-ppc64 [powerpc], lib32gcc1 [amd64 ppc64], lib64gcc1 [i386 powerpc sparc s390], lib64z1-dev [i386 powerpc sparc s390], lib32z1-dev [amd64 ppc64],
++LIBC_BIARCH_BUILD_DEP = libc6-dev-amd64 [i386], libc6-dev-sparc64 [sparc], libc6-dev-s390x [s390], libc6-dev-i386 [amd64], libc6-dev-powerpc [ppc64], libc6-dev-ppc64 [powerpc], libc0.1-dev-i386 [kfreebsd-amd64], lib32gcc1 [amd64 ppc64 kfreebsd-amd64], lib64gcc1 [i386 powerpc sparc s390], lib64z1-dev [i386 powerpc sparc s390], lib32z1-dev [amd64 ppc64 kfreebsd-amd64],
- #undef DYNAMIC_LINKER
- #define DYNAMIC_LINKER "/lib/ld.so.1"
+ #ifeq ($(PKGSOURCE),gcc-snapshot)
+ # LIBC_BIARCH_BUILD_DEP =
+@@ -405,15 +409,15 @@
+ else
+ # avoid it ...
+ ada_no_archs := $(strip $(foreach cpu,$(ada_no_cpus),!$(cpu)) \
+- !knetbsd-i386 !netbsd-i386 !hurd-i386)
++ !kfreebsd-amd64 !knetbsd-i386 !netbsd-i386 !hurd-i386)
+ java_no_archs := $(strip $(foreach cpu,$(java_no_cpus),!$(cpu)) \
+- !knetbsd-i386 !netbsd-i386)
++ !kfreebsd-amd64 !knetbsd-i386 !netbsd-i386)
+ pascal_no_archs := $(strip $(foreach cpu,$(pascal_no_cpus),!$(cpu)) \
+ !netbsd-i386)
+ fortran_no_archs:= $(strip $(foreach cpu,$(fortran_no_cpus),!$(cpu)) \
+ !avr)
+ libgc_no_archs := $(strip $(foreach cpu,$(libgc_no_cpus),!$(cpu)) \
+- !knetbsd-i386)
++ !kfreebsd-amd64 !knetbsd-i386)
+ check_no_archs := $(strip $(foreach cpu,$(check_no_cpus),!$(cpu)) \
+ !hurd-i386)
+ locale_no_archs := $(strip $(foreach cpu,$(locale_no_cpus),!$(cpu)) \
+diff -u gcc-4.1-4.1.1ds2/debian/rules.patch gcc-4.1-4.1.1ds2/debian/rules.patch
+--- gcc-4.1-4.1.1ds2/debian/rules.patch
++++ gcc-4.1-4.1.1ds2/debian/rules.patch
+@@ -169,6 +169,7 @@
+ endif
+
+ ifeq ($(DEB_TARGET_ARCH_OS),kfreebsd)
++ debian_patches += kbsd-gnu
+ debian_patches += kbsd-gnu-ada
+ debian_patches += kbsd-gnu-java
+ endif
+@@ -240,6 +241,9 @@
+ # FIXME: needed for 4.1?
+ debian_patches += ppc64-biarch ppc64-ada
+ endif
++ ifeq ($(DEB_TARGET_ARCH),kfreebsd-amd64)
++ debian_patches += amd64-biarch
++ endif
+ ifneq ($(with_32bit_check),yes)
+ debian_patches += disable-configure-run-check
+ endif
+diff -u gcc-4.1-4.1.1ds2/debian/control gcc-4.1-4.1.1ds2/debian/control
+--- gcc-4.1-4.1.1ds2/debian/control
++++ gcc-4.1-4.1.1ds2/debian/control
+@@ -4,7 +4,7 @@
+ Maintainer: Debian GCC Maintainers <debian-gcc at lists.debian.org>
+ Uploaders: Matthias Klose <doko at debian.org>
+ Standards-Version: 3.7.2
+-Build-Depends: dpkg-dev (>= 1.13.9), libc6.1-dev (>= 2.3.6-7) [alpha ia64] | libc0.3-dev (>= 2.3.6-7) [hurd-i386] | libc0.1-dev (>= 2.3.6-7) [kfreebsd-i386 knetbsd-gnu] | libc12-dev (>= 2.3.6-7) [netbsd-elf-gnu] | libc6-dev (>= 2.3.6-7), libc6-dev-amd64 [i386], libc6-dev-sparc64 [sparc], libc6-dev-s390x [s390], libc6-dev-i386 [amd64], libc6-dev-powerpc [ppc64], libc6-dev-ppc64 [powerpc], lib32gcc1 [amd64 ppc64], lib64gcc1 [i386 powerpc sparc s390], lib64z1-dev [i386 powerpc sparc s390], lib32z1-dev [amd64 ppc64], libunwind7-dev (>= 0.98.5-6) [ia64], libatomic-ops-dev [ia64], m4, autoconf, autoconf2.13, automake1.9, libtool, autogen, gawk, dejagnu (>= 1.4.3) [!hurd-i386], expect-tcl8.3 [!hurd-i386], bzip2, binutils (>= 2.16.1cvs20051214) | binutils-multiarch (>= 2.16.1cvs20051214), binutils-hppa64 (>= 2.16.1cvs20051214) [hppa], debhelper (>= 5.0), gperf (>= 3.0.1), bison (>= 1:2.3), flex, gettext, texinfo (>= 4.3), zlib1g-dev, libmpfr-dev [!avr], locales [!hurd-i386 !knetbsd-i386 !netbsd-i386], procps [!hurd-i386], sharutils, realpath (>= 1.9.12), chrpath, lsb-release, make (>= 3.81)
++Build-Depends: dpkg-dev (>= 1.13.9), libc6.1-dev (>= 2.3.6-7) [alpha ia64] | libc0.3-dev (>= 2.3.6-7) [hurd-i386] | libc0.1-dev (>= 2.3.6-7) [kfreebsd-i386 kfreebsd-amd64 knetbsd-gnu] | libc12-dev (>= 2.3.6-7) [netbsd-elf-gnu] | libc6-dev (>= 2.3.6-7), libc6-dev-amd64 [i386], libc6-dev-sparc64 [sparc], libc6-dev-s390x [s390], libc6-dev-i386 [amd64], libc6-dev-powerpc [ppc64], libc6-dev-ppc64 [powerpc], libc0.1-dev-i386 [kfreebsd-amd64], lib32gcc1 [amd64 ppc64 kfreebsd-amd64], lib64gcc1 [i386 powerpc sparc s390], lib64z1-dev [i386 powerpc sparc s390], lib32z1-dev [amd64 ppc64 kfreebsd-amd64], libunwind7-dev (>= 0.98.5-6) [ia64], libatomic-ops-dev [ia64], m4, autoconf, autoconf2.13, automake1.9, libtool, autogen, gawk, dejagnu (>= 1.4.3) [!hurd-i386], expect-tcl8.3 [!hurd-i386], bzip2, binutils (>= 2.16.1cvs20051214) | binutils-multiarch (>= 2.16.1cvs20051214), binutils-hppa64 (>= 2.16.1cvs20051214) [hppa], debhelper (>= 5.0), gperf (>= 3.0.1), bison (>= 1:2.3), flex, gettext, texinfo (>= 4.3), zlib1g-dev, libmpfr-dev [!avr], locales [!hurd-i386 !knetbsd-i386 !netbsd-i386], procps [!hurd-i386], sharutils, realpath (>= 1.9.12), chrpath, lsb-release, make (>= 3.81)
+ Build-Depends-Indep: doxygen (>= 1.4.2), graphviz (>= 2.2), gsfonts-x11
+
+ Package: gcc-4.1-base
+@@ -57,7 +57,7 @@
+ special needs for some languages.
+
+ Package: lib32gcc1
+-Architecture: amd64 ppc64
++Architecture: amd64 ppc64 kfreebsd-amd64
+ Section: libs
+ Priority: optional
+ Depends: gcc-4.1-base (= ${gcc:Version}), ${dep:libcbiarch}
+@@ -136,7 +136,7 @@
+ dereferencing operations.
+
+ Package: lib32mudflap0
+-Architecture: amd64 ppc64
++Architecture: amd64 ppc64 kfreebsd-amd64
+ Section: libs
+ Priority: optional
+ Depends: gcc-4.1-base (= ${gcc:Version}), ${dep:libcbiarch}, ${shlibs:Depends}
+@@ -178,7 +178,7 @@
+ stack variables to avoid pointer corruption.
+
+ Package: lib32ssp0
+-Architecture: amd64 ppc64
++Architecture: amd64 ppc64 kfreebsd-amd64
+ Section: libs
+ Priority: optional
+ Depends: gcc-4.1-base (= ${gcc:Version}), ${dep:libcbiarch}, ${shlibs:Depends}
+@@ -249,7 +249,7 @@
+
+ Package: lib32objc1
+ Section: libs
+-Architecture: amd64 ppc64
++Architecture: amd64 ppc64 kfreebsd-amd64
+ Priority: optional
+ Depends: gcc-4.1-base (>= ${gcc:Version}), ${dep:libcbiarch}, ${shlibs:Depends}
+ Description: Runtime library for GNU Objective-C applications (32bit)
+@@ -296,7 +296,7 @@
+
+ Package: lib32gfortran1
+ Section: libs
+-Architecture: amd64 ppc64
++Architecture: amd64 ppc64 kfreebsd-amd64
+ Priority: optional
+ Depends: gcc-4.1-base (= ${gcc:Version}), ${dep:libcbiarch}, ${shlibs:Depends}
+ Description: Runtime library for GNU Fortran applications (32bit)
+@@ -325,7 +325,7 @@
+
+ Package: lib32ffi4
+ Section: libs
+-Architecture: amd64 ppc64
++Architecture: amd64 ppc64 kfreebsd-amd64
+ Priority: optional
+ Depends: gcc-4.1-base (= ${gcc:Version}), ${dep:libcbiarch}, ${shlibs:Depends}
+ Replaces: libffi4 (<< 4.1)
+@@ -376,7 +376,7 @@
+ in g++-3.0.
+
+ Package: lib32stdc++6
+-Architecture: amd64 ppc64
++Architecture: amd64 ppc64 kfreebsd-amd64
+ Section: libs
+ Priority: optional
+ Depends: gcc-4.1-base (= ${gcc:Version}), lib32gcc1
+@@ -436,7 +436,7 @@
+ debugging symbols.
+
+ Package: lib32stdc++6-4.1-dbg
+-Architecture: amd64 ppc64
++Architecture: amd64 ppc64 kfreebsd-amd64
+ Section: libdevel
+ Priority: extra
+ Depends: gcc-4.1-base (= ${gcc:Version}), lib32stdc++6 (>= ${gcc:Version}), libstdc++6-4.1-dev (= ${gcc:Version})
+diff -u gcc-4.1-4.1.1ds2/debian/rules.defs gcc-4.1-4.1.1ds2/debian/rules.defs
+--- gcc-4.1-4.1.1ds2/debian/rules.defs
++++ gcc-4.1-4.1.1ds2/debian/rules.defs
+@@ -833,7 +833,7 @@
+ export TARGET64_MACHINE
+ endif
+
+-biarch32_archs := /amd64/ppc64/
++biarch32_archs := /amd64/ppc64/kfreebsd-amd64/
+ ifeq (biarch, $(findstring biarch,$(WITHOUT_LANG)))
+ biarch32_archs :=
+ endif
+diff -u gcc-4.1-4.1.1ds2/debian/multiarch.inc gcc-4.1-4.1.1ds2/debian/multiarch.inc
+--- gcc-4.1-4.1.1ds2/debian/multiarch.inc
++++ gcc-4.1-4.1.1ds2/debian/multiarch.inc
+@@ -34,0 +35,6 @@
+
-+#ifdef DYNAMIC_LINKER64
-+#undef DYNAMIC_LINKER64
-+#define DYNAMIC_LINKER64 "/lib/ld-kfreebsd-x86-64.so.1"
++#if defined(__x86_64_kfreebsd_gnu__)
++ { "32", "i486-kfreebsd_gnu"},
+#endif
-diff -Nur gcc-4.0.2.old/gcc/config/knetbsd-gnu.h gcc-4.0.2/gcc/config/knetbsd-gnu.h
---- gcc-4.0.2.old/gcc/config/knetbsd-gnu.h 2004-06-24 04:56:23.000000000 +0200
-+++ gcc-4.0.2/gcc/config/knetbsd-gnu.h 2002-02-22 18:02:05.581117712 +0100
-@@ -34,3 +34,8 @@
++
++
+diff -u gcc-4.1-4.1.1ds2/debian/patches/kbsd-gnu.dpatch gcc-4.1-4.1.1ds2/debian/patches/kbsd-gnu.dpatch
+--- gcc-4.1-4.1.1ds2/debian/patches/kbsd-gnu.dpatch
++++ gcc-4.1-4.1.1ds2/debian/patches/kbsd-gnu.dpatch
+@@ -1,8 +1,9 @@
+ #! /bin/sh -e
- #undef DYNAMIC_LINKER
- #define DYNAMIC_LINKER "/lib/ld.so.1"
+ # DP: GNU/k*BSD support
+-# Author: Robert Millan <robertmh at gnu.org>
+-# Status: pending
++# Author: rmh
++# Status: DO NOT SEND YET, see patches/upstream-only/gcc.diff
+
-+#ifdef DYNAMIC_LINKER64
-+#undef DYNAMIC_LINKER64
-+#define DYNAMIC_LINKER64 "/lib/ld-knetbsd-x86-64.so.1"
-+#endif
-diff -Nur gcc-4.0.2.old/gcc/config.gcc gcc-4.0.2/gcc/config.gcc
---- gcc-4.0.2.old/gcc/config.gcc 2005-08-09 12:57:04.000000000 +0200
-+++ gcc-4.0.2/gcc/config.gcc 2002-02-22 18:04:37.990947896 +0100
-@@ -1012,8 +1012,8 @@
- tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h svr4.h linux.h \
- i386/x86-64.h i386/linux64.h"
- case ${target} in
-- x86_64-*-kfreebsd*-gnu) tm_file="${tm_file} kfreebsd-gnu.h" ;;
-- x86_64-*-knetbsd*-gnu) tm_file="${tm_file} knetbsd-gnu.h" ;;
-+ x86_64-*-kfreebsd*-gnu) tm_file="${tm_file} kfreebsd-gnu.h i386/kfreebsd-gnu.h" ;;
-+ x86_64-*-knetbsd*-gnu) tm_file="${tm_file} knetbsd-gnu.h i386/knetbsd-gnu.h" ;;
- esac
- tmake_file="${tmake_file} i386/t-linux64"
- ;;
+
+ dir=
+ if [ $# -eq 3 -a "$2" = '-d' ]; then
+@@ -30,301 +31,103 @@
+-diff -Nur gcc-20040724.old/boehm-gc/configure gcc-20040724/boehm-gc/configure
+---- gcc-20040724.old/boehm-gc/configure 2004-06-17 21:32:41.000000000 +0200
+-+++ gcc-20040724/boehm-gc/configure 2004-08-06 01:53:05.000000000 +0200
+-@@ -5337,6 +5337,12 @@
+- _ACEOF
+-
+- ;;
+-+ *-*-linux* | *-*-gnu* | *-*-k*bsd*-gnu)
+-+ cat >>confdefs.h <<\_ACEOF
+-+#define _REENTRANT 1
+-+_ACEOF
+-+
+-+ ;;
+- *-*-aix*)
+- cat >>confdefs.h <<\_ACEOF
+- #define GC_AIX_THREADS 1
+-diff -Nur gcc-20040724.old/boehm-gc/configure.ac gcc-20040724/boehm-gc/configure.ac
+---- gcc-20040724.old/boehm-gc/configure.ac 2004-06-16 09:34:42.000000000 +0200
+-+++ gcc-20040724/boehm-gc/configure.ac 2004-08-06 01:53:05.000000000 +0200
+-@@ -138,6 +138,9 @@
+- AC_DEFINE(GC_LINUX_THREADS)
+- AC_DEFINE(_REENTRANT)
+- ;;
+-+ *-*-gnu* | *-*-k*bsd*-gnu)
+-+ AC_DEFINE(_REENTRANT)
+-+ ;;
+- *-*-aix*)
+- AC_DEFINE(GC_AIX_THREADS)
+- AC_DEFINE(_REENTRANT)
+-diff -Nur gcc-20040724.old/boehm-gc/dbg_mlc.c gcc-20040724/boehm-gc/dbg_mlc.c
+---- gcc-20040724.old/boehm-gc/dbg_mlc.c 2003-07-28 06:18:20.000000000 +0200
+-+++ gcc-20040724/boehm-gc/dbg_mlc.c 2004-08-06 01:53:05.000000000 +0200
+-@@ -59,7 +59,7 @@
+-
+- # include <stdlib.h>
+-
+--# if defined(LINUX) || defined(SUNOS4) || defined(SUNOS5) \
+-+# if defined(LINUX) || defined(GLIBC) || defined(SUNOS4) || defined(SUNOS5) \
+- || defined(HPUX) || defined(IRIX5) || defined(OSF1)
+- # define RANDOM() random()
+- # else
+-diff -Nur gcc-20040724.old/boehm-gc/dyn_load.c gcc-20040724/boehm-gc/dyn_load.c
+---- gcc-20040724.old/boehm-gc/dyn_load.c 2003-07-30 19:42:28.000000000 +0200
+-+++ gcc-20040724/boehm-gc/dyn_load.c 2004-08-06 01:53:05.000000000 +0200
+-@@ -26,7 +26,8 @@
+- * None of this is safe with dlclose and incremental collection.
+- * But then not much of anything is safe in the presence of dlclose.
+- */
+--#if defined(__linux__) && !defined(_GNU_SOURCE)
+-+#if (defined(__linux__) || defined(__GNU__) || defined(__GLIBC__)) \
+-+ && !defined(_GNU_SOURCE)
+- /* Can't test LINUX, since this must be define before other includes */
+- # define _GNU_SOURCE
+- #endif
+-@@ -56,7 +57,7 @@
+- !(defined(ALPHA) && defined(OSF1)) && \
+- !defined(HPUX) && !(defined(LINUX) && defined(__ELF__)) && \
+- !defined(RS6000) && !defined(SCO_ELF) && !defined(DGUX) && \
+-- !(defined(FREEBSD) && defined(__ELF__)) && \
+-+ !(defined(KFREEBSD) && defined(__ELF__)) && \
+- !(defined(NETBSD) && defined(__ELF__)) && !defined(HURD) && \
+- !defined(DARWIN)
+- --> We only know how to find data segments of dynamic libraries for the
+-@@ -81,7 +82,7 @@
+- #endif
+-
+- #if defined(LINUX) && defined(__ELF__) || defined(SCO_ELF) || \
+-- (defined(FREEBSD) && defined(__ELF__)) || defined(DGUX) || \
+-+ (defined(KFREEBSD) && defined(__ELF__)) || defined(DGUX) || \
+- (defined(NETBSD) && defined(__ELF__)) || defined(HURD)
+- # include <stddef.h>
+- # include <elf.h>
+-@@ -265,7 +266,7 @@
+- # endif /* SUNOS */
+-
+- #if defined(LINUX) && defined(__ELF__) || defined(SCO_ELF) || \
+-- (defined(FREEBSD) && defined(__ELF__)) || defined(DGUX) || \
+-+ (defined(KFREEBSD) && defined(__ELF__)) || defined(DGUX) || \
+- (defined(NETBSD) && defined(__ELF__)) || defined(HURD)
+-
++diff -Nur gcc-4.0.2.old/gcc/config/i386/kfreebsd-gnu.h gcc-4.0.2/gcc/config/i386/kfreebsd-gnu.h
++--- gcc-4.0.2.old/gcc/config/i386/kfreebsd-gnu.h 2004-06-24 04:56:23.000000000 +0200
+++++ gcc-4.0.2/gcc/config/i386/kfreebsd-gnu.h 2002-02-22 18:06:42.369039552 +0100
++@@ -1,5 +1,5 @@
++-/* Definitions for Intel 386 running kFreeBSD-based GNU systems with ELF format
++- Copyright (C) 2004
+++/* Definitions for Intel 386 (and AMD x86-64) running kFreeBSD-based GNU systems with ELF format
+++ Copyright (C) 2004, 2006
++ Free Software Foundation, Inc.
++ Contributed by Robert Millan.
+
+-@@ -360,7 +361,7 @@
+- /* For glibc 2.2.4+. Unfortunately, it doesn't work for older */
+- /* versions. Thanks to Jakub Jelinek for most of the code. */
++@@ -22,5 +22,11 @@
+
+--# if defined(LINUX) /* Are others OK here, too? */ \
+-+# if defined(GLIBC) \
+- && (__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2) \
+- || (__GLIBC__ == 2 && __GLIBC_MINOR__ == 2 && defined(DT_CONFIG)))
+-
+-@@ -434,7 +435,7 @@
+-
+- #define HAVE_REGISTER_MAIN_STATIC_DATA
+-
+--# else /* !LINUX || version(glibc) < 2.2.4 */
+-+# else /* !GLIBC || version(glibc) < 2.2.4 */
+-
+- /* Dynamic loading code for Linux running ELF. Somewhat tested on
+- * Linux/x86, untested but hopefully should work on Linux/Alpha.
+-diff -Nur gcc-20040724.old/boehm-gc/include/gc.h gcc-20040724/boehm-gc/include/gc.h
+---- gcc-20040724.old/boehm-gc/include/gc.h 2003-07-31 06:52:36.000000000 +0200
+-+++ gcc-20040724/boehm-gc/include/gc.h 2004-08-06 01:53:05.000000000 +0200
+-@@ -466,7 +466,7 @@
+- # define GC_RETURN_ADDR (GC_word)__return_address
+- #endif
+-
+--#ifdef __linux__
+-+#if defined(__linux__) || defined(__GNU__) || defined(__GLIBC__)
+- # include <features.h>
+- # if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1 || __GLIBC__ > 2) \
+- && !defined(__ia64__)
+-@@ -490,7 +490,8 @@
+- /* This may also be desirable if it is possible but expensive to */
+- /* retrieve the call chain. */
+- #if (defined(__linux__) || defined(__NetBSD__) || defined(__OpenBSD__) \
+-- || defined(__FreeBSD__)) & !defined(GC_CAN_SAVE_CALL_STACKS)
+-+ || defined(__FreeBSD__) || defined(__FreeBSD_kernel__) \
+-+ ) & !defined(GC_CAN_SAVE_CALL_STACKS)
+- # define GC_ADD_CALLER
+- # if __GNUC__ >= 3 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95)
+- /* gcc knows how to retrieve return address, but we don't know */
+-diff -Nur gcc-20040724.old/boehm-gc/include/private/gcconfig.h gcc-20040724/boehm-gc/include/private/gcconfig.h
+---- gcc-20040724.old/boehm-gc/include/private/gcconfig.h 2004-04-06 20:05:05.000000000 +0200
+-+++ gcc-20040724/boehm-gc/include/private/gcconfig.h 2004-08-06 01:53:05.000000000 +0200
+-@@ -44,6 +44,14 @@
+- # endif
+- # endif
+-
+-+/* And one for Glibc: */
+-+#if defined(LINUX) || defined(__GNU__) || defined(__GLIBC__)
+-+# include <features.h>
+-+#endif
+-+#ifdef __GLIBC__
+-+# define GLIBC
++ #undef LINK_EMULATION
++ #define LINK_EMULATION "elf_i386_fbsd"
+++
+++#ifdef LINK_EMULATION64
+++#undef LINK_EMULATION64
+++#define LINK_EMULATION64 "elf_x86_64_fbsd"
+ +#endif
+ +
+- /* And one for NetBSD: */
+- # if defined(__NetBSD__)
+- # define NETBSD
+-@@ -58,6 +66,9 @@
+- # if defined(__FreeBSD__)
+- # define FREEBSD
+- # endif
+-+# if defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
+-+# define KFREEBSD
+-+# endif
+-
+- /* Determine the machine type: */
+- # if defined(__arm__) || defined(__thumb__)
+-@@ -299,7 +310,7 @@
+- # define OPENBSD
+- # define mach_type_known
+- # endif
+--# if defined(FREEBSD) && (defined(i386) || defined(__i386__))
+-+# if defined(KFREEBSD) && (defined(i386) || defined(__i386__))
+- # define I386
+- # define mach_type_known
+- # endif
+-@@ -1162,13 +1173,25 @@
+- # endif
+- # define SIG_SUSPEND SIGUSR1
+- # define SIG_THR_RESTART SIGUSR2
+-+ extern char etext[];
+-+ extern char * GC_FreeBSDGetDataStart();
+-+# define DATASTART GC_FreeBSDGetDataStart(0x1000, &etext)
+-+# endif
+-+# if defined(GLIBC) && defined(KFREEBSD)
+-+# define OS_TYPE "GNU/kFreeBSD"
+-+# if !defined(GC_LINUX_THREADS) && !defined(REDIRECT_MALLOC)
+-+# define MPROTECT_VDB
+-+# endif
+-+# define SIG_SUSPEND 57 /* arbitrary signal number <= 128 */
+-+# define SIG_THR_RESTART 58 /* arbitrary signal number <= 128 */
+-+# define SEARCH_FOR_DATA_START
+-+# define DATAEND (sbrk (0))
+-+# endif
+-+# ifdef KFREEBSD
+- # define FREEBSD_STACKBOTTOM
+- # ifdef __ELF__
+- # define DYNAMIC_LOADING
+- # endif
+-- extern char etext[];
+-- extern char * GC_FreeBSDGetDataStart();
+--# define DATASTART GC_FreeBSDGetDataStart(0x1000, &etext)
+- # endif
+- # ifdef NETBSD
+- # define OS_TYPE "NETBSD"
+-diff -Nur gcc-20040724.old/boehm-gc/os_dep.c gcc-20040724/boehm-gc/os_dep.c
+---- gcc-20040724.old/boehm-gc/os_dep.c 2004-07-07 06:31:15.000000000 +0200
+-+++ gcc-20040724/boehm-gc/os_dep.c 2004-08-06 01:53:05.000000000 +0200
+-@@ -80,7 +80,7 @@
+- # define NEED_FIND_LIMIT
+- # endif
+-
+--#if defined(FREEBSD) && defined(I386)
+-+#if defined(KFREEBSD) && defined(I386)
+- # include <machine/trap.h>
+- # if !defined(PCR)
+- # define NEED_FIND_LIMIT
+-@@ -121,7 +121,7 @@
+- # include <fcntl.h>
+- #endif
+-
+--#if defined(SUNOS5SIGS) || defined (HURD) || defined(LINUX)
+-+#if defined(SUNOS5SIGS) || defined(LINUX) || defined(GLIBC)
+- # ifdef SUNOS5SIGS
+- # include <sys/siginfo.h>
+- # endif
+-@@ -311,7 +311,7 @@
+- /* for recent Linux versions. This seems to be the easiest way to */
+- /* cover all versions. */
+-
+--# ifdef LINUX
+-+# if defined(LINUX) || defined(GLIBC)
+- /* Some Linux distributions arrange to define __data_start. Some */
+- /* define data_start as a weak symbol. The latter is technically */
+- /* broken, since the user program may define data_start, in which */
+-@@ -321,7 +321,7 @@
+- extern int __data_start[];
+- # pragma weak data_start
+- extern int data_start[];
+--# endif /* LINUX */
+-+# endif /* LINUX || GLIBC */
+- extern int _end[];
+-
+- ptr_t GC_data_start;
+-@@ -330,7 +330,7 @@
+- {
+- extern ptr_t GC_find_limit();
+-
+--# ifdef LINUX
+-+# if defined(LINUX) || defined(GLIBC)
+- /* Try the easy approaches first: */
+- if ((ptr_t)__data_start != 0) {
+- GC_data_start = (ptr_t)(__data_start);
+-@@ -340,7 +340,7 @@
+- GC_data_start = (ptr_t)(data_start);
+- return;
+- }
+--# endif /* LINUX */
+-+# endif /* LINUX || GLIBC */
+- GC_data_start = GC_find_limit((ptr_t)(_end), FALSE);
+- }
+- #endif
+-@@ -2175,13 +2175,13 @@
+- #endif /* SUNOS4 || FREEBSD */
+-
+- #if defined(SUNOS5SIGS) || defined(OSF1) || defined(LINUX) \
+-- || defined(HURD)
+-+ || defined(GLIBC)
+- # ifdef __STDC__
+- typedef void (* SIG_PF)(int);
+- # else
+- typedef void (* SIG_PF)();
+- # endif
+--#endif /* SUNOS5SIGS || OSF1 || LINUX || HURD */
+-+#endif /* SUNOS5SIGS || OSF1 || LINUX || GLIBC */
+-
+- #if defined(MSWIN32)
+- typedef LPTOP_LEVEL_EXCEPTION_FILTER SIG_PF;
+-@@ -2301,7 +2301,7 @@
+-
+- /*ARGSUSED*/
+- #if !defined(DARWIN)
+--# if defined (SUNOS4) || defined(FREEBSD)
+-+# if defined (SUNOS4) || defined(KFREEBSD)
+- void GC_write_fault_handler(sig, code, scp, addr)
+- int sig, code;
+- struct sigcontext *scp;
+-@@ -2312,11 +2312,11 @@
+- || (FC_CODE(code) == FC_OBJERR \
+- && FC_ERRNO(code) == FC_PROT))
+- # endif
+--# ifdef FREEBSD
+-+# ifdef KFREEBSD
+- # define SIG_OK (sig == SIGBUS)
+- # define CODE_OK (code == BUS_PAGE_FAULT)
+- # endif
+--# endif /* SUNOS4 || FREEBSD */
+-+# endif /* SUNOS4 || KFREEBSD */
+-
+- # if defined(IRIX5) || defined(OSF1) || defined(HURD)
+- # include <errno.h>
+-@@ -3831,7 +3831,7 @@
+- /* I suspect the following works for most X86 *nix variants, so */
+- /* long as the frame pointer is explicitly stored. In the case of gcc, */
+- /* compiler flags (e.g. -fomit-frame-pointer) determine whether it is. */
+--#if defined(I386) && defined(LINUX) && defined(SAVE_CALL_CHAIN)
+-+#if defined(I386) && (defined(LINUX) || defined(GLIBC)) && defined(SAVE_CALL_CHAIN)
+- # include <features.h>
+-
+- struct frame {
+-@@ -3842,7 +3842,7 @@
+- #endif
++ #undef REG_NAME
++ #define REG_NAME(reg) sc_ ## reg
++diff -Nur gcc-4.0.2.old/gcc/config/i386/linux64.h gcc-4.0.2/gcc/config/i386/linux64.h
++--- gcc-4.0.2.old/gcc/config/i386/linux64.h 2004-11-27 23:29:34.000000000 +0100
+++++ gcc-4.0.2/gcc/config/i386/linux64.h 2002-02-22 18:07:41.220092832 +0100
++@@ -1,5 +1,5 @@
++ /* Definitions for AMD x86-64 running Linux-based GNU systems with ELF format.
++- Copyright (C) 2001, 2002, 2004 Free Software Foundation, Inc.
+++ Copyright (C) 2001, 2002, 2004, 2006 Free Software Foundation, Inc.
++ Contributed by Jan Hubicka <jh at suse.cz>, based on linux.h.
++
++ This file is part of GCC.
++@@ -54,14 +54,27 @@
++ When the -shared link option is used a final link is not being
++ done. */
++
+++/* These macros may be overridden in i386/k*bsd-gnu.h. */
+++#define LINK_EMULATION "elf_i386"
+++#define LINK_EMULATION64 "elf_x86_64"
+++#define DYNAMIC_LINKER "/lib/ld-linux.so.2"
+++#define DYNAMIC_LINKER64 "/lib64/ld-linux-x86-64.so.2"
+++
+++#undef SUBTARGET_EXTRA_SPECS
+++#define SUBTARGET_EXTRA_SPECS \
+++ { "link_emulation", LINK_EMULATION },\
+++ { "link_emulation64", LINK_EMULATION64 },\
+++ { "dynamic_linker", DYNAMIC_LINKER },\
+++ { "dynamic_linker64", DYNAMIC_LINKER64 }
+++
++ #undef LINK_SPEC
++-#define LINK_SPEC "%{!m32:-m elf_x86_64} %{m32:-m elf_i386} \
+++#define LINK_SPEC "%{!m32:-m %(link_emulation64)} %{m32:-m %(link_emulation)} \
++ %{shared:-shared} \
++ %{!shared: \
++ %{!static: \
++ %{rdynamic:-export-dynamic} \
++- %{m32:%{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \
++- %{!m32:%{!dynamic-linker:-dynamic-linker /lib64/ld-linux-x86-64.so.2}}} \
+++ %{m32:%{!dynamic-linker:-dynamic-linker %(dynamic_linker)}} \
+++ %{!m32:%{!dynamic-linker:-dynamic-linker %(dynamic_linker64)}}} \
++ %{static:-static}}"
++
++ #define MULTILIB_DEFAULTS { "m64" }
++diff -Nur gcc-4.0.2.old/gcc/config/kfreebsd-gnu.h gcc-4.0.2/gcc/config/kfreebsd-gnu.h
++--- gcc-4.0.2.old/gcc/config/kfreebsd-gnu.h 2004-06-24 04:56:23.000000000 +0200
+++++ gcc-4.0.2/gcc/config/kfreebsd-gnu.h 2002-02-22 18:01:48.768673592 +0100
++@@ -34,3 +34,8 @@
+
+- #if defined(SPARC)
+--# if defined(LINUX)
+-+# if defined(LINUX) || defined(GLIBC)
+- # include <features.h>
++ #undef DYNAMIC_LINKER
++ #define DYNAMIC_LINKER "/lib/ld.so.1"
+++
+++#ifdef DYNAMIC_LINKER64
+++#undef DYNAMIC_LINKER64
+++#define DYNAMIC_LINKER64 "/lib/ld-kfreebsd-x86-64.so.1"
+++#endif
++diff -Nur gcc-4.0.2.old/gcc/config/knetbsd-gnu.h gcc-4.0.2/gcc/config/knetbsd-gnu.h
++--- gcc-4.0.2.old/gcc/config/knetbsd-gnu.h 2004-06-24 04:56:23.000000000 +0200
+++++ gcc-4.0.2/gcc/config/knetbsd-gnu.h 2002-02-22 18:02:05.581117712 +0100
++@@ -34,3 +34,8 @@
+
+- struct frame {
++ #undef DYNAMIC_LINKER
++ #define DYNAMIC_LINKER "/lib/ld.so.1"
+++
+++#ifdef DYNAMIC_LINKER64
+++#undef DYNAMIC_LINKER64
+++#define DYNAMIC_LINKER64 "/lib/ld-knetbsd-x86-64.so.1"
+++#endif
++diff -Nur gcc-4.0.2.old/gcc/config.gcc gcc-4.0.2/gcc/config.gcc
++--- gcc-4.0.2.old/gcc/config.gcc 2005-08-09 12:57:04.000000000 +0200
+++++ gcc-4.0.2/gcc/config.gcc 2002-02-22 18:04:37.990947896 +0100
++@@ -1012,8 +1012,8 @@
++ tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h svr4.h linux.h \
++ i386/x86-64.h i386/linux64.h"
++ case ${target} in
++- x86_64-*-kfreebsd*-gnu) tm_file="${tm_file} kfreebsd-gnu.h" ;;
++- x86_64-*-knetbsd*-gnu) tm_file="${tm_file} knetbsd-gnu.h" ;;
+++ x86_64-*-kfreebsd*-gnu) tm_file="${tm_file} kfreebsd-gnu.h i386/kfreebsd-gnu.h" ;;
+++ x86_64-*-knetbsd*-gnu) tm_file="${tm_file} knetbsd-gnu.h i386/knetbsd-gnu.h" ;;
++ esac
++ tmake_file="${tmake_file} i386/t-linux64"
++ ;;
++
More information about the Glibc-bsd-commits
mailing list