Skip to content

Commit

Permalink
compiler: Accept and ignore --(enable,disable)-auto-image-base link…
Browse files Browse the repository at this point in the history
…er options.

Closes ziglang#19613.
  • Loading branch information
alexrp committed Oct 5, 2024
1 parent 043b1ad commit f82d55c
Showing 1 changed file with 14 additions and 0 deletions.
14 changes: 14 additions & 0 deletions src/main.zig
Original file line number Diff line number Diff line change
Expand Up @@ -2417,6 +2417,20 @@ fn buildOutputType(
stack_size = parseStackSize(linker_args_it.nextOrFatal());
} else if (mem.eql(u8, arg, "--image-base")) {
image_base = parseImageBase(linker_args_it.nextOrFatal());
} else if (mem.eql(u8, arg, "--enable-auto-image-base") or
mem.eql(u8, arg, "--disable-auto-image-base"))
{
// `--enable-auto-image-base` is a flag that binutils added in ~2000 for MinGW.
// It does a hash of the file and uses that as part of the image base value.
// Presumably the idea was to avoid DLLs needing to be relocated when loaded.
// This is practically irrelevant today as all PEs produced since Windows Vista
// have ASLR enabled by default anyway, and Windows 10+ has Mandatory ASLR which
// doesn't even care what the PE file wants and relocates it anyway.
//
// Unfortunately, Libtool hardcodes usage of this archaic flag when targeting
// MinGW, so to make `zig cc` for that use case work, accept and ignore the
// flag, and warn the user that it has no effect.
warn("auto-image-base options are unimplemented and ignored", .{});
} else if (mem.eql(u8, arg, "-T") or mem.eql(u8, arg, "--script")) {
linker_script = linker_args_it.nextOrFatal();
} else if (mem.eql(u8, arg, "--eh-frame-hdr")) {
Expand Down

0 comments on commit f82d55c

Please sign in to comment.