curl-compilers.m4: improve detection of GCC's -fvisibility= flag

Some builds of GCC produce output on both stdout and stderr when --help
--verbose is used.  The 2>&1 redirection caused them to be arbitrarily
interleaved with each other because of stream buffering.  Consequently,
grep failed to match the fvisibility= string in the mixed output, even
though the string was present in GCC's standard output.

This led to silently disabling symbol hiding in some builds of curl.
This commit is contained in:
Kamil Dudka 2016-06-21 12:40:26 +02:00
parent 5f2e3b8867
commit b2dcf0347f
2 changed files with 3 additions and 2 deletions

View File

@ -25,6 +25,7 @@ This release includes the following bugfixes:
o http: Fix HTTP/2 connection reuse [regression] [12]
o checksrc: Add LoadLibrary to the banned functions list
o schannel: Disable ALPN on Windows < 8.1 [13]
o configure: occasional ignorance of --enable-symbol-hiding with GCC
This release includes the following known bugs:

View File

@ -21,7 +21,7 @@
#***************************************************************************
# File version for 'aclocal' use. Keep it a single number.
# serial 66
# serial 67
dnl CURL_CHECK_COMPILER
@ -1374,7 +1374,7 @@ AC_DEFUN([CURL_CHECK_COMPILER_SYMBOL_HIDING], [
GNU_C)
dnl Only gcc 3.4 or later
if test "$compiler_num" -ge "304"; then
if $CC --help --verbose 2>&1 | grep fvisibility= > /dev/null ; then
if $CC --help --verbose 2>/dev/null | grep fvisibility= >/dev/null ; then
tmp_EXTERN="__attribute__ ((__visibility__ (\"default\")))"
tmp_CFLAGS="-fvisibility=hidden"
supports_symbol_hiding="yes"