From 7851151cfbd2fcbddcd94775b385b44687b0e2f1 Mon Sep 17 00:00:00 2001 From: creator1creeper1 Date: Fri, 14 Jan 2022 13:26:23 +0100 Subject: [PATCH] Meta: Make check-symbols.sh use the correct build directory Since the build now happens in Build/$SERENITY_ARCH/ and not in Build/, this updates check-symbols.sh to use the correct directory to check the LibC symbols in. For some reason, the constant failures did not show up as errors in CI. --- .github/workflows/cmake.yml | 2 ++ Meta/check-symbols.sh | 7 ++++--- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/.github/workflows/cmake.yml b/.github/workflows/cmake.yml index 30310c358619b0..b96e3b0f8919eb 100644 --- a/.github/workflows/cmake.yml +++ b/.github/workflows/cmake.yml @@ -180,6 +180,8 @@ jobs: run: ccache -s - name: Lint (Phase 2/2) working-directory: ${{ github.workspace }}/Meta + env: + SERENITY_ARCH: ${{ matrix.arch }} run: ./check-symbols.sh - name: Create Serenity Rootfs diff --git a/Meta/check-symbols.sh b/Meta/check-symbols.sh index fff9a34e1de68a..8d524c5ed7b4a2 100755 --- a/Meta/check-symbols.sh +++ b/Meta/check-symbols.sh @@ -9,12 +9,13 @@ cd "$script_path/.." || exit 1 # To eliminate the need for these symbols, avoid doing non-trivial construction of local statics in LibC. FORBIDDEN_SYMBOLS="__cxa_guard_acquire __cxa_guard_release" -LIBC_PATH="Build/Userland/Libraries/LibC/libc.a" +TARGET="${SERENITY_ARCH:-"i686"}" +LIBC_PATH="Build/${TARGET}/Userland/Libraries/LibC/libc.a" for forbidden_symbol in $FORBIDDEN_SYMBOLS; do # 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" + nm "$LIBC_PATH" | grep "U $forbidden_symbol" APPEARS_AS_UNDEFINED=$? - nm $LIBC_PATH | grep "T $forbidden_symbol" + 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"