diff options
author | Austin S. Hemmelgarn <austin@netdata.cloud> | 2020-11-06 07:06:30 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-11-06 07:06:30 -0500 |
commit | fddc8510887eadec5fdfd744f80677874f0d313d (patch) | |
tree | e7855c51014e002b40753f4c7e986be20cbdfde1 | |
parent | 9d24ef483b15c55327c3b66acc6df74001f16c03 (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.clang | 18 | ||||
-rw-r--r-- | .github/workflows/checks.yml | 9 | ||||
-rwxr-xr-x | netdata-installer.sh | 10 |
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 } |