rtld: remove hand rolled memset and bzero
They were introduced to take care of ifunc, but right now no architecture provides ifunc'ed variants. Since rtld uses memset extensively this results in a pessmization. Should someone want to use ifunc here they should provide a mandatory symbol (e.g., rtld_memset). See the review for profiling data. Reviewed by: kib Differential Revision: https://reviews.freebsd.org/D23176
This commit is contained in:
parent
a107ddbb83
commit
da8e950a27
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=356741
@ -40,9 +40,9 @@ CFLAGS.errlst.c+=-I${LIBC_SRCTOP}/include
|
||||
|
||||
# Use the string and memory .o files from libc instead of rebuilding them (they
|
||||
# might be using optimized assembly and duplicating that logic here is awkward).
|
||||
_libc_string_objects= bcmp bcopy memchr memcmp memcpy memmove stpncpy strcat \
|
||||
strchr strcmp stpcpy strcpy strcspn strdup strlcat strlcpy strlen strncmp \
|
||||
strncpy strrchr strsep strspn strstr strtok
|
||||
_libc_string_objects= bcmp bcopy bzero memset memchr memcmp memcpy memmove \
|
||||
stpncpy strcat strchr strcmp stpcpy strcpy strcspn strdup strlcat strlcpy \
|
||||
strlen strncmp strncpy strrchr strsep strspn strstr strtok
|
||||
# Also use all the syscall .o files from libc_nossp_pic:
|
||||
_libc_other_objects= sigsetjmp lstat stat fstat fstatat fstatfs syscall \
|
||||
cerror geteuid getegid munmap mprotect sysarch __sysctl issetugid __getcwd \
|
||||
|
@ -5729,28 +5729,6 @@ rtld_strerror(int errnum)
|
||||
return (sys_errlist[errnum]);
|
||||
}
|
||||
|
||||
/*
|
||||
* No ifunc relocations.
|
||||
*/
|
||||
void *
|
||||
memset(void *dest, int c, size_t len)
|
||||
{
|
||||
size_t i;
|
||||
|
||||
for (i = 0; i < len; i++)
|
||||
((char *)dest)[i] = c;
|
||||
return (dest);
|
||||
}
|
||||
|
||||
void
|
||||
bzero(void *dest, size_t len)
|
||||
{
|
||||
size_t i;
|
||||
|
||||
for (i = 0; i < len; i++)
|
||||
((char *)dest)[i] = 0;
|
||||
}
|
||||
|
||||
/* malloc */
|
||||
void *
|
||||
malloc(size_t nbytes)
|
||||
|
Loading…
Reference in New Issue
Block a user