summary refs log tree commit diff
path: root/kernel_loader
diff options
context:
space:
mode:
authorZach Reizner <zachr@google.com>2019-05-21 14:52:52 -0700
committerchrome-bot <chrome-bot@chromium.org>2019-05-23 02:14:24 -0700
commit90c3271ce500009cf07c212aba4c9cefded29582 (patch)
tree98a97c0dc2ab7803295106d6aaba91e2fb3cacc8 /kernel_loader
parent85691d34062e71a4740e3198097954e2f89e74e2 (diff)
downloadcrosvm-90c3271ce500009cf07c212aba4c9cefded29582.tar
crosvm-90c3271ce500009cf07c212aba4c9cefded29582.tar.gz
crosvm-90c3271ce500009cf07c212aba4c9cefded29582.tar.bz2
crosvm-90c3271ce500009cf07c212aba4c9cefded29582.tar.lz
crosvm-90c3271ce500009cf07c212aba4c9cefded29582.tar.xz
crosvm-90c3271ce500009cf07c212aba4c9cefded29582.tar.zst
crosvm-90c3271ce500009cf07c212aba4c9cefded29582.zip
kernel_loader: regenerate bindings without unions
TEST=crosvm run <snip> vmlinux, kernel loads properly
BUG=761517

Change-Id: I2c1ce6f89c1a4d3a03df87b4e1931f63a7f5e569
Reviewed-on: https://chromium-review.googlesource.com/1623456
Commit-Ready: Zach Reizner <zachr@chromium.org>
Tested-by: Zach Reizner <zachr@chromium.org>
Tested-by: kokoro <noreply+kokoro@google.com>
Legacy-Commit-Queue: Commit Bot <commit-bot@chromium.org>
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
Diffstat (limited to 'kernel_loader')
-rw-r--r--kernel_loader/src/elf.rs2090
1 files changed, 240 insertions, 1850 deletions
diff --git a/kernel_loader/src/elf.rs b/kernel_loader/src/elf.rs
index f1f7efd..c591e52 100644
--- a/kernel_loader/src/elf.rs
+++ b/kernel_loader/src/elf.rs
@@ -3,1121 +3,256 @@
 // found in the LICENSE file.
 
 /*
- * automatically generated by rust-bindgen
- * From upstream linux include/uapi/linux/elf.h at commit:
- * 806276b7f07a39a1cc3f38bb1ef5c573d4594a38
+ * automatically generated by bindgen
+ * From chromeos-linux v4.19 include/uapi/linux/elf.h
+ * $ bindgen \
+ *       --no-layout-tests --with-derive-default \
+ *       --whitelist-type Elf64_Ehdr --whitelist-type Elf64_Phdr --whitelist-var .+ \
+ *       include/uapi/linux/elf.h
  */
 
