diff options
author | Sergei Trofimovich <slyfox@gentoo.org> | 2018-12-18 23:17:45 +0000 |
---|---|---|
committer | Ben Gamari <ben@well-typed.com> | 2018-12-29 11:20:49 -0500 |
commit | 1638350f0629365f20e97554e872d85b75f48d73 (patch) | |
tree | da47cfcd274f26fdae84f6ffd825eb82d6b0e812 | |
parent | 9bce364125b55407e632d9a2061d09c6f346fa71 (diff) | |
download | haskell-1638350f0629365f20e97554e872d85b75f48d73.tar.gz |
rts: fix build failure on OpenBSD (_DYNAMIC symbol collision)
Summary:
Build failure on OpenBSD-6.4 the the following:
```
rts/RtsSymbols.c:994:1: error:
error: redefinition of '_DYNAMIC' as different kind of symbol
|
994 | RTS_OPENBSD_ONLY_SYMBOLS
| ^
RTS_OPENBSD_ONLY_SYMBOLS
^
```
On OpenBSD `_DYNAMIC` was always defined in `<elf.h>` headers
but used not to be included.
The change explicitly includes `<elf.h>` as a source of symbol definition.
Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
Test Plan: build-tested on OpenBSD-6.4
Reviewers: bgamari, erikd, simonmar
Subscribers: rwbarton, carter
GHC Trac Issues: #15945
Differential Revision: https://phabricator.haskell.org/D5461
-rw-r--r-- | rts/RtsSymbols.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/rts/RtsSymbols.c b/rts/RtsSymbols.c index 5091c90dad..123ee76778 100644 --- a/rts/RtsSymbols.c +++ b/rts/RtsSymbols.c @@ -27,6 +27,10 @@ #include <shfolder.h> /* SHGetFolderPathW */ #endif +#if defined(openbsd_HOST_OS) +#include <elf.h> /* _DYNAMIC */ +#endif + /* ----------------------------------------------------------------------------- * Symbols to be inserted into the RTS symbol table. */ @@ -280,7 +284,7 @@ #if defined(openbsd_HOST_OS) #define RTS_OPENBSD_ONLY_SYMBOLS \ SymE_NeedsProto(__guard_local) \ - SymE_NeedsProto(_DYNAMIC) + SymE_HasProto(_DYNAMIC) #else #define RTS_OPENBSD_ONLY_SYMBOLS #endif |