Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 1 Nov 2018 16:04:06 +0000
From:      Brooks Davis <brooks@freebsd.org>
To:        Charlie Li <ml@vishwin.info>
Cc:        Konstantin Belousov <kib@FreeBSD.org>, svn-src-head@freebsd.org, current@freebsd.org, toolchain@freebsd.org
Subject:   Re: svn commit: r339898 - head/lib/libc/amd64/sys
Message-ID:  <20181101160406.GA60233@spindle.one-eyed-alien.net>
In-Reply-To: <a2d14762-d6f9-4c3e-b3d3-efb7dcb2640f@vishwin.info>
References:  <201810300011.w9U0BUui038857@repo.freebsd.org> <a2d14762-d6f9-4c3e-b3d3-efb7dcb2640f@vishwin.info>

next in thread | previous in thread | raw e-mail | index | archive | help

--45Z9DzgjV8m4Oswq
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Thu, Nov 01, 2018 at 08:57:24AM -0400, Charlie Li wrote:
> 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
> >=20
> > Log:
> >   Convert amd64_get/set_fs/gsbase to ifunc.
> >  =20
> >   Note that this is the first use of ifuncs in our userspace.
> >  =20
> >   Sponsored by:	The FreeBSD Foundation
> >   MFC after:	1 month
> >=20
> > 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
> >=20
> Using LLVM 7 to build world, fails:
>=20
> --- 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
>=20
> make[4]: stopped in /usr/src/lib/libc
>=20
> 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).

Is this failure with devel/llvm70?  It's currently missing the patch
required to make this work.  https://reviews.freebsd.org/D17709 contains
this patch among others.  I'll see about getting it applied.

-- Brooks

--45Z9DzgjV8m4Oswq
Content-Type: application/pgp-signature; name="signature.asc"

-----BEGIN PGP SIGNATURE-----

iQEcBAEBAgAGBQJb2yP2AAoJEKzQXbSebgfA39kIAJ4/w70jlXm1KldpSc7K37Sd
mxV2Js4ZNOJgqp0eSGZJwekuTYXUGn8kQtOn52AemDZeHOw1zGRp9+wV0OqlaPrj
AchHnivDHkk1hHs0Yfv+zH/F2V2ED/kaYp+RDLZ0J73GYRsDv/HmVxQpmnIcDuf6
DfXmy+OdeD97MF6/ny+2v7xG4XFvxq04LZZ0uUiMANOJ2ARsi301HfQSOBSD+Y8J
76uP8aN9TCoC0p/ZT8JSFCEY3jps22fp4R1iOZGgqnb8Z/my6lbZs7R08ck3INoA
tn3uXFr1QTVOFzYwX/sDDRMj6fsRtJWsDCsCdMXYXNAq+OMwtc72A+W/JQVJoGc=
=Quxb
-----END PGP SIGNATURE-----

--45Z9DzgjV8m4Oswq--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20181101160406.GA60233>