This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: Decision time: Intel TSX Lock elision for glibc.
- From: Andi Kleen <andi at firstfloor dot org>
- To: Markus Trippelsdorf <markus at trippelsdorf dot de>
- Cc: Andi Kleen <andi at firstfloor dot org>, Carlos O'Donell <carlos at redhat dot com>, Andreas Jaeger <aj at suse dot com>, libc-alpha at sourceware dot org, Torvald Riegel <triegel at redhat dot com>, Rich Felker <dalias at aerifal dot cx>, Roland McGrath <roland at hack dot frob dot com>, "Joseph S. Myers" <joseph at codesourcery dot com>, hjl dot tools at gmail dot com
- Date: Tue, 2 Jul 2013 22:53:13 +0200
- Subject: Re: Decision time: Intel TSX Lock elision for glibc.
- References: <51D0A28F dot 4070409 at redhat dot com> <51D2121F dot 4020708 at redhat dot com> <51D27A43 dot 6020305 at suse dot com> <51D2ED73 dot 1090603 at redhat dot com> <20130702155326 dot GA6123 at two dot firstfloor dot org> <20130702171843 dot GA6555 at x4> <20130702201117 dot GB6123 at two dot firstfloor dot org> <20130702202122 dot GA518 at x4> <20130702203505 dot GC6123 at two dot firstfloor dot org> <20130702204300 dot GB518 at x4>
On Tue, Jul 02, 2013 at 10:43:00PM +0200, Markus Trippelsdorf wrote:
> On 2013.07.02 at 22:35 +0200, Andi Kleen wrote:
> > > Unfortunately no:
> > >
> > > ../nptl/sysdeps/unix/sysv/linux/x86/elision-conf.c:21:23: fatal error:
> > > init-arch.h: No such file or directory
> >
> > Odd. What distribution is that? Are you building without multiarch?
>
> Gentoo without multiarch:
Copying HJ, he helped me originally with the new x86/ setup.
Any ideas?
-Andi
>
> ~/glibc/configure --prefix=/usr --libdir=/usr/lib --libexecdir=/usr/lib
> --with-headers=/usr/include --enable-add-ons=nptl,libidn
> --enable-kernel=3.9 --with-tls --with-__thread --enable-bind-now
> --without-gd --without-cvs --disable-profile --disable-multi-arch
>
> The following patch fixes the issue above:
>
> diff --git a/nptl/sysdeps/unix/sysv/linux/x86/Makefile b/nptl/sysdeps/unix/sysv/linux/x86/Makefile
> index 61b7552..a361578 100644
> --- a/nptl/sysdeps/unix/sysv/linux/x86/Makefile
> +++ b/nptl/sysdeps/unix/sysv/linux/x86/Makefile
> @@ -1,3 +1,6 @@
> -libpthread-sysdep_routines += init-arch
> +CFLAGS-elision-lock.c = -I../sysdeps/x86_64/multiarch
> +CFLAGS-elision-unlock.c = -I../sysdeps/x86_64/multiarch
> +CFLAGS-elision-timed.c = -I../sysdeps/x86_64/multiarch
> +CFLAGS-elision-trylock.c = -I../sysdeps/x86_64/multiarch
> libpthread-sysdep_routines += elision-lock elision-unlock elision-timed \
> elision-trylock
>
> But the build now fails later:
>
> /var/tmp/glibc-build/nptl/libpthread_pic.a(elision-lock.os): In function
> `elision_init':
> /home/markus/glibc/nptl/../nptl/sysdeps/unix/sysv/linux/x86/elision-conf.c:73:
> undefined reference to `__get_cpu_features'
> collect2: error: ld returned 1 exit status
> make[2]: *** [/var/tmp/glibc-build/nptl/libpthread.so] Error 1
>
> --
> Markus
>
--
ak@linux.intel.com -- Speaking for myself only.