forked from OSchip/llvm-project
[ELF] Support PROVIDE/PROVIDE_HIDDEN inside output sections description.
Differential Revision: https://reviews.llvm.org/D22738 llvm-svn: 276579
This commit is contained in:
parent
ee410aca06
commit
054a679634
|
@ -676,6 +676,10 @@ void ScriptParser::readOutputSectionDescription(StringRef OutSec) {
|
|||
InCmd->Patterns.push_back(next());
|
||||
}
|
||||
expect(")");
|
||||
} else if (Tok == "PROVIDE") {
|
||||
readProvide(false);
|
||||
} else if (Tok == "PROVIDE_HIDDEN") {
|
||||
readProvide(true);
|
||||
} else {
|
||||
setError("unknown command " + Tok);
|
||||
}
|
||||
|
|
|
@ -0,0 +1,20 @@
|
|||
# REQUIRES: x86
|
||||
# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %s -o %t
|
||||
# RUN: echo \
|
||||
# RUN: "SECTIONS { . = 1000; .blah : { PROVIDE(foo = .); } }" \
|
||||
# RUN: > %t.script
|
||||
# RUN: ld.lld -o %t1 --script %t.script %t -shared
|
||||
# RUN: llvm-objdump -t %t1 | FileCheck %s
|
||||
# CHECK: 00000000000003e8 *ABS* 00000000 foo
|
||||
|
||||
# RUN: echo \
|
||||
# RUN: "SECTIONS { . = 1000; .blah : { PROVIDE_HIDDEN(foo = .); } }" \
|
||||
# RUN: > %t2.script
|
||||
# RUN: ld.lld -o %t2 --script %t2.script %t -shared
|
||||
# RUN: llvm-objdump -t %t2 | FileCheck %s --check-prefix=HIDDEN
|
||||
# HIDDEN: 00000000000003e8 *ABS* 00000000 .hidden foo
|
||||
|
||||
.section blah
|
||||
.globl patatino
|
||||
patatino:
|
||||
movl $foo, %edx
|
Loading…
Reference in New Issue