tech-pkg: Re: boehm-gc in dynamic libs

Subject: Re: boehm-gc in dynamic libs
To: Mario Kemper <magick@bundy.lip.owl.de>
From: SUNAGAWA Keiki <Keiki_SUNAGAWA@yokogawa.co.jp>
List: tech-pkg
Date: 12/02/1999 11:20:57
Hi,
magick@bundy.lip.owl.de (Mario Kemper) wrote:
>> What kind of architecture do you use?
Mario> i386-elf
Okey. Please test the following and let me know if it
works? Since I have no access to i386-elf system, I'm not
sure that this actually works on ELF system, though (it
works for me on i386/1.4.1).
1 replace boehm-gc/patches/patch-ac with the attached diff.
2 make makapatchsum && make
3 cd ${WRKDIR}/gc and do the following:
 ./test_cpp 1 2>/dev/null&&echo ok
--
SUNAGAWA Keiki <Keiki_SUNAGAWA@yokogawa.co.jp>
--- gcconfig.h.orig	Wed Sep 15 13:56:31 1999
+++ gcconfig.h	Thu Dec 2 10:16:32 1999
@@ -27,6 +27,11 @@
 # define LINUX
 # endif
 
+# if defined(__NetBSD__)
+# define NETBSD
+# define unix /* symbol unix is no longer defined in NetBSD */
+# endif
+
 /* Determine the machine type: */
 # if defined(sun) && defined(mc68000)
 # define M68K
@@ -50,7 +55,10 @@
 # endif
 # if defined(__NetBSD__) && defined(m68k)
 # define M68K
-# define NETBSD
+# define mach_type_known
+# endif
+# if defined(__NetBSD__) && defined(__powerpc__)
+# define POWERPC
 # define mach_type_known
 # endif
 # if defined(vax)
@@ -106,7 +114,7 @@
 # define mach_type_known
 # endif
 # if defined(sparc) && defined(unix) && !defined(sun) && !defined(linux) \
- && !defined(__OpenBSD__)
+ && !defined(__OpenBSD__) && !(__NetBSD__)
 # define SPARC
 # define DRSNX
 # define mach_type_known
@@ -115,6 +123,10 @@
 # define RS6000
 # define mach_type_known
 # endif
+# if defined(__NetBSD__) && defined(__sparc__)
+# define SPARC
+# define mach_type_known
+# endif
 # if defined(_M_XENIX) && defined(_M_SYSV) && defined(_M_I386)
 	/* The above test may need refinement	*/
 # define I386
@@ -153,7 +165,7 @@
 # endif
 # if defined(__alpha) || defined(__alpha__)
 # define ALPHA
-# if !defined(LINUX)
+# if !defined(LINUX) && !defined(NETBSD)
 # define OSF1	/* a.k.a Digital Unix */
 # endif
 # define mach_type_known
@@ -202,7 +214,6 @@
 # endif
 # if defined(__NetBSD__) && defined(i386)
 # define I386
-# define NETBSD
 # define mach_type_known
 # endif
 # if defined(bsdi) && defined(i386)
@@ -527,6 +538,14 @@
 # define STACKBOTTOM ((ptr_t) 0xc0000000)
 # define DATAEND	/* not needed */
 # endif
+# ifdef NETBSD
+# define ALIGNMENT 4
+# define OS_TYPE "NETBSD"
+# define HEURISTIC2
+ extern char etext;
+# define DATASTART GC_data_start
+# define DYNAMIC_LOADING
+# endif
 # endif
 
 # ifdef VAX
@@ -556,7 +575,6 @@
 # define MACH_TYPE "SPARC"
 # define ALIGNMENT 4	/* Required by hardware	*/
 # define ALIGN_DOUBLE
- extern int etext;
 # ifdef SUNOS5
 #	define OS_TYPE "SUNOS5"
 	extern int _etext;
@@ -628,8 +646,16 @@
 # ifdef OPENBSD
 # define OS_TYPE "OPENBSD"
 # define STACKBOTTOM ((ptr_t) 0xf8000000)
+ extern int etext;
 # define DATASTART ((ptr_t)(&etext))
 # endif
+# ifdef NETBSD
+# define OS_TYPE "NETBSD"
+# define HEURISTIC2
+/* extern char etext; */
+# define DATASTART GC_data_start
+# define DYNAMIC_LOADING
+# endif
 # endif
 
 # ifdef I386
@@ -786,6 +812,14 @@
 # endif
 # ifdef NETBSD
 #	define OS_TYPE "NETBSD"
+#	define HEURISTIC2
+	extern char etext;
+#	if defined(__ELF__)
+#	 define DATASTART GC_data_start
+#	 define DYNAMIC_LOADING
+#	else
+#	 define DATASTART ((ptr_t)(&etext))
+#	endif
 # endif
 # ifdef THREE86BSD
 #	define OS_TYPE "THREE86BSD"
@@ -793,7 +827,7 @@
 # ifdef BSDI
 #	define OS_TYPE "BSDI"
 # endif
-# if defined(OPENBSD) || defined(FREEBSD) || defined(NETBSD) \
+# if defined(OPENBSD) || defined(FREEBSD) \
 || defined(THREE86BSD) || defined(BSDI)
 #	define HEURISTIC2
 	extern char etext;
@@ -919,6 +953,16 @@
 # ifdef ALPHA
 # define MACH_TYPE "ALPHA"
 # define ALIGNMENT 8
+# ifdef NETBSD
+#	define OS_TYPE "NETBSD"
+#	define HEURISTIC2
+#	define DATASTART GC_data_start
+#	define ELFCLASS32 32
+#	define ELFCLASS64 64
+#	define ELF_CLASS ELFCLASS64
+# 	define CPP_WORDSZ 64
+# define DYNAMIC_LOADING
+# endif
 # ifdef OSF1
 #	define OS_TYPE "OSF1"
 # 	define DATASTART ((ptr_t) 0x140000000)

AltStyle によって変換されたページ (->オリジナル) /