mirror of
https://github.com/rui314/mold.git
synced 2024-12-24 00:43:18 +03:00
temporary
This commit is contained in:
parent
f0b350c4bd
commit
cb5d50d22c
@ -181,7 +181,8 @@ void InputSection::scan_relocations() {
|
||||
}
|
||||
break;
|
||||
case R_X86_64_TLSGD:
|
||||
assert(rels[i + 1].r_type == R_X86_64_PLT32);
|
||||
if (rels[i + 1].r_type != R_X86_64_PLT32)
|
||||
error(to_string(this) + ": TLSGD reloc not followed by PLT32");
|
||||
if (sym.is_imported) {
|
||||
std::lock_guard lock(sym.mu);
|
||||
sym.needs_tlsgd = true;
|
||||
@ -190,7 +191,8 @@ void InputSection::scan_relocations() {
|
||||
}
|
||||
break;
|
||||
case R_X86_64_TLSLD:
|
||||
assert(rels[i + 1].r_type == R_X86_64_PLT32);
|
||||
if (rels[i + 1].r_type != R_X86_64_PLT32)
|
||||
error(to_string(this) + ": TLSLD reloc not followed by PLT32");
|
||||
if (sym.is_imported) {
|
||||
std::lock_guard lock(sym.mu);
|
||||
sym.needs_tlsld = true;
|
||||
|
23
test/entry.sh
Executable file
23
test/entry.sh
Executable file
@ -0,0 +1,23 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
echo -n "Testing $(basename -s .sh $0) ..."
|
||||
t=$(pwd)/tmp/$(basename -s .sh $0)
|
||||
mkdir -p $t
|
||||
|
||||
cat <<EOF | cc -o $t/a.o -c -x assembler -
|
||||
.globl foo, bar
|
||||
foo:
|
||||
.quad 0
|
||||
bar:
|
||||
.quad 0
|
||||
EOF
|
||||
|
||||
../mold -e foo -static -o $t/exe $t/a.o
|
||||
readelf -e $t/exe > $t/log
|
||||
grep -q 'Entry point address:.*0x201010' $t/log
|
||||
|
||||
../mold -e bar -static -o $t/exe $t/a.o
|
||||
readelf -e $t/exe > $t/log
|
||||
grep -q 'Entry point address:.*0x201018' $t/log
|
||||
|
||||
echo ' OK'
|
Loading…
Reference in New Issue
Block a user