Skip to content

mmalloc: check for mach_error_string #664

mmalloc: check for mach_error_string

mmalloc: check for mach_error_string #664

# -*- coding: utf-8; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
# vim:fenc=utf-8:et:sw=2:ts=2:sts=2
---
name: cooljeanius/apple-gdb-1824-macos
on:
push:
branches:
- "**/*"
pull_request:
jobs:
test:
# "latest" and "14" now both default to arm, which will require work to
# properly support, so see if we can fall back to an x86_64 image instead:
runs-on: macos-13
steps:
- name: checkout
uses: actions/checkout@v4
- name: Run sccache-cache only on non-release runs
if: github.event_name != 'release' && github.event_name != 'workflow_dispatch'
uses: mozilla-actions/[email protected]
env:
SCCACHE_GHA_ENABLED: "true"
- name: Install dependencies with Homebrew
env:
HOMEBREW_NO_EMOJI: 1
HOMEBREW_VERBOSE_USING_DOTS: 1
run: |
if test ${{ matrix.compiler }} == clang; then \
COMPILER_FORMULA="clang-build-analyzer"; \
elif test ${{ matrix.compiler }} == gcc; then \
COMPILER_FORMULA="libgccjit"; \
else \
COMPILER_FORMULA=""; \
fi
brew install [email protected] 2>/dev/null || brew link --overwrite [email protected] || (if test -L /usr/local/bin/2to3; then (readlink /usr/local/bin/2to3 && unlink /usr/local/bin/2to3); else rm '/usr/local/bin/2to3'; fi) || which -a 2to3
sync && date && sync
brew install autogen texi2html texinfo deja-gnu expect dmalloc fastjar \
osslsigncode gperf help2man findutils grep coreutils remake byacc \
texlive gawk util-macros autoconf-archive automake scons smake \
termbox termcolor cdk cgdb ncurses groff splint makedepend \
"${COMPILER_FORMULA}"
if test -z "$(which term)" || test ! -x "$(which term)"; then \
brew install term 2>/dev/null || brew install termrec || sync; \
else \
sync && which -a term && stat "$(which term)"; \
fi
if test -z "$(which ant)" || test ! -x "$(which ant)"; then \
brew install ant || brew install [email protected]; \
else \
brew install ant-contrib || stat "$(which ant)"; \
fi
# shellcheck disable=SC2016
if test -d /usr/local/opt/ncurses/bin && test -d /Users/runner && test -w /Users/runner; then \
sync && echo "" >> /Users/runner/.bash_profile; \
sync && echo 'export PATH="/usr/local/opt/ncurses/bin:${PATH}"' | tee -a /Users/runner/.bash_profile; \
if test -r /Users/runner/.bash_profile; then \
sync && echo "/Users/runner/.bash_profile contents are:"; \
sync && cat /Users/runner/.bash_profile && sync; \
fi; \
fi
if test -d /usr/local/opt/ncurses/lib; then \
if test -n "${LDFLAGS}"; then \
export LDFLAGS="${LDFLAGS} -L/usr/local/opt/ncurses/lib"; \
elif test -z "${LDFLAGS}"; then \
export LDFLAGS="-L/usr/local/opt/ncurses/lib"; \
fi; \
fi
if test -d /usr/local/opt/ncurses/include; then \
if test -n "${CPPFLAGS}"; then \
export CPPFLAGS="${CPPFLAGS} -I/usr/local/opt/ncurses/include"; \
elif test -z "${CPPFLAGS}"; then \
export CPPFLAGS="-I/usr/local/opt/ncurses/include"; \
fi; \
fi
if test -d /usr/local/opt/ncurses/lib/pkgconfig; then \
if test -n "${PKG_CONFIG_PATH}"; then \
export PKG_CONFIG_PATH="${PKG_CONFIG_PATH}:/usr/local/opt/ncurses/lib/pkgconfig"; \
elif test -z "${PKG_CONFIG_PATH}"; then \
export PKG_CONFIG_PATH="/usr/local/opt/ncurses/lib/pkgconfig"; \
fi; \
fi
if test ! -e /var/db/locate.database; then \
if test -e /System/Library/LaunchDaemons/com.apple.locate.plist; then \
sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.locate.plist; \
fi; \
elif test -r /var/db/locate.database; then \
sync && stat /var/db/locate.database && du /var/db/locate.database; \
fi
if test -x "$(which sccache)"; then \
if test -z "${CC}"; then \
export CC="sccache ${{ matrix.compiler }}"; \
fi; \
if test -z "${OBJC}"; then \
export OBJC="sccache ${{ matrix.compiler }}"; \
fi; \
fi
if test -d /opt/sw/etc/ && test -z "${PPC_CONFIG_PATH}"; then \
export PPC_CONFIG_PATH=/opt/sw/etc/; \
fi
sync && printf '\n' && sync && date && sync
- run: cd .profile.d && test -e ./.profile_generic && test -r ./.profile_generic && test -s ./.profile_generic && sync && source ./.profile_generic && sync && (env | uniq | sort | uniq | grep -v "\*\*\*" | grep -v "PWD\=") && sync && sleep 1
- run: ./configure --enable-silent-rules --disable-dependency-tracking CC="sccache ${{ matrix.compiler }}" OBJC="sccache ${{ matrix.compiler }}"
- run: make -ki -C libcheckpoint || make -ki -C libcheckpoint -f Makefile_orig || make -ki -C macsbug || make -ki -C macsbug/gdb_plugin_support || (if test -x "$(which ant)"; then ant; else echo "ant missing"; fi)
- run: if test ! -e libcheckpoint/libcheckpoint.dylib; then (sync && echo "ensuring libcheckpoint is built" && sync && make -ki -C libcheckpoint -f Makefile_orig RC_CFLAGS="-std=gnu89 -w -Wno-error" && sync) || (sync && make -ki -C macsbug && sync) || (sync && make -ki -C macsbug/gdb_plugin_support && sync) || (if test -x "$(which ant)"; then ant; else echo "ant missing"; fi); else (sync && stat libcheckpoint/libcheckpoint.dylib && sync); fi
- run: if test -d .. && test -w .. && test ! -e ../gdb; then (sync && echo "symlinking source directory" && sync && pushd .. && sync && ln -sv apple-gdb-1824 gdb && sync && readlink gdb && sync && popd && sync && sleep 1); else (sync && stat .. && sync && ls .. && sync && sleep 1); fi
- run: if test -d .. && test -w .. && test ! -e ../build; then (sync && echo "ensuring a separate build directory exists for ant" && sync && pushd .. && sync && mkdir -pv build && sync && stat build && sync && popd && sync && sleep 1); else (sync && stat .. && sync && ls .. && sync && sleep 1); fi
- run: (if test -n "$(type ant 2>/dev/null)" && test -x "$(which ant)" && test -r build.xml; then if test ! -d build; then mkdir build; elif test ! -d "${HOME}"/work/apple-gdb-1824/build; then mkdir -pv "${HOME}"/work/apple-gdb-1824/build; fi; ant; else (echo "ant missing" && sync); fi) || (if test -x ./gradlew; then (./gradlew build --scan || ./gradlew build || ./gradlew assemble || ./gradlew); elif test -r ./gradlew; then sh ./gradlew; elif test -e ./gradlew; then stat ./gradlew; else echo "gradlewrapper missing"; fi) || (if test -x "$(which gradle)"; then gradle; else echo "gradle missing"; fi) || (if test -x ~rc/bin/buildit; then sudo ~rc/bin/buildit "$(pwd)" -arch ppc -arch i386 -arch armv5 -target cross -project gdb -release RELEASENAME RC_CROSS_ARCHS=armv6; else echo "buildit missing"; fi) || ls
- run: (if test -x ./gradlew; then (./gradlew build --scan || ./gradlew build || ./gradlew assemble || ./gradlew); elif test -r ./gradlew; then sh ./gradlew; elif test -e ./gradlew; then stat ./gradlew; else echo "gradlewrapper missing" >&2; fi) || (if test -x "$(which gradle)"; then gradle; else echo "gradle missing"; fi) || (if test -x ~rc/bin/buildit; then sudo ~rc/bin/buildit "$(pwd)" -arch ppc -arch i386 -arch armv5 -target cross -project gdb -release RELEASENAME RC_CROSS_ARCHS=armv6; else echo "buildit missing"; fi) || ls
- run: cd src && ./configure --disable-werror --disable-opts-test --enable-carbon-framework --enable-debug-symbols-framework --enable-64-bit-bfd --enable-silent-rules --disable-dependency-tracking CC="${{ matrix.compiler }}" OBJC="${{ matrix.compiler }}"
- run: cd src && make configure-zlib
- run: cd src && make configure-bfd
- run: cd src && sync && make -C bfd headers && sync
- run: cd src && if test ! -e bfd/bfd.h; then (sync && make -C bfd bfd.h); else (sync && stat bfd/bfd.h); fi && sync && find . -name bfd.h -print && sync
- run: cd src && make -C bfd diststuff
- run: cd src && make all-zlib
- run: cd src && make all-bfd
- run: if test ! -e macsbug/MacsBug_plugin; then make -ki -C macsbug || make -ki -C macsbug/gdb_plugin_support || (if test -x "$(which ant)"; then ant; else echo "ant missing"; fi); else stat macsbug/MacsBug_plugin; fi
- run: if test ! -e macsbug/gdb_plugin_support/gdb_plugin_support.o; then (sync && make -ki -C macsbug/gdb_plugin_support TARGET_ARCHITECTURE="x86_64" && sync) || (if test -x "$(which ant)"; then ant; else echo "ant missing" >&2; fi) || (for cfile in macsbug/gdb_plugin_support/*.c; do (sccache ${{ matrix.compiler }} -c "${cfile}" || ${{ matrix.compiler }} -c -w -Wno-error "${cfile}" || stat "${cfile}"); done); else stat macsbug/gdb_plugin_support/gdb_plugin_support.o; fi
- run: cd src && make all-opcodes
- run: cd src && make configure-binutils
- name: Backup that annoying arparse.h header
run: |
cd src/binutils
sync && make arparse.h
if test ! -e arparse.h; then \
sync && echo "make my_arparse.h"; \
make my_arparse.h; \
else \
sync && echo "arparse.h exists" && sync && stat arparse.h; \
fi
if test ! -f arparse.h; then \
sync && echo "remake arparse.c"; \
remake arparse.c; \
else \
sync && echo "checking arparse.h length" && sync && wc -l arparse.h; \
fi
# shellcheck disable=SC2046
if test ! -e arparse.h; then \
sync && echo "trying the relevant Makefile rule as copied into this CI workflow"; \
/bin/sh ./../ylwrap arparse.y y.tab.c arparse.c y.tab.h "$(echo arparse.c | sed -e s/cc$/hh/ -e s/cpp$/hpp/ -e s/cxx$/hxx/ -e s/c++$/h++/ -e s/c$/h/)" y.output arparse.output -- $(if [ -f ../bison/bison ]; then echo ../bison/bison -y -L./../bison/; else echo bison -o y.tab.c; fi) -d -t -v -k; \
else \
sync && echo "checking arparse.h disk usage" && sync && du arparse.h; \
fi
if test -e arparse.h; then \
if test ! -e ../bfd/arparse.h; then \
sync && cp -v arparse.h ../bfd; \
elif test ! -e ../include/arparse.h; then \
sync && cp -v arparse.h ../include; \
else \
sync && stat arparse.h; \
fi; \
else \
sync && (ls ./*.h || ls || pwd); \
fi
if test ! -e /var/db/locate.database; then \
if test -e /System/Library/LaunchDaemons/com.apple.locate.plist; then \
if test -z "$(sudo launchctl list | grep locate)"; then \
sync && echo "attempting to ensure that locate will work..."; \
sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.locate.plist; \
else \
sync && echo "printing launchctl jobs related to locate:"; \
sudo launchctl list | grep locate; \
fi; \
elif test -r /System/Library/LaunchDaemons; then \
ls /System/Library/LaunchDaemons/*locate*; \
else \
sync && echo "Warning: missing launchd plist for locate!" >&2; \
fi; \
elif test -r /var/db && test -r /var/db/locate.database; then \
stat /var/db/locate.database && du /var/db/locate.database; \
else \
sleep 1; \
fi
if test -x "$(which locate)"; then \
sync && (locate arparse.h || sleep 1); \
else \
sync && sleep 1; \
fi
sync && find . -name arparse.h -type f -print && sync
- run: cd src && make all-binutils
- run: cd src && make all-cgen && make all-libiberty && make all-intl
- run: cd src && make all-electric-fence
- run: cd src && make all-etc
- run: cd src && make all-libdecnumber
- run: cd src && make all-mmalloc
- run: cd src && make configure-readline
- run: cd src && for dir in libtool_gnu sim utils tcl expect dejagnu itcl tk libgui; do if test -e ${dir}/configure; then (echo "configuring in ${dir}" && make configure-${dir} && ls ${dir}/config*); elif test -d ${dir}; then ls ${dir}/configure*; else echo "skipping configuring in ${dir}"; fi; done
- run: cd src && for dir in sim utils tcl expect dejagnu itcl tk libgui; do if test -e ${dir}/Makefile; then (echo "building in ${dir}" && make -C ${dir}); elif test -d ${dir}; then ls ${dir}/Makefile*; else echo "skipping ${dir}"; fi; done
- run: cd src && (make all-readline || (pushd readline && (make depend || make stamp-framework-headers) && popd) || make am--refresh)
- run: cd src && make configure-gdb
- run: cd src && make all-gdb
- name: bootstrap libtool
run: |
cd src/libtool_gnu
# TODO: [email protected] and [email protected] formulae are deprecated;
# replace with just autoconf when they move to disabled:
if test -z "$(which autoconf)" || test ! -x "$(which autoconf)"; then \
brew install [email protected] || brew install [email protected] || brew install m4 || ls "configure*"; \
else \
sync && echo "autoconf available at $(which autoconf)"; \
fi
if test -z "$(which gm4)" || test ! -x "$(which gm4)"; then \
brew install m4 || brew analytics on || find . -name '*.m4' -print; \
else \
sync && echo "the following gm4 binaries are available"; \
which -a gm4 || gwhich -a gm4 || type gm4; \
sync && echo "…and the first of them has the following information"; \
sync && gm4 --version; \
sync && gm4 --help; \
fi
./bootstrap || stat ./bootstrap || test -x ./bootstrap
if test libltdl/configure -ot libltdl/configure.ac; then \
if test -x libltdl/configure && test -s libltdl/configure; then \
sync && echo "touch libltdl/configure"; \
touch libltdl/configure; \
elif test -x libltdl/configure~ && test -s libltdl/configure~; then \
cp -vf libltdl/configure~ libltdl/configure; \
elif test -x "$(which sync)"; then \
which sync && sync; \
else \
echo "no sync... configure-related timestamps might be off?"; \
fi; \
fi
if test libltdl/Makefile.in -ot libltdl/Makefile.am; then \
sync && echo "test -s libltdl/Makefile.in && touch libltdl/Makefile.in"; \
test -s libltdl/Makefile.in && touch libltdl/Makefile.in; \
fi
if test libltdl/Makefile -ot libltdl/Makefile.in; then \
sync && echo "test -s libltdl/Makefile && touch libltdl/Makefile"; \
test -s libltdl/Makefile && touch libltdl/Makefile; \
fi
for subdir in libltdl libltdl/loaders libtool_gnu/libltdl/loaders loaders; do \
if test -d "${subdir}" && test -w "${subdir}" && test ! -d "${subdir}"/.deps; then \
sync && mkdir -pv "${subdir}"/.deps; \
if test -w "${subdir}"/.deps && test ! -e "${subdir}"/.deps/.dirstamp; then \
sync && echo "touch ${subdir}/.deps/.dirstamp"; \
touch "${subdir}"/.deps/.dirstamp; \
else \
sync && echo "skipping touching .dirstamp for just-created ${subdir}/.deps"; \
fi; \
elif test -e "${subdir}"/.deps; then \
stat "${subdir}"/.deps; \
if test -w "${subdir}"/.deps && test ! -e "${subdir}"/.deps/.dirstamp; then \
sync && echo "touch ${subdir}/.deps/.dirstamp"; \
touch "${subdir}"/.deps/.dirstamp; \
else \
sync && echo "skipping touching .dirstamp for already-existing ${subdir}/.deps"; \
fi; \
elif test -r "${subdir}"; then \
(find "${subdir}" -name '*.Plo' -print) || echo "depfiles may be missing for ${subdir}"; \
elif test -x "$(which sync)"; then \
sync && echo "${subdir} seems to be missing (checking from $(pwd))"; \
else \
echo "warning, unhandled possibility for ${subdir} (missing sync?)"; \
fi; \
if test -r "${subdir}"/Makefile && test -s "${subdir}"/Makefile && test -w "${subdir}"; then \
pushd "${subdir}"; \
sync && echo "attempting to ensure depfiles are fine in ${subdir}…"; \
make am--depfiles || make am--refresh || make distdir-am || stat Makefile; \
popd; \
else \
sync && echo "no usable Makefile found in ${subdir}; skipping attempt at depfile regeneration in it"; \
fi; \
if test -r "${subdir}"/.deps; then \
(find "${subdir}" -name '*.Tpo' -print) || echo "depfile generation may have failed for ${subdir}"; \
elif test -d "${subdir}" && test ! -d "${subdir}"/.deps; then \
sync && echo "depdir generation may have failed for ${subdir}"; \
elif test ! -d "${subdir}"; then \
sync && echo "warning, ${subdir} is not an extant subdirectory"; \
else \
sync && echo "warning, something about ${subdir} may require fixing"; \
fi; \
done
sync && echo "hopefully libtool_gnu timestamps will be fine..."
- name: Full build to get anything that might have been missed
run: |
cd src
touch config.log || chmod +w config.log || ls ./*.log
if test -x "$(which nproc)" && test "$(nproc)" -ge 2; then \
sync && echo "nproc says we can use $(nproc) build jobs"; \
if test "$(nproc)" -eq 4; then \
sync && echo "Full build step: special-casing the 4-job build case…"; \
(make -j"$(nproc)" || make -j2 || make || remake -dpPw --verbosity=terse >>config.log || remake --trace=noshell --verbosity=terse >>config.log || remake all-gdb >>config.log || clear || stat Makefile); \
else
(make -j"$(nproc)" || make || remake -dpPw --verbosity=terse >>config.log || remake --trace=noshell --verbosity=terse >>config.log || remake all-gdb >>config.log || clear || stat Makefile); \
fi; \
elif test -x "$(which gnproc)" && test "$(gnproc)" -ge 2; then \
sync && echo "gnproc says we can use $(gnproc) build jobs"; \
(make -j"$(gnproc)" || make || remake -dpPw --verbosity=terse >>config.log || remake --trace=noshell --verbosity=terse >>config.log || remake all-gdb >>config.log || clear || stat Makefile); \
else \
sync && echo "Full build step: on the slow path..."; \
(make || remake -dpPw --verbosity=terse >>config.log || remake --trace=noshell --verbosity=terse >>config.log || remake all-gdb >>config.log || clear || stat Makefile); \
fi
sync && echo "Reached end of full build phase..."
- run: cd src && make check-zlib && sync && make check-libiberty
- run: cd src && sync && make -C tcl/unix tcltest && sync
- run: cd src && for dir in cgen sim expect dejagnu itcl libgui; do if test -r ${dir}/Makefile; then (sync && echo "running testsuite for ${dir}" && sync && make check-${dir} V=0 RUNTESTFLAGS="-v" && sync); elif test -d ${dir}; then ls ${dir}/Makefile*; else echo "skipping testing ${dir}"; fi; done
- name: Possibly do static analysis
run: |
cd src
if test ${{ matrix.compiler }} == clang; then \
if test -x "$(which nproc)" && test "$(nproc)" -ge 2; then \
sync && echo "check: nproc says we can use $(nproc) build jobs"; \
if test "$(nproc)" -eq 4; then \
sync && echo "bfd/binutils: special-casing the -j4 build case…"; \
time (make -j"$(nproc)" check-bfd || make -j2 check-bfd || make check-bfd)
sync && echo "done w/bfd (at -j4); moving onto binutils next…"; \
time (make -j"$(nproc)" check-binutils-local || make -j2 check-binutils-local || make check-binutils-local); \
else \
time (make -j"$(nproc)" check-bfd || make check-bfd); \
sync && echo "done w/bfd (at -j$(nproc)); moving onto binutils next…"; \
time (make -j"$(nproc)" check-binutils-local || make check-binutils-local); \
fi; \
elif test -x "$(which gnproc)" && test "$(gnproc)" -ge 2; then \
sync && echo "check: gnproc says we can use $(gnproc) build jobs"; \
time (make -j"$(gnproc)" check-bfd || make check-bfd); \
sync && echo "done w/bfd (at -j$(gnproc)); moving onto binutils next…"; \
time (make -j"$(gnproc)" check-binutils-local || make check-binutils-local); \
else \
sync && echo "bfd & binutils static analysis: on the slow path…"; \
time make check-bfd; \
sync && echo "done with bfd; moving onto binutils next..."; \
time make check-binutils-local; \
fi; \
sync && echo "done with binutils; moving onto mmalloc next..."; \
time make check-mmalloc; \
sync && echo "done with mmalloc; moving onto electrict-fence next…"; \
cd electric-fence; \
make check stamp-framework ls; \
sync && echo "done with electric-fence..." && sync; \
elif test ${{ matrix.compiler }} == gcc; then \
sync && echo "getting some additional dependencies..."; \
brew install idutils 2>/dev/null || brew install ctags || brew install universal-ctags || brew install emacs || brew install global || brew install cscope; \
if test -z "$(which etags)" || test ! -x "$(which etags)"; then \
brew install emacs 2>/dev/null || brew install --cask emacs || stat "$(which emacs)" || echo "etags missing"; \
else \
sync && echo "etags available as $(which etags)"; \
fi; \
if test -z "$(which gtags)" || test ! -x "$(which gtags)"; then \
brew install global 2>/dev/null || which global || echo "gtags missing"; \
else \
sync && echo "gtags available as $(which gtags)"; \
fi; \
if test -z "$(which cscope)" || test ! -x "$(which cscope)"; then \
brew install cscope || stat "$(which cscope)" || echo "cscope missing"; \
else \
sync && echo "cscope available as $(which cscope)"; \
fi; \
if test -z "$(which shellcheck)" || test ! -x "$(which shellcheck)"; then \
brew install shellcheck || stat "$(which shellcheck)" || echo "shellcheck missing"; \
else \
sync && echo "shellcheck available as $(which shellcheck)"; \
fi; \
if test -z "$(which lcov)" || test ! -x "$(which lcov)"; then \
brew install lcov || stat "$(which lcov)" || echo "lcov missing"; \
else \
sync && echo "lcov available as $(which lcov)"; \
fi; \
pushd bfd; \
sync && make check-DEJAGNU; \
shellcheck ./development.sh || shellcheck ./ltmain.sh || ls ./*.sh; \
popd; \
pushd binutils; \
make am_check-DEJAGNU || make check-DEJAGNU || make check-TESTS; \
make check-recursive || make cscope || make ID || make TAGS || make CTAGS || make GTAGS || make recheck || stat Makefile; \
make info || make dvi || make embedspu || make stamp-framework-binutils; \
sync && echo "done with make targets for binutils; using script manually next…"; \
sh ./sanity.sh || shellcheck ./sanity.sh || stat ./sanity.sh; \
shellcheck ./embedspu.sh || shellcheck ./ranlib.sh || ls ./*.sh; \
popd; \
sync && echo "done with binutils; moving on to mmalloc next..."; \
pushd mmalloc; \
sync && make info dvi stamp-framework-headers ls; \
popd; \
sync && echo "done with mmalloc; moving on to electric-fence next…"; \
pushd electric-fence; \
sync && make check info stamp-framework ls; \
popd; \
sync && echo "done with electric-fence; moving on to readline next…"; \
pushd readline; \
if test -e static; then mv -v static static.orig; fi; \
make clean || make clean-local || make mostlyclean || make mostlyclean-local; \
make lint || make lint-local || make my_TAGS || make tags-local; \
if test ! -e TAGS; then \
make my_TAGS || make tags-local || make ID || make TAGS || touch TAGS; \
elif test -r TAGS; then \
stat TAGS && wc -l TAGS && du TAGS; \
else \
sync && echo "nothing to do about TAGS in $(pwd)"; \
fi; \
make info || make dvi || make stamp-framework-headers; \
popd; \
sync && echo "done with readline..." && sync; \
else \
sync && echo "error, unhandled compiler!" >&2 && exit 1; \
fi
- run: cd src && sync && make check-opcodes && sync && make check-intl && sync
# (check-binutils target is now moved into the static analysis step)
- run: cd src && make check-utils && sync && make check-texinfo_js
- name: Cleanup and summary
if: "${{ success() }}"
run: |
sync && echo "Cleaning up..."
find . -name '*.dSYM' -delete || echo "dSYM-cleaning step ineffective"
find . -name 'autom4te.cache' -delete || echo "acclean step ineffective"
find . -name '.deps' -delete || echo "deps-cleaning step ineffective"
find . -name '.libs' -delete || echo "libs-cleaning step ineffective"
sync && echo "...done cleaning up."
time (sync && pwd && sync && ls && sync && du && sync && df && sync)
- name: Upload a Build Artifact
uses: actions/[email protected]
if: "${{ always() }}"
with:
# Artifact name
name: apple-gdb-1824-macos-${{ matrix.compiler }}-logfiles-${{ github.sha }}
# A file, directory or wildcard pattern that describes what to upload
path: |
**/*.log
- run: find . -name config.log -print0 | xargs -0 cat | grep -i error | sort | uniq
if: "${{ failure() }}"
strategy:
fail-fast: false
matrix:
compiler:
- clang
- gcc