On Sun, Mar 1, 2015 at 6:09 AM, Marc Dietrich <marvi...@gmx.de> wrote: > This patch simplifies the visibility compiler flag detection in configure and > makes it more generic to also support compilers other than gcc.
This simplification relies on the assumption that compilers support -fvisibility=... if and only if they support attribute(visibility("...")). I guess that might be the case, but the logic doesn't seem very sound. Is the 'if test "x$GCC" = xyes; then' test actually rejecting clang? It doesn't seem so, since above there's a 'if test "x$GCC" = xyes -a "x$acv_mesa_CLANG" = xno; then' So, I guess it looks to me like we already support visibility detection for !gcc. > > Cc: Emil Velikov <emil.l.veli...@gmail.com> > Signed-off-by: Marc Dietrich <marvi...@gmx.de> > > --- > configure.ac | 32 +++++++------------------------- > 1 file changed, 7 insertions(+), 25 deletions(-) > > diff --git a/configure.ac b/configure.ac > index 5fbb7bc..7565c0c 100644 > --- a/configure.ac > +++ b/configure.ac > @@ -189,6 +189,7 @@ AX_GCC_FUNC_ATTRIBUTE([flatten]) > AX_GCC_FUNC_ATTRIBUTE([format]) > AX_GCC_FUNC_ATTRIBUTE([malloc]) > AX_GCC_FUNC_ATTRIBUTE([packed]) > +AX_GCC_FUNC_ATTRIBUTE([visibility]) > > AM_CONDITIONAL([GEN_ASM_OFFSETS], test "x$GEN_ASM_OFFSETS" = xyes) > > @@ -223,6 +224,12 @@ cygwin*) > ;; > esac > > +# Enable -fvisibility=hidden if using a compiler that supports it > +if test "x${ax_cv_have_func_attribute_visibility}" = xyes; then > + VISIBILITY_CFLAGS="-fvisibility=hidden" > + VISIBILITY_CXXFLAGS="-fvisibility=hidden" Indent these the same amount as elsewhere. > +fi > + > dnl Add flags for gcc and g++ > if test "x$GCC" = xyes; then > CFLAGS="$CFLAGS -Wall" > @@ -245,18 +252,6 @@ if test "x$GCC" = xyes; then > AC_MSG_RESULT([yes]), > [CFLAGS="$save_CFLAGS -Wmissing-prototypes"; > AC_MSG_RESULT([no])]); > - > - # Enable -fvisibility=hidden if using a gcc that supports it > - save_CFLAGS="$CFLAGS" > - AC_MSG_CHECKING([whether $CC supports -fvisibility=hidden]) > - VISIBILITY_CFLAGS="-fvisibility=hidden" > - CFLAGS="$CFLAGS $VISIBILITY_CFLAGS" > - AC_LINK_IFELSE([AC_LANG_PROGRAM()], AC_MSG_RESULT([yes]), > - [VISIBILITY_CFLAGS=""; AC_MSG_RESULT([no])]); > - > - # Restore CFLAGS; VISIBILITY_CFLAGS are added to it where needed. > - CFLAGS=$save_CFLAGS > - > # Work around aliasing bugs - developers should comment this out > CFLAGS="$CFLAGS -fno-strict-aliasing" > > @@ -267,19 +262,6 @@ fi > if test "x$GXX" = xyes; then > CXXFLAGS="$CXXFLAGS -Wall" > > - # Enable -fvisibility=hidden if using a gcc that supports it > - save_CXXFLAGS="$CXXFLAGS" > - AC_MSG_CHECKING([whether $CXX supports -fvisibility=hidden]) > - VISIBILITY_CXXFLAGS="-fvisibility=hidden" > - CXXFLAGS="$CXXFLAGS $VISIBILITY_CXXFLAGS" > - AC_LANG_PUSH([C++]) > - AC_LINK_IFELSE([AC_LANG_PROGRAM()], AC_MSG_RESULT([yes]), > - [VISIBILITY_CXXFLAGS="" ; AC_MSG_RESULT([no])]); > - AC_LANG_POP([C++]) > - > - # Restore CXXFLAGS; VISIBILITY_CXXFLAGS are added to it where needed. > - CXXFLAGS=$save_CXXFLAGS > - > # Work around aliasing bugs - developers should comment this out > CXXFLAGS="$CXXFLAGS -fno-strict-aliasing" > > -- > 2.3.0 > > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/mesa-dev _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev