This is the mail archive of the glibc-bugs@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]

[Bug libc/19574] glibc should support building static PIE binaries


https://sourceware.org/bugzilla/show_bug.cgi?id=19574

--- Comment #4 from cvs-commit at gcc dot gnu.org <cvs-commit at gcc dot gnu.org> ---
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".

The branch, hjl/pie/static has been created
        at  64d957024bd253920061cc4c75ddf1287e42c17b (commit)

- Log -----------------------------------------------------------------
https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=64d957024bd253920061cc4c75ddf1287e42c17b

commit 64d957024bd253920061cc4c75ddf1287e42c17b
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Tue Oct 3 17:35:17 2017 -0700

    Fix --enable-static-pie

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=8be686b5d2149f04b2328d0b3d1f6fbe40e4e47f

commit 8be686b5d2149f04b2328d0b3d1f6fbe40e4e47f
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Tue Oct 3 17:11:55 2017 -0700

    test-math-iscanonical.cc: Replace bool with int

    Fix GCC 7 compilation error:

    test-math-iscanonical.cc: In function ‘void check_type()’:
    test-math-iscanonical.cc:33:11: error: use of an operand of type ‘bool’ in
‘operator++’ is deprecated [-Werror=deprecated]
         errors++;
               ^~

        * math/test-math-iscanonical.cc (error): Replace bool with int.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=7dbd6f4b7e299a6448838ac2d33d2340eddc3f8f

commit 7dbd6f4b7e299a6448838ac2d33d2340eddc3f8f
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Tue Oct 3 16:43:10 2017 -0700

    Fix Use $(DEFAULT-LDFLAGS-$(@F)) in +link-static-before-libc

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=26dba541029a992ec3bc28db72c261ca92fff62b

commit 26dba541029a992ec3bc28db72c261ca92fff62b
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Tue Oct 3 16:05:59 2017 -0700

    Update dl-reloc-static-pie.c

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=6f429fe0f1c7a5d16dec356cfa4c7bbca39b9f11

commit 6f429fe0f1c7a5d16dec356cfa4c7bbca39b9f11
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Tue Oct 3 16:04:03 2017 -0700

    Add dl-reloc-static-pie.c

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=86ffc842702faea44f7b3ebf76fac99bf326fcbc

commit 86ffc842702faea44f7b3ebf76fac99bf326fcbc
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed Sep 27 16:47:29 2017 -0700

    Add --enable-static-pie to build-many-glibcs.py

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=a8fd5b03471befddc3cdbed00d7db54298660023

commit a8fd5b03471befddc3cdbed00d7db54298660023
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Thu Sep 28 16:13:54 2017 -0700

    sparc: Check PIC instead of SHARED in start.S

    Since start.o may be compiled as PIC, we should check PIC instead of
    SHARED.

        * sysdeps/sparc/sparc32/start.S (_start): Check PIC instead of
        SHARED.
        * sysdeps/sparc/sparc64/start.S (_start): Likewise.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=b4a008a2de115f102d1ea4a62f50ac17bda2692c

commit b4a008a2de115f102d1ea4a62f50ac17bda2692c
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Thu Sep 28 16:13:22 2017 -0700

    microblaze: Check PIC instead of SHARED in start.S

    Since start.o may be compiled as PIC, we should check PIC instead of
    SHARED.

        * sysdeps/microblaze/start.S (_start): Check PIC instead of SHARED.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=26980a9466847ff15bff60a9a36498da1c7f5d46

commit 26980a9466847ff15bff60a9a36498da1c7f5d46
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Thu Sep 28 16:12:52 2017 -0700

    m68k: Check PIC instead of SHARED in start.S

    Since start.o may be compiled as PIC, we should check PIC instead of
    SHARED.

        * sysdeps/m68k/start.S (_start): Check PIC instead of SHARED.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=3c6968d9f5b7b47e1099b090239d6d240b8cad52

