Skip navigation.
Home
The QNX Community Portal

View topic - mosquitto make

mosquitto make

Discussion about the QNX6 OS.

mosquitto make

Postby robby0524 » Mon Apr 18, 2016 1:56 am

I want to make for mosquitto-1.4.4 on QNX6.5. There are some bug from this log. How to debug or manual to set make file?
make message:
# pwd
/root/mosquitto-1.4.4
# make
set -e; for d in lib client src; do make -C ${d}; done
make[1]: Entering directory `/root/mosquitto-1.4.4/lib'
cc -Wall -ggdb -O2 -I. -I.. -I../lib -fPIC -DWITH_TLS -DWITH_TLS_PSK -DWITH_THR
EADING -DWITH_SOCKS -c mosquitto.c -o mosquitto.o
mosquitto.c: In function 'mosquitto_loop':
mosquitto.c:914: warning: implicit declaration of function 'pselect'
cc -Wall -ggdb -O2 -I. -I.. -I../lib -fPIC -DWITH_TLS -DWITH_TLS_PSK -DWITH_THR
EADING -DWITH_SOCKS -c logging_mosq.c -o logging_mosq.o
cc -Wall -ggdb -O2 -I. -I.. -I../lib -fPIC -DWITH_TLS -DWITH_TLS_PSK -DWITH_THR
EADING -DWITH_SOCKS -c memory_mosq.c -o memory_mosq.o
cc -Wall -ggdb -O2 -I. -I.. -I../lib -fPIC -DWITH_TLS -DWITH_TLS_PSK -DWITH_THR
EADING -DWITH_SOCKS -c messages_mosq.c -o messages_mosq.o
cc -Wall -ggdb -O2 -I. -I.. -I../lib -fPIC -DWITH_TLS -DWITH_TLS_PSK -DWITH_THR
EADING -DWITH_SOCKS -c net_mosq.c -o net_mosq.o
cc -Wall -ggdb -O2 -I. -I.. -I../lib -fPIC -DWITH_TLS -DWITH_TLS_PSK -DWITH_THR
EADING -DWITH_SOCKS -c read_handle.c -o read_handle.o
cc -Wall -ggdb -O2 -I. -I.. -I../lib -fPIC -DWITH_TLS -DWITH_TLS_PSK -DWITH_THR
EADING -DWITH_SOCKS -c read_handle_client.c -o read_handle_client.o
cc -Wall -ggdb -O2 -I. -I.. -I../lib -fPIC -DWITH_TLS -DWITH_TLS_PSK -DWITH_THR
EADING -DWITH_SOCKS -c read_handle_shared.c -o read_handle_shared.o
cc -Wall -ggdb -O2 -I. -I.. -I../lib -fPIC -DWITH_TLS -DWITH_TLS_PSK -DWITH_THR
EADING -DWITH_SOCKS -c send_mosq.c -o send_mosq.o
cc -Wall -ggdb -O2 -I. -I.. -I../lib -fPIC -DWITH_TLS -DWITH_TLS_PSK -DWITH_THR
EADING -DWITH_SOCKS -c send_client_mosq.c -o send_client_mosq.o
cc -Wall -ggdb -O2 -I. -I.. -I../lib -fPIC -DWITH_TLS -DWITH_TLS_PSK -DWITH_THR
EADING -DWITH_SOCKS -c socks_mosq.c -o socks_mosq.o
cc -Wall -ggdb -O2 -I. -I.. -I../lib -fPIC -DWITH_TLS -DWITH_TLS_PSK -DWITH_THR
EADING -DWITH_SOCKS -c srv_mosq.c -o srv_mosq.o
cc -Wall -ggdb -O2 -I. -I.. -I../lib -fPIC -DWITH_TLS -DWITH_TLS_PSK -DWITH_THR
EADING -DWITH_SOCKS -c thread_mosq.c -o thread_mosq.o
cc -Wall -ggdb -O2 -I. -I.. -I../lib -fPIC -DWITH_TLS -DWITH_TLS_PSK -DWITH_THR
EADING -DWITH_SOCKS -c time_mosq.c -o time_mosq.o
cc -Wall -ggdb -O2 -I. -I.. -I../lib -fPIC -DWITH_TLS -DWITH_TLS_PSK -DWITH_THR
EADING -DWITH_SOCKS -c tls_mosq.c -o tls_mosq.o
cc -Wall -ggdb -O2 -I. -I.. -I../lib -fPIC -DWITH_TLS -DWITH_TLS_PSK -DWITH_THR
EADING -DWITH_SOCKS -c util_mosq.c -o util_mosq.o
cc -Wall -ggdb -O2 -I. -I.. -I../lib -fPIC -DWITH_TLS -DWITH_TLS_PSK -DWITH_THR
EADING -DWITH_SOCKS -c will_mosq.c -o will_mosq.o
cc -shared -Wl,--version-script=linker.version -Wl,-soname,libmosquitto.so.1 mo
squitto.o logging_mosq.o memory_mosq.o messages_mosq.o net_mosq.o read_handle.o
read_handle_client.o read_handle_shared.o send_mosq.o send_client_mosq.o socks_m
osq.o srv_mosq.o thread_mosq.o time_mosq.o tls_mosq.o util_mosq.o will_mosq.o -o
libmosquitto.so.1 -lsocket -lssl -lcrypto -lpthread
/usr/qnx650/host/qnx6/x86/usr/bin/ntox86-ld: cannot find -lpthread
cc: /usr/qnx650/host/qnx6/x86/usr/bin/ntox86-ld error 1
make[1]: *** [libmosquitto.so.1] Error 1
make[1]: Leaving directory `/root/mosquitto-1.4.4/lib'
make: *** [mosquitto] Error 2
robby0524
Active Member
 
