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)