-#[repr(C)]
-pub struct __BindgenUnionField<T>(::std::marker::PhantomData<T>);
-impl<T> __BindgenUnionField<T> {
-    #[inline]
-    pub fn new() -> Self {
-        __BindgenUnionField(::std::marker::PhantomData)
-    }
-    #[inline]
-    pub unsafe fn as_ref(&self) -> &T {
-        ::std::mem::transmute(self)
-    }
-    #[inline]
-    pub unsafe fn as_mut(&mut self) -> &mut T {
-        ::std::mem::transmute(self)
-    }
-}
-impl<T> ::std::default::Default for __BindgenUnionField<T> {
-    #[inline]
-    fn default() -> Self {
-        Self::new()
-    }
-}
-impl<T> ::std::clone::Clone for __BindgenUnionField<T> {
-    #[inline]
-    fn clone(&self) -> Self {
-        Self::new()
-    }
-}
-impl<T> ::std::marker::Copy for __BindgenUnionField<T> {}
-impl<T> ::std::fmt::Debug for __BindgenUnionField<T> {
-    fn fmt(&self, fmt: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
-        fmt.write_str("__BindgenUnionField")
-    }
-}
-pub const __BITS_PER_LONG: ::std::os::raw::c_uint = 64;
-pub const __FD_SETSIZE: ::std::os::raw::c_uint = 1024;
-pub const EM_NONE: ::std::os::raw::c_uint = 0;
-pub const EM_M32: ::std::os::raw::c_uint = 1;
-pub const EM_SPARC: ::std::os::raw::c_uint = 2;
-pub const EM_386: ::std::os::raw::c_uint = 3;
-pub const EM_68K: ::std::os::raw::c_uint = 4;
-pub const EM_88K: ::std::os::raw::c_uint = 5;
-pub const EM_486: ::std::os::raw::c_uint = 6;
-pub const EM_860: ::std::os::raw::c_uint = 7;
-pub const EM_MIPS: ::std::os::raw::c_uint = 8;
-pub const EM_MIPS_RS3_LE: ::std::os::raw::c_uint = 10;
-pub const EM_MIPS_RS4_BE: ::std::os::raw::c_uint = 10;
-pub const EM_PARISC: ::std::os::raw::c_uint = 15;
-pub const EM_SPARC32PLUS: ::std::os::raw::c_uint = 18;
-pub const EM_PPC: ::std::os::raw::c_uint = 20;
-pub const EM_PPC64: ::std::os::raw::c_uint = 21;
-pub const EM_SPU: ::std::os::raw::c_uint = 23;
-pub const EM_ARM: ::std::os::raw::c_uint = 40;
-pub const EM_SH: ::std::os::raw::c_uint = 42;
-pub const EM_SPARCV9: ::std::os::raw::c_uint = 43;
-pub const EM_H8_300: ::std::os::raw::c_uint = 46;
-pub const EM_IA_64: ::std::os::raw::c_uint = 50;
-pub const EM_X86_64: ::std::os::raw::c_uint = 62;
-pub const EM_S390: ::std::os::raw::c_uint = 22;
-pub const EM_CRIS: ::std::os::raw::c_uint = 76;
-pub const EM_V850: ::std::os::raw::c_uint = 87;
-pub const EM_M32R: ::std::os::raw::c_uint = 88;
-pub const EM_MN10300: ::std::os::raw::c_uint = 89;
-pub const EM_OPENRISC: ::std::os::raw::c_uint = 92;
-pub const EM_BLACKFIN: ::std::os::raw::c_uint = 106;
-pub const EM_ALTERA_NIOS2: ::std::os::raw::c_uint = 113;
-pub const EM_TI_C6000: ::std::os::raw::c_uint = 140;
-pub const EM_AARCH64: ::std::os::raw::c_uint = 183;
-pub const EM_TILEPRO: ::std::os::raw::c_uint = 188;
-pub const EM_MICROBLAZE: ::std::os::raw::c_uint = 189;
-pub const EM_TILEGX: ::std::os::raw::c_uint = 191;
-pub const EM_FRV: ::std::os::raw::c_uint = 21569;
-pub const EM_AVR32: ::std::os::raw::c_uint = 6317;
-pub const EM_ALPHA: ::std::os::raw::c_uint = 36902;
-pub const EM_CYGNUS_V850: ::std::os::raw::c_uint = 36992;
-pub const EM_CYGNUS_M32R: ::std::os::raw::c_uint = 36929;
-pub const EM_S390_OLD: ::std::os::raw::c_uint = 41872;
-pub const EM_CYGNUS_MN10300: ::std::os::raw::c_uint = 48879;
-pub const PT_NULL: ::std::os::raw::c_uint = 0;
-pub const PT_LOAD: ::std::os::raw::c_uint = 1;
-pub const PT_DYNAMIC: ::std::os::raw::c_uint = 2;
-pub const PT_INTERP: ::std::os::raw::c_uint = 3;
-pub const PT_NOTE: ::std::os::raw::c_uint = 4;
-pub const PT_SHLIB: ::std::os::raw::c_uint = 5;
-pub const PT_PHDR: ::std::os::raw::c_uint = 6;
-pub const PT_TLS: ::std::os::raw::c_uint = 7;
-pub const PT_LOOS: ::std::os::raw::c_uint = 1610612736;
-pub const PT_HIOS: ::std::os::raw::c_uint = 1879048191;
-pub const PT_LOPROC: ::std::os::raw::c_uint = 1879048192;
-pub const PT_HIPROC: ::std::os::raw::c_uint = 2147483647;
-pub const PT_GNU_EH_FRAME: ::std::os::raw::c_uint = 1685382480;
-pub const PT_GNU_STACK: ::std::os::raw::c_uint = 1685382481;
-pub const PN_XNUM: ::std::os::raw::c_uint = 65535;
-pub const ET_NONE: ::std::os::raw::c_uint = 0;
-pub const ET_REL: ::std::os::raw::c_uint = 1;
-pub const ET_EXEC: ::std::os::raw::c_uint = 2;
-pub const ET_DYN: ::std::os::raw::c_uint = 3;
-pub const ET_CORE: ::std::os::raw::c_uint = 4;
-pub const ET_LOPROC: ::std::os::raw::c_uint = 65280;
-pub const ET_HIPROC: ::std::os::raw::c_uint = 65535;
-pub const DT_NULL: ::std::os::raw::c_uint = 0;
-pub const DT_NEEDED: ::std::os::raw::c_uint = 1;
-pub const DT_PLTRELSZ: ::std::os::raw::c_uint = 2;
-pub const DT_PLTGOT: ::std::os::raw::c_uint = 3;
-pub const DT_HASH: ::std::os::raw::c_uint = 4;
-pub const DT_STRTAB: ::std::os::raw::c_uint = 5;
-pub const DT_SYMTAB: ::std::os::raw::c_uint = 6;
-pub const DT_RELA: ::std::os::raw::c_uint = 7;
-pub const DT_RELASZ: ::std::os::raw::c_uint = 8;
-pub const DT_RELAENT: ::std::os::raw::c_uint = 9;
-pub const DT_STRSZ: ::std::os::raw::c_uint = 10;
-pub const DT_SYMENT: ::std::os::raw::c_uint = 11;
-pub const DT_INIT: ::std::os::raw::c_uint = 12;
-pub const DT_FINI: ::std::os::raw::c_uint = 13;
-pub const DT_SONAME: ::std::os::raw::c_uint = 14;
-pub const DT_RPATH: ::std::os::raw::c_uint = 15;
-pub const DT_SYMBOLIC: ::std::os::raw::c_uint = 16;
-pub const DT_REL: ::std::os::raw::c_uint = 17;
-pub const DT_RELSZ: ::std::os::raw::c_uint = 18;
-pub const DT_RELENT: ::std::os::raw::c_uint = 19;
-pub const DT_PLTREL: ::std::os::raw::c_uint = 20;
-pub const DT_DEBUG: ::std::os::raw::c_uint = 21;
-pub const DT_TEXTREL: ::std::os::raw::c_uint = 22;
-pub const DT_JMPREL: ::std::os::raw::c_uint = 23;
-pub const DT_ENCODING: ::std::os::raw::c_uint = 32;
-pub const OLD_DT_LOOS: ::std::os::raw::c_uint = 1610612736;
-pub const DT_LOOS: ::std::os::raw::c_uint = 1610612749;
-pub const DT_HIOS: ::std::os::raw::c_uint = 1879044096;
-pub const DT_VALRNGLO: ::std::os::raw::c_uint = 1879047424;
-pub const DT_VALRNGHI: ::std::os::raw::c_uint = 1879047679;
-pub const DT_ADDRRNGLO: ::std::os::raw::c_uint = 1879047680;
-pub const DT_ADDRRNGHI: ::std::os::raw::c_uint = 1879047935;
-pub const DT_VERSYM: ::std::os::raw::c_uint = 1879048176;
-pub const DT_RELACOUNT: ::std::os::raw::c_uint = 1879048185;
-pub const DT_RELCOUNT: ::std::os::raw::c_uint = 1879048186;
-pub const DT_FLAGS_1: ::std::os::raw::c_uint = 1879048187;
-pub const DT_VERDEF: ::std::os::raw::c_uint = 1879048188;
-pub const DT_VERDEFNUM: ::std::os::raw::c_uint = 1879048189;
-pub const DT_VERNEED: ::std::os::raw::c_uint = 1879048190;
-pub const DT_VERNEEDNUM: ::std::os::raw::c_uint = 1879048191;
-pub const OLD_DT_HIOS: ::std::os::raw::c_uint = 1879048191;
-pub const DT_LOPROC: ::std::os::raw::c_uint = 1879048192;
-pub const DT_HIPROC: ::std::os::raw::c_uint = 2147483647;
-pub const STB_LOCAL: ::std::os::raw::c_uint = 0;
-pub const STB_GLOBAL: ::std::os::raw::c_uint = 1;
-pub const STB_WEAK: ::std::os::raw::c_uint = 2;
-pub const STT_NOTYPE: ::std::os::raw::c_uint = 0;
-pub const STT_OBJECT: ::std::os::raw::c_uint = 1;
-pub const STT_FUNC: ::std::os::raw::c_uint = 2;
-pub const STT_SECTION: ::std::os::raw::c_uint = 3;
-pub const STT_FILE: ::std::os::raw::c_uint = 4;
-pub const STT_COMMON: ::std::os::raw::c_uint = 5;
-pub const STT_TLS: ::std::os::raw::c_uint = 6;
-pub const EI_NIDENT: ::std::os::raw::c_uint = 16;
-pub const PF_R: ::std::os::raw::c_uint = 4;
-pub const PF_W: ::std::os::raw::c_uint = 2;
-pub const PF_X: ::std::os::raw::c_uint = 1;
-pub const SHT_NULL: ::std::os::raw::c_uint = 0;
-pub const SHT_PROGBITS: ::std::os::raw::c_uint = 1;
-pub const SHT_SYMTAB: ::std::os::raw::c_uint = 2;
-pub const SHT_STRTAB: ::std::os::raw::c_uint = 3;
-pub const SHT_RELA: ::std::os::raw::c_uint = 4;
-pub const SHT_HASH: ::std::os::raw::c_uint = 5;
-pub const SHT_DYNAMIC: ::std::os::raw::c_uint = 6;
-pub const SHT_NOTE: ::std::os::raw::c_uint = 7;
-pub const SHT_NOBITS: ::std::os::raw::c_uint = 8;
-pub const SHT_REL: ::std::os::raw::c_uint = 9;
-pub const SHT_SHLIB: ::std::os::raw::c_uint = 10;
-pub const SHT_DYNSYM: ::std::os::raw::c_uint = 11;
-pub const SHT_NUM: ::std::os::raw::c_uint = 12;
-pub const SHT_LOPROC: ::std::os::raw::c_uint = 1879048192;
-pub const SHT_HIPROC: ::std::os::raw::c_uint = 2147483647;
-pub const SHT_LOUSER: ::std::os::raw::c_uint = 2147483648;
-pub const SHT_HIUSER: ::std::os::raw::c_uint = 4294967295;
-pub const SHF_WRITE: ::std::os::raw::c_uint = 1;
-pub const SHF_ALLOC: ::std::os::raw::c_uint = 2;
-pub const SHF_EXECINSTR: ::std::os::raw::c_uint = 4;
-pub const SHF_MASKPROC: ::std::os::raw::c_uint = 4026531840;
-pub const SHN_UNDEF: ::std::os::raw::c_uint = 0;
-pub const SHN_LORESERVE: ::std::os::raw::c_uint = 65280;
-pub const SHN_LOPROC: ::std::os::raw::c_uint = 65280;
-pub const SHN_HIPROC: ::std::os::raw::c_uint = 65311;
-pub const SHN_ABS: ::std::os::raw::c_uint = 65521;
-pub const SHN_COMMON: ::std::os::raw::c_uint = 65522;
-pub const SHN_HIRESERVE: ::std::os::raw::c_uint = 65535;
-pub const EI_MAG0: ::std::os::raw::c_uint = 0;
-pub const EI_MAG1: ::std::os::raw::c_uint = 1;
-pub const EI_MAG2: ::std::os::raw::c_uint = 2;
-pub const EI_MAG3: ::std::os::raw::c_uint = 3;
-pub const EI_CLASS: ::std::os::raw::c_uint = 4;
-pub const EI_DATA: ::std::os::raw::c_uint = 5;
-pub const EI_VERSION: ::std::os::raw::c_uint = 6;
-pub const EI_OSABI: ::std::os::raw::c_uint = 7;
-pub const EI_PAD: ::std::os::raw::c_uint = 8;
-pub const ELFMAG0: ::std::os::raw::c_uint = 127;
-pub const ELFMAG1: u8 = b'E';
-pub const ELFMAG2: u8 = b'L';
-pub const ELFMAG3: u8 = b'F';
-pub const ELFMAG: &'static [u8; 5usize] = b"\x7fELF\x00";
-pub const SELFMAG: ::std::os::raw::c_uint = 4;
-pub const ELFCLASSNONE: ::std::os::raw::c_uint = 0;
-pub const ELFCLASS32: ::std::os::raw::c_uint = 1;
-pub const ELFCLASS64: ::std::os::raw::c_uint = 2;
-pub const ELFCLASSNUM: ::std::os::raw::c_uint = 3;
-pub const ELFDATANONE: ::std::os::raw::c_uint = 0;
-pub const ELFDATA2LSB: ::std::os::raw::c_uint = 1;
-pub const ELFDATA2MSB: ::std::os::raw::c_uint = 2;
-pub const EV_NONE: ::std::os::raw::c_uint = 0;
-pub const EV_CURRENT: ::std::os::raw::c_uint = 1;
-pub const EV_NUM: ::std::os::raw::c_uint = 2;
-pub const ELFOSABI_NONE: ::std::os::raw::c_uint = 0;
-pub const ELFOSABI_LINUX: ::std::os::raw::c_uint = 3;
-pub const ELF_OSABI: ::std::os::raw::c_uint = 0;
-pub const NT_PRSTATUS: ::std::os::raw::c_uint = 1;
-pub const NT_PRFPREG: ::std::os::raw::c_uint = 2;
-pub const NT_PRPSINFO: ::std::os::raw::c_uint = 3;
-pub const NT_TASKSTRUCT: ::std::os::raw::c_uint = 4;
-pub const NT_AUXV: ::std::os::raw::c_uint = 6;
-pub const NT_SIGINFO: ::std::os::raw::c_uint = 1397311305;
-pub const NT_FILE: ::std::os::raw::c_uint = 1179208773;
-pub const NT_PRXFPREG: ::std::os::raw::c_uint = 1189489535;
-pub const NT_PPC_VMX: ::std::os::raw::c_uint = 256;
-pub const NT_PPC_SPE: ::std::os::raw::c_uint = 257;
-pub const NT_PPC_VSX: ::std::os::raw::c_uint = 258;
-pub const NT_386_TLS: ::std::os::raw::c_uint = 512;
-pub const NT_386_IOPERM: ::std::os::raw::c_uint = 513;
-pub const NT_X86_XSTATE: ::std::os::raw::c_uint = 514;
-pub const NT_S390_HIGH_GPRS: ::std::os::raw::c_uint = 768;
-pub const NT_S390_TIMER: ::std::os::raw::c_uint = 769;
-pub const NT_S390_TODCMP: ::std::os::raw::c_uint = 770;
-pub const NT_S390_TODPREG: ::std::os::raw::c_uint = 771;
-pub const NT_S390_CTRS: ::std::os::raw::c_uint = 772;
-pub const NT_S390_PREFIX: ::std::os::raw::c_uint = 773;
-pub const NT_S390_LAST_BREAK: ::std::os::raw::c_uint = 774;
-pub const NT_S390_SYSTEM_CALL: ::std::os::raw::c_uint = 775;
-pub const NT_S390_TDB: ::std::os::raw::c_uint = 776;
-pub const NT_S390_VXRS_LOW: ::std::os::raw::c_uint = 777;
-pub const NT_S390_VXRS_HIGH: ::std::os::raw::c_uint = 778;
-pub const NT_ARM_VFP: ::std::os::raw::c_uint = 1024;
-pub const NT_ARM_TLS: ::std::os::raw::c_uint = 1025;
-pub const NT_ARM_HW_BREAK: ::std::os::raw::c_uint = 1026;
-pub const NT_ARM_HW_WATCH: ::std::os::raw::c_uint = 1027;
-pub const NT_ARM_SYSTEM_CALL: ::std::os::raw::c_uint = 1028;
-pub const NT_METAG_CBUF: ::std::os::raw::c_uint = 1280;
-pub const NT_METAG_RPIPE: ::std::os::raw::c_uint = 1281;
-pub const NT_METAG_TLS: ::std::os::raw::c_uint = 1282;
-pub type __s8 = ::std::os::raw::c_schar;
-pub type __u8 = ::std::os::raw::c_uchar;
-pub type __s16 = ::std::os::raw::c_short;
+pub const __BITS_PER_LONG: u32 = 64;
+pub const __FD_SETSIZE: u32 = 1024;
+pub const EM_NONE: u32 = 0;
+pub const EM_M32: u32 = 1;
+pub const EM_SPARC: u32 = 2;
+pub const EM_386: u32 = 3;
+pub const EM_68K: u32 = 4;
+pub const EM_88K: u32 = 5;
+pub const EM_486: u32 = 6;
+pub const EM_860: u32 = 7;
+pub const EM_MIPS: u32 = 8;
+pub const EM_MIPS_RS3_LE: u32 = 10;
+pub const EM_MIPS_RS4_BE: u32 = 10;
+pub const EM_PARISC: u32 = 15;
+pub const EM_SPARC32PLUS: u32 = 18;
+pub const EM_PPC: u32 = 20;
+pub const EM_PPC64: u32 = 21;
+pub const EM_SPU: u32 = 23;
+pub const EM_ARM: u32 = 40;
+pub const EM_SH: u32 = 42;
+pub const EM_SPARCV9: u32 = 43;
+pub const EM_H8_300: u32 = 46;
+pub const EM_IA_64: u32 = 50;
+pub const EM_X86_64: u32 = 62;
+pub const EM_S390: u32 = 22;
+pub const EM_CRIS: u32 = 76;
+pub const EM_M32R: u32 = 88;
+pub const EM_MN10300: u32 = 89;
+pub const EM_OPENRISC: u32 = 92;
+pub const EM_BLACKFIN: u32 = 106;
+pub const EM_ALTERA_NIOS2: u32 = 113;
+pub const EM_TI_C6000: u32 = 140;
+pub const EM_AARCH64: u32 = 183;
+pub const EM_TILEPRO: u32 = 188;
+pub const EM_MICROBLAZE: u32 = 189;
+pub const EM_TILEGX: u32 = 191;
+pub const EM_BPF: u32 = 247;
+pub const EM_FRV: u32 = 21569;
+pub const EM_ALPHA: u32 = 36902;
+pub const EM_CYGNUS_M32R: u32 = 36929;
+pub const EM_S390_OLD: u32 = 41872;
+pub const EM_CYGNUS_MN10300: u32 = 48879;
+pub const PT_NULL: u32 = 0;
+pub const PT_LOAD: u32 = 1;
+pub const PT_DYNAMIC: u32 = 2;
+pub const PT_INTERP: u32 = 3;
+pub const PT_NOTE: u32 = 4;
+pub const PT_SHLIB: u32 = 5;
+pub const PT_PHDR: u32 = 6;
+pub const PT_TLS: u32 = 7;
+pub const PT_LOOS: u32 = 1610612736;
+pub const PT_HIOS: u32 = 1879048191;
+pub const PT_LOPROC: u32 = 1879048192;
+pub const PT_HIPROC: u32 = 2147483647;
+pub const PT_GNU_EH_FRAME: u32 = 1685382480;
+pub const PT_GNU_STACK: u32 = 1685382481;
+pub const PN_XNUM: u32 = 65535;
+pub const ET_NONE: u32 = 0;
+pub const ET_REL: u32 = 1;
+pub const ET_EXEC: u32 = 2;
+pub const ET_DYN: u32 = 3;
+pub const ET_CORE: u32 = 4;
+pub const ET_LOPROC: u32 = 65280;
+pub const ET_HIPROC: u32 = 65535;
+pub const DT_NULL: u32 = 0;
+pub const DT_NEEDED: u32 = 1;
+pub const DT_PLTRELSZ: u32 = 2;
+pub const DT_PLTGOT: u32 = 3;
+pub const DT_HASH: u32 = 4;
+pub const DT_STRTAB: u32 = 5;
+pub const DT_SYMTAB: u32 = 6;
+pub const DT_RELA: u32 = 7;
+pub const DT_RELASZ: u32 = 8;
+pub const DT_RELAENT: u32 = 9;
+pub const DT_STRSZ: u32 = 10;
+pub const DT_SYMENT: u32 = 11;
+pub const DT_INIT: u32 = 12;
+pub const DT_FINI: u32 = 13;
+pub const DT_SONAME: u32 = 14;
+pub const DT_RPATH: u32 = 15;
+pub const DT_SYMBOLIC: u32 = 16;
+pub const DT_REL: u32 = 17;
+pub const DT_RELSZ: u32 = 18;
+pub const DT_RELENT: u32 = 19;
+pub const DT_PLTREL: u32 = 20;
+pub const DT_DEBUG: u32 = 21;
+pub const DT_TEXTREL: u32 = 22;
+pub const DT_JMPREL: u32 = 23;
+pub const DT_ENCODING: u32 = 32;
+pub const OLD_DT_LOOS: u32 = 1610612736;
+pub const DT_LOOS: u32 = 1610612749;
+pub const DT_HIOS: u32 = 1879044096;
+pub const DT_VALRNGLO: u32 = 1879047424;
+pub const DT_VALRNGHI: u32 = 1879047679;
+pub const DT_ADDRRNGLO: u32 = 1879047680;
+pub const DT_ADDRRNGHI: u32 = 1879047935;
+pub const DT_VERSYM: u32 = 1879048176;
+pub const DT_RELACOUNT: u32 = 1879048185;
+pub const DT_RELCOUNT: u32 = 1879048186;
+pub const DT_FLAGS_1: u32 = 1879048187;
+pub const DT_VERDEF: u32 = 1879048188;
+pub const DT_VERDEFNUM: u32 = 1879048189;
+pub const DT_VERNEED: u32 = 1879048190;
+pub const DT_VERNEEDNUM: u32 = 1879048191;
+pub const OLD_DT_HIOS: u32 = 1879048191;
+pub const DT_LOPROC: u32 = 1879048192;
+pub const DT_HIPROC: u32 = 2147483647;
+pub const STB_LOCAL: u32 = 0;
+pub const STB_GLOBAL: u32 = 1;
+pub const STB_WEAK: u32 = 2;
+pub const STT_NOTYPE: u32 = 0;
+pub const STT_OBJECT: u32 = 1;
+pub const STT_FUNC: u32 = 2;
+pub const STT_SECTION: u32 = 3;
+pub const STT_FILE: u32 = 4;
+pub const STT_COMMON: u32 = 5;
+pub const STT_TLS: u32 = 6;
+pub const EI_NIDENT: u32 = 16;
+pub const PF_R: u32 = 4;
+pub const PF_W: u32 = 2;
+pub const PF_X: u32 = 1;
+pub const SHT_NULL: u32 = 0;
+pub const SHT_PROGBITS: u32 = 1;
+pub const SHT_SYMTAB: u32 = 2;
+pub const SHT_STRTAB: u32 = 3;
+pub const SHT_RELA: u32 = 4;
+pub const SHT_HASH: u32 = 5;
+pub const SHT_DYNAMIC: u32 = 6;
+pub const SHT_NOTE: u32 = 7;
+pub const SHT_NOBITS: u32 = 8;
+pub const SHT_REL: u32 = 9;
+pub const SHT_SHLIB: u32 = 10;
+pub const SHT_DYNSYM: u32 = 11;
+pub const SHT_NUM: u32 = 12;
+pub const SHT_LOPROC: u32 = 1879048192;
+pub const SHT_HIPROC: u32 = 2147483647;
+pub const SHT_LOUSER: u32 = 2147483648;
+pub const SHT_HIUSER: u32 = 4294967295;
+pub const SHF_WRITE: u32 = 1;
+pub const SHF_ALLOC: u32 = 2;
+pub const SHF_EXECINSTR: u32 = 4;
+pub const SHF_RELA_LIVEPATCH: u32 = 1048576;
+pub const SHF_RO_AFTER_INIT: u32 = 2097152;
+pub const SHF_MASKPROC: u32 = 4026531840;
+pub const SHN_UNDEF: u32 = 0;
+pub const SHN_LORESERVE: u32 = 65280;
+pub const SHN_LOPROC: u32 = 65280;
+pub const SHN_HIPROC: u32 = 65311;
+pub const SHN_LIVEPATCH: u32 = 65312;
+pub const SHN_ABS: u32 = 65521;
+pub const SHN_COMMON: u32 = 65522;
+pub const SHN_HIRESERVE: u32 = 65535;
+pub const EI_MAG0: u32 = 0;
+pub const EI_MAG1: u32 = 1;
+pub const EI_MAG2: u32 = 2;
+pub const EI_MAG3: u32 = 3;
+pub const EI_CLASS: u32 = 4;
+pub const EI_DATA: u32 = 5;
+pub const EI_VERSION: u32 = 6;
+pub const EI_OSABI: u32 = 7;
+pub const EI_PAD: u32 = 8;
+pub const ELFMAG0: u32 = 127;
+pub const ELFMAG1: u8 = 69u8;
+pub const ELFMAG2: u8 = 76u8;
+pub const ELFMAG3: u8 = 70u8;
+pub const ELFMAG: &'static [u8; 5usize] = b"\x7FELF\0";
+pub const SELFMAG: u32 = 4;
+pub const ELFCLASSNONE: u32 = 0;
+pub const ELFCLASS32: u32 = 1;
+pub const ELFCLASS64: u32 = 2;
+pub const ELFCLASSNUM: u32 = 3;
+pub const ELFDATANONE: u32 = 0;
+pub const ELFDATA2LSB: u32 = 1;
+pub const ELFDATA2MSB: u32 = 2;
+pub const EV_NONE: u32 = 0;
+pub const EV_CURRENT: u32 = 1;
+pub const EV_NUM: u32 = 2;
+pub const ELFOSABI_NONE: u32 = 0;
+pub const ELFOSABI_LINUX: u32 = 3;
+pub const ELF_OSABI: u32 = 0;
+pub const NT_PRSTATUS: u32 = 1;
+pub const NT_PRFPREG: u32 = 2;
+pub const NT_PRPSINFO: u32 = 3;
+pub const NT_TASKSTRUCT: u32 = 4;
+pub const NT_AUXV: u32 = 6;
+pub const NT_SIGINFO: u32 = 1397311305;
+pub const NT_FILE: u32 = 1179208773;
+pub const NT_PRXFPREG: u32 = 1189489535;
+pub const NT_PPC_VMX: u32 = 256;
+pub const NT_PPC_SPE: u32 = 257;
+pub const NT_PPC_VSX: u32 = 258;
+pub const NT_PPC_TAR: u32 = 259;
+pub const NT_PPC_PPR: u32 = 260;
+pub const NT_PPC_DSCR: u32 = 261;
+pub const NT_PPC_EBB: u32 = 262;
+pub const NT_PPC_PMU: u32 = 263;
+pub const NT_PPC_TM_CGPR: u32 = 264;
+pub const NT_PPC_TM_CFPR: u32 = 265;
+pub const NT_PPC_TM_CVMX: u32 = 266;
+pub const NT_PPC_TM_CVSX: u32 = 267;
+pub const NT_PPC_TM_SPR: u32 = 268;
+pub const NT_PPC_TM_CTAR: u32 = 269;
+pub const NT_PPC_TM_CPPR: u32 = 270;
+pub const NT_PPC_TM_CDSCR: u32 = 271;
+pub const NT_PPC_PKEY: u32 = 272;
+pub const NT_386_TLS: u32 = 512;
+pub const NT_386_IOPERM: u32 = 513;
+pub const NT_X86_XSTATE: u32 = 514;
+pub const NT_S390_HIGH_GPRS: u32 = 768;
+pub const NT_S390_TIMER: u32 = 769;
+pub const NT_S390_TODCMP: u32 = 770;
+pub const NT_S390_TODPREG: u32 = 771;
+pub const NT_S390_CTRS: u32 = 772;
+pub const NT_S390_PREFIX: u32 = 773;
+pub const NT_S390_LAST_BREAK: u32 = 774;
+pub const NT_S390_SYSTEM_CALL: u32 = 775;
+pub const NT_S390_TDB: u32 = 776;
+pub const NT_S390_VXRS_LOW: u32 = 777;
+pub const NT_S390_VXRS_HIGH: u32 = 778;
+pub const NT_S390_GS_CB: u32 = 779;
+pub const NT_S390_GS_BC: u32 = 780;
+pub const NT_S390_RI_CB: u32 = 781;
+pub const NT_ARM_VFP: u32 = 1024;
+pub const NT_ARM_TLS: u32 = 1025;
+pub const NT_ARM_HW_BREAK: u32 = 1026;
+pub const NT_ARM_HW_WATCH: u32 = 1027;
+pub const NT_ARM_SYSTEM_CALL: u32 = 1028;
+pub const NT_ARM_SVE: u32 = 1029;
+pub const NT_ARC_V2: u32 = 1536;
+pub const NT_VMCOREDD: u32 = 1792;
+pub const NT_MIPS_DSP: u32 = 2048;
+pub const NT_MIPS_FP_MODE: u32 = 2049;
 pub type __u16 = ::std::os::raw::c_ushort;
-pub type __s32 = ::std::os::raw::c_int;
 pub type __u32 = ::std::os::raw::c_uint;
-pub type __s64 = ::std::os::raw::c_longlong;
 pub type __u64 = ::std::os::raw::c_ulonglong;
-#[repr(C)]
-#[derive(Debug, Default, Copy)]
-pub struct __kernel_fd_set {
-    pub fds_bits: [::std::os::raw::c_ulong; 16usize],
-}
-#[test]
-fn bindgen_test_layout___kernel_fd_set() {
-    assert_eq!(
-        ::std::mem::size_of::<__kernel_fd_set>(),
-        128usize,
-        concat!("Size of: ", stringify!(__kernel_fd_set))
-    );
-    assert_eq!(
-        ::std::mem::align_of::<__kernel_fd_set>(),
-        8usize,
-        concat!("Alignment of ", stringify!(__kernel_fd_set))
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const __kernel_fd_set)).fds_bits as *const _ as usize },
-        0usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(__kernel_fd_set),
-            "::",
-            stringify!(fds_bits)
-        )
-    );
-}
-impl Clone for __kernel_fd_set {
-    fn clone(&self) -> Self {
-        *self
-    }
-}
-pub type __kernel_sighandler_t =
-    ::std::option::Option<unsafe extern "C" fn(arg1: ::std::os::raw::c_int)>;
-pub type __kernel_key_t = ::std::os::raw::c_int;
-pub type __kernel_mqd_t = ::std::os::raw::c_int;
-pub type __kernel_old_uid_t = ::std::os::raw::c_ushort;
-pub type __kernel_old_gid_t = ::std::os::raw::c_ushort;
-pub type __kernel_old_dev_t = ::std::os::raw::c_ulong;
-pub type __kernel_long_t = ::std::os::raw::c_long;
-pub type __kernel_ulong_t = ::std::os::raw::c_ulong;
-pub type __kernel_ino_t = __kernel_ulong_t;
-pub type __kernel_mode_t = ::std::os::raw::c_uint;
-pub type __kernel_pid_t = ::std::os::raw::c_int;
-pub type __kernel_ipc_pid_t = ::std::os::raw::c_int;
-pub type __kernel_uid_t = ::std::os::raw::c_uint;
-pub type __kernel_gid_t = ::std::os::raw::c_uint;
-pub type __kernel_suseconds_t = __kernel_long_t;
-pub type __kernel_daddr_t = ::std::os::raw::c_int;
-pub type __kernel_uid32_t = ::std::os::raw::c_uint;
-pub type __kernel_gid32_t = ::std::os::raw::c_uint;
-pub type __kernel_size_t = __kernel_ulong_t;
-pub type __kernel_ssize_t = __kernel_long_t;
-pub type __kernel_ptrdiff_t = __kernel_long_t;
-#[repr(C)]
-#[derive(Debug, Default, Copy)]
-pub struct __kernel_fsid_t {
-    pub val: [::std::os::raw::c_int; 2usize],
-}
-#[test]
-fn bindgen_test_layout___kernel_fsid_t() {
-    assert_eq!(
-        ::std::mem::size_of::<__kernel_fsid_t>(),
-        8usize,
-        concat!("Size of: ", stringify!(__kernel_fsid_t))
-    );
-    assert_eq!(
-        ::std::mem::align_of::<__kernel_fsid_t>(),
-        4usize,
-        concat!("Alignment of ", stringify!(__kernel_fsid_t))
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const __kernel_fsid_t)).val as *const _ as usize },
-        0usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(__kernel_fsid_t),
-            "::",
-            stringify!(val)
-        )
-    );
-}
-impl Clone for __kernel_fsid_t {
-    fn clone(&self) -> Self {
-        *self
-    }
-}
-pub type __kernel_off_t = __kernel_long_t;
-pub type __kernel_loff_t = ::std::os::raw::c_longlong;
-pub type __kernel_time_t = __kernel_long_t;
-pub type __kernel_clock_t = __kernel_long_t;
-pub type __kernel_timer_t = ::std::os::raw::c_int;
-pub type __kernel_clockid_t = ::std::os::raw::c_int;
-pub type __kernel_caddr_t = *mut ::std::os::raw::c_char;
-pub type __kernel_uid16_t = ::std::os::raw::c_ushort;
-pub type __kernel_gid16_t = ::std::os::raw::c_ushort;
-pub type __le16 = __u16;
-pub type __be16 = __u16;
-pub type __le32 = __u32;
-pub type __be32 = __u32;
-pub type __le64 = __u64;
-pub type __be64 = __u64;
-pub type __sum16 = __u16;
-pub type __wsum = __u32;
-pub type Elf32_Addr = __u32;
-pub type Elf32_Half = __u16;
-pub type Elf32_Off = __u32;
-pub type Elf32_Sword = __s32;
-pub type Elf32_Word = __u32;
 pub type Elf64_Addr = __u64;
 pub type Elf64_Half = __u16;
