From 1638350f0629365f20e97554e872d85b75f48d73 Mon Sep 17 00:00:00 2001 From: Sergei Trofimovich Date: Tue, 18 Dec 2018 23:17:45 +0000 Subject: [PATCH] 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 `` headers but used not to be included. The change explicitly includes `` as a source of symbol definition. Signed-off-by: Sergei Trofimovich 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 --- rts/RtsSymbols.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) 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 /* SHGetFolderPathW */ #endif +#if defined(openbsd_HOST_OS) +#include /* _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 -- GitLab