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
+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.
# 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
/* 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