summaryrefslogtreecommitdiff
path: root/boehm-gc
diff options
context:
space:
mode:
authorhboehm <hboehm@138bc75d-0d04-0410-961f-82ee72b054a4>2002-06-10 17:10:21 +0000
committerhboehm <hboehm@138bc75d-0d04-0410-961f-82ee72b054a4>2002-06-10 17:10:21 +0000
commitfdea2e6aa44241c42e0c82ba1adf30d245971c53 (patch)
treed5b4434c00202857399323f0c5395a934fbe5a9d /boehm-gc
parent48121e86aa0ac09198baa7b4cd48dcfca75815fe (diff)
downloadgcc-fdea2e6aa44241c42e0c82ba1adf30d245971c53.tar.gz
* include/private/gc_locks.h (GC_test_and_set): Support
Linux/mips. (GC_TEST_AND_SET_DEFINED): Likewise. * include/private/gcconfig.h (DYNAMIC_LOADING): Defined for Linux/mips. (DATAEND): Likewise. (LINUX_STACKBOTTOM): Likewise. (STACKBOTTOM): Removed for Linux/mips. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@54444 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'boehm-gc')
-rw-r--r--boehm-gc/ChangeLog12
-rw-r--r--boehm-gc/include/private/gc_locks.h6
-rw-r--r--boehm-gc/include/private/gcconfig.h9
3 files changed, 21 insertions, 6 deletions
diff --git a/boehm-gc/ChangeLog b/boehm-gc/ChangeLog
index 9014d318310..2c8ab1a7a05 100644
--- a/boehm-gc/ChangeLog
+++ b/boehm-gc/ChangeLog
@@ -1,3 +1,15 @@
+2002-06-09 H.J. Lu (hjl@gnu.org)
+
+ * include/private/gc_locks.h (GC_test_and_set): Support
+ Linux/mips.
+ (GC_TEST_AND_SET_DEFINED): Likewise.
+
+ * include/private/gcconfig.h (DYNAMIC_LOADING): Defined for
+ Linux/mips.
+ (DATAEND): Likewise.
+ (LINUX_STACKBOTTOM): Likewise.
+ (STACKBOTTOM): Removed for Linux/mips.
+
Sun May 19 11:32:03 2002 Mark P Mitchell <mark@codesourcery.com>
* irix_threads.cc (GC_pthread_detach): Do not use REAL_FUNC.
diff --git a/boehm-gc/include/private/gc_locks.h b/boehm-gc/include/private/gc_locks.h
index 95beeddbadb..04d3af986c0 100644
--- a/boehm-gc/include/private/gc_locks.h
+++ b/boehm-gc/include/private/gc_locks.h
@@ -219,7 +219,11 @@
# define GC_TEST_AND_SET_DEFINED
# endif
# ifdef MIPS
-# if __mips < 3 || !(defined (_ABIN32) || defined(_ABI64)) \
+# ifdef LINUX
+# include <sys/tas.h>
+# define GC_test_and_set(addr) _test_and_set((int *) addr,1)
+# define GC_TEST_AND_SET_DEFINED
+# elif __mips < 3 || !(defined (_ABIN32) || defined(_ABI64)) \
|| !defined(_COMPILER_VERSION) || _COMPILER_VERSION < 700
# define GC_test_and_set(addr) test_and_set(addr, 1)
# else
diff --git a/boehm-gc/include/private/gcconfig.h b/boehm-gc/include/private/gcconfig.h
index 70eee489d64..106cbf82bd0 100644
--- a/boehm-gc/include/private/gcconfig.h
+++ b/boehm-gc/include/private/gcconfig.h
@@ -1141,15 +1141,14 @@
/* This was developed for a linuxce style platform. Probably */
/* needs to be tweaked for workstation class machines. */
# define OS_TYPE "LINUX"
+# define DYNAMIC_LOADING
+ extern int _end[];
+# define DATAEND (_end)
extern int __data_start[];
# define DATASTART ((ptr_t)(__data_start))
# define ALIGNMENT 4
# define USE_GENERIC_PUSH_REGS
-# define STACKBOTTOM ((ptr_t)0x7fff8000)
- /* Older toolchains may need 0x80000000. */
- /* In many cases, this should probably use LINUX_STACKBOTTOM */
- /* instead. But some kernel versions seem to give the wrong */
- /* value from /proc. */
+# define LINUX_STACKBOTTOM
# endif /* Linux */
# ifdef EWS4800
# define HEURISTIC2