require '_h2ph_pre.ph';

no warnings 'redefine';

unless(defined(&_SYS_EXEC_ELF_H_)) {
    eval 'sub _SYS_EXEC_ELF_H_ () {1;}' unless defined(&_SYS_EXEC_ELF_H_);
    require 'machine/_types.ph';
    require 'machine/exec.ph';
    if(defined(&__alpha__)) {
    } else {
    }
    eval 'sub EI_MAG0 () {0;}' unless defined(&EI_MAG0);
    eval 'sub EI_MAG1 () {1;}' unless defined(&EI_MAG1);
    eval 'sub EI_MAG2 () {2;}' unless defined(&EI_MAG2);
    eval 'sub EI_MAG3 () {3;}' unless defined(&EI_MAG3);
    eval 'sub EI_CLASS () {4;}' unless defined(&EI_CLASS);
    eval 'sub EI_DATA () {5;}' unless defined(&EI_DATA);
    eval 'sub EI_VERSION () {6;}' unless defined(&EI_VERSION);
    eval 'sub EI_OSABI () {7;}' unless defined(&EI_OSABI);
    eval 'sub EI_ABIVERSION () {8;}' unless defined(&EI_ABIVERSION);
    eval 'sub EI_PAD () {9;}' unless defined(&EI_PAD);
    eval 'sub EI_NIDENT () {16;}' unless defined(&EI_NIDENT);
    eval 'sub ELFMAG0 () {0x7f;}' unless defined(&ELFMAG0);
    eval 'sub ELFMAG1 () {ord(\'E\');}' unless defined(&ELFMAG1);
    eval 'sub ELFMAG2 () {ord(\'L\');}' unless defined(&ELFMAG2);
    eval 'sub ELFMAG3 () {ord(\'F\');}' unless defined(&ELFMAG3);
    eval 'sub ELFMAG () {"\\177ELF";}' unless defined(&ELFMAG);
    eval 'sub SELFMAG () {4;}' unless defined(&SELFMAG);
    eval 'sub ELFCLASSNONE () {0;}' unless defined(&ELFCLASSNONE);
    eval 'sub ELFCLASS32 () {1;}' unless defined(&ELFCLASS32);
    eval 'sub ELFCLASS64 () {2;}' unless defined(&ELFCLASS64);
    eval 'sub ELFCLASSNUM () {3;}' unless defined(&ELFCLASSNUM);
    eval 'sub ELFDATANONE () {0;}' unless defined(&ELFDATANONE);
    eval 'sub ELFDATA2LSB () {1;}' unless defined(&ELFDATA2LSB);
    eval 'sub ELFDATA2MSB () {2;}' unless defined(&ELFDATA2MSB);
    eval 'sub ELFDATANUM () {3;}' unless defined(&ELFDATANUM);
    eval 'sub ELFOSABI_SYSV () {0;}' unless defined(&ELFOSABI_SYSV);
    eval 'sub ELFOSABI_HPUX () {1;}' unless defined(&ELFOSABI_HPUX);
    eval 'sub ELFOSABI_NETBSD () {2;}' unless defined(&ELFOSABI_NETBSD);
    eval 'sub ELFOSABI_LINUX () {3;}' unless defined(&ELFOSABI_LINUX);
    eval 'sub ELFOSABI_HURD () {4;}' unless defined(&ELFOSABI_HURD);
    eval 'sub ELFOSABI_86OPEN () {5;}' unless defined(&ELFOSABI_86OPEN);
    eval 'sub ELFOSABI_SOLARIS () {6;}' unless defined(&ELFOSABI_SOLARIS);
    eval 'sub ELFOSABI_MONTEREY () {7;}' unless defined(&ELFOSABI_MONTEREY);
    eval 'sub ELFOSABI_IRIX () {8;}' unless defined(&ELFOSABI_IRIX);
    eval 'sub ELFOSABI_FREEBSD () {9;}' unless defined(&ELFOSABI_FREEBSD);
    eval 'sub ELFOSABI_TRU64 () {10;}' unless defined(&ELFOSABI_TRU64);
    eval 'sub ELFOSABI_MODESTO () {11;}' unless defined(&ELFOSABI_MODESTO);
    eval 'sub ELFOSABI_OPENBSD () {12;}' unless defined(&ELFOSABI_OPENBSD);
    eval 'sub ELFOSABI_ARM () {97;}' unless defined(&ELFOSABI_ARM);
    eval 'sub ELFOSABI_STANDALONE () {255;}' unless defined(&ELFOSABI_STANDALONE);
    eval 'sub IS_ELF {
        my($ehdr) = @_;
	    eval q((($ehdr). $e_ident[ &EI_MAG0] ==  &ELFMAG0  && ($ehdr). $e_ident[ &EI_MAG1] ==  &ELFMAG1  && ($ehdr). $e_ident[ &EI_MAG2] ==  &ELFMAG2  && ($ehdr). $e_ident[ &EI_MAG3] ==  &ELFMAG3));
    }' unless defined(&IS_ELF);
    eval 'sub ET_NONE () {0;}' unless defined(&ET_NONE);
    eval 'sub ET_REL () {1;}' unless defined(&ET_REL);
    eval 'sub ET_EXEC () {2;}' unless defined(&ET_EXEC);
    eval 'sub ET_DYN () {3;}' unless defined(&ET_DYN);
    eval 'sub ET_CORE () {4;}' unless defined(&ET_CORE);
    eval 'sub ET_NUM () {5;}' unless defined(&ET_NUM);
    eval 'sub ET_LOPROC () {0xff00;}' unless defined(&ET_LOPROC);
    eval 'sub ET_HIPROC () {0xffff;}' unless defined(&ET_HIPROC);
    eval 'sub EM_NONE () {0;}' unless defined(&EM_NONE);
    eval 'sub EM_M32 () {1;}' unless defined(&EM_M32);
    eval 'sub EM_SPARC () {2;}' unless defined(&EM_SPARC);
    eval 'sub EM_386 () {3;}' unless defined(&EM_386);
    eval 'sub EM_68K () {4;}' unless defined(&EM_68K);
    eval 'sub EM_88K () {5;}' unless defined(&EM_88K);
    eval 'sub EM_486 () {6;}' unless defined(&EM_486);
    eval 'sub EM_860 () {7;}' unless defined(&EM_860);
    eval 'sub EM_MIPS () {8;}' unless defined(&EM_MIPS);
    eval 'sub EM_MIPS_RS4_BE () {10;}' unless defined(&EM_MIPS_RS4_BE);
    eval 'sub EM_SPARC64 () {11;}' unless defined(&EM_SPARC64);
    eval 'sub EM_PARISC () {15;}' unless defined(&EM_PARISC);
    eval 'sub EM_SPARC32PLUS () {18;}' unless defined(&EM_SPARC32PLUS);
    eval 'sub EM_PPC () {20;}' unless defined(&EM_PPC);
    eval 'sub EM_ARM () {40;}' unless defined(&EM_ARM);
    eval 'sub EM_ALPHA () {41;}' unless defined(&EM_ALPHA);
    eval 'sub EM_SH () {42;}' unless defined(&EM_SH);
    eval 'sub EM_SPARCV9 () {43;}' unless defined(&EM_SPARCV9);
    eval 'sub EM_ALPHA_EXP () {0x9026;}' unless defined(&EM_ALPHA_EXP);
    eval 'sub EM_AMD64 () {62;}' unless defined(&EM_AMD64);
    eval 'sub EM_VAX () {75;}' unless defined(&EM_VAX);
    eval 'sub EM_NUM () {15;}' unless defined(&EM_NUM);
    eval 'sub EV_NONE () {0;}' unless defined(&EV_NONE);
    eval 'sub EV_CURRENT () {1;}' unless defined(&EV_CURRENT);
    eval 'sub EV_NUM () {2;}' unless defined(&EV_NUM);
    eval 'sub SHN_UNDEF () {0;}' unless defined(&SHN_UNDEF);
    eval 'sub SHN_LORESERVE () {0xff00;}' unless defined(&SHN_LORESERVE);
    eval 'sub SHN_LOPROC () {0xff00;}' unless defined(&SHN_LOPROC);
    eval 'sub SHN_HIPROC () {0xff1f;}' unless defined(&SHN_HIPROC);
    eval 'sub SHN_ABS () {0xfff1;}' unless defined(&SHN_ABS);
    eval 'sub SHN_COMMON () {0xfff2;}' unless defined(&SHN_COMMON);
    eval 'sub SHN_HIRESERVE () {0xffff;}' unless defined(&SHN_HIRESERVE);
    eval 'sub SHT_NULL () {0;}' unless defined(&SHT_NULL);
    eval 'sub SHT_PROGBITS () {1;}' unless defined(&SHT_PROGBITS);
    eval 'sub SHT_SYMTAB () {2;}' unless defined(&SHT_SYMTAB);
    eval 'sub SHT_STRTAB () {3;}' unless defined(&SHT_STRTAB);
    eval 'sub SHT_RELA () {4;}' unless defined(&SHT_RELA);
    eval 'sub SHT_HASH () {5;}' unless defined(&SHT_HASH);
    eval 'sub SHT_DYNAMIC () {6;}' unless defined(&SHT_DYNAMIC);
    eval 'sub SHT_NOTE () {7;}' unless defined(&SHT_NOTE);
    eval 'sub SHT_NOBITS () {8;}' unless defined(&SHT_NOBITS);
    eval 'sub SHT_REL () {9;}' unless defined(&SHT_REL);
    eval 'sub SHT_SHLIB () {10;}' unless defined(&SHT_SHLIB);
    eval 'sub SHT_DYNSYM () {11;}' unless defined(&SHT_DYNSYM);
    eval 'sub SHT_NUM () {12;}' unless defined(&SHT_NUM);
    eval 'sub SHT_LOPROC () {0x70000000;}' unless defined(&SHT_LOPROC);
    eval 'sub SHT_HIPROC () {0x7fffffff;}' unless defined(&SHT_HIPROC);
    eval 'sub SHT_LOUSER () {0x80000000;}' unless defined(&SHT_LOUSER);
    eval 'sub SHT_HIUSER () {0xffffffff;}' unless defined(&SHT_HIUSER);
    eval 'sub ELF_BSS () {".bss";}' unless defined(&ELF_BSS);
    eval 'sub ELF_DATA () {".data";}' unless defined(&ELF_DATA);
    eval 'sub ELF_DEBUG () {".debug";}' unless defined(&ELF_DEBUG);
    eval 'sub ELF_DYNAMIC () {".dynamic";}' unless defined(&ELF_DYNAMIC);
    eval 'sub ELF_DYNSTR () {".dynstr";}' unless defined(&ELF_DYNSTR);
    eval 'sub ELF_DYNSYM () {".dynsym";}' unless defined(&ELF_DYNSYM);
    eval 'sub ELF_FINI () {".fini";}' unless defined(&ELF_FINI);
    eval 'sub ELF_GOT () {".got";}' unless defined(&ELF_GOT);
    eval 'sub ELF_HASH () {".hash";}' unless defined(&ELF_HASH);
    eval 'sub ELF_INIT () {".init";}' unless defined(&ELF_INIT);
    eval 'sub ELF_REL_DATA () {".rel.data";}' unless defined(&ELF_REL_DATA);
    eval 'sub ELF_REL_FINI () {".rel.fini";}' unless defined(&ELF_REL_FINI);
    eval 'sub ELF_REL_INIT () {".rel.init";}' unless defined(&ELF_REL_INIT);
    eval 'sub ELF_REL_DYN () {".rel.dyn";}' unless defined(&ELF_REL_DYN);
    eval 'sub ELF_REL_RODATA () {".rel.rodata";}' unless defined(&ELF_REL_RODATA);
    eval 'sub ELF_REL_TEXT () {".rel.text";}' unless defined(&ELF_REL_TEXT);
    eval 'sub ELF_RODATA () {".rodata";}' unless defined(&ELF_RODATA);
    eval 'sub ELF_SHSTRTAB () {".shstrtab";}' unless defined(&ELF_SHSTRTAB);
    eval 'sub ELF_STRTAB () {".strtab";}' unless defined(&ELF_STRTAB);
    eval 'sub ELF_SYMTAB () {".symtab";}' unless defined(&ELF_SYMTAB);
    eval 'sub ELF_TEXT () {".text";}' unless defined(&ELF_TEXT);
    eval 'sub SHF_WRITE () {0x1;}' unless defined(&SHF_WRITE);
    eval 'sub SHF_ALLOC () {0x2;}' unless defined(&SHF_ALLOC);
    eval 'sub SHF_EXECINSTR () {0x4;}' unless defined(&SHF_EXECINSTR);
    eval 'sub SHF_MASKPROC () {0xf0000000;}' unless defined(&SHF_MASKPROC);
    eval 'sub STN_UNDEF () {0;}' unless defined(&STN_UNDEF);
    eval 'sub ELF32_ST_BIND {
        my($x) = @_;
	    eval q((($x) >> 4));
    }' unless defined(&ELF32_ST_BIND);
    eval 'sub ELF32_ST_TYPE {
        my($x) = @_;
	    eval q((( $x) & 0xf));
    }' unless defined(&ELF32_ST_TYPE);
    eval 'sub ELF32_ST_INFO {
        my($b,$t) = @_;
	    eval q(((($b) << 4) + (($t) & 0xf)));
    }' unless defined(&ELF32_ST_INFO);
    eval 'sub ELF64_ST_BIND {
        my($x) = @_;
	    eval q((($x) >> 4));
    }' unless defined(&ELF64_ST_BIND);
    eval 'sub ELF64_ST_TYPE {
        my($x) = @_;
	    eval q((( $x) & 0xf));
    }' unless defined(&ELF64_ST_TYPE);
    eval 'sub ELF64_ST_INFO {
        my($b,$t) = @_;
	    eval q(((($b) << 4) + (($t) & 0xf)));
    }' unless defined(&ELF64_ST_INFO);
    eval 'sub STB_LOCAL () {0;}' unless defined(&STB_LOCAL);
    eval 'sub STB_GLOBAL () {1;}' unless defined(&STB_GLOBAL);
    eval 'sub STB_WEAK () {2;}' unless defined(&STB_WEAK);
    eval 'sub STB_NUM () {3;}' unless defined(&STB_NUM);
    eval 'sub STB_LOPROC () {13;}' unless defined(&STB_LOPROC);
    eval 'sub STB_HIPROC () {15;}' unless defined(&STB_HIPROC);
    eval 'sub STT_NOTYPE () {0;}' unless defined(&STT_NOTYPE);
    eval 'sub STT_OBJECT () {1;}' unless defined(&STT_OBJECT);
    eval 'sub STT_FUNC () {2;}' unless defined(&STT_FUNC);
    eval 'sub STT_SECTION () {3;}' unless defined(&STT_SECTION);
    eval 'sub STT_FILE () {4;}' unless defined(&STT_FILE);
    eval 'sub STT_NUM () {5;}' unless defined(&STT_NUM);
    eval 'sub STT_LOPROC () {13;}' unless defined(&STT_LOPROC);
    eval 'sub STT_HIPROC () {15;}' unless defined(&STT_HIPROC);
    eval 'sub ELF32_R_SYM {
        my($i) = @_;
	    eval q((($i) >> 8));
    }' unless defined(&ELF32_R_SYM);
    eval 'sub ELF32_R_TYPE {
        my($i) = @_;
	    eval q(( ($i)));
    }' unless defined(&ELF32_R_TYPE);
    eval 'sub ELF32_R_INFO {
        my($s,$t) = @_;
	    eval q((( << 8) + ($t)));
    }' unless defined(&ELF32_R_INFO);
    eval 'sub ELF64_R_SYM {
        my($info) = @_;
	    eval q((($info) >> 32));
    }' unless defined(&ELF64_R_SYM);
    eval 'sub ELF64_R_TYPE {
        my($info) = @_;
	    eval q((($info) & 0xffffffff));
    }' unless defined(&ELF64_R_TYPE);
    eval 'sub ELF64_R_INFO {
        my($s,$t) = @_;
	    eval q(((($s) << 32) + ( &__uint32_t)($t)));
    }' unless defined(&ELF64_R_INFO);
    eval 'sub PT_NULL () {0;}' unless defined(&PT_NULL);
    eval 'sub PT_LOAD () {1;}' unless defined(&PT_LOAD);
    eval 'sub PT_DYNAMIC () {2;}' unless defined(&PT_DYNAMIC);
    eval 'sub PT_INTERP () {3;}' unless defined(&PT_INTERP);
    eval 'sub PT_NOTE () {4;}' unless defined(&PT_NOTE);
    eval 'sub PT_SHLIB () {5;}' unless defined(&PT_SHLIB);
    eval 'sub PT_PHDR () {6;}' unless defined(&PT_PHDR);
    eval 'sub PT_NUM () {7;}' unless defined(&PT_NUM);
    eval 'sub PT_LOOS () {0x60000000;}' unless defined(&PT_LOOS);
    eval 'sub PT_HIOS () {0x6fffffff;}' unless defined(&PT_HIOS);
    eval 'sub PT_LOPROC () {0x70000000;}' unless defined(&PT_LOPROC);
    eval 'sub PT_HIPROC () {0x7fffffff;}' unless defined(&PT_HIPROC);
    eval 'sub PF_X () {0x1;}' unless defined(&PF_X);
    eval 'sub PF_W () {0x2;}' unless defined(&PF_W);
    eval 'sub PF_R () {0x4;}' unless defined(&PF_R);
    eval 'sub PF_MASKPROC () {0xf0000000;}' unless defined(&PF_MASKPROC);
    eval 'sub DT_NULL () {0;}' unless defined(&DT_NULL);
    eval 'sub DT_NEEDED () {1;}' unless defined(&DT_NEEDED);
    eval 'sub DT_PLTRELSZ () {2;}' unless defined(&DT_PLTRELSZ);
    eval 'sub DT_PLTGOT () {3;}' unless defined(&DT_PLTGOT);
    eval 'sub DT_HASH () {4;}' unless defined(&DT_HASH);
    eval 'sub DT_STRTAB () {5;}' unless defined(&DT_STRTAB);
    eval 'sub DT_SYMTAB () {6;}' unless defined(&DT_SYMTAB);
    eval 'sub DT_RELA () {7;}' unless defined(&DT_RELA);
    eval 'sub DT_RELASZ () {8;}' unless defined(&DT_RELASZ);
    eval 'sub DT_RELAENT () {9;}' unless defined(&DT_RELAENT);
    eval 'sub DT_STRSZ () {10;}' unless defined(&DT_STRSZ);
    eval 'sub DT_SYMENT () {11;}' unless defined(&DT_SYMENT);
    eval 'sub DT_INIT () {12;}' unless defined(&DT_INIT);
    eval 'sub DT_FINI () {13;}' unless defined(&DT_FINI);
    eval 'sub DT_SONAME () {14;}' unless defined(&DT_SONAME);
    eval 'sub DT_RPATH () {15;}' unless defined(&DT_RPATH);
    eval 'sub DT_SYMBOLIC () {16;}' unless defined(&DT_SYMBOLIC);
    eval 'sub DT_REL () {17;}' unless defined(&DT_REL);
    eval 'sub DT_RELSZ () {18;}' unless defined(&DT_RELSZ);
    eval 'sub DT_RELENT () {19;}' unless defined(&DT_RELENT);
    eval 'sub DT_PLTREL () {20;}' unless defined(&DT_PLTREL);
    eval 'sub DT_DEBUG () {21;}' unless defined(&DT_DEBUG);
    eval 'sub DT_TEXTREL () {22;}' unless defined(&DT_TEXTREL);
    eval 'sub DT_JMPREL () {23;}' unless defined(&DT_JMPREL);
    eval 'sub DT_BIND_NOW () {24;}' unless defined(&DT_BIND_NOW);
    eval 'sub DT_NUM () {25;}' unless defined(&DT_NUM);
    eval 'sub DT_LOPROC () {0x70000000;}' unless defined(&DT_LOPROC);
    eval 'sub DT_HIPROC () {0x7fffffff;}' unless defined(&DT_HIPROC);
    if(defined( &_KERNEL) || defined( &_DYN_LOADER)) {
	eval 'sub ELF32_NO_ADDR () {( ~0);}' unless defined(&ELF32_NO_ADDR);
	eval 'sub ELF_AUX_ENTRIES () {8;}' unless defined(&ELF_AUX_ENTRIES);
	eval 'sub ELF64_NO_ADDR () {(( &__uint64_t) ~0);}' unless defined(&ELF64_NO_ADDR);
	eval 'sub ELF64_AUX_ENTRIES () {8;}' unless defined(&ELF64_AUX_ENTRIES);
	eval("sub AUX_null () { 0; }") unless defined(&AUX_null);
	eval("sub AUX_ignore () { 1; }") unless defined(&AUX_ignore);
	eval("sub AUX_execfd () { 2; }") unless defined(&AUX_execfd);
	eval("sub AUX_phdr () { 3; }") unless defined(&AUX_phdr);
	eval("sub AUX_phent () { 4; }") unless defined(&AUX_phent);
	eval("sub AUX_phnum () { 5; }") unless defined(&AUX_phnum);
	eval("sub AUX_pagesz () { 6; }") unless defined(&AUX_pagesz);
	eval("sub AUX_base () { 7; }") unless defined(&AUX_base);
	eval("sub AUX_flags () { 8; }") unless defined(&AUX_flags);
	eval("sub AUX_entry () { 9; }") unless defined(&AUX_entry);
	eval("sub AUX_sun_uid () { 2000; }") unless defined(&AUX_sun_uid);
	eval("sub AUX_sun_ruid () { 2001; }") unless defined(&AUX_sun_ruid);
	eval("sub AUX_sun_gid () { 2002; }") unless defined(&AUX_sun_gid);
	eval("sub AUX_sun_rgid () { 2003; }") unless defined(&AUX_sun_rgid);
    }
    if(!defined( &ELFSIZE)  && defined( &ARCH_ELFSIZE)) {
	eval 'sub ELFSIZE () { &ARCH_ELFSIZE;}' unless defined(&ELFSIZE);
    }
    if(defined( &ELFSIZE)) {
	eval 'sub CONCAT {
	    my($x,$y) = @_;
    	    eval q( &__CONCAT($x,$y));
	}' unless defined(&CONCAT);
	eval 'sub ELFNAME {
	    my($x) = @_;
    	    eval q( &CONCAT( &elf, &CONCAT( &ELFSIZE, &CONCAT( &_,$x))));
	}' unless defined(&ELFNAME);
	eval 'sub ELFNAME2 {
	    my($x,$y) = @_;
    	    eval q( &CONCAT($x, &CONCAT( &_elf, &CONCAT( &ELFSIZE, &CONCAT( &_,$y)))));
	}' unless defined(&ELFNAME2);
	eval 'sub ELFNAMEEND {
	    my($x) = @_;
    	    eval q( &CONCAT($x, &CONCAT( &_elf, &ELFSIZE)));
	}' unless defined(&ELFNAMEEND);
	eval 'sub ELFDEFNNAME {
	    my($x) = @_;
    	    eval q( &CONCAT( &ELF, &CONCAT( &ELFSIZE, &CONCAT( &_,$x))));
	}' unless defined(&ELFDEFNNAME);
    }
    if(defined( &ELFSIZE)  && ((defined(&ELFSIZE) ? &ELFSIZE : 0) == 32)) {
	eval 'sub Elf_Ehdr () { &Elf32_Ehdr;}' unless defined(&Elf_Ehdr);
	eval 'sub Elf_Phdr () { &Elf32_Phdr;}' unless defined(&Elf_Phdr);
	eval 'sub Elf_Shdr () { &Elf32_Shdr;}' unless defined(&Elf_Shdr);
	eval 'sub Elf_Sym () { &Elf32_Sym;}' unless defined(&Elf_Sym);
	eval 'sub Elf_Rel () { &Elf32_Rel;}' unless defined(&Elf_Rel);
	eval 'sub Elf_RelA () { &Elf32_Rela;}' unless defined(&Elf_RelA);
	eval 'sub Elf_Dyn () { &Elf32_Dyn;}' unless defined(&Elf_Dyn);
	eval 'sub Elf_Half () { &Elf32_Half;}' unless defined(&Elf_Half);
	eval 'sub Elf_Word () { &Elf32_Word;}' unless defined(&Elf_Word);
	eval 'sub Elf_Sword () { &Elf32_Sword;}' unless defined(&Elf_Sword);
	eval 'sub Elf_Addr () { &Elf32_Addr;}' unless defined(&Elf_Addr);
	eval 'sub Elf_Off () { &Elf32_Off;}' unless defined(&Elf_Off);
	eval 'sub Elf_Nhdr () { &Elf32_Nhdr;}' unless defined(&Elf_Nhdr);
	eval 'sub Elf_Note () { &Elf32_Note;}' unless defined(&Elf_Note);
	eval 'sub ELF_R_SYM () { &ELF32_R_SYM;}' unless defined(&ELF_R_SYM);
	eval 'sub ELF_R_TYPE () { &ELF32_R_TYPE;}' unless defined(&ELF_R_TYPE);
	eval 'sub ELF_R_INFO () { &ELF32_R_INFO;}' unless defined(&ELF_R_INFO);
	eval 'sub ELFCLASS () { &ELFCLASS32;}' unless defined(&ELFCLASS);
	eval 'sub ELF_ST_BIND () { &ELF32_ST_BIND;}' unless defined(&ELF_ST_BIND);
	eval 'sub ELF_ST_TYPE () { &ELF32_ST_TYPE;}' unless defined(&ELF_ST_TYPE);
	eval 'sub ELF_ST_INFO () { &ELF32_ST_INFO;}' unless defined(&ELF_ST_INFO);
	eval 'sub AuxInfo () { &Aux32Info;}' unless defined(&AuxInfo);
    }
 elsif(defined( &ELFSIZE)  && ((defined(&ELFSIZE) ? &ELFSIZE : 0) == 64)) {
	eval 'sub Elf_Ehdr () { &Elf64_Ehdr;}' unless defined(&Elf_Ehdr);
	eval 'sub Elf_Phdr () { &Elf64_Phdr;}' unless defined(&Elf_Phdr);
	eval 'sub Elf_Shdr () { &Elf64_Shdr;}' unless defined(&Elf_Shdr);
	eval 'sub Elf_Sym () { &Elf64_Sym;}' unless defined(&Elf_Sym);
	eval 'sub Elf_Rel () { &Elf64_Rel;}' unless defined(&Elf_Rel);
	eval 'sub Elf_RelA () { &Elf64_Rela;}' unless defined(&Elf_RelA);
	eval 'sub Elf_Dyn () { &Elf64_Dyn;}' unless defined(&Elf_Dyn);
	eval 'sub Elf_Half () { &Elf64_Half;}' unless defined(&Elf_Half);
	eval 'sub Elf_Word () { &Elf64_Word;}' unless defined(&Elf_Word);
	eval 'sub Elf_Sword () { &Elf64_Sword;}' unless defined(&Elf_Sword);
	eval 'sub Elf_Addr () { &Elf64_Addr;}' unless defined(&Elf_Addr);
	eval 'sub Elf_Off () { &Elf64_Off;}' unless defined(&Elf_Off);
	eval 'sub Elf_Nhdr () { &Elf64_Nhdr;}' unless defined(&Elf_Nhdr);
	eval 'sub Elf_Note () { &Elf64_Note;}' unless defined(&Elf_Note);
	eval 'sub ELF_R_SYM () { &ELF64_R_SYM;}' unless defined(&ELF_R_SYM);
	eval 'sub ELF_R_TYPE () { &ELF64_R_TYPE;}' unless defined(&ELF_R_TYPE);
	eval 'sub ELF_R_INFO () { &ELF64_R_INFO;}' unless defined(&ELF_R_INFO);
	eval 'sub ELFCLASS () { &ELFCLASS64;}' unless defined(&ELFCLASS);
	eval 'sub ELF_ST_BIND () { &ELF64_ST_BIND;}' unless defined(&ELF_ST_BIND);
	eval 'sub ELF_ST_TYPE () { &ELF64_ST_TYPE;}' unless defined(&ELF_ST_TYPE);
	eval 'sub ELF_ST_INFO () { &ELF64_ST_INFO;}' unless defined(&ELF_ST_INFO);
	eval 'sub AuxInfo () { &Aux64Info;}' unless defined(&AuxInfo);
    }
    unless(defined(&_KERNEL)) {
    }
    if(defined(&_KERNEL)) {
	if(defined(&_KERN_DO_ELF64)) {
	}
	if(defined(&_KERN_DO_ELF)) {
	}
    }
    eval 'sub ELF_TARG_VER () {1;}' unless defined(&ELF_TARG_VER);
}
1;
