mirror of
https://github.com/ziglang/zig.git
synced 2026-02-21 16:54:52 +00:00
elf: test exporting symbols in exes
This commit is contained in:
parent
f2ad71991a
commit
df656c4eef
@ -50,6 +50,7 @@ pub fn build(b: *Build) void {
|
||||
elf_step.dependOn(testDsoPlt(b, .{ .target = glibc_target, .dynamic_linker = dynamic_linker }));
|
||||
elf_step.dependOn(testDsoUndef(b, .{ .target = glibc_target, .dynamic_linker = dynamic_linker }));
|
||||
elf_step.dependOn(testExportDynamic(b, .{ .target = glibc_target, .dynamic_linker = dynamic_linker }));
|
||||
elf_step.dependOn(testExportSymbolsFromExe(b, .{ .target = glibc_target, .dynamic_linker = dynamic_linker }));
|
||||
elf_step.dependOn(testLargeAlignmentDso(b, .{ .target = glibc_target, .dynamic_linker = dynamic_linker }));
|
||||
elf_step.dependOn(testLargeAlignmentExe(b, .{ .target = glibc_target, .dynamic_linker = dynamic_linker }));
|
||||
}
|
||||
@ -650,6 +651,44 @@ fn testExportDynamic(b: *Build, opts: Options) *Step {
|
||||
return test_step;
|
||||
}
|
||||
|
||||
fn testExportSymbolsFromExe(b: *Build, opts: Options) *Step {
|
||||
const test_step = addTestStep(b, "export-symbols-from-exe", opts);
|
||||
|
||||
const dso = addSharedLibrary(b, "a", opts);
|
||||
addCSourceBytes(dso,
|
||||
\\void expfn1();
|
||||
\\void expfn2() {}
|
||||
\\
|
||||
\\void foo() {
|
||||
\\ expfn1();
|
||||
\\}
|
||||
, &.{"-fPIC"});
|
||||
|
||||
const exe = addExecutable(b, "main", opts);
|
||||
addCSourceBytes(exe,
|
||||
\\void expfn1() {}
|
||||
\\void expfn2() {}
|
||||
\\void foo();
|
||||
\\
|
||||
\\int main() {
|
||||
\\ expfn1();
|
||||
\\ expfn2();
|
||||
\\ foo();
|
||||
\\}
|
||||
, &.{});
|
||||
exe.linkLibrary(dso);
|
||||
exe.linkLibC();
|
||||
|
||||
const check = exe.checkObject();
|
||||
check.checkInDynamicSymtab();
|
||||
check.checkContains("expfn2");
|
||||
check.checkInDynamicSymtab();
|
||||
check.checkContains("expfn1");
|
||||
test_step.dependOn(&check.step);
|
||||
|
||||
return test_step;
|
||||
}
|
||||
|
||||
fn testGcSections(b: *Build, opts: Options) *Step {
|
||||
const test_step = addTestStep(b, "gc-sections", opts);
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user