forked from OSchip/llvm-project
[OutputSection] Set the symbolic bit in DT_FLAGS and not DT_FLAGS_1.
The two names are similar enough that they might lead to confusion. The output of readobj clarifies but I missed it when I originally committed this. Found while linking FreeBSD userland with lld. llvm-svn: 250739
This commit is contained in:
parent
5d1ec86910
commit
56d18f4f8a
|
@ -369,6 +369,9 @@ template <class ELFT> void DynamicSection<ELFT>::writeTo(uint8_t *Buf) {
|
|||
uint32_t Flags = 0;
|
||||
if (Config->Bsymbolic)
|
||||
Flags |= DF_SYMBOLIC;
|
||||
if (Flags)
|
||||
WriteVal(DT_FLAGS, Flags);
|
||||
Flags = 0;
|
||||
if (Config->ZNow)
|
||||
Flags |= DF_1_NOW;
|
||||
if (Flags)
|
||||
|
|
|
@ -2,17 +2,19 @@
|
|||
|
||||
# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %s -o %t
|
||||
# RUN: ld.lld2 -shared %t -o %t.so
|
||||
# RUN: ld.lld2 -z now -Bsymbolic %t %t.so -o %t1
|
||||
# RUN: ld.lld2 -z now -z nodelete -Bsymbolic %t %t.so -o %t1
|
||||
# RUN: ld.lld2 %t %t.so -o %t2
|
||||
# RUN: llvm-readobj -dynamic-table %t1 | FileCheck -check-prefix=FLAGS %s
|
||||
# RUN: llvm-readobj -dynamic-table %t2 | FileCheck %s
|
||||
|
||||
# FLAGS: DynamicSection [
|
||||
# FLAGS: 0x000000006FFFFFFB FLAGS_1 NOW GLOBAL
|
||||
# FLAGS: 0x000000000000001E FLAGS SYMBOLIC
|
||||
# FLAGS: 0x000000006FFFFFFB FLAGS_1 NOW
|
||||
# FLAGS: ]
|
||||
|
||||
# CHECK: DynamicSection [
|
||||
# CHECK-NOT: 0x000000006FFFFFFB FLAGS_1 NOW GLOBAL
|
||||
# CHECK-NOT: 0x000000000000001E FLAGS SYMBOLIC
|
||||
# CHECK-NOT: 0x000000006FFFFFFB FLAGS_1 NOW
|
||||
# CHECK: ]
|
||||
|
||||
.globl _start
|
||||
|
|
Loading…
Reference in New Issue