[HarfBuzz] harfbuzz: Branch 'master' - 5 commits

Behdad Esfahbod behdad at kemper.freedesktop.org
Mon Sep 24 17:12:45 UTC 2018


 .circleci/config.yml      |    4 ++--
 src/check-static-inits.sh |    4 ++--
 src/check-symbols.sh      |    2 +-
 test/api/Makefile.am      |    2 ++
 4 files changed, 7 insertions(+), 5 deletions(-)

New commits:
commit aec0d3cbc923a8801c5bd9e9ae05801a31a7260c
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Mon Sep 24 13:12:15 2018 -0400

    [ubsan] Re-enable now that it passes locally

diff --git a/.circleci/config.yml b/.circleci/config.yml
index 9721dbb1..66489e87 100644
--- a/.circleci/config.yml
+++ b/.circleci/config.yml
@@ -251,7 +251,7 @@ workflows:
       - clang-asan
       #- clang-msan
       - clang-tsan
-      #- clang-ubsan
+      - clang-ubsan
       - fedora-outoftreebuild
 
       # cmake based builds
commit 4839807340cc73d5ba826dff4b4ba358775a213d
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Mon Sep 24 13:11:34 2018 -0400

    [check-static-inits.sh] Allow some if ubsan is in effect

diff --git a/src/check-static-inits.sh b/src/check-static-inits.sh
index 71551cbd..def25c70 100755
--- a/src/check-static-inits.sh
+++ b/src/check-static-inits.sh
@@ -7,7 +7,6 @@ test -z "$srcdir" && srcdir=.
 test -z "$libs" && libs=.libs
 stat=0
 
-
 if which objdump 2>/dev/null >/dev/null; then
 	:
 else
@@ -31,7 +30,8 @@ done
 
 echo "Checking that no object file has lazy static C++ constructors/destructors or other such stuff"
 for obj in $OBJS; do
-	if objdump -t "$obj" | grep '__cxa_'; then
+	if objdump -t "$obj" | grep -q '__cxa_' && ! objdump -t "$obj" | grep -q __ubsan_handle; then
+		objdump -t "$obj" | grep '__cxa_'
 		echo "Ouch, $obj has lazy static C++ constructors/destructors or other such stuff"
 		stat=1
 	fi
commit e45ba31dc723988150ef766758fa89fecd50ca03
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Mon Sep 24 13:04:48 2018 -0400

    [check-symbols.sh] Allow weak objects "V"
    
    ubsan generates these.

diff --git a/src/check-symbols.sh b/src/check-symbols.sh
index 6e9382b1..cea86848 100755
--- a/src/check-symbols.sh
+++ b/src/check-symbols.sh
@@ -26,7 +26,7 @@ for soname in harfbuzz harfbuzz-subset harfbuzz-icu harfbuzz-gobject; do
 		symprefix=
 		if test $suffix = dylib; then symprefix=_; fi
 
-		EXPORTED_SYMBOLS="`nm "$so" | grep ' [BCDGINRSTV] .' | grep -v " $symprefix\\($IGNORED_SYMBOLS\\>\\)" | cut -d' ' -f3 | c++filt`"
+		EXPORTED_SYMBOLS="`nm "$so" | grep ' [BCDGINRST] .' | grep -v " $symprefix\\($IGNORED_SYMBOLS\\>\\)" | cut -d' ' -f3 | c++filt`"
 
 		prefix=$symprefix`basename "$so" | sed 's/libharfbuzz/hb/; s/-/_/g; s/[.].*//'`
 
commit d07f3111b4bc38798e16a2459b80a16d7a9f9ff1
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Mon Sep 24 13:01:35 2018 -0400

    Link API test programs with C++ linker
    
    Needed to make ubsan work.
    
    Fixes https://github.com/harfbuzz/harfbuzz/issues/1174

diff --git a/test/api/Makefile.am b/test/api/Makefile.am
index a2033449..d92e9669 100644
--- a/test/api/Makefile.am
+++ b/test/api/Makefile.am
@@ -16,6 +16,8 @@ EXTRA_DIST += CMakeLists.txt
 
 EXTRA_DIST += fonts
 
+LINK = $(CXXLINK)
+
 if HAVE_GLIB
 AM_CPPFLAGS = -DSRCDIR="\"$(srcdir)\"" -I$(top_srcdir)/src/ -I$(top_builddir)/src/ $(GLIB_CFLAGS)
 LDADD = $(top_builddir)/src/libharfbuzz.la $(GLIB_LIBS)
commit a96508cfc9bd9013d24b18547fcd9c03e08fe2f2
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Mon Sep 24 12:52:42 2018 -0400

    [msan] Add MSAN_OPTIONS=exitcode=42
    
    Default exit value is 77, which causes autotools to "skip" test.

diff --git a/.circleci/config.yml b/.circleci/config.yml
index 7baebb1c..9721dbb1 100644
--- a/.circleci/config.yml
+++ b/.circleci/config.yml
@@ -101,7 +101,7 @@ jobs:
       - run: pip install fonttools
       - run: CPPFLAGS="-fsanitize=memory" LDFLAGS="-fsanitize=memory" CC=clang-6.0 CXX=clang++-6.0 ./autogen.sh --with-freetype --with-glib --with-cairo --with-icu --with-graphite2
       - run: make
-      - run: make check || .ci/fail.sh
+      - run: MSAN_OPTIONS=exitcode=42 make check || .ci/fail.sh
 
   clang-tsan:
     docker:


More information about the HarfBuzz mailing list