Hi! Sorry, i apply additional information to previous bug report. Bug is the same.
I took "Hello World!" assembler example from here: http://cs.lmu.edu/~ray/notes/gasexamples/ I try to assemble it, but i receive error. "gcc -c hello.s" works successful. "ld hello.o" gives error: ld: hello.o: relocation R_X86_64_32S against `a local symbol' can not be used when making a shared object; recompile with -fPIC hello.o: could not read symbols: Bad value I attached "hello.s" file to e-mail. OpenBSD version: 6.3 amd64. "gcc -c -fPIC hello.s" does not help. "dmesg.boot"'s are attached.
#
----------------------------------------------------------------------------------------
# Writes "Hello, World" to the console using only system calls. Runs on 64-bit
Linux only.
# To assemble and run:
#
# gcc -c hello.s && ld hello.o && ./a.out
#
# or
#
# gcc -nostdlib hello.s && ./a.out
#
----------------------------------------------------------------------------------------
.global _start1
.section .text
_start1:
# write(1, message, 13)
mov $1, %rax # system call 1 is write
mov $1, %rdi # file handle 1 is stdout
mov $message, %rsi # address of string to output
mov $13, %rdx # number of bytes
syscall # invoke operating system to do the
write
# exit(0)
mov $60, %rax # system call 60 is exit
xor %rdi, %rdi # we want return code 0
syscall # invoke operating system to exit
message:
.ascii "Hello, world\n"
dmesg.boot
Description: Binary data
dmesg
Description: Binary data
