Date: Sun, 2 Jun 2019 13:25:48 -0700 From: Mark Millard <marklmi@yahoo.com> To: FreeBSD PowerPC ML <freebsd-ppc@freebsd.org> Subject: 32-bit powerpc and powerpc64 kernel relocation types when built via system-clang-8 and devel/powerpc64-binutils: a few R_PPC*_ADDR32 mixed in with the R_PPC*_RELATIVE Message-ID: <51FF912A-46FD-49D7-A981-9370FFD0CE75@yahoo.com>
next in thread | raw e-mail | index | archive | help
I'm not sure if getting a few R_PPC_ADDR32/R_PPC64_ADDR64 in the kernel is expected or not. This was a amd64 -> powerpc cross build from/for: # uname -apKU FreeBSD FBSDFSSD 13.0-CURRENT FreeBSD 13.0-CURRENT #20 r347549M: Fri May = 31 17:00:45 PDT 2019 = markmi@FBSDFSSD:/usr/obj/amd64_clang/amd64.amd64/usr/src/amd64.amd64/sys/G= ENERIC-NODBG amd64 amd64 1300025 1300025 system clang was used for the build but devel/powerpc64-binutils was = used. # readelf -asW = /usr/obj/DESTDIRs/clang-powerpc-installkernel_altbinutils/boot/kernel/kern= el | grep -v R_PPC_RELATIVE | less . . . Relocation section with addend (.rela.dyn): r_offset r_info r_type st_value st_name + r_addend 00da1744 00275101 R_PPC_ADDR32 00000000 uart_quicc_class + 0 Relocation section with addend (.rela.text): r_offset r_info r_type st_value st_name + r_addend Relocation section with addend (.rela.data): r_offset r_info r_type st_value st_name + r_addend Relocation section with addend (.rela.got): r_offset r_info r_type st_value st_name + r_addend Relocation section with addend (.rela.got2): r_offset r_info r_type st_value st_name + r_addend 00e646d0 00117401 R_PPC_ADDR32 00000000 mfs_root_end + 0 00e646d4 002d7c01 R_PPC_ADDR32 00000000 mfs_root + 0 00e67c94 002b3a01 R_PPC_ADDR32 00000000 = __stop_set_uart_fdt_class_set + 0 00e67c98 00210301 R_PPC_ADDR32 00000000 = __start_set_uart_fdt_class_set + 0 . . . # readelf -asW = /usr/obj/DESTDIRs/clang-powerpc64-installkernel_altbinutils/boot/kernel/ke= rnel | grep -v R_PPC64_RELATIVE | less . . . Relocation section with addend (.rela.dyn): r_offset r_info r_type st_value = st_name + r_addend 000000000130c360 00002d2800000026 R_PPC64_ADDR64 = 0000000000000000 uart_quicc_class + 0 0000000001362008 0000143600000026 R_PPC64_ADDR64 = 0000000000000000 mfs_root_end + 0 0000000001362010 0000343300000026 R_PPC64_ADDR64 = 0000000000000000 mfs_root + 0 0000000001362018 000031a000000026 R_PPC64_ADDR64 = 0000000000000000 __stop_set_uart_fdt_class_set + 0 0000000001362020 000025fd00000026 R_PPC64_ADDR64 = 0000000000000000 __start_set_uart_fdt_class_set + 0 Relocation section with addend (.rela.text): r_offset r_info r_type st_value = st_name + r_addend Relocation section with addend (.rela.data): r_offset r_info r_type st_value = st_name + r_addend . . . So it is always: uart_quicc_class mfs_root_end mfs_root __stop_set_uart_fdt_class_set __start_set_uart_fdt_class_set but the .rela.got2 vs. .rela.dyn status varies for all but uart_quicc_class in my context. =3D=3D=3D Mark Millard marklmi at yahoo.com ( dsl-only.net went away in early 2018-Mar)
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?51FF912A-46FD-49D7-A981-9370FFD0CE75>