1
1
mirror of https://github.com/rui314/mold.git synced 2024-12-24 00:43:18 +03:00

temporary

This commit is contained in:
Rui Ueyama 2020-12-14 10:19:37 +09:00
parent f0b350c4bd
commit cb5d50d22c
2 changed files with 27 additions and 2 deletions

View File

@ -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
View 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'