commit 3757d42266e14cb4711837adfba28fd0ca019551
parent afb063af263a04a637adaf84fb99a914fef9cba7
Author: Remy Noulin <loader2x@gmail.com>
Date: Thu, 2 Jan 2020 15:56:12 +0100
add support for libasan
.gitignore | 2 ++
buildAsan.sh | 34 ++++++++++++++++++++++++++++++++++
buildMemcheck.sh | 2 +-
buildMusl.sh | 2 +-
buildMuslMemcheck.sh | 2 +-
clean.sh | 2 +-
homeMake.sh | 2 ++
install.sh | 2 ++
make.sh | 2 ++
uninstall.sh | 2 +-
10 files changed, 47 insertions(+), 5 deletions(-)
Diffstat:
10 files changed, 47 insertions(+), 5 deletions(-)
diff --git a/.gitignore b/.gitignore
@@ -52,6 +52,8 @@ release/libsheepy.a
release/libsheepy.so
release/libsheepyMemcheck.a
release/libsheepyMemcheck.so
+release/libsheepyAsan.a
+release/libsheepyAsan.so
src/json/ar.log
src/json/demoDynamic
src/json/demoStatic
diff --git a/buildAsan.sh b/buildAsan.sh
@@ -0,0 +1,34 @@
+# compile libsheepy without recycling (see libsheepyObject.h for more information)
+
+CC="gcc -g3 -std=gnu99 -fPIC -pipe -mrdrnd -pthread -DrecycleContainers=0 -fsanitize=address -fno-omit-frame-pointer -fsanitize-recover=address"
+STATIC="ar -cvq"
+DYNAMIC="-shared -fsanitize=address -lasan"
+
+echo "Compiling C files"
+$CC -c release/libsheepy.c
+$CC -c release/libsheepySmall.c
+$CC -c src/json/libsheepyObject.c
+$CC -c src/json/libsheepyCSmallJson.c
+$CC -c src/json/libsheepyCUndefined.c
+$CC -c src/json/libsheepyCSmallDict.c
+$CC -c src/json/libsheepyCSmallArray.c
+$CC -c src/json/libsheepyCSmallBytes.c
+$CC -c src/json/libsheepyCSmallBool.c
+$CC -c src/json/libsheepyCSmallContainer.c
+$CC -c src/json/libsheepyCSmallDouble.c
+$CC -c src/json/libsheepyCSmallInt.c
+$CC -c src/json/libsheepyCSmallString.c
+$CC -c src/json/laxjson.c
+$CC -c src/json/ymlParser.c
+$CC -c src/json/ymlApi.c
+$CC -c src/json/ymlScanner.c
+$CC -c src/json/ymlReader.c
+$CC -c src/tpool.c
+
+wait
+
+echo "Building static lib"
+$STATIC release/libsheepyAsan.a libsheepy.o libsheepySmall.o libsheepyObject.o libsheepyCSmallJson.o libsheepyCUndefined.o libsheepyCSmallDict.o libsheepyCSmallArray.o libsheepyCSmallBytes.o libsheepyCSmallBool.o libsheepyCSmallContainer.o libsheepyCSmallDouble.o libsheepyCSmallInt.o libsheepyCSmallString.o laxjson.o ymlParser.o ymlApi.o ymlScanner.o ymlReader.o tpool.o
+
+echo "Building dynamic lib"
+$CC $DYNAMIC -o release/libsheepyAsan.so libsheepy.o libsheepySmall.o libsheepyObject.o libsheepyCSmallJson.o libsheepyCUndefined.o libsheepyCSmallDict.o libsheepyCSmallArray.o libsheepyCSmallBytes.o libsheepyCSmallBool.o libsheepyCSmallContainer.o libsheepyCSmallDouble.o libsheepyCSmallInt.o libsheepyCSmallString.o laxjson.o ymlParser.o ymlApi.o ymlScanner.o ymlReader.o tpool.o
diff --git a/buildMemcheck.sh b/buildMemcheck.sh
@@ -29,4 +29,4 @@ echo "Building static lib"
$STATIC release/libsheepyMemcheck.a libsheepy.o libsheepySmall.o libsheepyObject.o libsheepyCSmallJson.o libsheepyCUndefined.o libsheepyCSmallDict.o libsheepyCSmallArray.o libsheepyCSmallBytes.o libsheepyCSmallBool.o libsheepyCSmallContainer.o libsheepyCSmallDouble.o libsheepyCSmallInt.o libsheepyCSmallString.o laxjson.o ymlParser.o ymlApi.o ymlScanner.o ymlReader.o tpool.o
echo "Building dynamic lib"
-$CC $DYNAMIC -o release/libsheepyMemcheck.so release/libsheepy.c release/libsheepySmall.c src/json/libsheepyObject.c src/json/libsheepyCSmallJson.c src/json/libsheepyCUndefined.c src/json/libsheepyCSmallDict.c src/json/libsheepyCSmallArray.c src/json/libsheepyCSmallBytes.c src/json/libsheepyCSmallBool.c src/json/libsheepyCSmallContainer.c src/json/libsheepyCSmallDouble.c src/json/libsheepyCSmallInt.c src/json/libsheepyCSmallString.c src/json/laxjson.c src/json/ymlParser.c src/json/ymlApi.c src/json/ymlScanner.c src/json/ymlReader.c src/tpool.c
+$CC $DYNAMIC -o release/libsheepyMemcheck.so libsheepy.o libsheepySmall.o libsheepyObject.o libsheepyCSmallJson.o libsheepyCUndefined.o libsheepyCSmallDict.o libsheepyCSmallArray.o libsheepyCSmallBytes.o libsheepyCSmallBool.o libsheepyCSmallContainer.o libsheepyCSmallDouble.o libsheepyCSmallInt.o libsheepyCSmallString.o laxjson.o ymlParser.o ymlApi.o ymlScanner.o ymlReader.o tpool.o
diff --git a/buildMusl.sh b/buildMusl.sh
@@ -27,4 +27,4 @@ echo "Building static lib"
$STATIC release/libsheepy.a libsheepy.o libsheepySmall.o libsheepyObject.o libsheepyCSmallJson.o libsheepyCUndefined.o libsheepyCSmallDict.o libsheepyCSmallArray.o libsheepyCSmallBytes.o libsheepyCSmallBool.o libsheepyCSmallContainer.o libsheepyCSmallDouble.o libsheepyCSmallInt.o libsheepyCSmallString.o laxjson.o ymlParser.o ymlApi.o ymlScanner.o ymlReader.o tpool.o
echo "Building dynamic lib"
-$CC $DYNAMIC -o release/libsheepy.so release/libsheepy.c release/libsheepySmall.c src/json/libsheepyObject.c src/json/libsheepyCSmallJson.c src/json/libsheepyCUndefined.c src/json/libsheepyCSmallDict.c src/json/libsheepyCSmallArray.c src/json/libsheepyCSmallBytes.c src/json/libsheepyCSmallBool.c src/json/libsheepyCSmallContainer.c src/json/libsheepyCSmallDouble.c src/json/libsheepyCSmallInt.c src/json/libsheepyCSmallString.c src/json/laxjson.c src/json/ymlParser.c src/json/ymlApi.c src/json/ymlScanner.c src/json/ymlReader.c src/tpool.c
+$CC $DYNAMIC -o release/libsheepy.so libsheepySmall.o libsheepyObject.o libsheepyCSmallJson.o libsheepyCUndefined.o libsheepyCSmallDict.o libsheepyCSmallArray.o libsheepyCSmallBytes.o libsheepyCSmallBool.o libsheepyCSmallContainer.o libsheepyCSmallDouble.o libsheepyCSmallInt.o libsheepyCSmallString.o laxjson.o ymlParser.o ymlApi.o ymlScanner.o ymlReader.o tpool.o
diff --git a/buildMuslMemcheck.sh b/buildMuslMemcheck.sh
@@ -29,4 +29,4 @@ echo "Building static lib"
$STATIC release/libsheepyMemcheck.a libsheepy.o libsheepySmall.o libsheepyObject.o libsheepyCSmallJson.o libsheepyCUndefined.o libsheepyCSmallDict.o libsheepyCSmallArray.o libsheepyCSmallBytes.o libsheepyCSmallBool.o libsheepyCSmallContainer.o libsheepyCSmallDouble.o libsheepyCSmallInt.o libsheepyCSmallString.o laxjson.o ymlParser.o ymlApi.o ymlScanner.o ymlReader.o tpool.o
echo "Building dynamic lib"
-$CC $DYNAMIC -o release/libsheepyMemcheck.so release/libsheepy.c release/libsheepySmall.c src/json/libsheepyObject.c src/json/libsheepyCSmallJson.c src/json/libsheepyCUndefined.c src/json/libsheepyCSmallDict.c src/json/libsheepyCSmallArray.c src/json/libsheepyCSmallBytes.c src/json/libsheepyCSmallBool.c src/json/libsheepyCSmallContainer.c src/json/libsheepyCSmallDouble.c src/json/libsheepyCSmallInt.c src/json/libsheepyCSmallString.c src/json/laxjson.c src/json/ymlParser.c src/json/ymlApi.c src/json/ymlScanner.c src/json/ymlReader.c src/tpool.c
+$CC $DYNAMIC -o release/libsheepyMemcheck.so libsheepy.o libsheepySmall.o libsheepyObject.o libsheepyCSmallJson.o libsheepyCUndefined.o libsheepyCSmallDict.o libsheepyCSmallArray.o libsheepyCSmallBytes.o libsheepyCSmallBool.o libsheepyCSmallContainer.o libsheepyCSmallDouble.o libsheepyCSmallInt.o libsheepyCSmallString.o laxjson.o ymlParser.o ymlApi.o ymlScanner.o ymlReader.o tpool.o
diff --git a/clean.sh b/clean.sh
@@ -1 +1 @@
-rm libsheepy.o libsheepySmall.o libsheepyObject.o libsheepyCSmallJson.o libsheepyCUndefined.o libsheepyCSmallDict.o libsheepyCSmallArray.o libsheepyCSmallBytes.o libsheepyCSmallBool.o libsheepyCSmallContainer.o libsheepyCSmallDouble.o libsheepyCSmallInt.o libsheepyCSmallString.o laxjson.o ymlParser.o ymlApi.o ymlScanner.o ymlReader.o tpool.o release/libsheepy.a release/libsheepy.so release/libsheepyMemcheck.a release/libsheepyMemcheck.so
+rm libsheepy.o libsheepySmall.o libsheepyObject.o libsheepyCSmallJson.o libsheepyCUndefined.o libsheepyCSmallDict.o libsheepyCSmallArray.o libsheepyCSmallBytes.o libsheepyCSmallBool.o libsheepyCSmallContainer.o libsheepyCSmallDouble.o libsheepyCSmallInt.o libsheepyCSmallString.o laxjson.o ymlParser.o ymlApi.o ymlScanner.o ymlReader.o tpool.o release/libsheepy.a release/libsheepy.so release/libsheepyMemcheck.a release/libsheepyMemcheck.so release/libsheepyAsan.a release/libsheepyAsan.so
diff --git a/homeMake.sh b/homeMake.sh
@@ -8,6 +8,8 @@ rm genMake
echo Building libsheepy without container recycling for memcheck
./cleanObjects.sh
./buildMemcheck.sh
+./cleanObjects.sh
+./buildAsan.sh
#./install.sh
# compiling using make:
diff --git a/install.sh b/install.sh
@@ -7,3 +7,5 @@ cp release/libsheepy.a /usr/local/lib/
cp release/libsheepy.so /usr/local/lib/
cp release/libsheepyMemcheck.a /usr/local/lib/
cp release/libsheepyMemcheck.so /usr/local/lib/
+cp release/libsheepyAsan.a /usr/local/lib/
+cp release/libsheepyAsan.so /usr/local/lib/
diff --git a/make.sh b/make.sh
@@ -6,6 +6,8 @@ rm genMake
echo Building libsheepy without container recycling for memcheck
./cleanObjects.sh
./buildMemcheck.sh
+./cleanObjects.sh
+./buildAsan.sh
./install.sh
# compiling using make:
diff --git a/uninstall.sh b/uninstall.sh
@@ -1,2 +1,2 @@
-rm -rf /usr/local/include/libsheepy.h /usr/local/include/libsheepySmall.h /usr/local/include/libsheepyObject.h /usr/local/include/tpool.h /usr/local/include/json /usr/local/lib/libsheepy.a /usr/local/lib/libsheepy.so
+rm -rf /usr/local/include/libsheepy.h /usr/local/include/libsheepySmall.h /usr/local/include/libsheepyObject.h /usr/local/include/tpool.h /usr/local/include/json /usr/local/lib/libsheepy.a /usr/local/lib/libsheepy.so /usr/local/lib/libsheepyAsan.a /usr/local/lib/libsheepyAsan.so