mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-23 15:32:33 +00:00
679cab88fe
Memory leak is caused by the way hotplug2 handles environment variables, using setenv() and unsetenv(). setenv() creates copies of the supplied strings, but, due to a POSIX blunder, these copies are never destroyed by unsetenv(), neither in glibc nor uclibc - not until the program terminates. Since some events are handled directly in the main process, even when configured with the "fork" worker, hotplug2 memory usage will keep growing over time. This can be observed by running "udevtrigger" and noting the increase in hotplug2 VmRSS after each run. This patch uses putenv() instead, which leaves storage management to the caller, so that we can explicitly delete stuff when it's no longer needed. Signed-off-by: Aleksandar Radovanovic <biblbroks@sezampro.rs> SVN-Revision: 18725
51 lines
1.3 KiB
Makefile
51 lines
1.3 KiB
Makefile
#
|
|
# Copyright (C) 2006-2009 OpenWrt.org
|
|
#
|
|
# This is free software, licensed under the GNU General Public License v2.
|
|
# See /LICENSE for more information.
|
|
#
|
|
|
|
include $(TOPDIR)/rules.mk
|
|
|
|
PKG_NAME:=hotplug2
|
|
PKG_REV:=201
|
|
PKG_VERSION:=$(PKG_REV)
|
|
PKG_RELEASE:=1
|
|
|
|
PKG_SOURCE_PROTO:=svn
|
|
PKG_SOURCE_VERSION:=$(PKG_REV)
|
|
PKG_SOURCE_SUBDIR:=hotplug2-$(PKG_VERSION)
|
|
PKG_SOURCE_URL:=http://svn.nomi.cz/svn/isteve/hotplug2
|
|
PKG_SOURCE:=$(PKG_SOURCE_SUBDIR).tar.gz
|
|
#PKG_SOURCE_URL:=http://isteve.bofh.cz/~isteve/hotplug2
|
|
#PKG_MD5SUM:=ea2c01d027b4002e4e6b0ff266f51a51
|
|
|
|
include $(INCLUDE_DIR)/package.mk
|
|
|
|
define Package/hotplug2
|
|
SECTION:=base
|
|
CATEGORY:=Base system
|
|
VERSION:=1.0-beta-$(PKG_RELEASE)
|
|
TITLE:=Version 1.0 Dynamic device management subsystem for embedded systems
|
|
URL:=http://isteve.bofh.cz/~isteve/hotplug2/
|
|
endef
|
|
|
|
define Package/hotplug2/description
|
|
Hotplug2 is a trivial replacement of some of the UDev functionality
|
|
in a tiny pack, intended for Linux early userspace: Init RAM FS and InitRD.
|
|
This is an implementation of Hotplug2-1.0-beta
|
|
endef
|
|
|
|
MAKE_FLAGS += \
|
|
COPTS="$(TARGET_CFLAGS)" \
|
|
STATIC_WORKER="fork"
|
|
|
|
define Package/hotplug2/install
|
|
$(INSTALL_DIR) $(1)/etc
|
|
$(INSTALL_DATA) ./files/hotplug2.rules $(1)/etc/
|
|
$(INSTALL_DIR) $(1)/sbin
|
|
$(INSTALL_BIN) $(PKG_BUILD_DIR)/hotplug2 $(1)/sbin/
|
|
endef
|
|
|
|
$(eval $(call BuildPackage,hotplug2))
|