-pub type Elf64_SHalf = __s16;
 pub type Elf64_Off = __u64;
-pub type Elf64_Sword = __s32;
 pub type Elf64_Word = __u32;
 pub type Elf64_Xword = __u64;
-pub type Elf64_Sxword = __s64;
-#[repr(C)]
-#[derive(Debug, Default, Copy)]
-pub struct dynamic {
-    pub d_tag: Elf32_Sword,
-    pub d_un: dynamic__bindgen_ty_1,
-}
-#[repr(C)]
-#[derive(Debug, Default, Copy)]
-pub struct dynamic__bindgen_ty_1 {
-    pub d_val: __BindgenUnionField<Elf32_Sword>,
-    pub d_ptr: __BindgenUnionField<Elf32_Addr>,
-    pub bindgen_union_field: u32,
-}
-#[test]
-fn bindgen_test_layout_dynamic__bindgen_ty_1() {
-    assert_eq!(
-        ::std::mem::size_of::<dynamic__bindgen_ty_1>(),
-        4usize,
-        concat!("Size of: ", stringify!(dynamic__bindgen_ty_1))
-    );
-    assert_eq!(
-        ::std::mem::align_of::<dynamic__bindgen_ty_1>(),
-        4usize,
-        concat!("Alignment of ", stringify!(dynamic__bindgen_ty_1))
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const dynamic__bindgen_ty_1)).d_val as *const _ as usize },
-        0usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(dynamic__bindgen_ty_1),
-            "::",
-            stringify!(d_val)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const dynamic__bindgen_ty_1)).d_ptr as *const _ as usize },
-        0usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(dynamic__bindgen_ty_1),
-            "::",
-            stringify!(d_ptr)
-        )
-    );
-}
-impl Clone for dynamic__bindgen_ty_1 {
-    fn clone(&self) -> Self {
-        *self
-    }
-}
-#[test]
-fn bindgen_test_layout_dynamic() {
-    assert_eq!(
-        ::std::mem::size_of::<dynamic>(),
-        8usize,
-        concat!("Size of: ", stringify!(dynamic))
-    );
-    assert_eq!(
-        ::std::mem::align_of::<dynamic>(),
-        4usize,
-        concat!("Alignment of ", stringify!(dynamic))
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const dynamic)).d_tag as *const _ as usize },
-        0usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(dynamic),
-            "::",
-            stringify!(d_tag)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const dynamic)).d_un as *const _ as usize },
-        4usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(dynamic),
-            "::",
-            stringify!(d_un)
-        )
-    );
-}
-impl Clone for dynamic {
-    fn clone(&self) -> Self {
-        *self
-    }
-}
-pub type Elf32_Dyn = dynamic;
-#[repr(C)]
-#[derive(Debug, Default, Copy)]
-pub struct Elf64_Dyn {
-    pub d_tag: Elf64_Sxword,
-    pub d_un: Elf64_Dyn__bindgen_ty_1,
-}
-#[repr(C)]
-#[derive(Debug, Default, Copy)]
-pub struct Elf64_Dyn__bindgen_ty_1 {
-    pub d_val: __BindgenUnionField<Elf64_Xword>,
-    pub d_ptr: __BindgenUnionField<Elf64_Addr>,
-    pub bindgen_union_field: u64,
-}
-#[test]
-fn bindgen_test_layout_Elf64_Dyn__bindgen_ty_1() {
-    assert_eq!(
-        ::std::mem::size_of::<Elf64_Dyn__bindgen_ty_1>(),
-        8usize,
-        concat!("Size of: ", stringify!(Elf64_Dyn__bindgen_ty_1))
-    );
-    assert_eq!(
-        ::std::mem::align_of::<Elf64_Dyn__bindgen_ty_1>(),
-        8usize,
-        concat!("Alignment of ", stringify!(Elf64_Dyn__bindgen_ty_1))
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const Elf64_Dyn__bindgen_ty_1)).d_val as *const _ as usize },
-        0usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(Elf64_Dyn__bindgen_ty_1),
-            "::",
-            stringify!(d_val)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const Elf64_Dyn__bindgen_ty_1)).d_ptr as *const _ as usize },
-        0usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(Elf64_Dyn__bindgen_ty_1),
-            "::",
-            stringify!(d_ptr)
-        )
-    );
-}
-impl Clone for Elf64_Dyn__bindgen_ty_1 {
-    fn clone(&self) -> Self {
-        *self
-    }
-}
-#[test]
-fn bindgen_test_layout_Elf64_Dyn() {
-    assert_eq!(
-        ::std::mem::size_of::<Elf64_Dyn>(),
-        16usize,
-        concat!("Size of: ", stringify!(Elf64_Dyn))
-    );
-    assert_eq!(
-        ::std::mem::align_of::<Elf64_Dyn>(),
-        8usize,
-        concat!("Alignment of ", stringify!(Elf64_Dyn))
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const Elf64_Dyn)).d_tag as *const _ as usize },
-        0usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(Elf64_Dyn),
-            "::",
-            stringify!(d_tag)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const Elf64_Dyn)).d_un as *const _ as usize },
-        8usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(Elf64_Dyn),
-            "::",
-            stringify!(d_un)
-        )
-    );
-}
-impl Clone for Elf64_Dyn {
-    fn clone(&self) -> Self {
-        *self
-    }
-}
-#[repr(C)]
-#[derive(Debug, Default, Copy)]
-pub struct elf32_rel {
-    pub r_offset: Elf32_Addr,
-    pub r_info: Elf32_Word,
-}
-#[test]
-fn bindgen_test_layout_elf32_rel() {
-    assert_eq!(
-        ::std::mem::size_of::<elf32_rel>(),
-        8usize,
-        concat!("Size of: ", stringify!(elf32_rel))
-    );
-    assert_eq!(
-        ::std::mem::align_of::<elf32_rel>(),
-        4usize,
-        concat!("Alignment of ", stringify!(elf32_rel))
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const elf32_rel)).r_offset as *const _ as usize },
-        0usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(elf32_rel),
-            "::",
-            stringify!(r_offset)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const elf32_rel)).r_info as *const _ as usize },
-        4usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(elf32_rel),
-            "::",
-            stringify!(r_info)
-        )
-    );
-}
-impl Clone for elf32_rel {
-    fn clone(&self) -> Self {
-        *self
-    }
-}
-pub type Elf32_Rel = elf32_rel;
-#[repr(C)]
-#[derive(Debug, Default, Copy)]
-pub struct elf64_rel {
-    pub r_offset: Elf64_Addr,
-    pub r_info: Elf64_Xword,
-}
-#[test]
-fn bindgen_test_layout_elf64_rel() {
-    assert_eq!(
-        ::std::mem::size_of::<elf64_rel>(),
-        16usize,
-        concat!("Size of: ", stringify!(elf64_rel))
-    );
-    assert_eq!(
-        ::std::mem::align_of::<elf64_rel>(),
-        8usize,
-        concat!("Alignment of ", stringify!(elf64_rel))
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const elf64_rel)).r_offset as *const _ as usize },
-        0usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(elf64_rel),
-            "::",
-            stringify!(r_offset)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const elf64_rel)).r_info as *const _ as usize },
-        8usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(elf64_rel),
-            "::",
-            stringify!(r_info)
-        )
-    );
-}
-impl Clone for elf64_rel {
-    fn clone(&self) -> Self {
-        *self
-    }
-}
-pub type Elf64_Rel = elf64_rel;
-#[repr(C)]
-#[derive(Debug, Default, Copy)]
-pub struct elf32_rela {
-    pub r_offset: Elf32_Addr,
-    pub r_info: Elf32_Word,
-    pub r_addend: Elf32_Sword,
-}
-#[test]
-fn bindgen_test_layout_elf32_rela() {
-    assert_eq!(
-        ::std::mem::size_of::<elf32_rela>(),
-        12usize,
-        concat!("Size of: ", stringify!(elf32_rela))
-    );
-    assert_eq!(
-        ::std::mem::align_of::<elf32_rela>(),
-        4usize,
-        concat!("Alignment of ", stringify!(elf32_rela))
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const elf32_rela)).r_offset as *const _ as usize },
-        0usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(elf32_rela),
-            "::",
-            stringify!(r_offset)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const elf32_rela)).r_info as *const _ as usize },
-        4usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(elf32_rela),
-            "::",
-            stringify!(r_info)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const elf32_rela)).r_addend as *const _ as usize },
-        8usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(elf32_rela),
-            "::",
-            stringify!(r_addend)
-        )
-    );
-}
-impl Clone for elf32_rela {
-    fn clone(&self) -> Self {
-        *self
-    }
-}
-pub type Elf32_Rela = elf32_rela;
 #[repr(C)]