Posts: 19
Joined: Tue Oct 21, 2014 5:26 am

Re: mosquitto make

Postby Tim » Mon Apr 18, 2016 6:19 pm

In QNX, pthread is contained in libc.

Normally this is included automatically at link time. So you can remove the -lpthread from the link line in your Makefile.

Tim
Tim
Senior Member
 
Posts: 1389
Joined: Wed Mar 10, 2004 12:28 am

Re: mosquitto make

Postby robby0524 » Wed Apr 20, 2016 7:26 am

Thanks for your reply. My information is mosquitto version: 1.4.4 , QNX : 6.5.0 and CPU:X86.
I remover the -lpthread but it have a new error message. If you have a information for the mosquitto, please reply me.
My reference link is https://github.com/oniongarlic/mosquitto
Thanks

Error message:
# make
set -e; for d in lib client src; do make -C ${d}; done
make[1]: Entering directory `/root/mosquitto-1.4.4/lib'
make -C cpp
make[2]: Entering directory `/root/mosquitto-1.4.4/lib/cpp'
make[2]: Nothing to be done for `all'.
make[2]: Leaving directory `/root/mosquitto-1.4.4/lib/cpp'
make[1]: Leaving directory `/root/mosquitto-1.4.4/lib'
make[1]: Entering directory `/root/mosquitto-1.4.4/client'
make[1]: Nothing to be done for `all'.
make[1]: Leaving directory `/root/mosquitto-1.4.4/client'
make[1]: Entering directory `/root/mosquitto-1.4.4/src'
cc mosquitto.o bridge.o conf.o context.o database.o logging.o loop.o memory_mosq

.o persist.o net.o net_mosq.o read_handle.o read_handle_client.o read_handle_ser

ver.o read_handle_shared.o security.o security_default.o send_client_mosq.o send

_mosq.o send_server.o service.o subs.o sys_tree.o time_mosq.o tls_mosq.o util_mo

sq.o websockets.o will_mosq.o -o mosquitto -ldl -lm -lsocket -lssl -lcrypto
/usr/qnx650/host/qnx6/x86/usr/bin/ntox86-ld: cannot find -ldl
cc: /usr/qnx650/host/qnx6/x86/usr/bin/ntox86-ld error 1
make[1]: *** [mosquitto] Error 1
make[1]: Leaving directory `/root/mosquitto-1.4.4/src'
make: *** [mosquitto] Error 2





