> Date: Sun, 09 Jan 2022 23:54:23 +0100 > From: Leo Larnack <l...@pseven.xyz> > > Daniel Dickman <didick...@gmail.com> wrote: > > > elfexport.cpp:352:56: error: use of undeclared identifier 'R_386_32' > > reloc.r_info = ELFXX_R_INFO(symbolNum, isFuncPtr ? > > HOST_DIRECT_FPTR_RELOC : HOST_DIRECT_DATA_RELOC); > > ^ > > elfexport.cpp:142:33: note: expanded from macro 'HOST_DIRECT_FPTR_RELOC' > > # define HOST_DIRECT_FPTR_RELOC R_386_32 > > It looks like Poly/ML expects R_386_32 to be either in <elf.h> of > <machine/reloc.h> (it's located in <elf.h> on Void Linux, for > example). After a bit of searching, what I understand is that > OpenBSD/i386's (and other platforms') <machine/reloc.h> contains > the right values, but doesn't follow the same naming convention > (RELOC_32), while other platforms do follow that convention. > > Hoping that I'm not doing something dumb, here is a diff that > standardizes the constants' names for these platforms. The new names > come from src/gnu/usr.bin/binutils-2.17/include/elf.
Yes, I think this is a diff we want. But it is probably best to review and test this on a per-architecture basis. Can you feed them to us one-by-one? > Index: libexec/ld.so/hppa/rtld_machine.c > =================================================================== > RCS file: /cvs/src/libexec/ld.so/hppa/rtld_machine.c,v > retrieving revision 1.43 > diff -u -p -r1.43 rtld_machine.c > --- libexec/ld.so/hppa/rtld_machine.c 8 Jan 2022 06:49:41 -0000 1.43 > +++ libexec/ld.so/hppa/rtld_machine.c 9 Jan 2022 22:03:27 -0000 > @@ -164,7 +164,7 @@ _dl_md_reloc(elf_object_t *object, int r > int type; > > type = ELF_R_TYPE(rela->r_info); > - if (type == RELOC_NONE) > + if (type == R_TYPE(NONE)) > continue; > > sym = object->dyn.symtab + ELF_R_SYM(rela->r_info); > @@ -191,7 +191,7 @@ _dl_md_reloc(elf_object_t *object, int r > #endif > > switch (type) { > - case RELOC_DIR32: > + case R_TYPE(DIR32): > if (ELF_R_SYM(rela->r_info) && sym->st_name) { > *pt = sr.obj->obj_base + sr.sym->st_value + > rela->r_addend; > @@ -213,7 +213,7 @@ _dl_md_reloc(elf_object_t *object, int r > } > break; > > - case RELOC_PLABEL32: > + case R_TYPE(PLABEL32): > if (ELF_R_SYM(rela->r_info)) { > if (ELF_ST_TYPE(sr.sym->st_info) != STT_FUNC) { > DL_DEB(("[%x]PLABEL32: bad\n", i)); > @@ -236,7 +236,7 @@ _dl_md_reloc(elf_object_t *object, int r > } > break; > > - case RELOC_IPLT: > + case R_TYPE(IPLT): > if (ELF_R_SYM(rela->r_info)) { > pt[0] = sr.obj->obj_base + sr.sym->st_value + > rela->r_addend; > @@ -256,7 +256,7 @@ _dl_md_reloc(elf_object_t *object, int r > } > break; > > - case RELOC_COPY: > + case R_TYPE(COPY): > { > sr = _dl_find_symbol(symn, > SYM_SEARCH_OTHER|SYM_WARNNOTFOUND|SYM_NOTPLT, > @@ -381,7 +381,7 @@ _dl_md_reloc_got(elf_object_t *object, i > for (i = 0; i < numrela; i++, rela++) { > Elf_Addr *r_addr = (Elf_Addr *)(ooff + rela->r_offset); > > - if (ELF_R_TYPE(rela->r_info) != RELOC_IPLT) { > + if (ELF_R_TYPE(rela->r_info) != R_TYPE(IPLT)) { > _dl_printf("unexpected reloc 0x%x\n", > ELF_R_TYPE(rela->r_info)); > return 1; > Index: libexec/ld.so/m88k/rtld_machine.c > =================================================================== > RCS file: /cvs/src/libexec/ld.so/m88k/rtld_machine.c,v > retrieving revision 1.31 > diff -u -p -r1.31 rtld_machine.c > --- libexec/ld.so/m88k/rtld_machine.c 8 Jan 2022 06:49:42 -0000 1.31 > +++ libexec/ld.so/m88k/rtld_machine.c 9 Jan 2022 22:03:27 -0000 > @@ -99,17 +99,17 @@ _dl_md_reloc(elf_object_t *object, int r > > type = ELF_R_TYPE(relas->r_info); > > - if (type == RELOC_GOTP_ENT && rel != DT_JMPREL) > + if (type == R_TYPE(GOTP_ENT) && rel != DT_JMPREL) > continue; > > - if (type == RELOC_NONE) > + if (type == R_TYPE(NONE)) > continue; > > sym = object->dyn.symtab; > sym += ELF_R_SYM(relas->r_info); > symn = object->dyn.strtab + sym->st_name; > > - if (type == RELOC_COPY) { > + if (type == R_TYPE(COPY)) { > /* > * we need to find a symbol, that is not in the current > * object, start looking at the beginning of the list, > @@ -144,7 +144,7 @@ _dl_md_reloc(elf_object_t *object, int r > > sr = _dl_find_symbol(symn, > SYM_SEARCH_ALL | SYM_WARNNOTFOUND | > - ((type == RELOC_GOTP_ENT) ? > + ((type == R_TYPE(GOTP_ENT)) ? > SYM_PLT : SYM_NOTPLT), sym, object); > > if (sr.sym == NULL) { > @@ -159,7 +159,7 @@ _dl_md_reloc(elf_object_t *object, int r > } > } > > - if (type == RELOC_GOTP_ENT) { > + if (type == R_TYPE(GOTP_ENT)) { > _dl_md_reloc_gotp_ent((Elf_Addr)r_addr, > relas->r_addend + loff, > prev_ooff + prev_value); > @@ -174,17 +174,17 @@ _dl_md_reloc(elf_object_t *object, int r > addend = prev_value + relas->r_addend; > > switch (type) { > - case RELOC_16L: > + case R_TYPE(16L): > newval = prev_ooff + addend; > *(unsigned short *)r_addr = newval & 0xffff; > _dl_cacheflush((unsigned long)r_addr, 2); > break; > - case RELOC_16H: > + case R_TYPE(16H): > newval = prev_ooff + addend; > *(unsigned short *)r_addr = newval >> 16; > _dl_cacheflush((unsigned long)r_addr, 2); > break; > - case RELOC_DISP26: > + case R_TYPE(DISP26): > newval = prev_ooff + addend; > newval -= (Elf_Addr)r_addr; > if ((newval >> 28) != 0 && (newval >> 28) != 0x0f) > @@ -195,11 +195,11 @@ _dl_md_reloc(elf_object_t *object, int r > (((int32_t)newval >> 2) & 0x03ffffff); > _dl_cacheflush((unsigned long)r_addr, 4); > break; > - case RELOC_32: > + case R_TYPE(32): > newval = prev_ooff + addend; > *r_addr = newval; > break; > - case RELOC_BBASED_32: > + case R_TYPE(BBASED_32): > newval = loff + addend; > *r_addr = newval; > break; > Index: libexec/ld.so/powerpc/rtld_machine.c > =================================================================== > RCS file: /cvs/src/libexec/ld.so/powerpc/rtld_machine.c,v > retrieving revision 1.72 > diff -u -p -r1.72 rtld_machine.c > --- libexec/ld.so/powerpc/rtld_machine.c 8 Jan 2022 18:30:18 -0000 > 1.72 > +++ libexec/ld.so/powerpc/rtld_machine.c 9 Jan 2022 22:03:27 -0000 > @@ -95,7 +95,7 @@ _dl_md_reloc(elf_object_t *object, int r > > type = ELF_R_TYPE(relas->r_info); > > - if (type == RELOC_JMP_SLOT && rel != DT_JMPREL) > + if (type == R_TYPE(JMP_SLOT) && rel != DT_JMPREL) > continue; > > sym = object->dyn.symtab; > @@ -110,7 +110,7 @@ _dl_md_reloc(elf_object_t *object, int r > > sr = _dl_find_symbol(symn, > SYM_SEARCH_ALL|SYM_WARNNOTFOUND| > - ((type == RELOC_JMP_SLOT) ? > + ((type == R_TYPE(JMP_SLOT)) ? > SYM_PLT:SYM_NOTPLT), sym, object); > > if (sr.sym == NULL) { > @@ -124,7 +124,7 @@ _dl_md_reloc(elf_object_t *object, int r > } > > switch (type) { > - case RELOC_32: > + case R_TYPE(32): > if (ELF_ST_BIND(sym->st_info) == STB_LOCAL && > (ELF_ST_TYPE(sym->st_info) == STT_SECTION || > ELF_ST_TYPE(sym->st_info) == STT_NOTYPE) ) { > @@ -134,7 +134,7 @@ _dl_md_reloc(elf_object_t *object, int r > relas->r_addend; > } > break; > - case RELOC_RELATIVE: > + case R_TYPE(RELATIVE): > if (ELF_ST_BIND(sym->st_info) == STB_LOCAL && > (ELF_ST_TYPE(sym->st_info) == STT_SECTION || > ELF_ST_TYPE(sym->st_info) == STT_NOTYPE) ) { > @@ -145,17 +145,17 @@ _dl_md_reloc(elf_object_t *object, int r > } > break; > /* > - * For Secure-PLT, RELOC_JMP_SLOT simply sets PLT > - * slots similarly to how RELOC_GLOB_DAT updates GOT > + * For Secure-PLT, R_TYPE(JMP_SLOT) simply sets PLT > + * slots similarly to how R_TYPE(GLOB_DAT) updates GOT > * slots. > */ > - case RELOC_JMP_SLOT: > - case RELOC_GLOB_DAT: > + case R_TYPE(JMP_SLOT): > + case R_TYPE(GLOB_DAT): > *r_addr = prev_ooff + prev_value + relas->r_addend; > break; > #if 1 > /* should not be supported ??? */ > - case RELOC_REL24: > + case R_TYPE(REL24): > { > Elf_Addr val = prev_ooff + prev_value + > relas->r_addend - (Elf_Addr)r_addr; > @@ -174,7 +174,7 @@ _dl_md_reloc(elf_object_t *object, int r > break; > #endif > #if 1 > - case RELOC_16_LO: > + case R_TYPE(16_LO): > { > Elf_Addr val; > > @@ -186,7 +186,7 @@ _dl_md_reloc(elf_object_t *object, int r > break; > #endif > #if 1 > - case RELOC_16_HI: > + case R_TYPE(16_HI): > { > Elf_Addr val; > > @@ -198,7 +198,7 @@ _dl_md_reloc(elf_object_t *object, int r > break; > #endif > #if 1 > - case RELOC_16_HA: > + case R_TYPE(16_HA): > { > Elf_Addr val; > > @@ -209,10 +209,10 @@ _dl_md_reloc(elf_object_t *object, int r > } > break; > #endif > - case RELOC_REL14_TAKEN: > + case R_TYPE(REL14_TAKEN): > /* val |= 1 << (31-10) XXX? */ > - case RELOC_REL14: > - case RELOC_REL14_NTAKEN: > + case R_TYPE(REL14): > + case R_TYPE(REL14_NTAKEN): > { > Elf_Addr val = prev_ooff + prev_value + > relas->r_addend - (Elf_Addr)r_addr; > @@ -229,7 +229,7 @@ _dl_md_reloc(elf_object_t *object, int r > _dl_dcbf(r_addr); > } > break; > - case RELOC_COPY: > + case R_TYPE(COPY): > { > struct sym_res sr; > /* > @@ -248,7 +248,7 @@ _dl_md_reloc(elf_object_t *object, int r > fails++; > } > break; > - case RELOC_NONE: > + case R_TYPE(NONE): > break; > > default: > Index: sys/arch/alpha/include/reloc.h > =================================================================== > RCS file: /cvs/src/sys/arch/alpha/include/reloc.h,v > retrieving revision 1.3 > diff -u -p -r1.3 reloc.h > --- sys/arch/alpha/include/reloc.h 23 Mar 2011 16:54:34 -0000 1.3 > +++ sys/arch/alpha/include/reloc.h 9 Jan 2022 22:03:28 -0000 > @@ -3,35 +3,35 @@ > #ifndef _MACHINE_RELOC_H_ > #define _MACHINE_RELOC_H_ > > -#define RELOC_NONE 0 /* No reloc */ > -#define RELOC_REFLONG 1 /* Direct 32 bit */ > -#define RELOC_REFQUAD 2 /* Direct 64 bit */ > -#define RELOC_GPREL32 3 /* GP relative 32 bit */ > -#define RELOC_LITERAL 4 /* GP relative 16 bit w/optimization */ > -#define RELOC_LITUSE 5 /* Optimization hint for LITERAL */ > -#define RELOC_GPDISP 6 /* Add displacement to GP */ > -#define RELOC_BRADDR 7 /* PC+4 relative 23 bit shifted */ > -#define RELOC_HINT 8 /* PC+4 relative 16 bit shifted */ > -#define RELOC_SREL16 9 /* PC relative 16 bit */ > -#define RELOC_SREL32 10 /* PC relative 32 bit */ > -#define RELOC_SREL64 11 /* PC relative 64 bit */ > -#define RELOC_OP_PUSH 12 /* OP stack push */ > -#define RELOC_OP_STORE 13 /* OP stack pop and store */ > -#define RELOC_OP_PSUB 14 /* OP stack subtract */ > -#define RELOC_OP_PRSHIFT 15 /* OP stack right shift */ > -#define RELOC_GPVALUE 16 > -#define RELOC_GPRELHIGH 17 > -#define RELOC_GPRELLOW 18 > -#define RELOC_IMMED_GP_16 19 > -#define RELOC_IMMED_GP_HI32 20 > -#define RELOC_IMMED_SCN_HI32 21 > -#define RELOC_IMMED_BRELOC_HI32 22 > -#define RELOC_IMMED_LO32 23 > -#define RELOC_COPY 24 /* Copy symbol at runtime */ > -#define RELOC_GLOB_DAT 25 /* Create GOT entry */ > -#define RELOC_JMP_SLOT 26 /* Create PLT entry */ > -#define RELOC_RELATIVE 27 /* Adjust by program base */ > +#define R_ALPHA_NONE 0 /* No reloc */ > +#define R_ALPHA_REFLONG 1 /* Direct 32 bit */ > +#define R_ALPHA_REFQUAD 2 /* Direct 64 bit */ > +#define R_ALPHA_GPREL32 3 /* GP relative 32 bit */ > +#define R_ALPHA_LITERAL 4 /* GP relative 16 bit w/optimization > */ > +#define R_ALPHA_LITUSE 5 /* Optimization hint for LITERAL */ > +#define R_ALPHA_GPDISP 6 /* Add displacement to GP */ > +#define R_ALPHA_BRADDR 7 /* PC+4 relative 23 bit shifted */ > +#define R_ALPHA_HINT 8 /* PC+4 relative 16 bit shifted */ > +#define R_ALPHA_SREL16 9 /* PC relative 16 bit */ > +#define R_ALPHA_SREL32 10 /* PC relative 32 bit */ > +#define R_ALPHA_SREL64 11 /* PC relative 64 bit */ > +#define R_ALPHA_OP_PUSH 12 /* OP stack push */ > +#define R_ALPHA_OP_STORE 13 /* OP stack pop and store */ > +#define R_ALPHA_OP_PSUB 14 /* OP stack subtract */ > +#define R_ALPHA_OP_PRSHIFT 15 /* OP stack right shift */ > +#define R_ALPHA_GPVALUE 16 > +#define R_ALPHA_GPRELHIGH 17 > +#define R_ALPHA_GPRELLOW 18 > +#define R_ALPHA_IMMED_GP_16 19 > +#define R_ALPHA_IMMED_GP_HI32 20 > +#define R_ALPHA_IMMED_SCN_HI32 21 > +#define R_ALPHA_IMMED_ R_ALPHA_HI32 22 > +#define R_ALPHA_IMMED_LO32 23 > +#define R_ALPHA_COPY 24 /* Copy symbol at runtime */ > +#define R_ALPHA_GLOB_DAT 25 /* Create GOT entry */ > +#define R_ALPHA_JMP_SLOT 26 /* Create PLT entry */ > +#define R_ALPHA_RELATIVE 27 /* Adjust by program base */ > > -#define R_TYPE(X) __CONCAT(RELOC_,X) > +#define R_TYPE(X) __CONCAT(R_ALPHA_,X) > > #endif /* _MACHINE_RELOC_H_ */ > Index: sys/arch/hppa/include/reloc.h > =================================================================== > RCS file: /cvs/src/sys/arch/hppa/include/reloc.h,v > retrieving revision 1.4 > diff -u -p -r1.4 reloc.h > --- sys/arch/hppa/include/reloc.h 10 Nov 2011 22:48:13 -0000 1.4 > +++ sys/arch/hppa/include/reloc.h 9 Jan 2022 22:03:28 -0000 > @@ -21,103 +21,105 @@ > #define _MACHINE_RELOC_H_ > > /* pa1 compatibility */ > -#define RELOC_DLTREL21L RELOC_GPREL21L > -#define RELOC_DLTREL14R RELOC_GPREL14R > -#define RELOC_DLTIND21L RELOC_LTOFF21L > -#define RELOC_DLTIND14R RELOC_LTOFF14R > -#define RELOC_DLTIND14F RELOC_LTOFF14F > -#define RELOC_DLTREL14WR RELOC_GPREL14WR > -#define RELOC_DLTREL14DR RELOC_GPREL14DR > -#define RELOC_DLTIND14WR RELOC_LTOFF14WR > -#define RELOC_DLTIND14DR RELOC_LTOFF14DR > +#define R_PARISC_DLTREL21L R_PARISC_GPREL21L > +#define R_PARISC_DLTREL14R R_PARISC_GPREL14R > +#define R_PARISC_DLTIND21L R_PARISC_LTOFF21L > +#define R_PARISC_DLTIND14R R_PARISC_LTOFF14R > +#define R_PARISC_DLTIND14F R_PARISC_LTOFF14F > +#define R_PARISC_DLTREL14WR R_PARISC_GPREL14WR > +#define R_PARISC_DLTREL14DR R_PARISC_GPREL14DR > +#define R_PARISC_DLTIND14WR R_PARISC_LTOFF14WR > +#define R_PARISC_DLTIND14DR R_PARISC_LTOFF14DR > > > enum reloc_type { > - RELOC_NONE = 0, > - RELOC_DIR32, /* symbol + addend*/ > - RELOC_DIR21L, /* LR(symbol, addend) */ > - RELOC_DIR17R, /* RR(symbol, addend) */ > - RELOC_DIR17F, /* symbol + addend */ > - RELOC_DIR14R = 6, /* RR(symbol, addend) */ > - RELOC_PCREL32 = 9, /* pa2: symbol - PC - 8 + addend */ > - RELOC_PCREL21L, /* L(symbol - PC - 8 + addend */ > - RELOC_PCREL17R, /* R(symbol - PC - 8 + addend */ > - RELOC_PCREL17F, /* symbol - PC - 8 + addend */ > - RELOC_PCREL17C, /* pa1: symbol - PC - 8 + addend */ > - RELOC_PCREL14R, /* R(symbol - PC - 8 + addend */ > - RELOC_DPREL21L = 18, /* pa1: LR(symbol - GP, addend */ > - RELOC_DPREL14WR, /* pa1: RR(symbol - GP, addend */ > - RELOC_DPREL14DR, /* pa1: RR(symbol - GP, addend */ > - RELOC_DPREL14R, /* pa1: RR(symbol - GP, addend */ > - RELOC_GPREL21L = 26, /* LR(symbol - GP, addend */ > - RELOC_GPREL14R = 30, /* RR(symbol - GP, addend */ > - RELOC_LTOFF21L = 34, /* L(ltoff(symbol + addend)) */ > - RELOC_LTOFF14R = 38, /* R(ltoff(symbol + addend)) */ > - RELOC_LTOFF14F, /* pa1: ltoff(symbol + addend) */ > - RELOC_SETBASE, /* no relocation; base = symbol */ > - RELOC_SECREL32, /* symbol - SECT + addend */ > - RELOC_BASEREL21L, /* pa1: LR(symbol - base, addend) */ > - RELOC_BASEREL17R, /* pa1: RR(symbol - base, addend) */ > - RELOC_BASEREL14R = 46, /* pa1: RR(symbol - base, addend) */ > - RELOC_SEGBASE = 48, /* no relocation; SB = symbol */ > - RELOC_SEGREL32, /* symbol - SB + addend */ > - RELOC_PLTOFF21L, /* LR(pltoff(symbol), addend */ > - RELOC_PLTOFF14R = 54, /* RR(pltoff(symbol), addend */ > - RELOC_PLTOFF14F, /* pa1: pltoff(symbol) + addend */ > - RELOC_LTOFF_FPTR32 = 57,/* pa2: ltoff(fptr(symbol + addend)) */ > - RELOC_LTOFF_FPTR21L, /* pa2: L(ltoff(fptr(symbol + addend))) */ > - RELOC_LTOFF_FPTR14R= 62,/* pa2: R(ltoff(fptr(symbol + addend))) */ > - RELOC_FPTR64 = 64, /* pa2: fptr(symbol + addend) */ > - RELOC_PLABEL32, /* pa1: fptr(symbol) */ > - RELOC_PCREL64 = 72, /* pa2: symbol - PC - 8 + addend */ > - RELOC_PCREL22C, /* pa1: symbol - PC - 8 + addend */ > - RELOC_PCREL22F, /* symbol - PC - 8 + addend */ > - RELOC_PCREL14WR, /* R(symbol - PC - 8 + addend) */ > - RELOC_PCREL14DR, /* R(symbol - PC - 8 + addend) */ > - RELOC_PCREL16F, /* pa2: symbol - PC - 8 + addend */ > - RELOC_PCREL16WF, /* pa2: symbol - PC - 8 + addend */ > - RELOC_PCREL16DF, /* pa2: symbol - PC - 8 + addend */ > - RELOC_DIR64, /* pa2: symbol + addend */ > - RELOC_DIR14WR = 83, /* RR(symbol, addend) */ > - RELOC_DIR14DR, /* RR(symbol, addend) */ > - RELOC_DIR16F, /* pa2: symbol + addend */ > - RELOC_DIR16WF, /* pa2: symbol + addend */ > - RELOC_DIR16DF, /* pa2: symbol + addend */ > - RELOC_GPREL64, /* pa2: symbol - GP + addend */ > - RELOC_GPREL14WR = 91, /* RR(symbol - GP, addend) */ > - RELOC_GPREL14DR, /* RR(symbol - GP, addend) */ > - RELOC_GPREL16F, /* pa2: symbol - GP + addend */ > - RELOC_GPREL16WF, /* pa2: symbol - GP + addend */ > - RELOC_GPREL16DF, /* pa2: symbol - GP + addend */ > - RELOC_LTOFF64 = 96, /* pa2: ltoff(symbol + addend) */ > - RELOC_LTOFF14WR = 99, /* R(ltoff(symbol + addend)) */ > - RELOC_LTOFF14DR, /* R(ltoff(symbol + addend)) */ > - RELOC_LTOFF16F, /* pa2: ltoff(symbol + addend) */ > - RELOC_LTOFF16WF, /* pa2: ltoff(symbol + addend) */ > - RELOC_LTOFF16DF, /* pa2: ltoff(symbol + addend) */ > - RELOC_SECREL64, /* pa2: symbol - SECT + addend */ > - RELOC_BASEREL14WR=107, /* pa1: RR(symbol - base, addend */ > - RELOC_BASEREL14DR, /* pa1: RR(symbol - base, addend */ > - RELOC_SEGREL64 = 112, /* pa2: symbol - SB + addend */ > - RELOC_PLTOFF14WR =115, /* RR(pltoff(symbol) + addend) */ > - RELOC_PLTOFF14DR, /* RR(pltoff(symbol) + addend) */ > - RELOC_PLTOFF16F, /* pa2: pltoff(symbol) + addend */ > - RELOC_PLTOFF16WF, /* pa2: pltoff(symbol) + addend */ > - RELOC_PLTOFF16DF, /* pa2: pltoff(symbol) + addend */ > - RELOC_LTOFF_FPTR64, /* pa2: ltoff(fptr(symbol + addend)) */ > - RELOC_LTOFF_FPTR14WR=123,/* pa2: R(ltoff(fptr(symbol + addend) */ > - RELOC_LTOFF_FPTR14DR, /* pa2: R(ltoff(fptr(symbol + addend) */ > - RELOC_LTOFF_FPTR16F, /* pa2: ltoff(fptr(symbol + addend)) */ > - RELOC_LTOFF_FPTR16WF, /* pa2: ltoff(fptr(symbol + addend)) */ > - RELOC_LTOFF_FPTR16DF, /* pa2: ltoff(fptr(symbol + addend)) */ > - RELOC_LORESERVE, /* reserved for environment-specific use */ > - RELOC_COPY = 128, > - RELOC_IPLT, > - RELOC_EPLT, > - RELOC_GDATA, > - RELOC_JMPSLOT, > - RELOC_RELATIVE, > - RELOC_HIRESERVE = 255 > + R_PARISC_NONE = 0, > + R_PARISC_DIR32, /* symbol + addend*/ > + R_PARISC_DIR21L, /* LR(symbol, addend) */ > + R_PARISC_DIR17R, /* RR(symbol, addend) */ > + R_PARISC_DIR17F, /* symbol + addend */ > + R_PARISC_DIR14R = 6, /* RR(symbol, addend) */ > + R_PARISC_PCREL32 = 9, /* pa2: symbol - PC - 8 + addend */ > + R_PARISC_PCREL21L, /* L(symbol - PC - 8 + addend */ > + R_PARISC_PCREL17R, /* R(symbol - PC - 8 + addend */ > + R_PARISC_PCREL17F, /* symbol - PC - 8 + addend */ > + R_PARISC_PCREL17C, /* pa1: symbol - PC - 8 + addend */ > + R_PARISC_PCREL14R, /* R(symbol - PC - 8 + addend */ > + R_PARISC_DPREL21L = 18, /* pa1: LR(symbol - GP, addend */ > + R_PARISC_DPREL14WR, /* pa1: RR(symbol - GP, addend */ > + R_PARISC_DPREL14DR, /* pa1: RR(symbol - GP, addend */ > + R_PARISC_DPREL14R, /* pa1: RR(symbol - GP, addend */ > + R_PARISC_GPREL21L = 26, /* LR(symbol - GP, addend */ > + R_PARISC_GPREL14R = 30, /* RR(symbol - GP, addend */ > + R_PARISC_LTOFF21L = 34, /* L(ltoff(symbol + addend)) */ > + R_PARISC_LTOFF14R = 38, /* R(ltoff(symbol + addend)) */ > + R_PARISC_LTOFF14F, /* pa1: ltoff(symbol + addend) */ > + R_PARISC_SETBASE, /* no relocation; base = symbol */ > + R_PARISC_SECREL32, /* symbol - SECT + addend */ > + R_PARISC_BASEREL21L, /* pa1: LR(symbol - base, addend) */ > + R_PARISC_BASEREL17R, /* pa1: RR(symbol - base, addend) */ > + R_PARISC_BASEREL14R = 46, /* pa1: RR(symbol - base, addend) */ > + R_PARISC_SEGBASE = 48, /* no relocation; SB = symbol */ > + R_PARISC_SEGREL32, /* symbol - SB + addend */ > + R_PARISC_PLTOFF21L, /* LR(pltoff(symbol), addend */ > + R_PARISC_PLTOFF14R = 54, /* RR(pltoff(symbol), addend */ > + R_PARISC_PLTOFF14F, /* pa1: pltoff(symbol) + addend */ > + R_PARISC_LTOFF_FPTR32 = 57, /* pa2: ltoff(fptr(symbol + addend)) */ > + R_PARISC_LTOFF_FPTR21L, /* pa2: L(ltoff(fptr(symbol + addend))) > */ > + R_PARISC_LTOFF_FPTR14R= 62, /* pa2: R(ltoff(fptr(symbol + addend))) > */ > + R_PARISC_FPTR64 = 64, /* pa2: fptr(symbol + addend) */ > + R_PARISC_PLABEL32, /* pa1: fptr(symbol) */ > + R_PARISC_PCREL64 = 72, /* pa2: symbol - PC - 8 + addend */ > + R_PARISC_PCREL22C, /* pa1: symbol - PC - 8 + addend */ > + R_PARISC_PCREL22F, /* symbol - PC - 8 + addend */ > + R_PARISC_PCREL14WR, /* R(symbol - PC - 8 + addend) */ > + R_PARISC_PCREL14DR, /* R(symbol - PC - 8 + addend) */ > + R_PARISC_PCREL16F, /* pa2: symbol - PC - 8 + addend */ > + R_PARISC_PCREL16WF, /* pa2: symbol - PC - 8 + addend */ > + R_PARISC_PCREL16DF, /* pa2: symbol - PC - 8 + addend */ > + R_PARISC_DIR64, /* pa2: symbol + addend */ > + R_PARISC_DIR14WR = 83, /* RR(symbol, addend) */ > + R_PARISC_DIR14DR, /* RR(symbol, addend) */ > + R_PARISC_DIR16F, /* pa2: symbol + addend */ > + R_PARISC_DIR16WF, /* pa2: symbol + addend */ > + R_PARISC_DIR16DF, /* pa2: symbol + addend */ > + R_PARISC_GPREL64, /* pa2: symbol - GP + addend */ > + R_PARISC_GPREL14WR = 91, /* RR(symbol - GP, addend) */ > + R_PARISC_GPREL14DR, /* RR(symbol - GP, addend) */ > + R_PARISC_GPREL16F, /* pa2: symbol - GP + addend */ > + R_PARISC_GPREL16WF, /* pa2: symbol - GP + addend */ > + R_PARISC_GPREL16DF, /* pa2: symbol - GP + addend */ > + R_PARISC_LTOFF64 = 96, /* pa2: ltoff(symbol + addend) */ > + R_PARISC_LTOFF14WR = 99, /* R(ltoff(symbol + addend)) */ > + R_PARISC_LTOFF14DR, /* R(ltoff(symbol + addend)) */ > + R_PARISC_LTOFF16F, /* pa2: ltoff(symbol + addend) */ > + R_PARISC_LTOFF16WF, /* pa2: ltoff(symbol + addend) */ > + R_PARISC_LTOFF16DF, /* pa2: ltoff(symbol + addend) */ > + R_PARISC_SECREL64, /* pa2: symbol - SECT + addend */ > + R_PARISC_BASEREL14WR=107, /* pa1: RR(symbol - base, addend */ > + R_PARISC_BASEREL14DR, /* pa1: RR(symbol - base, addend */ > + R_PARISC_SEGREL64 = 112, /* pa2: symbol - SB + addend */ > + R_PARISC_PLTOFF14WR =115, /* RR(pltoff(symbol) + addend) */ > + R_PARISC_PLTOFF14DR, /* RR(pltoff(symbol) + addend) */ > + R_PARISC_PLTOFF16F, /* pa2: pltoff(symbol) + addend */ > + R_PARISC_PLTOFF16WF, /* pa2: pltoff(symbol) + addend */ > + R_PARISC_PLTOFF16DF, /* pa2: pltoff(symbol) + addend */ > + R_PARISC_LTOFF_FPTR64, /* pa2: ltoff(fptr(symbol + addend)) */ > + R_PARISC_LTOFF_FPTR14WR=123, /* pa2: R(ltoff(fptr(symbol + addend) */ > + R_PARISC_LTOFF_FPTR14DR, /* pa2: R(ltoff(fptr(symbol + addend) */ > + R_PARISC_LTOFF_FPTR16F, /* pa2: ltoff(fptr(symbol + addend)) */ > + R_PARISC_LTOFF_FPTR16WF, /* pa2: ltoff(fptr(symbol + addend)) */ > + R_PARISC_LTOFF_FPTR16DF, /* pa2: ltoff(fptr(symbol + addend)) */ > + R_PARISC_LORESERVE, /* reserved for > environment-specific use */ > + R_PARISC_COPY = 128, > + R_PARISC_IPLT, > + R_PARISC_EPLT, > + R_PARISC_GDATA, > + R_PARISC_JMPSLOT, > + R_PARISC_RELATIVE, > + R_PARISC_HIRESERVE = 255 > }; > + > +#define R_TYPE(X) __CONCAT(R_PARISC_,X) > > #endif /* _MACHINE_RELOC_H_ */ > Index: sys/arch/i386/include/reloc.h > =================================================================== > RCS file: /cvs/src/sys/arch/i386/include/reloc.h,v > retrieving revision 1.3 > diff -u -p -r1.3 reloc.h > --- sys/arch/i386/include/reloc.h 23 Mar 2011 16:54:35 -0000 1.3 > +++ sys/arch/i386/include/reloc.h 9 Jan 2022 22:03:28 -0000 > @@ -26,27 +26,27 @@ > */ > #ifndef _MACHINE_RELOC_H_ > #define _MACHINE_RELOC_H_ > -#define R_TYPE(X) __CONCAT(RELOC_,X) > +#define R_TYPE(X) __CONCAT(R_386_,X) > > > -#define RELOC_NONE 0 /* No reloc */ > -#define RELOC_32 1 /* Direct 32 bit */ > -#define RELOC_PC32 2 /* PC relative 32 bit */ > -#define RELOC_GOT32 3 /* 32 bit GOT entry */ > -#define RELOC_PLT32 4 /* 32 bit PLT address */ > -#define RELOC_COPY 5 /* Copy symbol at runtime */ > -#define RELOC_GLOB_DAT 6 /* Create GOT entry */ > -#define RELOC_JUMP_SLOT 7 /* Create PLT entry */ > -#define RELOC_RELATIVE 8 /* Adjust by program base */ > -#define RELOC_GOTOFF 9 /* 32 bit offset to GOT */ > -#define RELOC_GOTPC 10 /* 32 bit PC relative offset to GOT */ > -#define RELOC_TLS_TPOFF 14 /* negative offset in static TLS > block */ > -#define RELOC_16 20 > -#define RELOC_PC16 21 > -#define RELOC_8 22 > -#define RELOC_PC8 23 > -#define RELOC_TLS_DTPMOD32 35 /* ID of module containing symbol */ > -#define RELOC_TLS_DTPOFF32 36 /* Offset in TLS block */ > -#define RELOC_TLS_TPOFF32 37 /* Offset in static TLS block */ > +#define R_386_NONE 0 /* No reloc */ > +#define R_386_32 1 /* Direct 32 bit */ > +#define R_386_PC32 2 /* PC relative 32 bit */ > +#define R_386_GOT32 3 /* 32 bit GOT entry */ > +#define R_386_PLT32 4 /* 32 bit PLT address */ > +#define R_386_COPY 5 /* Copy symbol at runtime */ > +#define R_386_GLOB_DAT 6 /* Create GOT entry */ > +#define R_386_JUMP_SLOT 7 /* Create PLT entry */ > +#define R_386_RELATIVE 8 /* Adjust by program base */ > +#define R_386_GOTOFF 9 /* 32 bit offset to GOT */ > +#define R_386_GOTPC 10 /* 32 bit PC relative offset to GOT */ > +#define R_386_TLS_TPOFF 14 /* negative offset in static TLS > block */ > +#define R_386_16 20 > +#define R_386_PC16 21 > +#define R_386_8 22 > +#define R_386_PC8 23 > +#define R_386_TLS_DTPMOD32 35 /* ID of module containing symbol */ > +#define R_386_TLS_DTPOFF32 36 /* Offset in TLS block */ > +#define R_386_TLS_TPOFF32 37 /* Offset in static TLS block */ > > #endif /* _MACHINE_RELOC_H_ */ > Index: sys/arch/m88k/include/reloc.h > =================================================================== > RCS file: /cvs/src/sys/arch/m88k/include/reloc.h,v > retrieving revision 1.1 > diff -u -p -r1.1 reloc.h > --- sys/arch/m88k/include/reloc.h 5 Jan 2013 11:20:56 -0000 1.1 > +++ sys/arch/m88k/include/reloc.h 9 Jan 2022 22:03:28 -0000 > @@ -5,67 +5,69 @@ > #ifndef _M88K_RELOC_H_ > #define _M88K_RELOC_H_ > > -#define RELOC_NONE 0 > -#define RELOC_COPY 1 > -#define RELOC_GOTP_ENT 2 > -#define RELOC_8 4 > -#define RELOC_8S 5 > -#define RELOC_16S 7 > -#define RELOC_DISP16 8 > -#define RELOC_DISP26 10 > -#define RELOC_PLT_DISP26 14 > -#define RELOC_BBASED_32 16 > -#define RELOC_BBASED_32UA 17 > -#define RELOC_BBASED_16H 18 > -#define RELOC_BBASED_16L 19 > -#define RELOC_ABDIFF_32 24 > -#define RELOC_ABDIFF_32UA 25 > -#define RELOC_ABDIFF_16H 26 > -#define RELOC_ABDIFF_16L 27 > -#define RELOC_ABDIFF_16 28 > -#define RELOC_32 32 > -#define RELOC_32UA 33 > -#define RELOC_16H 34 > -#define RELOC_16L 35 > -#define RELOC_16 36 > -#define RELOC_GOT_32 40 > -#define RELOC_GOT_32UA 41 > -#define RELOC_GOT_16H 42 > -#define RELOC_GOT_16L 43 > -#define RELOC_GOT_16 44 > -#define RELOC_GOTP_32 48 > -#define RELOC_GOTP_32UA 49 > -#define RELOC_GOTP_16H 50 > -#define RELOC_GOTP_16L 51 > -#define RELOC_GOTP_16 52 > -#define RELOC_PLT_32 56 > -#define RELOC_PLT_32UA 57 > -#define RELOC_PLT_16H 58 > -#define RELOC_PLT_16L 59 > -#define RELOC_PLT_16 60 > -#define RELOC_ABREL_32 64 > -#define RELOC_ABREL_32UA 65 > -#define RELOC_ABREL_16H 66 > -#define RELOC_ABREL_16L 67 > -#define RELOC_ABREL_16 68 > -#define RELOC_GOT_ABREL_32 72 > -#define RELOC_GOT_ABREL_32UA 73 > -#define RELOC_GOT_ABREL_16H 74 > -#define RELOC_GOT_ABREL_16L 75 > -#define RELOC_GOT_ABREL_16 76 > -#define RELOC_GOTP_ABREL_32 80 > -#define RELOC_GOTP_ABREL_32UA 81 > -#define RELOC_GOTP_ABREL_16H 82 > -#define RELOC_GOTP_ABREL_16L 83 > -#define RELOC_GOTP_ABREL_16 84 > -#define RELOC_PLT_ABREL_32 88 > -#define RELOC_PLT_ABREL_32UA 89 > -#define RELOC_PLT_ABREL_16H 90 > -#define RELOC_PLT_ABREL_16L 91 > -#define RELOC_PLT_ABREL_16 92 > -#define RELOC_SREL_32 96 > -#define RELOC_SREL_32UA 97 > -#define RELOC_SREL_16H 98 > -#define RELOC_SREL_16L 99 > +#define R_88K_NONE 0 > +#define R_88K_COPY 1 > +#define R_88K_GOTP_ENT 2 > +#define R_88K_8 4 > +#define R_88K_8S 5 > +#define R_88K_16S 7 > +#define R_88K_DISP16 8 > +#define R_88K_DISP26 10 > +#define R_88K_PLT_DISP26 14 > +#define R_88K_BBASED_32 16 > +#define R_88K_BBASED_32UA 17 > +#define R_88K_BBASED_16H 18 > +#define R_88K_BBASED_16L 19 > +#define R_88K_ABDIFF_32 24 > +#define R_88K_ABDIFF_32UA 25 > +#define R_88K_ABDIFF_16H 26 > +#define R_88K_ABDIFF_16L 27 > +#define R_88K_ABDIFF_16 28 > +#define R_88K_32 32 > +#define R_88K_32UA 33 > +#define R_88K_16H 34 > +#define R_88K_16L 35 > +#define R_88K_16 36 > +#define R_88K_GOT_32 40 > +#define R_88K_GOT_32UA 41 > +#define R_88K_GOT_16H 42 > +#define R_88K_GOT_16L 43 > +#define R_88K_GOT_16 44 > +#define R_88K_GOTP_32 48 > +#define R_88K_GOTP_32UA 49 > +#define R_88K_GOTP_16H 50 > +#define R_88K_GOTP_16L 51 > +#define R_88K_GOTP_16 52 > +#define R_88K_PLT_32 56 > +#define R_88K_PLT_32UA 57 > +#define R_88K_PLT_16H 58 > +#define R_88K_PLT_16L 59 > +#define R_88K_PLT_16 60 > +#define R_88K_ABREL_32 64 > +#define R_88K_ABREL_32UA 65 > +#define R_88K_ABREL_16H 66 > +#define R_88K_ABREL_16L 67 > +#define R_88K_ABREL_16 68 > +#define R_88K_GOT_ABREL_32 72 > +#define R_88K_GOT_ABREL_32UA 73 > +#define R_88K_GOT_ABREL_16H 74 > +#define R_88K_GOT_ABREL_16L 75 > +#define R_88K_GOT_ABREL_16 76 > +#define R_88K_GOTP_ABREL_32 80 > +#define R_88K_GOTP_ABREL_32UA 81 > +#define R_88K_GOTP_ABREL_16H 82 > +#define R_88K_GOTP_ABREL_16L 83 > +#define R_88K_GOTP_ABREL_16 84 > +#define R_88K_PLT_ABREL_32 88 > +#define R_88K_PLT_ABREL_32UA 89 > +#define R_88K_PLT_ABREL_16H 90 > +#define R_88K_PLT_ABREL_16L 91 > +#define R_88K_PLT_ABREL_16 92 > +#define R_88K_SREL_32 96 > +#define R_88K_SREL_32UA 97 > +#define R_88K_SREL_16H 98 > +#define R_88K_SREL_16L 99 > + > +#define R_TYPE(X) __CONCAT(R_88K_,X) > > #endif /* _M88K_RELOC_H_ */ > Index: sys/arch/powerpc/include/reloc.h > =================================================================== > RCS file: /cvs/src/sys/arch/powerpc/include/reloc.h,v > retrieving revision 1.4 > diff -u -p -r1.4 reloc.h > --- sys/arch/powerpc/include/reloc.h 23 Mar 2011 16:54:36 -0000 1.4 > +++ sys/arch/powerpc/include/reloc.h 9 Jan 2022 22:03:28 -0000 > @@ -38,54 +38,56 @@ > * Quite a number of relocation types > */ > enum reloc_type { > - RELOC_NONE, > - RELOC_32, > - RELOC_24, > - RELOC_16, > - RELOC_16_LO, > - RELOC_16_HI, /* RELOC_ADDIS = 5 */ > - RELOC_16_HA, > - RELOC_14, > - RELOC_14_TAKEN, > - RELOC_14_NTAKEN, > - RELOC_REL24, /* RELOC_BRANCH = 10 */ > - RELOC_REL14, > - RELOC_REL14_TAKEN, > - RELOC_REL14_NTAKEN, > - RELOC_GOT16, > - RELOC_GOT16_LO, > - RELOC_GOT16_HI, > - RELOC_GOT16_HA, > - RELOC_PLT24, > - RELOC_COPY, > - RELOC_GLOB_DAT, > - RELOC_JMP_SLOT, > - RELOC_RELATIVE, > - RELOC_LOCAL24PC, > - RELOC_U32, > - RELOC_U16, > - RELOC_REL32, > - RELOC_PLT32, > - RELOC_PLTREL32, > - RELOC_PLT16_LO, > - RELOC_PLT16_HI, > - RELOC_PLT16_HA, > + R_PPC_NONE, > + R_PPC_32, > + R_PPC_24, > + R_PPC_16, > + R_PPC_16_LO, > + R_PPC_16_HI, /* R_PPC_ADDIS = 5 */ > + R_PPC_16_HA, > + R_PPC_14, > + R_PPC_14_TAKEN, > + R_PPC_14_NTAKEN, > + R_PPC_REL24, /* R_PPC_BRANCH = 10 */ > + R_PPC_REL14, > + R_PPC_REL14_TAKEN, > + R_PPC_REL14_NTAKEN, > + R_PPC_GOT16, > + R_PPC_GOT16_LO, > + R_PPC_GOT16_HI, > + R_PPC_GOT16_HA, > + R_PPC_PLT24, > + R_PPC_COPY, > + R_PPC_GLOB_DAT, > + R_PPC_JMP_SLOT, > + R_PPC_RELATIVE, > + R_PPC_LOCAL24PC, > + R_PPC_U32, > + R_PPC_U16, > + R_PPC_REL32, > + R_PPC_PLT32, > + R_PPC_PLTREL32, > + R_PPC_PLT16_LO, > + R_PPC_PLT16_HI, > + R_PPC_PLT16_HA, > /* ABI defines this as 32nd entry, but we ignore this, at least for now > */ > - RELOC_SDAREL, > + R_PPC_SDAREL, > > - RELOC_TLSC = 67, > - RELOC_DTPMOD32, > - RELOC_TPREL16, > - RELOC_TPREL16_LO, > - RELOC_TPREL16_HI, > - RELOC_TPREL16_HA, > - RELOC_TPREL32, > - RELOC_DTPREL16, > - RELOC_DTPREL16_LO, > - RELOC_DTPREL16_HI, > - RELOC_DTPREL16_HA, > - RELOC_DTPREL32, > - RELOC_MAX > + R_PPC_TLSC = 67, > + R_PPC_DTPMOD32, > + R_PPC_TPREL16, > + R_PPC_TPREL16_LO, > + R_PPC_TPREL16_HI, > + R_PPC_TPREL16_HA, > + R_PPC_TPREL32, > + R_PPC_DTPREL16, > + R_PPC_DTPREL16_LO, > + R_PPC_DTPREL16_HI, > + R_PPC_DTPREL16_HA, > + R_PPC_DTPREL32, > + R_PPC_MAX > }; > + > +#define R_TYPE(X) __CONCAT(R_PPC_,X) > > #endif /* _POWERPC_RELOC_H_ */ > Index: sys/arch/sparc64/include/reloc.h > =================================================================== > RCS file: /cvs/src/sys/arch/sparc64/include/reloc.h,v > retrieving revision 1.5 > diff -u -p -r1.5 reloc.h > --- sys/arch/sparc64/include/reloc.h 23 Mar 2011 16:54:37 -0000 1.5 > +++ sys/arch/sparc64/include/reloc.h 9 Jan 2022 22:03:28 -0000 > @@ -18,19 +18,21 @@ > #ifndef _MACHINE_RELOC_H_ > #define _MACHINE_RELOC_H_ > > -#define RELOC_NONE 0 > +#define R_SPARC_NONE 0 > > -#define RELOC_COPY 19 > -#define RELOC_GLOB_DAT 20 > -#define RELOC_JMP_SLOT 21 > -#define RELOC_RELATIVE 22 > -#define RELOC_64 32 > -#define RELOC_UA64 54 > -#define RELOC_TLS_DTPMOD32 74 > -#define RELOC_TLS_DTPMOD64 75 > -#define RELOC_TLS_DTPOFF32 76 > -#define RELOC_TLS_DTPOFF64 77 > -#define RELOC_TLS_TPOFF32 78 > -#define RELOC_TLS_TPOFF64 79 > +#define R_SPARC_COPY 19 > +#define R_SPARC_GLOB_DAT 20 > +#define R_SPARC_JMP_SLOT 21 > +#define R_SPARC_RELATIVE 22 > +#define R_SPARC_64 32 > +#define R_SPARC_UA64 54 > +#define R_SPARC_TLS_DTPMOD32 74 > +#define R_SPARC_TLS_DTPMOD64 75 > +#define R_SPARC_TLS_DTPOFF32 76 > +#define R_SPARC_TLS_DTPOFF64 77 > +#define R_SPARC_TLS_TPOFF32 78 > +#define R_SPARC_TLS_TPOFF64 79 > + > +#define R_TYPE(X) __CONCAT(R_SPARC_,X) > > #endif /* _MACHINE_RELOC_H_ */ > >