mirror of
https://github.com/ziglang/zig.git
synced 2024-11-22 12:20:16 +00:00
compiler: Accept and ignore --(enable,disable)-auto-image-base
linker options.
Closes #19613.
This commit is contained in:
parent
6a364b4a5e
commit
7eec7ba1ad
14
src/main.zig
14
src/main.zig
@ -2458,6 +2458,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")) {
|
||||
|
Loading…
Reference in New Issue
Block a user