From e7c4c8af3957bf721fa1642013564ea8e28d40a5 Mon Sep 17 00:00:00 2001 From: Ava Hahn Date: Thu, 19 Sep 2024 13:03:30 -0700 Subject: [PATCH] refactor build tooling to be more idiomatic Signed-off-by: Ava Hahn --- auto/otel | 38 ++++++++++++++++++-------------------- auto/ssltls | 2 +- src/nxt_main.c | 3 ++- src/nxt_main.h | 1 + src/nxt_otel.c | 8 +++++--- 5 files changed, 27 insertions(+), 25 deletions(-) diff --git a/auto/otel b/auto/otel index ccff15f9e..11387a1ba 100644 --- a/auto/otel +++ b/auto/otel @@ -5,23 +5,21 @@ nxt_found=no NXT_HAVE_OTEL=NO -cd src/otel -cargo build -cd ../../ - -nxt_feature="otel" -nxt_feature_name=NXT_HAVE_OTEL -nxt_feature_run=no -nxt_feature_libs="" -nxt_feature_test="int main(void){return 0;}" - -. auto/feature - -if [ $nxt_found = no ]; then - $echo - $echo $0: error: no OpenTelemetry library found. - $echo - exit 1; -fi - -NXT_LIB_AUX_LIBS="$NXT_LIB_AUX_LIBS -lssl -lcrypto src/otel/target/debug/libotel.a" +NXT_OTEL_LIB_LOC=src/otel/target/debug/libotel.a + +cat << END >> $NXT_AUTO_CONFIG_H +#ifndef NXT_HAVE_OTEL +#define NXT_HAVE_OTEL 1 +#endif +END + +NXT_LIB_AUX_LIBS="$NXT_LIB_AUX_LIBS $(pkgconf openssl --cflags --libs || "-lssl -lcrypto") $NXT_OTEL_LIB_LOC" + +cat << END >> $NXT_MAKEFILE + +$NXT_OTEL_LIB_LOC: + pushd $NXT_BUILD_DIR/src/otel/ + cargo build + cd ../../ + +END \ No newline at end of file diff --git a/auto/ssltls b/auto/ssltls index 6512d330c..d8b795583 100644 --- a/auto/ssltls +++ b/auto/ssltls @@ -212,4 +212,4 @@ if [ $NXT_POLARSSL = YES ]; then $echo exit 1; fi -fi +fi \ No newline at end of file diff --git a/src/nxt_main.c b/src/nxt_main.c index edc1590cf..d676bb82f 100644 --- a/src/nxt_main.c +++ b/src/nxt_main.c @@ -5,7 +5,8 @@ */ #include -extern char **environ; +#include +extern char **environ; int nxt_cdecl main(int argc, char **argv) diff --git a/src/nxt_main.h b/src/nxt_main.h index 9193fec60..7880e55f8 100644 --- a/src/nxt_main.h +++ b/src/nxt_main.h @@ -154,6 +154,7 @@ typedef void (*nxt_event_conn_handler_t)(nxt_thread_t *thr, nxt_conn_t *c); #include #include + /* * The envp argument must be &environ if application may * change its process title with nxt_process_title(). diff --git a/src/nxt_otel.c b/src/nxt_otel.c index 32e43905b..dfc1db0ef 100644 --- a/src/nxt_otel.c +++ b/src/nxt_otel.c @@ -3,6 +3,7 @@ * Copyright (C) F5, Inc. */ +#include "nxt_clang.h" #include #include @@ -22,7 +23,7 @@ #define NXT_OTEL_PATH_TAG "path" -static inline void +nxt_inline void nxt_otel_state_transition(nxt_otel_state_t *state, nxt_otel_status_t status) { if (status == NXT_OTEL_ERROR_STATE || state->status != NXT_OTEL_ERROR_STATE) { @@ -31,7 +32,7 @@ nxt_otel_state_transition(nxt_otel_state_t *state, nxt_otel_status_t status) } -static inline void +nxt_inline void nxt_otel_trace_and_span_init(nxt_task_t *t, nxt_http_request_t *r) { r->otel->trace = @@ -132,6 +133,7 @@ nxt_otel_span_add_headers(nxt_task_t *t, nxt_http_request_t *r) if (f == NULL) { nxt_log(t, NXT_LOG_ERR, "couldnt allocate traceparent header in response"); + goto next; } nxt_http_field_name_set(f, "traceparent"); @@ -183,7 +185,7 @@ nxt_otel_send_trace_and_span_data(nxt_task_t *task, void *obj, void *data) } -static inline void +nxt_inline void nxt_otel_span_collect(nxt_task_t *t, nxt_http_request_t *r) { nxt_log(t, NXT_LOG_DEBUG, "collecting span by adding the task to the fast work queue");