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.
This commit is contained in:
parent
c6a0365c58
commit
7851151cfb
Notes:
sideshowbarker
2024-07-17 20:51:50 +09:00
Author: https://github.com/creator1creeper1 Commit: https://github.com/SerenityOS/serenity/commit/7851151cfbd Pull-request: https://github.com/SerenityOS/serenity/pull/11914
2 changed files with 6 additions and 3 deletions
2
.github/workflows/cmake.yml
vendored
2
.github/workflows/cmake.yml
vendored
|
@ -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
|
||||
|
|
|
@ -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"
|
||||
|
|
Loading…
Add table
Reference in a new issue