cpukit/libdl: Resolve size mismatch warnings

Resolve warnings about mismatched pointer and integer sizes in AArch64
libdl when building with the ILP32 ABI.
This commit is contained in:
Kinsey Moore
2023-04-04 16:22:13 -05:00
committed by Joel Sherrill
parent 675a741023
commit 05dd54d11c
3 changed files with 20 additions and 19 deletions

View File

@@ -192,7 +192,7 @@ rtems_rtl_elf_find_symbol (rtems_rtl_obj* obj,
if (!*symbol) if (!*symbol)
return false; return false;
*value = (Elf_Addr) (*symbol)->value; *value = (Elf_Addr)(uintptr_t) (*symbol)->value;
return true; return true;
} }
@@ -202,7 +202,7 @@ rtems_rtl_elf_find_symbol (rtems_rtl_obj* obj,
if (!sect) if (!sect)
return false; return false;
*value = sym->st_value + (Elf_Addr) sect->base; *value = sym->st_value + (Elf_Addr)(uintptr_t) sect->base;
return true; return true;
} }

View File

@@ -107,7 +107,7 @@ checkoverflow(Elf_Addr addr, int bitwidth, Elf_Addr targetaddr,
const Elf_Addr mask = ~__BITS(bitwidth - 1, 0); const Elf_Addr mask = ~__BITS(bitwidth - 1, 0);
if (((addr & mask) != 0) && ((addr & mask) != mask)) { if (((addr & mask) != 0) && ((addr & mask) != mask)) {
printf("kobj_reloc: Relocation 0x%jx too far from %p" printf("kobj_reloc: Relocation 0x%" PRIxPTR " too far from %p"
" (base+0x%jx) for %dbit%s\n", " (base+0x%jx) for %dbit%s\n",
(uintptr_t)targetaddr, where, off, bitwidth, bitscale); (uintptr_t)targetaddr, where, off, bitwidth, bitscale);
return true; return true;
@@ -120,7 +120,7 @@ static inline bool
checkalign(Elf_Addr addr, int alignbyte, void *where, Elf64_Addr off) checkalign(Elf_Addr addr, int alignbyte, void *where, Elf64_Addr off)
{ {
if ((addr & (alignbyte - 1)) != 0) { if ((addr & (alignbyte - 1)) != 0) {
printf("kobj_reloc: Relocation 0x%jx unaligned at %p" printf("kobj_reloc: Relocation 0x%" PRIxPTR " unaligned at %p"
" (base+0x%jx). must be aligned %d\n", " (base+0x%jx). must be aligned %d\n",
(uintptr_t)addr, where, off, alignbyte); (uintptr_t)addr, where, off, alignbyte);
return true; return true;
@@ -257,7 +257,7 @@ rtems_rtl_elf_reloc_rela (rtems_rtl_obj* obj,
if (rtems_rtl_trace (RTEMS_RTL_TRACE_RELOC)) if (rtems_rtl_trace (RTEMS_RTL_TRACE_RELOC))
printf ("rtl: reloc 64/GLOB_DAT in %s --> %p in %s\n", printf ("rtl: reloc 64/GLOB_DAT in %s --> %p in %s\n",
sect->name, (void *)*where, sect->name, (void *)(uintptr_t)*where,
rtems_rtl_obj_oname (obj)); rtems_rtl_obj_oname (obj));
} }
break; break;
@@ -270,10 +270,10 @@ rtems_rtl_elf_reloc_rela (rtems_rtl_obj* obj,
*/ */
case R_TYPE(RELATIVE): /* Delta(S) + A */ case R_TYPE(RELATIVE): /* Delta(S) + A */
if (!parsing) { if (!parsing) {
*where = (Elf_Addr)(sect->base + rela->r_addend); *where = (Elf_Addr)(uintptr_t)(sect->base + rela->r_addend);
if (rtems_rtl_trace (RTEMS_RTL_TRACE_RELOC)) if (rtems_rtl_trace (RTEMS_RTL_TRACE_RELOC))
printf ("rtl: reloc RELATIVE in %s --> %p in %s\n", printf ("rtl: reloc RELATIVE in %s --> %p in %s\n",
sect->name, (void *)*where, sect->name, (void *)(uintptr_t)*where,
rtems_rtl_obj_oname (obj)); rtems_rtl_obj_oname (obj));
} }
break; break;
@@ -304,7 +304,7 @@ rtems_rtl_elf_reloc_rela (rtems_rtl_obj* obj,
shift = 12; shift = 12;
break; break;
default: default:
printf("illegal rtype: %ld\n", ELF_R_TYPE(rela->r_info)); printf("illegal rtype: %" PRIu64 "\n", ELF_R_TYPE(rela->r_info));
break; break;
} }
@@ -344,7 +344,7 @@ rtems_rtl_elf_reloc_rela (rtems_rtl_obj* obj,
shift = 3; shift = 3;
break; break;
default: default:
printf("illegal rtype: %ld\n", ELF_R_TYPE(rela->r_info)); printf("illegal rtype: %" PRIu64 "\n", ELF_R_TYPE(rela->r_info));
break; break;
} }
@@ -360,9 +360,9 @@ rtems_rtl_elf_reloc_rela (rtems_rtl_obj* obj,
target = (Elf_Addr)symvalue + rela->r_addend; target = (Elf_Addr)symvalue + rela->r_addend;
if (checkalign(target, 1 << shift, where, off)) { if (checkalign(target, 1 << shift, where, off)) {
printf ("rtl: reloc checkalign failed in %s --> %p in %s\n", printf ("rtl: reloc checkalign failed in %s --> %p in %s\n",
sect->name, (void *)*where, sect->name, (void *)(uintptr_t)*where,
rtems_rtl_obj_oname (obj)); rtems_rtl_obj_oname (obj));
printf("ELF_R_TYPE is : %ld\n", ELF_R_TYPE(rela->r_info)); printf("ELF_R_TYPE is : %" PRIu64 "\n", ELF_R_TYPE(rela->r_info));
break; break;
} }
target &= WIDTHMASK(12); target &= WIDTHMASK(12);
@@ -433,7 +433,7 @@ rtems_rtl_elf_reloc_rela (rtems_rtl_obj* obj,
return rtems_rtl_elf_rel_failure; return rtems_rtl_elf_rel_failure;
} }
tramp_addr = ((Elf_Addr) obj->tramp_brk) | (symvalue & 1); tramp_addr = ((Elf_Addr)(uintptr_t)obj->tramp_brk) | (symvalue & 1);
obj->tramp_brk = set_veneer(obj->tramp_brk, symvalue); obj->tramp_brk = set_veneer(obj->tramp_brk, symvalue);
target = tramp_addr + rela->r_addend - (uintptr_t)where; target = tramp_addr + rela->r_addend - (uintptr_t)where;
@@ -468,29 +468,30 @@ rtems_rtl_elf_reloc_rela (rtems_rtl_obj* obj,
case R_TYPE(TLSDESC): case R_TYPE(TLSDESC):
printf ("rtl: reloc TLSDESC in %s --> %p in %s\n", printf ("rtl: reloc TLSDESC in %s --> %p in %s\n",
sect->name, (void *)*where, sect->name, (void *)(uintptr_t)*where,
rtems_rtl_obj_oname (obj)); rtems_rtl_obj_oname (obj));
break; break;
case R_TLS_TYPE(TLS_DTPREL): case R_TLS_TYPE(TLS_DTPREL):
printf ("rtl: reloc TLS_DTPREL in %s --> %p in %s\n", printf ("rtl: reloc TLS_DTPREL in %s --> %p in %s\n",
sect->name, (void *)*where, sect->name, (void *)(uintptr_t)*where,
rtems_rtl_obj_oname (obj)); rtems_rtl_obj_oname (obj));
break; break;
case R_TLS_TYPE(TLS_DTPMOD): case R_TLS_TYPE(TLS_DTPMOD):
printf ("rtl: reloc TLS_DTPMOD in %s --> %p in %s\n", printf ("rtl: reloc TLS_DTPMOD in %s --> %p in %s\n",
sect->name, (void *)*where, sect->name, (void *)(uintptr_t)*where,
rtems_rtl_obj_oname (obj)); rtems_rtl_obj_oname (obj));
break; break;
case R_TLS_TYPE(TLS_TPREL): case R_TLS_TYPE(TLS_TPREL):
printf ("rtl: reloc TLS_TPREL in %s --> %p in %s\n", printf ("rtl: reloc TLS_TPREL in %s --> %p in %s\n",
sect->name, (void *)*where, sect->name, (void *)(uintptr_t)*where,
rtems_rtl_obj_oname (obj)); rtems_rtl_obj_oname (obj));
break; break;
default: default:
printf ("rtl: Unsupported relocation type (%ld) in %s --> %p in %s\n", printf ("rtl: Unsupported relocation type (%" PRIu64
") in %s --> %p in %s\n",
ELF_R_TYPE(rela->r_info), sect->name, (void *)where, ELF_R_TYPE(rela->r_info), sect->name, (void *)where,
rtems_rtl_obj_oname (obj)); rtems_rtl_obj_oname (obj));
return rtems_rtl_elf_rel_failure; return rtems_rtl_elf_rel_failure;

View File

@@ -350,7 +350,7 @@ rtems_rtl_rap_relocate (rtems_rtl_rap* rap, rtems_rtl_obj* obj)
return false; return false;
} }
symvalue = (Elf_Addr) symsect->base + addend; symvalue = (Elf_Addr)(uintptr_t) symsect->base + addend;
} }
else if (rtems_rtl_elf_rel_resolve_sym (type)) else if (rtems_rtl_elf_rel_resolve_sym (type))
{ {
@@ -390,7 +390,7 @@ rtems_rtl_rap_relocate (rtems_rtl_rap* rap, rtems_rtl_obj* obj)
return false; return false;
} }
symvalue = (Elf_Addr) symbol->value; symvalue = (Elf_Addr)(uintptr_t) symbol->value;
} }
if (is_rela) if (is_rela)