diff --git a/libs/libupnp/Makefile b/libs/libupnp/Makefile index 8dd2cea15..a08639469 100644 --- a/libs/libupnp/Makefile +++ b/libs/libupnp/Makefile @@ -1,12 +1,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=libupnp -PKG_VERSION:=1.6.25 +PKG_VERSION:=1.8.4 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2 PKG_SOURCE_URL:=@SF/pupnp -PKG_HASH:=c5a300b86775435c076d58a79cc0d5a977d76027d2a7d721590729b7f369fa43 +PKG_HASH:=188d3f786d92fe14191f17634d2d87847eee7d2b568a5257ea23262fec9973d6 PKG_MAINTAINER:=Ted Hess PKG_FIXUP:=autoreconf @@ -45,18 +45,23 @@ define Package/libupnp-sample/description TVcontrolpoint & tvdevice sample applications run inside /etc/upnp-tvdevice/ endef +TARGET_CFLAGS += -flto +TARGET_LDFLAGS += -flto + +CONFIGURE_VARS += ac_cv_lib_compat_ftime=no + define Build/InstallDev $(INSTALL_DIR) $(1)/usr/include $(CP) $(PKG_INSTALL_DIR)/usr/include/upnp $(1)/usr/include/ $(INSTALL_DIR) $(1)/usr/lib - $(CP) $(PKG_INSTALL_DIR)/usr/lib/lib{ixml,threadutil,upnp}.{a,so*,la} $(1)/usr/lib/ + $(CP) $(PKG_INSTALL_DIR)/usr/lib/lib{ixml,upnp}.{a,so*,la} $(1)/usr/lib/ $(INSTALL_DIR) $(1)/usr/lib/pkgconfig $(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/libupnp.pc $(1)/usr/lib/pkgconfig/ endef define Package/libupnp/install $(INSTALL_DIR) $(1)/usr/lib - $(CP) $(PKG_INSTALL_DIR)/usr/lib/lib{ixml,threadutil,upnp}.so.* $(1)/usr/lib/ + $(CP) $(PKG_INSTALL_DIR)/usr/lib/lib{ixml,upnp}.so.* $(1)/usr/lib/ endef define Package/libupnp-sample/install diff --git a/libs/libupnp/patches/100-fix-pthread-detach.patch b/libs/libupnp/patches/100-fix-pthread-detach.patch new file mode 100644 index 000000000..5e384d301 --- /dev/null +++ b/libs/libupnp/patches/100-fix-pthread-detach.patch @@ -0,0 +1,24 @@ +From 386b7ed79146ecf7a3bba49f48cb8f41a9b49170 Mon Sep 17 00:00:00 2001 +From: Jean-Francois Dockes +Date: Sun, 27 Jan 2019 10:44:17 +0100 +Subject: [PATCH] Do not try to detach detached thread, the result is + undefined. Fixes issue #102 + +--- + upnp/src/threadutil/ThreadPool.c | 5 ----- + 1 file changed, 5 deletions(-) + +--- a/upnp/src/threadutil/ThreadPool.c ++++ b/upnp/src/threadutil/ThreadPool.c +@@ -651,11 +651,6 @@ static int CreateWorker( + rc = ithread_create(&temp, &attr, WorkerThread, tp); + ithread_attr_destroy(&attr); + if (rc == 0) { +- rc = ithread_detach(temp); +- /* ithread_detach will return EINVAL if thread has been +- successfully detached by ithread_create */ +- if (rc == EINVAL) +- rc = 0; + tp->pendingWorkerThreadStart = 1; + /* wait until the new worker thread starts */ + while (tp->pendingWorkerThreadStart) {