From f81b19fc242a0e199e10f1d23e2a8adff967e48a Mon Sep 17 00:00:00 2001 From: "Austin S. Hemmelgarn" Date: Fri, 12 Jun 2020 07:04:44 -0400 Subject: Override linker and include paths for static builds. (#9311) --- netdata-installer.sh | 37 +++++++++++++++++------ packaging/makeself/install-alpine-packages.sh | 2 -- packaging/makeself/jobs/50-bash-4.4.18.install.sh | 2 +- packaging/makeself/jobs/50-curl-7.60.0.install.sh | 5 +-- packaging/makeself/jobs/50-fping-4.2.install.sh | 5 +-- packaging/makeself/jobs/70-netdata-git.install.sh | 11 ++++--- 6 files changed, 42 insertions(+), 20 deletions(-) diff --git a/netdata-installer.sh b/netdata-installer.sh index d3d56855da..ea0da39adc 100755 --- a/netdata-installer.sh +++ b/netdata-installer.sh @@ -235,6 +235,7 @@ while [ -n "${1}" ]; do case "${1}" in "--zlib-is-really-here") LIBS_ARE_HERE=1 ;; "--libs-are-really-here") LIBS_ARE_HERE=1 ;; + "--dont-scrub-cflags-even-though-it-may-break-things") DONT_SCRUB_CFLAGS_EVEN_THOUGH_IT_MAY_BREAK_THINGS=1 ;; "--dont-start-it") DONOTSTART=1 ;; "--dont-wait") DONOTWAIT=1 ;; "--auto-update" | "-u") AUTOUPDATE=1 ;; @@ -460,20 +461,26 @@ trap build_error EXIT # ----------------------------------------------------------------------------- build_libmosquitto() { + local env_cmd='' + + if [ -z "${DONT_SCRUB_CFLAGS_EVEN_THOUGH_IT_MAY_BREAK_THINGS}" ] ; then + env_cmd="env CFLAGS= CXXFLAGS= LDFLAGS=" + fi + if [ "$(uname -s)" = Linux ]; then - run env CFLAGS= CXXFLAGS= LDFLAGS= make -C "${1}/lib" + run ${env_cmd} make -C "${1}/lib" else pushd ${1} > /dev/null || return 1 if [ "$(uname)" = "Darwin" ] && [ -d /usr/local/opt/openssl ]; then - run env CFLAGS= CXXFLAGS= LDFLAGS= cmake \ + run ${env_cmd} cmake \ -D OPENSSL_ROOT_DIR=/usr/local/opt/openssl \ -D OPENSSL_LIBRARIES=/usr/local/opt/openssl/lib \ -D WITH_STATIC_LIBRARIES:boolean=YES \ . else - run env CFLAGS= CXXFLAGS= LDFLAGS= cmake -D WITH_STATIC_LIBRARIES:boolean=YES . + run ${env_cmd} cmake -D WITH_STATIC_LIBRARIES:boolean=YES . fi - run env CFLAGS= CXXFLAGS= LDFLAGS= make -C lib + run ${env_cmd} make -C lib run mv lib/libmosquitto_static.a lib/libmosquitto.a popd || return 1 fi @@ -534,17 +541,23 @@ bundle_libmosquitto # ----------------------------------------------------------------------------- build_libwebsockets() { + local env_cmd='' + + if [ -z "${DONT_SCRUB_CFLAGS_EVEN_THOUGH_IT_MAY_BREAK_THINGS}" ] ; then + env_cmd="env CFLAGS= CXXFLAGS= LDFLAGS=" + fi + pushd "${1}" > /dev/null || exit 1 if [ "$(uname)" = "Darwin" ] && [ -d /usr/local/opt/openssl ]; then - run env CFLAGS= CXXFLAGS= LDFLAGS= cmake \ + run ${env_cmd} cmake \ -D OPENSSL_ROOT_DIR=/usr/local/opt/openssl \ -D OPENSSL_LIBRARIES=/usr/local/opt/openssl/lib \ -D LWS_WITH_SOCKS5:bool=ON \ . else - run env CFLAGS= CXXFLAGS= LDFLAGS= cmake -D LWS_WITH_SOCKS5:bool=ON . + run ${env_cmd} cmake -D LWS_WITH_SOCKS5:bool=ON . fi - run env CFLAGS= CXXFLAGS= LDFLAGS= make + run ${env_cmd} make popd > /dev/null || exit 1 } @@ -608,9 +621,15 @@ bundle_libwebsockets # ----------------------------------------------------------------------------- build_jsonc() { + local env_cmd='' + + if [ -z "${DONT_SCRUB_CFLAGS_EVEN_THOUGH_IT_MAY_BREAK_THINGS}" ] ; then + env_cmd="env CFLAGS= CXXFLAGS= LDFLAGS=" + fi + pushd "${1}" > /dev/null || exit 1 - run env CFLAGS= CXXFLAGS= LDFLAGS= cmake -DBUILD_SHARED_LIBS=OFF . - run env CFLAGS= CXXFLAGS= LDFLAGS= make + run ${env_cmd} cmake -DBUILD_SHARED_LIBS=OFF . + run ${env_cmd} make popd > /dev/null || exit 1 } diff --git a/packaging/makeself/install-alpine-packages.sh b/packaging/makeself/install-alpine-packages.sh index 34162804e3..dffbaac82e 100755 --- a/packaging/makeself/install-alpine-packages.sh +++ b/packaging/makeself/install-alpine-packages.sh @@ -24,14 +24,12 @@ apk add --no-cache -U \ libtool \ pkgconfig \ util-linux-dev \ - openssl-dev \ gnutls-dev \ zlib-dev \ libmnl-dev \ libnetfilter_acct-dev \ libuv-dev \ lz4-dev \ - openssl-dev \ snappy-dev \ protobuf-dev \ binutils \ diff --git a/packaging/makeself/jobs/50-bash-4.4.18.install.sh b/packaging/makeself/jobs/50-bash-4.4.18.install.sh index f40ad333bb..78ef01006d 100755 --- a/packaging/makeself/jobs/50-bash-4.4.18.install.sh +++ b/packaging/makeself/jobs/50-bash-4.4.18.install.sh @@ -6,7 +6,7 @@ fetch "bash-4.4.18" "http://ftp.gnu.org/gnu/bash/bash-4.4.18.tar.gz" -export PKG_CONFIG_PATH="/opnessl/lib/pkgconfig" +export PKG_CONFIG_PATH="/opnessl-static/lib/pkgconfig" run ./configure \ --prefix="${NETDATA_INSTALL_PATH}" \ diff --git a/packaging/makeself/jobs/50-curl-7.60.0.install.sh b/packaging/makeself/jobs/50-curl-7.60.0.install.sh index f55829b5b8..5c8e7e65ef 100755 --- a/packaging/makeself/jobs/50-curl-7.60.0.install.sh +++ b/packaging/makeself/jobs/50-curl-7.60.0.install.sh @@ -6,9 +6,10 @@ fetch "curl-curl-7_60_0" "https://github.com/curl/curl/archive/curl-7_60_0.tar.gz" -export LDFLAGS="-static" +export CFLAGS="-I/openssl-static/include" +export LDFLAGS="-static -L/openssl-static/lib" export PKG_CONFIG="pkg-config --static" -export PKG_CONFIG_PATH="/opnessl/lib/pkgconfig" +export PKG_CONFIG_PATH="/opnessl-static/lib/pkgconfig" run ./buildconf diff --git a/packaging/makeself/jobs/50-fping-4.2.install.sh b/packaging/makeself/jobs/50-fping-4.2.install.sh index e9212c8db7..72ace60100 100755 --- a/packaging/makeself/jobs/50-fping-4.2.install.sh +++ b/packaging/makeself/jobs/50-fping-4.2.install.sh @@ -6,8 +6,9 @@ fetch "fping-4.2" "https://github.com/schweikert/fping/releases/download/v4.2/fping-4.2.tar.gz" -export CFLAGS="-static" -export PKG_CONFIG_PATH="/opnessl/lib/pkgconfig" +export CFLAGS="-static -I/openssl-static/include" +export LDFLAGS="-static -L/openssl-static/lib" +export PKG_CONFIG_PATH="/opnessl-static/lib/pkgconfig" run ./configure \ --prefix="${NETDATA_INSTALL_PATH}" \ diff --git a/packaging/makeself/jobs/70-netdata-git.install.sh b/packaging/makeself/jobs/70-netdata-git.install.sh index 6a1bedcc33..e822928dc6 100755 --- a/packaging/makeself/jobs/70-netdata-git.install.sh +++ b/packaging/makeself/jobs/70-netdata-git.install.sh @@ -7,23 +7,26 @@ cd "${NETDATA_SOURCE_PATH}" || exit 1 if [ ${NETDATA_BUILD_WITH_DEBUG} -eq 0 ]; then - export CFLAGS="-static -O3" + export CFLAGS="-static -O3 -I/openssl-static/include" else - export CFLAGS="-static -O1 -ggdb -Wall -Wextra -Wformat-signedness -fstack-protector-all -D_FORTIFY_SOURCE=2 -DNETDATA_INTERNAL_CHECKS=1" + export CFLAGS="-static -O1 -ggdb -Wall -Wextra -Wformat-signedness -fstack-protector-all -D_FORTIFY_SOURCE=2 -DNETDATA_INTERNAL_CHECKS=1 -I/openssl-static/include" fi +export LDFLAGS="-static -L/openssl-static/lib" + # We export this to 'yes', installer sets this to .environment. # The updater consumes this one, so that it can tell whether it should update a static install or a non-static one export IS_NETDATA_STATIC_BINARY="yes" # Set eBPF LIBC to "static" to bundle the `-static` variant of the kernel-collector export EBPF_LIBC="static" -export PKG_CONFIG_PATH="/opnessl/lib/pkgconfig" +export PKG_CONFIG_PATH="/opnessl-static/lib/pkgconfig" run ./netdata-installer.sh \ --install "${NETDATA_INSTALL_PARENT}" \ --dont-wait \ - --dont-start-it + --dont-start-it \ + --dont-scrub-cflags-even-though-it-may-break-things # Remove the netdata.conf file from the tree. It has hard-coded sensible defaults builtin. run rm -f "${NETDATA_INSTALL_PATH}/etc/netdata/netdata.conf" -- cgit v1.2.3