mirror of
https://git.yoctoproject.org/poky
synced 2026-02-13 12:13:02 +01:00
Backport the patches for PR2404 and PR16476 from binutils to resolve failures when compiling systemd from git. (From OE-Core rev: 25e376f6c8c66cca95ae7fa7f512b7dadfdd6140) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
77 lines
2.3 KiB
Diff
77 lines
2.3 KiB
Diff
From: H.J. Lu <hjl.tools@gmail.com>
|
|
Date: Tue, 21 Jan 2014 13:33:48 +0000 (-0800)
|
|
Subject: Don't check shared/export_dynamic/ref_dynamic for type mismatch
|
|
X-Git-Tag: hjl/linux/release/2.24.51.0.3~1^2~8^2~22
|
|
X-Git-Url: https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;a=commitdiff_plain;h=22ef172a21663abb477d72284b4d59c8eabcbb82
|
|
|
|
Don't check shared/export_dynamic/ref_dynamic for type mismatch
|
|
|
|
There is nothing linker can do when a type mismatched default definition
|
|
are made dynamic by info->shared, info->export_dynamic or h->ref_dynamic.
|
|
But we do want to avoid exporting it when building PIE. Let's remove
|
|
those checks.
|
|
|
|
bfd/
|
|
|
|
PR ld/2404
|
|
* elflink.c (_bfd_elf_merge_symbol): Don't check info->shared,
|
|
info->export_dynamic, nor !h->ref_dynamic for type mismatch when
|
|
adding the default version.
|
|
|
|
ld/testsuite/
|
|
|
|
PR ld/2404
|
|
* ld-elf/shared.exp: Add a PIE test for PR ld/2404.
|
|
|
|
Upstream-Status: Backport
|
|
---
|
|
|
|
Index: binutils-2.24/bfd/elflink.c
|
|
===================================================================
|
|
--- binutils-2.24.orig/bfd/elflink.c 2014-02-08 13:20:08.628378267 +0000
|
|
+++ binutils-2.24/bfd/elflink.c 2014-02-08 13:20:08.624378267 +0000
|
|
@@ -1090,9 +1090,6 @@
|
|
the type of existing regular definition mismatch. We only do it
|
|
if the existing regular definition won't be dynamic. */
|
|
if (pold_alignment == NULL
|
|
- && !info->shared
|
|
- && !info->export_dynamic
|
|
- && !h->ref_dynamic
|
|
&& newdyn
|
|
&& newdef
|
|
&& !olddyn
|
|
Index: binutils-2.24/ld/testsuite/ld-elf/shared.exp
|
|
===================================================================
|
|
--- binutils-2.24.orig/ld/testsuite/ld-elf/shared.exp 2014-02-08 13:20:08.628378267 +0000
|
|
+++ binutils-2.24/ld/testsuite/ld-elf/shared.exp 2014-02-08 13:20:08.624378267 +0000
|
|
@@ -432,3 +432,29 @@
|
|
|
|
run_cc_link_tests $build_cxx_tests
|
|
run_ld_link_exec_tests [] $run_cxx_tests
|
|
+
|
|
+if { [istarget *-*-linux*]
|
|
+ || [istarget *-*-nacl*]
|
|
+ || [istarget *-*-gnu*] } {
|
|
+ run_cc_link_tests [list \
|
|
+ [list \
|
|
+ "Build libpr2404b.a with PIE" \
|
|
+ "" \
|
|
+ "-fPIE" \
|
|
+ { pr2404b.c } \
|
|
+ {} \
|
|
+ "libpr2404b.a" \
|
|
+ ] \
|
|
+ ]
|
|
+ run_ld_link_exec_tests [] [list \
|
|
+ [list \
|
|
+ "Run pr2404 with PIE" \
|
|
+ "-pie tmpdir/pr2404b.o tmpdir/libpr2404a.so" \
|
|
+ "" \
|
|
+ { dummy.c } \
|
|
+ "pr2404pie" \
|
|
+ "pr2404.out" \
|
|
+ "-fPIE" \
|
|
+ ] \
|
|
+ ]
|
|
+}
|