procps: import version 3.2.8 of the procps utilities

Signed-off-by: Gergely Kiss <mail.gery@gmail.com>
Tested-by: Gergely Kiss <mail.gery@gmail.com>
This commit is contained in:
Gergely Kiss 2014-12-14 23:34:26 +01:00 committed by Steven Barth
parent 5e2f77242a
commit 76ba0ac87a
4 changed files with 149 additions and 0 deletions

86
utils/procps/Makefile Normal file
View File

@ -0,0 +1,86 @@
#
# Copyright (C) 2006-2014 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:=procps
PKG_VERSION:=3.2.8
PKG_RELEASE:=1
PKG_LICENSE:=GPL-2.0
PKG_LICENSE_FILES:=COPYING COPYING.LIB
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=http://procps.sourceforge.net
PKG_MD5SUM:=9532714b6846013ca9898984ba4cd7e0
PKG_BUILD_PARALLEL:=1
include $(INCLUDE_DIR)/package.mk
PROCPS_APPLETS := \
ps free pgrep pkill pmap pwdx skill w \
slabtop snice tload top vmstat watch
define Package/procps/Default
SECTION:=utils
CATEGORY:=Utilities
DEPENDS:=+libncurses
TITLE:=proc utilities
URL:=http://procps.sourceforge.net/
MAINTAINER:=Gergely Kiss <mail.gery@gmail.com>
endef
define Package/procps
$(call Package/procps/Default)
MENU:=1
endef
define Package/procps/description
procps is the package that has a bunch of small useful utilities that give
information about processes using the /proc filesystem. The package
includes the programs ps, top, vmstat, w, kill, free, slabtop, and skill.
endef
define GenPlugin
define Package/$(1)
$(call Package/procps/Default)
DEPENDS:=procps
TITLE:=Applet $(2) from the procps package
DEFAULT:=y
endef
define Package/$(1)/description
Installs the applet $(2).
endef
endef
$(foreach a,$(PROCPS_APPLETS),$(eval $(call GenPlugin,procps-$(a),$(a))))
MAKE_FLAGS += \
CFLAGS="$(TARGET_CFLAGS)" \
CPPFLAGS="$(TARGET_CPPFLAGS)" \
LDFLAGS="$(TARGET_LDFLAGS)" \
define Package/procps/install
$(INSTALL_DIR) $(1)/usr/bin
$(INSTALL_DIR) $(1)/usr/lib
$(INSTALL_BIN) $(PKG_BUILD_DIR)/proc/libproc-$(PKG_VERSION).so $(1)/usr/lib/
endef
AUXDIR_ps := "ps/"
define BuildPlugin
define Package/$(1)/install
$(INSTALL_DIR) $$(1)/usr/bin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/$(AUXDIR_$(2))$(2) $$(1)/usr/bin/
endef
$$(eval $$(call BuildPackage,$(1)))
endef
$(foreach a,$(PROCPS_APPLETS),$(eval $(call BuildPlugin,procps-$(a),$(a))))
$(eval $(call BuildPackage,procps))

View File

@ -0,0 +1,11 @@
--- a/Makefile
+++ b/Makefile
@@ -174,7 +174,7 @@ INSTALL := $(BINFILES) $(MANFILES)
# want this rule first, use := on ALL, and ALL not filled in yet
all: do_all
--include */module.mk
+-include proc/module.mk ps/module.mk
do_all: $(ALL)

View File

@ -0,0 +1,41 @@
--- a/proc/sysinfo.c
+++ b/proc/sysinfo.c
@@ -209,7 +209,12 @@ static int check_for_privs(void){
return !!rc;
}
+#if __GNUC__ < 4 || __GNUC_MINOR__ < 3
static void init_libproc(void) __attribute__((constructor));
+#else
+static void init_libproc(void) __attribute__((constructor(200)));
+#endif
+
static void init_libproc(void){
have_privs = check_for_privs();
// ought to count CPUs in /proc/stat instead of relying
--- a/proc/version.c
+++ b/proc/version.c
@@ -33,7 +33,12 @@ void display_version(void) {
int linux_version_code;
+#if __GNUC__ < 4 || __GNUC_MINOR__ < 3
static void init_Linux_version(void) __attribute__((constructor));
+#else
+static void init_Linux_version(void) __attribute__((constructor(100)));
+#endif
+
static void init_Linux_version(void) {
static struct utsname uts;
int x = 0, y = 0, z = 0; /* cleared in case sscanf() < 3 */
--- a/proc/module.mk
+++ b/proc/module.mk
@@ -76,7 +76,7 @@ proc/$(ANAME): $(LIBOBJ)
#proc/$(SONAME): proc/library.map
proc/$(SONAME): $(LIBOBJ)
- $(CC) $(ALL_CFLAGS) $(ALL_LDFLAGS) -shared -Wl,-soname,$(SONAME) -Wl,--version-script=proc/library.map -o $@ $^ -lc
+ $(CC) $(ALL_CFLAGS) $(ALL_LDFLAGS) -shared -Wl,-soname,$(SONAME) -Wl,--version-script=proc/library.map -o $@ $(sort $^) -lc
# AUTOMATIC DEPENDENCY GENERATION -- GCC AND GNUMAKE DEPENDENT

View File

@ -0,0 +1,11 @@
--- a/proc/sig.c
+++ b/proc/sig.c
@@ -214,7 +214,7 @@ void pretty_print_signals(void){
while(++i <= number_of_signals){
int n;
n = printf("%2d %s", i, signal_number_to_name(i));
- if(i%7) printf(" \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + n);
+ if(i%7) printf("%s", " \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + n);
else printf("\n");
}
if((i-1)%7) printf("\n");