znc: link to libstdc++ to fix performance issues on channel join

ZNC uses a map to cache channel memebers on join. Unfortunately uclibc++
uses a naive linked-list implementation with horrible performance, which
can cause joins to take a few minutes on popular channels.

Therefore Switch to libstdc++ which uses a much more performant hashmap.
ZNC by itself is already rather large, so the added footprint of
libstd++ vs uclibc++ does not matter that much anyway.

Should fix #11778.

Signed-off-by: Jonas Gorski <jogo@openwrt.org>
This commit is contained in:
Jonas Gorski
2014-11-21 13:19:30 +01:00
parent c950f48e7a
commit 1197194832
3 changed files with 4 additions and 46 deletions
+4 -5
View File
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=znc
PKG_VERSION:=1.4
PKG_RELEASE:=1
PKG_RELEASE:=2
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=http://znc.in/releases \
@@ -33,7 +33,7 @@ endef
define Package/znc
$(Package/znc/default)
DEPENDS:=+libopenssl +libpthread $(CXX_DEPENDS)
DEPENDS:=+libopenssl +libpthread +libstdcpp
MENU:=1
endef
@@ -261,14 +261,13 @@ $(eval $(call webskin,ice))
PKG_CONFIG_DEPENDS := $(patsubst %,CONFIG_PACKAGE_%,$(ZNC_MODULES))
include $(INCLUDE_DIR)/uclibc++.mk
include $(INCLUDE_DIR)/package.mk
CONFIGURE_VARS += \
CXXFLAGS="$(TARGET_CFLAGS) -fno-builtin -fno-rtti -nostdinc++" \
CXXFLAGS="$(TARGET_CFLAGS) -fno-builtin -fno-rtti" \
CPPFLAGS="-I$(STAGING_DIR)/usr/include -I$(STAGING_DIR)/include" \
LDFLAGS="-nodefaultlibs -lc -L$(STAGING_DIR)/usr/lib -L$(STAGING_DIR)/lib" \
LIBS="-luClibc++ -lm -lssl -lcrypto $(LIBGCC_S) -lc"
LIBS="-lstdc++ -lm -lssl -lcrypto $(LIBGCC_S) -lc"
CONFIGURE_ARGS += \
--disable-c-ares \