This assembled and linked without problems on 5.7-release, but now when I try it on 5.8-release, I get an error:
$ as -o charset.o charset.S $ ld -Bstatic charset.o ld: charset.o: relocation R_X86_64_32S against `a local symbol' can not be used when making a shared object; recompile with -fPIC charset.o: could not read symbols: Bad value What's changed? charset.S is fairly trivial: .section ".note", "a" .p2align 2 .long 0x08 .long 0x04 .long 0x01 .ascii "OpenBSD\0" .long 0x00 .p2align 2 .section .data bytestore: .quad 0x20 welcome: .ascii "Characterset generator by Tati Chevron, 27/4/2015." .byte 0x0A newline: .quad 0x0A .section .text .globl _start _start: mov $welcome, %rsi mov $1, %rdi mov $4, %rax mov $53, %rdx syscall _loop: push bytestore pop %rax cmp $0xFF, %rax jz _exit cmp $0x80, %rax jnz _skip call _nl push bytestore pop %rax _skip: inc %rax mov %rax, bytestore mov $4, %rax mov $1, %rdi mov $bytestore, %rsi mov $1, %rdx syscall jmp _loop _exit: call _nl mov $1, %rdi mov $1, %rax syscall _nl: mov $4, %rax mov $1, %rdi mov $newline, %rsi mov $1, %rdx syscall ret -- Tati Chevron Perl and FORTRAN specialist. SWABSIT development and migration department. http://www.swabsit.com
