[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