aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJakub Konka <kubkon@jakubkonka.com>2021-12-13 11:19:19 +0100
committerJakub Konka <kubkon@jakubkonka.com>2021-12-15 08:59:20 +0100
commitab328aca3365102cea95ea8c1f5e1e8ca8793dc5 (patch)
tree74a6b41a1509ed28837ef901f87b913ccf101c67 /src
parentff93486d0cbf032cbbf8b7953a072d448400ba2a (diff)
downloadzig-ab328aca3365102cea95ea8c1f5e1e8ca8793dc5.tar.gz
zig-ab328aca3365102cea95ea8c1f5e1e8ca8793dc5.zip
macho: put `LC_*` consts in a typed enum(u32) LC
repeat for `PLATFORM_*` and `TOOL_*` sets
Diffstat (limited to 'src')
-rw-r--r--src/link/MachO.zig29
-rw-r--r--src/link/MachO/DebugSymbols.zig1
-rw-r--r--src/link/MachO/Dylib.zig8
-rw-r--r--src/link/MachO/Object.zig10
4 files changed, 20 insertions, 28 deletions
diff --git a/src/link/MachO.zig b/src/link/MachO.zig
index 43d6733132..1ce3189d4a 100644
--- a/src/link/MachO.zig
+++ b/src/link/MachO.zig
@@ -783,7 +783,6 @@ pub fn flushModule(self: *MachO, comp: *Compilation) !void {
@sizeOf(u64),
));
var rpath_cmd = macho.emptyGenericCommandWithData(macho.rpath_command{
- .cmd = macho.LC_RPATH,
.cmdsize = cmdsize,
.path = @sizeOf(macho.rpath_command),
});
@@ -3174,7 +3173,7 @@ fn addCodeSignatureLC(self: *MachO) !void {
self.code_signature_cmd_index = @intCast(u16, self.load_commands.items.len);
try self.load_commands.append(self.base.allocator, .{
.linkedit_data = .{
- .cmd = macho.LC_CODE_SIGNATURE,
+ .cmd = .CODE_SIGNATURE,
.cmdsize = @sizeOf(macho.linkedit_data_command),
.dataoff = 0,
.datasize = 0,
@@ -4203,7 +4202,7 @@ fn populateMissingMetadata(self: *MachO) !void {
self.dyld_info_cmd_index = @intCast(u16, self.load_commands.items.len);
try self.load_commands.append(self.base.allocator, .{
.dyld_info_only = .{
- .cmd = macho.LC_DYLD_INFO_ONLY,
+ .cmd = .DYLD_INFO_ONLY,
.cmdsize = @sizeOf(macho.dyld_info_command),
.rebase_off = 0,
.rebase_size = 0,
@@ -4224,7 +4223,6 @@ fn populateMissingMetadata(self: *MachO) !void {
self.symtab_cmd_index = @intCast(u16, self.load_commands.items.len);
try self.load_commands.append(self.base.allocator, .{
.symtab = .{
- .cmd = macho.LC_SYMTAB,
.cmdsize = @sizeOf(macho.symtab_command),
.symoff = 0,
.nsyms = 0,
@@ -4239,7 +4237,6 @@ fn populateMissingMetadata(self: *MachO) !void {
self.dysymtab_cmd_index = @intCast(u16, self.load_commands.items.len);
try self.load_commands.append(self.base.allocator, .{
.dysymtab = .{
- .cmd = macho.LC_DYSYMTAB,
.cmdsize = @sizeOf(macho.dysymtab_command),
.ilocalsym = 0,
.nlocalsym = 0,
@@ -4272,7 +4269,7 @@ fn populateMissingMetadata(self: *MachO) !void {
@sizeOf(u64),
));
var dylinker_cmd = macho.emptyGenericCommandWithData(macho.dylinker_command{
- .cmd = macho.LC_LOAD_DYLINKER,
+ .cmd = .LOAD_DYLINKER,
.cmdsize = cmdsize,
.name = @sizeOf(macho.dylinker_command),
});
@@ -4287,7 +4284,6 @@ fn populateMissingMetadata(self: *MachO) !void {
self.main_cmd_index = @intCast(u16, self.load_commands.items.len);
try self.load_commands.append(self.base.allocator, .{
.main = .{
- .cmd = macho.LC_MAIN,
.cmdsize = @sizeOf(macho.entry_point_command),
.entryoff = 0x0,
.stacksize = 0,
@@ -4314,7 +4310,7 @@ fn populateMissingMetadata(self: *MachO) !void {
compat_version.major << 16 | compat_version.minor << 8 | compat_version.patch,
);
errdefer dylib_cmd.deinit(self.base.allocator);
- dylib_cmd.inner.cmd = macho.LC_ID_DYLIB;
+ dylib_cmd.inner.cmd = .ID_DYLIB;
try self.load_commands.append(self.base.allocator, .{ .dylib = dylib_cmd });
self.load_commands_dirty = true;
}
@@ -4323,7 +4319,6 @@ fn populateMissingMetadata(self: *MachO) !void {
self.source_version_cmd_index = @intCast(u16, self.load_commands.items.len);
try self.load_commands.append(self.base.allocator, .{
.source_version = .{
- .cmd = macho.LC_SOURCE_VERSION,
.cmdsize = @sizeOf(macho.source_version_command),
.version = 0x0,
},
@@ -4350,13 +4345,12 @@ fn populateMissingMetadata(self: *MachO) !void {
} else platform_version;
const is_simulator_abi = self.base.options.target.abi == .simulator;
var cmd = macho.emptyGenericCommandWithData(macho.build_version_command{
- .cmd = macho.LC_BUILD_VERSION,
.cmdsize = cmdsize,
.platform = switch (self.base.options.target.os.tag) {
- .macos => macho.PLATFORM_MACOS,
- .ios => if (is_simulator_abi) macho.PLATFORM_IOSSIMULATOR else macho.PLATFORM_IOS,
- .watchos => if (is_simulator_abi) macho.PLATFORM_WATCHOSSIMULATOR else macho.PLATFORM_WATCHOS,
- .tvos => if (is_simulator_abi) macho.PLATFORM_TVOSSIMULATOR else macho.PLATFORM_TVOS,
+ .macos => .MACOS,
+ .ios => if (is_simulator_abi) macho.PLATFORM.IOSSIMULATOR else macho.PLATFORM.IOS,
+ .watchos => if (is_simulator_abi) macho.PLATFORM.WATCHOSSIMULATOR else macho.PLATFORM.WATCHOS,
+ .tvos => if (is_simulator_abi) macho.PLATFORM.TVOSSIMULATOR else macho.PLATFORM.TVOS,
else => unreachable,
},
.minos = platform_version,
@@ -4364,7 +4358,7 @@ fn populateMissingMetadata(self: *MachO) !void {
.ntools = 1,
});
const ld_ver = macho.build_tool_version{
- .tool = macho.TOOL_LD,
+ .tool = .LD,
.version = 0x0,
};
cmd.data = try self.base.allocator.alloc(u8, cmdsize - @sizeOf(macho.build_version_command));
@@ -4377,7 +4371,6 @@ fn populateMissingMetadata(self: *MachO) !void {
if (self.uuid_cmd_index == null) {
self.uuid_cmd_index = @intCast(u16, self.load_commands.items.len);
var uuid_cmd: macho.uuid_command = .{
- .cmd = macho.LC_UUID,
.cmdsize = @sizeOf(macho.uuid_command),
.uuid = undefined,
};
@@ -4390,7 +4383,7 @@ fn populateMissingMetadata(self: *MachO) !void {
self.function_starts_cmd_index = @intCast(u16, self.load_commands.items.len);
try self.load_commands.append(self.base.allocator, .{
.linkedit_data = .{
- .cmd = macho.LC_FUNCTION_STARTS,
+ .cmd = .FUNCTION_STARTS,
.cmdsize = @sizeOf(macho.linkedit_data_command),
.dataoff = 0,
.datasize = 0,
@@ -4403,7 +4396,7 @@ fn populateMissingMetadata(self: *MachO) !void {
self.data_in_code_cmd_index = @intCast(u16, self.load_commands.items.len);
try self.load_commands.append(self.base.allocator, .{
.linkedit_data = .{
- .cmd = macho.LC_DATA_IN_CODE,
+ .cmd = .DATA_IN_CODE,
.cmdsize = @sizeOf(macho.linkedit_data_command),
.dataoff = 0,
.datasize = 0,
diff --git a/src/link/MachO/DebugSymbols.zig b/src/link/MachO/DebugSymbols.zig
index 8babb5d647..cda5077528 100644
--- a/src/link/MachO/DebugSymbols.zig
+++ b/src/link/MachO/DebugSymbols.zig
@@ -122,7 +122,6 @@ pub fn populateMissingMetadata(self: *DebugSymbols, allocator: Allocator) !void
try self.load_commands.append(allocator, .{
.symtab = .{
- .cmd = macho.LC_SYMTAB,
.cmdsize = @sizeOf(macho.symtab_command),
.symoff = @intCast(u32, symtab_off),
.nsyms = base_cmd.nsyms,
diff --git a/src/link/MachO/Dylib.zig b/src/link/MachO/Dylib.zig
index 31a8b357c2..7593593cbc 100644
--- a/src/link/MachO/Dylib.zig
+++ b/src/link/MachO/Dylib.zig
@@ -177,16 +177,16 @@ fn readLoadCommands(self: *Dylib, allocator: Allocator, reader: anytype, depende
while (i < self.header.?.ncmds) : (i += 1) {
var cmd = try macho.LoadCommand.read(allocator, reader);
switch (cmd.cmd()) {
- macho.LC_SYMTAB => {
+ .SYMTAB => {
self.symtab_cmd_index = i;
},
- macho.LC_DYSYMTAB => {
+ .DYSYMTAB => {
self.dysymtab_cmd_index = i;
},
- macho.LC_ID_DYLIB => {
+ .ID_DYLIB => {
self.id_cmd_index = i;
},
- macho.LC_REEXPORT_DYLIB => {
+ .REEXPORT_DYLIB => {
if (should_lookup_reexports) {
// Parse install_name to dependent dylib.
var id = try Id.fromLoadCommand(allocator, cmd.dylib);
diff --git a/src/link/MachO/Object.zig b/src/link/MachO/Object.zig
index 7f4a49d0d5..12ca463760 100644
--- a/src/link/MachO/Object.zig
+++ b/src/link/MachO/Object.zig
@@ -269,7 +269,7 @@ pub fn readLoadCommands(self: *Object, allocator: Allocator, reader: anytype) !v
while (i < header.ncmds) : (i += 1) {
var cmd = try macho.LoadCommand.read(allocator, reader);
switch (cmd.cmd()) {
- macho.LC_SEGMENT_64 => {
+ .SEGMENT_64 => {
self.segment_cmd_index = i;
var seg = cmd.segment;
for (seg.sections.items) |*sect, j| {
@@ -302,18 +302,18 @@ pub fn readLoadCommands(self: *Object, allocator: Allocator, reader: anytype) !v
seg.inner.fileoff += offset;
},
- macho.LC_SYMTAB => {
+ .SYMTAB => {
self.symtab_cmd_index = i;
cmd.symtab.symoff += offset;
cmd.symtab.stroff += offset;
},
- macho.LC_DYSYMTAB => {
+ .DYSYMTAB => {
self.dysymtab_cmd_index = i;
},
- macho.LC_BUILD_VERSION => {
+ .BUILD_VERSION => {
self.build_version_cmd_index = i;
},
- macho.LC_DATA_IN_CODE => {
+ .DATA_IN_CODE => {
self.data_in_code_cmd_index = i;
cmd.linkedit_data.dataoff += offset;
},