Netflix-Skunkworks / spectatord

A high performance metrics daemon
Apache License 2.0
24 stars 5 forks source link

produce static binary #64

Closed copperlight closed 11 months ago

copperlight commented 1 year ago

We had switched from producing static binaries, due to a small concern related to the following warnings:

[ 82%] Linking CXX executable bin/spectatord_main
/usr/bin/ld: /home/runner/.conan/data/openssl/1.1.1o/_/_/package/dfbe50feef7f3c6223a476cd5aeadb687084a646/lib/libcrypto.a(dso_dlfcn.o): in function `dlfcn_globallookup':
dso_dlfcn.c:(.text+0x13): warning: Using 'dlopen' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
/usr/bin/ld: /home/runner/.conan/data/libcurl/7.74.0/_/_/package/0c5339e3252a17695b86faf7d8701a95bdc6c4ef/lib/libcurl.a(libcurl_la-netrc.o): in function `Curl_parsenetrc':
netrc.c:(.text+0x55c): warning: Using 'getpwuid_r' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
/usr/bin/ld: /home/runner/.conan/data/libcurl/7.74.0/_/_/package/0c5339e3252a17695b86faf7d8701a95bdc6c4ef/lib/libcurl.a(libcurl_la-curl_addrinfo.o): in function `Curl_getaddrinfo_ex':
curl_addrinfo.c:(.text+0x60): warning: Using 'getaddrinfo' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
/usr/bin/ld: /home/runner/.conan/data/openssl/1.1.1o/_/_/package/dfbe50feef7f3c6223a476cd5aeadb687084a646/lib/libcrypto.a(b_sock.o): in function `BIO_gethostbyname':
b_sock.c:(.text+0x51): warning: Using 'gethostbyname' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking

However, we have some evidence that some containers are running really old versions of Ubuntu, such as Trusty Tahr (14.04), which is the release before Xenial.

This change re-enables the static binary build for spectatord, and also locks the version of Conan to the last release before 2.0, which introduces some breaking changes.

copperlight commented 1 year ago

Let's leave this PR open a bit. There is some discussion about just not supporting ancient images, but rather clamping down logs in case this component gets launched by a bad image.