Add '--compress-debug-sections=zstd'
This commit is contained in:
committed by
Andrew Kelley
parent
1c726bcb32
commit
ceaae42e90
@@ -39,7 +39,7 @@ name_only_filename: ?[]const u8,
|
||||
strip: ?bool,
|
||||
unwind_tables: ?bool,
|
||||
// keep in sync with src/link.zig:CompressDebugSections
|
||||
compress_debug_sections: enum { none, zlib } = .none,
|
||||
compress_debug_sections: enum { none, zlib, zstd } = .none,
|
||||
lib_paths: ArrayList(LazyPath),
|
||||
rpaths: ArrayList(LazyPath),
|
||||
frameworks: StringHashMap(FrameworkLinkInfo),
|
||||
@@ -1628,6 +1628,7 @@ fn make(step: *Step, prog_node: *std.Progress.Node) !void {
|
||||
switch (self.compress_debug_sections) {
|
||||
.none => {},
|
||||
.zlib => try zig_args.append("--compress-debug-sections=zlib"),
|
||||
.zstd => try zig_args.append("--compress-debug-sections=zstd"),
|
||||
}
|
||||
|
||||
if (self.link_eh_frame_hdr) {
|
||||
|
||||
@@ -281,7 +281,7 @@ pub const Options = struct {
|
||||
|
||||
pub const HashStyle = enum { sysv, gnu, both };
|
||||
|
||||
pub const CompressDebugSections = enum { none, zlib };
|
||||
pub const CompressDebugSections = enum { none, zlib, zstd };
|
||||
|
||||
/// The filesystem layout of darwin SDK elements.
|
||||
pub const DarwinSdkLayout = enum {
|
||||
|
||||
@@ -2230,6 +2230,7 @@ fn linkWithLLD(self: *Elf, comp: *Compilation, prog_node: *std.Progress.Node) !v
|
||||
switch (self.base.options.compress_debug_sections) {
|
||||
.none => {},
|
||||
.zlib => try argv.append("--compress-debug-sections=zlib"),
|
||||
.zstd => try argv.append("--compress-debug-sections=zstd"),
|
||||
}
|
||||
|
||||
if (self.base.options.bind_global_refs_locally) {
|
||||
|
||||
@@ -539,6 +539,7 @@ const usage_build_generic =
|
||||
\\ --compress-debug-sections=[e] Debug section compression settings
|
||||
\\ none No compression
|
||||
\\ zlib Compression with deflate/inflate
|
||||
\\ zstd Compression with zstandard
|
||||
\\ --gc-sections Force removal of functions and data that are unreachable by the entry point or exported symbols
|
||||
\\ --no-gc-sections Don't force removal of unreachable functions and data
|
||||
\\ --sort-section=[value] Sort wildcard section patterns by 'name' or 'alignment'
|
||||
@@ -1110,7 +1111,7 @@ fn buildOutputType(
|
||||
} else if (mem.startsWith(u8, arg, "--compress-debug-sections=")) {
|
||||
const param = arg["--compress-debug-sections=".len..];
|
||||
linker_compress_debug_sections = std.meta.stringToEnum(link.CompressDebugSections, param) orelse {
|
||||
fatal("expected --compress-debug-sections=[none|zlib], found '{s}'", .{param});
|
||||
fatal("expected --compress-debug-sections=[none|zlib|zstd], found '{s}'", .{param});
|
||||
};
|
||||
} else if (mem.eql(u8, arg, "--compress-debug-sections")) {
|
||||
linker_compress_debug_sections = link.CompressDebugSections.zlib;
|
||||
@@ -1986,7 +1987,7 @@ fn buildOutputType(
|
||||
linker_compress_debug_sections = .zlib;
|
||||
} else {
|
||||
linker_compress_debug_sections = std.meta.stringToEnum(link.CompressDebugSections, it.only_arg) orelse {
|
||||
fatal("expected [none|zlib] after --compress-debug-sections, found '{s}'", .{it.only_arg});
|
||||
fatal("expected [none|zlib|zstd] after --compress-debug-sections, found '{s}'", .{it.only_arg});
|
||||
};
|
||||
}
|
||||
},
|
||||
@@ -2139,7 +2140,7 @@ fn buildOutputType(
|
||||
} else if (mem.eql(u8, arg, "--compress-debug-sections")) {
|
||||
const arg1 = linker_args_it.nextOrFatal();
|
||||
linker_compress_debug_sections = std.meta.stringToEnum(link.CompressDebugSections, arg1) orelse {
|
||||
fatal("expected [none|zlib] after --compress-debug-sections, found '{s}'", .{arg1});
|
||||
fatal("expected [none|zlib|zstd] after --compress-debug-sections, found '{s}'", .{arg1});
|
||||
};
|
||||
} else if (mem.startsWith(u8, arg, "-z")) {
|
||||
var z_arg = arg[2..];
|
||||
|
||||
Reference in New Issue
Block a user