Squashed 'gitstatus/' changes from 0440e38b..1edd9e62

1edd9e62 build: respect standard compiler/linker env vars and fortify by default

git-subtree-dir: gitstatus
git-subtree-split: 1edd9e621ec5c8bf038767e529194b5c53b36352
pull/1499/head
Roman Perepelitsa 3 years ago
parent 077abf95e0
commit 70ae5810d8

68
build

@ -136,52 +136,78 @@ case "$gitstatus_cpu" in
*) archflag="-march";; *) archflag="-march";;
esac esac
cflags="$archflag=$gitstatus_cpu -fno-plt" cflags="$archflag=$gitstatus_cpu -fno-plt -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fpie"
ldflags=
command touch "$workdir"/file-prefix-map-test.c static_pie=
if 2>/dev/null "${CC:-/bin/cc}" \
-ffile-prefix-map=x=y \ printf 'int main() {}\n' >"$workdir"/cc-test.c
-c "$workdir"/file-prefix-map-test.c \ if 2>/dev/null "${CC:-cc}" \
-o "$workdir"/file-prefix-map-test.o; then -ffile-prefix-map=x=y \
-Werror \
-c "$workdir"/cc-test.c \
-o "$workdir"/cc-test.o; then
cflags="$cflags -ffile-prefix-map=$workdir/=" cflags="$cflags -ffile-prefix-map=$workdir/="
fi fi
command rm -f -- "$workdir"/cc-test "$workdir"/cc-test.o
if 2>/dev/null "${CC:-cc}" \
-fstack-clash-protection -fcf-protection \
-Werror \
-c "$workdir"/cc-test.c \
-o "$workdir"/cc-test.o; then
cflags="$cflags -fstack-clash-protection -fcf-protection"
fi
command rm -f -- "$workdir"/cc-test "$workdir"/cc-test.o
if 2>/dev/null "${CC:-cc}" \
-Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now \
-Werror \
"$workdir"/cc-test.c \
-o "$workdir"/cc-test; then
ldflags="$ldflags -Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now"
fi
command rm -f -- "$workdir"/cc-test "$workdir"/cc-test.o
if 2>/dev/null "${CC:-cc}" \
-fpie -static-pie \
-Werror \
"$workdir"/cc-test.c \
-o "$workdir"/cc-test; then
static_pie='-static-pie'
fi
if [ "$gitstatus_cpu" = x86-64 ]; then if [ "$gitstatus_cpu" = x86-64 ]; then
cflags="$cflags -mtune=generic" cflags="$cflags -mtune=generic"
fi fi
libgit2_cmake_flags= libgit2_cmake_flags=
libgit2_cflags="$cflags" libgit2_cflags="${CFLAGS-} $cflags -O3 -DNDEBUG"
gitstatus_cxx=g++ gitstatus_cxx=g++
gitstatus_cxxflags="$cflags -I${workdir}/libgit2/include -DGITSTATUS_ZERO_NSEC -D_GNU_SOURCE" gitstatus_cxxflags="${CXXFLAGS-} $cflags -I${workdir}/libgit2/include -DGITSTATUS_ZERO_NSEC -D_GNU_SOURCE -D_GLIBCXX_ASSERTIONS"
gitstatus_ldflags="-L${workdir}/libgit2/build" gitstatus_ldflags="${LDFLAGS-} $ldflags -L${workdir}/libgit2/build"
gitstatus_ldlibs= gitstatus_ldlibs=
gitstatus_make=make gitstatus_make=make
case "$gitstatus_kernel" in case "$gitstatus_kernel" in
linux) linux)
gitstatus_ldflags="$gitstatus_ldflags -static" gitstatus_ldflags="$gitstatus_ldflags ${static_pie:--static}"
gitstatus_ldflags="$gitstatus_ldflags -Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now"
libgit2_cmake_flags="$libgit2_cmake_flags -DENABLE_REPRODUCIBLE_BUILDS=ON" libgit2_cmake_flags="$libgit2_cmake_flags -DENABLE_REPRODUCIBLE_BUILDS=ON"
;; ;;
freebsd) freebsd)
gitstatus_make=gmake gitstatus_make=gmake
gitstatus_ldflags="$gitstatus_ldflags -static" gitstatus_ldflags="$gitstatus_ldflags ${static_pie:--static}"
gitstatus_ldflags="$gitstatus_ldflags -Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now"
libgit2_cmake_flags="$libgit2_cmake_flags -DENABLE_REPRODUCIBLE_BUILDS=ON" libgit2_cmake_flags="$libgit2_cmake_flags -DENABLE_REPRODUCIBLE_BUILDS=ON"
;; ;;
openbsd) openbsd)
gitstatus_cxx=eg++ gitstatus_cxx=eg++
gitstatus_make=gmake gitstatus_make=gmake
gitstatus_ldflags="$gitstatus_ldflags -static" gitstatus_ldflags="$gitstatus_ldflags ${static_pie:--static}"
gitstatus_ldflags="$gitstatus_ldflags -Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now"
libgit2_cmake_flags="$libgit2_cmake_flags -DENABLE_REPRODUCIBLE_BUILDS=ON" libgit2_cmake_flags="$libgit2_cmake_flags -DENABLE_REPRODUCIBLE_BUILDS=ON"
;; ;;
netbsd) netbsd)
gitstatus_make=gmake gitstatus_make=gmake
gitstatus_ldflags="$gitstatus_ldflags -static" gitstatus_ldflags="$gitstatus_ldflags ${static_pie:--static}"
gitstatus_ldflags="$gitstatus_ldflags -Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now"
libgit2_cmake_flags="$libgit2_cmake_flags -DENABLE_REPRODUCIBLE_BUILDS=ON" libgit2_cmake_flags="$libgit2_cmake_flags -DENABLE_REPRODUCIBLE_BUILDS=ON"
;; ;;
darwin) darwin)
@ -202,11 +228,11 @@ case "$gitstatus_kernel" in
libgit2_cmake_flags="$libgit2_cmake_flags -DENABLE_REPRODUCIBLE_BUILDS=OFF" libgit2_cmake_flags="$libgit2_cmake_flags -DENABLE_REPRODUCIBLE_BUILDS=OFF"
;; ;;
msys*|mingw*) msys*|mingw*)
gitstatus_ldflags="$gitstatus_ldflags -static" gitstatus_ldflags="$gitstatus_ldflags ${static_pie:--static}"
libgit2_cmake_flags="$libgit2_cmake_flags -DENABLE_REPRODUCIBLE_BUILDS=ON" libgit2_cmake_flags="$libgit2_cmake_flags -DENABLE_REPRODUCIBLE_BUILDS=ON"
;; ;;
cygwin*) cygwin*)
gitstatus_ldflags="$gitstatus_ldflags -static" gitstatus_ldflags="$gitstatus_ldflags ${static_pie:--static}"
libgit2_cmake_flags="$libgit2_cmake_flags -DENABLE_REPRODUCIBLE_BUILDS=ON" libgit2_cmake_flags="$libgit2_cmake_flags -DENABLE_REPRODUCIBLE_BUILDS=ON"
;; ;;
*) *)
@ -295,7 +321,7 @@ command mkdir libgit2/build
cd libgit2/build cd libgit2/build
CFLAGS="$libgit2_cflags" command cmake \ CFLAGS="$libgit2_cflags" command cmake \
-DCMAKE_BUILD_TYPE=Release \ -DCMAKE_BUILD_TYPE=None \
-DZERO_NSEC=ON \ -DZERO_NSEC=ON \
-DTHREADSAFE=ON \ -DTHREADSAFE=ON \
-DUSE_BUNDLED_ZLIB=ON \ -DUSE_BUNDLED_ZLIB=ON \

Loading…
Cancel
Save