From 2d150278632379feb6dfb238dae32084c5634557 Mon Sep 17 00:00:00 2001 From: Erlend Ese Date: Sun, 18 May 2025 00:41:26 +0200 Subject: [PATCH 1/7] Add QNX support by including necessary header for threads and endian functions. Signed-off-by: Erlend Ese --- src/CMakeLists.txt | 1 + src/MQTTPacket.h | 10 +++++++++- src/SHA1.c | 7 +++++++ src/Thread.h | 4 ++++ 4 files changed, 21 insertions(+), 1 deletion(-) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 16382c105..12909cf9b 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -80,6 +80,7 @@ elseif(UNIX) set(LIBS_SYSTEM compat pthread) elseif(CMAKE_SYSTEM_NAME MATCHES "QNX") set(LIBS_SYSTEM c) + add_definitions(-D_QNX_SOURCE -DGULLIVER) else() set(LIBS_SYSTEM c pthread) endif() diff --git a/src/MQTTPacket.h b/src/MQTTPacket.h index fd384ae9b..f9a95db50 100644 --- a/src/MQTTPacket.h +++ b/src/MQTTPacket.h @@ -28,7 +28,15 @@ #include "LinkedList.h" #include "Clients.h" -typedef unsigned int bool; +#ifdef __cplusplus + #include +#else + #ifndef __bool_true_false_are_defined + #ifndef bool + typedef unsigned int bool; + #endif + #endif +#endif typedef void* (*pf)(int, unsigned char, char*, size_t); #include "MQTTProperties.h" diff --git a/src/SHA1.c b/src/SHA1.c index 3ef07d920..2e65c41de 100644 --- a/src/SHA1.c +++ b/src/SHA1.c @@ -16,6 +16,13 @@ #include "SHA1.h" +// In the source files using endian functions (like SHA1.c): +#ifdef QNX_OS +#include +#define be32toh(x) ENDIAN_BE32(x) +#define htobe32(x) ENDIAN_BE32(x) +#endif + #if !defined(OPENSSL) #if defined(_WIN32) || defined(_WIN64) #pragma comment(lib, "crypt32.lib") diff --git a/src/Thread.h b/src/Thread.h index b0c823b65..47918fc4e 100644 --- a/src/Thread.h +++ b/src/Thread.h @@ -46,6 +46,10 @@ #undef ETIMEDOUT #define ETIMEDOUT WSAETIMEDOUT #else + #if defined(QNX_OS) + #include + #include + #endif #include #define thread_type pthread_t From 82cebfd88975b5ae78e6048ebcd61c1e4e04680f Mon Sep 17 00:00:00 2001 From: Erlend Ese Date: Thu, 14 May 2026 00:11:13 +0200 Subject: [PATCH 2/7] nit commit --- src/MQTTPacket.h | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/src/MQTTPacket.h b/src/MQTTPacket.h index 74a6bfbdd..d1d7a4d54 100644 --- a/src/MQTTPacket.h +++ b/src/MQTTPacket.h @@ -40,7 +40,6 @@ #endif typedef unsigned int bit; - typedef void* (*pf)(int, unsigned char, char*, size_t); #include "MQTTProperties.h" @@ -70,13 +69,7 @@ enum msgTypes #endif /** - * - - - - - - fields for the MQTT header byte. + * Bitfields for the MQTT header byte. */ typedef union { From 7dcdb62112ec6cc722abd81993585c38461925f8 Mon Sep 17 00:00:00 2001 From: Erlend Ese Date: Thu, 14 May 2026 01:44:33 +0200 Subject: [PATCH 3/7] use standard preprocessor macro --- src/Thread.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Thread.h b/src/Thread.h index 9bfcb13bc..30e0284bf 100644 --- a/src/Thread.h +++ b/src/Thread.h @@ -46,7 +46,7 @@ #undef ETIMEDOUT #define ETIMEDOUT WSAETIMEDOUT #else - #if defined(QNX_OS) + #ifdef __QNXNTO__ #include #include #endif From 2707d33a1b313d300ca6177f1885b30f628851d5 Mon Sep 17 00:00:00 2001 From: Erlend Ese Date: Thu, 14 May 2026 01:46:45 +0200 Subject: [PATCH 4/7] use standard preprocessor macro --- src/SHA1.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/SHA1.c b/src/SHA1.c index 5a241af0f..adf502d74 100644 --- a/src/SHA1.c +++ b/src/SHA1.c @@ -17,7 +17,7 @@ #include "SHA1.h" // In the source files using endian functions (like SHA1.c): -#ifdef QNX_OS +#ifdef __QNXNTO__ #include #define be32toh(x) ENDIAN_BE32(x) #define htobe32(x) ENDIAN_BE32(x) From fcae89c3658475c18c35fa928503d150085a8f89 Mon Sep 17 00:00:00 2001 From: Erlend Ese Date: Thu, 14 May 2026 01:59:38 +0200 Subject: [PATCH 5/7] wth --- src/MQTTPacket.h | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/src/MQTTPacket.h b/src/MQTTPacket.h index d1d7a4d54..04c217ef8 100644 --- a/src/MQTTPacket.h +++ b/src/MQTTPacket.h @@ -28,17 +28,6 @@ #include "LinkedList.h" #include "Clients.h" - -#ifdef __cplusplus - #include -#else - #ifndef __bool_true_false_are_defined - #ifndef bool - typedef unsigned int bool; - #endif - #endif -#endif - typedef unsigned int bit; typedef void* (*pf)(int, unsigned char, char*, size_t); From c3009281e7f8e97ba078e07371ae8881195b9289 Mon Sep 17 00:00:00 2001 From: Erlend Ese Date: Thu, 14 May 2026 11:04:13 +0200 Subject: [PATCH 6/7] gulliver flag not required --- src/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 796d57ba7..4e52956c0 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -80,7 +80,7 @@ elseif(UNIX) set(LIBS_SYSTEM compat pthread) elseif(CMAKE_SYSTEM_NAME MATCHES "QNX") set(LIBS_SYSTEM c socket) - add_definitions(-D_QNX_SOURCE -DGULLIVER) + add_definitions(-D_QNX_SOURCE) else() set(LIBS_SYSTEM c pthread) endif() From d423dab407d763e23fdbf0e7ffc72eaf18d438e5 Mon Sep 17 00:00:00 2001 From: Erlend Ese Date: Thu, 14 May 2026 11:50:02 +0200 Subject: [PATCH 7/7] sys/neutrino not required --- src/Thread.h | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/Thread.h b/src/Thread.h index 30e0284bf..0cf428be4 100644 --- a/src/Thread.h +++ b/src/Thread.h @@ -46,10 +46,6 @@ #undef ETIMEDOUT #define ETIMEDOUT WSAETIMEDOUT #else - #ifdef __QNXNTO__ - #include - #include - #endif #include #define mutex_type pthread_mutex_t*