On 28/1/24 20:27, Rob Landley wrote:
Now that we can build coldfire fdpic support in the kernel, does a _compiler_ exist?
No, no fdopic support has been added to bgcc for m68k/coldfire.
https://lore.kernel.org/linux-mm/20220428033319.239341-1-gerg@xxxxxxxxxxxxxx/T/ I built buildroot's mcf5208evb defconfig and booted it under qemu, but it's binflt, which I'm not adding to my test system's package dependencies. According to fs/Kconfig.binfmt: config BINFMT_ELF_FDPIC bool "Kernel support for FDPIC ELF binaries" default y if !BINFMT_ELF depends on ARM || ((M68K || RISCV || SUPERH || XTENSA) && !MMU) So I can select it, but in gcc's current git "grep -irl fdpic gcc/config" only has hits in the sh, arm, frv, and bfin directories.
As-is today you can load and run PIE ELF binaries using this support. No additional changes to binutils or gcc required for that. Regards Greg
Two of those three (frv and blackfin) were jettisoned by linux-kernel due to loss of expertise in the development community. I've already got an sh2 fdpic test system, but only on real hardware, not qemu (which decided to add qemu-system-sh4 instead of qemu-system-sh way back when, and thus never populated the rest of the family). I'm happy to use out-of-tree patches for m68k if that's what's available, but I haven't been able to find any. I assume that enabling fdpic means the ABI was documented specifying the registers for the extra segments...? Rob