config.mk:
# =============================================================================
# User configuration section.
#
# These options control compilation on all systems apart from Windows and Mac
# OS X. Use CMake to compile on Windows and Mac.
#
# Largely, these are options that are designed to make mosquitto run more
# easily in restrictive environments by removing features.
#
# Modify the variable below to enable/disable features.
#
# Can also be overriden at the command line, e.g.:
#
# make WITH_TLS=no
# =============================================================================

# Uncomment to compile the broker with tcpd/libwrap support.
#WITH_WRAP:=yes

# Comment out to disable SSL/TLS support in the broker and client.
# Disabling this will also mean that passwords must be stored in plain text. It
# is strongly recommended that you only disable WITH_TLS if you are not using
# password authentication at all.
WITH_TLS:=yes

# Comment out to disable TLS/PSK support in the broker and client. Requires
# WITH_TLS=yes.
# This must be disabled if using openssl < 1.0.
WITH_TLS_PSK:=yes

# Comment out to disable client client threading support.
WITH_THREADING:=yes

# Comment out to remove bridge support from the broker. This allow the broker
# to connect to other brokers and subscribe/publish to topics. You probably
# want to leave this included unless you want to save a very small amount of
# memory size and CPU time.
WITH_BRIDGE:=yes

# Comment out to remove persistent database support from the broker. This
# allows the broker to store retained messages and durable subscriptions to a
# file periodically and on shutdown. This is usually desirable (and is
# suggested by the MQTT spec), but it can be disabled if required.
WITH_PERSISTENCE:=yes

# Comment out to remove memory tracking support from the broker. If disabled,
# mosquitto won't track heap memory usage nor export '$SYS/broker/heap/current
# size', but will use slightly less memory and CPU time.
WITH_MEMORY_TRACKING:=yes

# Compile with database upgrading support? If disabled, mosquitto won't
# automatically upgrade old database versions.
# Not currently supported.
#WITH_DB_UPGRADE:=yes

# Comment out to remove publishing of the $SYS topic hierarchy containing
# information about the broker state.
WITH_SYS_TREE:=yes

# Build with SRV lookup support.
WITH_SRV:=no #kuo

# Build using libuuid for clientid generation (Linux only - please report if
# supported on your platform).
WITH_UUID:=yes

# Build with websockets support on the broker.
WITH_WEBSOCKETS:=no

# Use elliptic keys in broker
WITH_EC:=yes

# Build man page documentation by default.
WITH_DOCS:=yes

# Build with client support for SOCK5 proxy.
WITH_SOCKS:=yes

# =============================================================================
# End of user configuration
# =============================================================================


# Also bump lib/mosquitto.h, CMakeLists.txt,
# installer/mosquitto.nsi, installer/mosquitto-cygwin.nsi
VERSION=1.4.4
TIMESTAMP:=$(shell date "+%F %T%z")

# Client library SO version. Bump if incompatible API/ABI changes are made.
SOVERSION=1

# Man page generation requires xsltproc and docbook-xsl
XSLTPROC=xsltproc
# For html generation
DB_HTML_XSL=man/html.xsl

#MANCOUNTRIES=en_GB

UNAME:=$(shell uname -s)

ifeq ($(UNAME),SunOS)
ifeq ($(CC),cc)
CFLAGS?=-O
else
CFLAGS?=-Wall -ggdb -O2
endif
else
CFLAGS?=-Wall -ggdb -O2
endif

LIB_CFLAGS:=${CFLAGS} ${CPPFLAGS} -I. -I.. -I../lib
LIB_CXXFLAGS:=$(LIB_CFLAGS) ${CPPFLAGS}
LIB_LDFLAGS:=${LDFLAGS}

