-
-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Open
Description
Describe the bug
Build for paho.mqtt.c fails on Alpine Linux 3.23.
To Reproduce
Take a library trace as outlined in the README, and/or have a program or describe the steps to reproduce the behavior:
- Install Alpine Linux 3.23
apk updateapk add cmake openssl-dev gitgit clone https://github.com/eclipse-paho/paho.mqtt.c.gitcd paho.mqtt.c/cmake -B build -DPAHO_BUILD_SHARED=TRUE -DPAHO_WITH_SSL=TRUE -DPAHO_WITH_UNIX_SOCKETS=TRUE -DPAHO_BUILD_SAMPLES=TRUE -DPAHO_ENABLE_TESTING=FALSE -DCMAKE_BUILD_RPATH_USE_ORIGIN=ONcmake --build build
Expected behavior
Successful build.
Screenshots
If applicable, add screenshots to help explain your problem.
Log files
Please try to attach log files rather than pasting the log contents. It makes the issues easier to read.
alpine:~/paho.mqtt.c$ cmake -B build -DPAHO_BUILD_SHARED=TRUE -DPAHO_WITH_SSL=TRUE -DPAHO_WITH_UNIX_SOCKETS=TRUE -DPAHO_BUILD_SAMPLES=TRUE -DPAHO_ENABLE_TESTING=FALSE -DCMAKE_BUILD_RPATH_USE_ORIGIN=ON
-- The C compiler identification is GNU 15.2.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- CMake version: 4.1.3
-- CMake system name: Linux
-- Timestamp is 2026-02-27T00:04:23Z
-- Found OpenSSL: /usr/lib/libcrypto.so (found version "3.5.5")
-- Using OpenSSL with headers at /usr/include
-- Configuring done (0.3s)
-- Generating done (0.1s)
-- Build files have been written to: /home/roman/paho.mqtt.c/build
alpine:~/paho.mqtt.c$ cmake --build build
[ 1%] Building C object src/CMakeFiles/common_obj.dir/MQTTTime.c.o
[ 2%] Building C object src/CMakeFiles/common_obj.dir/MQTTProtocolClient.c.o
[ 3%] Building C object src/CMakeFiles/common_obj.dir/Clients.c.o
[ 4%] Building C object src/CMakeFiles/common_obj.dir/utf-8.c.o
[ 5%] Building C object src/CMakeFiles/common_obj.dir/MQTTPacket.c.o
[ 6%] Building C object src/CMakeFiles/common_obj.dir/MQTTPacketOut.c.o
[ 8%] Building C object src/CMakeFiles/common_obj.dir/Messages.c.o
[ 9%] Building C object src/CMakeFiles/common_obj.dir/Tree.c.o
[ 10%] Building C object src/CMakeFiles/common_obj.dir/Socket.c.o
[ 11%] Building C object src/CMakeFiles/common_obj.dir/Log.c.o
[ 12%] Building C object src/CMakeFiles/common_obj.dir/MQTTPersistence.c.o
[ 13%] Building C object src/CMakeFiles/common_obj.dir/Thread.c.o
[ 15%] Building C object src/CMakeFiles/common_obj.dir/MQTTProtocolOut.c.o
[ 16%] Building C object src/CMakeFiles/common_obj.dir/MQTTPersistenceDefault.c.o
[ 17%] Building C object src/CMakeFiles/common_obj.dir/SocketBuffer.c.o
[ 18%] Building C object src/CMakeFiles/common_obj.dir/LinkedList.c.o
[ 19%] Building C object src/CMakeFiles/common_obj.dir/MQTTProperties.c.o
[ 20%] Building C object src/CMakeFiles/common_obj.dir/MQTTReasonCodes.c.o
[ 22%] Building C object src/CMakeFiles/common_obj.dir/Base64.c.o
[ 23%] Building C object src/CMakeFiles/common_obj.dir/SHA1.c.o
[ 24%] Building C object src/CMakeFiles/common_obj.dir/WebSocket.c.o
[ 25%] Building C object src/CMakeFiles/common_obj.dir/Proxy.c.o
[ 26%] Building C object src/CMakeFiles/common_obj.dir/StackTrace.c.o
[ 27%] Building C object src/CMakeFiles/common_obj.dir/Heap.c.o
[ 27%] Built target common_obj
[ 29%] Building C object src/CMakeFiles/paho-mqtt3c.dir/MQTTClient.c.o
[ 30%] Linking C shared library libpaho-mqtt3c.so
[ 30%] Built target paho-mqtt3c
[ 31%] Building C object src/CMakeFiles/paho-mqtt3a.dir/MQTTAsync.c.o
[ 32%] Building C object src/CMakeFiles/paho-mqtt3a.dir/MQTTAsyncUtils.c.o
[ 33%] Linking C shared library libpaho-mqtt3a.so
[ 33%] Built target paho-mqtt3a
[ 34%] Building C object src/CMakeFiles/MQTTVersion.dir/MQTTVersion.c.o
[ 36%] Linking C executable MQTTVersion
[ 36%] Built target MQTTVersion
[ 37%] Building C object src/CMakeFiles/common_ssl_obj.dir/MQTTTime.c.o
[ 38%] Building C object src/CMakeFiles/common_ssl_obj.dir/MQTTProtocolClient.c.o
[ 39%] Building C object src/CMakeFiles/common_ssl_obj.dir/Clients.c.o
[ 40%] Building C object src/CMakeFiles/common_ssl_obj.dir/utf-8.c.o
[ 41%] Building C object src/CMakeFiles/common_ssl_obj.dir/MQTTPacket.c.o
[ 43%] Building C object src/CMakeFiles/common_ssl_obj.dir/MQTTPacketOut.c.o
[ 44%] Building C object src/CMakeFiles/common_ssl_obj.dir/Messages.c.o
[ 45%] Building C object src/CMakeFiles/common_ssl_obj.dir/Tree.c.o
[ 46%] Building C object src/CMakeFiles/common_ssl_obj.dir/Socket.c.o
[ 47%] Building C object src/CMakeFiles/common_ssl_obj.dir/Log.c.o
[ 48%] Building C object src/CMakeFiles/common_ssl_obj.dir/MQTTPersistence.c.o
[ 50%] Building C object src/CMakeFiles/common_ssl_obj.dir/Thread.c.o
[ 51%] Building C object src/CMakeFiles/common_ssl_obj.dir/MQTTProtocolOut.c.o
[ 52%] Building C object src/CMakeFiles/common_ssl_obj.dir/MQTTPersistenceDefault.c.o
[ 53%] Building C object src/CMakeFiles/common_ssl_obj.dir/SocketBuffer.c.o
[ 54%] Building C object src/CMakeFiles/common_ssl_obj.dir/LinkedList.c.o
[ 55%] Building C object src/CMakeFiles/common_ssl_obj.dir/MQTTProperties.c.o
[ 56%] Building C object src/CMakeFiles/common_ssl_obj.dir/MQTTReasonCodes.c.o
[ 58%] Building C object src/CMakeFiles/common_ssl_obj.dir/Base64.c.o
[ 59%] Building C object src/CMakeFiles/common_ssl_obj.dir/SHA1.c.o
[ 60%] Building C object src/CMakeFiles/common_ssl_obj.dir/WebSocket.c.o
[ 61%] Building C object src/CMakeFiles/common_ssl_obj.dir/Proxy.c.o
[ 62%] Building C object src/CMakeFiles/common_ssl_obj.dir/StackTrace.c.o
[ 63%] Building C object src/CMakeFiles/common_ssl_obj.dir/Heap.c.o
[ 63%] Built target common_ssl_obj
[ 65%] Building C object src/CMakeFiles/paho-mqtt3cs.dir/MQTTClient.c.o
[ 66%] Building C object src/CMakeFiles/paho-mqtt3cs.dir/SSLSocket.c.o
/home/roman/paho.mqtt.c/src/Heap.h:55:24: error: expected declaration specifiers or '...' before string constant
55 | #define free(x) myfree(__FILE__, __LINE__, x)
| ^~~~~~~~
/home/roman/paho.mqtt.c/src/Heap.h:55:34: error: expected declaration specifiers or '...' before numeric constant
55 | #define free(x) myfree(__FILE__, __LINE__, x)
| ^~~~~~~~
gmake[2]: *** [src/CMakeFiles/paho-mqtt3cs.dir/build.make:93: src/CMakeFiles/paho-mqtt3cs.dir/SSLSocket.c.o] Error 1
gmake[1]: *** [CMakeFiles/Makefile2:339: src/CMakeFiles/paho-mqtt3cs.dir/all] Error 2
gmake: *** [Makefile:156: all] Error 2
Environment (please complete the following information):
- OS: Alpine Linux
- Version 3.23.3
Additional context
Add any other context about the problem here.
$ gcc --version
gcc (Alpine 15.2.0) 15.2.0
Copyright (C) 2025 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Alpine Linux uses musl libc instead of glibc.
This is fixed after moving #include <openssl/ssl.h> before #include "Heap.h" and I don't know why...
Reactions are currently unavailable