[GHC] #13696: rts/linker/ElfTypes.h does not compile on most of UNREG arches (and some registerised arches)
GHC
ghc-devs at haskell.org
Sun May 14 08:55:18 UTC 2017
#13696: rts/linker/ElfTypes.h does not compile on most of UNREG arches (and some
registerised arches)
-------------------------------------+-------------------------------------
Reporter: slyfox | Owner: (none)
Type: bug | Status: new
Priority: normal | Milestone:
Component: Compiler | Version: 8.0.1
Keywords: | Operating System: Unknown/Multiple
Architecture: | Type of failure: None/Unknown
Unknown/Multiple |
Test Case: | Blocked By:
Blocking: | Related Tickets:
Differential Rev(s): | Wiki Page:
-------------------------------------+-------------------------------------
Builds fail as:
{{{
rts_dist_HC rts/dist/build/RtsStartup.o
rts/linker/ElfTypes.h:23:4: error:
error: #error "Unsupported arch!"
}}}
The code that fails in '''rts/linker/ElfTypes.h''':
{{{#!c
# define ELF_TARGET_AMD64 /* Used inside <elf.h> on Solaris 11 */
#if defined(powerpc64_HOST_ARCH) || defined(powerpc64le_HOST_ARCH) \
|| defined(ia64_HOST_ARCH) || defined(aarch64_HOST_ARCH) \
|| defined(x86_64_HOST_ARCH)
# define ELF_64BIT
#elif defined(sparc_HOST_ARCH) || defined(i386_HOST_ARCH) \
|| defined(arm_HOST_ARCH)
# define ELF_32BIT
#else
# error "Unsupported arch!"
#endif
}}}
Note it's a whitelist of architectures. It fails at least on
'''powerpc''' (arm_HOST_ARCH), '''hppa'' (hppa_HOST_ARCH), '''m68k'''
(m68k_HOST_ARCH). '''mips''', '''mips64''', '''alpha''', '''s390x''',
'''sparc64'''.
It does not look like keeping a whitelist is scalable here.
How about using
{{{#!c
#if defined(__LP64__) || defined (_LP64)
}}}
as a proxy for ELF64 and maintain a list of arches that are exception
instead?
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/13696>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list