diff options
| author | Dillen Meijboom <dillen@brainhive.nl> | 2024-02-22 23:39:16 +0100 |
|---|---|---|
| committer | Andrew Kelley <andrew@ziglang.org> | 2024-03-06 17:52:05 -0800 |
| commit | 377ecc6afb14a112a07c6d2c3570e2b77b12a116 (patch) | |
| tree | 706ef264ff807f729e37e2aef2b83a8d8e7ab99e /src/main.zig | |
| parent | aa7d16aba1f0b3a9e816684618d16cb1d178a6d3 (diff) | |
| download | zig-377ecc6afb14a112a07c6d2c3570e2b77b12a116.tar.gz zig-377ecc6afb14a112a07c6d2c3570e2b77b12a116.zip | |
feat: add support for --enable-new-dtags and --disable-new-dtags
Diffstat (limited to 'src/main.zig')
| -rw-r--r-- | src/main.zig | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/main.zig b/src/main.zig index 72c0773044..75ed080f9e 100644 --- a/src/main.zig +++ b/src/main.zig @@ -496,6 +496,8 @@ const usage_build_generic = \\ --version-script [path] Provide a version .map file \\ --undefined-version Allow version scripts to refer to undefined symbols \\ --no-undefined-version (default) Disallow version scripts from referring to undefined symbols + \\ --enable-new-dtags Use the new behavior for dynamic tags (RUNPATH) + \\ --disable-new-dtags Use the old behavior for dynamic tags (RPATH) \\ --dynamic-linker [path] Set the dynamic interpreter path (usually ld.so) \\ --sysroot [path] Set the system root directory (usually /) \\ --version [ver] Dynamic library semver @@ -824,6 +826,7 @@ fn buildOutputType( var linker_script: ?[]const u8 = null; var version_script: ?[]const u8 = null; var linker_allow_undefined_version: bool = false; + var linker_enable_new_dtags: ?bool = null; var disable_c_depfile = false; var linker_sort_section: ?link.File.Elf.SortSection = null; var linker_gc_sections: ?bool = null; @@ -1191,6 +1194,10 @@ fn buildOutputType( linker_allow_undefined_version = true; } else if (mem.eql(u8, arg, "--no-undefined-version")) { linker_allow_undefined_version = false; + } else if (mem.eql(u8, arg, "--enable-new-dtags")) { + linker_enable_new_dtags = true; + } else if (mem.eql(u8, arg, "--disable-new-dtags")) { + linker_enable_new_dtags = false; } else if (mem.eql(u8, arg, "--library") or mem.eql(u8, arg, "-l")) { // We don't know whether this library is part of libc // or libc++ until we resolve the target, so we append @@ -2153,6 +2160,10 @@ fn buildOutputType( linker_allow_undefined_version = true; } else if (mem.eql(u8, arg, "--no-undefined-version")) { linker_allow_undefined_version = false; + } else if (mem.eql(u8, arg, "--enable-new-dtags")) { + linker_enable_new_dtags = true; + } else if (mem.eql(u8, arg, "--disable-new-dtags")) { + linker_enable_new_dtags = false; } else if (mem.eql(u8, arg, "-O")) { linker_optimization = linker_args_it.nextOrFatal(); } else if (mem.startsWith(u8, arg, "-O")) { @@ -3181,6 +3192,7 @@ fn buildOutputType( .linker_script = linker_script, .version_script = version_script, .linker_allow_undefined_version = linker_allow_undefined_version, + .linker_enable_new_dtags = linker_enable_new_dtags, .disable_c_depfile = disable_c_depfile, .soname = resolved_soname, .linker_sort_section = linker_sort_section, |
