On 29/10/2018 20:11, Konstantin Belousov wrote: > Author: kib > Date: Tue Oct 30 00:11:30 2018 > New Revision: 339898 > URL: https://svnweb.freebsd.org/changeset/base/339898 > > Log: > Convert amd64_get/set_fs/gsbase to ifunc. > > Note that this is the first use of ifuncs in our userspace. > > Sponsored by: The FreeBSD Foundation > MFC after: 1 month > > Deleted: > head/lib/libc/amd64/sys/amd64_detect_rdfsgsbase.c > head/lib/libc/amd64/sys/amd64_detect_rdfsgsbase.h > Modified: > head/lib/libc/amd64/sys/Makefile.inc > head/lib/libc/amd64/sys/amd64_get_fsbase.c > head/lib/libc/amd64/sys/amd64_get_gsbase.c > head/lib/libc/amd64/sys/amd64_set_fsbase.c > head/lib/libc/amd64/sys/amd64_set_gsbase.c > Using LLVM 7 to build world, fails:
--- amd64_get_fsbase.o ---
/usr/src/lib/libc/amd64/sys/amd64_get_fsbase.c:60:1: error: ifunc
resolver function must have no parameters
--- amd64_get_gsbase.o ---
/usr/src/lib/libc/amd64/sys/amd64_get_gsbase.c:60:1: error: ifunc
resolver function must have no parameters
DEFINE_UIFUNC(, int, amd64_get_gsbase, (void **), static)
^
/usr/local/obj/usr/src/amd64.amd64/tmp/usr/include/x86/ifunc.h:43:44:
note: expanded from macro 'DEFINE_UIFUNC'
--- amd64_get_fsbase.o ---
DEFINE_UIFUNC(, int, amd64_get_fsbase, (void **), static)
^
/usr/local/obj/usr/src/amd64.amd64/tmp/usr/include/x86/ifunc.h:43:44:
note: expanded from macro 'DEFINE_UIFUNC'
--- amd64_get_gsbase.o ---
qual ret_type name args __attribute__((ifunc(#name "_resolver"))); \
^
--- amd64_get_fsbase.o ---
qual ret_type name args __attribute__((ifunc(#name "_resolver"))); \
^
1 error generated.
--- amd64_get_gsbase.o ---
1 error generated.
*** [amd64_get_gsbase.o] Error code 1
make[4]: stopped in /usr/src/lib/libc
CI appears green after this commit, so I'm inclined to pin this on yet
another instance of LLVM 7 being stricter than LLVM 6. Backing out this
revision allows the build to continue (successfully).
--
Charlie Li
Can't think of a witty .sigline today…
(This email address is for mailing list use only; replace local-part
with vishwin for off-list communication)
signature.asc
Description: OpenPGP digital signature
