authorgravatar for alex_naskos@hotmail.comAlexandros Naskos <alex_naskos@hotmail.com> 2020-03-02 11:44:21+02:00
committergravatar for alex_naskos@hotmail.comAlexandros Naskos <alex_naskos@hotmail.com> 2020-03-02 11:44:21+02:00
loga48cd1cf585a0f69f381a61ac43678c64e4a9a81
tree849f896e3e14ee8cda15142db285a3808af68873
parent00be934569d25e3b041091ff63a4cf6c456d1403

Allow wrapping in VDSO lookup


1 files changed, 3 insertions(+), 3 deletions(-)

lib/std/os/linux/vdso.zig+3-3
...@@ -22,7 +22,7 @@ pub fn lookup(vername: []const u8, name: []const u8) usize {...@@ -22,7 +22,7 @@ pub fn lookup(vername: []const u8, name: []const u8) usize {
22 }) {22 }) {
23 const this_ph = @intToPtr(*elf.Phdr, ph_addr);23 const this_ph = @intToPtr(*elf.Phdr, ph_addr);
24 switch (this_ph.p_type) {24 switch (this_ph.p_type) {
25 elf.PT_LOAD => base = vdso_addr + this_ph.p_offset - this_ph.p_vaddr,25 elf.PT_LOAD => base = vdso_addr +% this_ph.p_offset -% this_ph.p_vaddr,
26 elf.PT_DYNAMIC => maybe_dynv = @intToPtr([*]usize, vdso_addr + this_ph.p_offset),26 elf.PT_DYNAMIC => maybe_dynv = @intToPtr([*]usize, vdso_addr + this_ph.p_offset),
27 else => {},27 else => {},
28 }28 }
...@@ -40,7 +40,7 @@ pub fn lookup(vername: []const u8, name: []const u8) usize {...@@ -40,7 +40,7 @@ pub fn lookup(vername: []const u8, name: []const u8) usize {
40 {40 {
41 var i: usize = 0;41 var i: usize = 0;
42 while (dynv[i] != 0) : (i += 2) {42 while (dynv[i] != 0) : (i += 2) {
43 const p = base + dynv[i + 1];43 const p = base +% dynv[i + 1];
44 switch (dynv[i]) {44 switch (dynv[i]) {
45 elf.DT_STRTAB => maybe_strings = @intToPtr([*]u8, p),45 elf.DT_STRTAB => maybe_strings = @intToPtr([*]u8, p),
46 elf.DT_SYMTAB => maybe_syms = @intToPtr([*]elf.Sym, p),46 elf.DT_SYMTAB => maybe_syms = @intToPtr([*]elf.Sym, p),
...@@ -71,7 +71,7 @@ pub fn lookup(vername: []const u8, name: []const u8) usize {...@@ -71,7 +71,7 @@ pub fn lookup(vername: []const u8, name: []const u8) usize {
71 if (!checkver(maybe_verdef.?, versym[i], vername, strings))71 if (!checkver(maybe_verdef.?, versym[i], vername, strings))
72 continue;72 continue;
73 }73 }
74 return base + syms[i].st_value;74 return base +% syms[i].st_value;
75 }75 }
7676
77 return 0;77 return 0;