| ... | ... | @@ -25,6 +25,7 @@ pub fn testAll(b: *Build) *Step { |
| 25 | 25 | elf_step.dependOn(testEmitRelocatable(b, .{ .target = musl_target })); |
| 26 | 26 | elf_step.dependOn(testRelocatableArchive(b, .{ .target = musl_target })); |
| 27 | 27 | elf_step.dependOn(testRelocatableEhFrame(b, .{ .target = musl_target })); |
| 28 | elf_step.dependOn(testRelocatableNoEhFrame(b, .{ .target = musl_target })); |
| 28 | 29 | |
| 29 | 30 | // Exercise linker in ar mode |
| 30 | 31 | elf_step.dependOn(testEmitStaticLib(b, .{ .target = musl_target })); |
| ... | ... | @@ -2275,6 +2276,33 @@ fn testRelocatableEhFrame(b: *Build, opts: Options) *Step { |
| 2275 | 2276 | return test_step; |
| 2276 | 2277 | } |
| 2277 | 2278 | |
| 2279 | fn testRelocatableNoEhFrame(b: *Build, opts: Options) *Step { |
| 2280 | const test_step = addTestStep(b, "relocatable-no-eh-frame", opts); |
| 2281 | |
| 2282 | const obj1 = addObject(b, "obj1", opts); |
| 2283 | addCSourceBytes(obj1, "int bar() { return 42; }", &.{ |
| 2284 | "-fno-unwind-tables", |
| 2285 | "-fno-asynchronous-unwind-tables", |
| 2286 | }); |
| 2287 | |
| 2288 | const obj2 = addObject(b, "obj2", opts); |
| 2289 | obj2.addObject(obj1); |
| 2290 | |
| 2291 | const check1 = obj1.checkObject(); |
| 2292 | check1.checkStart(); |
| 2293 | check1.checkExact("section headers"); |
| 2294 | check1.checkNotPresent(".eh_frame"); |
| 2295 | test_step.dependOn(&check1.step); |
| 2296 | |
| 2297 | const check2 = obj2.checkObject(); |
| 2298 | check2.checkStart(); |
| 2299 | check2.checkExact("section headers"); |
| 2300 | check2.checkNotPresent(".eh_frame"); |
| 2301 | test_step.dependOn(&check2.step); |
| 2302 | |
| 2303 | return test_step; |
| 2304 | } |
| 2305 | |
| 2278 | 2306 | fn testSharedAbsSymbol(b: *Build, opts: Options) *Step { |
| 2279 | 2307 | const test_step = addTestStep(b, "shared-abs-symbol", opts); |
| 2280 | 2308 | |