@cryptotaxi247 / netdata-1 / commits / fddc85108

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>

Austin S. Hemmelgarn committed Nov 6, 2020 at 07:06 UTC fddc8510887eadec5fdfd744f80677874f0d313d
3 files changed +32 -5
.github/dockerfiles/Dockerfile.clang new
+18
@@ -0,0 +1,18 @@
1 +FROM debian:buster AS build
2 +
3 +# Disable apt/dpkg interactive mode
4 +ENV DEBIAN_FRONTEND=noninteractive
5 +
6 +# Install all build dependencies
7 +COPY packaging/installer/install-required-packages.sh /tmp/install-required-packages.sh
8 +RUN /tmp/install-required-packages.sh --dont-wait --non-interactive netdata-all
9 +
10 +# Install Clang and set as default CC
11 +RUN apt-get install -y clang && \
12 + update-alternatives --install /usr/bin/cc cc /usr/bin/clang 100
13 +
14 +WORKDIR /netdata
15 +COPY . .
16 +
17 +# Build Netdata
18 +RUN ./netdata-installer.sh --dont-wait --dont-start-it --disable-go --require-cloud
.github/workflows/checks.yml
+9
@@ -53,6 +53,15 @@ jobs:
53 autoreconf -ivf;
54 ./configure;
55 make;'
56 + clang-checks:
57 + name: Clang
58 + runs-on: ubuntu-latest
59 + steps:
60 + - name: Checkout
61 + uses: actions/checkout@v2
62 + - name: Build
63 + run: |
64 + docker build -f .github/dockerfiles/Dockerfile.clang .
65 dist-checks:
66 name: Dist
67 runs-on: ubuntu-latest
netdata-installer.sh
+5 -5
@@ -535,7 +535,7 @@ build_libmosquitto() {
535 local env_cmd=''
536
537 if [ -z "${DONT_SCRUB_CFLAGS_EVEN_THOUGH_IT_MAY_BREAK_THINGS}" ]; then
538 - env_cmd="env CFLAGS= CXXFLAGS= LDFLAGS="
538 + env_cmd="env CFLAGS=-fPIC CXXFLAGS= LDFLAGS="
539 fi
540
541 if [ "$(uname -s)" = Linux ]; then
@@ -615,7 +615,7 @@ build_libwebsockets() {
615 local env_cmd=''
616
617 if [ -z "${DONT_SCRUB_CFLAGS_EVEN_THOUGH_IT_MAY_BREAK_THINGS}" ]; then
618 - env_cmd="env CFLAGS= CXXFLAGS= LDFLAGS="
618 + env_cmd="env CFLAGS=-fPIC CXXFLAGS= LDFLAGS="
619 fi
620
621 pushd "${1}" > /dev/null || exit 1
@@ -697,7 +697,7 @@ build_judy() {
697 local env_cmd=''
698
699 if [ -z "${DONT_SCRUB_CFLAGS_EVEN_THOUGH_IT_MAY_BREAK_THINGS}" ]; then
700 - env_cmd="env CFLAGS= CXXFLAGS= LDFLAGS="
700 + env_cmd="env CFLAGS=-fPIC CXXFLAGS= LDFLAGS="
701 fi
702
703 pushd "${1}" > /dev/null || return 1
@@ -780,7 +780,7 @@ build_jsonc() {
780 local env_cmd=''
781
782 if [ -z "${DONT_SCRUB_CFLAGS_EVEN_THOUGH_IT_MAY_BREAK_THINGS}" ]; then
783 - env_cmd="env CFLAGS= CXXFLAGS= LDFLAGS="
783 + env_cmd="env CFLAGS=-fPIC CXXFLAGS= LDFLAGS="
784 fi
785
786 pushd "${1}" > /dev/null || exit 1
@@ -851,7 +851,7 @@ bundle_jsonc
851
852 build_libbpf() {
853 pushd "${1}/src" > /dev/null || exit 1
854 - run env CFLAGS= CXXFLAGS= LDFLAGS= BUILD_STATIC_ONLY=y OBJDIR=build DESTDIR=.. make install
854 + run env CFLAGS=-fPIC CXXFLAGS= LDFLAGS= BUILD_STATIC_ONLY=y OBJDIR=build DESTDIR=.. make install
855 popd > /dev/null || exit 1
856 }
857