commit 3c6968d9f5b7b47e1099b090239d6d240b8cad52
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Thu Sep 28 16:12:28 2017 -0700

    hppa: Check PIC instead of SHARED in start.S

    Since start.o may be compiled as PIC, we should check PIC instead of
    SHARED.

        * sysdeps/hppa/start.S (_start): Check PIC instead of SHARED.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=9a98e37b67d6a1ae6eb499b0c9dd23b664a1e165

commit 9a98e37b67d6a1ae6eb499b0c9dd23b664a1e165
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Thu Sep 28 16:11:02 2017 -0700

    aarch64: Check PIC instead of SHARED in start.S

    Since start.o may be compiled as PIC, we should check PIC instead of
    SHARED.

        * sysdeps/aarch64/start.S (_start): Check PIC instead of SHARED.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=dfa19eda45eefa5f6b2845f42ef8146cee30828d

commit dfa19eda45eefa5f6b2845f42ef8146cee30828d
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Thu Sep 28 14:55:18 2017 -0700

    sh: Update elf_machine_load_address for static PIE

    When --enable-static-pie is used to configure glibc, we need to use
    _dl_relocate_static_pie to compute load address in static PIE.

        * sysdeps/sh/dl-machine.h (elf_machine_load_address): Use
        _dl_relocate_static_pie instead of _dl_start to compute load
        address in static PIE.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=761b339e1530aae4fa43d3b5972d6b6d980ced71

commit 761b339e1530aae4fa43d3b5972d6b6d980ced71
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Thu Sep 28 14:53:06 2017 -0700

    s390: Update elf_machine_load_address for static PIE

    When --enable-static-pie is used to configure glibc, we need to use
    _dl_relocate_static_pie to compute load address in static PIE.

        * sysdeps/s390/s390-32/dl-machine.h (elf_machine_dynamic): Use
        _dl_relocate_static_pie instead of _dl_start to compute load
        address in static PIE.
        * sysdeps/s390/s390-64/dl-machine.h (elf_machine_dynamic):
        Likewise.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=4209ccbd250c858db5972bad8eef985d0e558d02

commit 4209ccbd250c858db5972bad8eef985d0e558d02
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Thu Sep 28 14:46:26 2017 -0700

    m68k: Update elf_machine_load_address for static PIE

    When --enable-static-pie is used to configure glibc, we need to use
    _dl_relocate_static_pie to compute load address in static PIE.

        * sysdeps/m68k/dl-machine.h (elf_machine_load_address): Use
        _dl_relocate_static_pie instead of _dl_start to compute load
        address in static PIE.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=42b7a7665875ae3e8cabd1ab53379357509d490c

commit 42b7a7665875ae3e8cabd1ab53379357509d490c
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Thu Sep 28 14:36:33 2017 -0700

    aarch64: Update elf_machine_load_address for static PIE

    When --enable-static-pie is used to configure glibc, we need to use
    _dl_relocate_static_pie to compute load address in static PIE.

        * sysdeps/aarch64/dl-machine.h (elf_machine_load_address): Use
        _dl_relocate_static_pie instead of _dl_start to compute load
        address in static PIE.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=c3b2185725b349597a399116010960520097f255

commit c3b2185725b349597a399116010960520097f255
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Tue Aug 22 15:37:10 2017 -0700

    Don't use hidden visibility in libc.a with PIE on i386

    On i386, when multi-arch is enabled, all external functions must be
    called via PIC PLT in PIE, which requires setting up EBX register,
    since they may be IFUNC functions.

        * config.h.in (NO_HIDDEN_EXTERN_FUNC_IN_PIE): New.
        * include/libc-symbols.h (__hidden_proto_hiddenattr): Add check
        for PIC and NO_HIDDEN_EXTERN_FUNC_IN_PIE.
        * sysdeps/i386/configure.ac (NO_HIDDEN_EXTERN_FUNC_IN_PIE): New
        AC_DEFINE if multi-arch is enabled.
        * sysdeps/i386/configure: Regenerated.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=2792d2c0983d9d89569216a4dd5ee5e388c40a40

