bc335f5df7
Build environment Fedora 21 X86-64 gcc 4.9.2 how to repeat $ ./configure --enable debug $ make libtool: compile: gcc -dhave_config_h -i. -i.. -i../upnp/inc -i./inc -i../threadutil/inc -i../ixml/inc -i./src/inc -pthread -g -o2 -wall -mt src/api/libupnp_la-upnpstring.lo -md -mp -mf src/api/.deps/libupnp_la-upnpstring.tpo -c src/api/upnpstring.c -fpic -dpic -o src/api .libs/libupnp_la-upnpstring.o src/api/UpnpString.c:47:16: error: expected identifier or '(' before 'extension' extern char *strndup(const char *string, size_t __n); ^ Makefile:1016: recipe for target 'src/api/libupnp_la-UpnpString.lo' failed Reason for failure Build enables -O2 optimization flags which causes the inclusion of a macro implementation of strndup from include/bits/string2.h. Workarounds Disable optimization when configuring or making: $ configure CFLAGS='-g -pthread -O0' --enable-debug $ make or $ configure --enable-debug $ make CFLAGS='-g -pthread -O0' Define NO_STRING_INLINES $ export CFLAGS="-DNO_STRING_INLINES -O2" $ ./configure --enagble-debug $ make Fix * Don't declare strndup in src/api/UpnpString.c if it exists