LearnOS
LearnOS copied to clipboard
loader.elf seems to output as "executable" and ld refuses to link it
I'm not sure if this is just because of changes in the new versions, but i'm getting the following:
ld: cannot use executable file 'debug/elf/loader.elf' as input to a link
If I run file on it it says:
debug/elf/loader.elf: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), statically linked, with debug_info, not stripped
Looks like starting from ld version 2.36.1 you need to pass the -r flag to make it output a relocatable object.
- wsl ld -m elf_i386 -nostdlib -T ld/loader.ld debug/obj/*.o -o debug/elf/loader.elf
+ wsl ld -r -m elf_i386 -nostdlib -T ld/loader.ld debug/obj/*.o -o debug/elf/loader.elf
https://stackoverflow.com/questions/68622938/new-versions-of-ld-cannot-take-elf-files-as-input-to-link