BROKER_CFLAGS:=${LIB_CFLAGS} ${CPPFLAGS} -DVERSION="\"${VERSION}\"" -DTIMESTAMP="\"${TIMESTAMP}\"" -DWITH_BROKER
CLIENT_CFLAGS:=${CFLAGS} ${CPPFLAGS} -I../lib -DVERSION="\"${VERSION}\""

ifneq ($(or $(find $(UNAME),FreeBSD), $(find $(UNAME),OpenBSD)),)
BROKER_LIBS:=-lm
else
BROKER_LIBS:=-ldl -lm
endif
LIB_LIBS:=
PASSWD_LIBS:=

ifeq ($(UNAME),Linux)
BROKER_LIBS:=$(BROKER_LIBS) -lrt -Wl,--dynamic-list=linker.syms
LIB_LIBS:=$(LIB_LIBS) -lrt
endif

CLIENT_LDFLAGS:=$(LDFLAGS) -L../lib ../lib/libmosquitto.so.${SOVERSION}

ifeq ($(UNAME),SunOS)
ifeq ($(CC),cc)
LIB_CFLAGS:=$(LIB_CFLAGS) -xc99 -KPIC
else
LIB_CFLAGS:=$(LIB_CFLAGS) -fPIC
endif

ifeq ($(CXX),CC)
LIB_CXXFLAGS:=$(LIB_CXXFLAGS) -KPIC
else
LIB_CXXFLAGS:=$(LIB_CXXFLAGS) -fPIC
endif
else
LIB_CFLAGS:=$(LIB_CFLAGS) -fPIC
LIB_CXXFLAGS:=$(LIB_CXXFLAGS) -fPIC
endif

ifneq ($(UNAME),SunOS)
LIB_LDFLAGS:=$(LIB_LDFLAGS) -Wl,--version-script=linker.version -Wl,-soname,libmosquitto.so.$(SOVERSION)
endif

ifeq ($(UNAME),QNX)
BROKER_LIBS:=$(BROKER_LIBS) -lsocket
LIB_LIBS:=$(LIB_LIBS) -lsocket
endif

ifeq ($(WITH_WRAP),yes)
BROKER_LIBS:=$(BROKER_LIBS) -lwrap
BROKER_CFLAGS:=$(BROKER_CFLAGS) -DWITH_WRAP
endif

ifeq ($(WITH_TLS),yes)
BROKER_LIBS:=$(BROKER_LIBS) -lssl -lcrypto
LIB_LIBS:=$(LIB_LIBS) -lssl -lcrypto
BROKER_CFLAGS:=$(BROKER_CFLAGS) -DWITH_TLS
LIB_CFLAGS:=$(LIB_CFLAGS) -DWITH_TLS
PASSWD_LIBS:=-lcrypto
CLIENT_CFLAGS:=$(CLIENT_CFLAGS) -DWITH_TLS

ifeq ($(WITH_TLS_PSK),yes)
BROKER_CFLAGS:=$(BROKER_CFLAGS) -DWITH_TLS_PSK
LIB_CFLAGS:=$(LIB_CFLAGS) -DWITH_TLS_PSK
CLIENT_CFLAGS:=$(CLIENT_CFLAGS) -DWITH_TLS_PSK
endif
endif

ifeq ($(WITH_THREADING),yes)
#LIB_LIBS:=$(LIB_LIBS) -lpthread
LIB_LIBS:=$(LIB_LIBS) #kuo
LIB_CFLAGS:=$(LIB_CFLAGS) -DWITH_THREADING
endif

ifeq ($(WITH_SOCKS),yes)
LIB_CFLAGS:=$(LIB_CFLAGS) -DWITH_SOCKS
CLIENT_CFLAGS:=$(CLIENT_CFLAGS) -DWITH_SOCKS
endif

ifeq ($(WITH_UUID),yes)
ifeq ($(UNAME),Linux)
BROKER_CFLAGS:=$(BROKER_CFLAGS) -DWITH_UUID
BROKER_LIBS:=$(BROKER_LIBS) -luuid
endif
endif

