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"