aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJakub Konka <kubkon@jakubkonka.com>2020-11-19 15:27:17 +0100
committerAndrew Kelley <andrew@ziglang.org>2020-11-27 15:42:39 -0700
commit375bab8460517f5d5ee02c161dc65ff1694132d7 (patch)
tree02e428a21540cb8184f80271ef21b3c0a08a440c /src
parent12efefeba5a8128e0a79b4b04fad0d538c382e47 (diff)
downloadzig-375bab8460517f5d5ee02c161dc65ff1694132d7.tar.gz
zig-375bab8460517f5d5ee02c161dc65ff1694132d7.zip
stage2 elf: refactor override_soname to soname
Diffstat (limited to 'src')
-rw-r--r--src/Compilation.zig4
-rw-r--r--src/glibc.zig4
-rw-r--r--src/link.zig2
-rw-r--r--src/link/Elf.zig4
-rw-r--r--src/main.zig24
5 files changed, 19 insertions, 19 deletions
diff --git a/src/Compilation.zig b/src/Compilation.zig
index b813182e30..a66df1db7b 100644
--- a/src/Compilation.zig
+++ b/src/Compilation.zig
@@ -364,7 +364,7 @@ pub const InitOptions = struct {
link_emit_relocs: bool = false,
linker_script: ?[]const u8 = null,
version_script: ?[]const u8 = null,
- override_soname: ?[]const u8 = null,
+ soname: ?[]const u8 = null,
linker_gc_sections: ?bool = null,
linker_allow_shlib_undefined: ?bool = null,
linker_bind_global_refs_locally: ?bool = null,
@@ -828,7 +828,7 @@ pub fn create(gpa: *Allocator, options: InitOptions) !*Compilation {
.emit_relocs = options.link_emit_relocs,
.rdynamic = options.rdynamic,
.extra_lld_args = options.lld_argv,
- .override_soname = options.override_soname,
+ .soname = options.soname,
.version = options.version,
.libc_installation = libc_dirs.libc_installation,
.pic = pic,
diff --git a/src/glibc.zig b/src/glibc.zig
index 108aeb6f77..9a00144d7d 100644
--- a/src/glibc.zig
+++ b/src/glibc.zig
@@ -917,7 +917,7 @@ fn buildSharedLib(
};
const version: std.builtin.Version = .{ .major = lib.sover, .minor = 0, .patch = 0 };
const ld_basename = path.basename(comp.getTarget().standardDynamicLinkerPath().get().?);
- const override_soname = if (mem.eql(u8, lib.name, "ld")) ld_basename else null;
+ const soname = if (mem.eql(u8, lib.name, "ld")) ld_basename else null;
const map_file_path = try path.join(arena, &[_][]const u8{ bin_directory.path.?, all_map_basename });
const c_source_files = [1]Compilation.CSourceFile{
.{
@@ -955,7 +955,7 @@ fn buildSharedLib(
.clang_passthrough_mode = comp.clang_passthrough_mode,
.version = version,
.version_script = map_file_path,
- .override_soname = override_soname,
+ .soname = soname,
.c_source_files = &c_source_files,
.is_compiler_rt_or_libc = true,
});
diff --git a/src/link.zig b/src/link.zig
index e8a9f3d730..21022a760a 100644
--- a/src/link.zig
+++ b/src/link.zig
@@ -88,7 +88,7 @@ pub const Options = struct {
subsystem: ?std.Target.SubSystem,
linker_script: ?[]const u8,
version_script: ?[]const u8,
- override_soname: ?[]const u8,
+ soname: ?[]const u8,
llvm_cpu_features: ?[*:0]const u8,
/// Extra args passed directly to LLD. Ignored when not linking with LLD.
extra_lld_args: []const []const u8,
diff --git a/src/link/Elf.zig b/src/link/Elf.zig
index dbd41bc4d6..5adf909656 100644
--- a/src/link/Elf.zig
+++ b/src/link/Elf.zig
@@ -1314,7 +1314,7 @@ fn linkWithLLD(self: *Elf, comp: *Compilation) !void {
}
}
if (is_dyn_lib) {
- man.hash.addOptionalBytes(self.base.options.override_soname);
+ man.hash.addOptionalBytes(self.base.options.soname);
man.hash.addOptional(self.base.options.version);
}
man.hash.addStringSet(self.base.options.system_libs);
@@ -1512,7 +1512,7 @@ fn linkWithLLD(self: *Elf, comp: *Compilation) !void {
}
if (is_dyn_lib) {
- if (self.base.options.override_soname) |soname| {
+ if (self.base.options.soname) |soname| {
try argv.append("-soname");
try argv.append(soname);
}
diff --git a/src/main.zig b/src/main.zig
index 8de94e1abd..9a189d043b 100644
--- a/src/main.zig
+++ b/src/main.zig
@@ -467,7 +467,7 @@ fn buildOutputType(
var linker_script: ?[]const u8 = null;
var version_script: ?[]const u8 = null;
var disable_c_depfile = false;
- var override_soname: ?[]const u8 = null;
+ var soname: ?[]const u8 = null;
var linker_gc_sections: ?bool = null;
var linker_allow_shlib_undefined: ?bool = null;
var linker_bind_global_refs_locally: ?bool = null;
@@ -1108,33 +1108,33 @@ fn buildOutputType(
if (i >= linker_args.items.len) {
fatal("expected linker arg after '{}'", .{arg});
}
- const soname = linker_args.items[i];
- override_soname = soname;
+ const name = linker_args.items[i];
+ soname = name;
// Use it as --name.
// Example: libsoundio.so.2
var prefix: usize = 0;
- if (mem.startsWith(u8, soname, "lib")) {
+ if (mem.startsWith(u8, name, "lib")) {
prefix = 3;
}
- var end: usize = soname.len;
- if (mem.endsWith(u8, soname, ".so")) {
+ var end: usize = name.len;
+ if (mem.endsWith(u8, name, ".so")) {
end -= 3;
} else {
var found_digit = false;
- while (end > 0 and std.ascii.isDigit(soname[end - 1])) {
+ while (end > 0 and std.ascii.isDigit(name[end - 1])) {
found_digit = true;
end -= 1;
}
- if (found_digit and end > 0 and soname[end - 1] == '.') {
+ if (found_digit and end > 0 and name[end - 1] == '.') {
end -= 1;
} else {
- end = soname.len;
+ end = name.len;
}
- if (mem.endsWith(u8, soname[prefix..end], ".so")) {
+ if (mem.endsWith(u8, name[prefix..end], ".so")) {
end -= 3;
}
}
- provided_name = soname[prefix..end];
+ provided_name = name[prefix..end];
} else if (mem.eql(u8, arg, "-rpath")) {
i += 1;
if (i >= linker_args.items.len) {
@@ -1660,7 +1660,7 @@ fn buildOutputType(
.linker_script = linker_script,
.version_script = version_script,
.disable_c_depfile = disable_c_depfile,
- .override_soname = override_soname,
+ .soname = soname,
.linker_gc_sections = linker_gc_sections,
.linker_allow_shlib_undefined = linker_allow_shlib_undefined,
.linker_bind_global_refs_locally = linker_bind_global_refs_locally,