-
Notifications
You must be signed in to change notification settings - Fork 13.4k
[lld][WebAssembly] -r: force -Bstatic #108264
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
This is a port of a recent ELF linker change: 8cc6a24.
@llvm/pr-subscribers-lld Author: Sam Clegg (sbc100) ChangesThis is a port of a recent ELF linker change: 8cc6a24. Full diff: https://github.com/llvm/llvm-project/pull/108264.diff 2 Files Affected:
diff --git a/lld/test/wasm/libsearch.s b/lld/test/wasm/libsearch.s
index 23336510748ce8..5d9b3870a053a3 100644
--- a/lld/test/wasm/libsearch.s
+++ b/lld/test/wasm/libsearch.s
@@ -93,6 +93,12 @@
// RUN: wasm-ld -pie --experimental-pic --emit-relocs --no-gc-sections -o %t3 %t.o -L%t.dir -Bstatic -call_shared -lls
// RUN: llvm-readobj --symbols %t3 | FileCheck --check-prefix=DYNAMIC %s
+/// -r implies -Bstatic and has precedence over -Bdynamic.
+// RUN: ld.lld -r -Bdynamic %t.o -L%t.dir -lls -o %t3.ro
+// RUN: llvm-readelf -s -h %t3.ro | FileCheck --check-prefix=RELOCATABLE %s
+// RELOCATABLE: Type: REL
+// RELOCATABLE: [[#]] _static
+
.globl _start, _bar
_start:
.functype _start () -> ()
diff --git a/lld/wasm/Driver.cpp b/lld/wasm/Driver.cpp
index cb8fe2534f5fe7..4553c6bf04f230 100644
--- a/lld/wasm/Driver.cpp
+++ b/lld/wasm/Driver.cpp
@@ -395,7 +395,8 @@ void LinkerDriver::createFiles(opt::InputArgList &args) {
config->isStatic = true;
break;
case OPT_Bdynamic:
- config->isStatic = false;
+ if (!config->relocatable)
+ config->isStatic = false;
break;
case OPT_whole_archive:
inWholeArchive = true;
|
@llvm/pr-subscribers-lld-wasm Author: Sam Clegg (sbc100) ChangesThis is a port of a recent ELF linker change: 8cc6a24. Full diff: https://github.com/llvm/llvm-project/pull/108264.diff 2 Files Affected:
diff --git a/lld/test/wasm/libsearch.s b/lld/test/wasm/libsearch.s
index 23336510748ce8..5d9b3870a053a3 100644
--- a/lld/test/wasm/libsearch.s
+++ b/lld/test/wasm/libsearch.s
@@ -93,6 +93,12 @@
// RUN: wasm-ld -pie --experimental-pic --emit-relocs --no-gc-sections -o %t3 %t.o -L%t.dir -Bstatic -call_shared -lls
// RUN: llvm-readobj --symbols %t3 | FileCheck --check-prefix=DYNAMIC %s
+/// -r implies -Bstatic and has precedence over -Bdynamic.
+// RUN: ld.lld -r -Bdynamic %t.o -L%t.dir -lls -o %t3.ro
+// RUN: llvm-readelf -s -h %t3.ro | FileCheck --check-prefix=RELOCATABLE %s
+// RELOCATABLE: Type: REL
+// RELOCATABLE: [[#]] _static
+
.globl _start, _bar
_start:
.functype _start () -> ()
diff --git a/lld/wasm/Driver.cpp b/lld/wasm/Driver.cpp
index cb8fe2534f5fe7..4553c6bf04f230 100644
--- a/lld/wasm/Driver.cpp
+++ b/lld/wasm/Driver.cpp
@@ -395,7 +395,8 @@ void LinkerDriver::createFiles(opt::InputArgList &args) {
config->isStatic = true;
break;
case OPT_Bdynamic:
- config->isStatic = false;
+ if (!config->relocatable)
+ config->isStatic = false;
break;
case OPT_whole_archive:
inWholeArchive = true;
|
// RUN: ld.lld -r -Bdynamic %t.o -L%t.dir -lls -o %t3.ro | ||
// RUN: llvm-readelf -s -h %t3.ro | FileCheck --check-prefix=RELOCATABLE %s | ||
// RELOCATABLE: Type: REL | ||
// RELOCATABLE: [[#]] _static |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Oops, I didn't mean to send this for review until I'd finished porting this test fragment.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
(On vacation and slow/inconvenient to respond). Happy when the other reviewer is happy.
Prefer llvm-readobj to llvm-readelf for wasm.
This is a port of a recent ELF linker change: 8cc6a24.