Message ID | 87zhcykatj.fsf@oldenburg2.str.redhat.com |
---|---|
State | Committed |
Headers |
Received: (qmail 81146 invoked by alias); 2 Mar 2020 15:58:58 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: <libc-alpha.sourceware.org> List-Unsubscribe: <mailto:libc-alpha-unsubscribe-##L=##H@sourceware.org> List-Subscribe: <mailto:libc-alpha-subscribe@sourceware.org> List-Archive: <http://sourceware.org/ml/libc-alpha/> List-Post: <mailto:libc-alpha@sourceware.org> List-Help: <mailto:libc-alpha-help@sourceware.org>, <http://sourceware.org/ml/#faqs> Sender: libc-alpha-owner@sourceware.org Delivered-To: mailing list libc-alpha@sourceware.org Received: (qmail 81133 invoked by uid 89); 2 Mar 2020 15:58:58 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-19.0 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, RCVD_IN_DNSWL_NONE autolearn=ham version=3.3.1 spammy= X-HELO: us-smtp-1.mimecast.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1583164735; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=5TlHFGJzBiiGQvUEhrOdSsq9KSf/seY1JfgPp9kxDms=; b=KcQGZpxyhdJTjPZALlg7NIa8iBbcEiRlmvNRHRy3A1dJq/Byx3l9yoqFy+Y9D7mHEJULJC pqo8xJQUKUQcGZ/oefjux/lFVbQQzizNnWdsdnDegbp8Ne9SAsFphfgzsiqmHj4s8TrUI5 8N3OuR9NYp2JVrgGqxF/3YOzL3N+HtQ= From: Florian Weimer <fweimer@redhat.com> To: libc-alpha@sourceware.org Subject: [PATCH] alpha: Do not build with -fpic Date: Mon, 02 Mar 2020 16:58:48 +0100 Message-ID: <87zhcykatj.fsf@oldenburg2.str.redhat.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux) MIME-Version: 1.0 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain Content-Transfer-Encoding: quoted-printable |
Commit Message
Florian Weimer
March 2, 2020, 3:58 p.m. UTC
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. ----- sysdeps/alpha/Makefile | 4 ---- 1 file changed, 4 deletions(-)
Comments
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/ Jeff
* 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. Florian
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.
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
* Adhemerval Zanella: > 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). Thanks for ding this. Should I push the patch then? Florian
On 03/03/2020 09:28, Florian Weimer wrote: > * Adhemerval Zanella: > >> 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). > > Thanks for ding this. Should I push the patch then? I think it is the simplest solution, I tried built with -fpic -mlarge-text without success.
diff --git a/sysdeps/alpha/Makefile b/sysdeps/alpha/Makefile index da52c1d4d1..baf5d480e5 100644 --- a/sysdeps/alpha/Makefile +++ b/sysdeps/alpha/Makefile @@ -57,10 +57,6 @@ endif # "current" rounding mode, and it's easiest to set this with all of them. sysdep-CFLAGS += -mieee -mfp-rounding-mode=d -# libc.so requires about 16k for the small data area, which is well -# below the 64k maximum. -pic-ccflag = -fpic - # Software floating-point emulation. ifeq ($(subdir),soft-fp)