Skip to content

Linking to libc for i386-windows-gnu target fails (regression) #12886

@DiskPoppy

Description

@DiskPoppy

Zig Version

0.10.0-dev.4060+61aaef0b0

Steps to Reproduce

On 0.10.0-dev.4060+61aaef0b0 (doesn't happen on 0.10.0-dev.3685+dae7aeb33) I cross-compiled my project on macos, passing -Dtarget=i386-windows-gnu (doesn't happen with -Dtarget=x86_64-windows-gnu) and linked dynamically to SDL2:
exe.addObjectFile(try path.join(b.allocator, &[_][]const u8{base_path, "lib/libSDL2.dll.a"}));

Expected Behavior

For it to compile and link without error

Actual Behavior

zig build -Dtarget=i386-windows-gnu

LLD Link... lld-link: error: <root>: undefined symbol: _tls_index
error: FileNotFound
/path/zig/lib/zig/std/os.zig:2753:19: 0x10d4fd84e in mkdiratZ (build)
        .EXIST => return error.PathAlreadyExists,
                  ^
/path/zig/lib/zig/std/os.zig:2713:9: 0x10d4e5663 in mkdirat (build)
        return mkdiratZ(dir_fd, &sub_dir_path_c, mode);
        ^
/path/zig/lib/zig/std/fs.zig:1361:9: 0x10d4e551b in makeDir (build)
        try os.mkdirat(self.fd, sub_path, default_new_dir_mode);
        ^
/path/zig/lib/zig/std/os.zig:2753:19: 0x10d4fd84e in mkdiratZ (build)
        .EXIST => return error.PathAlreadyExists,
                  ^
/path/zig/lib/zig/std/os.zig:2713:9: 0x10d4e5663 in mkdirat (build)
        return mkdiratZ(dir_fd, &sub_dir_path_c, mode);
        ^
/path/zig/lib/zig/std/fs.zig:1361:9: 0x10d4e551b in makeDir (build)
        try os.mkdirat(self.fd, sub_path, default_new_dir_mode);
        ^
/path/zig/lib/zig/std/os.zig:1683:23: 0x10d547787 in openatZ (build)
            .NOENT => return error.FileNotFound,
                      ^
/path/zig/lib/zig/std/fs.zig:1110:13: 0x10d52acc8 in openFileZ (build)
            try os.openatZ(self.fd, sub_path, os_flags, 0);
            ^
/path/zig/lib/zig/std/fs.zig:1037:9: 0x10d4f177f in openFile (build)
        return self.openFileZ(&path_c, flags);
        ^
/path/zig/lib/zig/std/fs.zig:2250:24: 0x10d59384b in updateFile (build)
        var src_file = try source_dir.openFile(source_path, .{});
                       ^
/path/zig/lib/zig/std/build.zig:1088:29: 0x10d594902 in updateFile (build)
        const prev_status = try fs.Dir.updateFile(cwd, source_path, cwd, dest_path, .{});
                            ^
/path/zig/lib/zig/std/build.zig:3420:9: 0x10d5981c2 in make (build)
        try builder.updateFile(self.artifact.getOutputSource().getPath(builder), full_dest_path);
        ^
/path/zig/lib/zig/std/build.zig:3655:9: 0x10d4fddc7 in make (build)
        try self.makeFn(self);
        ^
/path/zig/lib/zig/std/build.zig:508:9: 0x10d4e65a9 in makeOneStep (build)
        try s.make();
        ^
/path/zig/lib/zig/std/build.zig:502:17: 0x10d4e650d in makeOneStep (build)
                return err;
                ^
/path/zig/lib/zig/std/build.zig:463:13: 0x10d4e618a in make (build)
            try self.makeOneStep(s);
            ^
/path/zig/lib/zig/build_runner.zig:213:21: 0x10d4e96df in main (build)
            else => return err,
                    ^

Metadata

Metadata

Assignees

No one assigned

    Labels

    arch-x8632-bit x86bugObserved behavior contradicts documented or intended behaviorcontributor friendlyThis issue is limited in scope and/or knowledge of Zig internals.frontendTokenization, parsing, AstGen, Sema, and Liveness.os-windowsMicrosoft Windows

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions