[Mesa-dev] [PATCH 2/2] Don't use -fvisibilty=hidden on cygwin
Jon TURNEY
jon.turney at dronecode.org.uk
Wed Apr 27 04:06:40 PDT 2011
On 27/04/2011 11:39, Dan Nicholson wrote:
> On Tue, Apr 26, 2011 at 5:00 AM, Jon TURNEY wrote:
>> Alternatively, the configuration check could be made more complex to avoid
>> using this flag is the target isn't ELF or using the flag generates a warning
>
> You could add -Werror to the CFLAGS used for the visibility test since
> any host that's throwing warnings for something so simple probably has
> issues with visibility. Something like:
>
> diff --git a/configure.ac b/configure.ac
> index 8989c2b..ec662a3 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -152,7 +152,7 @@ if test "x$GCC" = xyes; then
> save_CFLAGS="$CFLAGS"
> AC_MSG_CHECKING([whether $CC supports -fvisibility=hidden])
> VISIBILITY_CFLAGS="-fvisibility=hidden"
> - CFLAGS="$CFLAGS $VISIBILITY_CFLAGS"
> + CFLAGS="$CFLAGS $VISIBILITY_CFLAGS -Werror"
> AC_LINK_IFELSE([AC_LANG_PROGRAM()], AC_MSG_RESULT([yes]),
> [VISIBILITY_CFLAGS=""; AC_MSG_RESULT([no])]);
>
> Does that do the right thing?
Yes, this works, and in fact this was the approach I initially tried, and
seems more elegant.
However, I was concerned about false negatives. As far as I can tell, nothing
guarantees that the test program compiled by AC_LANG_PROGRAM() compiles
without warnings, only without errors, so using -Werror might cause this test
to fail for reasons unrelated to -fvisibility.
Looking at this a bit more, though, a bit of googling seems to indicate we
wouldn't be the first to use this construction, so perhaps it's ok :-)
More information about the mesa-dev
mailing list