Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fluent-bit/src/aws/flb_aws_util.c:454:36: error: ‘S3_MODE_NONE’ undeclared (first use in this function) #10004

Open
Altair-Bueno opened this issue Feb 25, 2025 · 2 comments

Comments

@Altair-Bueno
Copy link

Bug Report

Describe the bug
Compiling either master or tag v3.2.6 does not compile with S3 support disabled

To Reproduce

mkdir build
cd build

cmake -DCMAKE_BUILD_TYPE=MinSizeRel -DCMAKE_INTERPROCEDURAL_OPTIMIZATION=On  \
	-DFLB_CONFIG_YAML=Off \
	-DFLB_EXAMPLES=Off \
	-DFLB_SHARED_LIB=Off \
	-DFLB_INOTIFY=Off \
	-DFLB_LUAJIT=Off \
	-DFLB_RECORD_ACCESSOR=Off \
	-DFLB_SIGNV4=Off \
	-DFLB_STREAM_PROCESSOR=Off \
	-DFLB_WASM=Off \
	-DFLB_BACKTRACE=Off \
	-DFLB_IN_COLLECTD=Off \
	-DFLB_IN_DOCKER=Off \
	-DFLB_IN_EXEC_WASI=Off \
	-DFLB_IN_FLUENTBIT_METRICS=Off \
	-DFLB_IN_ELASTICSEARCH=Off \
	-DFLB_IN_FORWARD=Off \
	-DFLB_IN_HEAD=Off \
	-DFLB_IN_HEALTH=Off \
	-DFLB_IN_MQTT=Off \
	-DFLB_IN_RANDOM=Off \
	-DFLB_IN_SERIAL=Off \
	-DFLB_IN_THERMAL=Off \
	-DFLB_FILTER_AWS=Off \
	-DFLB_FILTER_ECS=Off \
	-DFLB_FILTER_KUBERNETES=Off \
	-DFLB_FILTER_LUA=Off \
	-DFLB_OUT_AZURE=Off \
	-DFLB_OUT_AZURE_KUSTO=Off \
	-DFLB_OUT_BIGQUERY=Off \
	-DFLB_OUT_COUNTER=Off \
	-DFLB_OUT_CLOUDWATCH_LOGS=Off \
	-DFLB_OUT_DATADOG=Off \
	-DFLB_OUT_ES=Off \
	-DFLB_OUT_FILE=Off \
	-DFLB_OUT_KINESIS_FIREHOSE=Off \
	-DFLB_OUT_KINESIS_STREAMS=Off \
	-DFLB_OUT_FLOWCOUNTER=Off \
	-DFLB_OUT_FORWARD=Off \
	-DFLB_OUT_GELF=Off \
	-DFLB_OUT_HTTP=Off \
	-DFLB_OUT_INFLUXDB=Off \
	-DFLB_OUT_KAFKA=Off \
	-DFLB_OUT_KAFKA_REST=Off \
	-DFLB_OUT_LIB=Off \
	-DFLB_OUT_NATS=Off \
	-DFLB_OUT_PGSQL=Off \
	-DFLB_OUT_PLOT=Off \
	-DFLB_OUT_SLACK=Off \
	-DFLB_OUT_S3=Off \
	-DFLB_OUT_SPLUNK=Off \
	-DFLB_OUT_STACKDRIVER=Off \
	-DFLB_OUT_TCP=Off \
	.. 
