aboutsummaryrefslogtreecommitdiff
path: root/projects/gdal
diff options
context:
space:
mode:
authorEven Rouault <even.rouault@mines-paris.org>2017-05-15 05:45:29 +0200
committerAbhishek Arya <inferno@chromium.org>2017-05-14 20:45:29 -0700
commit1bb7bfdcab298ac74d397356b0b54d49fdc2f9ec (patch)
treef6516210e3fe849a33e76a0d93c5f4077d462671 /projects/gdal
parent33c1ed629d4808238c5a25e994cd9c854fe5f8d5 (diff)
downloadoss-fuzz-1bb7bfdcab298ac74d397356b0b54d49fdc2f9ec.tar.gz
GDAL: add more dependencies by using system static libraries (#607)
Use static versions of Ubuntu -dev libraries. Add: lzma, xerces, webp Use external version of libz, libpng, libgif instead of GDAL internal copies.
Diffstat (limited to 'projects/gdal')
-rw-r--r--projects/gdal/Dockerfile12
-rwxr-xr-xprojects/gdal/build.sh35
2 files changed, 4 insertions, 43 deletions
diff --git a/projects/gdal/Dockerfile b/projects/gdal/Dockerfile
index 8a64338a3..1b803dd60 100644
--- a/projects/gdal/Dockerfile
+++ b/projects/gdal/Dockerfile
@@ -16,17 +16,9 @@
FROM gcr.io/oss-fuzz-base/base-builder
MAINTAINER even.rouault@spatialys.com
-# curl needed to fetch sqlite3
-# tcl needed to build sqlite3
-# docbook2x needed o build expat
-RUN apt-get update && apt-get install -y make autoconf automake libtool g++ curl tcl docbook2x
-# libpng12-dev libjpeg-dev libgif-dev liblzma-dev libgeos-dev libcurl4-gnutls-dev libproj-dev libxml2-dev libexpat-dev libxerces-c-dev libnetcdf-dev netcdf-bin libpoppler-dev libspatialite-dev libhdf4-alt-dev libhdf5-serial-dev poppler-utils libfreexl-dev unixodbc-dev libwebp-dev libepsilon-dev libpcre3-dev
+RUN apt-get update && apt-get install -y make autoconf automake libtool g++ zlib1g-dev libsqlite3-dev libexpat-dev liblzma-dev libxerces-c-dev libpng12-dev libgif-dev libwebp-dev libicu-dev
+# libgeos-dev libjpeg-dev libcurl4-gnutls-dev libproj-dev libxml2-dev libnetcdf-dev netcdf-bin libpoppler-dev libspatialite-dev libhdf4-alt-dev libhdf5-serial-dev poppler-utils libfreexl-dev unixodbc-dev libepsilon-dev libpcre3-dev
# libpodofo-dev libcrypto++-dev
RUN git clone --depth 1 https://github.com/OSGeo/gdal gdal
-RUN git clone --depth 1 https://github.com/libexpat/libexpat gdal/libexpat
-RUN mkdir gdal/sqlite3 && \
- cd gdal/sqlite3 && \
- curl 'https://www.sqlite.org/src/tarball?uuid=trunk' -o sqlite3.tar.gz && \
- tar xzf sqlite3.tar.gz
WORKDIR gdal
COPY build.sh $SRC/
diff --git a/projects/gdal/build.sh b/projects/gdal/build.sh
index 6b49c73b9..d7f9e1e61 100755
--- a/projects/gdal/build.sh
+++ b/projects/gdal/build.sh
@@ -15,44 +15,13 @@
#
################################################################################
-# build expat
-cd libexpat/expat
-./buildconf.sh
-./configure --disable-shared --prefix=$SRC/install
-make clean -s
-make -j$(nproc) -s
-make install
-cd ../..
-
-# build sqlite3
-# Taken from https://github.com/google/oss-fuzz/blob/master/projects/sqlite3/build.sh
-
-export ASAN_OPTIONS=detect_leaks=0
-
-# Limit max length of data blobs and sql queries to prevent irrelevant OOMs.
-# Also limit max memory page count to avoid creating large databases.
-OLD_CFLAGS=$CFLAGS
-export CFLAGS="$CFLAGS -DSQLITE_MAX_LENGTH=128000000 \
- -DSQLITE_MAX_SQL_LENGTH=128000000 \
- -DSQLITE_MAX_MEMORY=25000000 \
- -DSQLITE_PRINTF_PRECISION_LIMIT=1048576 \
- -DSQLITE_DEBUG=1 \
- -DSQLITE_MAX_PAGE_COUNT=16384"
-
-cd sqlite3
-./configure --disable-shared --prefix=$SRC/install
-make clean -s
-make -j$(nproc) -s
-make install
-cd ..
-export CFLAGS=$OLD_CFLAGS
-
# build gdal
cd gdal
export LDFLAGS=${CXXFLAGS}
-./configure --without-libtool --with-expat=$SRC/install --with-sqlite3=$SRC/install
+./configure --without-libtool --with-liblzma --with-expat --with-sqlite3 --with-xerces --with-webp
make clean -s
make -j$(nproc) -s
+export EXTRA_LIBS="-Wl,-Bstatic -lwebp -llzma -lexpat -lsqlite3 -lgif -lpng12 -lz -lxerces-c -licuuc -licudata -Wl,-Bdynamic -ldl -lpthread"
./fuzzers/build_google_oss_fuzzers.sh
./fuzzers/build_seed_corpus.sh