5ac7ffcc38
For some reason, libc exports the symbol .cerror (HIDENAME(cerror)), albeit in the FBSDprivate_1.0 version. It looks like there is no reason for this since it is not used from other libraries. Given that it cannot be accessed from C and its strange calling convention, it is rather unlikely that other things rely on it. Perhaps it is from a time when symbols could not be hidden. Most of the amd64 assembler code jumps to .cerror using the GOT. It can jump to it directly now, as in non-PIC mode. There are also some minor size optimizations to instructions but they yield virtually no benefit in the size of libc.so.7 due to padding. Reviewed by: kib
73 lines
911 B
Plaintext
73 lines
911 B
Plaintext
/*
|
|
* $FreeBSD$
|
|
*/
|
|
|
|
/*
|
|
* This only needs to contain symbols that are not listed in
|
|
* symbol maps from other parts of libc (i.e., not found in
|
|
* stdlib/Symbol.map, string/Symbol.map, sys/Symbol.map, ...).
|
|
*/
|
|
FBSD_1.0 {
|
|
/* PSEUDO syscalls */
|
|
_exit;
|
|
|
|
.mcount;
|
|
_setjmp;
|
|
_longjmp;
|
|
fabs;
|
|
__flt_rounds;
|
|
fpgetmask;
|
|
fpgetprec;
|
|
fpgetround;
|
|
fpgetsticky;
|
|
fpsetmask;
|
|
fpsetprec;
|
|
fpsetround;
|
|
__infinity;
|
|
__nan;
|
|
makecontext;
|
|
rfork_thread;
|
|
setjmp;
|
|
longjmp;
|
|
sigsetjmp;
|
|
siglongjmp;
|
|
htonl;
|
|
htons;
|
|
ntohl;
|
|
ntohs;
|
|
amd64_get_fsbase;
|
|
amd64_get_gsbase;
|
|
amd64_set_fsbase;
|
|
amd64_set_gsbase;
|
|
brk;
|
|
exect;
|
|
sbrk;
|
|
vfork;
|
|
};
|
|
|
|
/*
|
|
*
|
|
* FreeBSD private ABI
|
|
*
|
|
*/
|
|
FBSDprivate_1.0 {
|
|
/* PSEUDO syscalls */
|
|
__sys_getlogin;
|
|
_getlogin;
|
|
__sys_exit;
|
|
|
|
_set_tp;
|
|
___longjmp;
|
|
__makecontext;
|
|
__longjmp;
|
|
__signalcontext;
|
|
signalcontext;
|
|
__siglongjmp;
|
|
.curbrk;
|
|
.minbrk;
|
|
_brk;
|
|
_end;
|
|
__sys_vfork;
|
|
_vfork;
|
|
};
|