public inbox for gcc-cvs@sourceware.org
help / color / mirror / Atom feed
* [gcc r12-5262] libffi: Use #define instead of .macro in src/x86/win64.S [PR102874]
@ 2021-11-15 9:30 Rainer Orth
0 siblings, 0 replies; only message in thread
From: Rainer Orth @ 2021-11-15 9:30 UTC (permalink / raw)
To: gcc-cvs
https://gcc.gnu.org/g:a91f844ef449d0dd1cf2e0e47b0ade0d8a6304e1
commit r12-5262-ga91f844ef449d0dd1cf2e0e47b0ade0d8a6304e1
Author: Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
Date: Mon Nov 15 10:24:27 2021 +0100
libffi: Use #define instead of .macro in src/x86/win64.S [PR102874]
The libffi 3.4.2 import badly broke Solaris/x86 bootstrap with the native
assembler:
Assembler:
"/vol/gcc/src/hg/master/local/libffi/src/x86/win64.S", line 88 :
Illegal mnemonic
Near line: ".macro epilogue"
"/vol/gcc/src/hg/master/local/libffi/src/x86/win64.S", line 88 : Syntax
error
Near line: ".macro epilogue"
"/vol/gcc/src/hg/master/local/libffi/src/x86/win64.S", line 95 :
Illegal mnemonic
Near line: ".endm"
"/vol/gcc/src/hg/master/local/libffi/src/x86/win64.S", line 95 : Syntax
error
Near line: ".endm"
"/vol/gcc/src/hg/master/local/libffi/src/x86/win64.S", line 100 :
Illegal mnemonic
Near line: " epilogue"
"/vol/gcc/src/hg/master/local/libffi/src/x86/win64.S", line 100 :
Syntax error
Near line: "epilogue"
Solaris as doesn't support .macro/.endm.
Fixed by using #define instead of the unportable .macro.
Tested on i386-pc-solaris2.11 and x86_64-pc-linux-gnu.
The bug has been reported upstream
(https://github.com/libffi/libffi/issues/665); a corresponding pull
request is also pending (https://github.com/libffi/libffi/pull/669).
2021-10-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
libffi:
PR libffi/102874
* src/x86/win64.S (epilogue): Use #define instead of .macro.
Diff:
---
libffi/src/x86/win64.S | 13 ++++++-------
1 file changed, 6 insertions(+), 7 deletions(-)
diff --git a/libffi/src/x86/win64.S b/libffi/src/x86/win64.S
index f3ace8d0773..58ec6a155e3 100644
--- a/libffi/src/x86/win64.S
+++ b/libffi/src/x86/win64.S
@@ -85,14 +85,13 @@ C(ffi_call_win64):
/* Below, we're space constrained most of the time. Thus we eschew the
modern "mov, pop, ret" sequence (5 bytes) for "leave, ret" (2 bytes). */
-.macro epilogue
- leaveq
- cfi_remember_state
- cfi_def_cfa(%rsp, 8)
- cfi_restore(%rbp)
- ret
+#define epilogue \
+ leaveq; \
+ cfi_remember_state; \
+ cfi_def_cfa(%rsp, 8); \
+ cfi_restore(%rbp); \
+ ret; \
cfi_restore_state
-.endm
.align 8
0:
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2021-11-15 9:30 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-11-15 9:30 [gcc r12-5262] libffi: Use #define instead of .macro in src/x86/win64.S [PR102874] Rainer Orth
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).