| ... | ... | @@ -3319,6 +3319,15 @@ const CsuObjects = struct { |
| 3319 | 3319 | .static_pie => result.set( "rcrt0.o", null, "crtbegin.o", "crtend.o", null ), |
| 3320 | 3320 | // zig fmt: on |
| 3321 | 3321 | }, |
| 3322 | .haiku => switch (mode) { |
| 3323 | // zig fmt: off |
| 3324 | .dynamic_lib => result.set( null, "crti.o", "crtbeginS.o", "crtendS.o", "crtn.o" ), |
| 3325 | .dynamic_exe => result.set( "start_dyn.o", "crti.o", "crtbegin.o", "crtend.o", "crtn.o" ), |
| 3326 | .dynamic_pie => result.set( "start_dyn.o", "crti.o", "crtbeginS.o", "crtendS.o", "crtn.o" ), |
| 3327 | .static_exe => result.set( "start_dyn.o", "crti.o", "crtbegin.o", "crtend.o", "crtn.o" ), |
| 3328 | .static_pie => result.set( "start_dyn.o", "crti.o", "crtbeginS.o", "crtendS.o", "crtn.o" ), |
| 3329 | // zig fmt: on |
| 3330 | }, |
| 3322 | 3331 | else => {}, |
| 3323 | 3332 | } |
| 3324 | 3333 | } |
| ... | ... | @@ -3342,6 +3351,15 @@ const CsuObjects = struct { |
| 3342 | 3351 | if (result.crtbegin) |*obj| obj.* = try fs.path.join(arena, &[_][]const u8{ crt_dir_path, gccv, obj.* }); |
| 3343 | 3352 | if (result.crtend) |*obj| obj.* = try fs.path.join(arena, &[_][]const u8{ crt_dir_path, gccv, obj.* }); |
| 3344 | 3353 | }, |
| 3354 | .haiku => { |
| 3355 | const crtbegin_dir_path = lci.crtbegin_dir orelse return error.LibCInstallationMissingCRTDir; |
| 3356 | if (result.crt0) |*obj| obj.* = try fs.path.join(arena, &[_][]const u8{ crt_dir_path, obj.* }); |
| 3357 | if (result.crti) |*obj| obj.* = try fs.path.join(arena, &[_][]const u8{ crt_dir_path, obj.* }); |
| 3358 | if (result.crtn) |*obj| obj.* = try fs.path.join(arena, &[_][]const u8{ crt_dir_path, obj.* }); |
| 3359 | |
| 3360 | if (result.crtbegin) |*obj| obj.* = try fs.path.join(arena, &[_][]const u8{ crtbegin_dir_path, obj.* }); |
| 3361 | if (result.crtend) |*obj| obj.* = try fs.path.join(arena, &[_][]const u8{ crtbegin_dir_path, obj.* }); |
| 3362 | }, |
| 3345 | 3363 | else => { |
| 3346 | 3364 | inline for (std.meta.fields(@TypeOf(result))) |f,i| { |
| 3347 | 3365 | if (@field(result, f.name)) |*obj| { |