summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Frysinger <vapier@gentoo.org>2005-08-09 04:51:15 +0000
committerMike Frysinger <vapier@gentoo.org>2005-08-09 04:51:15 +0000
commit74f2f592bb2b706b85f9598f68f8f3058ecef233 (patch)
tree910d84e1040138bd4d4c363543b075490b35b9ba
parent96c840eed1145bc7a8ee01ccb3fc89d65793ee0b (diff)
move __fpscr_values out of crt0 and into libc as proposed by Daniel Jacobowitz so that libm.so links properly with newer toolchains
-rw-r--r--libc/sysdeps/linux/sh/Makefile2
-rw-r--r--libc/sysdeps/linux/sh/___fpscr_values.S34
-rw-r--r--libc/sysdeps/linux/sh/crt0.S7
3 files changed, 35 insertions, 8 deletions
diff --git a/libc/sysdeps/linux/sh/Makefile b/libc/sysdeps/linux/sh/Makefile
index 65b656e42..11c40aa73 100644
--- a/libc/sysdeps/linux/sh/Makefile
+++ b/libc/sysdeps/linux/sh/Makefile
@@ -24,7 +24,7 @@ CRT0_SRC = crt0.S
CRT0_OBJ = crt0.o crt1.o
CTOR_TARGETS=$(TOPDIR)lib/crti.o $(TOPDIR)lib/crtn.o
-SSRC=setjmp.S __longjmp.S vfork.S clone.S
+SSRC=setjmp.S __longjmp.S vfork.S clone.S ___fpscr_values.S
SOBJS=$(patsubst %.S,%.o, $(SSRC))
CSRC=mmap.c longjmp.c pipe.c __init_brk.c brk.c sbrk.c syscall.c pread_write.c
diff --git a/libc/sysdeps/linux/sh/___fpscr_values.S b/libc/sysdeps/linux/sh/___fpscr_values.S
new file mode 100644
index 000000000..de8f0b42d
--- /dev/null
+++ b/libc/sysdeps/linux/sh/___fpscr_values.S
@@ -0,0 +1,34 @@
+/* Startup code for SH & ELF.
+ Copyright (C) 1999 Free Software Foundation, Inc.
+ Copyright (C) 2001 Hewlett-Packard Australia
+ Copyright (C) 2002 Stefan Allius
+
+ This program is free software; you can redistribute it and/or modify it under
+ the terms of the GNU Library General Public License as published by the Free
+ Software Foundation; either version 2 of the License, or (at your option) any
+ later version.
+
+ This program is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more
+ details.
+
+ You should have received a copy of the GNU Library General Public License
+ along with this program; if not, write to the Free Software Foundation, Inc.,
+ 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+*/
+
+#include <features.h>
+
+.data
+#if defined(__CONFIG_SH4__)
+.global ___fpscr_values
+.type ___fpscr_values,@object
+.size ___fpscr_values,8
+___fpscr_values:
+ .long 0
+ .long 0x80000
+
+.weak __fpscr_values
+ __fpscr_values = ___fpscr_values
+#endif
diff --git a/libc/sysdeps/linux/sh/crt0.S b/libc/sysdeps/linux/sh/crt0.S
index 6851698d5..9a3936750 100644
--- a/libc/sysdeps/linux/sh/crt0.S
+++ b/libc/sysdeps/linux/sh/crt0.S
@@ -134,10 +134,3 @@ __data_start:
.long 0
.weak data_start
data_start = __data_start
-#if defined __CONFIG_SH4__
- .global __fpscr_values
-__fpscr_values:
- .long 0
- .long 0x80000
-#endif
-