[PATCH] alpha: Do not build with -fpic

Adhemerval Zanella adhemerval.zanella@linaro.org
Tue Mar 3 11:21:00 GMT 2020



On 02/03/2020 13:31, Adhemerval Zanella wrote:
> 
> 
> On 02/03/2020 13:22, Florian Weimer wrote:
>> * Jeff Law:
>>
>>> On Mon, 2020-03-02 at 16:58 +0100, Florian Weimer wrote:
>>>> The combination of GCC 10 and binutils 2.35 (both unreleased) is no
>>>> longer able to link the dynamic linker, due to a GP16 relocation
>>>> overflow error:
>>>>
>>>> glibc/alpha-linux-gnu/elf/librtld.os: in function `calloc':
>>>> glibc/elf/../include/rtld-malloc.h:44:(.text+0xd98): relocation truncated to
>>>> fit: GPREL16 against symbol `__rtld_calloc' defined in .data.rel.ro section
>>>> in glibc/alpha-linux-gnu/elf/librtld.os
>>>> glibc/alpha-linux-gnu/elf/librtld.os: in function `malloc':
>>>> glibc/elf/../include/rtld-malloc.h:56:(.text+0x2978): relocation truncated to
>>>> fit: GPREL16 against symbol `__rtld_malloc' defined in .data.rel.ro section
>>>> in glibc/alpha-linux-gnu/elf/librtld.os
>>>>
>>>> This is arguably a linker bug; the object files and their section size
>>>> requirements look reasonable enough.
>>>>
>>>> Using -fPIC (the default) works around this issue.
>>> Thanks.  I was literally just about to start chasing this down.  Everything was
>>> fine last build (a week ago) and blew up in last night's test:
>>>
>>> http://3.14.90.209:8080/job/alpha-linux-gnu/lastFailedBuild/
>>
>> Credits for spotting this should go to Joseph:
>>
>>   <https://www.sourceware.org/ml/libc-alpha/2020-02/msg01023.html>
>>
>> Now we need an alpha maintainer to review the workaround.
> 
> I fired up a build/check on a alpha machine, I will post the result
> once it is done.
> 

The results are essentially the same as the one I got for 2.31 release [1],
so no regression. I used the same toolchain on same kernel (Linux 5.3.6-titan-p1+,
gcc 8.3.0, binutils 2.31.1).

FAIL: crypt/badsalttest   
FAIL: elf/tst-prelink-cmp
XPASS: elf/tst-protected1a
XPASS: elf/tst-protected1b
UNSUPPORTED: iconv/tst-gconv-init-failure
UNSUPPORTED: io/test-lfs
UNSUPPORTED: io/tst-fallocate
UNSUPPORTED: io/tst-fallocate64
FAIL: io/tst-fts-lfs
FAIL: math/test-double-fma
FAIL: math/test-double-llrint
FAIL: math/test-double-llround
FAIL: math/test-double-lrint
FAIL: math/test-double-lround
FAIL: math/test-double-remainder
FAIL: math/test-double-scalbln
FAIL: math/test-double-scalbn
FAIL: math/test-fenv-return
FAIL: math/test-fexcept
FAIL: math/test-float-double-add
FAIL: math/test-float-double-sub
FAIL: math/test-float-fma
FAIL: math/test-float-ldouble-add
FAIL: math/test-float-ldouble-sub
FAIL: math/test-float-llrint
FAIL: math/test-float-llround
FAIL: math/test-float-lrint
FAIL: math/test-float-lround
FAIL: math/test-float-scalbln
FAIL: math/test-float-scalbn
FAIL: math/test-float128-llrint
FAIL: math/test-float128-llround
FAIL: math/test-float128-lrint
FAIL: math/test-float128-lround
FAIL: math/test-float32-float128-add
FAIL: math/test-float32-float128-sub
FAIL: math/test-float32-float32x-add
FAIL: math/test-float32-float32x-sub
FAIL: math/test-float32-float64-add
FAIL: math/test-float32-float64-sub
FAIL: math/test-float32-float64x-add
FAIL: math/test-float32-float64x-sub
FAIL: math/test-float32-fma
FAIL: math/test-float32-llrint
FAIL: math/test-float32-llround
FAIL: math/test-float32-lrint
FAIL: math/test-float32-lround
FAIL: math/test-float32-scalbln
FAIL: math/test-float32-scalbn
FAIL: math/test-float32x-fma
FAIL: math/test-float32x-llrint
FAIL: math/test-float32x-llround
FAIL: math/test-float32x-lrint
FAIL: math/test-float32x-lround
FAIL: math/test-float32x-remainder
FAIL: math/test-float32x-scalbln
FAIL: math/test-float32x-scalbn
FAIL: math/test-float64-fma
FAIL: math/test-float64-llrint
FAIL: math/test-float64-llround
FAIL: math/test-float64-lrint
FAIL: math/test-float64-lround
FAIL: math/test-float64-remainder
FAIL: math/test-float64-scalbln
FAIL: math/test-float64-scalbn
FAIL: math/test-float64x-llrint
FAIL: math/test-float32x-llround
FAIL: math/test-float32x-lrint
FAIL: math/test-float32x-lround
FAIL: math/test-float32x-remainder
FAIL: math/test-float32x-scalbln
FAIL: math/test-float32x-scalbn
FAIL: math/test-float64-fma
FAIL: math/test-float64-llrint
FAIL: math/test-float64-llround
FAIL: math/test-float64-lrint
FAIL: math/test-float64-lround
FAIL: math/test-float64-remainder
FAIL: math/test-float64-scalbln
FAIL: math/test-float64-scalbn
FAIL: math/test-float64x-llrint
FAIL: math/test-float64x-llround
FAIL: math/test-float64x-lrint
FAIL: math/test-float64x-lround
FAIL: math/test-ldouble-llrint
FAIL: math/test-ldouble-llround
FAIL: math/test-ldouble-lrint
FAIL: math/test-ldouble-lround
UNSUPPORTED: misc/tst-pkey
UNSUPPORTED: nptl/test-cond-printers
UNSUPPORTED: nptl/test-condattr-printers
UNSUPPORTED: nptl/test-mutex-printers
UNSUPPORTED: nptl/test-mutexattr-printers
UNSUPPORTED: nptl/test-rwlock-printers
UNSUPPORTED: nptl/test-rwlockattr-printers
UNSUPPORTED: timezone/tst-tzset
Summary of test results:  
     67 FAIL
   5004 PASS
     12 UNSUPPORTED
     17 XFAIL
      2 XPASS

[1] https://sourceware.org/glibc/wiki/Release/2.31#Alpha



More information about the Libc-alpha mailing list