From 4cb38f6dd8c1d23536c98d5b1ad89bdfbbf4dd0d Mon Sep 17 00:00:00 2001 From: Itamar Date: Wed, 17 Mar 2021 23:23:13 +0200 Subject: [PATCH] CI: Don't fail check-symbols if symbol is defiend somewhere else --- Meta/check-symbols.sh | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/Meta/check-symbols.sh b/Meta/check-symbols.sh index 31d5d9a8b5..fff9a34e1d 100755 --- a/Meta/check-symbols.sh +++ b/Meta/check-symbols.sh @@ -11,8 +11,12 @@ cd "$script_path/.." || exit 1 FORBIDDEN_SYMBOLS="__cxa_guard_acquire __cxa_guard_release" LIBC_PATH="Build/Userland/Libraries/LibC/libc.a" for forbidden_symbol in $FORBIDDEN_SYMBOLS; do - # check if symbol is undefined - if nm $LIBC_PATH | grep "U $forbidden_symbol" ; then + # check if there's an undefined reference to the symbol & it is not defined anywhere else in the library + nm $LIBC_PATH | grep "U $forbidden_symbol" + APPEARS_AS_UNDEFINED=$? + nm $LIBC_PATH | grep "T $forbidden_symbol" + APPEARS_AS_DEFINED=$? + if [ $APPEARS_AS_UNDEFINED -eq 0 ] && [ ! $APPEARS_AS_DEFINED -eq 0 ]; then echo "Forbidden undefined symbol in LibC: $forbidden_symbol" echo "See comment in Meta/check-symbols.sh for more info" exit 1