> Date: Sun, 09 Jan 2022 23:54:23 +0100
> From: Leo Larnack <[email protected]>
>
> Daniel Dickman <[email protected]> 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_ */
>
>