LearnOS icon indicating copy to clipboard operation
LearnOS copied to clipboard

loader.elf seems to output as "executable" and ld refuses to link it

Open robindegen opened this issue 2 years ago • 1 comments

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

robindegen avatar Apr 16 '22 18:04 robindegen

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

robindegen avatar Apr 16 '22 20:04 robindegen