The implementation of AMD64 relocations was imcomplete and wrong. On AMD64, we of course have to use AMD64 relocations instead of i386 ones. This patch fixes the issue. LLD is now able to link hello64.obj (created from hello64.asm) against user32.lib and kernel32.lib to create a Win64 binary. llvm-svn: 216253
23 lines
383 B
NASM
23 lines
383 B
NASM
;; ml hello64.asm /link /subsystem:windows /defaultlib:kernel32 \
|
|
;; /defaultlib:user32 /out:hello64.exe /entry:main
|
|
|
|
extern ExitProcess : PROC
|
|
extern MessageBoxA : PROC
|
|
|
|
.data
|
|
caption db 'Hello', 0
|
|
message db 'Hello World', 0
|
|
|
|
.code
|
|
main PROC
|
|
sub rsp,28h
|
|
mov rcx, 0
|
|
lea rdx, message
|
|
lea r8, caption
|
|
mov r9d, 0
|
|
call MessageBoxA
|
|
mov ecx, 0
|
|
call ExitProcess
|
|
main ENDP
|
|
END
|