diff --git a/configure.ac b/configure.ac index 5a17cc1a1..f77e08742 100644 --- a/configure.ac +++ b/configure.ac @@ -57,6 +57,12 @@ m4_define([hb_libtool_current], HB_LIBTOOL_VERSION_INFO=hb_libtool_current:hb_libtool_revision:hb_libtool_age AC_SUBST(HB_LIBTOOL_VERSION_INFO) +AC_ARG_WITH([stdcpp], + [AS_HELP_STRING([--with-stdcpp], + [Do not try suppressing linkage to libstdcpp])],, + [with_stdcpp=no]) +AM_CONDITIONAL(WITHSTDCPP, [test "x$with_stdcpp" = "xyes"]) + # Documentation have_gtk_doc=false m4_ifdef([GTK_DOC_CHECK], [ @@ -80,12 +86,6 @@ if test "x$GCC" = "xyes"; then # Make symbols link locally LDFLAGS="$LDFLAGS -Bsymbolic-functions" - # Make sure we don't link to libstdc++ - CXXFLAGS="$CXXFLAGS -fno-rtti -fno-exceptions" - - # No threadsafe statics and C++ as we do it ourselves - CXXFLAGS="$CXXFLAGS -fno-threadsafe-statics" - # Assorted warnings CXXFLAGS="$CXXFLAGS -Wcast-align" diff --git a/src/Makefile.am b/src/Makefile.am index 888628329..44df74653 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -30,6 +30,14 @@ HBSOURCES += $(HB_BASE_RAGEL_GENERATED_sources) HBHEADERS = $(HB_BASE_headers) HBNODISTHEADERS = $(HB_NODIST_headers) +if !WITHSTDCPP +# Make sure we don't link to libstdc++ +HBCFLAGS += -fno-rtti -fno-exceptions + +# No threadsafe statics and C++ as we do it ourselves +HBCFLAGS += -fno-threadsafe-statics +endif + if HAVE_OT HBSOURCES += $(HB_OT_sources) HBSOURCES += $(HB_OT_RAGEL_GENERATED_sources) @@ -116,13 +124,17 @@ export_symbols = -export-symbols harfbuzz.def harfbuzz_def_dependency = harfbuzz.def libharfbuzz_la_LINK = $(CXXLINK) $(libharfbuzz_la_LDFLAGS) else -# Use a C linker for GCC, not C++; Don't link to libstdc++ +if WITHSTDCPP +libharfbuzz_la_LINK = $(CXXLINK) $(libharfbuzz_la_LDFLAGS) +else if HAVE_GCC +# Use a C linker for GCC, not C++; Don't link to libstdc++ libharfbuzz_la_LINK = $(LINK) $(libharfbuzz_la_LDFLAGS) else libharfbuzz_la_LINK = $(CXXLINK) $(libharfbuzz_la_LDFLAGS) endif endif +endif libharfbuzz_la_SOURCES = $(HBSOURCES) $(HBHEADERS) $(HBNODISTHEADERS) libharfbuzz_la_CPPFLAGS = $(HBCFLAGS)