Source: intelrdfpmath
Version: 2.0u4-3
Severity: normal
Tags: ftbfs patch
User: [email protected]
Usertags: alpha
intelrdfpmath FTBFS on Alpha due to missing architecture support. It
is clear that Alpha was once supported but the header files for the
Alpha suppport are missing in the source file. I could not find the
missing header files in any web archives.
The special header files were required because floating-point on
Alpha is not fully IEEE compliant without kernel support, however
the Debian gcc compiler on Alpha defaults to -mieee which adds in
all support to get IEEE compliant behaviour, so we don't actually
need the missing header files.
I therefore attach a patch that comments out the Alpha specific
header file selection stuff and adds Alpha architecture support in
the same vein as other arches have done.
With that intelrdfpmath builds to completion and the test suite
reports 3756 failed results, but that is the same number as reported
in the build logs for some of the release architectures.
Regards,
Michael.
--- a/LIBRARY/makefile.iml_head
+++ b/LIBRARY/makefile.iml_head
@@ -177,7 +177,7 @@
# returned
# ==============================================================================
-__INDICES__ = 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
+__INDICES__ = 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
GetIndex = $(strip $(word 1,$(if $(word $(words $(__INDICES__)),$2), \
$(error "List too large. Adjust __INDICES__"), \
@@ -344,9 +344,9 @@
endif
endif
-ARCH_ALIAS := x86 ia64 EM64T x86_64 i686 amd64 Intel64 sun4u arm aarch64 powerpc64le riscv64 s390x loongarch64 hppa
-ARCH_LIST := IA32 IA64 EFI2 EFI2 IA32 EFI2 EFI2 EFI2 IA32 EFI2 EFI2 EFI2 S390X EFI2 IA32
-ARCH_TYPE := IA32 IA64 EFI2 EFI2 IA32 EFI2 EFI2 EFI2 IA32 EFI2 EFI2 EFI2 S390X EFI2 IA32
+ARCH_ALIAS := x86 ia64 EM64T x86_64 i686 amd64 Intel64 sun4u arm aarch64 powerpc64le riscv64 s390x loongarch64 hppa alpha
+ARCH_LIST := IA32 IA64 EFI2 EFI2 IA32 EFI2 EFI2 EFI2 IA32 EFI2 EFI2 EFI2 S390X EFI2 IA32 EFI2
+ARCH_TYPE := IA32 IA64 EFI2 EFI2 IA32 EFI2 EFI2 EFI2 IA32 EFI2 EFI2 EFI2 S390X EFI2 IA32 EFI2
ARCH_TYPES := IA32 IA64 EFI2 S390X
UARCH_LIST := SSE GSSE LRB LRB2
--- a/LIBRARY/float128/dpml_exception.h
+++ b/LIBRARY/float128/dpml_exception.h
@@ -280,10 +280,10 @@
# if ARCHITECTURE == alpha
-# define EXCEPTION_INTERFACE_RECEIVE receive_exception_record
-# if defined MINIMAL_SILENT_MODE_EXCEPTION_HANDLER
-# define __PROCESS_DENORMS 0
-# endif
+//# define EXCEPTION_INTERFACE_RECEIVE receive_exception_record
+//# if defined MINIMAL_SILENT_MODE_EXCEPTION_HANDLER
+//# define __PROCESS_DENORMS 0
+//# endif
# if OP_SYSTEM == osf
# include "alpha_unix_exception.h"
@@ -312,10 +312,14 @@
send_arguments )
# elif OP_SYSTEM == linux
-# include "alpha_linux_exception.h"
-# define EXCEPTION_INTERFACE_SEND ( send_error_code | \
- send_return_value )
-# define PLATFORM_SPECIFIC_HEADER_FILE "alpha_linux_exception.c"
+//# include "alpha_linux_exception.h"
+//# define EXCEPTION_INTERFACE_SEND ( send_error_code | \
+// send_return_value )
+//# define PLATFORM_SPECIFIC_HEADER_FILE "alpha_linux_exception.c"
+/* Debian compiles with -mieee hence standard handling of denorms. */
+# define PROCESS_DENORMS 1
+# define DPML_EXCEPTION_HANDLER DPML_EXCEPTION_NAME
+# define EXCEPTION_ARGUMENTS( error_code ) error_code
# endif
@@ -708,6 +712,7 @@
# elif OP_SYSTEM == vms
# elif OP_SYSTEM == wnt
# elif OP_SYSTEM == linux
+ typedef void* EXCEPTION_RETURN_TYPE ;
# else
typedef void* EXCEPTION_RETURN_TYPE ;
# endif
--- a/LIBRARY/float128/dpml_private.h
+++ b/LIBRARY/float128/dpml_private.h
@@ -224,7 +224,7 @@
#elif (ARCHITECTURE == alpha)
-# include "alpha_macros.h"
+# include "ix86_macros.h"
#elif (ARCHITECTURE == ix86)