--- /dev/null
+#
+# Copyright (C) 2006-2011 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:=binutils
+PKG_VERSION:=$(strip $(subst ",, $(CONFIG_BINUTILS_VERSION)))
+#"))
+PKG_RELEASE:=5
+
+PKG_SOURCE_URL:=@GNU/binutils
+PKG_SOURCE:=binutils-$(PKG_VERSION).tar.bz2
+PKG_MD5SUM:=
+
+PATCH_DIR:=$(TOPDIR)/toolchain/binutils/patches/$(PKG_VERSION)
+
+PKG_FIXUP:=autoreconf
+PKG_LIBTOOL_PATHS:=. gas bfd opcodes gprof binutils ld libiberty gold intl
+PKG_REMOVE_FILES:=libtool.m4
+PKG_INSTALL:=1
+
+PKG_MAINTAINER:=Felix Fietkau <nbd@openwrt.org>
+
+PKG_BUILD_PARALLEL:=1
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/binutils
+ SECTION:=devel
+ CATEGORY:=Development
+ TITLE:=binutils
+ DEPENDS:=+objdump
+endef
+
+define Package/objdump
+ SECTION:=devel
+ CATEGORY:=Development
+ TITLE:=objdump
+ DEPENDS:=+zlib
+endef
+
+define Package/binutils/description
+ The Binutils package contains a linker, an assembler, and other tools for handling object files
+endef
+
+CONFIGURE_ARGS = \
+ --target=$(REAL_GNU_TARGET_NAME) \
+ --host=$(REAL_GNU_TARGET_NAME) \
+ --build=$(GNU_HOST_NAME) \
+ --prefix=/usr \
+ --disable-multilib \
+ --disable-werror \
+ --disable-nls \
+ --enable-shared \
+ $(SOFT_FLOAT_CONFIG_OPTION) \
+ $(call qstrip,$(CONFIG_EXTRA_BINUTILS_CONFIG_OPTIONS))
+
+TARGET_CFLAGS += $(FPIC)
+TARGET_LDFLAGS := -L$(PKG_BUILD_DIR)/libiberty $(TARGET_LDFLAGS)
+
+define Build/Configure
+ $(call Build/Configure/Default)
+ $(call Build/Compile/Default, \
+ configure-bfd \
+ configure-binutils \
+ configure-etc \
+ configure-gas \
+ configure-gprof \
+ configure-intl \
+ configure-ld \
+ configure-libiberty \
+ configure-opcodes \
+ )
+ $(MAKE) CFLAGS="$(TARGET_CFLAGS)" -C $(PKG_BUILD_DIR)/bfd/po Makefile
+endef
+
+define Build/InstallDev
+ $(INSTALL_DIR) $(1)/usr/{lib,include}
+ $(CP) \
+ $(PKG_INSTALL_DIR)/usr/lib/* \
+ $(1)/usr/lib/
+ $(CP) \
+ $(PKG_BUILD_DIR)/include/*.h \
+ $(1)/usr/include/
+ $(CP) \
+ $(PKG_INSTALL_DIR)/usr/include/* \
+ $(1)/usr/include/
+ rm -f $(1)/usr/include/gdbm.h
+endef
+
+define Build/Compile
+ +$(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR)/bfd/doc/ CFLAGS="-I$(PKG_BUILD_DIR)/include" chew
+ $(call Build/Compile/Default)
+endef
+
+define Package/objdump/install
+ $(INSTALL_DIR) $(1)/usr/bin $(1)/usr/lib
+ $(CP) $(PKG_INSTALL_DIR)/usr/bin/objdump $(1)/usr/bin/
+ $(CP) $(PKG_INSTALL_DIR)/usr/lib/libopcodes*.so $(1)/usr/lib/
+ $(CP) $(PKG_INSTALL_DIR)/usr/lib/libbfd*.so $(1)/usr/lib/
+endef
+
+define Package/binutils/install
+ $(INSTALL_DIR) $(1)/usr $(1)/bin
+ $(CP) $(PKG_INSTALL_DIR)/usr/bin/ $(1)/usr/
+ mv $(1)/usr/bin/strings $(1)/bin/strings
+ rm -f $(1)/usr/bin/objdump
+endef
+
+$(eval $(call BuildPackage,binutils))
+$(eval $(call BuildPackage,objdump))
--- /dev/null
+#
+# Copyright (C) 2009-2010 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:=oprofile
+PKG_VERSION:=0.9.7
+PKG_RELEASE:=1
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=@SF/oprofile/
+PKG_MD5SUM:=8b5d1d9b65f84420bcc3234777ad3be3
+
+PKG_MAINTAINER:=Felix Fietkau <nbd@openwrt.org>
+
+PKG_BUILD_DEPENDS:=binutils
+PKG_FIXUP:=autoreconf
+PKG_INSTALL:=1
+PKG_BUILD_PARALLEL:=1
+
+include $(INCLUDE_DIR)/package.mk
+include $(INCLUDE_DIR)/kernel.mk
+
+define Package/oprofile
+ SECTION:=devel
+ CATEGORY:=Development
+ TITLE:=OProfile System Profiler
+ URL:=http://oprofile.sourceforge.net
+ DEPENDS:=+libpopt +kmod-oprofile +libstdcpp +objdump
+endef
+
+define Package/oprofile/description
+ A transparent low-overhead system-wide profiler.
+endef
+
+define Package/oprofile-utils
+ SECTION:=devel
+ CATEGORY:=Development
+ TITLE:=OProfile System Profiler (extra utilities)
+ URL:=http://oprofile.sourceforge.net
+ DEPENDS:=oprofile
+endef
+
+define Build/Configure
+ $(call Build/Configure/Default, \
+ --with-kernel-support \
+ --without-x \
+ )
+endef
+
+TARGET_CXXFLAGS += -fpermissive
+TARGET_LDFLAGS := -L$(STAGING_DIR)/usr/lib $(TARGET_LDFLAGS)
+
+define Package/oprofile-utils/install
+ $(INSTALL_DIR) $(1)/usr/bin
+ $(INSTALL_BIN) \
+ $(PKG_INSTALL_DIR)/usr/bin/opannotate \
+ $(PKG_INSTALL_DIR)/usr/bin/oparchive \
+ $(PKG_INSTALL_DIR)/usr/bin/opgprof \
+ $(1)/usr/bin
+endef
+
+define Package/oprofile/install
+ $(INSTALL_DIR) $(1)/usr/bin
+ $(INSTALL_BIN) \
+ $(PKG_INSTALL_DIR)/usr/bin/* \
+ $(1)/usr/bin
+
+ rm -f \
+ $(1)/usr/bin/opannotate \
+ $(1)/usr/bin/oparchive \
+ $(1)/usr/bin/opgprof
+
+ $(INSTALL_DIR) $(1)/usr/lib/oprofile
+ $(CP) \
+ $(PKG_INSTALL_DIR)/usr/lib/oprofile/*.so* \
+ $(1)/usr/lib/oprofile/
+
+ $(INSTALL_DIR) $(1)/usr/share/oprofile
+ $(CP) \
+ $(PKG_INSTALL_DIR)/usr/share/oprofile/stl.pat \
+ $(PKG_INSTALL_DIR)/usr/share/oprofile/$(patsubst x86,i386,$(LINUX_KARCH)) \
+ $(1)/usr/share/oprofile/
+endef
+
+$(eval $(call BuildPackage,oprofile))
+$(eval $(call BuildPackage,oprofile-utils))
--- /dev/null
+--- a/utils/opcontrol
++++ b/utils/opcontrol
+@@ -248,7 +248,7 @@ load_module_26()
+ {
+ grep oprofilefs /proc/filesystems >/dev/null
+ if test "$?" -ne 0; then
+- modprobe oprofile
++ insmod oprofile
+ if test "$?" != "0"; then
+ # couldn't load the module
+ return
+@@ -278,7 +278,7 @@ load_module_24()
+ {
+ grep oprof /proc/devices >/dev/null
+ if test "$?" -ne 0; then
+- modprobe oprofile
++ insmod oprofile
+ if test "$?" != "0"; then
+ # couldn't load a module
+ return
--- /dev/null
+--- a/daemon/Makefile.am
++++ b/daemon/Makefile.am
+@@ -1,4 +1,4 @@
+-SUBDIRS = liblegacy .
++SUBDIRS = .
+
+ oprofiled_SOURCES = \
+ init.c \
+@@ -49,7 +49,6 @@ AM_CFLAGS = @OP_CFLAGS@ -fno-omit-frame-
+ bin_PROGRAMS = oprofiled
+
+ oprofiled_LDADD = \
+- liblegacy/liblegacy.a \
+ ../libabi/libabi.a \
+ ../libdb/libodb.a \
+ ../libop/libop.a \
+--- a/daemon/Makefile.in
++++ b/daemon/Makefile.in
+@@ -70,7 +70,7 @@ am_oprofiled_OBJECTS = init.$(OBJEXT) op
+ opd_extended.$(OBJEXT) opd_ibs.$(OBJEXT) \
+ opd_ibs_trans.$(OBJEXT)
+ oprofiled_OBJECTS = $(am_oprofiled_OBJECTS)
+-oprofiled_DEPENDENCIES = liblegacy/liblegacy.a ../libabi/libabi.a \
++oprofiled_DEPENDENCIES = ../libabi/libabi.a \
+ ../libdb/libodb.a ../libop/libop.a ../libutil/libutil.a
+ DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
+ depcomp = $(SHELL) $(top_srcdir)/depcomp
+@@ -285,7 +285,7 @@ top_build_prefix = @top_build_prefix@
+ top_builddir = @top_builddir@
+ top_srcdir = @top_srcdir@
+ topdir = @topdir@
+-SUBDIRS = liblegacy .
++SUBDIRS = .
+ oprofiled_SOURCES = \
+ init.c \
+ oprofiled.c \
+@@ -331,7 +331,6 @@ AM_CPPFLAGS = \
+ # -fno-omit-frame-pointer needed for daemon build: see ChangeLog-2004 02-23
+ AM_CFLAGS = @OP_CFLAGS@ -fno-omit-frame-pointer
+ oprofiled_LDADD = \
+- liblegacy/liblegacy.a \
+ ../libabi/libabi.a \
+ ../libdb/libodb.a \
+ ../libop/libop.a \
+--- a/daemon/oprofiled.c
++++ b/daemon/oprofiled.c
+@@ -77,7 +77,6 @@ static char * events;
+ static char * ext_feature;
+ static int showvers;
+ static struct oprofiled_ops * opd_ops;
+-extern struct oprofiled_ops opd_24_ops;
+ extern struct oprofiled_ops opd_26_ops;
+
+ #define OPD_IMAGE_FILTER_HASH_SIZE 32
+@@ -477,9 +476,6 @@ static void opd_options(int argc, char c
+ static struct oprofiled_ops * get_ops(void)
+ {
+ switch (op_get_interface()) {
+- case OP_INTERFACE_24:
+- printf("Using 2.4 OProfile kernel interface.\n");
+- return &opd_24_ops;
+ case OP_INTERFACE_26:
+ printf("Using 2.6+ OProfile kernel interface.\n");
+ return &opd_26_ops;
--- /dev/null
+#
+# Copyright (C) 2006-2012 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:=valgrind
+PKG_VERSION:=3.8.0
+PKG_RELEASE:=1
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
+PKG_SOURCE_URL:=http://valgrind.org/downloads/
+PKG_MD5SUM:=ec04dfd1256307432b2a7b520398c526
+
+PKG_MAINTAINER:=Felix Fietkau <nbd@openwrt.org>
+
+PKG_FIXUP = autoreconf
+PKG_INSTALL := 1
+
+include $(INCLUDE_DIR)/package.mk
+include $(INCLUDE_DIR)/kernel.mk
+
+define Package/valgrind
+ SECTION:=utils
+ CATEGORY:=Utilities
+ DEPENDS:=@mips||mipsel||i386||powerpc||TARGET_omap4 +libpthread +librt
+ TITLE:=debugging and profiling tools for Linux
+ URL:=http://www.valgrind.org
+endef
+
+define Package/valgrind/default
+ $(Package/valgrind)
+ DEPENDS := valgrind
+endef
+
+define Package/valgrind-cachegrind
+ $(Package/valgrind/default)
+ TITLE += (cache profiling)
+endef
+
+define Package/valgrind-callgrind
+ $(Package/valgrind/default)
+ TITLE += (callgraph profiling)
+endef
+
+define Package/valgrind-drd
+ $(Package/valgrind/default)
+ TITLE += (thread error detection)
+endef
+
+define Package/valgrind-massif
+ $(Package/valgrind/default)
+ TITLE += (heap profiling)
+endef
+
+define Package/valgrind-helgrind
+ $(Package/valgrind/default)
+ TITLE += (thread debugging)
+endef
+
+define Package/valgrind-vgdb
+ $(Package/valgrind/default)
+ TITLE += (GDB interface)
+endef
+
+define Package/valgrind/description
+ Valgrind is an award-winning suite of tools for debugging and
+ profiling Linux programs. With the tools that come with Valgrind,
+ you can automatically detect many memory management and threading
+ bugs, avoiding hours of frustrating bug-hunting, making your
+ programs more stable. You can also perform detailed profiling,
+ to speed up and reduce memory use of your programs.
+endef
+
+CPU := $(patsubst x86,i386,$(LINUX_KARCH))
+
+CONFIGURE_VARS += \
+ UNAME_R=$(LINUX_VERSION)
+
+CONFIGURE_ARGS += \
+ --enable-only32bit \
+ --enable-tls \
+ --without-x \
+ --without-uiout \
+ --disable-valgrindmi \
+ --disable-tui \
+ --disable-valgrindtk \
+ --without-included-gettext
+
+define Package/valgrind/install
+ $(INSTALL_DIR) $(1)/usr/bin
+ $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/valgrind* $(1)/usr/bin/
+ $(INSTALL_DIR) $(1)/usr/lib/valgrind
+ $(CP) \
+ ./files/default.supp \
+ $(PKG_INSTALL_DIR)/usr/lib/valgrind/none-* \
+ $(PKG_INSTALL_DIR)/usr/lib/valgrind/vgpreload_core*.so \
+ $(PKG_INSTALL_DIR)/usr/lib/valgrind/$(CPU)-*.xml \
+ $(PKG_INSTALL_DIR)/usr/lib/valgrind/32bit-core*.xml \
+ $(PKG_INSTALL_DIR)/usr/lib/valgrind/32bit-linux*.xml \
+ $(PKG_INSTALL_DIR)/usr/lib/valgrind/memcheck-* \
+ $(PKG_INSTALL_DIR)/usr/lib/valgrind/vgpreload_memcheck*.so \
+ $(1)/usr/lib/valgrind/
+endef
+
+define Package/valgrind-cachegrind/install
+ $(INSTALL_DIR) $(1)/usr/bin
+ $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/cg_* $(1)/usr/bin/
+ $(INSTALL_DIR) $(1)/usr/lib/valgrind
+ $(CP) \
+ $(PKG_INSTALL_DIR)/usr/lib/valgrind/cachegrind-* \
+ $(1)/usr/lib/valgrind/
+endef
+
+define Package/valgrind-callgrind/install
+ $(INSTALL_DIR) $(1)/usr/bin
+ $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/callgrind* $(1)/usr/bin/
+ $(INSTALL_DIR) $(1)/usr/lib/valgrind
+ $(CP) \
+ $(PKG_INSTALL_DIR)/usr/lib/valgrind/callgrind-* \
+ $(1)/usr/lib/valgrind/
+endef
+
+define Package/valgrind-drd/install
+ $(INSTALL_DIR) $(1)/usr/lib/valgrind
+ $(CP) \
+ $(PKG_INSTALL_DIR)/usr/lib/valgrind/drd-* \
+ $(PKG_INSTALL_DIR)/usr/lib/valgrind/vgpreload_drd*.so \
+ $(1)/usr/lib/valgrind/
+endef
+
+define Package/valgrind-massif/install
+ $(INSTALL_DIR) $(1)/usr/bin
+ $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/ms_print $(1)/usr/bin/
+ $(INSTALL_DIR) $(1)/usr/lib/valgrind
+ $(CP) \
+ $(PKG_INSTALL_DIR)/usr/lib/valgrind/massif-* \
+ $(PKG_INSTALL_DIR)/usr/lib/valgrind/vgpreload_massif*.so \
+ $(1)/usr/lib/valgrind/
+endef
+
+define Package/valgrind-helgrind/install
+ $(INSTALL_DIR) $(1)/usr/lib/valgrind
+ $(CP) \
+ $(PKG_INSTALL_DIR)/usr/lib/valgrind/helgrind-* \
+ $(PKG_INSTALL_DIR)/usr/lib/valgrind/vgpreload_helgrind*.so \
+ $(1)/usr/lib/valgrind/
+endef
+
+define Package/valgrind-vgdb/install
+ $(INSTALL_DIR) $(1)/usr/bin
+ $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/vgdb $(1)/usr/bin/
+endef
+
+$(eval $(call BuildPackage,valgrind))
+$(eval $(call BuildPackage,valgrind-cachegrind))
+$(eval $(call BuildPackage,valgrind-callgrind))
+$(eval $(call BuildPackage,valgrind-drd))
+$(eval $(call BuildPackage,valgrind-massif))
+$(eval $(call BuildPackage,valgrind-helgrind))
+$(eval $(call BuildPackage,valgrind-vgdb))
--- /dev/null
+{
+ ld(Addr1)
+ Memcheck:Addr1
+ fun:*
+ obj:/lib/ld-*
+}
+{
+ ld(Addr2)
+ Memcheck:Addr2
+ fun:*
+ obj:/lib/ld-*
+}
+{
+ ld(Addr4)
+ Memcheck:Addr4
+ fun:*
+ obj:/lib/ld-*
+}
+{
+ ld(Cond)
+ Memcheck:Cond
+ fun:*
+ obj:/lib/ld-*
+}
+{
+ strlen(Cond)
+ Memcheck:Cond
+ fun:strlen
+ fun:*
+}
+{
+ strnlen(Cond)
+ Memcheck:Cond
+ fun:strnlen
+ fun:*
+}
+{
+ index(Cond)
+ Memcheck:Cond
+ fun:index
+ fun:*
+}
--- /dev/null
+--- a/configure.in
++++ b/configure.in
+@@ -260,7 +260,7 @@ case "${host_os}" in
+ # Ok, this is linux. Check the kernel version
+ AC_MSG_CHECKING([for the kernel version])
+
+- kernel=`uname -r`
++ kernel=${UNAME_R:-`uname -r`}
+
+ case "${kernel}" in
+ 2.6.*|3.*)
--- /dev/null
+--- /dev/null
++++ b/include/a.out.h
+@@ -0,0 +1,138 @@
++#ifndef __A_OUT_GNU_H__
++#define __A_OUT_GNU_H__
++
++#include <bits/a.out.h>
++
++#define __GNU_EXEC_MACROS__
++
++struct exec
++{
++ unsigned long a_info; /* Use macros N_MAGIC, etc for access. */
++ unsigned int a_text; /* Length of text, in bytes. */
++ unsigned int a_data; /* Length of data, in bytes. */
++ unsigned int a_bss; /* Length of uninitialized data area for file, in bytes. */
++ unsigned int a_syms; /* Length of symbol table data in file, in bytes. */
++ unsigned int a_entry; /* Start address. */
++ unsigned int a_trsize;/* Length of relocation info for text, in bytes. */
++ unsigned int a_drsize;/* Length of relocation info for data, in bytes. */
++};
++
++enum machine_type
++{
++ M_OLDSUN2 = 0,
++ M_68010 = 1,
++ M_68020 = 2,
++ M_SPARC = 3,
++ M_386 = 100,
++ M_MIPS1 = 151,
++ M_MIPS2 = 152
++};
++
++#define N_MAGIC(exec) ((exec).a_info & 0xffff)
++#define N_MACHTYPE(exec) ((enum machine_type)(((exec).a_info >> 16) & 0xff))
++#define N_FLAGS(exec) (((exec).a_info >> 24) & 0xff)
++#define N_SET_INFO(exec, magic, type, flags) \
++ ((exec).a_info = ((magic) & 0xffff) \
++ | (((int)(type) & 0xff) << 16) \
++ | (((flags) & 0xff) << 24))
++#define N_SET_MAGIC(exec, magic) \
++ ((exec).a_info = ((exec).a_info & 0xffff0000) | ((magic) & 0xffff))
++#define N_SET_MACHTYPE(exec, machtype) \
++ ((exec).a_info = \
++ ((exec).a_info&0xff00ffff) | ((((int)(machtype))&0xff) << 16))
++#define N_SET_FLAGS(exec, flags) \
++ ((exec).a_info = \
++ ((exec).a_info&0x00ffffff) | (((flags) & 0xff) << 24))
++
++/* Code indicating object file or impure executable. */
++#define OMAGIC 0407
++/* Code indicating pure executable. */
++#define NMAGIC 0410
++/* Code indicating demand-paged executable. */
++#define ZMAGIC 0413
++/* This indicates a demand-paged executable with the header in the text.
++ The first page is unmapped to help trap NULL pointer references. */
++#define QMAGIC 0314
++/* Code indicating core file. */
++#define CMAGIC 0421
++
++#define N_TRSIZE(a) ((a).a_trsize)
++#define N_DRSIZE(a) ((a).a_drsize)
++#define N_SYMSIZE(a) ((a).a_syms)
++#define N_BADMAG(x) \
++ (N_MAGIC(x) != OMAGIC && N_MAGIC(x) != NMAGIC \
++ && N_MAGIC(x) != ZMAGIC && N_MAGIC(x) != QMAGIC)
++#define _N_HDROFF(x) (1024 - sizeof (struct exec))
++#define N_TXTOFF(x) \
++ (N_MAGIC(x) == ZMAGIC ? _N_HDROFF((x)) + sizeof (struct exec) : \
++ (N_MAGIC(x) == QMAGIC ? 0 : sizeof (struct exec)))
++#define N_DATOFF(x) (N_TXTOFF(x) + (x).a_text)
++#define N_TRELOFF(x) (N_DATOFF(x) + (x).a_data)
++#define N_DRELOFF(x) (N_TRELOFF(x) + N_TRSIZE(x))
++#define N_SYMOFF(x) (N_DRELOFF(x) + N_DRSIZE(x))
++#define N_STROFF(x) (N_SYMOFF(x) + N_SYMSIZE(x))
++
++/* Address of text segment in memory after it is loaded. */
++#define N_TXTADDR(x) (N_MAGIC(x) == QMAGIC ? 4096 : 0)
++
++/* Address of data segment in memory after it is loaded. */
++#define SEGMENT_SIZE 1024
++
++#define _N_SEGMENT_ROUND(x) (((x) + SEGMENT_SIZE - 1) & ~(SEGMENT_SIZE - 1))
++#define _N_TXTENDADDR(x) (N_TXTADDR(x)+(x).a_text)
++
++#define N_DATADDR(x) \
++ (N_MAGIC(x)==OMAGIC? (_N_TXTENDADDR(x)) \
++ : (_N_SEGMENT_ROUND (_N_TXTENDADDR(x))))
++#define N_BSSADDR(x) (N_DATADDR(x) + (x).a_data)
++
++#if !defined (N_NLIST_DECLARED)
++struct nlist
++{
++ union
++ {
++ char *n_name;
++ struct nlist *n_next;
++ long n_strx;
++ } n_un;
++ unsigned char n_type;
++ char n_other;
++ short n_desc;
++ unsigned long n_value;
++};
++#endif /* no N_NLIST_DECLARED. */
++
++#define N_UNDF 0
++#define N_ABS 2
++#define N_TEXT 4
++#define N_DATA 6
++#define N_BSS 8
++#define N_FN 15
++#define N_EXT 1
++#define N_TYPE 036
++#define N_STAB 0340
++#define N_INDR 0xa
++#define N_SETA 0x14 /* Absolute set element symbol. */
++#define N_SETT 0x16 /* Text set element symbol. */
++#define N_SETD 0x18 /* Data set element symbol. */
++#define N_SETB 0x1A /* Bss set element symbol. */
++#define N_SETV 0x1C /* Pointer to set vector in data area. */
++
++#if !defined (N_RELOCATION_INFO_DECLARED)
++/* This structure describes a single relocation to be performed.
++ The text-relocation section of the file is a vector of these structures,
++ all of which apply to the text section.
++ Likewise, the data-relocation section applies to the data section. */
++
++struct relocation_info
++{
++ int r_address;
++ unsigned int r_symbolnum:24;
++ unsigned int r_pcrel:1;
++ unsigned int r_length:2;
++ unsigned int r_extern:1;
++ unsigned int r_pad:4;
++};
++#endif /* no N_RELOCATION_INFO_DECLARED. */
++
++#endif /* __A_OUT_GNU_H__ */
+--- /dev/null
++++ b/include/bits/a.out.h
+@@ -0,0 +1,13 @@
++#ifndef __A_OUT_GNU_H__
++# error "Never use <bits/a.out.h> directly; include <a.out.h> instead."
++#endif
++
++#include <bits/wordsize.h>
++
++#if __WORDSIZE == 64
++
++/* Signal to users of this header that this architecture really doesn't
++ support a.out binary format. */
++#define __NO_A_OUT_SUPPORT 1
++
++#endif
--- /dev/null
+void abort(void)
+{
+}
--- /dev/null
+#
+# Copyright (C) 2006-2010 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:=popt
+PKG_VERSION:=1.7
+PKG_RELEASE:=5
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=http://downloads.openwrt.org/sources/
+PKG_MD5SUM:=5988e7aeb0ae4dac8d83561265984cc9
+
+PKG_FIXUP:=autoreconf
+PKG_REMOVE_FILES:=autogen.sh aclocal.m4
+
+PKG_INSTALL:=1
+PKG_BUILD_PARALLEL:=1
+
+include $(INCLUDE_DIR)/package.mk
+
+TARGET_CFLAGS += $(FPIC)
+
+define Package/libpopt
+ SECTION:=libs
+ CATEGORY:=Libraries
+ TITLE:=A command line option parsing library
+ URL:=http://rpm5.org/files/popt/
+endef
+
+define Build/Configure
+ $(call Build/Configure/Default, \
+ --enable-shared \
+ --enable-static \
+ )
+endef
+
+define Build/InstallDev
+ $(INSTALL_DIR) $(1)/usr/include
+ $(CP) $(PKG_INSTALL_DIR)/usr/include/popt.h $(1)/usr/include/
+ $(INSTALL_DIR) $(1)/usr/lib
+ $(CP) $(PKG_INSTALL_DIR)/usr/lib/libpopt.{a,so*} $(1)/usr/lib/
+endef
+
+define Package/libpopt/install
+ $(INSTALL_DIR) $(1)/usr/lib
+ $(CP) $(PKG_INSTALL_DIR)/usr/lib/libpopt.so.* $(1)/usr/lib/
+endef
+
+$(eval $(call RequireCommand,xgettext, \
+ $(PKG_NAME) requires the GNU gettext development package installed on the local system to build. \
+))
+
+$(eval $(call BuildPackage,libpopt))
+
--- /dev/null
+--- a/configure.in
++++ b/configure.in
+@@ -64,25 +64,14 @@ else
+ AC_MSG_RESULT(no)
+ fi
+
+-if test ! -f ../rpm.c
+-then
+- AC_MSG_CHECKING(for GNU xgettext)
+- xgettext --version 2>&1 | grep 'GNU gettext' >/dev/null 2>&1 || AC_MSG_ERROR([
+- *** GNU gettext is required. The latest version
+- *** is always available from ftp://ftp.gnu.org/gnu/gettext/.])
+- AC_MSG_RESULT(yes)
+-fi
+-
+ AC_CHECK_FUNCS(strerror mtrace getuid geteuid)
+ AC_CHECK_FUNC(setreuid, [], [
+ AC_CHECK_LIB(ucb, setreuid, [if echo $LIBS | grep -- -lucb >/dev/null ;then :; else LIBS="$LIBS -lc -lucb" USEUCB=y;fi])
+ ])
+
+-AM_GNU_GETTEXT
+-
+ POPT_SOURCE_PATH="`pwd`"
+ AC_DEFINE_UNQUOTED(POPT_SOURCE_PATH, "$POPT_SOURCE_PATH",
+ [Full path to popt top_sourcedir.])
+ AC_SUBST(POPT_SOURCE_PATH)
+
+-AC_OUTPUT([Doxyfile Makefile intl/Makefile po/Makefile.in])
++AC_OUTPUT([Doxyfile Makefile])
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -4,10 +4,9 @@ AUTOMAKE_OPTIONS = 1.4 foreign
+
+ EXTRA_DIST = autogen.sh CHANGES $(man_MANS) popt.spec \
+ testit.sh test-poptrc \
+- po/*.in po/*.po po/popt.pot \
+ popt.ps
+
+-SUBDIRS = intl po
++SUBDIRS =
+
+ INCLUDES = -I. -I$(top_srcdir)
+
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -124,7 +124,7 @@ EXTRA_DIST = autogen.sh CHANGES $(man_MA
+ popt.ps
+
+
+-SUBDIRS = intl po
++SUBDIRS =
+
+ INCLUDES = -I. -I$(top_srcdir)
+
+@@ -160,7 +160,7 @@ subdir = .
+ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+ mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+ CONFIG_HEADER = config.h
+-CONFIG_CLEAN_FILES = Doxyfile intl/Makefile
++CONFIG_CLEAN_FILES = Doxyfile
+ LTLIBRARIES = $(lib_LTLIBRARIES)
+
+ libpopt_la_LDFLAGS =
+@@ -261,8 +261,6 @@ distclean-hdr:
+ -rm -f config.h stamp-h1
+ Doxyfile: $(top_builddir)/config.status Doxyfile.in
+ cd $(top_builddir) && $(SHELL) ./config.status $@
+-intl/Makefile: $(top_builddir)/config.status $(top_srcdir)/intl/Makefile.in
+- cd $(top_builddir) && $(SHELL) ./config.status $@
+ libLTLIBRARIES_INSTALL = $(INSTALL)
+ install-libLTLIBRARIES: $(lib_LTLIBRARIES)
+ @$(NORMAL_INSTALL)
+@@ -584,7 +582,7 @@ distcleancheck_listfiles = find . -type
+ distdir: $(DISTFILES)
+ $(am__remove_distdir)
+ mkdir $(distdir)
+- $(mkinstalldirs) $(distdir)/. $(distdir)/intl $(distdir)/po
++ $(mkinstalldirs) $(distdir)/.
+ @list='$(DISTFILES)'; for file in $$list; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \