@cryptotaxi247 / netdata-1 / commits / f81b19fc2

Override linker and include paths for static builds. (#9311)

Austin S. Hemmelgarn committed Jun 12, 2020 at 07:04 UTC f81b19fc242a0e199e10f1d23e2a8adff967e48a
6 files changed +42 -20
netdata-installer.sh
+28 -9
@@ -235,6 +235,7 @@ while [ -n "${1}" ]; do
235 case "${1}" in
236 "--zlib-is-really-here") LIBS_ARE_HERE=1 ;;
237 "--libs-are-really-here") LIBS_ARE_HERE=1 ;;
238 + "--dont-scrub-cflags-even-though-it-may-break-things") DONT_SCRUB_CFLAGS_EVEN_THOUGH_IT_MAY_BREAK_THINGS=1 ;;
239 "--dont-start-it") DONOTSTART=1 ;;
240 "--dont-wait") DONOTWAIT=1 ;;
241 "--auto-update" | "-u") AUTOUPDATE=1 ;;
@@ -460,20 +461,26 @@ trap build_error EXIT
461 # -----------------------------------------------------------------------------
462
463 build_libmosquitto() {
464 + local env_cmd=''
465 +
466 + if [ -z "${DONT_SCRUB_CFLAGS_EVEN_THOUGH_IT_MAY_BREAK_THINGS}" ] ; then
467 + env_cmd="env CFLAGS= CXXFLAGS= LDFLAGS="
468 + fi
469 +
470 if [ "$(uname -s)" = Linux ]; then
464 - run env CFLAGS= CXXFLAGS= LDFLAGS= make -C "${1}/lib"
471 + run ${env_cmd} make -C "${1}/lib"
472 else
473 pushd ${1} > /dev/null || return 1
474 if [ "$(uname)" = "Darwin" ] && [ -d /usr/local/opt/openssl ]; then
468 - run env CFLAGS= CXXFLAGS= LDFLAGS= cmake \
475 + run ${env_cmd} cmake \
476 -D OPENSSL_ROOT_DIR=/usr/local/opt/openssl \
477 -D OPENSSL_LIBRARIES=/usr/local/opt/openssl/lib \
478 -D WITH_STATIC_LIBRARIES:boolean=YES \
479 .
480 else
474 - run env CFLAGS= CXXFLAGS= LDFLAGS= cmake -D WITH_STATIC_LIBRARIES:boolean=YES .
481 + run ${env_cmd} cmake -D WITH_STATIC_LIBRARIES:boolean=YES .
482 fi
476 - run env CFLAGS= CXXFLAGS= LDFLAGS= make -C lib
483 + run ${env_cmd} make -C lib
484 run mv lib/libmosquitto_static.a lib/libmosquitto.a
485 popd || return 1
486 fi
@@ -534,17 +541,23 @@ bundle_libmosquitto
541 # -----------------------------------------------------------------------------
542
543 build_libwebsockets() {
544 + local env_cmd=''
545 +
546 + if [ -z "${DONT_SCRUB_CFLAGS_EVEN_THOUGH_IT_MAY_BREAK_THINGS}" ] ; then
547 + env_cmd="env CFLAGS= CXXFLAGS= LDFLAGS="
548 + fi
549 +
550 pushd "${1}" > /dev/null || exit 1
551 if [ "$(uname)" = "Darwin" ] && [ -d /usr/local/opt/openssl ]; then
539 - run env CFLAGS= CXXFLAGS= LDFLAGS= cmake \
552 + run ${env_cmd} cmake \
553 -D OPENSSL_ROOT_DIR=/usr/local/opt/openssl \
554 -D OPENSSL_LIBRARIES=/usr/local/opt/openssl/lib \
555 -D LWS_WITH_SOCKS5:bool=ON \
556 .
557 else
545 - run env CFLAGS= CXXFLAGS= LDFLAGS= cmake -D LWS_WITH_SOCKS5:bool=ON .
558 + run ${env_cmd} cmake -D LWS_WITH_SOCKS5:bool=ON .
559 fi
547 - run env CFLAGS= CXXFLAGS= LDFLAGS= make
560 + run ${env_cmd} make
561 popd > /dev/null || exit 1
562 }
563
@@ -608,9 +621,15 @@ bundle_libwebsockets
621 # -----------------------------------------------------------------------------
622
623 build_jsonc() {
624 + local env_cmd=''
625 +
626 + if [ -z "${DONT_SCRUB_CFLAGS_EVEN_THOUGH_IT_MAY_BREAK_THINGS}" ] ; then
627 + env_cmd="env CFLAGS= CXXFLAGS= LDFLAGS="
628 + fi
629 +
630 pushd "${1}" > /dev/null || exit 1
612 - run env CFLAGS= CXXFLAGS= LDFLAGS= cmake -DBUILD_SHARED_LIBS=OFF .
613 - run env CFLAGS= CXXFLAGS= LDFLAGS= make
631 + run ${env_cmd} cmake -DBUILD_SHARED_LIBS=OFF .
632 + run ${env_cmd} make
633 popd > /dev/null || exit 1
634 }
635
packaging/makeself/install-alpine-packages.sh
-2
@@ -24,14 +24,12 @@ apk add --no-cache -U \
24 libtool \
25 pkgconfig \
26 util-linux-dev \
27 - openssl-dev \
27 gnutls-dev \
28 zlib-dev \
29 libmnl-dev \
30 libnetfilter_acct-dev \
31 libuv-dev \
32 lz4-dev \
34 - openssl-dev \
33 snappy-dev \
34 protobuf-dev \
35 binutils \
packaging/makeself/jobs/50-bash-4.4.18.install.sh
+1 -1
@@ -6,7 +6,7 @@
6
7 fetch "bash-4.4.18" "http://ftp.gnu.org/gnu/bash/bash-4.4.18.tar.gz"
8
9 -export PKG_CONFIG_PATH="/opnessl/lib/pkgconfig"
9 +export PKG_CONFIG_PATH="/opnessl-static/lib/pkgconfig"
10
11 run ./configure \
12 --prefix="${NETDATA_INSTALL_PATH}" \
packaging/makeself/jobs/50-curl-7.60.0.install.sh
+3 -2
@@ -6,9 +6,10 @@
6
7 fetch "curl-curl-7_60_0" "https://github.com/curl/curl/archive/curl-7_60_0.tar.gz"
8
9 -export LDFLAGS="-static"
9 +export CFLAGS="-I/openssl-static/include"
10 +export LDFLAGS="-static -L/openssl-static/lib"
11 export PKG_CONFIG="pkg-config --static"
11 -export PKG_CONFIG_PATH="/opnessl/lib/pkgconfig"
12 +export PKG_CONFIG_PATH="/opnessl-static/lib/pkgconfig"
13
14 run ./buildconf
15
packaging/makeself/jobs/50-fping-4.2.install.sh
+3 -2
@@ -6,8 +6,9 @@
6
7 fetch "fping-4.2" "https://github.com/schweikert/fping/releases/download/v4.2/fping-4.2.tar.gz"
8
9 -export CFLAGS="-static"
10 -export PKG_CONFIG_PATH="/opnessl/lib/pkgconfig"
9 +export CFLAGS="-static -I/openssl-static/include"
10 +export LDFLAGS="-static -L/openssl-static/lib"
11 +export PKG_CONFIG_PATH="/opnessl-static/lib/pkgconfig"
12
13 run ./configure \
14 --prefix="${NETDATA_INSTALL_PATH}" \
packaging/makeself/jobs/70-netdata-git.install.sh
+7 -4
@@ -7,23 +7,26 @@
7 cd "${NETDATA_SOURCE_PATH}" || exit 1
8
9 if [ ${NETDATA_BUILD_WITH_DEBUG} -eq 0 ]; then
10 - export CFLAGS="-static -O3"
10 + export CFLAGS="-static -O3 -I/openssl-static/include"
11 else
12 - export CFLAGS="-static -O1 -ggdb -Wall -Wextra -Wformat-signedness -fstack-protector-all -D_FORTIFY_SOURCE=2 -DNETDATA_INTERNAL_CHECKS=1"
12 + export CFLAGS="-static -O1 -ggdb -Wall -Wextra -Wformat-signedness -fstack-protector-all -D_FORTIFY_SOURCE=2 -DNETDATA_INTERNAL_CHECKS=1 -I/openssl-static/include"
13 fi
14
15 +export LDFLAGS="-static -L/openssl-static/lib"
16 +
17 # We export this to 'yes', installer sets this to .environment.
18 # The updater consumes this one, so that it can tell whether it should update a static install or a non-static one
19 export IS_NETDATA_STATIC_BINARY="yes"
20
21 # Set eBPF LIBC to "static" to bundle the `-static` variant of the kernel-collector
22 export EBPF_LIBC="static"
21 -export PKG_CONFIG_PATH="/opnessl/lib/pkgconfig"
23 +export PKG_CONFIG_PATH="/opnessl-static/lib/pkgconfig"
24
25 run ./netdata-installer.sh \
26 --install "${NETDATA_INSTALL_PARENT}" \
27 --dont-wait \
26 - --dont-start-it
28 + --dont-start-it \
29 + --dont-scrub-cflags-even-though-it-may-break-things
30
31 # Remove the netdata.conf file from the tree. It has hard-coded sensible defaults builtin.
32 run rm -f "${NETDATA_INSTALL_PATH}/etc/netdata/netdata.conf"