Check that there are no library modules that use the old "sp" symbol instead

of "c_sp".
This commit is contained in:
Kugel Fuhr
2025-06-26 08:23:51 +02:00
parent 5db2aed129
commit 399f5aaab7
4 changed files with 32 additions and 0 deletions

View File

@@ -40,4 +40,7 @@ sorted: sorted.sh sorted_codeopt.sh sorted_opcodes.sh
@./sorted_codeopt.sh
@./sorted_opcodes.sh
checksp: checksp.sh
@./checksp.sh
endif

22
.github/checks/checksp.sh vendored Executable file
View File

@@ -0,0 +1,22 @@
#! /bin/bash
OD65_EXE=../bin/od65
CHECK_PATH=../../libwrk
cd "${CHECK_PATH}" || {
echo "error: Directory ${CHECK_PATH} doesn't seem to exist" >&2
exit 1
}
[ -x "${OD65_EXE}" ] || {
echo "error: This check requires the od65 executable to be built" >&2
exit 1
}
EXITCODE=0
find . -name \*.o -print | while read OBJ; do
"${OD65_EXE}" --dump-imports "${OBJ}" | grep -q "\"sp\"" && {
echo "error: Usage of symbol 'sp' found in module ${OBJ}" >&2
EXITCODE=1
}
done
exit ${EXITCODE}

View File

@@ -39,6 +39,9 @@ jobs:
- name: Build the platform libraries.
shell: bash
run: make -j2 lib QUIET=1
- name: check test that no modules use sp
shell: bash
run: make -j2 checksp QUIET=1
- name: Run the regression tests.
shell: bash
run: make -j2 test QUIET=1

View File

@@ -53,6 +53,10 @@ checkstyle:
sorted:
@$(MAKE) -C .github/checks --no-print-directory $@
# check that no modules use "sp", requires the binaries to be built first
checksp:
@$(MAKE) -C .github/checks --no-print-directory $@
# runs regression tests, requires libtest target libraries
test:
@$(MAKE) -C test --no-print-directory $@