Changeset View
Changeset View
Standalone View
Standalone View
lang/rust/files/patch-backtrace
https://github.com/rust-lang/rust/issues/78184 | https://github.com/rust-lang/rust/issues/78184 | ||||
--- library/backtrace/src/symbolize/gimli.rs.orig 2021-02-10 17:36:59 UTC | --- library/backtrace/src/symbolize/gimli.rs.orig 2021-02-10 17:36:59 UTC | ||||
+++ library/backtrace/src/symbolize/gimli.rs | +++ library/backtrace/src/symbolize/gimli.rs | ||||
@@ -361,6 +361,7 @@ cfg_if::cfg_if! { | @@ -361,6 +361,7 @@ cfg_if::cfg_if! { | ||||
} else if #[cfg(any( | } else if #[cfg(any( | ||||
target_os = "linux", | target_os = "linux", | ||||
target_os = "fuchsia", | target_os = "fuchsia", | ||||
+ target_os = "freebsd", | + target_os = "freebsd", | ||||
))] { | ))] { | ||||
// Other Unix (e.g. Linux) platforms use ELF as an object file format | // Other Unix (e.g. Linux) platforms use ELF as an object file format | ||||
// and typically implement an API called `dl_iterate_phdr` to load | // and typically implement an API called `dl_iterate_phdr` to load | ||||
--- vendor/libc-0.2.77/src/unix/bsd/freebsdlike/mod.rs.orig 2021-02-10 18:18:38 UTC | |||||
+++ vendor/libc-0.2.77/src/unix/bsd/freebsdlike/mod.rs | |||||
@@ -14,6 +14,38 @@ pub type nl_item = ::c_int; | |||||
pub type id_t = i64; | |||||
pub type vm_size_t = ::uintptr_t; | |||||
+// elf.h | |||||
+ | |||||
+pub type Elf32_Addr = u32; | |||||
+pub type Elf32_Half = u16; | |||||
+pub type Elf32_Lword = u64; | |||||
+pub type Elf32_Off = u32; | |||||
+pub type Elf32_Sword = i32; | |||||
+pub type Elf32_Word = u32; | |||||
+ | |||||
+pub type Elf64_Addr = u64; | |||||
+pub type Elf64_Half = u16; | |||||
+pub type Elf64_Lword = u64; | |||||
+pub type Elf64_Off = u64; | |||||
+pub type Elf64_Sword = i32; | |||||
+pub type Elf64_Sxword = i64; | |||||
+pub type Elf64_Word = u32; | |||||
+pub type Elf64_Xword = u64; | |||||
+ | |||||
+cfg_if! { | |||||
+ if #[cfg(target_pointer_width = "64")] { | |||||
+ type Elf_Addr = Elf64_Addr; | |||||
+ type Elf_Half = Elf64_Half; | |||||
+ type Elf_Phdr = Elf64_Phdr; | |||||
+ } else if #[cfg(target_pointer_width = "32")] { | |||||
+ type Elf_Addr = Elf32_Addr; | |||||
+ type Elf_Half = Elf32_Half; | |||||
+ type Elf_Phdr = Elf32_Phdr; | |||||
+ } | |||||
+} | |||||
+ | |||||
+// link.h | |||||
+ | |||||
#[cfg_attr(feature = "extra_traits", derive(Debug))] | |||||
pub enum timezone {} | |||||
impl ::Copy for timezone {} | |||||
@@ -233,6 +265,43 @@ s! { | |||||
pub piod_addr: *mut ::c_void, | |||||
pub piod_len: ::size_t, | |||||
} | |||||
+ | |||||
+ // elf.h | |||||
+ | |||||
+ pub struct Elf32_Phdr { | |||||
+ pub p_type: Elf32_Word, | |||||
+ pub p_offset: Elf32_Off, | |||||
+ pub p_vaddr: Elf32_Addr, | |||||
+ pub p_paddr: Elf32_Addr, | |||||
+ pub p_filesz: Elf32_Word, | |||||
+ pub p_memsz: Elf32_Word, | |||||
+ pub p_flags: Elf32_Word, | |||||
+ pub p_align: Elf32_Word, | |||||
+ } | |||||
+ | |||||
+ pub struct Elf64_Phdr { | |||||
+ pub p_type: Elf64_Word, | |||||
+ pub p_flags: Elf64_Word, | |||||
+ pub p_offset: Elf64_Off, | |||||
+ pub p_vaddr: Elf64_Addr, | |||||
+ pub p_paddr: Elf64_Addr, | |||||
+ pub p_filesz: Elf64_Xword, | |||||
+ pub p_memsz: Elf64_Xword, | |||||
+ pub p_align: Elf64_Xword, | |||||
+ } | |||||
+ | |||||
+ // link.h | |||||
+ | |||||
+ pub struct dl_phdr_info { | |||||
+ pub dlpi_addr: Elf_Addr, | |||||
+ pub dlpi_name: *const ::c_char, | |||||
+ pub dlpi_phdr: *const Elf_Phdr, | |||||
+ pub dlpi_phnum: Elf_Half, | |||||
+ pub dlpi_adds: ::c_ulonglong, | |||||
+ pub dlpi_subs: ::c_ulonglong, | |||||
+ pub dlpi_tls_modid: usize, | |||||
+ pub dlpi_tls_data: *mut ::c_void, | |||||
+ } | |||||
} | |||||
s_no_extra_traits! { | |||||
@@ -1514,6 +1583,18 @@ extern "C" { | |||||
pub fn ntp_adjtime(buf: *mut timex) -> ::c_int; | |||||
pub fn ntp_gettime(buf: *mut ntptimeval) -> ::c_int; | |||||
+ | |||||
+ // #include <link.h> | |||||
+ pub fn dl_iterate_phdr( | |||||
+ callback: ::Option< | |||||
+ unsafe extern "C" fn( | |||||
+ info: *mut dl_phdr_info, | |||||
+ size: usize, | |||||
+ data: *mut ::c_void, | |||||
+ ) -> ::c_int, | |||||
+ >, | |||||
+ data: *mut ::c_void, | |||||
+ ) -> ::c_int; | |||||
} | |||||
#[link(name = "rt")] | |||||
--- vendor/libc-0.2.77/src/unix/bsd/netbsdlike/netbsd/mod.rs.orig 2021-02-10 18:18:38 UTC | |||||
+++ vendor/libc-0.2.77/src/unix/bsd/netbsdlike/netbsd/mod.rs | |||||
@@ -11,6 +11,36 @@ pub type vm_size_t = ::uintptr_t; | |||||
pub type lwpid_t = ::c_uint; | |||||
pub type shmatt_t = ::c_uint; | |||||
+// elf.h | |||||
+ | |||||
+pub type Elf32_Addr = u32; | |||||
+pub type Elf32_Half = u16; | |||||
+pub type Elf32_Lword = u64; | |||||
+pub type Elf32_Off = u32; | |||||
+pub type Elf32_Sword = i32; | |||||
+pub type Elf32_Word = u32; | |||||
+ | |||||
+pub type Elf64_Addr = u64; | |||||
+pub type Elf64_Half = u16; | |||||
+pub type Elf64_Lword = u64; | |||||
+pub type Elf64_Off = u64; | |||||
+pub type Elf64_Sword = i32; | |||||
+pub type Elf64_Sxword = i64; | |||||
+pub type Elf64_Word = u32; | |||||
+pub type Elf64_Xword = u64; | |||||
+ | |||||
+cfg_if! { | |||||
+ if #[cfg(target_pointer_width = "64")] { | |||||
+ type Elf_Addr = Elf64_Addr; | |||||
+ type Elf_Half = Elf64_Half; | |||||
+ type Elf_Phdr = Elf64_Phdr; | |||||
+ } else if #[cfg(target_pointer_width = "32")] { | |||||
+ type Elf_Addr = Elf32_Addr; | |||||
+ type Elf_Half = Elf32_Half; | |||||
+ type Elf_Phdr = Elf32_Phdr; | |||||
+ } | |||||
+} | |||||
+ | |||||
impl siginfo_t { | |||||
pub unsafe fn si_value(&self) -> ::sigval { | |||||
#[repr(C)] | |||||
@@ -341,6 +371,42 @@ s! { | |||||
pub time_state: ::c_int, | |||||
} | |||||
+ // elf.h | |||||
+ | |||||
+ pub struct Elf32_Phdr { | |||||
+ pub p_type: Elf32_Word, | |||||
+ pub p_offset: Elf32_Off, | |||||
+ pub p_vaddr: Elf32_Addr, | |||||
+ pub p_paddr: Elf32_Addr, | |||||
+ pub p_filesz: Elf32_Word, | |||||
+ pub p_memsz: Elf32_Word, | |||||
+ pub p_flags: Elf32_Word, | |||||
+ pub p_align: Elf32_Word, | |||||
+ } | |||||
+ | |||||
+ pub struct Elf64_Phdr { | |||||
+ pub p_type: Elf64_Word, | |||||
+ pub p_flags: Elf64_Word, | |||||
+ pub p_offset: Elf64_Off, | |||||
+ pub p_vaddr: Elf64_Addr, | |||||
+ pub p_paddr: Elf64_Addr, | |||||
+ pub p_filesz: Elf64_Xword, | |||||
+ pub p_memsz: Elf64_Xword, | |||||
+ pub p_align: Elf64_Xword, | |||||
+ } | |||||
+ | |||||
+ // link.h | |||||
+ | |||||
+ pub struct dl_phdr_info { | |||||
+ pub dlpi_addr: Elf_Addr, | |||||
+ pub dlpi_name: *const ::c_char, | |||||
+ pub dlpi_phdr: *const Elf_Phdr, | |||||
+ pub dlpi_phnum: Elf_Half, | |||||
+ pub dlpi_adds: ::c_ulonglong, | |||||
+ pub dlpi_subs: ::c_ulonglong, | |||||
+ pub dlpi_tls_modid: usize, | |||||
+ pub dlpi_tls_data: *mut ::c_void, | |||||
+ } | |||||
} | |||||
s_no_extra_traits! { | |||||
@@ -1988,6 +2054,19 @@ extern "C" { | |||||
needle: *const ::c_void, | |||||
needlelen: ::size_t, | |||||
) -> *mut ::c_void; | |||||
+ | |||||
+ // link.h | |||||
+ | |||||
+ pub fn dl_iterate_phdr( | |||||
+ callback: ::Option< | |||||
+ unsafe extern "C" fn( | |||||
+ info: *mut dl_phdr_info, | |||||
+ size: usize, | |||||
+ data: *mut ::c_void, | |||||
+ ) -> ::c_int, | |||||
+ >, | |||||
+ data: *mut ::c_void, | |||||
+ ) -> ::c_int; | |||||
} | |||||
#[link(name = "util")] | |||||
--- vendor/libc-0.2.77/src/unix/bsd/netbsdlike/openbsd/mod.rs.orig 2021-02-10 18:18:38 UTC | |||||
+++ vendor/libc-0.2.77/src/unix/bsd/netbsdlike/openbsd/mod.rs | |||||
@@ -16,6 +16,36 @@ pub type pthread_rwlock_t = *mut ::c_void; | |||||
pub type pthread_rwlockattr_t = *mut ::c_void; | |||||
pub type caddr_t = *mut ::c_char; | |||||
+// elf.h | |||||
+ | |||||
+pub type Elf32_Addr = u32; | |||||
+pub type Elf32_Half = u16; | |||||
+pub type Elf32_Lword = u64; | |||||
+pub type Elf32_Off = u32; | |||||
+pub type Elf32_Sword = i32; | |||||
+pub type Elf32_Word = u32; | |||||
+ | |||||
+pub type Elf64_Addr = u64; | |||||
+pub type Elf64_Half = u16; | |||||
+pub type Elf64_Lword = u64; | |||||
+pub type Elf64_Off = u64; | |||||
+pub type Elf64_Sword = i32; | |||||
+pub type Elf64_Sxword = i64; | |||||
+pub type Elf64_Word = u32; | |||||
+pub type Elf64_Xword = u64; | |||||
+ | |||||
+cfg_if! { | |||||
+ if #[cfg(target_pointer_width = "64")] { | |||||
+ type Elf_Addr = Elf64_Addr; | |||||
+ type Elf_Half = Elf64_Half; | |||||
+ type Elf_Phdr = Elf64_Phdr; | |||||
+ } else if #[cfg(target_pointer_width = "32")] { | |||||
+ type Elf_Addr = Elf32_Addr; | |||||
+ type Elf_Half = Elf32_Half; | |||||
+ type Elf_Phdr = Elf32_Phdr; | |||||
+ } | |||||
+} | |||||
+ | |||||
s! { | |||||
pub struct glob_t { | |||||
pub gl_pathc: ::size_t, | |||||
@@ -321,6 +351,38 @@ s! { | |||||
__shm_ctimensec: c_long, | |||||
pub shm_internal: *mut ::c_void, | |||||
} | |||||
+ | |||||
+ // elf.h | |||||
+ pub struct Elf32_Phdr { | |||||
+ pub p_type: Elf32_Word, | |||||
+ pub p_offset: Elf32_Off, | |||||
+ pub p_vaddr: Elf32_Addr, | |||||
+ pub p_paddr: Elf32_Addr, | |||||
+ pub p_filesz: Elf32_Word, | |||||
+ pub p_memsz: Elf32_Word, | |||||
+ pub p_flags: Elf32_Word, | |||||
+ pub p_align: Elf32_Word, | |||||
+ } | |||||
+ | |||||
+ pub struct Elf64_Phdr { | |||||
+ pub p_type: Elf64_Word, | |||||
+ pub p_flags: Elf64_Word, | |||||
+ pub p_offset: Elf64_Off, | |||||
+ pub p_vaddr: Elf64_Addr, | |||||
+ pub p_paddr: Elf64_Addr, | |||||
+ pub p_filesz: Elf64_Xword, | |||||
+ pub p_memsz: Elf64_Xword, | |||||
+ pub p_align: Elf64_Xword, | |||||
+ } | |||||
+ | |||||
+ // link.h | |||||
+ | |||||
+ pub struct dl_phdr_info { | |||||
+ pub dlpi_addr: Elf_Addr, | |||||
+ pub dlpi_name: *const ::c_char, | |||||
+ pub dlpi_phdr: *const Elf_Phdr, | |||||
+ pub dlpi_phnum: Elf_Half, | |||||
+ } | |||||
} | |||||
impl siginfo_t { | |||||
@@ -1480,6 +1542,17 @@ extern "C" { | |||||
needle: *const ::c_void, | |||||
needlelen: ::size_t, | |||||
) -> *mut ::c_void; | |||||
+ // #include <link.h> | |||||
+ pub fn dl_iterate_phdr( | |||||
+ callback: ::Option< | |||||
+ unsafe extern "C" fn( | |||||
+ info: *mut dl_phdr_info, | |||||
+ size: usize, | |||||
+ data: *mut ::c_void, | |||||
+ ) -> ::c_int, | |||||
+ >, | |||||
+ data: *mut ::c_void, | |||||
+ ) -> ::c_int; | |||||
} | |||||
cfg_if! { | |||||
--- vendor/libc-0.2.79/src/unix/bsd/freebsdlike/mod.rs.orig 2021-02-10 18:18:38 UTC | |||||
+++ vendor/libc-0.2.79/src/unix/bsd/freebsdlike/mod.rs | |||||
@@ -14,6 +14,38 @@ pub type nl_item = ::c_int; | |||||
pub type id_t = i64; | |||||
pub type vm_size_t = ::uintptr_t; | |||||
+// elf.h | |||||
+ | |||||
+pub type Elf32_Addr = u32; | |||||
+pub type Elf32_Half = u16; | |||||
+pub type Elf32_Lword = u64; | |||||
+pub type Elf32_Off = u32; | |||||
+pub type Elf32_Sword = i32; | |||||
+pub type Elf32_Word = u32; | |||||
+ | |||||
+pub type Elf64_Addr = u64; | |||||
+pub type Elf64_Half = u16; | |||||
+pub type Elf64_Lword = u64; | |||||
+pub type Elf64_Off = u64; | |||||
+pub type Elf64_Sword = i32; | |||||
+pub type Elf64_Sxword = i64; | |||||
+pub type Elf64_Word = u32; | |||||
+pub type Elf64_Xword = u64; | |||||
+ | |||||
+cfg_if! { | |||||
+ if #[cfg(target_pointer_width = "64")] { | |||||
+ type Elf_Addr = Elf64_Addr; | |||||
+ type Elf_Half = Elf64_Half; | |||||
+ type Elf_Phdr = Elf64_Phdr; | |||||
+ } else if #[cfg(target_pointer_width = "32")] { | |||||
+ type Elf_Addr = Elf32_Addr; | |||||
+ type Elf_Half = Elf32_Half; | |||||
+ type Elf_Phdr = Elf32_Phdr; | |||||
+ } | |||||
+} | |||||
+ | |||||
+// link.h | |||||
+ | |||||
#[cfg_attr(feature = "extra_traits", derive(Debug))] | |||||
pub enum timezone {} | |||||
impl ::Copy for timezone {} | |||||
@@ -233,6 +265,43 @@ s! { | |||||
pub piod_addr: *mut ::c_void, | |||||
pub piod_len: ::size_t, | |||||
} | |||||
+ | |||||
+ // elf.h | |||||
+ | |||||
+ pub struct Elf32_Phdr { | |||||
+ pub p_type: Elf32_Word, | |||||
+ pub p_offset: Elf32_Off, | |||||
+ pub p_vaddr: Elf32_Addr, | |||||
+ pub p_paddr: Elf32_Addr, | |||||
+ pub p_filesz: Elf32_Word, | |||||
+ pub p_memsz: Elf32_Word, | |||||
+ pub p_flags: Elf32_Word, | |||||
+ pub p_align: Elf32_Word, | |||||
+ } | |||||
+ | |||||
+ pub struct Elf64_Phdr { | |||||
+ pub p_type: Elf64_Word, | |||||
+ pub p_flags: Elf64_Word, | |||||
+ pub p_offset: Elf64_Off, | |||||
+ pub p_vaddr: Elf64_Addr, | |||||
+ pub p_paddr: Elf64_Addr, | |||||
+ pub p_filesz: Elf64_Xword, | |||||
+ pub p_memsz: Elf64_Xword, | |||||
+ pub p_align: Elf64_Xword, | |||||
+ } | |||||
+ | |||||
+ // link.h | |||||
+ | |||||
+ pub struct dl_phdr_info { | |||||
+ pub dlpi_addr: Elf_Addr, | |||||
+ pub dlpi_name: *const ::c_char, | |||||
+ pub dlpi_phdr: *const Elf_Phdr, | |||||
+ pub dlpi_phnum: Elf_Half, | |||||
+ pub dlpi_adds: ::c_ulonglong, | |||||
+ pub dlpi_subs: ::c_ulonglong, | |||||
+ pub dlpi_tls_modid: usize, | |||||
+ pub dlpi_tls_data: *mut ::c_void, | |||||
+ } | |||||
} | |||||
s_no_extra_traits! { | |||||
@@ -1514,6 +1583,18 @@ extern "C" { | |||||
pub fn ntp_adjtime(buf: *mut timex) -> ::c_int; | |||||
pub fn ntp_gettime(buf: *mut ntptimeval) -> ::c_int; | |||||
+ | |||||
+ // #include <link.h> | |||||
+ pub fn dl_iterate_phdr( | |||||
+ callback: ::Option< | |||||
+ unsafe extern "C" fn( | |||||
+ info: *mut dl_phdr_info, | |||||
+ size: usize, | |||||
+ data: *mut ::c_void, | |||||
+ ) -> ::c_int, | |||||
+ >, | |||||
+ data: *mut ::c_void, | |||||
+ ) -> ::c_int; | |||||
} | |||||
#[link(name = "rt")] | |||||
--- vendor/libc-0.2.79/src/unix/bsd/netbsdlike/netbsd/mod.rs.orig 2021-02-10 18:18:38 UTC | |||||
+++ vendor/libc-0.2.79/src/unix/bsd/netbsdlike/netbsd/mod.rs | |||||
@@ -11,6 +11,36 @@ pub type vm_size_t = ::uintptr_t; | |||||
pub type lwpid_t = ::c_uint; | |||||
pub type shmatt_t = ::c_uint; | |||||
+// elf.h | |||||
+ | |||||
+pub type Elf32_Addr = u32; | |||||
+pub type Elf32_Half = u16; | |||||
+pub type Elf32_Lword = u64; | |||||
+pub type Elf32_Off = u32; | |||||
+pub type Elf32_Sword = i32; | |||||
+pub type Elf32_Word = u32; | |||||
+ | |||||
+pub type Elf64_Addr = u64; | |||||
+pub type Elf64_Half = u16; | |||||
+pub type Elf64_Lword = u64; | |||||
+pub type Elf64_Off = u64; | |||||
+pub type Elf64_Sword = i32; | |||||
+pub type Elf64_Sxword = i64; | |||||
+pub type Elf64_Word = u32; | |||||
+pub type Elf64_Xword = u64; | |||||
+ | |||||
+cfg_if! { | |||||
+ if #[cfg(target_pointer_width = "64")] { | |||||
+ type Elf_Addr = Elf64_Addr; | |||||
+ type Elf_Half = Elf64_Half; | |||||
+ type Elf_Phdr = Elf64_Phdr; | |||||
+ } else if #[cfg(target_pointer_width = "32")] { | |||||
+ type Elf_Addr = Elf32_Addr; | |||||
+ type Elf_Half = Elf32_Half; | |||||
+ type Elf_Phdr = Elf32_Phdr; | |||||
+ } | |||||
+} | |||||
+ | |||||
impl siginfo_t { | |||||
pub unsafe fn si_value(&self) -> ::sigval { | |||||
#[repr(C)] | |||||
@@ -341,6 +371,42 @@ s! { | |||||
pub time_state: ::c_int, | |||||
} | |||||
+ // elf.h | |||||
+ | |||||
+ pub struct Elf32_Phdr { | |||||
+ pub p_type: Elf32_Word, | |||||
+ pub p_offset: Elf32_Off, | |||||
+ pub p_vaddr: Elf32_Addr, | |||||
+ pub p_paddr: Elf32_Addr, | |||||
+ pub p_filesz: Elf32_Word, | |||||
+ pub p_memsz: Elf32_Word, | |||||
+ pub p_flags: Elf32_Word, | |||||
+ pub p_align: Elf32_Word, | |||||
+ } | |||||
+ | |||||
+ pub struct Elf64_Phdr { | |||||
+ pub p_type: Elf64_Word, | |||||
+ pub p_flags: Elf64_Word, | |||||
+ pub p_offset: Elf64_Off, | |||||
+ pub p_vaddr: Elf64_Addr, | |||||
+ pub p_paddr: Elf64_Addr, | |||||
+ pub p_filesz: Elf64_Xword, | |||||
+ pub p_memsz: Elf64_Xword, | |||||
+ pub p_align: Elf64_Xword, | |||||
+ } | |||||
+ | |||||
+ // link.h | |||||
+ | |||||
+ pub struct dl_phdr_info { | |||||
+ pub dlpi_addr: Elf_Addr, | |||||
+ pub dlpi_name: *const ::c_char, | |||||
+ pub dlpi_phdr: *const Elf_Phdr, | |||||
+ pub dlpi_phnum: Elf_Half, | |||||
+ pub dlpi_adds: ::c_ulonglong, | |||||
+ pub dlpi_subs: ::c_ulonglong, | |||||
+ pub dlpi_tls_modid: usize, | |||||
+ pub dlpi_tls_data: *mut ::c_void, | |||||
+ } | |||||
} | |||||
s_no_extra_traits! { | |||||
@@ -1990,6 +2056,19 @@ extern "C" { | |||||
needle: *const ::c_void, | |||||
needlelen: ::size_t, | |||||
) -> *mut ::c_void; | |||||
+ | |||||
+ // link.h | |||||
+ | |||||
+ pub fn dl_iterate_phdr( | |||||
+ callback: ::Option< | |||||
+ unsafe extern "C" fn( | |||||
+ info: *mut dl_phdr_info, | |||||
+ size: usize, | |||||
+ data: *mut ::c_void, | |||||
+ ) -> ::c_int, | |||||
+ >, | |||||
+ data: *mut ::c_void, | |||||
+ ) -> ::c_int; | |||||
} | |||||
#[link(name = "util")] | |||||
--- vendor/libc-0.2.79/src/unix/bsd/netbsdlike/openbsd/mod.rs.orig 2021-02-10 18:18:38 UTC | |||||
+++ vendor/libc-0.2.79/src/unix/bsd/netbsdlike/openbsd/mod.rs | |||||
@@ -16,6 +16,36 @@ pub type pthread_rwlock_t = *mut ::c_void; | |||||
pub type pthread_rwlockattr_t = *mut ::c_void; | |||||
pub type caddr_t = *mut ::c_char; | |||||
+// elf.h | |||||
+ | |||||
+pub type Elf32_Addr = u32; | |||||
+pub type Elf32_Half = u16; | |||||
+pub type Elf32_Lword = u64; | |||||
+pub type Elf32_Off = u32; | |||||
+pub type Elf32_Sword = i32; | |||||
+pub type Elf32_Word = u32; | |||||
+ | |||||
+pub type Elf64_Addr = u64; | |||||
+pub type Elf64_Half = u16; | |||||
+pub type Elf64_Lword = u64; | |||||
+pub type Elf64_Off = u64; | |||||
+pub type Elf64_Sword = i32; | |||||
+pub type Elf64_Sxword = i64; | |||||
+pub type Elf64_Word = u32; | |||||
+pub type Elf64_Xword = u64; | |||||
+ | |||||
+cfg_if! { | |||||
+ if #[cfg(target_pointer_width = "64")] { | |||||
+ type Elf_Addr = Elf64_Addr; | |||||
+ type Elf_Half = Elf64_Half; | |||||
+ type Elf_Phdr = Elf64_Phdr; | |||||
+ } else if #[cfg(target_pointer_width = "32")] { | |||||
+ type Elf_Addr = Elf32_Addr; | |||||
+ type Elf_Half = Elf32_Half; | |||||
+ type Elf_Phdr = Elf32_Phdr; | |||||
+ } | |||||
+} | |||||
+ | |||||
s! { | |||||
pub struct glob_t { | |||||
pub gl_pathc: ::size_t, | |||||
@@ -321,6 +351,38 @@ s! { | |||||
__shm_ctimensec: c_long, | |||||
pub shm_internal: *mut ::c_void, | |||||
} | |||||
+ | |||||
+ // elf.h | |||||
+ pub struct Elf32_Phdr { | |||||
+ pub p_type: Elf32_Word, | |||||
+ pub p_offset: Elf32_Off, | |||||
+ pub p_vaddr: Elf32_Addr, | |||||
+ pub p_paddr: Elf32_Addr, | |||||
+ pub p_filesz: Elf32_Word, | |||||
+ pub p_memsz: Elf32_Word, | |||||
+ pub p_flags: Elf32_Word, | |||||
+ pub p_align: Elf32_Word, | |||||
+ } | |||||
+ | |||||
+ pub struct Elf64_Phdr { | |||||
+ pub p_type: Elf64_Word, | |||||
+ pub p_flags: Elf64_Word, | |||||
+ pub p_offset: Elf64_Off, | |||||
+ pub p_vaddr: Elf64_Addr, | |||||
+ pub p_paddr: Elf64_Addr, | |||||
+ pub p_filesz: Elf64_Xword, | |||||
+ pub p_memsz: Elf64_Xword, | |||||
+ pub p_align: Elf64_Xword, | |||||
+ } | |||||
+ | |||||
+ // link.h | |||||
+ | |||||
+ pub struct dl_phdr_info { | |||||
+ pub dlpi_addr: Elf_Addr, | |||||
+ pub dlpi_name: *const ::c_char, | |||||
+ pub dlpi_phdr: *const Elf_Phdr, | |||||
+ pub dlpi_phnum: Elf_Half, | |||||
+ } | |||||
} | |||||
impl siginfo_t { | |||||
@@ -1482,6 +1544,17 @@ extern "C" { | |||||
needle: *const ::c_void, | |||||
needlelen: ::size_t, | |||||
) -> *mut ::c_void; | |||||
+ // #include <link.h> | |||||
+ pub fn dl_iterate_phdr( | |||||
+ callback: ::Option< | |||||
+ unsafe extern "C" fn( | |||||
+ info: *mut dl_phdr_info, | |||||
+ size: usize, | |||||
+ data: *mut ::c_void, | |||||
+ ) -> ::c_int, | |||||
+ >, | |||||
+ data: *mut ::c_void, | |||||
+ ) -> ::c_int; | |||||
} | |||||
cfg_if! { | |||||
--- vendor/libc/src/unix/bsd/freebsdlike/mod.rs.orig 2021-02-10 18:18:38 UTC | |||||
+++ vendor/libc/src/unix/bsd/freebsdlike/mod.rs | |||||
@@ -14,6 +14,38 @@ pub type nl_item = ::c_int; | |||||
pub type id_t = i64; | |||||
pub type vm_size_t = ::uintptr_t; | |||||
+// elf.h | |||||
+ | |||||
+pub type Elf32_Addr = u32; | |||||
+pub type Elf32_Half = u16; | |||||
+pub type Elf32_Lword = u64; | |||||
+pub type Elf32_Off = u32; | |||||
+pub type Elf32_Sword = i32; | |||||
+pub type Elf32_Word = u32; | |||||
+ | |||||
+pub type Elf64_Addr = u64; | |||||
+pub type Elf64_Half = u16; | |||||
+pub type Elf64_Lword = u64; | |||||
+pub type Elf64_Off = u64; | |||||
+pub type Elf64_Sword = i32; | |||||
+pub type Elf64_Sxword = i64; | |||||
+pub type Elf64_Word = u32; | |||||
+pub type Elf64_Xword = u64; | |||||
+ | |||||
+cfg_if! { | |||||
+ if #[cfg(target_pointer_width = "64")] { | |||||
+ type Elf_Addr = Elf64_Addr; | |||||
+ type Elf_Half = Elf64_Half; | |||||
+ type Elf_Phdr = Elf64_Phdr; | |||||
+ } else if #[cfg(target_pointer_width = "32")] { | |||||
+ type Elf_Addr = Elf32_Addr; | |||||
+ type Elf_Half = Elf32_Half; | |||||
+ type Elf_Phdr = Elf32_Phdr; | |||||
+ } | |||||
+} | |||||
+ | |||||
+// link.h | |||||
+ | |||||
#[cfg_attr(feature = "extra_traits", derive(Debug))] | |||||
pub enum timezone {} | |||||
impl ::Copy for timezone {} | |||||
@@ -233,6 +265,43 @@ s! { | |||||
pub piod_addr: *mut ::c_void, | |||||
pub piod_len: ::size_t, | |||||
} | |||||
+ | |||||
+ // elf.h | |||||
+ | |||||
+ pub struct Elf32_Phdr { | |||||
+ pub p_type: Elf32_Word, | |||||
+ pub p_offset: Elf32_Off, | |||||
+ pub p_vaddr: Elf32_Addr, | |||||
+ pub p_paddr: Elf32_Addr, | |||||
+ pub p_filesz: Elf32_Word, | |||||
+ pub p_memsz: Elf32_Word, | |||||
+ pub p_flags: Elf32_Word, | |||||
+ pub p_align: Elf32_Word, | |||||
+ } | |||||
+ | |||||
+ pub struct Elf64_Phdr { | |||||
+ pub p_type: Elf64_Word, | |||||
+ pub p_flags: Elf64_Word, | |||||
+ pub p_offset: Elf64_Off, | |||||
+ pub p_vaddr: Elf64_Addr, | |||||
+ pub p_paddr: Elf64_Addr, | |||||
+ pub p_filesz: Elf64_Xword, | |||||
+ pub p_memsz: Elf64_Xword, | |||||
+ pub p_align: Elf64_Xword, | |||||
+ } | |||||
+ | |||||
+ // link.h | |||||
+ | |||||
+ pub struct dl_phdr_info { | |||||
+ pub dlpi_addr: Elf_Addr, | |||||
+ pub dlpi_name: *const ::c_char, | |||||
+ pub dlpi_phdr: *const Elf_Phdr, | |||||
+ pub dlpi_phnum: Elf_Half, | |||||
+ pub dlpi_adds: ::c_ulonglong, | |||||
+ pub dlpi_subs: ::c_ulonglong, | |||||
+ pub dlpi_tls_modid: usize, | |||||
+ pub dlpi_tls_data: *mut ::c_void, | |||||
+ } | |||||
} | |||||
s_no_extra_traits! { | |||||
@@ -1514,6 +1583,18 @@ extern "C" { | |||||
pub fn ntp_adjtime(buf: *mut timex) -> ::c_int; | |||||
pub fn ntp_gettime(buf: *mut ntptimeval) -> ::c_int; | |||||
+ | |||||
+ // #include <link.h> | |||||
+ pub fn dl_iterate_phdr( | |||||
+ callback: ::Option< | |||||
+ unsafe extern "C" fn( | |||||
+ info: *mut dl_phdr_info, | |||||
+ size: usize, | |||||
+ data: *mut ::c_void, | |||||
+ ) -> ::c_int, | |||||
+ >, | |||||
+ data: *mut ::c_void, | |||||
+ ) -> ::c_int; | |||||
} | |||||
#[link(name = "rt")] | |||||
--- vendor/libc/src/unix/bsd/netbsdlike/netbsd/mod.rs.orig 2021-02-10 18:18:38 UTC | |||||
+++ vendor/libc/src/unix/bsd/netbsdlike/netbsd/mod.rs | |||||
@@ -11,6 +11,36 @@ pub type vm_size_t = ::uintptr_t; | |||||
pub type lwpid_t = ::c_uint; | |||||
pub type shmatt_t = ::c_uint; | |||||
+// elf.h | |||||
+ | |||||
+pub type Elf32_Addr = u32; | |||||
+pub type Elf32_Half = u16; | |||||
+pub type Elf32_Lword = u64; | |||||
+pub type Elf32_Off = u32; | |||||
+pub type Elf32_Sword = i32; | |||||
+pub type Elf32_Word = u32; | |||||
+ | |||||
+pub type Elf64_Addr = u64; | |||||
+pub type Elf64_Half = u16; | |||||
+pub type Elf64_Lword = u64; | |||||
+pub type Elf64_Off = u64; | |||||
+pub type Elf64_Sword = i32; | |||||
+pub type Elf64_Sxword = i64; | |||||
+pub type Elf64_Word = u32; | |||||
+pub type Elf64_Xword = u64; | |||||
+ | |||||
+cfg_if! { | |||||
+ if #[cfg(target_pointer_width = "64")] { | |||||
+ type Elf_Addr = Elf64_Addr; | |||||
+ type Elf_Half = Elf64_Half; | |||||
+ type Elf_Phdr = Elf64_Phdr; | |||||
+ } else if #[cfg(target_pointer_width = "32")] { | |||||
+ type Elf_Addr = Elf32_Addr; | |||||
+ type Elf_Half = Elf32_Half; | |||||
+ type Elf_Phdr = Elf32_Phdr; | |||||
+ } | |||||
+} | |||||
+ | |||||
impl siginfo_t { | |||||
pub unsafe fn si_value(&self) -> ::sigval { | |||||
#[repr(C)] | |||||
@@ -341,6 +371,42 @@ s! { | |||||
pub time_state: ::c_int, | |||||
} | |||||
+ // elf.h | |||||
+ | |||||
+ pub struct Elf32_Phdr { | |||||
+ pub p_type: Elf32_Word, | |||||
+ pub p_offset: Elf32_Off, | |||||
+ pub p_vaddr: Elf32_Addr, | |||||
+ pub p_paddr: Elf32_Addr, | |||||
+ pub p_filesz: Elf32_Word, | |||||
+ pub p_memsz: Elf32_Word, | |||||
+ pub p_flags: Elf32_Word, | |||||
+ pub p_align: Elf32_Word, | |||||
+ } | |||||
+ | |||||
+ pub struct Elf64_Phdr { | |||||
+ pub p_type: Elf64_Word, | |||||
+ pub p_flags: Elf64_Word, | |||||
+ pub p_offset: Elf64_Off, | |||||
+ pub p_vaddr: Elf64_Addr, | |||||
+ pub p_paddr: Elf64_Addr, | |||||
+ pub p_filesz: Elf64_Xword, | |||||
+ pub p_memsz: Elf64_Xword, | |||||
+ pub p_align: Elf64_Xword, | |||||
+ } | |||||
+ | |||||
+ // link.h | |||||
+ | |||||
+ pub struct dl_phdr_info { | |||||
+ pub dlpi_addr: Elf_Addr, | |||||
+ pub dlpi_name: *const ::c_char, | |||||
+ pub dlpi_phdr: *const Elf_Phdr, | |||||
+ pub dlpi_phnum: Elf_Half, | |||||
+ pub dlpi_adds: ::c_ulonglong, | |||||
+ pub dlpi_subs: ::c_ulonglong, | |||||
+ pub dlpi_tls_modid: usize, | |||||
+ pub dlpi_tls_data: *mut ::c_void, | |||||
+ } | |||||
} | |||||
s_no_extra_traits! { | |||||
@@ -2002,6 +2068,19 @@ extern "C" { | |||||
needle: *const ::c_void, | |||||
needlelen: ::size_t, | |||||
) -> *mut ::c_void; | |||||
+ | |||||
+ // link.h | |||||
+ | |||||
+ pub fn dl_iterate_phdr( | |||||
+ callback: ::Option< | |||||
+ unsafe extern "C" fn( | |||||
+ info: *mut dl_phdr_info, | |||||
+ size: usize, | |||||
+ data: *mut ::c_void, | |||||
+ ) -> ::c_int, | |||||
+ >, | |||||
+ data: *mut ::c_void, | |||||
+ ) -> ::c_int; | |||||
} | |||||
#[link(name = "util")] | |||||
--- vendor/libc/src/unix/bsd/netbsdlike/openbsd/mod.rs.orig 2021-02-10 18:18:38 UTC | |||||
+++ vendor/libc/src/unix/bsd/netbsdlike/openbsd/mod.rs | |||||
@@ -16,6 +16,36 @@ pub type pthread_rwlock_t = *mut ::c_void; | |||||
pub type pthread_rwlockattr_t = *mut ::c_void; | |||||
pub type caddr_t = *mut ::c_char; | |||||
+// elf.h | |||||
+ | |||||
+pub type Elf32_Addr = u32; | |||||
+pub type Elf32_Half = u16; | |||||
+pub type Elf32_Lword = u64; | |||||
+pub type Elf32_Off = u32; | |||||
+pub type Elf32_Sword = i32; | |||||
+pub type Elf32_Word = u32; | |||||
+ | |||||
+pub type Elf64_Addr = u64; | |||||
+pub type Elf64_Half = u16; | |||||
+pub type Elf64_Lword = u64; | |||||
+pub type Elf64_Off = u64; | |||||
+pub type Elf64_Sword = i32; | |||||
+pub type Elf64_Sxword = i64; | |||||
+pub type Elf64_Word = u32; | |||||
+pub type Elf64_Xword = u64; | |||||
+ | |||||
+cfg_if! { | |||||
+ if #[cfg(target_pointer_width = "64")] { | |||||
+ type Elf_Addr = Elf64_Addr; | |||||
+ type Elf_Half = Elf64_Half; | |||||
+ type Elf_Phdr = Elf64_Phdr; | |||||
+ } else if #[cfg(target_pointer_width = "32")] { | |||||
+ type Elf_Addr = Elf32_Addr; | |||||
+ type Elf_Half = Elf32_Half; | |||||
+ type Elf_Phdr = Elf32_Phdr; | |||||
+ } | |||||
+} | |||||
+ | |||||
s! { | |||||
pub struct glob_t { | |||||
pub gl_pathc: ::size_t, | |||||
@@ -321,6 +351,38 @@ s! { | |||||
__shm_ctimensec: c_long, | |||||
pub shm_internal: *mut ::c_void, | |||||
} | |||||
+ | |||||
+ // elf.h | |||||
+ pub struct Elf32_Phdr { | |||||
+ pub p_type: Elf32_Word, | |||||
+ pub p_offset: Elf32_Off, | |||||
+ pub p_vaddr: Elf32_Addr, | |||||
+ pub p_paddr: Elf32_Addr, | |||||
+ pub p_filesz: Elf32_Word, | |||||
+ pub p_memsz: Elf32_Word, | |||||
+ pub p_flags: Elf32_Word, | |||||
+ pub p_align: Elf32_Word, | |||||
+ } | |||||
+ | |||||
+ pub struct Elf64_Phdr { | |||||
+ pub p_type: Elf64_Word, | |||||
+ pub p_flags: Elf64_Word, | |||||
+ pub p_offset: Elf64_Off, | |||||
+ pub p_vaddr: Elf64_Addr, | |||||
+ pub p_paddr: Elf64_Addr, | |||||
+ pub p_filesz: Elf64_Xword, | |||||
+ pub p_memsz: Elf64_Xword, | |||||
+ pub p_align: Elf64_Xword, | |||||
+ } | |||||
+ | |||||
+ // link.h | |||||
+ | |||||
+ pub struct dl_phdr_info { | |||||
+ pub dlpi_addr: Elf_Addr, | |||||
+ pub dlpi_name: *const ::c_char, | |||||
+ pub dlpi_phdr: *const Elf_Phdr, | |||||
+ pub dlpi_phnum: Elf_Half, | |||||
+ } | |||||
} | |||||
impl siginfo_t { | |||||
@@ -1482,6 +1544,17 @@ extern "C" { | |||||
needle: *const ::c_void, | |||||
needlelen: ::size_t, | |||||
) -> *mut ::c_void; | |||||
+ // #include <link.h> | |||||
+ pub fn dl_iterate_phdr( | |||||
+ callback: ::Option< | |||||
+ unsafe extern "C" fn( | |||||
+ info: *mut dl_phdr_info, | |||||
+ size: usize, | |||||
+ data: *mut ::c_void, | |||||
+ ) -> ::c_int, | |||||
+ >, | |||||
+ data: *mut ::c_void, | |||||
+ ) -> ::c_int; | |||||
} | |||||
cfg_if! { |