[Glibc-bsd-commits] r1566 - trunk/web/patches
Petr Salinger
ps-guest at costa.debian.org
Thu May 11 19:29:42 UTC 2006
Author: ps-guest
Date: 2006-05-11 19:29:41 +0000 (Thu, 11 May 2006)
New Revision: 1566
Added:
trunk/web/patches/libgc_6.7.diff
Log:
* add libgc_6.7.diff
applies almost cleanly also against gc 6.6 and boehm-gc in gcc-4.1
test of building gcj-4.1 currently in progress ...
Added: trunk/web/patches/libgc_6.7.diff
===================================================================
--- trunk/web/patches/libgc_6.7.diff 2006-05-09 09:21:11 UTC (rev 1565)
+++ trunk/web/patches/libgc_6.7.diff 2006-05-11 19:29:41 UTC (rev 1566)
@@ -0,0 +1,146 @@
+
+Status: in BTS #366864, rerun of autoconf is needed
+
+Note: applies almost cleanly also against gc 6.6 and boehm-gc in gcc-4.1
+
+
+diff -ur gc6.7/configure.in gc6.7/configure.in
+--- gc6.7/configure.in 2006-02-17 05:07:50.000000000 +0100
++++ gc6.7/configure.in 2006-05-11 18:58:59.000000000 +0200
+@@ -110,6 +110,17 @@
+ INCLUDES="$INCLUDES -pthread"
+ THREADDLLIBS=-pthread
+ ;;
++ *-*-kfreebsd*-gnu)
++ AC_DEFINE(GC_FREEBSD_THREADS)
++ INCLUDES="$INCLUDES -pthread"
++ THREADDLLIBS=-pthread
++ AC_DEFINE(_REENTRANT)
++ if test "${enable_parallel_mark}" = yes; then
++ AC_DEFINE(PARALLEL_MARK)
++ fi
++ AC_DEFINE(THREAD_LOCAL_ALLOC)
++ AC_DEFINE(USE_COMPILER_TLS)
++ ;;
+ *-*-netbsd*)
+ AC_MSG_WARN("Only on NetBSD 2.0 or later.")
+ AC_DEFINE(GC_NETBSD_THREADS)
+diff -ur gc6.7/dyn_load.c gc6.7/dyn_load.c
+--- gc6.7/dyn_load.c 2006-02-16 22:13:55.000000000 +0100
++++ gc6.7/dyn_load.c 2006-05-11 18:29:02.000000000 +0200
+@@ -26,7 +26,7 @@
+ * 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(__GLIBC__)) && !defined(_GNU_SOURCE)
+ /* Can't test LINUX, since this must be define before other includes */
+ # define _GNU_SOURCE
+ #endif
+@@ -381,7 +381,7 @@
+ /* For glibc 2.2.4+. Unfortunately, it doesn't work for older */
+ /* versions. Thanks to Jakub Jelinek for most of the code. */
+
+-# if defined(LINUX) /* Are others OK here, too? */ \
++# if (defined(LINUX) || defined (__GLIBC__)) /* Are others OK here, too? */ \
+ && (__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2) \
+ || (__GLIBC__ == 2 && __GLIBC_MINOR__ == 2 && defined(DT_CONFIG)))
+
+diff -ur gc6.7/include/gc.h gc6.7/include/gc.h
+--- gc6.7/include/gc.h 2006-02-18 02:03:40.000000000 +0100
++++ gc6.7/include/gc.h 2006-05-11 18:29:02.000000000 +0200
+@@ -469,7 +469,7 @@
+ # define GC_RETURN_ADDR (GC_word)__return_address
+ #endif
+
+-#ifdef __linux__
++#if defined(__linux__) || defined(__GLIBC__)
+ # include <features.h>
+ # if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1 || __GLIBC__ > 2) \
+ && !defined(__ia64__)
+diff -ur gc6.7/include/private/gcconfig.h gc6.7/include/private/gcconfig.h
+--- gc6.7/include/private/gcconfig.h 2006-02-17 05:34:18.000000000 +0100
++++ gc6.7/include/private/gcconfig.h 2006-05-11 18:37:53.000000000 +0200
+@@ -55,7 +55,7 @@
+ # endif
+
+ /* And one for FreeBSD: */
+-# if defined(__FreeBSD__) && !defined(FREEBSD)
++# if (defined(__FreeBSD__) || defined(__FreeBSD_kernel__)) && !defined(FREEBSD)
+ # define FREEBSD
+ # endif
+
+@@ -1249,8 +1249,15 @@
+ # ifndef GC_FREEBSD_THREADS
+ # define MPROTECT_VDB
+ # endif
+-# define SIG_SUSPEND SIGUSR1
+-# define SIG_THR_RESTART SIGUSR2
++# ifdef __GLIBC__
++# define SIG_SUSPEND (32+6)
++# define SIG_THR_RESTART (32+5)
++ extern int _end[];
++# define DATAEND (_end)
++# else
++# define SIG_SUSPEND SIGUSR1
++# define SIG_THR_RESTART SIGUSR2
++# endif
+ # define FREEBSD_STACKBOTTOM
+ # ifdef __ELF__
+ # define DYNAMIC_LOADING
+@@ -1993,6 +2000,28 @@
+ # define PREFETCH_FOR_WRITE(x) __builtin_prefetch((x), 1)
+ # endif
+ # endif
++# ifdef FREEBSD
++# define OS_TYPE "FREEBSD"
++# ifndef GC_FREEBSD_THREADS
++# define MPROTECT_VDB
++# endif
++# ifdef __GLIBC__
++# define SIG_SUSPEND (32+6)
++# define SIG_THR_RESTART (32+5)
++ extern int _end[];
++# define DATAEND (_end)
++# else
++# define SIG_SUSPEND SIGUSR1
++# define SIG_THR_RESTART SIGUSR2
++# endif
++# 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"
+ # ifdef __ELF__
+@@ -2064,7 +2093,7 @@
+ # define SUNOS5SIGS
+ # endif
+
+-# if defined(FREEBSD) && (__FreeBSD__ >= 4)
++# if defined(FREEBSD) && ((__FreeBSD__ >= 4) || (__FreeBSD_kernel__ >= 4))
+ # define SUNOS5SIGS
+ # endif
+
+@@ -2132,7 +2161,7 @@
+ # define CACHE_LINE_SIZE 32 /* Wild guess */
+ # endif
+
+-# ifdef LINUX
++# if defined(LINUX) || defined(__GLIBC__)
+ # define REGISTER_LIBRARIES_EARLY
+ /* We sometimes use dl_iterate_phdr, which may acquire an internal */
+ /* lock. This isn't safe after the world has stopped. So we must */
+@@ -2216,7 +2245,7 @@
+ #if defined(SPARC)
+ # define CAN_SAVE_CALL_ARGS
+ #endif
+-#if (defined(I386) || defined(X86_64)) && defined(LINUX)
++#if (defined(I386) || defined(X86_64)) && (defined(LINUX) || defined(__GLIBC__))
+ /* SAVE_CALL_CHAIN is supported if the code is compiled to save */
+ /* frame pointers by default, i.e. no -fomit-frame-pointer flag. */
+ # define CAN_SAVE_CALL_ARGS
More information about the Glibc-bsd-commits
mailing list