-#[derive(Debug, Default, Copy)]
-pub struct elf64_rela {
-    pub r_offset: Elf64_Addr,
-    pub r_info: Elf64_Xword,
-    pub r_addend: Elf64_Sxword,
-}
-#[test]
-fn bindgen_test_layout_elf64_rela() {
-    assert_eq!(
-        ::std::mem::size_of::<elf64_rela>(),
-        24usize,
-        concat!("Size of: ", stringify!(elf64_rela))
-    );
-    assert_eq!(
-        ::std::mem::align_of::<elf64_rela>(),
-        8usize,
-        concat!("Alignment of ", stringify!(elf64_rela))
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const elf64_rela)).r_offset as *const _ as usize },
-        0usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(elf64_rela),
-            "::",
-            stringify!(r_offset)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const elf64_rela)).r_info as *const _ as usize },
-        8usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(elf64_rela),
-            "::",
-            stringify!(r_info)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const elf64_rela)).r_addend as *const _ as usize },
-        16usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(elf64_rela),
-            "::",
-            stringify!(r_addend)
-        )
-    );
-}
-impl Clone for elf64_rela {
-    fn clone(&self) -> Self {
-        *self
-    }
-}
-pub type Elf64_Rela = elf64_rela;
-#[repr(C)]
-#[derive(Debug, Default, Copy)]
-pub struct elf32_sym {
-    pub st_name: Elf32_Word,
-    pub st_value: Elf32_Addr,
-    pub st_size: Elf32_Word,
-    pub st_info: ::std::os::raw::c_uchar,
-    pub st_other: ::std::os::raw::c_uchar,
-    pub st_shndx: Elf32_Half,
-}
-#[test]
-fn bindgen_test_layout_elf32_sym() {
-    assert_eq!(
-        ::std::mem::size_of::<elf32_sym>(),
-        16usize,
-        concat!("Size of: ", stringify!(elf32_sym))
-    );
-    assert_eq!(
-        ::std::mem::align_of::<elf32_sym>(),
-        4usize,
-        concat!("Alignment of ", stringify!(elf32_sym))
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const elf32_sym)).st_name as *const _ as usize },
-        0usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(elf32_sym),
-            "::",
-            stringify!(st_name)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const elf32_sym)).st_value as *const _ as usize },
-        4usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(elf32_sym),
-            "::",
-            stringify!(st_value)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const elf32_sym)).st_size as *const _ as usize },
-        8usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(elf32_sym),
-            "::",
-            stringify!(st_size)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const elf32_sym)).st_info as *const _ as usize },
-        12usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(elf32_sym),
-            "::",
-            stringify!(st_info)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const elf32_sym)).st_other as *const _ as usize },
-        13usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(elf32_sym),
-            "::",
-            stringify!(st_other)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const elf32_sym)).st_shndx as *const _ as usize },
-        14usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(elf32_sym),
-            "::",
-            stringify!(st_shndx)
-        )
-    );
-}
-impl Clone for elf32_sym {
-    fn clone(&self) -> Self {
-        *self
-    }
-}
-pub type Elf32_Sym = elf32_sym;
-#[repr(C)]
-#[derive(Debug, Default, Copy)]
-pub struct elf64_sym {
-    pub st_name: Elf64_Word,
-    pub st_info: ::std::os::raw::c_uchar,
-    pub st_other: ::std::os::raw::c_uchar,
-    pub st_shndx: Elf64_Half,
-    pub st_value: Elf64_Addr,
-    pub st_size: Elf64_Xword,
-}
-#[test]
-fn bindgen_test_layout_elf64_sym() {
-    assert_eq!(
-        ::std::mem::size_of::<elf64_sym>(),
-        24usize,
-        concat!("Size of: ", stringify!(elf64_sym))
-    );
-    assert_eq!(
-        ::std::mem::align_of::<elf64_sym>(),
-        8usize,
-        concat!("Alignment of ", stringify!(elf64_sym))
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const elf64_sym)).st_name as *const _ as usize },
-        0usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(elf64_sym),
-            "::",
-            stringify!(st_name)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const elf64_sym)).st_info as *const _ as usize },
-        4usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(elf64_sym),
-            "::",
-            stringify!(st_info)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const elf64_sym)).st_other as *const _ as usize },
-        5usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(elf64_sym),
-            "::",
-            stringify!(st_other)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const elf64_sym)).st_shndx as *const _ as usize },
-        6usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(elf64_sym),
-            "::",
-            stringify!(st_shndx)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const elf64_sym)).st_value as *const _ as usize },
-        8usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(elf64_sym),
-            "::",
-            stringify!(st_value)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const elf64_sym)).st_size as *const _ as usize },
-        16usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(elf64_sym),
-            "::",
-            stringify!(st_size)
-        )
-    );
-}
-impl Clone for elf64_sym {
-    fn clone(&self) -> Self {
-        *self
-    }
-}
-pub type Elf64_Sym = elf64_sym;
-#[repr(C)]
-#[derive(Debug, Default, Copy)]
-pub struct elf32_hdr {
-    pub e_ident: [::std::os::raw::c_uchar; 16usize],
-    pub e_type: Elf32_Half,
-    pub e_machine: Elf32_Half,
-    pub e_version: Elf32_Word,
-    pub e_entry: Elf32_Addr,
-    pub e_phoff: Elf32_Off,
-    pub e_shoff: Elf32_Off,
-    pub e_flags: Elf32_Word,
-    pub e_ehsize: Elf32_Half,
-    pub e_phentsize: Elf32_Half,
-    pub e_phnum: Elf32_Half,
-    pub e_shentsize: Elf32_Half,
-    pub e_shnum: Elf32_Half,
-    pub e_shstrndx: Elf32_Half,
-}
-#[test]
-fn bindgen_test_layout_elf32_hdr() {
-    assert_eq!(
-        ::std::mem::size_of::<elf32_hdr>(),
-        52usize,
-        concat!("Size of: ", stringify!(elf32_hdr))
-    );
-    assert_eq!(
-        ::std::mem::align_of::<elf32_hdr>(),
-        4usize,
-        concat!("Alignment of ", stringify!(elf32_hdr))
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const elf32_hdr)).e_ident as *const _ as usize },
-        0usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(elf32_hdr),
-            "::",
-            stringify!(e_ident)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const elf32_hdr)).e_type as *const _ as usize },
-        16usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(elf32_hdr),
-            "::",
-            stringify!(e_type)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const elf32_hdr)).e_machine as *const _ as usize },
-        18usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(elf32_hdr),
-            "::",
-            stringify!(e_machine)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const elf32_hdr)).e_version as *const _ as usize },
-        20usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(elf32_hdr),
-            "::",
-            stringify!(e_version)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const elf32_hdr)).e_entry as *const _ as usize },
-        24usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(elf32_hdr),
-            "::",
-            stringify!(e_entry)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const elf32_hdr)).e_phoff as *const _ as usize },
-        28usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(elf32_hdr),
-            "::",
-            stringify!(e_phoff)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const elf32_hdr)).e_shoff as *const _ as usize },
-        32usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(elf32_hdr),
-            "::",
-            stringify!(e_shoff)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const elf32_hdr)).e_flags as *const _ as usize },
-        36usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(elf32_hdr),
-            "::",
-            stringify!(e_flags)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const elf32_hdr)).e_ehsize as *const _ as usize },
-        40usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(elf32_hdr),
-            "::",
-            stringify!(e_ehsize)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const elf32_hdr)).e_phentsize as *const _ as usize },
-        42usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(elf32_hdr),
-            "::",
-            stringify!(e_phentsize)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const elf32_hdr)).e_phnum as *const _ as usize },
-        44usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(elf32_hdr),
-            "::",
-            stringify!(e_phnum)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const elf32_hdr)).e_shentsize as *const _ as usize },
-        46usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(elf32_hdr),
-            "::",
-            stringify!(e_shentsize)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const elf32_hdr)).e_shnum as *const _ as usize },
-        48usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(elf32_hdr),
-            "::",
-            stringify!(e_shnum)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const elf32_hdr)).e_shstrndx as *const _ as usize },
-        50usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(elf32_hdr),
-            "::",
-            stringify!(e_shstrndx)
-        )
-    );
-}
-impl Clone for elf32_hdr {
-    fn clone(&self) -> Self {
-        *self
-    }
-}
-pub type Elf32_Ehdr = elf32_hdr;
-#[repr(C)]
-#[derive(Debug, Default, Copy)]
+#[derive(Debug, Default, Copy, Clone)]
 pub struct elf64_hdr {
     pub e_ident: [::std::os::raw::c_uchar; 16usize],
     pub e_type: Elf64_Half,
@@ -1134,278 +269,9 @@ pub struct elf64_hdr {
     pub e_shnum: Elf64_Half,
     pub e_shstrndx: Elf64_Half,
 }
-#[test]
-fn bindgen_test_layout_elf64_hdr() {
-    assert_eq!(
-        ::std::mem::size_of::<elf64_hdr>(),
-        64usize,
-        concat!("Size of: ", stringify!(elf64_hdr))
-    );
-    assert_eq!(
-        ::std::mem::align_of::<elf64_hdr>(),
-        8usize,
-        concat!("Alignment of ", stringify!(elf64_hdr))
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const elf64_hdr)).e_ident as *const _ as usize },
-        0usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(elf64_hdr),
-            "::",
-            stringify!(e_ident)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const elf64_hdr)).e_type as *const _ as usize },
-        16usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(elf64_hdr),
-            "::",
-            stringify!(e_type)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const elf64_hdr)).e_machine as *const _ as usize },
-        18usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(elf64_hdr),
-            "::",
-            stringify!(e_machine)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const elf64_hdr)).e_version as *const _ as usize },
-        20usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(elf64_hdr),
-            "::",
-            stringify!(e_version)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const elf64_hdr)).e_entry as *const _ as usize },
-        24usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(elf64_hdr),
-            "::",
-            stringify!(e_entry)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const elf64_hdr)).e_phoff as *const _ as usize },
-        32usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(elf64_hdr),
-            "::",
-            stringify!(e_phoff)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const elf64_hdr)).e_shoff as *const _ as usize },
-        40usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(elf64_hdr),
-            "::",
-            stringify!(e_shoff)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const elf64_hdr)).e_flags as *const _ as usize },
-        48usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(elf64_hdr),
-            "::",
-            stringify!(e_flags)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const elf64_hdr)).e_ehsize as *const _ as usize },
-        52usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(elf64_hdr),
-            "::",
-            stringify!(e_ehsize)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const elf64_hdr)).e_phentsize as *const _ as usize },
-        54usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(elf64_hdr),
-            "::",
-            stringify!(e_phentsize)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const elf64_hdr)).e_phnum as *const _ as usize },
-        56usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(elf64_hdr),
-            "::",
-            stringify!(e_phnum)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const elf64_hdr)).e_shentsize as *const _ as usize },
-        58usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(elf64_hdr),
-            "::",
-            stringify!(e_shentsize)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const elf64_hdr)).e_shnum as *const _ as usize },
-        60usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(elf64_hdr),
-            "::",
-            stringify!(e_shnum)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const elf64_hdr)).e_shstrndx as *const _ as usize },
-        62usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(elf64_hdr),
-            "::",
-            stringify!(e_shstrndx)
-        )
-    );
-}
-impl Clone for elf64_hdr {
-    fn clone(&self) -> Self {
-        *self
-    }
-}
 pub type Elf64_Ehdr = elf64_hdr;
 #[repr(C)]
