This is the mail archive of the libc-ports@sources.redhat.com mailing list for the libc-ports project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

localplt data for Power soft-float


This patch adds localplt data for Power soft-float.

The mechanism for doing so requires a distinct ABI name to be defined, 
which in turn requires a copy of the C++ types data (identical to that for 
hard float).

One fix is made to reduce the number of symbols listed in the localplt 
data.  It's possible that the list of soft-fp symbols may vary depending 
on details of the compiler version.  As for the others, the abort call 
comes from the use of soft-fp in libgcc's long double support, various 
mathematical function calls arise from things not being inlined for 
soft-float (and the use of -fno-builtin-fabsl in 
sysdeps/powerpc/nofpu/Makefile), and fegetround is also called by some 
libm functions and inlined only for hard float.

2008-07-08  Joseph Myers  <joseph@codesourcery.com>

	* sysdeps/powerpc/nofpu/shlib-versions: New.
	* c++-types-powerpcsoft-linux-gnu.data: New.
	* localplt-powerpcsoft-linux-gnu.data: New.
	* sysdeps/powerpc/nofpu/feholdexcpt.c (feholdexcept): Use
	__fegetenv.

diff -rupN ports.orig/c++-types-powerpcsoft-linux-gnu.data ports/c++-types-powerpcsoft-linux-gnu.data
--- ports.orig/c++-types-powerpcsoft-linux-gnu.data	1970-01-01 00:00:00.000000000 +0000
+++ ports/c++-types-powerpcsoft-linux-gnu.data	2008-07-09 01:00:02.000000000 +0000
@@ -0,0 +1,67 @@
+blkcnt64_t:x
+blkcnt_t:l
+blksize_t:l
+caddr_t:Pc
+clockid_t:i
+clock_t:l
+daddr_t:i
+dev_t:y
+fd_mask:l
+fsblkcnt64_t:y
+fsblkcnt_t:m
+fsfilcnt64_t:y
+fsfilcnt_t:m
+fsid_t:8__fsid_t
+gid_t:j
+id_t:j
+ino64_t:y
+ino_t:m
+int16_t:s
+int32_t:i
+int64_t:x
+int8_t:a
+intptr_t:i
+key_t:i
+loff_t:x
+mode_t:j
+nlink_t:j
+off64_t:x
+off_t:l
+pid_t:i
+pthread_attr_t:14pthread_attr_t
+pthread_barrier_t:17pthread_barrier_t
+pthread_barrierattr_t:21pthread_barrierattr_t
+pthread_cond_t:14pthread_cond_t
+pthread_condattr_t:18pthread_condattr_t
+pthread_key_t:j
+pthread_mutex_t:15pthread_mutex_t
+pthread_mutexattr_t:19pthread_mutexattr_t
+pthread_once_t:i
+pthread_rwlock_t:16pthread_rwlock_t
+pthread_rwlockattr_t:20pthread_rwlockattr_t
+pthread_spinlock_t:i
+pthread_t:m
+quad_t:x
+register_t:i
+rlim64_t:y
+rlim_t:m
+sigset_t:10__sigset_t
+size_t:j
+socklen_t:j
+ssize_t:i
+suseconds_t:l
+time_t:l
+u_char:h
+uid_t:j
+uint:j
+u_int:j
+u_int16_t:t
+u_int32_t:j
+u_int64_t:y
+u_int8_t:h
+ulong:m
+u_long:m
+u_quad_t:y
+useconds_t:j
+ushort:t
+u_short:t
diff -rupN ports.orig/localplt-powerpcsoft-linux-gnu.data ports/localplt-powerpcsoft-linux-gnu.data
--- ports.orig/localplt-powerpcsoft-linux-gnu.data	1970-01-01 00:00:00.000000000 +0000
+++ ports/localplt-powerpcsoft-linux-gnu.data	2008-07-09 01:00:02.000000000 +0000
@@ -0,0 +1,41 @@
+libc.so: _Unwind_Find_FDE
+libc.so: __adddf3
+libc.so: __addsf3
+libc.so: __divdf3
+libc.so: __divsf3
+libc.so: __eqdf2
+libc.so: __eqsf2
+libc.so: __extendsfdf2
+libc.so: __fixdfsi
+libc.so: __fixsfsi
+libc.so: __fixunsdfsi
+libc.so: __floatsidf
+libc.so: __floatsisf
+libc.so: __floatunsidf
+libc.so: __floatunsisf
+libc.so: __gedf2
+libc.so: __gtdf2
+libc.so: __ledf2
+libc.so: __ltdf2
+libc.so: __muldf3
+libc.so: __mulsf3
+libc.so: __nedf2
+libc.so: __signbit
+libc.so: __signbitl
+libc.so: __subdf3
+libc.so: __subsf3
+libc.so: __truncdfsf2
+libc.so: __unorddf2
+libc.so: abort
+libc.so: calloc
+libc.so: free
+libc.so: malloc
+libc.so: memalign
+libc.so: realloc
+libm.so: __signbit
+libm.so: __signbitf
+libm.so: __signbitl
+libm.so: copysignl
+libm.so: fabsl
+libm.so: fegetround
+libm.so: matherr
diff -rupN ports.orig/sysdeps/powerpc/nofpu/feholdexcpt.c ports/sysdeps/powerpc/nofpu/feholdexcpt.c
--- ports.orig/sysdeps/powerpc/nofpu/feholdexcpt.c	2007-05-24 11:34:16.000000000 +0000
+++ ports/sysdeps/powerpc/nofpu/feholdexcpt.c	2008-07-09 01:00:02.000000000 +0000
@@ -28,7 +28,7 @@ feholdexcept (fenv_t *envp)
   fenv_union_t u;
 
   /* Get the current state.  */
-  fegetenv (envp);
+  __fegetenv (envp);
 
   u.fenv = *envp;
   /* Clear everything except the rounding mode.  */
diff -rupN ports.orig/sysdeps/powerpc/nofpu/shlib-versions ports/sysdeps/powerpc/nofpu/shlib-versions
--- ports.orig/sysdeps/powerpc/nofpu/shlib-versions	1970-01-01 00:00:00.000000000 +0000
+++ ports/sysdeps/powerpc/nofpu/shlib-versions	2008-07-09 01:00:02.000000000 +0000
@@ -0,0 +1 @@
+powerpc.*-.*-.*		ABI			powerpcsoft-@OS@

-- 
Joseph S. Myers
joseph@codesourcery.com


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]