Commit 1638350f authored by Sergei Trofimovich's avatar Sergei Trofimovich Committed by Ben Gamari

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: default avatarSergei 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
parent 9bce3641
......@@ -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
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment