diff options
author | Sergei Trofimovich <slyfox@gentoo.org> | 2015-12-04 22:07:13 +0000 |
---|---|---|
committer | Sergei Trofimovich <siarheit@google.com> | 2015-12-04 22:07:13 +0000 |
commit | e2c518e6a751b7a16c704198a14dcc688b020038 (patch) | |
tree | 40608eb35b10b3da1da88ac2bf6055d6abf9aaa4 /rts/Libdw.c | |
parent | c865c425a37b0bc52f4dead9d70eb0ee2bc287d6 (diff) | |
download | haskell-e2c518e6a751b7a16c704198a14dcc688b020038.tar.gz |
libdw: enable support only on i386 and amd64
Summary:
Currently libdw requires per-arch implementation of
set_initial_registers() function.
Otherwise build fails with linkage error
(seen on sparc):
rts/dist/build/libHSrts_thr-ghc7.11.20151129.so:
undefined reference to `set_initial_registers'
collect2: error: ld returned 1 exit status
`gcc' failed in phase `Linker'. (Exit code: 1)
make[1]: *** [ghc/stage2/build/tmp/ghc-stage2] Error 1
Converted link-time error to compile-time error,
added arch whitelist.
Signed-off-by: Sergei Trofimovich <siarheit@google.com>
Reviewers: austin, thomie, bgamari
Reviewed By: bgamari
Differential Revision: https://phabricator.haskell.org/D1567
Diffstat (limited to 'rts/Libdw.c')
-rw-r--r-- | rts/Libdw.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/rts/Libdw.c b/rts/Libdw.c index 1ef51b2444..8c3c58156a 100644 --- a/rts/Libdw.c +++ b/rts/Libdw.c @@ -299,8 +299,7 @@ static bool set_initial_registers(Dwfl_Thread *thread, ); return dwfl_thread_state_registers(thread, 0, 17, regs); } -#endif -#ifdef i386_HOST_ARCH +#elif defined(i386_HOST_ARCH) static bool set_initial_registers(Dwfl_Thread *thread, void *arg STG_UNUSED) { Dwarf_Word regs[9]; @@ -321,6 +320,8 @@ static bool set_initial_registers(Dwfl_Thread *thread, ); return dwfl_thread_state_registers(thread, 0, 9, regs); } +#else +# error "Please implement set_initial_registers() for your arch" #endif static const Dwfl_Thread_Callbacks thread_cbs = { |