.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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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: _______________________________________________ HarfBuzz mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/harfbuzz