-#[derive(Debug, Default, Copy)]
-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,
-}
-#[test]
-fn bindgen_test_layout_elf32_phdr() {
-    assert_eq!(
-        ::std::mem::size_of::<elf32_phdr>(),
-        32usize,
-        concat!("Size of: ", stringify!(elf32_phdr))
-    );
-    assert_eq!(
-        ::std::mem::align_of::<elf32_phdr>(),
-        4usize,
-        concat!("Alignment of ", stringify!(elf32_phdr))
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const elf32_phdr)).p_type as *const _ as usize },
-        0usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(elf32_phdr),
-            "::",
-            stringify!(p_type)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const elf32_phdr)).p_offset as *const _ as usize },
-        4usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(elf32_phdr),
-            "::",
-            stringify!(p_offset)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const elf32_phdr)).p_vaddr as *const _ as usize },
-        8usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(elf32_phdr),
-            "::",
-            stringify!(p_vaddr)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const elf32_phdr)).p_paddr as *const _ as usize },
-        12usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(elf32_phdr),
-            "::",
-            stringify!(p_paddr)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const elf32_phdr)).p_filesz as *const _ as usize },
-        16usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(elf32_phdr),
-            "::",
-            stringify!(p_filesz)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const elf32_phdr)).p_memsz as *const _ as usize },
-        20usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(elf32_phdr),
-            "::",
-            stringify!(p_memsz)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const elf32_phdr)).p_flags as *const _ as usize },
-        24usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(elf32_phdr),
-            "::",
-            stringify!(p_flags)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const elf32_phdr)).p_align as *const _ as usize },
-        28usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(elf32_phdr),
-            "::",
-            stringify!(p_align)
-        )
-    );
-}
-impl Clone for elf32_phdr {
-    fn clone(&self) -> Self {
-        *self
-    }
-}
-pub type Elf32_Phdr = elf32_phdr;
-#[repr(C)]
-#[derive(Debug, Default, Copy)]
+#[derive(Debug, Default, Copy, Clone)]
 pub struct elf64_phdr {
     pub p_type: Elf64_Word,
     pub p_flags: Elf64_Word,
@@ -1416,480 +282,4 @@ pub struct elf64_phdr {
     pub p_memsz: Elf64_Xword,
     pub p_align: Elf64_Xword,
 }
-#[test]
-fn bindgen_test_layout_elf64_phdr() {
-    assert_eq!(
-        ::std::mem::size_of::<elf64_phdr>(),
-        56usize,
-        concat!("Size of: ", stringify!(elf64_phdr))
-    );
-    assert_eq!(
-        ::std::mem::align_of::<elf64_phdr>(),
-        8usize,
-        concat!("Alignment of ", stringify!(elf64_phdr))
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const elf64_phdr)).p_type as *const _ as usize },
-        0usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(elf64_phdr),
-            "::",
-            stringify!(p_type)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const elf64_phdr)).p_flags as *const _ as usize },
-        4usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(elf64_phdr),
-            "::",
-            stringify!(p_flags)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const elf64_phdr)).p_offset as *const _ as usize },
-        8usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(elf64_phdr),
-            "::",
-            stringify!(p_offset)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const elf64_phdr)).p_vaddr as *const _ as usize },
-        16usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(elf64_phdr),
-            "::",
-            stringify!(p_vaddr)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const elf64_phdr)).p_paddr as *const _ as usize },
-        24usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(elf64_phdr),
-            "::",
-            stringify!(p_paddr)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const elf64_phdr)).p_filesz as *const _ as usize },
-        32usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(elf64_phdr),
-            "::",
-            stringify!(p_filesz)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const elf64_phdr)).p_memsz as *const _ as usize },
-        40usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(elf64_phdr),
-            "::",
-            stringify!(p_memsz)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const elf64_phdr)).p_align as *const _ as usize },
-        48usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(elf64_phdr),
-            "::",
-            stringify!(p_align)
-        )
-    );
-}
-impl Clone for elf64_phdr {
-    fn clone(&self) -> Self {
-        *self
-    }
-}
 pub type Elf64_Phdr = elf64_phdr;
