This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [patch] Fix "make check" failure to build on Ubuntu 14.04 LTS
- From: Adhemerval Zanella <adhemerval dot zanella at linaro dot org>
- To: libc-alpha at sourceware dot org
- Date: Mon, 18 Jan 2016 19:13:07 -0200
- Subject: Re: [patch] Fix "make check" failure to build on Ubuntu 14.04 LTS
- Authentication-results: sourceware.org; auth=none
- References: <CALoOobPf=6Lc=1=ZTRK3SuRnfhQw1HChGg96MF_yWx=_iB7zLw at mail dot gmail dot com>
On 18-01-2016 18:40, Paul Pluzhnikov wrote:
> On Mon, Dec 7, 2015 at 10:13 AM, Joseph Myers <joseph@codesourcery.com> wrote:
>> On Mon, 7 Dec 2015, Paul Pluzhnikov wrote:
>>
>>> Testing with (gcc-4.8 Ubuntu 4.8.4-2ubuntu1~14.04) 4:4.8.2-1ubuntu6
>>> fails for apparently unrelated reasons:
>>>
>>> build/math/test-double-vlen2-wrappers.o: In function `cos_vlen2':
>>> /glibc-git/math/../sysdeps/x86_64/fpu/test-double-vlen2-wrappers.c:24:
>>> undefined reference to `_ZGVbN2v_cos'
>>> /glibc-git/build-system-gcc/math/test-double-vlen2-wrappers.o: In
>>> function `sin_vlen2':
>>> /glibc-git/math/../sysdeps/x86_64/fpu/test-double-vlen2-wrappers.c:25:
>>> undefined reference to `_ZGVbN2v_sin'
>>> ... etc.
>>
>> You should raise that with Andrew Senkevich, including details of whether
>> libmvec got built, what symbols it exports, the command line used for that
>> link, etc.
>
> This continues to fail.
>
> mkdir /tmp/build; cd /tmp/build;
> ~/Archive/glibc-git/configure --prefix=/usr
> make -j40 && make check
> ...
> gcc -nostdlib -nostartfiles -o /tmp/glibc-build/math/test-double-vlen2
> -Wl,-z,combreloc -Wl,-z,relro -Wl,--hash-style=both
> /tmp/glibc-build/csu/crt1.o /tmp/glibc-build/csu/crti.o `gcc
> --print-file-name=crtbegin.o`
> /tmp/glibc-build/math/test-double-vlen2.o
> /tmp/glibc-build/math/libm.so.6 /tmp/glibc-build/mathvec/libmvec.so.1
> /tmp/glibc-build/math/test-double-vlen2-wrappers.o
> -Wl,-dynamic-linker=/lib64/ld-linux-x86-64.so.2
> -Wl,-rpath-link=/tmp/glibc-build:/tmp/glibc-build/math:/tmp/glibc-build/elf:/tmp/glibc-build/dlfcn:/tmp/glibc-build/nss:/tmp/glibc-build/nis:/tmp/glibc-build/rt:/tmp/glibc-build/resolv:/tmp/glibc-build/crypt:/tmp/glibc-build/mathvec:/tmp/glibc-build/nptl
> /tmp/glibc-build/libc.so.6 /tmp/glibc-build/libc_nonshared.a
> -Wl,--as-needed /tmp/glibc-build/elf/ld.so -Wl,--no-as-needed -lgcc
> -Wl,--as-needed -lgcc_s -Wl,--no-as-needed `gcc
> --print-file-name=crtend.o` /tmp/glibc-build/csu/crtn.o
> /tmp/glibc-build/math/test-double-vlen2-wrappers.o: In function `cos_vlen2':
> /Archive/glibc-git/math/../sysdeps/x86_64/fpu/test-double-vlen2-wrappers.c:24:
> undefined reference to `_ZGVbN2v_cos'
> /tmp/glibc-build/math/test-double-vlen2-wrappers.o: In function `sin_vlen2':
> /Archive/glibc-git/math/../sysdeps/x86_64/fpu/test-double-vlen2-wrappers.c:25:
> undefined reference to `_ZGVbN2v_sin'
> /tmp/glibc-build/math/test-double-vlen2-wrappers.o: In function `sincos_vlen2':
> /Archive/glibc-git/math/../sysdeps/x86_64/fpu/test-double-vlen2-wrappers.c:26:
> undefined reference to `_ZGVbN2vvv_sincos'
> /tmp/glibc-build/math/test-double-vlen2-wrappers.o: In function `log_vlen2':
> /Archive/glibc-git/math/../sysdeps/x86_64/fpu/test-double-vlen2-wrappers.c:27:
> undefined reference to `_ZGVbN2v_log'
> /tmp/glibc-build/math/test-double-vlen2-wrappers.o: In function `exp_vlen2':
> /Archive/glibc-git/math/../sysdeps/x86_64/fpu/test-double-vlen2-wrappers.c:28:
> undefined reference to `_ZGVbN2v_exp'
> /tmp/glibc-build/math/test-double-vlen2-wrappers.o: In function `pow_vlen2':
> /Archive/glibc-git/math/../sysdeps/x86_64/fpu/test-double-vlen2-wrappers.c:29:
> undefined reference to `_ZGVbN2vv_pow'
> collect2: error: ld returned 1 exit status
> ../Rules:154: recipe for target '/tmp/glibc-build/math/test-double-vlen2' failed
> make[2]: *** [/tmp/glibc-build/math/test-double-vlen2] Error 1
> make[2]: Leaving directory '/Archive/glibc-git/math'
> Makefile:214: recipe for target 'math/tests' failed
> make[1]: *** [math/tests] Error 2
> make[1]: Leaving directory '/Archive/glibc-git'
> Makefile:9: recipe for target 'check' failed
> make: *** [check] Error 2
>
> $ readelf -Ws /tmp/glibc-build/mathvec/libmvec.so.1 | grep _ZGVbN2vvv_sincos
> 26: 0000000000001ec0 35 IFUNC GLOBAL DEFAULT 13
> _ZGVbN2vvv_sincos@@GLIBC_2.22
> 54: 0000000000001ec0 35 IFUNC LOCAL DEFAULT 13
> __GI__ZGVbN2vvv_sincos
> 105: 0000000000001ef0 109 FUNC LOCAL DEFAULT 13
> _ZGVbN2vvv_sincos_sse2
> 108: 0000000000003f40 874 FUNC LOCAL DEFAULT 13
> _ZGVbN2vvv_sincos_sse4
> 196: 0000000000001ec0 35 IFUNC GLOBAL DEFAULT 13 _ZGVbN2vvv_sincos
>
>
> The problem appears to be that test-double-vlen2-wrappers.o is on the
> link line after libmvec.so.1, and indeed if I move libmvec.so.1 after
> test-double-vlen2-wrappers.o, the link succeeds.
>
> Attached patch fixes the problem. Ok for trunk?
>
> Thanks,
Is this tied to an specific make/binutils/gcc version that only shows itself
on Ubuntu 14.04?
>
>
>
> 2016-01-18 Paul Pluzhnikov <ppluzhnikov@google.com>
>
> * math/Makefile (libm-vec-tests): Move libraries after wrappers.o
>