mirror of
https://github.com/Relintai/sdl2_frt.git
synced 2024-12-16 11:06:49 +01:00
0e45984fa0
The internal function SDL_EGL_LoadLibrary() did not delete and remove a mostly uninitialized data structure if loading the library first failed. A later try to use EGL then skipped initialization and assumed it was previously successful because the data structure now already existed. This led to at least one crash in the internal function SDL_EGL_ChooseConfig() because a NULL pointer was dereferenced to make a call to eglBindAPI().
94 lines
2.3 KiB
Bash
Executable File
94 lines
2.3 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# This is a script used by some Buildbot buildslaves to push the project
|
|
# through Clang's static analyzer and prepare the output to be uploaded
|
|
# back to the buildmaster. You might find it useful too.
|
|
|
|
# Install Clang (you already have it on Mac OS X, apt-get install clang
|
|
# on Ubuntu, etc),
|
|
# or download checker at http://clang-analyzer.llvm.org/ and unpack it in
|
|
# /usr/local ... update CHECKERDIR as appropriate.
|
|
|
|
FINALDIR="$1"
|
|
|
|
CHECKERDIR="/usr/local/checker-276"
|
|
if [ ! -d "$CHECKERDIR" ]; then
|
|
echo "$CHECKERDIR not found. Trying /usr/share/clang ..." 1>&2
|
|
CHECKERDIR="/usr/share/clang/scan-build"
|
|
fi
|
|
|
|
if [ ! -d "$CHECKERDIR" ]; then
|
|
echo "$CHECKERDIR not found. Giving up." 1>&2
|
|
exit 1
|
|
fi
|
|
|
|
if [ -z "$MAKE" ]; then
|
|
OSTYPE=`uname -s`
|
|
if [ "$OSTYPE" == "Linux" ]; then
|
|
NCPU=`cat /proc/cpuinfo |grep vendor_id |wc -l`
|
|
let NCPU=$NCPU+1
|
|
elif [ "$OSTYPE" = "Darwin" ]; then
|
|
NCPU=`sysctl -n hw.ncpu`
|
|
elif [ "$OSTYPE" = "SunOS" ]; then
|
|
NCPU=`/usr/sbin/psrinfo |wc -l |sed -e 's/^ *//g;s/ *$//g'`
|
|
else
|
|
NCPU=1
|
|
fi
|
|
|
|
if [ -z "$NCPU" ]; then
|
|
NCPU=1
|
|
elif [ "$NCPU" = "0" ]; then
|
|
NCPU=1
|
|
fi
|
|
|
|
MAKE="make -j$NCPU"
|
|
fi
|
|
|
|
echo "\$MAKE is '$MAKE'"
|
|
|
|
set -x
|
|
set -e
|
|
|
|
cd `dirname "$0"`
|
|
cd ..
|
|
|
|
rm -rf checker-buildbot analysis
|
|
if [ ! -z "$FINALDIR" ]; then
|
|
rm -rf "$FINALDIR"
|
|
fi
|
|
|
|
mkdir checker-buildbot
|
|
cd checker-buildbot
|
|
|
|
# You might want to do this for CMake-backed builds instead...
|
|
PATH="$CHECKERDIR:$PATH" scan-build -o analysis cmake -DCMAKE_BUILD_TYPE=Debug ..
|
|
|
|
# ...or run configure without the scan-build wrapper...
|
|
#CC="$CHECKERDIR/libexec/ccc-analyzer" CFLAGS="-O0" ../configure
|
|
|
|
# ...but this works for our buildbots just fine (EXCEPT ON LATEST MAC OS X).
|
|
#CFLAGS="-O0" PATH="$CHECKERDIR:$PATH" scan-build -o analysis ../configure
|
|
|
|
rm -rf analysis
|
|
PATH="$CHECKERDIR:$PATH" scan-build -o analysis $MAKE
|
|
mv analysis/* ../analysis
|
|
rmdir analysis # Make sure this is empty.
|
|
cd ..
|
|
chmod -R a+r analysis
|
|
chmod -R go-w analysis
|
|
find analysis -type d -exec chmod a+x {} \;
|
|
if [ -x /usr/bin/xattr ]; then find analysis -exec /usr/bin/xattr -d com.apple.quarantine {} \; 2>/dev/null ; fi
|
|
|
|
if [ ! -z "$FINALDIR" ]; then
|
|
mv analysis "$FINALDIR"
|
|
else
|
|
FINALDIR=analysis
|
|
fi
|
|
|
|
rm -rf checker-buildbot
|
|
|
|
echo "Done. Final output is in '$FINALDIR' ..."
|
|
|
|
# end of checker-buildbot.sh ...
|
|
|