From 8bcd4b660ff42a003023011eca6f2eada5aa828c Mon Sep 17 00:00:00 2001 From: marius Date: Tue, 11 Apr 2006 19:43:36 +0000 Subject: [PATCH] - Move _Qp_* and __dtoul from FBSDprivate to the list of FBSD_1.0 symbols as well as add __sparc_utrap_install to FBSD_1.0; these are required by the SCD libc 64 psABI and thus meant to be officially exported symbols. - Remove the __fpu_* entries as well as the __sigtramp entry altogether as these are internal to the libc FPU emulation and the signal trampoline initialization in sigaction(2) respectively and thus don't need to be externally visible. - Add __sparc_utrap_setup to the list of FBSDprivate symbols as it's used in src/lib/csu/sparc64/crt1.c to initialize the libc FPU emulation (I think alternatively src/lib/csu/sparc64/crt1.c could be changed to use __sparc_utrap_install instead, at the expense of increasing the size of executables a bit). - Add an entry for the vfork symbol to the FBSD_1 list and entries for it's associated symbols generated by the RSYSCALL() macro to the FBSDprivate list. There's some magic in place that automatically generates code for vfork() if there's no explicit MD code for it so it might make sense to move these symbols from the MD symbol map files to a MI one. The last two changes make the libc symbol versioning useable on sparc64. Ok'ed by: deischen --- lib/libc/sparc64/Symbol.map | 53 +++++++++++++------------------------ 1 file changed, 18 insertions(+), 35 deletions(-) diff --git a/lib/libc/sparc64/Symbol.map b/lib/libc/sparc64/Symbol.map index b5f48cabda78..c3ccdab7a8c9 100644 --- a/lib/libc/sparc64/Symbol.map +++ b/lib/libc/sparc64/Symbol.map @@ -37,32 +37,9 @@ FBSD_1.0 { brk; exect; sbrk; -}; + vfork; -FBSDprivate { - # PSEUDO syscalls - __sys_getlogin; - _getlogin; - __sys_exit; - - _set_tp; - __fpu_exception; - __fpu_add; - __fpu_compare; - __fpu_div; - __fpu_itof; - __fpu_xtof; - __fpu_stof; - __fpu_dtof; - __fpu_qtof; - __fpu_explode; - __fpu_ftoi; - __fpu_ftox; - __fpu_ftos; - __fpu_ftod; - __fpu_ftoq; - __fpu_implode; - __fpu_mul; + # SCD libc 64 psABI _Qp_sqrt; _Qp_add; _Qp_div; @@ -88,16 +65,18 @@ FBSDprivate { _Qp_fne; _Qp_cmp; _Qp_cmpe; - __fpu_ld32; - __fpu_st32; - __fpu_ld64; - __fpu_st64; - __fpu_sqrt; - __fpu_shr; - __fpu_norm; - __fpu_newnan; - ___longjmp; __dtoul; + __sparc_utrap_install; +}; + +FBSDprivate { + # PSEUDO syscalls + __sys_getlogin; + _getlogin; + __sys_exit; + + _set_tp; + ___longjmp; __makecontext; __longjmp; signalcontext; @@ -113,5 +92,9 @@ FBSDprivate { _end; __sys_sbrk; _sbrk; - __sigtramp; + __sys_vfork; + _vfork; + + # used in src/lib/csu/sparc64/crt1.c + __sparc_utrap_setup; };