tech-pkg archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Make libffi buildable on alpha



While trying to run hg on NetBSD/alpha I stumbled into this problem: libffi
has got the C99 "complex" type added, but apparently the alpha asm glue
never has been updated.

This is caught by internal #ifdef/#error checks, so it fails to build.

The patch below makes it compile again (and at least work as well as it did
before). Any volunteers to add full support welcome ;-)

OK to commit?

Martin
$NetBSD$

Band-aid update of the alpha asm code to make it compile past the addition
of type complex. Someone with clue on the alpha ELF ABI should provide
real support for complex arguments.

--- src/alpha/osf.S.orig	2014-11-08 13:47:24.000000000 +0100
+++ src/alpha/osf.S	2014-12-26 13:02:32.000000000 +0100
@@ -279,6 +279,7 @@ $load_table:
 	.gprel32 $load_64	# FFI_TYPE_SINT64
 	.gprel32 $load_none	# FFI_TYPE_STRUCT
 	.gprel32 $load_64	# FFI_TYPE_POINTER
+	.gprel32 $load_none	# FFI_TYPE_COMPLEX
 
 /* Assert that the table above is in sync with ffi.h.  */
 
@@ -294,7 +295,8 @@ $load_table:
 	|| FFI_TYPE_SINT64 != 12	\
 	|| FFI_TYPE_STRUCT != 13	\
 	|| FFI_TYPE_POINTER != 14	\
-	|| FFI_TYPE_LAST != 14
+	|| FFI_TYPE_COMPLEX != 15	\
+	|| FFI_TYPE_LAST != 15
 #error "osf.S out of sync with ffi.h"
 #endif
 


Home | Main Index | Thread Index | Old Index