summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAustin S. Hemmelgarn <austin@netdata.cloud>2020-11-06 07:06:30 -0500
committerGitHub <noreply@github.com>2020-11-06 07:06:30 -0500
commitfddc8510887eadec5fdfd744f80677874f0d313d (patch)
treee7855c51014e002b40753f4c7e986be20cbdfde1
parent9d24ef483b15c55327c3b66acc6df74001f16c03 (diff)
Fixed builds using particular versions of Clang. (#10155)
* Add a CI check for building against Clang * Fix CFLAGS for libmosquitto/libwebsockets so builds work with Clang * Add fixes for libbpf, judy, and JSON-C. Co-authored-by: James Mills <prologic@shortcircuit.net.au>
-rw-r--r--.github/dockerfiles/Dockerfile.clang18
-rw-r--r--.github/workflows/checks.yml9
-rwxr-xr-xnetdata-installer.sh10
3 files changed, 32 insertions, 5 deletions
diff --git a/.github/dockerfiles/Dockerfile.clang b/.github/dockerfiles/Dockerfile.clang
new file mode 100644
index 0000000000..62bb019414
--- /dev/null
+++ b/.github/dockerfiles/Dockerfile.clang
@@ -0,0 +1,18 @@
+FROM debian:buster AS build
+
+# Disable apt/dpkg interactive mode
+ENV DEBIAN_FRONTEND=noninteractive
+
+# Install all build dependencies
+COPY packaging/installer/install-required-packages.sh /tmp/install-required-packages.sh
+RUN /tmp/install-required-packages.sh --dont-wait --non-interactive netdata-all
+
+# Install Clang and set as default CC
+RUN apt-get install -y clang && \
+ update-alternatives --install /usr/bin/cc cc /usr/bin/clang 100
+
+WORKDIR /netdata
+COPY . .
+
+# Build Netdata
+RUN ./netdata-installer.sh --dont-wait --dont-start-it --disable-go --require-cloud
diff --git a/.github/workflows/checks.yml b/.github/workflows/checks.yml
index 6cafe2587e..29e2ca5336 100644
--- a/.github/workflows/checks.yml
+++ b/.github/workflows/checks.yml
@@ -53,6 +53,15 @@ jobs:
autoreconf -ivf;
./configure;
make;'
+ clang-checks:
+ name: Clang
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v2
+ - name: Build
+ run: |
+ docker build -f .github/dockerfiles/Dockerfile.clang .
dist-checks:
name: Dist
runs-on: ubuntu-latest
diff --git a/netdata-installer.sh b/netdata-installer.sh
index d529e38c04..fefd6111a1 100755
--- a/netdata-installer.sh
+++ b/netdata-installer.sh
@@ -535,7 +535,7 @@ build_libmosquitto() {
local env_cmd=''
if [ -z "${DONT_SCRUB_CFLAGS_EVEN_THOUGH_IT_MAY_BREAK_THINGS}" ]; then
- env_cmd="env CFLAGS= CXXFLAGS= LDFLAGS="
+ env_cmd="env CFLAGS=-fPIC CXXFLAGS= LDFLAGS="
fi
if [ "$(uname -s)" = Linux ]; then
@@ -615,7 +615,7 @@ build_libwebsockets() {
local env_cmd=''
if [ -z "${DONT_SCRUB_CFLAGS_EVEN_THOUGH_IT_MAY_BREAK_THINGS}" ]; then
- env_cmd="env CFLAGS= CXXFLAGS= LDFLAGS="
+ env_cmd="env CFLAGS=-fPIC CXXFLAGS= LDFLAGS="
fi
pushd "${1}" > /dev/null || exit 1
@@ -697,7 +697,7 @@ build_judy() {
local env_cmd=''
if [ -z "${DONT_SCRUB_CFLAGS_EVEN_THOUGH_IT_MAY_BREAK_THINGS}" ]; then
- env_cmd="env CFLAGS= CXXFLAGS= LDFLAGS="
+ env_cmd="env CFLAGS=-fPIC CXXFLAGS= LDFLAGS="
fi
pushd "${1}" > /dev/null || return 1
@@ -780,7 +780,7 @@ build_jsonc() {
local env_cmd=''
if [ -z "${DONT_SCRUB_CFLAGS_EVEN_THOUGH_IT_MAY_BREAK_THINGS}" ]; then
- env_cmd="env CFLAGS= CXXFLAGS= LDFLAGS="
+ env_cmd="env CFLAGS=-fPIC CXXFLAGS= LDFLAGS="
fi
pushd "${1}" > /dev/null || exit 1
@@ -851,7 +851,7 @@ bundle_jsonc
build_libbpf() {
pushd "${1}/src" > /dev/null || exit 1
- run env CFLAGS= CXXFLAGS= LDFLAGS= BUILD_STATIC_ONLY=y OBJDIR=build DESTDIR=.. make install
+ run env CFLAGS=-fPIC CXXFLAGS= LDFLAGS= BUILD_STATIC_ONLY=y OBJDIR=build DESTDIR=.. make install
popd > /dev/null || exit 1
}