Skip to content

Commit 7787c04

Browse files
committed
configure.ac: use C++ compiler for linking, replaces -lstdc++
If at least one source is C++, ask the C++ compiler to link the executable instead of manually adding `-lstdc++`. The C++ compiler knows best which C++ standard library needs to be used. This is more robust, and allows non-GNU standard libraries such as libc++.
1 parent 060af54 commit 7787c04

File tree

2 files changed

+12
-4
lines changed

2 files changed

+12
-4
lines changed

build/php.m4

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -742,7 +742,6 @@ AC_DEFUN([PHP_REQUIRE_CXX],[
742742
if test -z "$php_cxx_done"; then
743743
AC_PROG_CXX
744744
AC_PROG_CXXCPP
745-
PHP_ADD_LIBRARY(stdc++)
746745
php_cxx_done=yes
747746
fi
748747
])

configure.ac

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1664,15 +1664,24 @@ CFLAGS_CLEAN="$CFLAGS \$(PROF_FLAGS)"
16641664
CFLAGS="\$(CFLAGS_CLEAN) $standard_libtool_flag"
16651665
CXXFLAGS="$CXXFLAGS $standard_libtool_flag \$(PROF_FLAGS)"
16661666

1667+
if test -z "$php_cxx_done"; then
1668+
# Link with the C compiler
1669+
LINK_SAPI="\$(CC) -export-dynamic \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS)"
1670+
else
1671+
# We have at least one C++ source: we have to link with the C++
1672+
# compiler so the correct C++ standard library gets linked
1673+
LINK_SAPI="\$(CXX) -export-dynamic \$(CXXFLAGS_CLEAN) \$(EXTRA_CXXFLAGS)"
1674+
fi
1675+
16671676
case $host_alias in
16681677
*aix*)
1669-
LINK_SAPI="\$(LIBTOOL) --mode=link \$(CC) -export-dynamic \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(EXTRA_LDFLAGS_PROGRAM) \$(LDFLAGS) -Wl,-brtl \$(PHP_RPATHS)"
1678+
LINK_SAPI="\$(LIBTOOL) --mode=link $LINK_SAPI -export-dynamic \$(EXTRA_LDFLAGS_PROGRAM) \$(LDFLAGS) -Wl,-brtl \$(PHP_RPATHS)"
16701679
;;
16711680
*darwin*)
1672-
LINK_SAPI="\$(CC) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(EXTRA_LDFLAGS_PROGRAM) \$(LDFLAGS) \$(NATIVE_RPATHS) \$(PHP_FRAMEWORKS)"
1681+
LINK_SAPI="$LINK_SAPI \$(EXTRA_LDFLAGS_PROGRAM) \$(LDFLAGS) \$(NATIVE_RPATHS) \$(PHP_FRAMEWORKS)"
16731682
;;
16741683
*)
1675-
LINK_SAPI="\$(LIBTOOL) --mode=link \$(CC) -export-dynamic \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(EXTRA_LDFLAGS_PROGRAM) \$(LDFLAGS) \$(PHP_RPATHS)"
1684+
LINK_SAPI="\$(LIBTOOL) --mode=link $LINK_SAPI -export-dynamic \$(EXTRA_LDFLAGS_PROGRAM) \$(LDFLAGS) \$(PHP_RPATHS)"
16761685
;;
16771686
esac
16781687

0 commit comments

Comments
 (0)