Add --with-stdcpp for ossfuzzer and mupdf use (#770)
diff --git a/configure.ac b/configure.ac
index 5a17cc1..f77e087 100644
--- a/configure.ac
+++ b/configure.ac
@@ -57,6 +57,12 @@
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 @@
# 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 8886283..44df746 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -30,6 +30,14 @@
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 @@
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)