Marge Bot pushed to branch master at Glasgow Haskell Compiler / GHC
Commits:
-
ef705655
by Cheng Shao at 2025-09-19T18:27:41-04:00
5 changed files:
Changes:
| 1 | -# FP_VISIBILITY_HIDDEN
|
|
| 2 | -# ----------------------------------
|
|
| 3 | -# Is the visibility hidden attribute supported?
|
|
| 4 | -AC_DEFUN([FP_VISIBILITY_HIDDEN],
|
|
| 5 | -[
|
|
| 6 | - AC_MSG_CHECKING([whether __attribute__((visibility("hidden"))) is supported])
|
|
| 7 | - echo '__attribute__((visibility("hidden"))) void foo(void) {}' > conftest.c
|
|
| 8 | - if $CC -Wall -Werror -c conftest.c > /dev/null 2>&1
|
|
| 9 | - then
|
|
| 10 | - AC_MSG_RESULT([yes])
|
|
| 11 | - AC_DEFINE(HAS_VISIBILITY_HIDDEN, 1, [Has visibility hidden])
|
|
| 12 | - else
|
|
| 13 | - AC_MSG_RESULT([no])
|
|
| 14 | - fi
|
|
| 15 | - rm -f conftest.c conftest.o
|
|
| 16 | -]) |
| 1 | -/* We don't use symbol visibility pragmas on FreeBSD, because it causes
|
|
| 2 | - "undefined reference" errors at link-time. The true reasons are
|
|
| 3 | - unknown, however FreeBSD 8.x includes GCC 4.2.1 in the base system,
|
|
| 4 | - which might be buggy. */
|
|
| 5 | -/* On Windows, with gcc 4.5.0-1, using visibility hidden gives:
|
|
| 6 | - error: visibility attribute not supported in this configuration; ignored
|
|
| 7 | - */
|
|
| 8 | -#if defined(HAS_VISIBILITY_HIDDEN) && !defined(freebsd_HOST_OS)
|
|
| 9 | 1 | #pragma GCC visibility push(hidden) |
| 10 | -#endif |
| 1 | -#if defined(HAS_VISIBILITY_HIDDEN) && !defined(freebsd_HOST_OS)
|
|
| 2 | 1 | #pragma GCC visibility pop |
| 3 | -#endif |
| ... | ... | @@ -204,8 +204,6 @@ if test "$CABAL_FLAG_leading_underscore" = 1; then |
| 204 | 204 | AC_DEFINE([LEADING_UNDERSCORE], [1], [Define to 1 if C symbols have a leading underscore added by the compiler.])
|
| 205 | 205 | fi
|
| 206 | 206 | |
| 207 | -FP_VISIBILITY_HIDDEN
|
|
| 208 | - |
|
| 209 | 207 | FP_MUSTTAIL
|
| 210 | 208 | |
| 211 | 209 | dnl ** check for librt
|
| ... | ... | @@ -63,11 +63,7 @@ extern "C" { |
| 63 | 63 | // Symbols that are extern, but private to the RTS, are declared
|
| 64 | 64 | // with visibility "hidden" to hide them outside the RTS shared
|
| 65 | 65 | // library.
|
| 66 | -#if defined(HAS_VISIBILITY_HIDDEN)
|
|
| 67 | 66 | #define RTS_PRIVATE GNUC3_ATTRIBUTE(visibility("hidden"))
|
| 68 | -#else
|
|
| 69 | -#define RTS_PRIVATE /* disabled: RTS_PRIVATE */
|
|
| 70 | -#endif
|
|
| 71 | 67 | |
| 72 | 68 | #if __GNUC__ >= 4
|
| 73 | 69 | #define RTS_UNLIKELY(p) __builtin_expect((p),0)
|