-#[repr(C)]
-#[derive(Debug, Default, Copy)]
-pub struct elf32_shdr {
-    pub sh_name: Elf32_Word,
-    pub sh_type: Elf32_Word,
-    pub sh_flags: Elf32_Word,
-    pub sh_addr: Elf32_Addr,
-    pub sh_offset: Elf32_Off,
-    pub sh_size: Elf32_Word,
-    pub sh_link: Elf32_Word,
-    pub sh_info: Elf32_Word,
-    pub sh_addralign: Elf32_Word,
-    pub sh_entsize: Elf32_Word,
-}
-#[test]
-fn bindgen_test_layout_elf32_shdr() {
-    assert_eq!(
-        ::std::mem::size_of::<elf32_shdr>(),
-        40usize,
-        concat!("Size of: ", stringify!(elf32_shdr))
-    );
-    assert_eq!(
-        ::std::mem::align_of::<elf32_shdr>(),
-        4usize,
-        concat!("Alignment of ", stringify!(elf32_shdr))
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const elf32_shdr)).sh_name as *const _ as usize },
-        0usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(elf32_shdr),
-            "::",
-            stringify!(sh_name)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const elf32_shdr)).sh_type as *const _ as usize },
-        4usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(elf32_shdr),
-            "::",
-            stringify!(sh_type)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const elf32_shdr)).sh_flags as *const _ as usize },
-        8usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(elf32_shdr),
-            "::",
-            stringify!(sh_flags)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const elf32_shdr)).sh_addr as *const _ as usize },
-        12usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(elf32_shdr),
-            "::",
-            stringify!(sh_addr)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const elf32_shdr)).sh_offset as *const _ as usize },
-        16usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(elf32_shdr),
-            "::",
-            stringify!(sh_offset)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const elf32_shdr)).sh_size as *const _ as usize },
-        20usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(elf32_shdr),
-            "::",
-            stringify!(sh_size)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const elf32_shdr)).sh_link as *const _ as usize },
-        24usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(elf32_shdr),
-            "::",
-            stringify!(sh_link)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const elf32_shdr)).sh_info as *const _ as usize },
-        28usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(elf32_shdr),
-            "::",
-            stringify!(sh_info)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const elf32_shdr)).sh_addralign as *const _ as usize },
-        32usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(elf32_shdr),
-            "::",
-            stringify!(sh_addralign)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const elf32_shdr)).sh_entsize as *const _ as usize },
-        36usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(elf32_shdr),
-            "::",
-            stringify!(sh_entsize)
-        )
-    );
-}
-impl Clone for elf32_shdr {
-    fn clone(&self) -> Self {
-        *self
-    }
-}
-pub type Elf32_Shdr = elf32_shdr;
-#[repr(C)]
-#[derive(Debug, Default, Copy)]
-pub struct elf64_shdr {
-    pub sh_name: Elf64_Word,
-    pub sh_type: Elf64_Word,
-    pub sh_flags: Elf64_Xword,
-    pub sh_addr: Elf64_Addr,
-    pub sh_offset: Elf64_Off,
-    pub sh_size: Elf64_Xword,
-    pub sh_link: Elf64_Word,
-    pub sh_info: Elf64_Word,
-    pub sh_addralign: Elf64_Xword,
-    pub sh_entsize: Elf64_Xword,
-}
-#[test]
-fn bindgen_test_layout_elf64_shdr() {
-    assert_eq!(
-        ::std::mem::size_of::<elf64_shdr>(),
-        64usize,
-        concat!("Size of: ", stringify!(elf64_shdr))
-    );
-    assert_eq!(
-        ::std::mem::align_of::<elf64_shdr>(),
-        8usize,
-        concat!("Alignment of ", stringify!(elf64_shdr))
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const elf64_shdr)).sh_name as *const _ as usize },
-        0usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(elf64_shdr),
-            "::",
-            stringify!(sh_name)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const elf64_shdr)).sh_type as *const _ as usize },
-        4usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(elf64_shdr),
-            "::",
-            stringify!(sh_type)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const elf64_shdr)).sh_flags as *const _ as usize },
-        8usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(elf64_shdr),
-            "::",
-            stringify!(sh_flags)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const elf64_shdr)).sh_addr as *const _ as usize },
-        16usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(elf64_shdr),
-            "::",
-            stringify!(sh_addr)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const elf64_shdr)).sh_offset as *const _ as usize },
-        24usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(elf64_shdr),
-            "::",
-            stringify!(sh_offset)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const elf64_shdr)).sh_size as *const _ as usize },
-        32usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(elf64_shdr),
-            "::",
-            stringify!(sh_size)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const elf64_shdr)).sh_link as *const _ as usize },
-        40usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(elf64_shdr),
-            "::",
-            stringify!(sh_link)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const elf64_shdr)).sh_info as *const _ as usize },
-        44usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(elf64_shdr),
-            "::",
-            stringify!(sh_info)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const elf64_shdr)).sh_addralign as *const _ as usize },
-        48usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(elf64_shdr),
-            "::",
-            stringify!(sh_addralign)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const elf64_shdr)).sh_entsize as *const _ as usize },
-        56usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(elf64_shdr),
-            "::",
-            stringify!(sh_entsize)
-        )
-    );
-}
-impl Clone for elf64_shdr {
-    fn clone(&self) -> Self {
-        *self
-    }
-}
-pub type Elf64_Shdr = elf64_shdr;
-#[repr(C)]
-#[derive(Debug, Default, Copy)]
-pub struct elf32_note {
-    pub n_namesz: Elf32_Word,
-    pub n_descsz: Elf32_Word,
-    pub n_type: Elf32_Word,
-}
-#[test]
-fn bindgen_test_layout_elf32_note() {
-    assert_eq!(
-        ::std::mem::size_of::<elf32_note>(),
-        12usize,
-        concat!("Size of: ", stringify!(elf32_note))
-    );
-    assert_eq!(
-        ::std::mem::align_of::<elf32_note>(),
-        4usize,
-        concat!("Alignment of ", stringify!(elf32_note))
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const elf32_note)).n_namesz as *const _ as usize },
-        0usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(elf32_note),
-            "::",
-            stringify!(n_namesz)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const elf32_note)).n_descsz as *const _ as usize },
-        4usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(elf32_note),
-            "::",
-            stringify!(n_descsz)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const elf32_note)).n_type as *const _ as usize },
-        8usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(elf32_note),
-            "::",
-            stringify!(n_type)
-        )
-    );
-}
-impl Clone for elf32_note {
-    fn clone(&self) -> Self {
-        *self
-    }
-}
-pub type Elf32_Nhdr = elf32_note;
-#[repr(C)]
-#[derive(Debug, Default, Copy)]
-pub struct elf64_note {
-    pub n_namesz: Elf64_Word,
-    pub n_descsz: Elf64_Word,
-    pub n_type: Elf64_Word,
-}
-#[test]
-fn bindgen_test_layout_elf64_note() {
-    assert_eq!(
-        ::std::mem::size_of::<elf64_note>(),
-        12usize,
-        concat!("Size of: ", stringify!(elf64_note))
-    );
-    assert_eq!(
-        ::std::mem::align_of::<elf64_note>(),
-        4usize,
-        concat!("Alignment of ", stringify!(elf64_note))
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const elf64_note)).n_namesz as *const _ as usize },
-        0usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(elf64_note),
-            "::",
-            stringify!(n_namesz)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const elf64_note)).n_descsz as *const _ as usize },
-        4usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(elf64_note),
-            "::",
-            stringify!(n_descsz)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const elf64_note)).n_type as *const _ as usize },
-        8usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(elf64_note),
-            "::",
-            stringify!(n_type)
-        )
-    );
-}
-impl Clone for elf64_note {
-    fn clone(&self) -> Self {
-        *self
-    }
-}
-pub type Elf64_Nhdr = elf64_note;