diff options
author | Ben Gamari <ben@smart-cactus.org> | 2021-12-23 11:53:25 -0500 |
---|---|---|
committer | Marge Bot <ben+marge-bot@smart-cactus.org> | 2022-01-11 19:39:32 -0500 |
commit | 247cd336af9b9367697e0b5a7a82c5227f986a97 (patch) | |
tree | 1f0c9f0331b90e526172fe25c860f67ed7b592de /rts/RtsSymbols.c | |
parent | 6737c8e1ed67a2ec3f1fa3e91cb279f689d3da6f (diff) | |
download | haskell-247cd336af9b9367697e0b5a7a82c5227f986a97.tar.gz |
rts: Only declare environ when necessary
Previously we would unconditionally provide a declaration for `environ`,
even if `<unistd.h>` already provided one. This would result in
`-Werror` builds failing on some platforms.
Also `#include <unistd.h>` to ensure that the declaration is visible.
Fixes #20861.
Diffstat (limited to 'rts/RtsSymbols.c')
-rw-r--r-- | rts/RtsSymbols.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/rts/RtsSymbols.c b/rts/RtsSymbols.c index 7d7b8422c2..f76573e3ae 100644 --- a/rts/RtsSymbols.c +++ b/rts/RtsSymbols.c @@ -34,10 +34,17 @@ #include <elf.h> /* _DYNAMIC */ #endif +#if defined(HAVE_UNISTD_H) +#include <unistd.h> /* environ */ +#endif + +#if !HAVE_DECL_ENVIRON /* We must provide a prototype for environ since depending upon the libc - * version it may or may not be provided by unistd.h. See #20577. + * version it may or may not be provided by unistd.h. See #20577 and #20861. */ extern char **environ; +#endif + /* ----------------------------------------------------------------------------- * Symbols to be inserted into the RTS symbol table. |