ifeq ($(WITH_BRIDGE),yes)
BROKER_CFLAGS:=$(BROKER_CFLAGS) -DWITH_BRIDGE
endif

ifeq ($(WITH_PERSISTENCE),yes)
BROKER_CFLAGS:=$(BROKER_CFLAGS) -DWITH_PERSISTENCE
endif

ifeq ($(WITH_MEMORY_TRACKING),yes)
ifneq ($(UNAME),SunOS)
BROKER_CFLAGS:=$(BROKER_CFLAGS) -DWITH_MEMORY_TRACKING
endif
endif

#ifeq ($(WITH_DB_UPGRADE),yes)
# BROKER_CFLAGS:=$(BROKER_CFLAGS) -DWITH_DB_UPGRADE
#endif

ifeq ($(WITH_SYS_TREE),yes)
BROKER_CFLAGS:=$(BROKER_CFLAGS) -DWITH_SYS_TREE
endif

ifeq ($(WITH_SRV),yes)
LIB_CFLAGS:=$(LIB_CFLAGS) -DWITH_SRV
LIB_LIBS:=$(LIB_LIBS) -lcares
CLIENT_CFLAGS:=$(CLIENT_CFLAGS) -DWITH_SRV
endif

ifeq ($(WITH_WEBSOCKETS),yes)
BROKER_CFLAGS:=$(BROKER_CFLAGS) -DWITH_WEBSOCKETS
BROKER_LIBS:=$(BROKER_LIBS) -lwebsockets
endif

ifeq ($(UNAME),SunOS)
BROKER_LIBS:=$(BROKER_LIBS) -lsocket -lnsl
LIB_LIBS:=$(LIB_LIBS) -lsocket -lnsl
endif

ifeq ($(WITH_EC),yes)
BROKER_CFLAGS:=$(BROKER_CFLAGS) -DWITH_EC
endif

MAKE_ALL:=mosquitto
ifeq ($(WITH_DOCS),yes)
MAKE_ALL:=$(MAKE_ALL) docs
endif

INSTALL?=install
prefix=/usr/local
mandir=${prefix}/share/man
localedir=${prefix}/share/locale
STRIP?=strip
-------------------------------------------------------------------------------------------------------------------------
robby0524
Active Member
 
Posts: 19
Joined: Tue Oct 21, 2014 5:26 am

Re: mosquitto make

Postby robby0524 » Thu Mar 30, 2017 3:33 am

The mosquitto release new version(1.4.7) support QNX. The make file is below, if it want be run x86 system.
How to modify the make file?
config.mk(V1.4.7):
CFLAGS?=-Wall -ggdb -O2 -fstack-protector -fstack-protector-all -mcpu=cortex-a9 -V4.6.3,gcc_ntoarmv7le -D__QNX__
CPPFLAGS=-V4.6.3,gcc_ntoarmv7le -Y_gpp -D__QNX__
LDFLAGS=-V4.6.3,gcc_ntoarmv7le -Y_gpp -D__QNX__
robby0524
Active Member
 
Posts: 19
Joined: Tue Oct 21, 2014 5:26 am

Re: mosquitto make

Postby robby0524 » Mon Apr 03, 2017 6:58 am

How to modify the make file for x86 system?
config.mk:
CFLAGS?=-Wall -ggdb -O2 -fstack-protector -fstack-protector-all -mcpu=cortex-a9 -V4.6.3,gcc_ntoarmv7le -D__QNX__
CPPFLAGS=-V4.6.3,gcc_ntoarmv7le -Y_gpp -D__QNX__
LDFLAGS=-V4.6.3,gcc_ntoarmv7le -Y_gpp -D__QNX__
robby0524
Active Member
 
Posts: 19
Joined: Tue Oct 21, 2014 5:26 am


Return to QNX6 - OS

Who is online

Users browsing this forum: No registered users and 2 guests