Я хотел бы скомпилировать «Hello World» в подсистеме Windows для Linux (WLS) с Debian.
.text
.global _start
_start:
movl $len,%edx
movl $msg,%ecx
movl $1,%ebx
movl $4,%eax
int $0x80
movl $0,%ebx
movl $1,%eax
int $0x80
.data
msg:
.ascii "Hello, world!\n"
len = . - msg
Если я скомпилирую на сервере Debian с
gcc -nostdlib -o hello hello.s
Itработает, но в WLS возвращается ошибка
/usr/bin/ld: /tmp/cciVVddg.o: relocation R_X86_64_32 against `.data' can not be used when making a shared object; recompile with -fPIC
/usr/bin/ld: final link failed: Nonrepresentable section on output collect2: error: ld returned 1 exit status
Я тоже пробовал
gcc -fPIC -nostdlib -o hello hello.s