Pavel Pisa commented: https://gitlab.rtems.org/rtems/rtos/rtems/-/issues/5144#note_114603 I have tried to add RISCV into libdl build, see patch [libdl-riscv.diff](/uploads/63d605e3d813fb1adff20b2452c544fd/libdl-riscv.diff), but there are more warnings ``` ../../../../../git/rtems/cpukit/libdl/rtl-mdreloc-riscv.c: In function 'rtems_rtl_elf_reloc_rela': ../../../../../git/rtems/cpukit/libdl/rtl-mdreloc-riscv.c:169:9: warning: assignment to 'Elf64_Word *' {aka 'unsigned int *'} from incompatible pointer type 'Elf64_Addr *' {aka 'long unsigned int *'} [-Wincompatible-pointer-types] 169 | where = (Elf_Addr *)(sect->base + rela->r_offset); | ^ ../../../../../git/rtems/cpukit/libdl/rtl-mdreloc-riscv.c:172:36: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] 172 | Elf_Word pcrel_val = symvalue - ((Elf_Word) where); | ^ ../../../../../git/rtems/cpukit/libdl/rtl-mdreloc-riscv.c:307:15: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] 307 | (void *) * (where), where, rtems_rtl_obj_oname (obj)); | ^ ../../../../../git/rtems/cpukit/libdl/rtl-mdreloc-riscv.c:374:61: warning: format '%ld' expects argument of type 'long int', but argument 4 has type 'unsigned int' [-Wformat=] 374 | "%s: Unsupported relocation type %ld " | ~~^ | | | long int | %d ../../../../../git/rtems/cpukit/libdl/rtl-mdreloc-riscv.c:166:12: warning: variable 'local' set but not used [-Wunused-but-set-variable] 166 | Elf_Word local = 0; | ^~~~~ ../../../../../git/rtems/cpukit/libdl/rtl-mdreloc-riscv.c:165:12: warning: unused variable 'addend' [-Wunused-variable] 165 | Elf_Word addend = (Elf_Word) rela->r_addend; | ^~~~~~ ../../../../../git/rtems/cpukit/libdl/rtl-mdreloc-riscv.c:164:13: warning: unused variable 'tmp' [-Wunused-variable] 164 | Elf_Word tmp; | ^~~ ``` I try to analyze what is right, but it would need real testing to be sure that there is not something missed. I am curious even about `libdl` for x86_64, because that architecture is missing in `cpukit/libdl/rtl-elf.h` to select 64-bit `ELFSIZE` ``` #if defined(__powerpc64__) || defined(__aarch64__) || (__riscv_xlen == 64) #define ELFSIZE 64 #else #define ELFSIZE 32 #endif ``` -- View it on GitLab: https://gitlab.rtems.org/rtems/rtos/rtems/-/issues/5144#note_114603 You're receiving this email because of your account on gitlab.rtems.org.
_______________________________________________ bugs mailing list [email protected] http://lists.rtems.org/mailman/listinfo/bugs
