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! { | |||||