.ci/trigger-coverity.sh | 13 +++++++++++ .travis.yml | 13 +++++++++++ CMakeLists.txt | 11 +++++++-- configure.ac | 13 ++++++----- src/Makefile.am | 54 +++++++++++++++++++++++++++++++++++++----------- src/check-defs.sh | 12 ++++------ src/gen-def.py | 9 +++++--- 7 files changed, 94 insertions(+), 31 deletions(-)
New commits: commit 0b94d590d971de0b44b0db941c7a3e095f15fbc9 Author: Khaled Hosny <khaledho...@eglug.org> Date: Mon Feb 12 16:45:36 2018 +0200 Rename --with-stdcpp → --with-libstdc++ Also improve wording a bit and fix make check in --with-libstdc++=yes. diff --git a/configure.ac b/configure.ac index f77e0874..d8c38fe2 100644 --- a/configure.ac +++ b/configure.ac @@ -57,11 +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"]) +AC_ARG_WITH([libstdc++], + [AS_HELP_STRING([--with-libstdc++=@<:@yes/no@:>@], + [Allow linking with libstdc++ @<:@default=no@:>@])], + [with_libstdcxx=$withval], + [with_libstdcxx=no]) +AM_CONDITIONAL(WITH_LIBSTDCXX, [test "x$with_libstdcxx" = "xyes"]) # Documentation have_gtk_doc=false diff --git a/src/Makefile.am b/src/Makefile.am index 25728563..7b7ccdef 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -30,7 +30,7 @@ HBSOURCES += $(HB_BASE_RAGEL_GENERATED_sources) HBHEADERS = $(HB_BASE_headers) HBNODISTHEADERS = $(HB_NODIST_headers) -if !WITHSTDCPP +if !WITH_LIBSTDCXX # Make sure we don't link to libstdc++ HBCFLAGS += -fno-rtti -fno-exceptions @@ -128,7 +128,7 @@ export_symbols_subset = -export-symbols harfbuzz-subset.def harfbuzz_subset_def_dependency = harfbuzz-subset.def choosed_linker = $(CXXLINK) else -if WITHSTDCPP +if WITH_LIBSTDCXX choosed_linker = $(CXXLINK) else if HAVE_GCC @@ -340,11 +340,16 @@ dist_check_SCRIPTS = \ check-externs.sh \ check-header-guards.sh \ check-includes.sh \ - check-libstdc++.sh \ check-static-inits.sh \ check-symbols.sh \ $(NULL) +if !WITH_LIBSTDCXX +dist_check_SCRIPTS += \ + check-libstdc++.sh \ + $(NULL) +endif + check_PROGRAMS = \ test-ot-tag \ $(NULL) commit 91f0d51f0525097fef6173046379a89414cb515f Author: Ebrahim Byagowi <ebra...@gnu.org> Date: Mon Feb 12 17:20:12 2018 +0330 Fix symbol exporting issue on msys2 and ✅ bringing all the bots (#781) diff --git a/src/Makefile.am b/src/Makefile.am index 48e63320..25728563 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -126,20 +126,24 @@ export_symbols_icu = -export-symbols harfbuzz-icu.def harfbuzz_icu_def_dependency = harfbuzz-icu.def export_symbols_subset = -export-symbols harfbuzz-subset.def harfbuzz_subset_def_dependency = harfbuzz-subset.def -libharfbuzz_la_LINK = $(CXXLINK) $(libharfbuzz_la_LDFLAGS) +choosed_linker = $(CXXLINK) else if WITHSTDCPP -libharfbuzz_la_LINK = $(CXXLINK) $(libharfbuzz_la_LDFLAGS) +choosed_linker = $(CXXLINK) else if HAVE_GCC # Use a C linker for GCC, not C++; Don't link to libstdc++ -libharfbuzz_la_LINK = $(LINK) $(libharfbuzz_la_LDFLAGS) +choosed_linker = $(LINK) else -libharfbuzz_la_LINK = $(CXXLINK) $(libharfbuzz_la_LDFLAGS) +choosed_linker = $(CXXLINK) endif endif endif +libharfbuzz_la_LINK = $(choosed_linker) $(libharfbuzz_la_LDFLAGS) +libharfbuzz_icu_la_LINK = $(choosed_linker) $(libharfbuzz_icu_la_LDFLAGS) +libharfbuzz_subset_la_LINK = $(choosed_linker) $(libharfbuzz_subset_la_LDFLAGS) + base_link_flags = $(AM_LDFLAGS) -lm -version-info $(HB_LIBTOOL_VERSION_INFO) -no-undefined libharfbuzz_la_SOURCES = $(HBSOURCES) $(HBHEADERS) $(HBNODISTHEADERS) libharfbuzz_la_CPPFLAGS = $(HBCFLAGS) @@ -153,7 +157,6 @@ pkgconfig_DATA = harfbuzz.pc EXTRA_DIST += harfbuzz.pc.in lib_LTLIBRARIES += libharfbuzz-subset.la -libharfbuzz_subset_la_LINK = $(libharfbuzz_la_LINK) libharfbuzz_subset_la_SOURCES = $(HB_SUBSET_sources) libharfbuzz_subset_la_CPPFLAGS = $(libharfbuzz_la_CPPFLAGS) libharfbuzz_subset_la_LDFLAGS = $(base_link_flags) $(export_symbols_subset) @@ -191,7 +194,6 @@ HBSOURCES += $(HB_ICU_sources) HBHEADERS += $(HB_ICU_headers) else lib_LTLIBRARIES += libharfbuzz-icu.la -libharfbuzz_icu_la_LINK = $(libharfbuzz_la_LINK) libharfbuzz_icu_la_SOURCES = $(HB_ICU_sources) libharfbuzz_icu_la_CPPFLAGS = $(libharfbuzz_la_CPPFLAGS) $(ICU_CFLAGS) libharfbuzz_icu_la_LDFLAGS = $(base_link_flags) $(export_symbols_icu) commit 133e17fe2335abb77f61dbf1cff1955c21334137 Author: Ebrahim Byagowi <ebra...@gnu.org> Date: Mon Feb 12 15:24:22 2018 +0330 Minor diff --git a/src/check-defs.sh b/src/check-defs.sh index 71b8f021..ade59357 100755 --- a/src/check-defs.sh +++ b/src/check-defs.sh @@ -18,6 +18,7 @@ tested=false for def in harfbuzz.def harfbuzz-icu.def harfbuzz-subset.def; do if ! test -f "$def"; then echo "check-defs.sh: '$def' not found; skipping test it" + continue fi lib=`echo "$def" | sed 's/[.]def$//;s@.*/@@'` for suffix in so dylib; do commit 16f5b53eec4c3238cf92438a17e6dc532e8a61f5 Author: Ebrahim Byagowi <ebra...@gnu.org> Date: Mon Feb 12 15:18:13 2018 +0330 Minor, don't skip the whole test when one .def file not found diff --git a/src/check-defs.sh b/src/check-defs.sh index 71c90971..71b8f021 100755 --- a/src/check-defs.sh +++ b/src/check-defs.sh @@ -17,8 +17,7 @@ fi tested=false for def in harfbuzz.def harfbuzz-icu.def harfbuzz-subset.def; do if ! test -f "$def"; then - echo "check-defs.sh: '$def' not found; skipping test" - exit 77 + echo "check-defs.sh: '$def' not found; skipping test it" fi lib=`echo "$def" | sed 's/[.]def$//;s@.*/@@'` for suffix in so dylib; do commit a9b650d38407f6f2a26d8386e801600b1004d5d6 Author: Ebrahim Byagowi <ebra...@gnu.org> Date: Mon Feb 12 15:10:13 2018 +0330 Apply check-defs.sh to -icu and -subset, toward mingw fix (#780) diff --git a/CMakeLists.txt b/CMakeLists.txt index d1f2e087..d23fc2df 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -836,8 +836,11 @@ if (UNIX OR MINGW) add_test(NAME check-symbols.sh COMMAND ${PROJECT_SOURCE_DIR}/src/check-symbols.sh) add_test(NAME check-defs.sh COMMAND ${PROJECT_SOURCE_DIR}/src/check-defs.sh) - set_tests_properties(check-static-inits.sh check-libstdc++.sh check-symbols.sh check-defs.sh - PROPERTIES ENVIRONMENT "libs=.;srcdir=${PROJECT_SOURCE_DIR}/src") + set_tests_properties( + check-static-inits.sh check-libstdc++.sh check-symbols.sh check-defs.sh + PROPERTIES + ENVIRONMENT "libs=.;srcdir=${PROJECT_SOURCE_DIR}/src" + SKIP_RETURN_CODE 77) endif () add_test(NAME check-c-linkage-decls.sh COMMAND ./check-c-linkage-decls.sh) @@ -846,7 +849,9 @@ if (UNIX OR MINGW) add_test(NAME check-includes.sh COMMAND ./check-includes.sh) set_tests_properties( check-c-linkage-decls.sh check-header-guards.sh check-externs.sh check-includes.sh - PROPERTIES WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/src) + PROPERTIES + WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/src + SKIP_RETURN_CODE 77) endif () # Needs to come last so that variables defined above are passed to diff --git a/src/Makefile.am b/src/Makefile.am index 44df7465..48e63320 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -122,6 +122,10 @@ HBLIBS += $(HBNONPCLIBS) if OS_WIN32 export_symbols = -export-symbols harfbuzz.def harfbuzz_def_dependency = harfbuzz.def +export_symbols_icu = -export-symbols harfbuzz-icu.def +harfbuzz_icu_def_dependency = harfbuzz-icu.def +export_symbols_subset = -export-symbols harfbuzz-subset.def +harfbuzz_subset_def_dependency = harfbuzz-subset.def libharfbuzz_la_LINK = $(CXXLINK) $(libharfbuzz_la_LDFLAGS) else if WITHSTDCPP @@ -136,9 +140,10 @@ endif endif endif +base_link_flags = $(AM_LDFLAGS) -lm -version-info $(HB_LIBTOOL_VERSION_INFO) -no-undefined libharfbuzz_la_SOURCES = $(HBSOURCES) $(HBHEADERS) $(HBNODISTHEADERS) libharfbuzz_la_CPPFLAGS = $(HBCFLAGS) -libharfbuzz_la_LDFLAGS = $(AM_LDFLAGS) -lm -version-info $(HB_LIBTOOL_VERSION_INFO) $(export_symbols) -no-undefined +libharfbuzz_la_LDFLAGS = $(base_link_flags) $(export_symbols) libharfbuzz_la_LIBADD = $(HBLIBS) EXTRA_libharfbuzz_la_DEPENDENCIES = $(harfbuzz_def_dependency) pkginclude_HEADERS = $(HBHEADERS) @@ -151,8 +156,9 @@ lib_LTLIBRARIES += libharfbuzz-subset.la libharfbuzz_subset_la_LINK = $(libharfbuzz_la_LINK) libharfbuzz_subset_la_SOURCES = $(HB_SUBSET_sources) libharfbuzz_subset_la_CPPFLAGS = $(libharfbuzz_la_CPPFLAGS) -libharfbuzz_subset_la_LDFLAGS = $(libharfbuzz_la_LDFLAGS) +libharfbuzz_subset_la_LDFLAGS = $(base_link_flags) $(export_symbols_subset) libharfbuzz_subset_la_LIBADD = libharfbuzz.la +EXTRA_libharfbuzz_subset_la_DEPENDENCIES = $(harfbuzz_subset_def_dependency) pkginclude_HEADERS += $(HB_SUBSET_headers) pkgconfig_DATA += harfbuzz-subset.pc EXTRA_DIST += harfbuzz-subset.pc.in @@ -188,8 +194,9 @@ lib_LTLIBRARIES += libharfbuzz-icu.la libharfbuzz_icu_la_LINK = $(libharfbuzz_la_LINK) libharfbuzz_icu_la_SOURCES = $(HB_ICU_sources) libharfbuzz_icu_la_CPPFLAGS = $(libharfbuzz_la_CPPFLAGS) $(ICU_CFLAGS) -libharfbuzz_icu_la_LDFLAGS = $(libharfbuzz_la_LDFLAGS) +libharfbuzz_icu_la_LDFLAGS = $(base_link_flags) $(export_symbols_icu) libharfbuzz_icu_la_LIBADD = $(ICU_LIBS) libharfbuzz.la +EXTRA_libharfbuzz_icu_la_DEPENDENCIES = $(harfbuzz_icu_def_dependency) pkginclude_HEADERS += $(HB_ICU_headers) pkgconfig_DATA += harfbuzz-icu.pc endif @@ -245,9 +252,13 @@ EXTRA_DIST += \ CLEANFILES += $(pkgconfig_DATA) -CLEANFILES += harfbuzz.def +CLEANFILES += harfbuzz.def harfbuzz-icu.def harfbuzz-subset.def harfbuzz.def: $(HBHEADERS) $(HBNODISTHEADERS) $(AM_V_GEN) headers="$^" $(srcdir)/gen-def.py $@ +harfbuzz-icu.def: $(HB_ICU_headers) + $(AM_V_GEN) headers="$^" $(srcdir)/gen-def.py $@ +harfbuzz-subset.def: $(HB_SUBSET_headers) + $(AM_V_GEN) headers="$^" $(srcdir)/gen-def.py $@ GENERATORS = \ @@ -319,7 +330,7 @@ test_buffer_serialize_SOURCES = test-buffer-serialize.cc test_buffer_serialize_CPPFLAGS = $(HBCFLAGS) test_buffer_serialize_LDADD = libharfbuzz.la $(HBLIBS) -check: harfbuzz.def # For check-defs.sh +check: harfbuzz.def harfbuzz-icu.def harfbuzz-subset.def # For check-defs.sh dist_check_SCRIPTS = \ check-c-linkage-decls.sh \ diff --git a/src/check-defs.sh b/src/check-defs.sh index adb90a72..71c90971 100755 --- a/src/check-defs.sh +++ b/src/check-defs.sh @@ -14,14 +14,12 @@ else exit 77 fi -defs="harfbuzz.def" -if ! test -f "$defs"; then - echo "check-defs.sh: '$defs' not found; skipping test" - exit 77 -fi - tested=false -for def in $defs; do +for def in harfbuzz.def harfbuzz-icu.def harfbuzz-subset.def; do + if ! test -f "$def"; then + echo "check-defs.sh: '$def' not found; skipping test" + exit 77 + fi lib=`echo "$def" | sed 's/[.]def$//;s@.*/@@'` for suffix in so dylib; do so=$libs/lib${lib}.$suffix diff --git a/src/gen-def.py b/src/gen-def.py index ad1606ec..1673537c 100755 --- a/src/gen-def.py +++ b/src/gen-def.py @@ -9,8 +9,11 @@ for h in os.environ["headers"].split (' '): if h.endswith (".h"): with io.open(h, encoding='utf8') as f: headers_content.append (f.read ()) -result = ("EXPORTS\n" + - "\n".join (sorted (re.findall (r"^hb_\w+(?= \()", "\n".join (headers_content), re.M))) + - "\nLIBRARY libharfbuzz-0.dll") +result = """EXPORTS +%s +LIBRARY lib%s-0.dll""" % ( + "\n".join (sorted (re.findall (r"^hb_\w+(?= \()", "\n".join (headers_content), re.M))), + sys.argv[1].replace ('.def', '') +) with open (sys.argv[1], "w") as f: f.write (result) commit 2efc8965506d8fd31934be1dba3322f922f3409d Author: Ebrahim Byagowi <ebra...@gnu.org> Date: Mon Feb 12 12:00:07 2018 +0330 Add --with-stdcpp for ossfuzzer and mupdf use (#770) diff --git a/configure.ac b/configure.ac index 5a17cc1a..f77e0874 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 88862832..44df7465 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) commit 82e04758c895ce2cd6bddde5f72e592c718fcb69 Author: Ebrahim Byagowi <ebra...@gnu.org> Date: Mon Feb 12 11:56:32 2018 +0330 minor diff --git a/.travis.yml b/.travis.yml index 56117255..e2de5038 100644 --- a/.travis.yml +++ b/.travis.yml @@ -77,7 +77,6 @@ addons: - libgraphite2-dev # for extra shapers #- libgirepository1.0-dev # for gobject-introspection -addons: coverity_scan: project: name: harfbuzz/harfbuzz @@ -86,4 +85,4 @@ addons: notification_email: harfbuzz@lists.freedesktop.org build_command_prepend: ./autogen.sh --with-freetype --with-glib --with-gobject --with-cairo --with-icu --with-graphite2 build_command: make - branch_pattern: coverity_scan \ No newline at end of file + branch_pattern: coverity_scan commit 7daa2822f6320801dfed09782ae46687e7c8cbb3 Author: Ebrahim Byagowi <ebra...@gnu.org> Date: Mon Feb 12 11:27:00 2018 +0330 Add Travis based Coverity trigger (#778) diff --git a/.ci/trigger-coverity.sh b/.ci/trigger-coverity.sh new file mode 100644 index 00000000..e2416922 --- /dev/null +++ b/.ci/trigger-coverity.sh @@ -0,0 +1,13 @@ +#!/bin/bash + +set -x +set -o errexit -o nounset + +if test "x$TRAVIS_EVENT_TYPE" != x"cron"; then exit; fi + +BRANCH="$TRAVIS_BRANCH" +if test "x$BRANCH" != xmaster; then exit; fi + +git fetch --unshallow +git remote add upstream "https://$gh_to...@github.com/harfbuzz/harfbuzz.git" +git push -q upstream master:coverity_scan diff --git a/.travis.yml b/.travis.yml index 5516e711..56117255 100644 --- a/.travis.yml +++ b/.travis.yml @@ -11,6 +11,8 @@ env: - LDFLAGS="--coverage" - CONFIGURE_OPTS="--with-freetype --with-glib --with-gobject --with-cairo --with-icu --with-graphite2" - NOCONFIGURE=1 + # COVERITY_SCAN_TOKEN + - secure: "MRJtVu/fQoWNwMAamvIJBCX/1SMvEuEUk/ljAif/y2/3syyWgxFGp17UGnDILdoZYyCqTM+jQciY2P0nVqbjjOAUlML4QOAalqw8kPp8iTsnHUe+KOMVrOVP6p6qAQxk1im1O41cCMkmVKvk+NXe/on5euz6LGF2laHZaOAMoes=" matrix: include: @@ -28,6 +30,7 @@ matrix: after_success: - bash .ci/run-coveralls.sh # for coveralls.io code coverage tracking - bash .ci/deploy-docs.sh + - bash .ci/trigger-coverity.sh - os: linux compiler: clang @@ -73,3 +76,14 @@ addons: - libicu-dev # for extra unicode functions - libgraphite2-dev # for extra shapers #- libgirepository1.0-dev # for gobject-introspection + +addons: + coverity_scan: + project: + name: harfbuzz/harfbuzz + version: 1.0 + description: HarfBuzz OpenType text shaping engine + notification_email: harfbuzz@lists.freedesktop.org + build_command_prepend: ./autogen.sh --with-freetype --with-glib --with-gobject --with-cairo --with-icu --with-graphite2 + build_command: make + branch_pattern: coverity_scan \ No newline at end of file _______________________________________________ HarfBuzz mailing list HarfBuzz@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/harfbuzz