forked from rust-lang/rust
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
add regression test for issue rust-lang#68794
This is a minimal regression test for the issue rust-lang#68794: "TEXTREL in i686", which was fixed with e86019c. The test links a minimal rust static library into a shared library, and checks that the linker didn't have to add the TEXTREL flag.
- Loading branch information
1 parent
86a22fb
commit 45a8eef
Showing
3 changed files
with
31 additions
and
0 deletions.
There are no files selected for viewing
17 changes: 17 additions & 0 deletions
17
src/test/run-make-fulldeps/issue-68794-textrel-on-minimal-lib/Makefile
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
# Regression test for issue #68794 | ||
# | ||
# Verify that no text relocations are accidentally introduced by linking a | ||
# minimal rust staticlib. | ||
# | ||
# The test links a rust static library into a shared library, and checks that | ||
# the linker doesn't have to flag the resulting file as containing TEXTRELs. | ||
|
||
-include ../tools.mk | ||
|
||
# only-linux | ||
|
||
all: | ||
$(RUSTC) foo.rs | ||
$(CC) bar.c $(call STATICLIB,foo) -fPIC -shared -o $(call DYLIB,bar) \ | ||
$(EXTRACFLAGS) $(EXTRACXXFLAGS) | ||
readelf -d $(call DYLIB,bar) | grep TEXTREL; test $$? -eq 1 |
6 changes: 6 additions & 0 deletions
6
src/test/run-make-fulldeps/issue-68794-textrel-on-minimal-lib/bar.c
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
void foo(); | ||
|
||
int main() { | ||
foo(); | ||
return 0; | ||
} |
8 changes: 8 additions & 0 deletions
8
src/test/run-make-fulldeps/issue-68794-textrel-on-minimal-lib/foo.rs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
#![crate_type = "staticlib"] | ||
|
||
#[no_mangle] | ||
pub extern "C" fn foo(x: u32) { | ||
// using the println! makes it so that enough code from the standard | ||
// library is included (see issue #68794) | ||
println!("foo: {}", x); | ||
} |