commit 2792d2c0983d9d89569216a4dd5ee5e388c40a40
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Mon Jul 17 08:17:32 2017 -0700

    Add --enable-static-pie configure option to build static PIE [BZ #19574]

    Dynamic linker, ld.so, is a standalone program which can be loaded at
    any address.  This patch adds a configure option, --enable-static-pie,
    to embed the part of ld.so in static executable to create static position
    independent executable (static PIE).  A static PIE is similar to static
    executable, but can be loaded at any address without help from a dynamic
    linker.  When --enable-static-pie is used to configure glibc, libc.a is
    built as PIE and all static executables, including tests, are built as
    static PIE.  The resulting libc.a can be used together with GCC 8 or
    above to build static PIE with the compiler option, -static-pie.  But
    GCC 8 isn't required to build glibc with --enable-static-pie.  When an
    older GCC is used to build glibc with --enable-static-pie, proper input
    files are passed to linker to create static executables as static PIE,
    together with "-z text" to prevent dynamic relocations in read-only
    segments, which are allowed in static PIE.

    Static PIE can work on all architectures which support PIE, provided

    1. Target must support accessing of local functions without dynamic
    relocations, which is needed in start.S to call __libc_start_main with
    function addresses of __libc_csu_init, __libc_csu_fini and main.  All
    functions in statice PIE are local functions.
    2. start.S is updated to check PIC instead SHARED for PIC code path and
    avoid dynamic relocation, when PIC is defined and SHARED isn't defined,
    to support static PIE.  Patches are submitted for aarch64, arm, hppa,
    m68k, microblaze and sparc.
    3. All assembly codes are updated check PIC instead SHARED for PIC code
    path to avoid dynamic relocations in read-only sections.
    4. All assembly codes are updated check SHARED instead PIC for static
    symbol name.  A patch is submitted for tile.
    5. elf_machine_load_address in dl-machine.h are updated to support static
    PIE.  Patches are submitted for aarch64, arm, hppa, ia64, m68k, microblaze,
    mips, nios2, powerpc, s390, sh, sparc and tile.

    NB: When glibc is built with GCC defaulted to PIE, libc.a is compiled
    with -fPIE, regardless if --enable-static-pie is used to configure glibc.
    When glibc is configured with --enable-static-pie, libc.a is compiled
    with -fPIE, regardless wether GCC defaults to PIE or not.  The same libc.a
    can be used to build both static executable and static PIE.  There is no
    need for separate PIE copy of libc.a.

    Linker requirements to build glibc with --enable-static-pie:

    1. Linker supports --no-dynamic-linker to remove PT_INTERP segment from
    static PIE.
    2. Linker can create working static PIE.  The x86-64 linker needs the
    fix for

    https://sourceware.org/bugzilla/show_bug.cgi?id=21782

    The i386 linker needs to be able to convert "movl main@GOT(%ebx), %eax"
    to "leal main@GOTOFF(%ebx), %eax" if main is defined locally.

    Binutils 2.29 or above are OK for i686 and x86-64.  But linker status for
    other targets need to be verified.

    Tested on i686 and x86-64.

    Build results of build-many-glibcs.py with --enable-static-pie with all
    patches for static PIE applied are

    PASS: glibcs-aarch64_be-linux-gnu build
    PASS: glibcs-aarch64-linux-gnu build
    PASS: glibcs-armeb-linux-gnueabi build
    PASS: glibcs-armeb-linux-gnueabi-be8 build
    PASS: glibcs-armeb-linux-gnueabihf build
    PASS: glibcs-armeb-linux-gnueabihf-be8 build
    PASS: glibcs-arm-linux-gnueabi build
    PASS: glibcs-arm-linux-gnueabihf build
    PASS: glibcs-hppa-linux-gnu build
    PASS: glibcs-i486-linux-gnu build
    PASS: glibcs-i586-linux-gnu build
    PASS: glibcs-i686-linux-gnu build
    PASS: glibcs-i686-linux-gnu-disable-multi-arch build
    PASS: glibcs-m68k-linux-gnu build
    PASS: glibcs-microblazeel-linux-gnu build
    PASS: glibcs-microblaze-linux-gnu build
    PASS: glibcs-mips64el-linux-gnu-n64 build
    PASS: glibcs-mips64el-linux-gnu-n64-nan2008 build
    PASS: glibcs-mips64el-linux-gnu-n64-nan2008-soft build
    PASS: glibcs-mips64el-linux-gnu-n64-soft build
    PASS: glibcs-mips64-linux-gnu-n64 build
    PASS: glibcs-mips64-linux-gnu-n64-nan2008 build
    PASS: glibcs-mips64-linux-gnu-n64-nan2008-soft build
    PASS: glibcs-mips64-linux-gnu-n64-soft build
    PASS: glibcs-nios2-linux-gnu build
    PASS: glibcs-powerpc64le-linux-gnu build
    PASS: glibcs-powerpc64-linux-gnu build
    PASS: glibcs-s390x-linux-gnu build
    PASS: glibcs-x86_64-linux-gnu build
    PASS: glibcs-x86_64-linux-gnu-disable-multi-arch build
    PASS: glibcs-x86_64-linux-gnu-x32 build

    FAIL: glibcs-alpha-linux-gnu build

    elf/sln is failed to link due to:

    assertion fail bfd/elf64-alpha.c:4125

    This is caused by linker bug and/or non-PIC code in PIE libc.a.

    FAIL: glibcs-ia64-linux-gnu build

    elf/sln is failed to link due to:

    libc.a(sched_yield.o): non-pic code with imm relocation against dynamic
symbol `_dl_sysinfo'

    This is caused by non-PIC version of DO_CALL macro in ia64 sysdep.h.  PIE
    libc.a should use PIC version of DO_CALL, except during startup in static
    PIE.  An ia64 startup.h, similar to i386 startup.h, is needed to handle
    this.

    FAIL: glibcs-mips64el-linux-gnu-n32 build
    FAIL: glibcs-mips64el-linux-gnu-n32-nan2008 build
    FAIL: glibcs-mips64el-linux-gnu-n32-nan2008-soft build
    FAIL: glibcs-mips64el-linux-gnu-n32-soft build
    FAIL: glibcs-mips64-linux-gnu-n32 build
    FAIL: glibcs-mips64-linux-gnu-n32-nan2008 build
    FAIL: glibcs-mips64-linux-gnu-n32-nan2008-soft build
    FAIL: glibcs-mips64-linux-gnu-n32-soft build
    FAIL: glibcs-mipsel-linux-gnu build
    FAIL: glibcs-mipsel-linux-gnu-nan2008 build
    FAIL: glibcs-mipsel-linux-gnu-nan2008-soft build
    FAIL: glibcs-mipsel-linux-gnu-soft build
    FAIL: glibcs-mips-linux-gnu build
    FAIL: glibcs-mips-linux-gnu-nan2008 build
    FAIL: glibcs-mips-linux-gnu-nan2008-soft build
    FAIL: glibcs-mips-linux-gnu-soft build

    elf/sln is failed to link due to:

    crt1.o: relocation R_MIPS_HI16 against `_gp' can not be used when making a
shared object; recompile with -fPIC

    This is caused by linker bug and/or non-PIC code in crt1.o.

    FAIL: glibcs-powerpc-linux-gnu build
    FAIL: glibcs-powerpc-linux-gnu-soft build
    FAIL: glibcs-powerpc-linux-gnuspe build
    FAIL: glibcs-powerpc-linux-gnuspe-e500v1 build

    elf/sln is failed to link due to:

    ld: read-only segment has dynamic relocations.

    This is caused by linker bug and/or non-PIC code in PIE libc.a.

    FAIL: glibcs-powerpc-linux-gnu-power4 build

    elf/sln is failed to link due to:

    findlocale.c:96:(.text+0x22c): @local call to ifunc memchr

    This is caused by linker bug and/or non-PIC code in PIE libc.a.

    FAIL: glibcs-s390-linux-gnu build

    elf/sln is failed to link due to:

    collect2: fatal error: ld terminated with signal 11 [Segmentation fault],
core dumped

    assertion fail bfd/elflink.c:14242

    This is caused by linker bug and/or non-PIC code in PIE libc.a.

    FAIL: glibcs-sh3eb-linux-gnu build
    FAIL: glibcs-sh3-linux-gnu build
    FAIL: glibcs-sh4eb-linux-gnu build
    FAIL: glibcs-sh4eb-linux-gnu-soft build
    FAIL: glibcs-sh4-linux-gnu build
    FAIL: glibcs-sh4-linux-gnu-soft build

    elf/sln is failed to link due to:

    ld: read-only segment has dynamic relocations.

    This is caused by linker bug and/or non-PIC code in PIE libc.a.

    FAIL: glibcs-sparc64-linux-gnu build
    FAIL: glibcs-sparcv9-linux-gnu build

    elf/sln is failed to link due to:

    ld: read-only segment has dynamic relocations.

    This is caused by linker bug and/or non-PIC code in PIE libc.a.

    FAIL: glibcs-tilegxbe-linux-gnu build
    FAIL: glibcs-tilegxbe-linux-gnu-32 build
    FAIL: glibcs-tilegx-linux-gnu build
    FAIL: glibcs-tilegx-linux-gnu-32 build
    FAIL: glibcs-tilepro-linux-gnu build

    elf/sln is failed to link due to:

    ld: read-only segment has dynamic relocations.

    This is caused by linker bug and/or non-PIC code in PIE libc.a.

        [BZ #19574]
        * INSTALL: Regenerated.
        * Makeconfig (pic-default): Updated for --enable-static-pie.
        (pie-default): New for --enable-static-pie.
        (default-pie-ldflag): Likewise.
        (+link-static-before-libc): Add $(default-pie-ldflag).
        (+prectorT): Updated for --enable-static-pie.
        (+postctorT): Likewise.
        (CFLAGS-.o): Add $(pie-default).
        (CFLAGS-.op): Likewise.
        * NEWS: Mention --enable-static-pie.
        * config.h.in (ENABLE_STATIC_PIE): New.
        * configure.ac (--enable-static-pie): New configure option.
        (have-no-dynamic-linker): New LIBC_CONFIG_VAR.
        (have-static-pie): Likewise.
        Enable static PIE if linker supports --no-dynamic-linker.
        (ENABLE_STATIC_PIE): New AC_DEFINE.
        (enable-static-pie): New LIBC_CONFIG_VAR.
        * configure: Regenerated.
        * csu/libc-start.c (LIBC_START_MAIN): Call _dl_relocate_static_pie
        in libc.a.
        * csu/libc-tls.c (__libc_setup_tls): Add main_map->l_addr to
        initimage.
        * elf/dl-support.c: Include "dynamic-link.h" and don't include
        "get-dynamic-info.h" for --enable-static-pie.
        (_dl_relocate_static_pie): New function for --enable-static-pie.
        (STATIC_PIE_BOOTSTRAP): New for --enable-static-pie.
        (BOOTSTRAP_MAP): Likewise.
        (RESOLVE_MAP): Likewise.
        * elf/dynamic-link.h (ELF_DURING_STARTUP): Also check
        STATIC_PIE_BOOTSTRAP.
        * elf/get-dynamic-info.h (elf_get_dynamic_info): Likewise.
        * manual/install.texi: Document --enable-static-pie.
        * sysdeps/generic/ldsodefs.h (_dl_relocate_static_pie): New.
        * sysdeps/i386/configure.ac: Check if linker supports static PIE.
        * sysdeps/x86_64/configure.ac: Likewise.
        * sysdeps/i386/configure: Regenerated.
        * sysdeps/x86_64/configure: Likewise.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=4d73532f5636be52b6445be9d0a2eafee5f4ba24

commit 4d73532f5636be52b6445be9d0a2eafee5f4ba24
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Tue Oct 3 06:54:54 2017 -0700

    i386: Use "movl main@GOT(%ebx), %eax" in start.S

    Don't use "leal main@GOTOFF(%ebx), %eax" since main may be in a
    shared object.  Linker will convert "movl main@GOT(%ebx), %eax"
    to "leal main@GOTOFF(%ebx), %eax" if main is defined locally.

        * sysdeps/i386/start.S: Replace "leal main@GOT(%ebx), %eax" with
        "movl main@GOTOFF(%ebx), %eax".

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=6e0cd13bf81411f222810240328aa03b2313a966

commit 6e0cd13bf81411f222810240328aa03b2313a966
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Tue Oct 3 06:48:11 2017 -0700

    Add a test for main () in a shared object

    Verify that crt1.o can be used with main () in a shared object.

        * elf/Makefile (tests): Add tst-main1.
        (modules-names): Add tst-main1mod.
        ($(objpfx)tst-main1): New.
        (CRT-tst-main1): Likewise.
        (LDFLAGS-tst-main1): Likewise.
        (LDLIBS-tst-main1): Likewise.
        (tst-main1mod.so-no-z-defs): Likewise.
        * elf/tst-main1.c: New file.
        * elf/tst-main1mod.c: Likewise.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=42bbc3513379917d1760a7f60e347cc91b565fb9

commit 42bbc3513379917d1760a7f60e347cc91b565fb9
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Tue Oct 3 14:35:52 2017 -0700

    Revert x86: Allow undefined _DYNAMIC in static executable

    This code is used in non-PIE static executable and static PIE.  It checks
    if _DYNAMIC is undefined before using it to compute load address.  But
    not all targets can convert access _DYNAMIC via GOT, which needs dynamic
    relocation, to PC-relative at link-time.

        * sysdeps/i386/dl-machine.h (elf_machine_load_address): Don't
        allow undefined _DYNAMIC in PIE libc.a.
        * sysdeps/x86_64/dl-machine.h (elf_machine_load_address):
        Likewse.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=6f3ce7fc4381fa522634755950d36ef870dc594e

commit 6f3ce7fc4381fa522634755950d36ef870dc594e
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Tue Oct 3 15:40:34 2017 -0700

    mips: Don't check _DYNAMIC in elf_machine_load_address

    Since mips can't convert access _DYNAMIC via GOT, which needs dynamic
    relocation, to PC-relative at link-time, don't check _DYNAMIC in
    elf_machine_load_address.

            * sysdeps/mips/dl-machine.h (elf_machine_load_address): Don't
            check _DYNAMIC.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=0bf96e84ef82eba764b729c6946b482d8b8a839f

commit 0bf96e84ef82eba764b729c6946b482d8b8a839f
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Tue Oct 3 15:36:22 2017 -0700

    arm: Don't check _DYNAMIC in elf_machine_load_address

    Since arm can't convert access _DYNAMIC via GOT, which needs dynamic
    relocation, to PC-relative at link-time, don't check _DYNAMIC in
    elf_machine_load_address.

            * sysdeps/arm/dl-machine.h (elf_machine_load_address): Don't
            check _DYNAMIC.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=4ff3d69aa407f815c1ddc3623ae045dde55f2b7f

commit 4ff3d69aa407f815c1ddc3623ae045dde55f2b7f
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Tue Oct 3 15:02:19 2017 -0700

    Use $(DEFAULT-LDFLAGS-$(@F)) in +link-static-before-libc

    Use $(LDFLAGS-$(@F)) with tst-tls1-static-non-pie may not be sufficient
    when static PIE is built by default.  Use $(DEFAULT-LDFLAGS-$(@F)) in
    +link-static-before-libc to make sure that tst-tls1-static-non-pie is
    always built as non-PIE static executable.

        * Makeconfig (+link-static-before-libc): Use
        $(DEFAULT-LDFLAGS-$(@F)).
        * elf/Makefile (LDFLAGS-tst-tls1-static-non-pie): Renamed to ...
        (DEFAULT-LDFLAGS-tst-tls1-static-non-pie): This.

-----------------------------------------------------------------------

-- 
You are receiving this mail because:
You are on the CC list for the bug.

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