summaryrefslogtreecommitdiffstats
path: root/boehm-gc/include
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/include
parent48121e86aa0ac09198baa7b4cd48dcfca75815fe (diff)
downloadppe42-gcc-fdea2e6aa44241c42e0c82ba1adf30d245971c53.tar.gz
ppe42-gcc-fdea2e6aa44241c42e0c82ba1adf30d245971c53.zip
* 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/include')
-rw-r--r--boehm-gc/include/private/gc_locks.h6
-rw-r--r--boehm-gc/include/private/gcconfig.h9
2 files changed, 9 insertions, 6 deletions
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
OpenPOWER on IntegriCloud