Age | Commit message (Collapse) | Author | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
midipix_build).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+ unset NATIVE_LIB_DIRS; leave handling of library search path to driver.
|
|
|
|
|
|
+ PE/COFF: properly handle references to addresses of weak data symbols.
+ a special thanks to Rich Felker, primary author of musl libc, for invaluable
help and direction.
+ while commit 8dfab477 did resolve binutils bug 16858, it did not address the
issue of references to weak data symbols. Before this patch, assembly of the
the following minimal example would result in p holding offset of dummy from
the beginning of the .data section which is always wrong (weak data symbols
should be treated the same way as external symbols) and never needed, namely
since the recorded dependency on 'a' suffices for the linker even in cases
where the strong symbol 'a' is not present.
+ relevant code path:
md_apply_fix(): for PE targets, and given a relocation based on a weak
symbol that is *not* a function, store the inverse of
the symbol value, retrieved via S_GET_VALUE (fixP->fx_addsy);
bfd_install_relocation(): here we relocate based on the weak symbol's
value: relocation = symbol->value; this value is later
added to the value that was stored to memory in the
previous step: DOIT(x); the result is zero plus any
offset that is symbol-relative (array member, etc.)
== TEST CASE ==
.data
.globl top
.balign 8
top:
.quad 0x12345678
.balign 4
dummy:
.long 7
.globl p
.balign 8
p:
.quad a
.weak a
.set a,dummy
== VERIFICATION ==
a.o: file format pe-x86-64
Disassembly of section .data:
0000000000000000 <top>:
0: 78 56 js 58 <p+0x48>
2: 34 12 xor $0x12,%al
4: 00 00 add %al,(%rax)
...
0000000000000008 <.weak.a.top>:
8: 07 (bad)
9: 00 00 add %al,(%rax)
b: 00 00 add %al,(%rax)
d: 00 00 add %al,(%rax)
...
0000000000000010 <p>:
...
10: R_X86_64_64 a
signed-off by Z. Gilboa; see copying.midipix (9cd0746c) for additional information.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
signed-off by Z. Gilboa; see copying.midipix (9cd0746c) for additional information.
|
|
signed-off by Z. Gilboa; see copying.midipix (9cd0746c) for additional information.
|
|
|
|
signed-off by Z. Gilboa; see copying.midipix (9cd0746c) for additional information.
|
|
|
|
|
|
+ smart_rename: fallback to simple_copy upon failure.
signed-off by Z. Gilboa; see copying.midipix (9cd0746c) for additional information.
|
|
+ pe targets: disable default timestamp / support reproducible builds by default.
signed-off by Z. Gilboa; see copying.midipix (9cd0746c) for additional information.
|
|
|
|
+ x86 midipix targets: build dlltool and windmc by default.
signed-off by Z. Gilboa; see copying.midipix (9cd0746c) for additional information.
|
|
|
|
|
|
+ PE/COFF: when exporting a symbol for which both a strong and a weak definition
exists, always use the strong definition.
signed-off by Z. Gilboa; see copying.midipix (9cd0746c) for additional information.
|
|
+ solve binutils bug 16858 by removing the offending code block in its entirety.
|
|
+ PE/COFF: distinguish between GOT entries and import library entries when
deciding whether a symbol may be exported.
signed-off by Z. Gilboa; see copying.midipix (9cd0746c) for additional information.
|
|
+ PE/COFF: allow a weak definition in an archive member to satisfy
a reference to an undefined external symbol in another object.
+ a special thanks to Rich Felker, primary author of musl libc, for identifying the
spot at which a fix needed to be applied.
signed-off by Z. Gilboa; see copying.midipix (9cd0746c) for additional information.
|
|
+ PE shared libraries: fix the logic that allows weak definitions to be exported
(cf. commit ddd1583).
signed-off by Z. Gilboa; see copying.midipix (9cd0746c) for additional information.
|
|
+ PE/COFF: allow a reference to an external symbol in one object file be satisfied
by a weak definition in another.
+ a special thanks to Rich Felker, primary author of musl libc, for identifying the
spot at which a fix needed to be applied.
signed-off by Z. Gilboa; see copying.midipix (9cd0746c) for additional information.
|