make
/home/[email protected]/Developer/fluent-bit/src/aws/flb_aws_util.c: In function ‘request_do’:
/home/[email protected]/Developer/fluent-bit/src/aws/flb_aws_util.c:454:36: error: ‘S3_MODE_NONE’ undeclared (first use in this function)
  454 |         if (aws_client->s3_mode == S3_MODE_NONE) {
      |                                    ^~~~~~~~~~~~
/home/[email protected]/Developer/fluent-bit/src/aws/flb_aws_util.c:454:36: note: each undeclared identifier is reported only once for each function it appears in
/home/[email protected]/Developer/fluent-bit/src/aws/flb_aws_util.c:460:21: warning: implicit declaration of function ‘flb_signv4_do’ [-Wimplicit-function-declaration]
  460 |         signature = flb_signv4_do(c, normalize_uri, FLB_TRUE, time(NULL),
      |                     ^~~~~~~~~~~~~
/home/[email protected]/Developer/fluent-bit/src/aws/flb_aws_util.c:460:19: warning: assignment to ‘flb_sds_t’ {aka ‘char *’} from ‘int’ makes pointer from integer without a cast [-Wint-conversion]
  460 |         signature = flb_signv4_do(c, normalize_uri, FLB_TRUE, time(NULL),
      |                   ^
make[2]: *** [src/aws/CMakeFiles/flb-aws.dir/build.make:90: src/aws/CMakeFiles/flb-aws.dir/flb_aws_util.c.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:6766: src/aws/CMakeFiles/flb-aws.dir/all] Error 2
make: *** [Makefile:156: all] Error 2

Expected behavior

Library should either build or provide a helpful error message on the Cmake step

Your Environment

  • Version used: 3.2.6
  • Configuration: See CMake command
  • Environment name and version (e.g. Kubernetes? What version?): Ubuntu 24.04.2 LTS
  • Server type and version:
  • Operating System and version: Ubuntu 24.04.2 LTS
  • Filters and plugins: See CMake command

Additional context

Trying to build fluent-bit for the smallest size possible

@Altair-Bueno
Copy link
Author

Applying a naive patch like this one

diff --git a/src/aws/CMakeLists.txt b/src/aws/CMakeLists.txt
index 0b02fdb51..a8f0d5a06 100644
--- a/src/aws/CMakeLists.txt
+++ b/src/aws/CMakeLists.txt
@@ -1,3 +1,5 @@
+if (FLB_OUT_S3)
+
 add_subdirectory(compression)
 
 include_directories(
@@ -30,3 +32,5 @@ target_link_libraries(flb-aws flb-aws-compress)
 if(FLB_JEMALLOC)
   target_link_libraries(flb-aws ${JEMALLOC_LIBRARIES})
 endif()
+
+endif(FLB_OUT_S3)

It seems the issue is related to a documentation mismatch: FLB_OUT_S3 is listed as an available option, but when I run cmake -LAH .. 2> /dev/null | rg ^FLB_, it's not listed

-- Enabling FLB_REGEX since FLB_PARSER requires
      CFLAGS:         -g  -Wall -D__FLB_FILENAME__=__FILE__
FLB_ALL:BOOL=OFF
FLB_ARROW:BOOL=OFF
FLB_AVRO_ENCODER:BOOL=OFF
FLB_AWS:BOOL=ON
FLB_AWS_ERROR_REPORTER:BOOL=OFF
FLB_BACKTRACE:BOOL=Off
FLB_BINARY:BOOL=ON
FLB_CHUNK_TRACE:BOOL=ON
FLB_CONFIG_YAML:BOOL=Off
FLB_CORO_STACK_SIZE:BOOL=OFF
FLB_COVERAGE:BOOL=OFF
FLB_CUSTOM_CALYPTIA:BOOL=ON
FLB_DEBUG:BOOL=ON
FLB_ENFORCE_ALIGNMENT:BOOL=OFF
FLB_EVENT_LOOP_EPOLL:BOOL=OFF
FLB_EVENT_LOOP_KQUEUE:BOOL=OFF
FLB_EVENT_LOOP_LIBEVENT:BOOL=OFF
FLB_EVENT_LOOP_POLL:BOOL=OFF
FLB_EVENT_LOOP_SELECT:BOOL=OFF
FLB_EXAMPLES:BOOL=Off
FLB_FILTER_ALTER_SIZE:BOOL=ON
FLB_FILTER_AWS:BOOL=Off
FLB_FILTER_CHECKLIST:BOOL=ON
FLB_FILTER_ECS:BOOL=Off
FLB_FILTER_EXPECT:BOOL=ON
FLB_FILTER_GEOIP2:BOOL=ON
FLB_FILTER_GREP:BOOL=ON
FLB_FILTER_KUBERNETES:BOOL=Off
FLB_FILTER_LOG_TO_METRICS:BOOL=ON
FLB_FILTER_LUA:BOOL=Off
FLB_FILTER_LUA_USE_MPACK:BOOL=OFF
FLB_FILTER_MODIFY:BOOL=ON
FLB_FILTER_MULTILINE:BOOL=ON
FLB_FILTER_NEST:BOOL=ON
FLB_FILTER_NIGHTFALL:BOOL=ON
FLB_FILTER_PARSER:BOOL=ON
FLB_FILTER_RECORD_MODIFIER:BOOL=ON
FLB_FILTER_REWRITE_TAG:BOOL=ON
FLB_FILTER_STDOUT:BOOL=ON
FLB_FILTER_SYSINFO:BOOL=ON
FLB_FILTER_TENSORFLOW:BOOL=OFF
FLB_FILTER_THROTTLE:BOOL=ON
FLB_FILTER_THROTTLE_SIZE:BOOL=OFF
FLB_FILTER_TYPE_CONVERTER:BOOL=ON
FLB_FILTER_WASM:BOOL=ON
FLB_HTTP_CLIENT_DEBUG:BOOL=OFF
FLB_HTTP_SERVER:BOOL=ON
FLB_INOTIFY:BOOL=Off
FLB_IN_BLOB:BOOL=ON
FLB_IN_CALYPTIA_FLEET:BOOL=ON
FLB_IN_COLLECTD:BOOL=Off
FLB_IN_CPU:BOOL=ON
FLB_IN_DISK:BOOL=ON
FLB_IN_DOCKER:BOOL=Off
FLB_IN_DOCKER_EVENTS:BOOL=ON
FLB_IN_DUMMY:BOOL=ON
FLB_IN_EBPF:BOOL=OFF
FLB_IN_ELASTICSEARCH:BOOL=Off
FLB_IN_EMITTER:BOOL=ON
FLB_IN_EVENT_TEST:BOOL=OFF
FLB_IN_EVENT_TYPE:BOOL=ON
FLB_IN_EXEC:BOOL=ON
FLB_IN_EXEC_WASI:BOOL=Off
FLB_IN_FLUENTBIT_METRICS:BOOL=Off
FLB_IN_FORWARD:BOOL=Off
FLB_IN_HEAD:BOOL=Off
FLB_IN_HEALTH:BOOL=Off
FLB_IN_HTTP:BOOL=ON
FLB_IN_KAFKA:BOOL=ON
FLB_IN_KMSG:BOOL=ON
FLB_IN_KUBERNETES_EVENTS:BOOL=ON
FLB_IN_LIB:BOOL=ON
FLB_IN_MEM:BOOL=ON
FLB_IN_MQTT:BOOL=Off
FLB_IN_NETIF:BOOL=ON
FLB_IN_NGINX_EXPORTER_METRICS:BOOL=ON
FLB_IN_NODE_EXPORTER_METRICS:BOOL=ON
FLB_IN_OPENTELEMETRY:BOOL=ON
FLB_IN_PODMAN_METRICS:BOOL=ON
FLB_IN_PROC:BOOL=ON
FLB_IN_PROCESS_EXPORTER_METRICS:BOOL=ON
FLB_IN_PROMETHEUS_REMOTE_WRITE:BOOL=ON
FLB_IN_PROMETHEUS_SCRAPE:BOOL=ON
FLB_IN_RANDOM:BOOL=Off
FLB_IN_SERIAL:BOOL=Off
FLB_IN_SPLUNK:BOOL=ON
FLB_IN_STATSD:BOOL=ON
FLB_IN_STDIN:BOOL=ON
FLB_IN_STORAGE_BACKLOG:BOOL=ON
FLB_IN_SYSLOG:BOOL=ON
FLB_IN_TAIL:BOOL=ON
FLB_IN_TCP:BOOL=ON
FLB_IN_THERMAL:BOOL=Off
FLB_IN_UDP:BOOL=ON
FLB_IN_UNIX_SOCKET:BOOL=OFF
FLB_IN_WINDOWS_EXPORTER_METRICS:BOOL=ON
FLB_IN_WINEVTLOG:BOOL=OFF
FLB_IN_WINLOG:BOOL=OFF
FLB_IN_WINSTAT:BOOL=OFF
FLB_IPO:STRING=ReleaseOnly
FLB_LUAJIT:BOOL=Off
FLB_MINIMAL:BOOL=OFF
FLB_MTRACE:BOOL=OFF
FLB_OUT_AZURE:BOOL=Off
FLB_OUT_AZURE_BLOB:BOOL=ON
FLB_OUT_AZURE_KUSTO:BOOL=Off
FLB_OUT_AZURE_LOGS_INGESTION:BOOL=ON
FLB_OUT_BIGQUERY:BOOL=Off
FLB_OUT_CALYPTIA:BOOL=ON
FLB_OUT_CHRONICLE:BOOL=ON
FLB_OUT_CLOUDWATCH_LOGS:BOOL=Off
FLB_OUT_COUNTER:BOOL=Off
FLB_OUT_DATADOG:BOOL=Off
FLB_OUT_ES:BOOL=Off
FLB_OUT_EXIT:BOOL=ON
FLB_OUT_FILE:BOOL=Off
FLB_OUT_FLOWCOUNTER:BOOL=Off
FLB_OUT_FORWARD:BOOL=Off
FLB_OUT_GELF:BOOL=Off
FLB_OUT_HTTP:BOOL=Off
FLB_OUT_INFLUXDB:BOOL=Off
FLB_OUT_KAFKA:BOOL=Off
FLB_OUT_KAFKA_REST:BOOL=Off
FLB_OUT_KINESIS_FIREHOSE:BOOL=Off
FLB_OUT_KINESIS_STREAMS:BOOL=Off
FLB_OUT_LIB:BOOL=Off
FLB_OUT_LOGDNA:BOOL=ON
FLB_OUT_LOKI:BOOL=ON
FLB_OUT_NATS:BOOL=Off
FLB_OUT_NRLOGS:BOOL=ON
FLB_OUT_NULL:BOOL=ON
FLB_OUT_OPENSEARCH:BOOL=ON
FLB_OUT_OPENTELEMETRY:BOOL=ON
FLB_OUT_ORACLE_LOG_ANALYTICS:BOOL=ON
FLB_OUT_PGSQL:BOOL=Off
FLB_OUT_PLOT:BOOL=Off
FLB_OUT_PROMETHEUS_EXPORTER:BOOL=ON
FLB_OUT_PROMETHEUS_REMOTE_WRITE:BOOL=ON
FLB_OUT_RETRY:BOOL=OFF
FLB_OUT_S3:BOOL=On
FLB_OUT_SKYWALKING:BOOL=ON
FLB_OUT_SLACK:BOOL=Off
FLB_OUT_SPLUNK:BOOL=Off
FLB_OUT_STACKDRIVER:BOOL=Off
FLB_OUT_STDOUT:BOOL=ON
FLB_OUT_SYSLOG:BOOL=ON
FLB_OUT_TCP:BOOL=Off
FLB_OUT_TD:BOOL=ON
FLB_OUT_UDP:BOOL=ON
FLB_OUT_VIVO_EXPORTER:BOOL=ON
FLB_OUT_WEBSOCKET:BOOL=ON
FLB_PARSER:BOOL=ON
FLB_POSIX_TLS:BOOL=OFF
FLB_PREFER_SYSTEM_LIBS:BOOL=OFF
FLB_PREFER_SYSTEM_LIB_BACKTRACE:BOOL=OFF
FLB_PREFER_SYSTEM_LIB_CARES:BOOL=OFF
FLB_PREFER_SYSTEM_LIB_JEMALLOC:BOOL=OFF
FLB_PREFER_SYSTEM_LIB_KAFKA:BOOL=OFF
FLB_PREFER_SYSTEM_LIB_LUAJIT:BOOL=OFF
FLB_PREFER_SYSTEM_LIB_NGHTTP2:BOOL=OFF
FLB_PROCESSOR_CONTENT_MODIFIER:BOOL=ON
FLB_PROCESSOR_LABELS:BOOL=ON
FLB_PROCESSOR_METRICS_SELECTOR:BOOL=ON
FLB_PROCESSOR_OPENTELEMETRY_ENVELOPE:BOOL=ON
FLB_PROCESSOR_SQL:BOOL=ON
FLB_PROFILES:BOOL=ON
FLB_PROXY_GO:BOOL=ON
FLB_RECORD_ACCESSOR:BOOL=Off
FLB_REGEX:BOOL=ON
FLB_RELEASE:BOOL=OFF
FLB_RUN_LDCONFIG:BOOL=OFF
FLB_SECURITY:STRING=ReleaseOnly
FLB_SHARED_LIB:BOOL=Off
FLB_SIGNV4:BOOL=Off
FLB_SIMD:BOOL=OFF
FLB_SMALL:BOOL=OFF
FLB_SQLDB:BOOL=ON
FLB_STATIC_CONF:BOOL=OFF
FLB_STREAM_PROCESSOR:BOOL=Off
FLB_TESTS_INTERNAL:BOOL=OFF
FLB_TESTS_INTERNAL_FUZZ:BOOL=OFF
FLB_TESTS_OSSFUZZ:BOOL=OFF
FLB_TESTS_RUNTIME:BOOL=OFF
FLB_TLS:BOOL=ON
FLB_TRACE:BOOL=OFF
FLB_UTF8_ENCODER:BOOL=ON
FLB_VALGRIND:BOOL=OFF
FLB_WAMRC:BOOL=OFF
FLB_WASM:BOOL=Off
FLB_WASM_STACK_PROTECT:BOOL=OFF
FLB_WINDOWS_DEFAULTS:BOOL=ON

Setting -DFLB_AWS=Off does ignore the aws sources, but it fails miserably latter down the line

@Altair-Bueno
Copy link
Author

Seems related to #9664. I'm having the same issues as them. However, the author doesn't mention the docs are outdated/misleading, which may be of interest for the maintainers

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant