[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[patches] sh: Add ___fpscr_values to sysdeps/unix/sysv/linux/sh/sysdep.S.



This solves __fpscr_valus in a link of the build in SH4. When it is resolved,
linker uses ld.so or libc.so.
When it was linked by ld-linux.so, GLIBC_PRIVATE is added to this.
But it was linked by libc.so, libc version is added to this.

With this patch, it is resolved by using __fpscr_valus of libc.so.
And this can solve a pattern to solve this by pattern and ld-linux.so
that __fpscr_valus
becomes unsolved.

This patch already was applied eglibc of Debian and Codesourcery.

2010-09-28  Nobuhiro Iwamatsu  <iwamatsu@xxxxxxxxxxx>

	* sysdeps/unix/sysv/linux/sh/sysdep.S: Add ___fpscr_values to
	sysdeps/unix/sysv/linux/sh/sysdep.S.
	This solves __fpscr_valus in a link of the build in SH4. When it is
	resolved, linker uses ld.so or libc.so.
	When it was linked by ld-linux.so, GLIBC_PRIVATE is added to this.
	But it was linked by libc.so, libc version is added to this.
	With this patch, it is resolved by using __fpscr_valus of libc.so.
	And this can solve a pattern to solve this by pattern and ld-linux.so
	that __fpscr_valus becomes unsolved.
---
 libc/sysdeps/unix/sysv/linux/sh/Versions |    1 +
 libc/sysdeps/unix/sysv/linux/sh/sysdep.S |   11 +++++++++++
 2 files changed, 12 insertions(+), 0 deletions(-)

diff --git a/libc/sysdeps/unix/sysv/linux/sh/Versions
b/libc/sysdeps/unix/sysv/linux/sh/Versions
index bd30f92..9fb8345 100644
--- a/libc/sysdeps/unix/sysv/linux/sh/Versions
+++ b/libc/sysdeps/unix/sysv/linux/sh/Versions
@@ -2,6 +2,7 @@ libc {
   GLIBC_2.2 {
     # functions used in other libraries
     __xstat64; __fxstat64; __lxstat64;
+    __fpscr_values;

     # a*
     alphasort64;
diff --git a/libc/sysdeps/unix/sysv/linux/sh/sysdep.S
b/libc/sysdeps/unix/sysv/linux/sh/sysdep.S
index 176d99a..eab6b57 100644
--- a/libc/sysdeps/unix/sysv/linux/sh/sysdep.S
+++ b/libc/sysdeps/unix/sysv/linux/sh/sysdep.S
@@ -32,3 +32,14 @@ ENTRY (__syscall_error)

 #define __syscall_error __syscall_error_1
 #include <sysdeps/unix/sh/sysdep.S>
+
+       .data
+       .align 3
+       .globl ___fpscr_values
+       .type ___fpscr_values, @object
+       .size ___fpscr_values, 8
+___fpscr_values:
+       .long 0
+       .long 0x80000
+weak_alias (___fpscr_values, __fpscr_values)
+
-- 
1.7.1