This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [patch] Fix "make check" failure to build on Ubuntu 14.04 LTS



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
> 


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]