summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWaldemar Brodkorb <wbx@openadk.org>2014-03-24 10:14:06 +0100
committerWaldemar Brodkorb <wbx@openadk.org>2014-03-24 10:14:06 +0100
commited6090a791ac0bd072ad557510948e961235cb56 (patch)
tree696466d65e1e01b693e2726d336dccefcc135b99
parent1b2e03fec9d95801923f45c09d484ee599cad564 (diff)
parent9e2fdf23756dc13ce89f0ca185a6223c02d3f14a (diff)
Merge branch 'master' of git+ssh://openadk.org/git/openadk
-rw-r--r--BUGS2
-rw-r--r--TODO1
-rw-r--r--mk/build.mk5
-rw-r--r--mk/image.mk2
-rw-r--r--mk/rootfs.mk4
-rw-r--r--mk/vars.mk2
-rw-r--r--package/adk-test-tools/Makefile2
-rwxr-xr-xpackage/adk-test-tools/files/test.init4
-rw-r--r--package/asterisk/Makefile2
-rw-r--r--package/base-files/Makefile25
-rw-r--r--package/base-files/files/inittab.shell2
-rw-r--r--package/base-files/src/etc/ipkg.conf2
-rwxr-xr-xpackage/base-files/src/usr/share/udhcpc/default.script4
-rw-r--r--package/ebtables/Makefile2
-rw-r--r--package/ebtables/patches/patch-Makefile6
-rw-r--r--package/ebtables/patches/patch-extensions_ebt_among_c10
-rw-r--r--package/ebtables/patches/patch-extensions_ebt_arpreply_c10
-rw-r--r--package/ebtables/patches/patch-extensions_ebt_ip6_c10
-rw-r--r--package/ebtables/patches/patch-extensions_ebt_limit_c10
-rw-r--r--package/ebtables/patches/patch-extensions_ebt_nat_c10
-rw-r--r--package/ebtables/patches/patch-include_ethernetdb_h29
-rw-r--r--package/ebtables/patches/patch-useful_functions_c10
-rw-r--r--package/ethtool/Makefile12
-rw-r--r--package/ethtool/patches/patch-internal_h33
-rw-r--r--package/feh/Makefile4
-rw-r--r--package/findutils/Makefile25
-rw-r--r--package/findutils/patches/patch-configure_ac11
-rw-r--r--package/findutils/patches/patch-gnulib_lib_freadahead_c15
-rw-r--r--package/findutils/patches/patch-gnulib_lib_freadahead_h24
-rw-r--r--package/findutils/patches/patch-gnulib_lib_fseeko_c18
-rw-r--r--package/findutils/patches/patch-gnulib_m4_fflush_m425
-rw-r--r--package/gkrellm/Makefile6
-rw-r--r--package/gkrellm/patches/patch-server_Makefile30
-rw-r--r--package/gkrellm/patches/patch-server_main_c24
-rw-r--r--package/gkrellm/patches/patch-server_sysdeps-unix_c10
-rw-r--r--package/ipcad/Makefile2
-rw-r--r--package/ipcad/patches/patch-Makefile169
-rw-r--r--package/ipcad/patches/patch-Makefile_in11
-rw-r--r--package/ipcad/patches/patch-cfg_y60
-rw-r--r--package/iptables-snmp/Makefile2
-rw-r--r--package/libmodplug/Makefile8
-rw-r--r--package/libtirpc/Makefile4
-rw-r--r--package/libtirpc/patches/patch-src_auth_des_c18
-rw-r--r--package/libtirpc/patches/patch-src_auth_none_c10
-rw-r--r--package/libtirpc/patches/patch-src_auth_time_c18
-rw-r--r--package/libtirpc/patches/patch-src_auth_unix_c10
-rw-r--r--package/libtirpc/patches/patch-src_authdes_prot_c7
-rw-r--r--package/libtirpc/patches/patch-src_authunix_prot_c10
-rw-r--r--package/libtirpc/patches/patch-src_bindresvport_c18
-rw-r--r--package/libtirpc/patches/patch-src_clnt_bcast_c22
-rw-r--r--package/libtirpc/patches/patch-src_clnt_perror_c10
-rw-r--r--package/libtirpc/patches/patch-src_clnt_simple_c10
-rw-r--r--package/libtirpc/patches/patch-src_crypt_client_c10
-rw-r--r--package/libtirpc/patches/patch-src_des_crypt_c10
-rw-r--r--package/libtirpc/patches/patch-src_des_soft_c9
-rw-r--r--package/libtirpc/patches/patch-src_getnetconfig_c10
-rw-r--r--package/libtirpc/patches/patch-src_getnetpath_c16
-rw-r--r--package/libtirpc/patches/patch-src_getpeereid_c10
-rw-r--r--package/libtirpc/patches/patch-src_getpublickey_c10
-rw-r--r--package/libtirpc/patches/patch-src_key_call_c10
-rw-r--r--package/libtirpc/patches/patch-src_key_prot_xdr_c10
-rw-r--r--package/libtirpc/patches/patch-src_mt_misc_c8
-rw-r--r--package/libtirpc/patches/patch-src_pmap_clnt_c10
-rw-r--r--package/libtirpc/patches/patch-src_pmap_getmaps_c10
-rw-r--r--package/libtirpc/patches/patch-src_rpc_com_h31
-rw-r--r--package/libtirpc/patches/patch-src_rpc_generic_c10
-rw-r--r--package/libtirpc/patches/patch-src_rpcb_st_xdr_c10
-rw-r--r--package/libtirpc/patches/patch-src_rpcdname_c10
-rw-r--r--package/libtirpc/patches/patch-src_svc_dg_c10
-rw-r--r--package/libtirpc/patches/patch-src_svc_simple_c10
-rw-r--r--package/libtirpc/patches/patch-src_svc_vc_c10
-rw-r--r--package/libtirpc/patches/patch-src_xdr_array_c10
-rw-r--r--package/libtirpc/patches/patch-src_xdr_c10
-rw-r--r--package/libtirpc/patches/patch-src_xdr_float_c10
-rw-r--r--package/libtirpc/patches/patch-src_xdr_mem_c10
-rw-r--r--package/libtirpc/patches/patch-src_xdr_rec_c11
-rw-r--r--package/libtirpc/patches/patch-src_xdr_reference_c11
-rw-r--r--package/libtirpc/patches/patch-src_xdr_sizeof_c10
-rw-r--r--package/libtirpc/patches/patch-src_xdr_stdio_c10
-rw-r--r--package/libtirpc/patches/patch-tirpc_misc_event_h24
-rw-r--r--package/libtirpc/patches/patch-tirpc_netconfig_h23
-rw-r--r--package/libtirpc/patches/patch-tirpc_rpc_auth_des_h32
-rw-r--r--package/libtirpc/patches/patch-tirpc_rpc_auth_gss_h53
-rw-r--r--package/libtirpc/patches/patch-tirpc_rpc_auth_h192
-rw-r--r--package/libtirpc/patches/patch-tirpc_rpc_auth_unix_h26
-rw-r--r--package/libtirpc/patches/patch-tirpc_rpc_clnt_h132
-rw-r--r--package/libtirpc/patches/patch-tirpc_rpc_clnt_soc_h78
-rw-r--r--package/libtirpc/patches/patch-tirpc_rpc_des_crypt_h52
-rw-r--r--package/libtirpc/patches/patch-tirpc_rpc_nettype_h20
-rw-r--r--package/libtirpc/patches/patch-tirpc_rpc_pmap_clnt_h25
-rw-r--r--package/libtirpc/patches/patch-tirpc_rpc_pmap_prot_h27
-rw-r--r--package/libtirpc/patches/patch-tirpc_rpc_pmap_rmt_h26
-rw-r--r--package/libtirpc/patches/patch-tirpc_rpc_rpc_com_h31
-rw-r--r--package/libtirpc/patches/patch-tirpc_rpc_rpc_h44
-rw-r--r--package/libtirpc/patches/patch-tirpc_rpc_rpc_msg_h23
-rw-r--r--package/libtirpc/patches/patch-tirpc_rpc_rpcb_clnt_h23
-rw-r--r--package/libtirpc/patches/patch-tirpc_rpc_rpcent_h31
-rw-r--r--package/libtirpc/patches/patch-tirpc_rpc_svc_auth_h20
-rw-r--r--package/libtirpc/patches/patch-tirpc_rpc_svc_h152
-rw-r--r--package/libtirpc/patches/patch-tirpc_rpc_svc_soc_h102
-rw-r--r--package/libtirpc/patches/patch-tirpc_rpc_xdr_h53
-rw-r--r--package/libtirpc/patches/patch-tirpc_rpcsvc_crypt_x12
-rw-r--r--package/libtirpc/src/src/queue.h574
-rw-r--r--package/logrotate/Makefile4
-rw-r--r--package/logrotate/patches/patch-Makefile57
-rw-r--r--package/logrotate/patches/patch-config_c8
-rw-r--r--package/logrotate/patches/patch-logrotate_c8
-rw-r--r--package/logrotate/patches/patch-logrotate_h11
-rw-r--r--package/logrotate/src/queue.h574
-rw-r--r--package/lynx/Makefile6
-rw-r--r--package/lynx/patches/patch-WWW_Library_Implementation_HTUtils_h14
-rw-r--r--package/lynx/patches/patch-makefile_in11
-rw-r--r--package/lynx/patches/patch-src_chrtrans_makeuctb_c19
-rw-r--r--package/moc/Makefile5
-rw-r--r--package/ntfs-3g/Makefile4
-rw-r--r--package/ntfs-3g/patches/patch-libfuse-lite_fusermount_c10
-rw-r--r--package/ntfs-3g/patches/patch-libfuse-lite_mount_util_c10
-rw-r--r--package/rrdcollect/Makefile10
-rw-r--r--package/socat/Makefile6
-rw-r--r--package/socat/patches/patch-Makefile_in (renamed from package/socat/patches/501-honor_ldflags.patch)5
-rw-r--r--package/socat/patches/patch-configure23
-rw-r--r--package/vlc/Makefile7
-rw-r--r--package/vlc/patches/patch-modules_text_renderer_freetype_c11
-rw-r--r--package/watchdog/Makefile7
-rw-r--r--package/watchdog/patches/patch-include_extern_h9
-rw-r--r--package/watchdog/patches/patch-src_memory_c11
-rw-r--r--package/watchdog/patches/patch-src_mntent_c11
-rw-r--r--package/watchdog/patches/patch-src_net_c10
-rw-r--r--package/watchdog/patches/patch-src_shutdown_c18
-rw-r--r--package/watchdog/patches/patch-src_umount_c11
-rw-r--r--package/xf86-video-fbdev/Makefile4
-rw-r--r--rules.mk1
-rw-r--r--scripts/gcc-bisect.sh206
-rw-r--r--target/arm/sys-available/cubox-i1
-rw-r--r--target/arm/sys-available/raspberry-pi1
-rw-r--r--target/arm/target.mk1
-rw-r--r--target/config/Config.in17
-rw-r--r--target/config/Config.in.adk7
-rw-r--r--target/config/Config.in.runtime1
-rw-r--r--target/config/Config.in.tools4
-rw-r--r--target/linux/config/Config.in.debug2
-rw-r--r--target/linux/config/Config.in.flash6
-rw-r--r--target/linux/config/Config.in.fs20
-rw-r--r--target/linux/config/Config.in.spi6
-rw-r--r--target/m68k/target.mk1
-rw-r--r--target/microblaze/Makefile14
-rw-r--r--target/microblaze/kernel/qemu-microblaze-ml6051
-rw-r--r--target/microblaze/kernel/qemu-microblaze-s3adsp18001
-rw-r--r--target/microblaze/s3adsp1800.dtbbin0 -> 8369 bytes
-rw-r--r--target/microblaze/s3adsp1800.dts287
-rw-r--r--target/microblaze/sys-available/qemu-microblaze2
-rw-r--r--target/microblaze/sys-available/qemu-microblazeel4
-rw-r--r--target/microblaze/target.mk1
-rw-r--r--target/mips/sys-available/lemote-yeelong1
-rw-r--r--target/mips/target.mk1
-rw-r--r--target/ppc/target.mk1
-rw-r--r--target/ppc64/sys-available/qemu-ppc641
-rw-r--r--target/ppc64/sys-available/toolchain-ppc641
-rw-r--r--target/ppc64/target.mk1
-rw-r--r--target/sh/target.mk1
-rw-r--r--target/sparc/target.mk1
-rw-r--r--target/sparc64/sys-available/qemu-sparc641
-rw-r--r--target/sparc64/sys-available/toolchain-sparc641
-rw-r--r--target/sparc64/target.mk1
-rw-r--r--target/x86/sys-available/ibm-x401
-rw-r--r--target/x86/target.mk1
-rw-r--r--target/x86_64/target.mk1
-rw-r--r--toolchain/gcc/Makefile2
-rw-r--r--toolchain/musl/Makefile15
-rw-r--r--toolchain/uClibc/Makefile3
-rw-r--r--tools/mtd-utils/patches/darwin.patch261
-rw-r--r--tools/squashfs/Makefile2
-rw-r--r--tools/squashfs/patches/darwin.patch88
173 files changed, 4441 insertions, 263 deletions
diff --git a/BUGS b/BUGS
index 70759ad05..38c61307f 100644
--- a/BUGS
+++ b/BUGS
@@ -2,4 +2,4 @@
- qemu-sh4: usb keyboard is broken
- qemu-arm: thumb mode with glibc does not boot
- qemu-sparc64: ide driver not working, only virtio (but unstable)
-- qemu-microblaze: network card emulation fails, little endian works
+- qemu-microblaze: ml605 early printk and network card emulation fails, little endian works
diff --git a/TODO b/TODO
index 0b1d51075..a4299ff80 100644
--- a/TODO
+++ b/TODO
@@ -1,4 +1,5 @@
- hash-style=gnu for non-mips and non-musl
+- fix libiberty.a mess
- check gold for mozilla compile
- check for gcc and SSP again
- add daemon() function to functions.sh
diff --git a/mk/build.mk b/mk/build.mk
index ec30a8ef2..d2c7ee42e 100644
--- a/mk/build.mk
+++ b/mk/build.mk
@@ -79,6 +79,7 @@ DEFCONFIG= ADK_DEBUG=n \
BUSYBOX_FEATURE_VI_REGEX_SEARCH=n \
ADK_KERNEL_RT2X00_DEBUG=n \
ADK_KERNEL_ATH5K_DEBUG=n \
+ ADK_KERNEL_BUG=n \
ADK_KERNEL_DEBUG_WITH_KGDB=n
noconfig_targets:= menuconfig \
@@ -98,7 +99,7 @@ POSTCONFIG= -@\
touch .rebuild.busybox;\
rebuild=1;\
fi; \
- for i in ADK_RUNTIME_PASSWORD ADK_RUNTIME_TMPFS_SIZE ADK_RUNTIME_HOSTNAME ADK_TARGET_ROOTFS ADK_RUNTIME_GETTY ADK_RUNTIME_SHELL;do \
+ for i in ADK_RUNTIME_PASSWORD ADK_RUNTIME_TMPFS_SIZE ADK_RUNTIME_HOSTNAME ADK_TARGET_ROOTFS ADK_RUNTIME_CONSOLE ADK_RUNTIME_GETTY ADK_RUNTIME_SHELL;do \
if [ "$$(grep ^$$i .config|md5sum)" != "$$(grep ^$$i .config.old|md5sum)" ];then \
touch .rebuild.base-files;\
rebuild=1;\
@@ -169,7 +170,7 @@ endif
${STAGING_TARGET_DIR} ${STAGING_TARGET_DIR}/etc ${STAGING_HOST_DIR}:
mkdir -p ${STAGING_TARGET_DIR}/{bin,etc,lib,usr/bin,usr/include,usr/lib/pkgconfig} \
- ${STAGING_HOST_DIR}/{bin,lib,usr/bin,usr/lib,usr/include}
+ ${STAGING_HOST_DIR}/{usr/bin,usr/lib,usr/include}
for i in lib64 lib32 libx32;do \
cd ${STAGING_TARGET_DIR}/; ln -sf lib $$i; \
cd ${STAGING_TARGET_DIR}/usr; ln -sf lib $$i; \
diff --git a/mk/image.mk b/mk/image.mk
index ff95c5cb0..1e7a802a5 100644
--- a/mk/image.mk
+++ b/mk/image.mk
@@ -157,7 +157,7 @@ ${BUILD_DIR}/root.squashfs: ${TARGET_DIR}
-nopad -noappend -root-owned $(MAKE_TRACE)
${FW_DIR}/${ROOTFSJFFS2}: ${TARGET_DIR}
- ${STAGING_HOST_DIR}/usr/bin/mkfs.jffs2 $(ADK_JFFS2_OPTS) -q -r ${TARGET_DIR} \
+ ${STAGING_HOST_DIR}/usr/bin/mkfs.jffs2 $(ADK_JFFS2_OPTS) -q -X zlib -r ${TARGET_DIR} \
--pad=$(ADK_TARGET_MTD_SIZE) -o ${FW_DIR}/${ROOTFSJFFS2} $(MAKE_TRACE)
createinitramfs: ${STAGING_TARGET_DIR}/${INITRAMFS}_list
diff --git a/mk/rootfs.mk b/mk/rootfs.mk
index 43cfaa821..3956306e9 100644
--- a/mk/rootfs.mk
+++ b/mk/rootfs.mk
@@ -50,10 +50,10 @@ $(eval $(call rootfs_template,archive,ARCHIVE,$(ROOTFS)))
$(eval $(call rootfs_template,initramfsarchive,INITRAMFSARCHIVE))
$(eval $(call rootfs_template,initramfs,INITRAMFS))
$(eval $(call rootfs_template,initramfs-piggyback,INITRAMFS_PIGGYBACK))
-$(eval $(call rootfs_template,squashfs,SQUASHFS,$(ROOTFS)))
+$(eval $(call rootfs_template,squashfs,SQUASHFS,$(MTDDEV) rootfstype=squashfs))
$(eval $(call rootfs_template,yaffs,YAFFS,$(MTDDEV) panic=3))
$(eval $(call rootfs_template,jffs2,JFFS2,$(MTDDEV) rootfstype=jffs2))
-$(eval $(call rootfs_template,nfsroot,NFSROOT,root=/dev/nfs ip=dhcp init=/init))
+$(eval $(call rootfs_template,nfsroot,NFSROOT,root=/dev/nfs ip=dhcp))
$(eval $(call rootfs_template,encrypted,ENCRYPTED))
$(eval $(call rootfs_template,iso,ISO))
diff --git a/mk/vars.mk b/mk/vars.mk
index f22717c2e..4bdd4ae9f 100644
--- a/mk/vars.mk
+++ b/mk/vars.mk
@@ -127,7 +127,7 @@ ifneq ($(ADK_DEBUG),)
TARGET_CFLAGS+= -g3 -fno-omit-frame-pointer
else
TARGET_CPPFLAGS+= -DNDEBUG
-TARGET_CFLAGS+= -fomit-frame-pointer $(TARGET_OPTIMIZATION)
+TARGET_CFLAGS+= -fomit-frame-pointer $(ADK_TARGET_CFLAGS_OPT)
# stop generating eh_frame stuff
TARGET_CFLAGS+= -fno-unwind-tables -fno-asynchronous-unwind-tables
# always add debug information
diff --git a/package/adk-test-tools/Makefile b/package/adk-test-tools/Makefile
index 0a60c5056..72327170a 100644
--- a/package/adk-test-tools/Makefile
+++ b/package/adk-test-tools/Makefile
@@ -5,7 +5,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:= adk-test-tools
PKG_VERSION:= 0.1
-PKG_RELEASE:= 3
+PKG_RELEASE:= 5
PKG_DESCR:= helper tools and scripts for adk-test-framework
PKG_SECTION:= misc
PKG_URL:= http://openadk.org/
diff --git a/package/adk-test-tools/files/test.init b/package/adk-test-tools/files/test.init
index bb8fca527..e33bece47 100755
--- a/package/adk-test-tools/files/test.init
+++ b/package/adk-test-tools/files/test.init
@@ -3,6 +3,10 @@
#INIT 90
[[ $1 = autostart ]] || exit 0
echo "Starting test script ..."
+grep shell /proc/cmdline > /dev/null 2&>1
+if [ $? -eq 0 ];then
+ exit 0
+fi
if [ -x /run.sh ];then
/run.sh
quit
diff --git a/package/asterisk/Makefile b/package/asterisk/Makefile
index 051ad3ea3..e43b4d275 100644
--- a/package/asterisk/Makefile
+++ b/package/asterisk/Makefile
@@ -105,7 +105,7 @@ TARGET_LDFLAGS+= -lm -ltinfo -ldl -lpthread
MAKE_ENV= ASTCFLAGS="${TARGET_CPPFLAGS} -DHAVE_STRTOQ" \
ASTLDFLAGS="${TARGET_LDFLAGS}"
MAKE_FLAGS+= DESTDIR="$(WRKINST)" \
- OPTIMIZE="${TARGET_OPTIMIZATION}" \
+ OPTIMIZE="${TARGET_CFLAGS}" \
NOISY_BUILD=1
ALL_TARGET:= all install samples
diff --git a/package/base-files/Makefile b/package/base-files/Makefile
index 417c3d09f..0db6ad87f 100644
--- a/package/base-files/Makefile
+++ b/package/base-files/Makefile
@@ -6,7 +6,7 @@ include $(TOPDIR)/mk/rootfs.mk
PKG_NAME:= base-files
PKG_VERSION:= 1.0
-PKG_RELEASE:= 76
+PKG_RELEASE:= 78
PKG_SECTION:= base
PKG_DESCR:= basic files and scripts
PKG_BUILDDEP:= pkgconf-host file-host
@@ -30,6 +30,11 @@ endif
$(SED) 's,@ARCH@,$(ADK_TARGET_CPU_ARCH),g' $(IDIR_BASE_FILES)/etc/ipkg.conf
$(SED) 's,@SYSTEM@,$(ADK_TARGET_SYSTEM),g' $(IDIR_BASE_FILES)/etc/ipkg.conf
$(SED) 's,@LIBC@,$(ADK_TARGET_LIBC),g' $(IDIR_BASE_FILES)/etc/ipkg.conf
+ifneq ($(ADK_TARGET_ABI),)
+ $(SED) 's,@ABI@,_$(ADK_TARGET_ABI),g' $(IDIR_BASE_FILES)/etc/ipkg.conf
+else
+ $(SED) 's,@ABI@,,g' $(IDIR_BASE_FILES)/etc/ipkg.conf
+endif
$(SED) 's,@HOST@,$(ADK_HOST),g' $(IDIR_BASE_FILES)/etc/ipkg.conf
$(SED) 's,@VENDOR@,$(ADK_VENDOR),g' $(IDIR_BASE_FILES)/etc/ipkg.conf
echo /bin/sh >${IDIR_BASE_FILES}/etc/shells
@@ -51,6 +56,7 @@ endif
chmod 755 $(IDIR_BASE_FILES)/lib/mdev/init
chmod 600 $(IDIR_BASE_FILES)/etc/shadow
chmod 600 $(IDIR_BASE_FILES)/etc/network/interfaces
+ (cd $(IDIR_BASE_FILES)/etc; ln -sf ../tmp/resolv.conf .)
chmod 1777 ${IDIR_BASE_FILES}/tmp
ln -sf ../proc/mounts $(IDIR_BASE_FILES)/etc/mtab
rm -rf $(IDIR_BASE_FILES)/var
@@ -80,23 +86,20 @@ ifneq (${ADK_PACKAGE_CONFIG_IN_ETC},)
gzip -9c ${TOPDIR}/.config >$(IDIR_BASE_FILES)/etc/adkconfig.gz
chmod 600 $(IDIR_BASE_FILES)/etc/adkconfig.gz
endif
-ifeq ($(ADK_TARGET_SYSTEM_RASPBERRY_PI),y)
- echo 'export LD_LIBRARY_PATH=/opt/vc/lib' >> $(IDIR_BASE_FILES)/etc/profile
-ifneq ($(ADK_TARGET_SYSTEM_RASPBERRY_PI)$(ADK_TARGET_SYSTEM_IBM_X40)$(ADK_TARGET_SYSTEM_LEMOTE_YEELONG),)
+ifeq ($(ADK_TARGET_WITH_ROOT_RW),y)
echo 'export IPKGTMPDIR=/root/.ipkg' >> $(IDIR_BASE_FILES)/etc/profile
else
- echo 'export IPKGTMPDIR=/tmp >> $(IDIR_BASE_FILES)/etc/profile
+ echo 'export IPKGTMPDIR=/tmp' >> $(IDIR_BASE_FILES)/etc/profile
endif
-
+ifeq ($(ADK_TARGET_SYSTEM_RASPBERRY_PI),y)
+ echo 'export LD_LIBRARY_PATH=/opt/vc/lib' >> $(IDIR_BASE_FILES)/etc/profile
endif
# simple network configuration
ifneq (${ADK_SIMPLE_NETWORK_CONFIG},)
${INSTALL_DIR} ${IDIR_BASE_FILES}/etc/network
-
# network config local
echo -e "auto lo\niface lo inet loopback" > ${IDIR_BASE_FILES}/etc/network/interfaces
-
# network config eth0
# configure nic with dhcp
ifeq (${SIMPLE_NETWORK_CONFIG_ETH0_TYPE_NIC},y)
@@ -123,12 +126,10 @@ ifeq (${SIMPLE_NETWORK_CONFIG_ETH0_TYPE_BRIDGE_IP},y)
echo -e " broadcast ${SIMPLE_NETWORK_CONFIG_ETH0_BC}" >> ${IDIR_BASE_FILES}/etc/network/interfaces
echo -e " bridge-ports ${SIMPLE_NETWORK_CONFIG_ETH0_BRIDGE}" >> ${IDIR_BASE_FILES}/etc/network/interfaces
endif
-
# network config wlan0
ifeq (${SIMPLE_NETWORK_CONFIG_WLAN0_TYPE_NIC},y)
echo -e "\nauto wlan0\niface wlan0 inet dhcp" >> ${IDIR_BASE_FILES}/etc/network/interfaces
endif
-
# network config eth1
# configure nic with dhcp
ifeq (${SIMPLE_NETWORK_CONFIG_ETH1_TYPE_NIC},y)
@@ -155,13 +156,11 @@ ifeq (${SIMPLE_NETWORK_CONFIG_ETH1_TYPE_BRIDGE_IP},y)
echo -e " broadcast ${SIMPLE_NETWORK_CONFIG_ETH1_BC}" >> ${IDIR_BASE_FILES}/etc/network/interfaces
echo -e " bridge-ports ${SIMPLE_NETWORK_CONFIG_ETH1_BRIDGE}" >> ${IDIR_BASE_FILES}/etc/network/interfaces
endif
-
# newline at the end of interfaces file
echo -en "\n" >> ${IDIR_BASE_FILES}/etc/network/interfaces
-
# resolver config
+ rm ${IDIR_BASE_FILES}/etc/resolv.conf
echo -e "nameserver ${SIMPLE_NETWORK_CONFIG_RESOLV}" > ${IDIR_BASE_FILES}/etc/resolv.conf
endif
-
include ${TOPDIR}/mk/pkg-bottom.mk
diff --git a/package/base-files/files/inittab.shell b/package/base-files/files/inittab.shell
index 55e5e429f..d12593ca1 100644
--- a/package/base-files/files/inittab.shell
+++ b/package/base-files/files/inittab.shell
@@ -1 +1 @@
-::askfirst:/bin/sh
+::askfirst:-/bin/sh
diff --git a/package/base-files/src/etc/ipkg.conf b/package/base-files/src/etc/ipkg.conf
index cef6d2845..9c5ae17d3 100644
--- a/package/base-files/src/etc/ipkg.conf
+++ b/package/base-files/src/etc/ipkg.conf
@@ -1,3 +1,3 @@
-src @VENDOR@ http://@HOST@/@SYSTEM@_@ARCH@_@LIBC@/packages
+src @VENDOR@ http://@HOST@/pkg/@SYSTEM@_@ARCH@_@LIBC@@ABI@/packages
dest root /
dest ram /tmp
diff --git a/package/base-files/src/usr/share/udhcpc/default.script b/package/base-files/src/usr/share/udhcpc/default.script
index 3744dfb09..55a6655ab 100755
--- a/package/base-files/src/usr/share/udhcpc/default.script
+++ b/package/base-files/src/usr/share/udhcpc/default.script
@@ -23,16 +23,12 @@ case $1 in
ip route add to default via $i
done
fi
-
- touch /tmp/resolv.conf
- ln -sf /tmp/resolv.conf $RESOLV_CONF
echo -n >$RESOLV_CONF
${domain:+echo search $domain} >>$RESOLV_CONF
for i in $dns; do
echo "adding dns $i"
echo "nameserver $i" >>$RESOLV_CONF
done
-
# user rules
[ -f /etc/udhcpc.user ] && . /etc/udhcpc.user
;;
diff --git a/package/ebtables/Makefile b/package/ebtables/Makefile
index 59f2ea6ba..e39f58070 100644
--- a/package/ebtables/Makefile
+++ b/package/ebtables/Makefile
@@ -21,7 +21,7 @@ $(eval $(call PKG_template,EBTABLES,ebtables,${PKG_VERSION}-${PKG_RELEASE},${PKG
CONFIG_STYLE:= manual
-post-install:
+ebtables-install:
${INSTALL_DIR} ${IDIR_EBTABLES}/etc
${INSTALL_DIR} ${IDIR_EBTABLES}/usr/sbin ${IDIR_EBTABLES}/usr/lib
${INSTALL_DATA} ${WRKINST}/etc/ethertypes ${IDIR_EBTABLES}/etc
diff --git a/package/ebtables/patches/patch-Makefile b/package/ebtables/patches/patch-Makefile
index ff5934a70..f4e293eaf 100644
--- a/package/ebtables/patches/patch-Makefile
+++ b/package/ebtables/patches/patch-Makefile
@@ -1,6 +1,6 @@
---- ebtables-v2.0.10-3.orig/Makefile 2011-12-04 10:46:26.000000000 +0100
-+++ ebtables-v2.0.10-3/Makefile 2011-12-11 16:35:34.619464748 +0100
-@@ -10,16 +10,16 @@ LOCKDIR:=$(shell echo $(LOCKFILE) | sed
+--- ebtables-v2.0.10-4.orig/Makefile 2011-12-15 21:02:47.000000000 +0100
++++ ebtables-v2.0.10-4/Makefile 2014-03-23 15:46:20.000000000 +0100
+@@ -10,16 +10,16 @@ LOCKDIR:=$(shell echo $(LOCKFILE) | sed
# default paths
LIBDIR:=/usr/lib
diff --git a/package/ebtables/patches/patch-extensions_ebt_among_c b/package/ebtables/patches/patch-extensions_ebt_among_c
new file mode 100644
index 000000000..08f3fb7f1
--- /dev/null
+++ b/package/ebtables/patches/patch-extensions_ebt_among_c
@@ -0,0 +1,10 @@
+--- ebtables-v2.0.10-4.orig/extensions/ebt_among.c 2011-12-15 21:02:47.000000000 +0100
++++ ebtables-v2.0.10-4/extensions/ebt_among.c 2014-03-23 15:51:29.000000000 +0100
+@@ -13,7 +13,6 @@
+ #include <ctype.h>
+ #include <unistd.h>
+ #include "../include/ebtables_u.h"
+-#include <netinet/ether.h>
+ #include "../include/ethernetdb.h"
+ #include <linux/if_ether.h>
+ #include <linux/netfilter_bridge/ebt_among.h>
diff --git a/package/ebtables/patches/patch-extensions_ebt_arpreply_c b/package/ebtables/patches/patch-extensions_ebt_arpreply_c
new file mode 100644
index 000000000..32432efb4
--- /dev/null
+++ b/package/ebtables/patches/patch-extensions_ebt_arpreply_c
@@ -0,0 +1,10 @@
+--- ebtables-v2.0.10-4.orig/extensions/ebt_arpreply.c 2011-12-15 21:02:47.000000000 +0100
++++ ebtables-v2.0.10-4/extensions/ebt_arpreply.c 2014-03-23 15:50:38.000000000 +0100
+@@ -12,7 +12,6 @@
+ #include <string.h>
+ #include <getopt.h>
+ #include "../include/ebtables_u.h"
+-#include <netinet/ether.h>
+ #include <linux/netfilter_bridge/ebt_arpreply.h>
+
+ static int mac_supplied;
diff --git a/package/ebtables/patches/patch-extensions_ebt_ip6_c b/package/ebtables/patches/patch-extensions_ebt_ip6_c
new file mode 100644
index 000000000..e57677d44
--- /dev/null
+++ b/package/ebtables/patches/patch-extensions_ebt_ip6_c
@@ -0,0 +1,10 @@
+--- ebtables-v2.0.10-4.orig/extensions/ebt_ip6.c 2011-12-15 21:02:47.000000000 +0100
++++ ebtables-v2.0.10-4/extensions/ebt_ip6.c 2014-03-23 15:51:09.000000000 +0100
+@@ -11,6 +11,7 @@
+ *
+ */
+
++#include <sys/types.h>
+ #include <errno.h>
+ #include <inttypes.h>
+ #include <limits.h>
diff --git a/package/ebtables/patches/patch-extensions_ebt_limit_c b/package/ebtables/patches/patch-extensions_ebt_limit_c
new file mode 100644
index 000000000..5464611c1
--- /dev/null
+++ b/package/ebtables/patches/patch-extensions_ebt_limit_c
@@ -0,0 +1,10 @@
+--- ebtables-v2.0.10-4.orig/extensions/ebt_limit.c 2011-12-15 21:02:47.000000000 +0100
++++ ebtables-v2.0.10-4/extensions/ebt_limit.c 2014-03-23 15:52:04.000000000 +0100
+@@ -8,6 +8,7 @@
+ * September, 2003
+ */
+
++#include <sys/types.h>
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <string.h>
diff --git a/package/ebtables/patches/patch-extensions_ebt_nat_c b/package/ebtables/patches/patch-extensions_ebt_nat_c
new file mode 100644
index 000000000..1a215e9e7
--- /dev/null
+++ b/package/ebtables/patches/patch-extensions_ebt_nat_c
@@ -0,0 +1,10 @@
+--- ebtables-v2.0.10-4.orig/extensions/ebt_nat.c 2011-12-15 21:02:47.000000000 +0100
++++ ebtables-v2.0.10-4/extensions/ebt_nat.c 2014-03-23 15:50:13.000000000 +0100
+@@ -11,7 +11,6 @@
+ #include <string.h>
+ #include <getopt.h>
+ #include "../include/ebtables_u.h"
+-#include <netinet/ether.h>
+ #include <linux/netfilter_bridge/ebt_nat.h>
+
+ static int to_source_supplied, to_dest_supplied;
diff --git a/package/ebtables/patches/patch-include_ethernetdb_h b/package/ebtables/patches/patch-include_ethernetdb_h
new file mode 100644
index 000000000..1bc877d57
--- /dev/null
+++ b/package/ebtables/patches/patch-include_ethernetdb_h
@@ -0,0 +1,29 @@
+--- ebtables-v2.0.10-4.orig/include/ethernetdb.h 2011-12-15 21:02:47.000000000 +0100
++++ ebtables-v2.0.10-4/include/ethernetdb.h 2014-03-23 15:47:35.000000000 +0100
+@@ -38,21 +38,20 @@ struct ethertypeent {
+
+ /* Open ethertype data base files and mark them as staying open even
+ after a later search if STAY_OPEN is non-zero. */
+-extern void setethertypeent(int __stay_open) __THROW;
++extern void setethertypeent(int __stay_open);
+
+ /* Close ethertype data base files and clear `stay open' flag. */
+-extern void endethertypeent(void) __THROW;
++extern void endethertypeent(void);
+
+ /* Get next entry from ethertype data base file. Open data base if
+ necessary. */
+-extern struct ethertypeent *getethertypeent(void) __THROW;
++extern struct ethertypeent *getethertypeent(void);
+
+ /* Return entry from ethertype data base for network with NAME. */
+-extern struct ethertypeent *getethertypebyname(__const char *__name)
+- __THROW;
++extern struct ethertypeent *getethertypebyname(__const char *__name);
+
+ /* Return entry from ethertype data base which number is PROTO. */
+-extern struct ethertypeent *getethertypebynumber(int __ethertype) __THROW;
++extern struct ethertypeent *getethertypebynumber(int __ethertype);
+
+
+ #endif /* ethernetdb.h */
diff --git a/package/ebtables/patches/patch-useful_functions_c b/package/ebtables/patches/patch-useful_functions_c
new file mode 100644
index 000000000..6e851ecd2
--- /dev/null
+++ b/package/ebtables/patches/patch-useful_functions_c
@@ -0,0 +1,10 @@
+--- ebtables-v2.0.10-4.orig/useful_functions.c 2011-12-15 21:02:47.000000000 +0100
++++ ebtables-v2.0.10-4/useful_functions.c 2014-03-23 15:49:15.000000000 +0100
+@@ -25,7 +25,6 @@
+ #include "include/ebtables_u.h"
+ #include "include/ethernetdb.h"
+ #include <stdio.h>
+-#include <netinet/ether.h>
+ #include <string.h>
+ #include <stdlib.h>
+ #include <getopt.h>
diff --git a/package/ethtool/Makefile b/package/ethtool/Makefile
index f6be14fb9..7834dcfdb 100644
--- a/package/ethtool/Makefile
+++ b/package/ethtool/Makefile
@@ -4,12 +4,14 @@
include ${TOPDIR}/rules.mk
PKG_NAME:= ethtool
-PKG_VERSION:= 2.6.36
-PKG_RELEASE:= 1
-PKG_MD5SUM:= 3b2322695e9ee7bf447ebcdb85f93e83
-PKG_DESCR:= Display or change ethernet card settings
+PKG_VERSION:= 3.13
+PKG_RELEASE:= 2
+PKG_MD5SUM:= dcb8f345d44ee79108282e7d0bdf5013
+PKG_DESCR:= display or change ethernet card settings
PKG_SECTION:= net
-PKG_SITES:= ${MASTER_SITE_SOURCEFORGE:=gkernel/}
+PKG_SITES:= https://www.kernel.org/pub/software/network/ethtool/
+
+DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.xz
include ${TOPDIR}/mk/package.mk
diff --git a/package/ethtool/patches/patch-internal_h b/package/ethtool/patches/patch-internal_h
new file mode 100644
index 000000000..280f92ce7
--- /dev/null
+++ b/package/ethtool/patches/patch-internal_h
@@ -0,0 +1,33 @@
+--- ethtool-3.13.orig/internal.h 2014-01-27 02:27:14.000000000 +0100
++++ ethtool-3.13/internal.h 2014-03-23 13:47:54.000000000 +0100
+@@ -7,6 +7,7 @@
+ #include "ethtool-config.h"
+ #endif
+ #include <stdio.h>
++#include <stdint.h>
+ #include <stdlib.h>
+ #include <string.h>
+ #include <sys/types.h>
+@@ -17,16 +18,16 @@
+
+ /* ethtool.h expects these to be defined by <linux/types.h> */
+ #ifndef HAVE_BE_TYPES
+-typedef __uint16_t __be16;
+-typedef __uint32_t __be32;
++typedef uint16_t __be16;
++typedef uint32_t __be32;
+ typedef unsigned long long __be64;
+ #endif
+
+ typedef unsigned long long u64;
+-typedef __uint32_t u32;
+-typedef __uint16_t u16;
+-typedef __uint8_t u8;
+-typedef __int32_t s32;
++typedef uint32_t u32;
++typedef uint16_t u16;
++typedef uint8_t u8;
++typedef int32_t s32;
+
+ #include "ethtool-copy.h"
+ #include "net_tstamp-copy.h"
diff --git a/package/feh/Makefile b/package/feh/Makefile
index 43a90b8b7..4f9f56476 100644
--- a/package/feh/Makefile
+++ b/package/feh/Makefile
@@ -4,9 +4,9 @@
include $(TOPDIR)/rules.mk
PKG_NAME:= feh
-PKG_VERSION:= 1.16.1
+PKG_VERSION:= 2.10
PKG_RELEASE:= 1
-PKG_MD5SUM:= 1bb080c7b0021db50884a52161251990
+PKG_MD5SUM:= 6714dedeff1db5c3593c4a27b0d9cf50
PKG_DESCR:= image viewer
PKG_SECTION:= multimedia
PKG_BUILDDEP:= imlib2 giblib libXt
diff --git a/package/findutils/Makefile b/package/findutils/Makefile
index 46c3e6681..d89ca77ea 100644
--- a/package/findutils/Makefile
+++ b/package/findutils/Makefile
@@ -5,29 +5,38 @@ include $(TOPDIR)/rules.mk
PKG_NAME:= findutils
PKG_VERSION:= 4.4.2
-PKG_RELEASE:= 2
+PKG_RELEASE:= 4
PKG_MD5SUM:= 351cc4adb07d54877fa15f75fb77d39f
PKG_DESCR:= GNU utilities for finding files
PKG_SECTION:= utils
PKG_DEPENDS:= libpthread
+PKG_BUILDDEP:= autotool
PKG_URL:= http://www.gnu.org/software/findutils/
PKG_SITES:= http://ftp.gnu.org/pub/gnu/findutils/
-PKG_SUBPKGS:= FINDUTILS LOCATE
-PKGSD_LOCATE:= Locate utility
+PKG_SUBPKGS:= FIND XARGS LOCATE
+PKGSD_LOCATE:= locate utility
+PKGSD_XARGS:= xargs utility
include $(TOPDIR)/mk/package.mk
-$(eval $(call PKG_template,FINDUTILS,findutils,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
+$(eval $(call PKG_template,FIND,find,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
+$(eval $(call PKG_template,XARGS,xargs,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKGSD_XARGS},${PKG_SECTION}))
$(eval $(call PKG_template,LOCATE,locate,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKGSD_LOCATE},${PKG_SECTION}))
+AUTOTOOL_STYLE:= autoreconf
CONFIGURE_ENV+= gl_cv_func_wcwidth_works=yes \
ac_cv_func_working_mktime=yes
-findutils-install:
- $(INSTALL_DIR) $(IDIR_FINDUTILS)/usr/bin
- $(INSTALL_BIN) $(WRKINST)/usr/bin/{find,oldfind,xargs} \
- $(IDIR_FINDUTILS)/usr/bin
+find-install:
+ $(INSTALL_DIR) $(IDIR_FIND)/usr/bin
+ $(INSTALL_BIN) $(WRKINST)/usr/bin/find \
+ $(IDIR_FIND)/usr/bin
+
+xargs-install:
+ $(INSTALL_DIR) $(IDIR_XARGS)/usr/bin
+ $(INSTALL_BIN) $(WRKINST)/usr/bin/xargs \
+ $(IDIR_XARGS)/usr/bin
locate-install:
${INSTALL_DIR} ${IDIR_LOCATE}/usr/{bin,libexec}
diff --git a/package/findutils/patches/patch-configure_ac b/package/findutils/patches/patch-configure_ac
new file mode 100644
index 000000000..34c03d76f
--- /dev/null
+++ b/package/findutils/patches/patch-configure_ac
@@ -0,0 +1,11 @@
+--- findutils-4.4.2.orig/configure.ac 2009-05-16 17:27:39.000000000 +0200
++++ findutils-4.4.2/configure.ac 2014-03-23 19:39:22.000000000 +0100
+@@ -77,8 +77,6 @@ AC_PROG_CPP
+ dnl for gnulib
+ gl_EARLY
+
+-AM_C_PROTOTYPES
+-
+ AC_PROG_INSTALL
+ AC_PROG_RANLIB
+ dnl AC_PROG_LIBTOOL
diff --git a/package/findutils/patches/patch-gnulib_lib_freadahead_c b/package/findutils/patches/patch-gnulib_lib_freadahead_c
new file mode 100644
index 000000000..d998fbf6c
--- /dev/null
+++ b/package/findutils/patches/patch-gnulib_lib_freadahead_c
@@ -0,0 +1,15 @@
+--- findutils-4.4.2.orig/gnulib/lib/freadahead.c 2009-05-10 23:23:57.000000000 +0200
++++ findutils-4.4.2/gnulib/lib/freadahead.c 2014-03-23 16:27:43.000000000 +0100
+@@ -19,6 +19,7 @@
+ /* Specification. */
+ #include "freadahead.h"
+
++#ifndef HAVE___FREADAHEAD
+ size_t
+ freadahead (FILE *fp)
+ {
+@@ -64,3 +65,4 @@ freadahead (FILE *fp)
+ #error "Please port gnulib freadahead.c to your platform! Look at the definition of fflush, fread on your system, then report this to bug-gnulib."
+ #endif
+ }
++#endif
diff --git a/package/findutils/patches/patch-gnulib_lib_freadahead_h b/package/findutils/patches/patch-gnulib_lib_freadahead_h
new file mode 100644
index 000000000..194232201
--- /dev/null
+++ b/package/findutils/patches/patch-gnulib_lib_freadahead_h
@@ -0,0 +1,24 @@
+--- findutils-4.4.2.orig/gnulib/lib/freadahead.h 2009-05-10 23:23:57.000000000 +0200
++++ findutils-4.4.2/gnulib/lib/freadahead.h 2014-03-23 16:27:43.000000000 +0100
+@@ -29,8 +29,21 @@ extern "C" {
+
+ STREAM must not be wide-character oriented. */
+
++#if HAVE___FREADAHEAD || (defined(__linux__) && !defined(__GLIBC__) && !defined(__UCLIBC__)) /* musl libc */
++
++#ifndef HAVE___FREADAHEAD
++#define HAVE___FREADAHEAD 1
++#endif
++
++# include <stdio_ext.h>
++# define freadahead(stream) __freadahead (stream)
++
++#else
++
+ extern size_t freadahead (FILE *stream);
+
++#endif
++
+ #ifdef __cplusplus
+ }
+ #endif
diff --git a/package/findutils/patches/patch-gnulib_lib_fseeko_c b/package/findutils/patches/patch-gnulib_lib_fseeko_c
new file mode 100644
index 000000000..aba9a1133
--- /dev/null
+++ b/package/findutils/patches/patch-gnulib_lib_fseeko_c
@@ -0,0 +1,18 @@
+--- findutils-4.4.2.orig/gnulib/lib/fseeko.c 2009-05-10 23:25:10.000000000 +0200
++++ findutils-4.4.2/gnulib/lib/fseeko.c 2014-03-23 16:35:34.000000000 +0100
+@@ -94,8 +94,14 @@ rpl_fseeko (FILE *fp, off_t offset, int
+ if ((fp->_Mode & _MWRITE ? fp->_Next == fp->_Buf : fp->_Next == fp->_Rend)
+ && fp->_Rback == fp->_Back + sizeof (fp->_Back)
+ && fp->_Rsave == NULL)
++#elif FUNC_FFLUSH_STDIN < 0 && 200809 <= _POSIX_VERSION
++ /* Cross-compiling to some other system advertising conformance to
++ POSIX.1-2008 or later. Assume fseeko and fflush work as advertised.
++ If this assumption is incorrect, please report the bug to
++ bug-gnulib. */
++ if (0)
+ #else
+- #error "Please port gnulib fseeko.c to your platform! Look at the code in fpurge.c, then report this to bug-gnulib."
++ #error "Please port gnulib fseeko.c to your platform! Look at the code in fseeko.c, then report this to bug-gnulib."
+ #endif
+ {
+ off_t pos = lseek (fileno (fp), offset, whence);
diff --git a/package/findutils/patches/patch-gnulib_m4_fflush_m4 b/package/findutils/patches/patch-gnulib_m4_fflush_m4
new file mode 100644
index 000000000..b3dd6a082
--- /dev/null
+++ b/package/findutils/patches/patch-gnulib_m4_fflush_m4
@@ -0,0 +1,25 @@
+--- findutils-4.4.2.orig/gnulib/m4/fflush.m4 2009-05-10 23:23:57.000000000 +0200
++++ findutils-4.4.2/gnulib/m4/fflush.m4 2014-03-23 18:40:09.000000000 +0100
+@@ -32,12 +32,18 @@ AC_DEFUN([gl_FUNC_FFLUSH],
+ return 4;
+ return !(lseek (fd, 0, SEEK_CUR) == 5);
+ ]])], [gl_cv_func_fflush_stdin=yes], [gl_cv_func_fflush_stdin=no],
+- [dnl Pessimistically assume fflush is broken. This is wrong for
+- dnl at least glibc and cygwin; but lib/fflush.c takes this into account.
+- gl_cv_func_fflush_stdin=no])
++ [gl_cv_func_fflush_stdin=cross])
+ rm conftest.txt
+ ])
+- if test $gl_cv_func_fflush_stdin = no; then
++ case $gl_cv_func_fflush_stdin in
++ yes) gl_func_fflush_stdin=1 ;;
++ no) gl_func_fflush_stdin=0 ;;
++ *) gl_func_fflush_stdin='(-1)' ;;
++ esac
++ AC_DEFINE_UNQUOTED([FUNC_FFLUSH_STDIN], [$gl_func_fflush_stdin],
++ [Define to 1 if fflush is known to work on stdin as per POSIX.1-2008,
++ 0 if fflush is known to not work, -1 if unknown.])
++ if test $gl_cv_func_fflush_stdin != yes; then
+ gl_REPLACE_FFLUSH
+ fi
+ ])
diff --git a/package/gkrellm/Makefile b/package/gkrellm/Makefile
index 1b4a6b118..e8efdabd4 100644
--- a/package/gkrellm/Makefile
+++ b/package/gkrellm/Makefile
@@ -4,10 +4,10 @@
include ${TOPDIR}/rules.mk
PKG_NAME:= gkrellm
-PKG_VERSION:= 2.3.4
+PKG_VERSION:= 2.3.5
PKG_RELEASE:= 1
-PKG_MD5SUM:= 600f4daa395112ed19a3633deb0829ff
-PKG_DESCR:= The GNU Krell Monitors Server
+PKG_MD5SUM:= 05d00fa8d6376038b0c7e967583c0b8d
+PKG_DESCR:= GNU krell monitors server
PKG_SECTION:= net/misc
PKG_DEPENDS:= glib libpthread
PKG_BUILDDEP:= glib
diff --git a/package/gkrellm/patches/patch-server_Makefile b/package/gkrellm/patches/patch-server_Makefile
deleted file mode 100644
index a1a8747e7..000000000
--- a/package/gkrellm/patches/patch-server_Makefile
+++ /dev/null
@@ -1,30 +0,0 @@
---- gkrellm-2.3.4.orig/server/Makefile 2008-10-03 23:52:48.000000000 +0200
-+++ gkrellm-2.3.4/server/Makefile 2011-05-17 11:34:14.926610183 +0200
-@@ -26,7 +26,7 @@ SMANDIR ?= $(INSTALLROOT)/share/man/man1
- MANMODE ?= 644
- MANDIRMODE ?= 755
- INSTALL ?= install
--LINK_FLAGS ?= -Wl,-E
-+LINK_FLAGS ?= -Wl,-E $(LDFLAGS)
- EXTRAOBJS =
-
- SHARED_PATH = ../shared
-@@ -109,15 +109,15 @@ endif
-
- override CC += -Wall $(FLAGS)
-
--OS_NAME=$(shell uname -s)
--OS_RELEASE=$(shell uname -r)
-+OS_NAME=Linux
-+OS_RELEASE=2.6
-
- OBJS = main.o monitor.o mail.o plugins.o glib.o utils.o sysdeps-unix.o log.o
-
- all: gkrellmd
-
- gkrellmd: $(OBJS) $(EXTRAOBJS)
-- $(CC) $(OBJS) $(EXTRAOBJS) -o gkrellmd $(LIBS) $(LINK_FLAGS)
-+ $(CC) $(OBJS) $(EXTRAOBJS) -o gkrellmd $(LINK_FLAGS) $(LIBS)
-
- static: $(OBJS) $(EXTRAOBJS)
- $(CC) $(OBJS) $(EXTRAOBJS) -o gkrellmd.static -static \
diff --git a/package/gkrellm/patches/patch-server_main_c b/package/gkrellm/patches/patch-server_main_c
new file mode 100644
index 000000000..c02fb8930
--- /dev/null
+++ b/package/gkrellm/patches/patch-server_main_c
@@ -0,0 +1,24 @@
+--- gkrellm-2.3.5.orig/server/main.c 2010-10-02 18:13:29.000000000 +0200
++++ gkrellm-2.3.5/server/main.c 2014-03-23 16:06:59.000000000 +0100
+@@ -39,21 +39,6 @@
+ #include <syslog.h>
+ #endif // !WIN32
+
+-// win32 defines addrinfo but only supports getaddrinfo call on winxp or newer
+-#if !defined(HAVE_GETADDRINFO) && !defined(WIN32)
+-struct addrinfo
+- {
+- int ai_flags; /* AI_PASSIVE, AI_CANONNAME, AI_NUMERICHOST */
+- int ai_family; /* PF_xxx */
+- int ai_socktype; /* SOCK_xxx */
+- int ai_protocol; /* 0 or IPPROTO_xxx for IPv4 and IPv6 */
+- size_t ai_addrlen; /* length of ai_addr */
+- char *ai_canonname; /* canonical name for hostname */
+- struct sockaddr *ai_addr; /* binary address */
+- struct addrinfo *ai_next; /* next structure in linked list */
+- };
+-#endif // !HAVE_GETADDRINFO
+-
+ #if !defined(IPV6_V6ONLY) && defined(IPV6_BINDV6ONLY)
+ #define IPV6_V6ONLY IPV6_BINDV6ONLY
+ #endif
diff --git a/package/gkrellm/patches/patch-server_sysdeps-unix_c b/package/gkrellm/patches/patch-server_sysdeps-unix_c
new file mode 100644
index 000000000..e69631735
--- /dev/null
+++ b/package/gkrellm/patches/patch-server_sysdeps-unix_c
@@ -0,0 +1,10 @@
+--- gkrellm-2.3.5.orig/server/sysdeps-unix.c 2010-09-14 18:34:34.000000000 +0200
++++ gkrellm-2.3.5/server/sysdeps-unix.c 2014-03-23 16:13:57.000000000 +0100
+@@ -145,6 +145,7 @@ gkrellm_sensors_linux_name_fix(gchar *id
+ #endif
+ }
+
++#define HAVE_GETADDRINFO 1
+ #ifdef SENSORS_COMMON
+ gint
+ gkrellm_connect_to(gchar *server, gint server_port)
diff --git a/package/ipcad/Makefile b/package/ipcad/Makefile
index 5ee22cba2..57b4d7111 100644
--- a/package/ipcad/Makefile
+++ b/package/ipcad/Makefile
@@ -5,7 +5,7 @@ include ${TOPDIR}/rules.mk
PKG_NAME:= ipcad
PKG_VERSION:= 3.7.3
-PKG_RELEASE:= 1
+PKG_RELEASE:= 2
PKG_MD5SUM:= 125605249958894148ec26d3c88189f5
PKG_DESCR:= IP Cisco Accounting Daemon
PKG_SECTION:= net
diff --git a/package/ipcad/patches/patch-Makefile b/package/ipcad/patches/patch-Makefile
new file mode 100644
index 000000000..8ced9f13a
--- /dev/null
+++ b/package/ipcad/patches/patch-Makefile
@@ -0,0 +1,169 @@
+--- ipcad-3.7.3.orig/Makefile 2007-04-22 10:08:45.000000000 +0200
++++ ipcad-3.7.3/Makefile 2014-03-23 17:59:56.000000000 +0100
+@@ -1,4 +1,163 @@
+-all: bootstrap
+
+-bootstrap:
+- ./configure && make
++prefix= /usr
++exec_prefix= ${prefix}
++bindir= /usr/bin
++sysconfdir= /etc
++datadir= /usr/share
++
++CC= /home/wbx/hudson/toolchain_x86_64-linux-gnu/usr/bin/arm-openadk-linux-muslgnueabihf-gcc
++LDFLAGS= -L/home/wbx/hudson/target_arm_musl_eabihf/lib -L/home/wbx/hudson/target_arm_musl_eabihf/usr/lib -Wl,-O1 -Wl,-rpath -Wl,/usr/lib -Wl,-rpath-link -Wl,/home/wbx/hudson/target_arm_musl_eabihf/usr/lib -Wl,-z,relro,-z,now
++LIBS= -lpcap
++CFLAGS= -march=armv6 -mtune=arm1176jzf-s -mfpu=vfp -mfloat-abi=hard -fwrapv -fno-ident -fhonour-copts -fomit-frame-pointer -Os -pipe -fno-unwind-tables -fno-asynchronous-unwind-tables -g3 -DHAVE_CONFIG_H -W -Wall
++CPPFLAGS=-DIPCAD_VERSION=\"3.7.3\"
++CPPFLAGS+=-DCONFIG_FILE=\"${sysconfdir}/ipcad.conf\"
++CPPFLAGS+=-DHAVE_CONFIG_H -D_REENTRANT -D_THREAD_SAFE
++CPPFLAGS+=-DPSRC_pcap -DIFST_linux
++
++YACC=bison -y
++LEX=flex
++INSTALL=/usr/bin/install -c
++
++MANROOT=/usr/share/man/man
++MAN8=${MANROOT}8
++MAN5=${MANROOT}5
++
++NROFF= groff -Tascii -mandoc
++
++PACKAGE=ipcad
++TARGETS=ipcad
++VERSION=3.7.3
++
++IPCAD_OBJS= main.o process.o pps.o disp.o storage.o usage.o cfgy.o cfglex.o cfgread.o cfgvar.o dump.o import.o nflow.o cshelly.o cslex.o csparse.o service.o rw.o servers.o opt.o pidfile.o sf_lite.o
++IPCAD_OBJS+= ifst_linux.o # Interface statistics
++IPCAD_OBJS+= ifs_list.o # Interface statistics
++IPCAD_OBJS+= loop-pcap.o # Method of capturing
++IPCAD_OBJS+= loop-file.o # Method of capturing
++IPCAD_OBJS+= loop-divert.o # Method of capturing
++IPCAD_OBJS+= loop-dynamic.o # Method of capturing
++IPCAD_OBJS+= loop-ulog.o loop-ipq.o # Methods of capturing
++IPCAD_OBJS+= psrc.o psrc-pcap.o # Initialize capturers
++IPCAD_OBJS+= psrc-ipq.o psrc-ulog.o # Initialize capturers
++IPCAD_OBJS+= psrc-file.o # Initialize capturers
++IPCAD_OBJS+= psrc-dynamic.o # Initialize capturers
++IPCAD_OBJS+= psrc-divert.o # Initialize capturers
++IPCAD_OBJS+= wrap_oclose.o # Special file descriptors cache
++IPCAD_OBJS+= genhash.o # General hashing
++
++all: ${TARGETS} man
++
++ipcad: ${IPCAD_OBJS}
++ ${CC} ${CFLAGS} -o $@ ${IPCAD_OBJS} ${LDFLAGS} ${LIBS}
++
++.SUFFIXES:
++.SUFFIXES: .o .c .0 .8 .5
++
++.c.o:
++ ${CC} ${CPPFLAGS} ${CFLAGS} -o $@ -c $<
++
++.8.0:
++ ${NROFF} $< > $@
++
++.5.0:
++ ${NROFF} $< > $@
++
++cfgy.h cfgy.c: cfg.y
++ ${YACC} -p ipcacfg -d cfg.y
++ @mv y.tab.c cfgy.c
++ @mv y.tab.h cfgy.h
++
++cshelly.h cshelly.c: cshell.y
++ ${YACC} -p CS -d cshell.y
++ @mv y.tab.c cshelly.c
++ @mv y.tab.h cshelly.h
++
++cslex.c: cslex.l
++ ${LEX} -s -p -Cem -ocslex.c -PCS cslex.l
++
++cfglex.c: cfglex.l
++ ${LEX} -s -p -Cem -ocfglex.c -Pipcacfg cfglex.l
++
++
++man: ipcad.8 ipcad.conf.5
++
++distdir = $(PACKAGE)-$(VERSION)
++distdir:
++ rm -rf $(distdir)
++ mkdir $(distdir)
++ cp *.c *.h $(distdir)
++ cp ipcad.8 ipcad.conf.5 $(distdir)
++ cp *.y *.l $(distdir)
++ cp *.in configure install-sh $(distdir)
++ cp ipcad.conf.default $(distdir)
++ cp ipcad.conf.simple $(distdir)
++ cp ipcad.spec.in $(distdir)
++ cp Makefile.in Makefile $(distdir)
++ cp ChangeLog INSTALL README TODO BUGS AUTHORS COPYING FAQ $(distdir)
++ cd $(distdir) && make distclean
++
++dist: distdir
++ tar chof - $(distdir) | GZIP="--best" gzip -c > $(distdir).tar.gz
++ rm -rf $(distdir)
++
++clean:
++ rm -f *.o ${TARGETS} *.core 1
++ rm -f *.0
++
++distclean: clean
++ rm -f config.h
++ rm -f config.cache config.log config.status
++ rm -f Makefile
++ rm -f $(distdir).tar.gz
++ rm -f ipcad.spec
++ (echo "all: bootstrap"; echo; echo "bootstrap:"; \
++ echo " ./configure && make") > Makefile
++
++maintainer-clean: distclean
++ @echo "This command is intended for maintainers to use; it"
++ @echo "deletes files that may need special tools to rebuild."
++ rm -f Makefile
++ rm -f *.tab.* cfgy.? *lex.c
++ rm -f config.h.in configure
++
++install: all install-bin install-conf
++
++install-bin:
++ @${INSTALL} -d $(DESTDIR)${bindir}
++ ${INSTALL} ipcad $(DESTDIR)${bindir}
++
++install-man: man
++ ${INSTALL} -m 444 ipcad.8 $(DESTDIR)${MAN8}/ipcad.8
++ ${INSTALL} -m 444 ipcad.conf.5 $(DESTDIR)${MAN5}/ipcad.conf.5
++
++install-conf:
++ @${INSTALL} -d $(DESTDIR)${sysconfdir}
++ ${INSTALL} -m 644 ipcad.conf.simple $(DESTDIR)${sysconfdir}/ipcad.conf.simple
++ -@diff ${sysconfdir}/ipcad.conf \
++ ${sysconfdir}/ipcad.conf.default >/dev/null 2>&1; \
++ if [ "$$?" -eq 0 ] || [ ! -f ${sysconfdir}/ipcad.conf ]; then \
++ echo ${INSTALL} -m 644 ipcad.conf.default $(DESTDIR)${sysconfdir}/ipcad.conf.default; \
++ ${INSTALL} -m 644 ipcad.conf.default $(DESTDIR)${sysconfdir}/ipcad.conf.default; \
++ echo ${INSTALL} -m 644 ipcad.conf.default $(DESTDIR)${sysconfdir}/ipcad.conf; \
++ ${INSTALL} -m 644 ipcad.conf.default $(DESTDIR)${sysconfdir}/ipcad.conf; \
++ echo "**********************************************"; \
++ echo "* Please customize ${sysconfdir}/ipcad.conf *"; \
++ echo "**********************************************"; \
++ else \
++ echo ${INSTALL} -m 644 ipcad.conf.default $(DESTDIR)${sysconfdir}/ipcad.conf.default; \
++ ${INSTALL} -m 644 ipcad.conf.default $(DESTDIR)${sysconfdir}/ipcad.conf.default; \
++ echo "*********************************************"; \
++ echo "* Updated ${sysconfdir}/ipcad.conf.default *"; \
++ echo "*********************************************"; \
++ fi
++ @echo ""
++ @echo "Now you might want to 'make install-man'"
++ @echo ""
++
++
++uninstall:
++ rm -f ${bindir}/ipcad
++ rm -f ${sysconfdir}/ipcad.conf.default
++ rm -f ${sysconfdir}/ipcad.conf.simple
++ rm -f ${MAN8}/ipcad.8
++ rm -f ${MAN5}/ipcad.conf.5
++
diff --git a/package/ipcad/patches/patch-Makefile_in b/package/ipcad/patches/patch-Makefile_in
index 40bcdf546..2fb2eaece 100644
--- a/package/ipcad/patches/patch-Makefile_in
+++ b/package/ipcad/patches/patch-Makefile_in
@@ -1,5 +1,5 @@
--- ipcad-3.7.3.orig/Makefile.in 2007-04-22 10:08:45.000000000 +0200
-+++ ipcad-3.7.3/Makefile.in 2011-01-11 17:16:15.000000000 +0100
++++ ipcad-3.7.3/Makefile.in 2014-03-23 17:58:49.000000000 +0100
@@ -6,10 +6,10 @@ sysconfdir= @sysconfdir@
datadir= @datadir@
@@ -15,3 +15,12 @@
CPPFLAGS+=-DCONFIG_FILE=\"${sysconfdir}/ipcad.conf\"
CPPFLAGS+=@DEFS@ -D_REENTRANT -D_THREAD_SAFE
CPPFLAGS+=-DPSRC_@PSRC@ -DIFST_@IFST@
+@@ -28,7 +28,7 @@ PACKAGE=ipcad
+ TARGETS=ipcad
+ VERSION=@IPCAD_VERSION@
+
+-IPCAD_OBJS= main.o process.o pps.o disp.o storage.o usage.o cfgy.o cfglex.o cfgread.o cfgvar.o rsh.o rshp.o dump.o import.o nflow.o cshelly.o cslex.o csparse.o service.o rw.o servers.o opt.o pidfile.o sf_lite.o
++IPCAD_OBJS= main.o process.o pps.o disp.o storage.o usage.o cfgy.o cfglex.o cfgread.o cfgvar.o dump.o import.o nflow.o cshelly.o cslex.o csparse.o service.o rw.o servers.o opt.o pidfile.o sf_lite.o
+ IPCAD_OBJS+= ifst_@IFST@.o # Interface statistics
+ IPCAD_OBJS+= ifs_list.o # Interface statistics
+ IPCAD_OBJS+= loop-@PSRC@.o # Method of capturing
diff --git a/package/ipcad/patches/patch-cfg_y b/package/ipcad/patches/patch-cfg_y
new file mode 100644
index 000000000..11fbc7564
--- /dev/null
+++ b/package/ipcad/patches/patch-cfg_y
@@ -0,0 +1,60 @@
+--- ipcad-3.7.3.orig/cfg.y 2007-04-22 10:08:45.000000000 +0200
++++ ipcad-3.7.3/cfg.y 2014-03-23 18:03:07.000000000 +0100
+@@ -3,7 +3,6 @@
+ #include "headers.h"
+ #include "cfgvar.h"
+ #include "servers.h"
+-#include "rsh.h"
+ #include "opt.h"
+ #include "storage.h"
+
+@@ -214,49 +213,6 @@ block:
+ | CAPTURE_PORTS DENY {
+ conf->capture_ports = 0;
+ }
+- | RSH ALLOW at_ip {
+- if(add_server(rsh_server, "RSH Server", &($3), 514))
+- return yyerror("Failed to install RSH server");
+- fprintf(stderr, "Configured RSH Server listening at %s\n",
+- inet_ntoa($3));
+- }
+- | RSH DENY at_ip {
+- fprintf(stderr, "Warning: Option at line %d has no effect\n",
+- ipcacfglineno);
+- }
+- | RSH TIMEOUT EQ TOK_STRING {
+- int to_ms;
+- to_ms = atoi($4);
+- free($4);
+- if(to_ms < 0)
+- to_ms = -1; /* INFTIM */
+- else
+- to_ms = to_ms * 1000;
+- rsh_rw_timeout = to_ms;
+- }
+- | RSH TOK_STRING privlevel {
+- cfg_add_rsh_host("", $2, $3);
+- free($2);
+- }
+- | RSH AT TOK_STRING privlevel {
+- cfg_add_rsh_host("", $3, $4);
+- free($3);
+- }
+- | RSH TOK_STRING AT TOK_STRING privlevel {
+- cfg_add_rsh_host($2, $4, $5);
+- free($2); free($4);
+- }
+- | RSH TTL EQ TOK_STRING {
+- conf->rsh_ttl = atoi($4);
+- free($4);
+- }
+- | TTL EQ TOK_STRING {
+- fprintf(stderr, "WARNING: \"ttl = %s;\" at line %d: "
+- "Obsolete syntax. Please use \"rsh ttl = %s;\"\n",
+- $3, ipcacfglineno, $3);
+- conf->rsh_ttl = atoi($3);
+- free($3);
+- }
+ | NetFlow
+ | CHROOT EQ TOK_STRING {
+ if(conf->chroot_to)
diff --git a/package/iptables-snmp/Makefile b/package/iptables-snmp/Makefile
index 28aa8c8ef..130872cf9 100644
--- a/package/iptables-snmp/Makefile
+++ b/package/iptables-snmp/Makefile
@@ -13,6 +13,8 @@ PKG_BUILDDEP:= net-snmp
PKG_URL:= http://www.nobiscuit.com/iptables-snmp/
PKG_SITES:= http://www.nobiscuit.com/iptables-snmp/
+PKG_LIBC_DEPENDS:= uclibc glibc
+
include $(TOPDIR)/mk/package.mk
$(eval $(call PKG_template,IPTABLES_SNMP,iptables-snmp,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
diff --git a/package/libmodplug/Makefile b/package/libmodplug/Makefile
index f08435ee4..421243c03 100644
--- a/package/libmodplug/Makefile
+++ b/package/libmodplug/Makefile
@@ -4,13 +4,13 @@
include $(TOPDIR)/rules.mk
PKG_NAME:= libmodplug
-PKG_VERSION:= 0.8.8.4
-PKG_RELEASE:= 2
-PKG_MD5SUM:= fddc3c704c5489de2a3cf0fedfec59db
+PKG_VERSION:= 0.8.8.5
+PKG_RELEASE:= 1
+PKG_MD5SUM:= 5f30241db109d647781b784e62ddfaa1
PKG_DESCR:= a MOD player library
PKG_SECTION:= libs
PKG_URL:= http://modplug-xmms.sourceforge.net
-PKG_SITES:= ${MASTER_SITE_SOURCEFORGE:=modplug-xmms/libmodplug/0.8.8.4/}
+PKG_SITES:= ${MASTER_SITE_SOURCEFORGE:=modplug-xmms/libmodplug/0.8.8.5/}
PKG_OPTS:= dev
include $(TOPDIR)/mk/package.mk
diff --git a/package/libtirpc/Makefile b/package/libtirpc/Makefile
index a1bfab5d1..61ae3a9b5 100644
--- a/package/libtirpc/Makefile
+++ b/package/libtirpc/Makefile
@@ -5,7 +5,7 @@ include ${TOPDIR}/rules.mk
PKG_NAME:= libtirpc
PKG_VERSION:= 0.2.3
-PKG_RELEASE:= 2
+PKG_RELEASE:= 3
PKG_MD5SUM:= b70e6c12a369a91e69fcc3b9feb23d61
PKG_DESCR:= a transport independent RPC library
PKG_SECTION:= libs
@@ -15,8 +15,6 @@ PKG_URL:= http://sourceforge.net/projects/libtirpc/
PKG_SITES:= ${MASTER_SITE_SOURCEFORGE:=libtirpc/}
PKG_OPTS:= dev
-PKG_LIBC_DEPENDS:= uclibc glibc
-
DISTFILES:= $(PKG_NAME)-$(PKG_VERSION).tar.bz2
include ${TOPDIR}/mk/package.mk
diff --git a/package/libtirpc/patches/patch-src_auth_des_c b/package/libtirpc/patches/patch-src_auth_des_c
new file mode 100644
index 000000000..d91177fdc
--- /dev/null
+++ b/package/libtirpc/patches/patch-src_auth_des_c
@@ -0,0 +1,18 @@
+--- libtirpc-0.2.3.orig/src/auth_des.c 2013-02-13 16:13:59.000000000 +0100
++++ libtirpc-0.2.3/src/auth_des.c 2014-03-22 13:20:52.000000000 +0100
+@@ -38,7 +38,6 @@
+ #include <string.h>
+ #include <stdlib.h>
+ #include <unistd.h>
+-#include <sys/cdefs.h>
+ #include <rpc/des_crypt.h>
+ #include <syslog.h>
+ #include <rpc/types.h>
+@@ -52,7 +51,6 @@
+
+ #if defined(LIBC_SCCS) && !defined(lint)
+ #endif
+-#include <sys/cdefs.h>
+
+ #define USEC_PER_SEC 1000000
+ #define RTIME_TIMEOUT 5 /* seconds to wait for sync */
diff --git a/package/libtirpc/patches/patch-src_auth_none_c b/package/libtirpc/patches/patch-src_auth_none_c
new file mode 100644
index 000000000..d8fd74f3d
--- /dev/null
+++ b/package/libtirpc/patches/patch-src_auth_none_c
@@ -0,0 +1,10 @@
+--- libtirpc-0.2.3.orig/src/auth_none.c 2013-02-13 16:13:59.000000000 +0100
++++ libtirpc-0.2.3/src/auth_none.c 2014-03-22 13:20:53.000000000 +0100
+@@ -31,7 +31,6 @@
+ static char *sccsid = "@(#)auth_none.c 1.19 87/08/11 Copyr 1984 Sun Micro";
+ static char *sccsid = "@(#)auth_none.c 2.1 88/07/29 4.0 RPCSRC";
+ #endif
+-#include <sys/cdefs.h>
+ __FBSDID("$FreeBSD: src/lib/libc/rpc/auth_none.c,v 1.12 2002/03/22 23:18:35 obrien Exp $");
+ */
+
diff --git a/package/libtirpc/patches/patch-src_auth_time_c b/package/libtirpc/patches/patch-src_auth_time_c
index 5ce7de419..b6319db96 100644
--- a/package/libtirpc/patches/patch-src_auth_time_c
+++ b/package/libtirpc/patches/patch-src_auth_time_c
@@ -1,6 +1,14 @@
---- libtirpc-0.2.2.orig/src/auth_time.c 2011-05-02 14:10:40.000000000 +0200
-+++ libtirpc-0.2.2/src/auth_time.c 2012-03-22 19:02:30.422855534 +0100
-@@ -43,7 +43,7 @@
+--- libtirpc-0.2.3.orig/src/auth_time.c 2013-02-13 16:13:59.000000000 +0100
++++ libtirpc-0.2.3/src/auth_time.c 2014-03-22 13:20:53.000000000 +0100
+@@ -25,7 +25,6 @@
+ * needed to deal with TCP connections.
+ */
+
+-#include <sys/cdefs.h>
+ #include <stdio.h>
+ #include <syslog.h>
+ #include <string.h>
+@@ -43,7 +42,7 @@
//#include <clnt_soc.h>
#include <sys/select.h>
#undef NIS
@@ -9,7 +17,7 @@
#ifdef TESTING
-@@ -138,6 +138,7 @@ free_eps(eps, num)
+@@ -138,6 +137,7 @@ free_eps(eps, num)
* NIS+ server will call __rpc_get_time_offset() with the nis_server
* structure already populated.
*/
@@ -17,7 +25,7 @@
static nis_server *
get_server(sin, host, srv, eps, maxep)
struct sockaddr_in *sin;
-@@ -491,3 +492,4 @@ error:
+@@ -491,3 +491,4 @@ error:
return (time_valid);
}
diff --git a/package/libtirpc/patches/patch-src_auth_unix_c b/package/libtirpc/patches/patch-src_auth_unix_c
new file mode 100644
index 000000000..3d5fb990e
--- /dev/null
+++ b/package/libtirpc/patches/patch-src_auth_unix_c
@@ -0,0 +1,10 @@
+--- libtirpc-0.2.3.orig/src/auth_unix.c 2013-02-13 16:13:59.000000000 +0100
++++ libtirpc-0.2.3/src/auth_unix.c 2014-03-22 13:20:53.000000000 +0100
+@@ -26,7 +26,6 @@
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+-#include <sys/cdefs.h>
+
+ /*
+ * auth_unix.c, Implements UNIX style authentication parameters.
diff --git a/package/libtirpc/patches/patch-src_authdes_prot_c b/package/libtirpc/patches/patch-src_authdes_prot_c
new file mode 100644
index 000000000..f829ed45e
--- /dev/null
+++ b/package/libtirpc/patches/patch-src_authdes_prot_c
@@ -0,0 +1,7 @@
+--- libtirpc-0.2.3.orig/src/authdes_prot.c 2013-02-13 16:13:59.000000000 +0100
++++ libtirpc-0.2.3/src/authdes_prot.c 2014-03-22 13:20:53.000000000 +0100
+@@ -1,4 +1,3 @@
+-#include <sys/cdefs.h>
+ /*
+ * Copyright (c) 2009, Sun Microsystems, Inc.
+ * All rights reserved.
diff --git a/package/libtirpc/patches/patch-src_authunix_prot_c b/package/libtirpc/patches/patch-src_authunix_prot_c
new file mode 100644
index 000000000..178436474
--- /dev/null
+++ b/package/libtirpc/patches/patch-src_authunix_prot_c
@@ -0,0 +1,10 @@
+--- libtirpc-0.2.3.orig/src/authunix_prot.c 2013-02-13 16:13:59.000000000 +0100
++++ libtirpc-0.2.3/src/authunix_prot.c 2014-03-22 13:20:53.000000000 +0100
+@@ -26,7 +26,6 @@
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+-#include <sys/cdefs.h>
+
+ /*
+ * authunix_prot.c
diff --git a/package/libtirpc/patches/patch-src_bindresvport_c b/package/libtirpc/patches/patch-src_bindresvport_c
new file mode 100644
index 000000000..4e828a005
--- /dev/null
+++ b/package/libtirpc/patches/patch-src_bindresvport_c
@@ -0,0 +1,18 @@
+--- libtirpc-0.2.3.orig/src/bindresvport.c 2013-02-13 16:13:59.000000000 +0100
++++ libtirpc-0.2.3/src/bindresvport.c 2014-03-22 13:24:36.000000000 +0100
+@@ -26,7 +26,6 @@
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+-#include <sys/cdefs.h>
+
+ /*
+ * Copyright (c) 1987 by Sun Microsystems, Inc.
+@@ -38,6 +37,7 @@
+ #include <sys/socket.h>
+
+ #include <netinet/in.h>
++#include <netdb.h>
+
+ #include <errno.h>
+ #include <string.h>
diff --git a/package/libtirpc/patches/patch-src_clnt_bcast_c b/package/libtirpc/patches/patch-src_clnt_bcast_c
new file mode 100644
index 000000000..e803b1721
--- /dev/null
+++ b/package/libtirpc/patches/patch-src_clnt_bcast_c
@@ -0,0 +1,22 @@
+--- libtirpc-0.2.3.orig/src/clnt_bcast.c 2013-02-13 16:13:59.000000000 +0100
++++ libtirpc-0.2.3/src/clnt_bcast.c 2014-03-22 14:19:29.000000000 +0100
+@@ -28,7 +28,6 @@
+ /*
+ * Copyright (c) 1986-1991 by Sun Microsystems Inc.
+ */
+-#include <sys/cdefs.h>
+
+ /*
+ * clnt_bcast.c
+@@ -41,10 +40,8 @@
+ */
+ #include <sys/socket.h>
+ #include <sys/types.h>
+-#include <sys/queue.h>
+
+-/* new queue functions */
+-#include <misc/queue.h>
++#include "queue.h"
+
+ #include <net/if.h>
+ #include <netinet/in.h>
diff --git a/package/libtirpc/patches/patch-src_clnt_perror_c b/package/libtirpc/patches/patch-src_clnt_perror_c
new file mode 100644
index 000000000..5c3c9169a
--- /dev/null
+++ b/package/libtirpc/patches/patch-src_clnt_perror_c
@@ -0,0 +1,10 @@
+--- libtirpc-0.2.3.orig/src/clnt_perror.c 2013-02-13 16:13:59.000000000 +0100
++++ libtirpc-0.2.3/src/clnt_perror.c 2014-03-22 13:20:53.000000000 +0100
+@@ -27,7 +27,6 @@
+ */
+
+ /*
+-#include <sys/cdefs.h>
+ */
+ /*
+ * clnt_perror.c
diff --git a/package/libtirpc/patches/patch-src_clnt_simple_c b/package/libtirpc/patches/patch-src_clnt_simple_c
new file mode 100644
index 000000000..8db2f1b8e
--- /dev/null
+++ b/package/libtirpc/patches/patch-src_clnt_simple_c
@@ -0,0 +1,10 @@
+--- libtirpc-0.2.3.orig/src/clnt_simple.c 2013-02-13 16:13:59.000000000 +0100
++++ libtirpc-0.2.3/src/clnt_simple.c 2014-03-22 13:20:53.000000000 +0100
+@@ -29,7 +29,6 @@
+ * Copyright (c) 1986-1991 by Sun Microsystems Inc.
+ */
+
+-#include <sys/cdefs.h>
+
+ /*
+ * clnt_simple.c
diff --git a/package/libtirpc/patches/patch-src_crypt_client_c b/package/libtirpc/patches/patch-src_crypt_client_c
new file mode 100644
index 000000000..3768305f8
--- /dev/null
+++ b/package/libtirpc/patches/patch-src_crypt_client_c
@@ -0,0 +1,10 @@
+--- libtirpc-0.2.3.orig/src/crypt_client.c 2013-02-13 16:13:59.000000000 +0100
++++ libtirpc-0.2.3/src/crypt_client.c 2014-03-22 13:20:53.000000000 +0100
+@@ -30,7 +30,6 @@
+ * SUCH DAMAGE.
+ */
+
+-#include <sys/cdefs.h>
+
+ #include <err.h>
+ #include <sys/types.h>
diff --git a/package/libtirpc/patches/patch-src_des_crypt_c b/package/libtirpc/patches/patch-src_des_crypt_c
index 22c03d78b..c1c313dee 100644
--- a/package/libtirpc/patches/patch-src_des_crypt_c
+++ b/package/libtirpc/patches/patch-src_des_crypt_c
@@ -1,6 +1,10 @@
--- libtirpc-0.2.3.orig/src/des_crypt.c 2013-02-13 16:13:59.000000000 +0100
-+++ libtirpc-0.2.3/src/des_crypt.c 2013-08-12 16:47:07.000000000 +0200
-@@ -43,7 +43,7 @@ static char sccsid[] = "@(#)des_crypt.c
++++ libtirpc-0.2.3/src/des_crypt.c 2014-03-22 13:20:53.000000000 +0100
+@@ -39,11 +39,10 @@
+ static char sccsid[] = "@(#)des_crypt.c 2.2 88/08/10 4.0 RPCSRC; from 1.13 88/02/08 SMI";
+ #endif
+ #endif
+-#include <sys/cdefs.h>
static int common_crypt( char *, char *, unsigned, unsigned, struct desparams * );
int (*__des_crypt_LOCAL)() = 0;
@@ -9,7 +13,7 @@
/*
* Copy 8 bytes
*/
-@@ -145,10 +145,6 @@ common_crypt(key, buf, len, mode, desp)
+@@ -145,10 +144,6 @@ common_crypt(key, buf, len, mode, desp)
if (!__des_crypt_LOCAL(buf, len, desp)) {
return (DESERR_HWERROR);
}
diff --git a/package/libtirpc/patches/patch-src_des_soft_c b/package/libtirpc/patches/patch-src_des_soft_c
new file mode 100644
index 000000000..675a6a265
--- /dev/null
+++ b/package/libtirpc/patches/patch-src_des_soft_c
@@ -0,0 +1,9 @@
+--- libtirpc-0.2.3.orig/src/des_soft.c 2013-02-13 16:13:59.000000000 +0100
++++ libtirpc-0.2.3/src/des_soft.c 2014-03-22 13:20:53.000000000 +0100
+@@ -1,5 +1,4 @@
+-//#include <sys/cdefs.h>
+-
++//
+ /*
+ * Copyright (c) 2009, Sun Microsystems, Inc.
+ * All rights reserved.
diff --git a/package/libtirpc/patches/patch-src_getnetconfig_c b/package/libtirpc/patches/patch-src_getnetconfig_c
new file mode 100644
index 000000000..fb1f285a1
--- /dev/null
+++ b/package/libtirpc/patches/patch-src_getnetconfig_c
@@ -0,0 +1,10 @@
+--- libtirpc-0.2.3.orig/src/getnetconfig.c 2013-02-13 16:13:59.000000000 +0100
++++ libtirpc-0.2.3/src/getnetconfig.c 2014-03-22 13:20:53.000000000 +0100
+@@ -32,7 +32,6 @@
+
+ #include <pthread.h>
+ #include <reentrant.h>
+-#include <sys/cdefs.h>
+ #include <stdio.h>
+ #include <errno.h>
+ #include <netconfig.h>
diff --git a/package/libtirpc/patches/patch-src_getnetpath_c b/package/libtirpc/patches/patch-src_getnetpath_c
new file mode 100644
index 000000000..73788ea04
--- /dev/null
+++ b/package/libtirpc/patches/patch-src_getnetpath_c
@@ -0,0 +1,16 @@
+--- libtirpc-0.2.3.orig/src/getnetpath.c 2013-02-13 16:13:59.000000000 +0100
++++ libtirpc-0.2.3/src/getnetpath.c 2014-03-22 13:20:53.000000000 +0100
+@@ -25,13 +25,11 @@
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+-#include <sys/cdefs.h>
+
+ /*
+ * Copyright (c) 1989 by Sun Microsystems, Inc.
+ */
+
+-#include <sys/cdefs.h>
+ #include <stdio.h>
+ #include <errno.h>
+ #include <netconfig.h>
diff --git a/package/libtirpc/patches/patch-src_getpeereid_c b/package/libtirpc/patches/patch-src_getpeereid_c
new file mode 100644
index 000000000..1af375563
--- /dev/null
+++ b/package/libtirpc/patches/patch-src_getpeereid_c
@@ -0,0 +1,10 @@
+--- libtirpc-0.2.3.orig/src/getpeereid.c 2013-02-13 16:13:59.000000000 +0100
++++ libtirpc-0.2.3/src/getpeereid.c 2014-03-22 13:20:52.000000000 +0100
+@@ -24,7 +24,6 @@
+ * SUCH DAMAGE.
+ */
+
+-#include <sys/cdefs.h>
+
+ #include <sys/param.h>
+ #include <sys/socket.h>
diff --git a/package/libtirpc/patches/patch-src_getpublickey_c b/package/libtirpc/patches/patch-src_getpublickey_c
new file mode 100644
index 000000000..a41eca54a
--- /dev/null
+++ b/package/libtirpc/patches/patch-src_getpublickey_c
@@ -0,0 +1,10 @@
+--- libtirpc-0.2.3.orig/src/getpublickey.c 2013-02-13 16:13:59.000000000 +0100
++++ libtirpc-0.2.3/src/getpublickey.c 2014-03-22 13:20:53.000000000 +0100
+@@ -26,7 +26,6 @@
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+ /*
+-#include <sys/cdefs.h>
+ */
+
+ /*
diff --git a/package/libtirpc/patches/patch-src_key_call_c b/package/libtirpc/patches/patch-src_key_call_c
new file mode 100644
index 000000000..f7e7fb44d
--- /dev/null
+++ b/package/libtirpc/patches/patch-src_key_call_c
@@ -0,0 +1,10 @@
+--- libtirpc-0.2.3.orig/src/key_call.c 2013-02-13 16:13:59.000000000 +0100
++++ libtirpc-0.2.3/src/key_call.c 2014-03-22 13:20:52.000000000 +0100
+@@ -30,7 +30,6 @@
+ */
+
+
+-#include <sys/cdefs.h>
+
+ /*
+ * key_call.c, Interface to keyserver
diff --git a/package/libtirpc/patches/patch-src_key_prot_xdr_c b/package/libtirpc/patches/patch-src_key_prot_xdr_c
new file mode 100644
index 000000000..5dcf3f0f8
--- /dev/null
+++ b/package/libtirpc/patches/patch-src_key_prot_xdr_c
@@ -0,0 +1,10 @@
+--- libtirpc-0.2.3.orig/src/key_prot_xdr.c 2013-02-13 16:13:59.000000000 +0100
++++ libtirpc-0.2.3/src/key_prot_xdr.c 2014-03-22 13:20:53.000000000 +0100
+@@ -33,7 +33,6 @@
+ */
+ /* Copyright (c) 1990, 1991 Sun Microsystems, Inc. */
+
+-#include <sys/cdefs.h>
+
+ /*
+ * Compiled from key_prot.x using rpcgen.
diff --git a/package/libtirpc/patches/patch-src_mt_misc_c b/package/libtirpc/patches/patch-src_mt_misc_c
new file mode 100644
index 000000000..27e711159
--- /dev/null
+++ b/package/libtirpc/patches/patch-src_mt_misc_c
@@ -0,0 +1,8 @@
+--- libtirpc-0.2.3.orig/src/mt_misc.c 2013-02-13 16:13:59.000000000 +0100
++++ libtirpc-0.2.3/src/mt_misc.c 2014-03-22 13:20:53.000000000 +0100
+@@ -1,5 +1,4 @@
+
+-#include <sys/cdefs.h>
+ #include <pthread.h>
+ #include <reentrant.h>
+ #include <rpc/rpc.h>
diff --git a/package/libtirpc/patches/patch-src_pmap_clnt_c b/package/libtirpc/patches/patch-src_pmap_clnt_c
new file mode 100644
index 000000000..30b5deb86
--- /dev/null
+++ b/package/libtirpc/patches/patch-src_pmap_clnt_c
@@ -0,0 +1,10 @@
+--- libtirpc-0.2.3.orig/src/pmap_clnt.c 2013-02-13 16:13:59.000000000 +0100
++++ libtirpc-0.2.3/src/pmap_clnt.c 2014-03-22 13:20:53.000000000 +0100
+@@ -26,7 +26,6 @@
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+-#include <sys/cdefs.h>
+
+ /*
+ * pmap_clnt.c
diff --git a/package/libtirpc/patches/patch-src_pmap_getmaps_c b/package/libtirpc/patches/patch-src_pmap_getmaps_c
new file mode 100644
index 000000000..1d9c984be
--- /dev/null
+++ b/package/libtirpc/patches/patch-src_pmap_getmaps_c
@@ -0,0 +1,10 @@
+--- libtirpc-0.2.3.orig/src/pmap_getmaps.c 2013-02-13 16:13:59.000000000 +0100
++++ libtirpc-0.2.3/src/pmap_getmaps.c 2014-03-22 13:20:53.000000000 +0100
+@@ -26,7 +26,6 @@
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+-#include <sys/cdefs.h>
+
+ /*
+ * pmap_getmap.c
diff --git a/package/libtirpc/patches/patch-src_rpc_com_h b/package/libtirpc/patches/patch-src_rpc_com_h
new file mode 100644
index 000000000..c327a0152
--- /dev/null
+++ b/package/libtirpc/patches/patch-src_rpc_com_h
@@ -0,0 +1,31 @@
+--- libtirpc-0.2.3.orig/src/rpc_com.h 2013-02-13 16:13:59.000000000 +0100
++++ libtirpc-0.2.3/src/rpc_com.h 2014-03-22 13:20:53.000000000 +0100
+@@ -40,7 +40,6 @@
+ #ifndef _TIRPC_RPCCOM_H
+ #define _TIRPC_RPCCOM_H
+
+-#include <sys/cdefs.h>
+
+ /* #pragma ident "@(#)rpc_com.h 1.11 93/07/05 SMI" */
+
+@@ -54,7 +53,9 @@
+ #define __RPC_GETXID(now) ((u_int32_t)getpid() ^ (u_int32_t)(now)->tv_sec ^ \
+ (u_int32_t)(now)->tv_usec)
+
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ extern u_int __rpc_get_a_size(int);
+ extern int __rpc_dtbsize(void);
+ extern struct netconfig * __rpcgettp(int);
+@@ -90,6 +91,8 @@ void __xprt_set_raddr(SVCXPRT *, const s
+ SVCXPRT **__svc_xports;
+ int __svc_maxrec;
+
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+
+ #endif /* _TIRPC_RPCCOM_H */
diff --git a/package/libtirpc/patches/patch-src_rpc_generic_c b/package/libtirpc/patches/patch-src_rpc_generic_c
new file mode 100644
index 000000000..aa567ce27
--- /dev/null
+++ b/package/libtirpc/patches/patch-src_rpc_generic_c
@@ -0,0 +1,10 @@
+--- libtirpc-0.2.3.orig/src/rpc_generic.c 2013-02-13 16:13:59.000000000 +0100
++++ libtirpc-0.2.3/src/rpc_generic.c 2014-03-22 13:20:53.000000000 +0100
+@@ -29,7 +29,6 @@
+ * Copyright (c) 1986-1991 by Sun Microsystems Inc.
+ */
+
+-#include <sys/cdefs.h>
+
+ /*
+ * rpc_generic.c, Miscl routines for RPC.
diff --git a/package/libtirpc/patches/patch-src_rpcb_st_xdr_c b/package/libtirpc/patches/patch-src_rpcb_st_xdr_c
new file mode 100644
index 000000000..30eeeee9d
--- /dev/null
+++ b/package/libtirpc/patches/patch-src_rpcb_st_xdr_c
@@ -0,0 +1,10 @@
+--- libtirpc-0.2.3.orig/src/rpcb_st_xdr.c 2013-02-13 16:13:59.000000000 +0100
++++ libtirpc-0.2.3/src/rpcb_st_xdr.c 2014-03-22 13:20:53.000000000 +0100
+@@ -35,7 +35,6 @@
+ * routines used with the rpcbind stats facility.
+ */
+
+-#include <sys/cdefs.h>
+
+ #include <rpc/rpc.h>
+
diff --git a/package/libtirpc/patches/patch-src_rpcdname_c b/package/libtirpc/patches/patch-src_rpcdname_c
new file mode 100644
index 000000000..b66b0a46f
--- /dev/null
+++ b/package/libtirpc/patches/patch-src_rpcdname_c
@@ -0,0 +1,10 @@
+--- libtirpc-0.2.3.orig/src/rpcdname.c 2013-02-13 16:13:59.000000000 +0100
++++ libtirpc-0.2.3/src/rpcdname.c 2014-03-22 13:20:53.000000000 +0100
+@@ -25,7 +25,6 @@
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+-#include <sys/cdefs.h>
+
+ /*
+ * rpcdname.c
diff --git a/package/libtirpc/patches/patch-src_svc_dg_c b/package/libtirpc/patches/patch-src_svc_dg_c
new file mode 100644
index 000000000..88622d951
--- /dev/null
+++ b/package/libtirpc/patches/patch-src_svc_dg_c
@@ -0,0 +1,10 @@
+--- libtirpc-0.2.3.orig/src/svc_dg.c 2013-02-13 16:13:59.000000000 +0100
++++ libtirpc-0.2.3/src/svc_dg.c 2014-03-22 13:20:52.000000000 +0100
+@@ -31,7 +31,6 @@
+ * Copyright (c) 1986-1991 by Sun Microsystems Inc.
+ */
+
+-#include <sys/cdefs.h>
+
+ /*
+ * svc_dg.c, Server side for connectionless RPC.
diff --git a/package/libtirpc/patches/patch-src_svc_simple_c b/package/libtirpc/patches/patch-src_svc_simple_c
new file mode 100644
index 000000000..ed994e4f5
--- /dev/null
+++ b/package/libtirpc/patches/patch-src_svc_simple_c
@@ -0,0 +1,10 @@
+--- libtirpc-0.2.3.orig/src/svc_simple.c 2013-02-13 16:13:59.000000000 +0100
++++ libtirpc-0.2.3/src/svc_simple.c 2014-03-22 13:20:53.000000000 +0100
+@@ -29,7 +29,6 @@
+ * Copyright (c) 1986-1991 by Sun Microsystems Inc.
+ */
+
+-#include <sys/cdefs.h>
+
+ /*
+ * svc_simple.c
diff --git a/package/libtirpc/patches/patch-src_svc_vc_c b/package/libtirpc/patches/patch-src_svc_vc_c
new file mode 100644
index 000000000..8e43f4b8d
--- /dev/null
+++ b/package/libtirpc/patches/patch-src_svc_vc_c
@@ -0,0 +1,10 @@
+--- libtirpc-0.2.3.orig/src/svc_vc.c 2013-02-13 16:13:59.000000000 +0100
++++ libtirpc-0.2.3/src/svc_vc.c 2014-03-22 13:20:53.000000000 +0100
+@@ -27,7 +27,6 @@
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+-#include <sys/cdefs.h>
+
+ /*
+ * svc_vc.c, Server side for Connection Oriented based RPC.
diff --git a/package/libtirpc/patches/patch-src_xdr_array_c b/package/libtirpc/patches/patch-src_xdr_array_c
new file mode 100644
index 000000000..dfa17d673
--- /dev/null
+++ b/package/libtirpc/patches/patch-src_xdr_array_c
@@ -0,0 +1,10 @@
+--- libtirpc-0.2.3.orig/src/xdr_array.c 2013-02-13 16:13:59.000000000 +0100
++++ libtirpc-0.2.3/src/xdr_array.c 2014-03-22 13:20:53.000000000 +0100
+@@ -27,7 +27,6 @@
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+-#include <sys/cdefs.h>
+
+ /*
+ * xdr_array.c, Generic XDR routines impelmentation.
diff --git a/package/libtirpc/patches/patch-src_xdr_c b/package/libtirpc/patches/patch-src_xdr_c
new file mode 100644
index 000000000..22211757b
--- /dev/null
+++ b/package/libtirpc/patches/patch-src_xdr_c
@@ -0,0 +1,10 @@
+--- libtirpc-0.2.3.orig/src/xdr.c 2013-02-13 16:13:59.000000000 +0100
++++ libtirpc-0.2.3/src/xdr.c 2014-03-22 13:20:53.000000000 +0100
+@@ -26,7 +26,6 @@
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+-#include <sys/cdefs.h>
+
+ /*
+ * xdr.c, Generic XDR routines implementation.
diff --git a/package/libtirpc/patches/patch-src_xdr_float_c b/package/libtirpc/patches/patch-src_xdr_float_c
new file mode 100644
index 000000000..db18981e1
--- /dev/null
+++ b/package/libtirpc/patches/patch-src_xdr_float_c
@@ -0,0 +1,10 @@
+--- libtirpc-0.2.3.orig/src/xdr_float.c 2013-02-13 16:13:59.000000000 +0100
++++ libtirpc-0.2.3/src/xdr_float.c 2014-03-22 13:20:53.000000000 +0100
+@@ -27,7 +27,6 @@
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+-#include <sys/cdefs.h>
+
+ /*
+ * xdr_float.c, Generic XDR routines implementation.
diff --git a/package/libtirpc/patches/patch-src_xdr_mem_c b/package/libtirpc/patches/patch-src_xdr_mem_c
new file mode 100644
index 000000000..670bba01e
--- /dev/null
+++ b/package/libtirpc/patches/patch-src_xdr_mem_c
@@ -0,0 +1,10 @@
+--- libtirpc-0.2.3.orig/src/xdr_mem.c 2013-02-13 16:13:59.000000000 +0100
++++ libtirpc-0.2.3/src/xdr_mem.c 2014-03-22 13:20:53.000000000 +0100
+@@ -26,7 +26,6 @@
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+-#include <sys/cdefs.h>
+
+ /*
+ * xdr_mem.h, XDR implementation using memory buffers.
diff --git a/package/libtirpc/patches/patch-src_xdr_rec_c b/package/libtirpc/patches/patch-src_xdr_rec_c
new file mode 100644
index 000000000..f4a2672d3
--- /dev/null
+++ b/package/libtirpc/patches/patch-src_xdr_rec_c
@@ -0,0 +1,11 @@
+--- libtirpc-0.2.3.orig/src/xdr_rec.c 2013-02-13 16:13:59.000000000 +0100
++++ libtirpc-0.2.3/src/xdr_rec.c 2014-03-22 13:20:53.000000000 +0100
+@@ -27,8 +27,6 @@
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+-#include <sys/cdefs.h>
+-#include <sys/cdefs.h>
+
+ /*
+ * xdr_rec.c, Implements TCP/IP based XDR streams with a "record marking"
diff --git a/package/libtirpc/patches/patch-src_xdr_reference_c b/package/libtirpc/patches/patch-src_xdr_reference_c
new file mode 100644
index 000000000..a0b284380
--- /dev/null
+++ b/package/libtirpc/patches/patch-src_xdr_reference_c
@@ -0,0 +1,11 @@
+--- libtirpc-0.2.3.orig/src/xdr_reference.c 2013-02-13 16:13:59.000000000 +0100
++++ libtirpc-0.2.3/src/xdr_reference.c 2014-03-22 13:20:53.000000000 +0100
+@@ -26,8 +26,6 @@
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+-#include <sys/cdefs.h>
+-#include <sys/cdefs.h>
+
+ /*
+ * xdr_reference.c, Generic XDR routines impelmentation.
diff --git a/package/libtirpc/patches/patch-src_xdr_sizeof_c b/package/libtirpc/patches/patch-src_xdr_sizeof_c
new file mode 100644
index 000000000..0246ffa7d
--- /dev/null
+++ b/package/libtirpc/patches/patch-src_xdr_sizeof_c
@@ -0,0 +1,10 @@
+--- libtirpc-0.2.3.orig/src/xdr_sizeof.c 2013-02-13 16:13:59.000000000 +0100
++++ libtirpc-0.2.3/src/xdr_sizeof.c 2014-03-22 13:20:53.000000000 +0100
+@@ -34,7 +34,6 @@
+ * when serialized using XDR.
+ */
+
+-#include <sys/cdefs.h>
+
+ #include "namespace.h"
+ #include <rpc/types.h>
diff --git a/package/libtirpc/patches/patch-src_xdr_stdio_c b/package/libtirpc/patches/patch-src_xdr_stdio_c
new file mode 100644
index 000000000..90dabf120
--- /dev/null
+++ b/package/libtirpc/patches/patch-src_xdr_stdio_c
@@ -0,0 +1,10 @@
+--- libtirpc-0.2.3.orig/src/xdr_stdio.c 2013-02-13 16:13:59.000000000 +0100
++++ libtirpc-0.2.3/src/xdr_stdio.c 2014-03-22 13:20:53.000000000 +0100
+@@ -26,7 +26,6 @@
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+-#include <sys/cdefs.h>
+
+ /*
+ * xdr_stdio.c, XDR implementation on standard i/o file.
diff --git a/package/libtirpc/patches/patch-tirpc_misc_event_h b/package/libtirpc/patches/patch-tirpc_misc_event_h
new file mode 100644
index 000000000..7fc07813f
--- /dev/null
+++ b/package/libtirpc/patches/patch-tirpc_misc_event_h
@@ -0,0 +1,24 @@
+--- libtirpc-0.2.3.orig/tirpc/misc/event.h 2013-02-13 16:13:59.000000000 +0100
++++ libtirpc-0.2.3/tirpc/misc/event.h 2014-03-22 13:20:52.000000000 +0100
+@@ -186,15 +186,18 @@ extern int kqueue_del_filteropts(int fil
+
+ #else /* !_KERNEL */
+
+-#include <sys/cdefs.h>
+ struct timespec;
+
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ int kqueue(void);
+ int kevent(int kq, const struct kevent *changelist, int nchanges,
+ struct kevent *eventlist, int nevents,
+ const struct timespec *timeout);
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+
+ #endif /* !_KERNEL */
+
diff --git a/package/libtirpc/patches/patch-tirpc_netconfig_h b/package/libtirpc/patches/patch-tirpc_netconfig_h
new file mode 100644
index 000000000..2f17d5fd4
--- /dev/null
+++ b/package/libtirpc/patches/patch-tirpc_netconfig_h
@@ -0,0 +1,23 @@
+--- libtirpc-0.2.3.orig/tirpc/netconfig.h 2013-02-13 16:13:59.000000000 +0100
++++ libtirpc-0.2.3/tirpc/netconfig.h 2014-03-22 13:20:52.000000000 +0100
+@@ -74,7 +74,9 @@ typedef struct {
+ #define NC_UDP "udp"
+ #define NC_ICMP "icmp"
+
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+
+ extern void *setnetconfig (void);
+ extern struct netconfig *getnetconfig (void *);
+@@ -89,6 +91,8 @@ extern int endnetpath (void *);
+ extern void nc_perror (const char *);
+ extern char *nc_sperror (void);
+
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+
+ #endif /* _NETCONFIG_H_ */
diff --git a/package/libtirpc/patches/patch-tirpc_rpc_auth_des_h b/package/libtirpc/patches/patch-tirpc_rpc_auth_des_h
new file mode 100644
index 000000000..c072f8871
--- /dev/null
+++ b/package/libtirpc/patches/patch-tirpc_rpc_auth_des_h
@@ -0,0 +1,32 @@
+--- libtirpc-0.2.3.orig/tirpc/rpc/auth_des.h 2013-02-13 16:13:59.000000000 +0100
++++ libtirpc-0.2.3/tirpc/rpc/auth_des.h 2014-03-22 13:20:52.000000000 +0100
+@@ -114,17 +114,25 @@ struct authdes_verf {
+ * Map a des credential into a unix cred.
+ *
+ */
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ extern int authdes_getucred( struct authdes_cred *, uid_t *, gid_t *, int *, gid_t * );
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ extern bool_t xdr_authdes_cred(XDR *, struct authdes_cred *);
+ extern bool_t xdr_authdes_verf(XDR *, struct authdes_verf *);
+ extern int rtime(dev_t, struct netbuf *, int, struct timeval *,
+ struct timeval *);
+ extern void kgetnetname(char *);
+ extern enum auth_stat _svcauth_des(struct svc_req *, struct rpc_msg *);
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+
+ #endif /* ndef _TI_AUTH_DES_ */
diff --git a/package/libtirpc/patches/patch-tirpc_rpc_auth_gss_h b/package/libtirpc/patches/patch-tirpc_rpc_auth_gss_h
new file mode 100644
index 000000000..2d1a07987
--- /dev/null
+++ b/package/libtirpc/patches/patch-tirpc_rpc_auth_gss_h
@@ -0,0 +1,53 @@
+--- libtirpc-0.2.3.orig/tirpc/rpc/auth_gss.h 2013-02-13 16:13:59.000000000 +0100
++++ libtirpc-0.2.3/tirpc/rpc/auth_gss.h 2014-03-22 13:20:52.000000000 +0100
+@@ -104,28 +104,32 @@ struct rpc_gss_init_res {
+ #define MAXSEQ 0x80000000
+
+ /* Prototypes. */
+-__BEGIN_DECLS
+-bool_t xdr_rpc_gss_cred __P((XDR *xdrs, struct rpc_gss_cred *p));
+-bool_t xdr_rpc_gss_init_args __P((XDR *xdrs, gss_buffer_desc *p));
+-bool_t xdr_rpc_gss_init_res __P((XDR *xdrs, struct rpc_gss_init_res *p));
+-bool_t xdr_rpc_gss_data __P((XDR *xdrs, xdrproc_t xdr_func,
++#ifdef __cplusplus
++extern "C" {
++#endif
++bool_t xdr_rpc_gss_cred (XDR *xdrs, struct rpc_gss_cred *p);
++bool_t xdr_rpc_gss_init_args (XDR *xdrs, gss_buffer_desc *p);
++bool_t xdr_rpc_gss_init_res (XDR *xdrs, struct rpc_gss_init_res *p);
++bool_t xdr_rpc_gss_data (XDR *xdrs, xdrproc_t xdr_func,
+ caddr_t xdr_ptr, gss_ctx_id_t ctx,
+ gss_qop_t qop, rpc_gss_svc_t svc,
+- u_int seq));
++ u_int seq);
+
+-AUTH *authgss_create __P((CLIENT *, gss_name_t,
+- struct rpc_gss_sec *));
+-AUTH *authgss_create_default __P((CLIENT *, char *, struct rpc_gss_sec *));
+-bool_t authgss_service __P((AUTH *auth, int svc));
+-bool_t authgss_get_private_data __P((AUTH *auth,
+- struct authgss_private_data *));
+-bool_t authgss_free_private_data __P((struct authgss_private_data *));
++AUTH *authgss_create (CLIENT *, gss_name_t,
++ struct rpc_gss_sec *);
++AUTH *authgss_create_default (CLIENT *, char *, struct rpc_gss_sec *);
++bool_t authgss_service (AUTH *auth, int svc);
++bool_t authgss_get_private_data (AUTH *auth,
++ struct authgss_private_data *);
++bool_t authgss_free_private_data (struct authgss_private_data *);
+
+-void gss_log_debug __P((const char *fmt, ...));
+-void gss_log_status __P((char *m, OM_uint32 major,
+- OM_uint32 minor));
+-void gss_log_hexdump __P((const u_char *buf, int len, int offset));
++void gss_log_debug (const char *fmt, ...);
++void gss_log_status (char *m, OM_uint32 major,
++ OM_uint32 minor);
++void gss_log_hexdump (const u_char *buf, int len, int offset);
+
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+
+ #endif /* !_TIRPC_AUTH_GSS_H */
diff --git a/package/libtirpc/patches/patch-tirpc_rpc_auth_h b/package/libtirpc/patches/patch-tirpc_rpc_auth_h
new file mode 100644
index 000000000..b000f85f7
--- /dev/null
+++ b/package/libtirpc/patches/patch-tirpc_rpc_auth_h
@@ -0,0 +1,192 @@
+--- libtirpc-0.2.3.orig/tirpc/rpc/auth.h 2013-02-13 16:13:59.000000000 +0100
++++ libtirpc-0.2.3/tirpc/rpc/auth.h 2014-03-22 13:20:52.000000000 +0100
+@@ -48,7 +48,6 @@
+
+ #include <rpc/xdr.h>
+ #include <rpc/clnt_stat.h>
+-#include <sys/cdefs.h>
+ #include <sys/socket.h>
+ #include <sys/types.h>
+ #include <stdio.h>
+@@ -165,9 +164,13 @@ union des_block {
+ char c[8];
+ };
+ typedef union des_block des_block;
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ extern bool_t xdr_des_block(XDR *, des_block *);
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+
+ /*
+ * Authentication info. Opaque to client.
+@@ -288,9 +291,13 @@ auth_put(AUTH *auth)
+ xfunc, xwhere))
+
+
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ extern struct opaque_auth _null_auth;
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+
+ /*
+ * Any style authentication. These routines can be used by any
+@@ -311,11 +318,15 @@ int authany_wrap(void), authany_unwrap(v
+ * int len;
+ * int *aup_gids;
+ */
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ extern AUTH *authunix_create(char *, uid_t, uid_t, int, uid_t *);
+ extern AUTH *authunix_create_default(void); /* takes no parameters */
+ extern AUTH *authnone_create(void); /* takes no parameters */
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+ /*
+ * DES style authentication
+ * AUTH *authsecdes_create(servername, window, timehost, ckey)
+@@ -324,15 +335,23 @@ __END_DECLS
+ * const char *timehost; - optional hostname to sync with
+ * des_block *ckey; - optional conversation key to use
+ */
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ extern AUTH *authdes_create (char *, u_int, struct sockaddr *, des_block *);
+ extern AUTH *authdes_seccreate (const char *, const u_int, const char *,
+ const des_block *);
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ extern bool_t xdr_opaque_auth (XDR *, struct opaque_auth *);
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+
+ #define authsys_create(c,i1,i2,i3,ip) authunix_create((c),(i1),(i2),(i3),(ip))
+ #define authsys_create_default() authunix_create_default()
+@@ -340,36 +359,48 @@ __END_DECLS
+ /*
+ * Netname manipulation routines.
+ */
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ extern int getnetname(char *);
+ extern int host2netname(char *, const char *, const char *);
+ extern int user2netname(char *, const uid_t, const char *);
+ extern int netname2user(char *, uid_t *, gid_t *, int *, gid_t *);
+ extern int netname2host(char *, char *, const int);
+ extern void passwd2des ( char *, char * );
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+
+ /*
+ *
+ * These routines interface to the keyserv daemon
+ *
+ */
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ extern int key_decryptsession(const char *, des_block *);
+ extern int key_encryptsession(const char *, des_block *);
+ extern int key_gendes(des_block *);
+ extern int key_setsecret(const char *);
+ extern int key_secretkey_is_set(void);
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+
+ /*
+ * Publickey routines.
+ */
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ extern int getpublickey (const char *, char *);
+ extern int getpublicandprivatekey (char *, char *);
+ extern int getsecretkey (char *, char *, char *);
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+
+ #ifdef KERBEROS
+ /*
+@@ -382,10 +413,14 @@ __END_DECLS
+ * const char *timehost; - optional hostname to sync with
+ * int *status; - kerberos status returned
+ */
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ extern AUTH *authkerb_seccreate(const char *, const char *, const char *,
+ const u_int, const char *, int *);
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+
+ /*
+ * Map a kerberos credential into a unix cred.
+@@ -398,19 +433,27 @@ __END_DECLS
+ * int *groups;
+ *
+ */
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ extern int authkerb_getucred(/* struct svc_req *, uid_t *, gid_t *,
+ short *, int * */);
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+ #endif /* KERBEROS */
+
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ struct svc_req;
+ struct rpc_msg;
+ enum auth_stat _svcauth_none (struct svc_req *, struct rpc_msg *);
+ enum auth_stat _svcauth_short (struct svc_req *, struct rpc_msg *);
+ enum auth_stat _svcauth_unix (struct svc_req *, struct rpc_msg *);
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+
+ #define AUTH_NONE 0 /* no authentication */
+ #define AUTH_NULL 0 /* backward compatibility */
diff --git a/package/libtirpc/patches/patch-tirpc_rpc_auth_unix_h b/package/libtirpc/patches/patch-tirpc_rpc_auth_unix_h
new file mode 100644
index 000000000..a0c70ece5
--- /dev/null
+++ b/package/libtirpc/patches/patch-tirpc_rpc_auth_unix_h
@@ -0,0 +1,26 @@
+--- libtirpc-0.2.3.orig/tirpc/rpc/auth_unix.h 2013-02-13 16:13:59.000000000 +0100
++++ libtirpc-0.2.3/tirpc/rpc/auth_unix.h 2014-03-22 13:20:52.000000000 +0100
+@@ -45,7 +45,6 @@
+
+ #ifndef _TIRPC_AUTH_UNIX_H
+ #define _TIRPC_AUTH_UNIX_H
+-#include <sys/cdefs.h>
+
+ /* The machine name is part of a credential; it may not exceed 255 bytes */
+ #define MAX_MACHINE_NAME 255
+@@ -67,9 +66,13 @@ struct authunix_parms {
+
+ #define authsys_parms authunix_parms
+
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ extern bool_t xdr_authunix_parms(XDR *, struct authunix_parms *);
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+
+ /*
+ * If a response verifier has flavor AUTH_SHORT,
diff --git a/package/libtirpc/patches/patch-tirpc_rpc_clnt_h b/package/libtirpc/patches/patch-tirpc_rpc_clnt_h
new file mode 100644
index 000000000..ddd1f73ae
--- /dev/null
+++ b/package/libtirpc/patches/patch-tirpc_rpc_clnt_h
@@ -0,0 +1,132 @@
+--- libtirpc-0.2.3.orig/tirpc/rpc/clnt.h 2013-02-13 16:13:59.000000000 +0100
++++ libtirpc-0.2.3/tirpc/rpc/clnt.h 2014-03-22 13:20:52.000000000 +0100
+@@ -42,7 +42,6 @@
+ #include <rpc/clnt_stat.h>
+ #include <rpc/auth.h>
+
+-#include <sys/cdefs.h>
+ #include <netconfig.h>
+ #include <sys/un.h>
+
+@@ -267,7 +266,9 @@ struct rpc_timers {
+ * Generic client creation routine. Supported protocols are those that
+ * belong to the nettype namespace (/etc/netconfig).
+ */
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ extern CLIENT *clnt_create(const char *, const rpcprog_t, const rpcvers_t,
+ const char *);
+ /*
+@@ -414,32 +415,46 @@ extern CLIENT *clnt_dg_create(const int,
+ */
+ extern CLIENT *clnt_raw_create(rpcprog_t, rpcvers_t);
+
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+
+
+ /*
+ * Print why creation failed
+ */
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ extern void clnt_pcreateerror(const char *); /* stderr */
+ extern char *clnt_spcreateerror(const char *); /* string */
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+
+ /*
+ * Like clnt_perror(), but is more verbose in its output
+ */
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ extern void clnt_perrno(enum clnt_stat); /* stderr */
+ extern char *clnt_sperrno(enum clnt_stat); /* string */
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+
+ /*
+ * Print an English error message, given the client error code
+ */
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ extern void clnt_perror(CLIENT *, const char *); /* stderr */
+ extern char *clnt_sperror(CLIENT *, const char *); /* string */
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+
+
+ /*
+@@ -450,9 +465,13 @@ struct rpc_createerr {
+ struct rpc_err cf_error; /* useful when cf_stat == RPC_PMAPFAILURE */
+ };
+
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ extern struct rpc_createerr *__rpc_createerr(void);
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+ #define get_rpc_createerr() (*(__rpc_createerr()))
+ #define rpc_createerr (*(__rpc_createerr()))
+
+@@ -469,12 +488,16 @@ __END_DECLS
+ * char *out;
+ * const char *nettype;
+ */
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ extern enum clnt_stat rpc_call(const char *, const rpcprog_t,
+ const rpcvers_t, const rpcproc_t,
+ const xdrproc_t, const char *,
+ const xdrproc_t, char *, const char *);
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+
+ /*
+ * RPC broadcast interface
+@@ -522,7 +545,9 @@ __END_DECLS
+
+ typedef bool_t (*resultproc_t)(caddr_t, ...);
+
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ extern enum clnt_stat rpc_broadcast(const rpcprog_t, const rpcvers_t,
+ const rpcproc_t, const xdrproc_t,
+ caddr_t, const xdrproc_t, caddr_t,
+@@ -532,7 +557,9 @@ extern enum clnt_stat rpc_broadcast_exp(
+ caddr_t, const xdrproc_t, caddr_t,
+ const resultproc_t, const int,
+ const int, const char *);
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+
+ /* For backward compatibility */
+ #include <rpc/clnt_soc.h>
diff --git a/package/libtirpc/patches/patch-tirpc_rpc_clnt_soc_h b/package/libtirpc/patches/patch-tirpc_rpc_clnt_soc_h
new file mode 100644
index 000000000..3112aeee5
--- /dev/null
+++ b/package/libtirpc/patches/patch-tirpc_rpc_clnt_soc_h
@@ -0,0 +1,78 @@
+--- libtirpc-0.2.3.orig/tirpc/rpc/clnt_soc.h 2013-02-13 16:13:59.000000000 +0100
++++ libtirpc-0.2.3/tirpc/rpc/clnt_soc.h 2014-03-22 13:20:52.000000000 +0100
+@@ -46,7 +46,6 @@
+ * with TS-RPC.
+ */
+
+-#include <sys/cdefs.h>
+
+ #define UDPMSGSIZE 8800 /* rpc imposed limit on udp msg size */
+
+@@ -61,27 +60,39 @@
+ * u_int sendsz;
+ * u_int recvsz;
+ */
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ extern CLIENT *clnttcp_create(struct sockaddr_in *, u_long, u_long, int *,
+ u_int, u_int);
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+
+ /*
+ * Raw (memory) rpc.
+ */
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ extern CLIENT *clntraw_create(u_long, u_long);
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+
+
+ /*
+ IPv6 socket version
+ */
+ #ifdef INET6
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ extern CLIENT *clnttcp6_create(struct sockaddr_in6 *, u_long, u_long, int *,
+ u_int, u_int);
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+ #endif
+
+ /*
+@@ -105,7 +116,9 @@ __END_DECLS
+ * u_int sendsz;
+ * u_int recvsz;
+ */
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ extern CLIENT *clntudp_create(struct sockaddr_in *, u_long, u_long,
+ struct timeval, int *);
+ extern CLIENT *clntudp_bufcreate(struct sockaddr_in *, u_long, u_long,
+@@ -116,7 +129,9 @@ extern CLIENT *clntudp6_create(struct so
+ extern CLIENT *clntudp6_bufcreate(struct sockaddr_in6 *, u_long, u_long,
+ struct timeval, int *, u_int, u_int);
+ #endif
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+
+
+ #endif /* _RPC_CLNT_SOC_H */
diff --git a/package/libtirpc/patches/patch-tirpc_rpc_des_crypt_h b/package/libtirpc/patches/patch-tirpc_rpc_des_crypt_h
new file mode 100644
index 000000000..d55657f95
--- /dev/null
+++ b/package/libtirpc/patches/patch-tirpc_rpc_des_crypt_h
@@ -0,0 +1,52 @@
+--- libtirpc-0.2.3.orig/tirpc/rpc/des_crypt.h 2013-02-13 16:13:59.000000000 +0100
++++ libtirpc-0.2.3/tirpc/rpc/des_crypt.h 2014-03-22 13:20:52.000000000 +0100
+@@ -43,7 +43,6 @@
+ #ifndef _DES_DES_CRYPT_H
+ #define _DES_DES_CRYPT_H
+
+-#include <sys/cdefs.h>
+ #include <rpc/rpc.h>
+
+ #define DES_MAXDATA 8192 /* max bytes encrypted in one call */
+@@ -83,23 +82,35 @@
+ /*
+ * Cipher Block Chaining mode
+ */
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ int cbc_crypt( char *, char *, unsigned int, unsigned int, char *);
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+
+ /*
+ * Electronic Code Book mode
+ */
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ int ecb_crypt( char *, char *, unsigned int, unsigned int );
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+
+ /*
+ * Set des parity for a key.
+ * DES parity is odd and in the low bit of each byte
+ */
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ void des_setparity( char *);
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+
+ #endif /* _DES_DES_CRYPT_H */
diff --git a/package/libtirpc/patches/patch-tirpc_rpc_nettype_h b/package/libtirpc/patches/patch-tirpc_rpc_nettype_h
new file mode 100644
index 000000000..60759caad
--- /dev/null
+++ b/package/libtirpc/patches/patch-tirpc_rpc_nettype_h
@@ -0,0 +1,20 @@
+--- libtirpc-0.2.3.orig/tirpc/rpc/nettype.h 2013-02-13 16:13:59.000000000 +0100
++++ libtirpc-0.2.3/tirpc/rpc/nettype.h 2014-03-22 13:20:52.000000000 +0100
+@@ -53,11 +53,15 @@
+ #define _RPC_TCP 7
+ #define _RPC_UDP 8
+
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ extern void *__rpc_setconf(const char *);
+ extern void __rpc_endconf(void *);
+ extern struct netconfig *__rpc_getconf(void *);
+ extern struct netconfig *__rpc_getconfip(const char *);
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+
+ #endif /* !_TIRPC_NETTYPE_H */
diff --git a/package/libtirpc/patches/patch-tirpc_rpc_pmap_clnt_h b/package/libtirpc/patches/patch-tirpc_rpc_pmap_clnt_h
new file mode 100644
index 000000000..7fda59939
--- /dev/null
+++ b/package/libtirpc/patches/patch-tirpc_rpc_pmap_clnt_h
@@ -0,0 +1,25 @@
+--- libtirpc-0.2.3.orig/tirpc/rpc/pmap_clnt.h 2013-02-13 16:13:59.000000000 +0100
++++ libtirpc-0.2.3/tirpc/rpc/pmap_clnt.h 2014-03-22 13:20:52.000000000 +0100
+@@ -63,9 +63,10 @@
+
+ #ifndef _RPC_PMAP_CLNT_H_
+ #define _RPC_PMAP_CLNT_H_
+-#include <sys/cdefs.h>
+
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ extern bool_t pmap_set(u_long, u_long, int, int);
+ extern bool_t pmap_unset(u_long, u_long);
+ extern struct pmaplist *pmap_getmaps(struct sockaddr_in *);
+@@ -80,6 +81,8 @@ extern enum clnt_stat clnt_broadcast(u_l
+ resultproc_t);
+ extern u_short pmap_getport(struct sockaddr_in *,
+ u_long, u_long, u_int);
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+
+ #endif /* !_RPC_PMAP_CLNT_H_ */
diff --git a/package/libtirpc/patches/patch-tirpc_rpc_pmap_prot_h b/package/libtirpc/patches/patch-tirpc_rpc_pmap_prot_h
new file mode 100644
index 000000000..891991b98
--- /dev/null
+++ b/package/libtirpc/patches/patch-tirpc_rpc_pmap_prot_h
@@ -0,0 +1,27 @@
+--- libtirpc-0.2.3.orig/tirpc/rpc/pmap_prot.h 2013-02-13 16:13:59.000000000 +0100
++++ libtirpc-0.2.3/tirpc/rpc/pmap_prot.h 2014-03-22 13:20:52.000000000 +0100
+@@ -71,7 +71,6 @@
+
+ #ifndef _RPC_PMAP_PROT_H
+ #define _RPC_PMAP_PROT_H
+-#include <sys/cdefs.h>
+
+ #define PMAPPORT ((u_short)111)
+ #define PMAPPROG ((u_long)100000)
+@@ -97,10 +96,14 @@ struct pmaplist {
+ struct pmaplist *pml_next;
+ };
+
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ extern bool_t xdr_pmap(XDR *, struct pmap *);
+ extern bool_t xdr_pmaplist(XDR *, struct pmaplist **);
+ extern bool_t xdr_pmaplist_ptr(XDR *, struct pmaplist *);
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+
+ #endif /* !_RPC_PMAP_PROT_H */
diff --git a/package/libtirpc/patches/patch-tirpc_rpc_pmap_rmt_h b/package/libtirpc/patches/patch-tirpc_rpc_pmap_rmt_h
new file mode 100644
index 000000000..98a494105
--- /dev/null
+++ b/package/libtirpc/patches/patch-tirpc_rpc_pmap_rmt_h
@@ -0,0 +1,26 @@
+--- libtirpc-0.2.3.orig/tirpc/rpc/pmap_rmt.h 2013-02-13 16:13:59.000000000 +0100
++++ libtirpc-0.2.3/tirpc/rpc/pmap_rmt.h 2014-03-22 13:20:52.000000000 +0100
+@@ -41,7 +41,6 @@
+
+ #ifndef _RPC_PMAP_RMT_H
+ #define _RPC_PMAP_RMT_H
+-#include <sys/cdefs.h>
+
+ struct rmtcallargs {
+ u_long prog, vers, proc, arglen;
+@@ -56,9 +55,13 @@ struct rmtcallres {
+ xdrproc_t xdr_results;
+ };
+
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ extern bool_t xdr_rmtcall_args(XDR *, struct rmtcallargs *);
+ extern bool_t xdr_rmtcallres(XDR *, struct rmtcallres *);
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+
+ #endif /* !_RPC_PMAP_RMT_H */
diff --git a/package/libtirpc/patches/patch-tirpc_rpc_rpc_com_h b/package/libtirpc/patches/patch-tirpc_rpc_rpc_com_h
new file mode 100644
index 000000000..59f0283d3
--- /dev/null
+++ b/package/libtirpc/patches/patch-tirpc_rpc_rpc_com_h
@@ -0,0 +1,31 @@
+--- libtirpc-0.2.3.orig/tirpc/rpc/rpc_com.h 2013-02-13 16:13:59.000000000 +0100
++++ libtirpc-0.2.3/tirpc/rpc/rpc_com.h 2014-03-22 13:20:52.000000000 +0100
+@@ -41,7 +41,6 @@
+ #ifndef _RPC_RPCCOM_H
+ #define _RPC_RPCCOM_H
+
+-#include <sys/cdefs.h>
+
+ /* #pragma ident "@(#)rpc_com.h 1.11 93/07/05 SMI" */
+
+@@ -55,7 +54,9 @@
+ #define __RPC_GETXID(now) ((u_int32_t)getpid() ^ (u_int32_t)(now)->tv_sec ^ \
+ (u_int32_t)(now)->tv_usec)
+
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ extern u_int __rpc_get_a_size(int);
+ extern int __rpc_dtbsize(void);
+ extern int _rpc_dtablesize(void);
+@@ -77,6 +78,8 @@ bool_t rpc_control(int,void *);
+
+ char *_get_next_token(char *, int);
+
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+
+ #endif /* _RPC_RPCCOM_H */
diff --git a/package/libtirpc/patches/patch-tirpc_rpc_rpc_h b/package/libtirpc/patches/patch-tirpc_rpc_rpc_h
new file mode 100644
index 000000000..7e1f000a2
--- /dev/null
+++ b/package/libtirpc/patches/patch-tirpc_rpc_rpc_h
@@ -0,0 +1,44 @@
+--- libtirpc-0.2.3.orig/tirpc/rpc/rpc.h 2013-02-13 16:13:59.000000000 +0100
++++ libtirpc-0.2.3/tirpc/rpc/rpc.h 2014-03-22 13:20:52.000000000 +0100
+@@ -79,9 +79,11 @@
+ #define UDPMSGSIZE 8800
+ #endif
+
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ extern int get_myaddress(struct sockaddr_in *);
+-extern int bindresvport(int, struct sockaddr_in *) __THROW;
++extern int bindresvport(int, struct sockaddr_in *);
+ extern int registerrpc(int, int, int, char *(*)(char [UDPMSGSIZE]),
+ xdrproc_t, xdrproc_t);
+ extern int callrpc(const char *, int, int, int, xdrproc_t, void *,
+@@ -93,18 +95,24 @@ struct netbuf *uaddr2taddr(const struct
+
+ struct sockaddr;
+ extern int bindresvport_sa(int, struct sockaddr *);
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+
+ /*
+ * The following are not exported interfaces, they are for internal library
+ * and rpcbind use only. Do not use, they may change without notice.
+ */
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ int __rpc_nconf2fd(const struct netconfig *);
+ int __rpc_nconf2fd_flags(const struct netconfig *, int);
+ int __rpc_nconf2sockinfo(const struct netconfig *, struct __rpc_sockinfo *);
+ int __rpc_fd2sockinfo(int, struct __rpc_sockinfo *);
+ u_int __rpc_get_t_size(int, int, int);
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+
+ #endif /* !_RPC_RPC_H */
diff --git a/package/libtirpc/patches/patch-tirpc_rpc_rpc_msg_h b/package/libtirpc/patches/patch-tirpc_rpc_rpc_msg_h
new file mode 100644
index 000000000..caee024d8
--- /dev/null
+++ b/package/libtirpc/patches/patch-tirpc_rpc_rpc_msg_h
@@ -0,0 +1,23 @@
+--- libtirpc-0.2.3.orig/tirpc/rpc/rpc_msg.h 2013-02-13 16:13:59.000000000 +0100
++++ libtirpc-0.2.3/tirpc/rpc/rpc_msg.h 2014-03-22 13:20:52.000000000 +0100
+@@ -161,7 +161,9 @@ struct rpc_msg {
+ #define acpted_rply ru.RM_rmb.ru.RP_ar
+ #define rjcted_rply ru.RM_rmb.ru.RP_dr
+
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ /*
+ * XDR routine to handle a rpc message.
+ * xdr_callmsg(xdrs, cmsg)
+@@ -210,6 +212,8 @@ extern bool_t xdr_rejected_reply(XDR *,
+ * struct rpc_err *error;
+ */
+ extern void _seterr_reply(struct rpc_msg *, struct rpc_err *);
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+
+ #endif /* !_TIRPC_RPC_MSG_H */
diff --git a/package/libtirpc/patches/patch-tirpc_rpc_rpcb_clnt_h b/package/libtirpc/patches/patch-tirpc_rpc_rpcb_clnt_h
new file mode 100644
index 000000000..b0bc44ae6
--- /dev/null
+++ b/package/libtirpc/patches/patch-tirpc_rpc_rpcb_clnt_h
@@ -0,0 +1,23 @@
+--- libtirpc-0.2.3.orig/tirpc/rpc/rpcb_clnt.h 2013-02-13 16:13:59.000000000 +0100
++++ libtirpc-0.2.3/tirpc/rpc/rpcb_clnt.h 2014-03-22 13:20:52.000000000 +0100
+@@ -59,7 +59,9 @@
+
+ #include <rpc/types.h>
+ #include <rpc/rpcb_prot.h>
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ extern bool_t rpcb_set(const rpcprog_t, const rpcvers_t,
+ const struct netconfig *, const struct netbuf *);
+ extern bool_t rpcb_unset(const rpcprog_t, const rpcvers_t,
+@@ -78,6 +80,8 @@ extern bool_t rpcb_getaddr(const rpcprog
+ extern bool_t rpcb_gettime(const char *, time_t *);
+ extern char *rpcb_taddr2uaddr(struct netconfig *, struct netbuf *);
+ extern struct netbuf *rpcb_uaddr2taddr(struct netconfig *, char *);
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+
+ #endif /* !_RPC_RPCB_CLNT_H */
diff --git a/package/libtirpc/patches/patch-tirpc_rpc_rpcent_h b/package/libtirpc/patches/patch-tirpc_rpc_rpcent_h
new file mode 100644
index 000000000..badea8121
--- /dev/null
+++ b/package/libtirpc/patches/patch-tirpc_rpc_rpcent_h
@@ -0,0 +1,31 @@
+--- libtirpc-0.2.3.orig/tirpc/rpc/rpcent.h 2013-02-13 16:13:59.000000000 +0100
++++ libtirpc-0.2.3/tirpc/rpc/rpcent.h 2014-03-22 14:22:44.000000000 +0100
+@@ -44,10 +44,12 @@
+ /* #pragma ident "@(#)rpcent.h 1.13 94/04/25 SMI" */
+ /* @(#)rpcent.h 1.1 88/12/06 SMI */
+
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+
+ /* These are defined in /usr/include/rpc/netdb.h */
+-#if 0
++#if !defined(__GLIBC__)
+ struct rpcent {
+ char *r_name; /* name of server for this rpc program */
+ char **r_aliases; /* alias list */
+@@ -60,8 +62,10 @@ extern struct rpcent *getrpcbynumber(int
+ extern struct rpcent *getrpcent(void);
+ #endif
+
+-extern void setrpcent(int) __THROW;
+-extern void endrpcent(void) __THROW;
+-__END_DECLS
++extern void setrpcent(int);
++extern void endrpcent(void);
++#ifdef __cplusplus
++}
++#endif
+
+ #endif /* !_RPC_CENT_H */
diff --git a/package/libtirpc/patches/patch-tirpc_rpc_svc_auth_h b/package/libtirpc/patches/patch-tirpc_rpc_svc_auth_h
new file mode 100644
index 000000000..1abf29cde
--- /dev/null
+++ b/package/libtirpc/patches/patch-tirpc_rpc_svc_auth_h
@@ -0,0 +1,20 @@
+--- libtirpc-0.2.3.orig/tirpc/rpc/svc_auth.h 2013-02-13 16:13:59.000000000 +0100
++++ libtirpc-0.2.3/tirpc/rpc/svc_auth.h 2014-03-22 13:20:52.000000000 +0100
+@@ -65,11 +65,15 @@ typedef struct SVCAUTH {
+ /*
+ * Server side authenticator
+ */
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ extern enum auth_stat _authenticate(struct svc_req *, struct rpc_msg *);
+ extern int svc_auth_reg(int, enum auth_stat (*)(struct svc_req *,
+ struct rpc_msg *));
+
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+
+ #endif /* !_RPC_SVC_AUTH_H */
diff --git a/package/libtirpc/patches/patch-tirpc_rpc_svc_h b/package/libtirpc/patches/patch-tirpc_rpc_svc_h
new file mode 100644
index 000000000..fcaf5b172
--- /dev/null
+++ b/package/libtirpc/patches/patch-tirpc_rpc_svc_h
@@ -0,0 +1,152 @@
+--- libtirpc-0.2.3.orig/tirpc/rpc/svc.h 2013-02-13 16:13:59.000000000 +0100
++++ libtirpc-0.2.3/tirpc/rpc/svc.h 2014-03-22 13:20:52.000000000 +0100
+@@ -40,7 +40,6 @@
+
+ #ifndef _TIRPC_SVC_H
+ #define _TIRPC_SVC_H
+-#include <sys/cdefs.h>
+
+ /*
+ * This interface must manage two items concerning remote procedure calling:
+@@ -200,11 +199,15 @@ struct svc_req {
+ * const struct netconfig *nconf;
+ */
+
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ extern bool_t svc_reg(SVCXPRT *, const rpcprog_t, const rpcvers_t,
+ void (*)(struct svc_req *, SVCXPRT *),
+ const struct netconfig *);
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+
+ /*
+ * Service un-registration
+@@ -214,9 +217,13 @@ __END_DECLS
+ * const rpcvers_t vers;
+ */
+
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ extern void svc_unreg(const rpcprog_t, const rpcvers_t);
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+
+ /*
+ * Transport registration.
+@@ -224,9 +231,13 @@ __END_DECLS
+ * xprt_register(xprt)
+ * SVCXPRT *xprt;
+ */
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ extern void xprt_register(SVCXPRT *);
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+
+ /*
+ * Transport un-register
+@@ -234,9 +245,13 @@ __END_DECLS
+ * xprt_unregister(xprt)
+ * SVCXPRT *xprt;
+ */
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ extern void xprt_unregister(SVCXPRT *);
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+
+
+ /*
+@@ -265,7 +280,9 @@ __END_DECLS
+ * deadlock the caller and server processes!
+ */
+
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ extern bool_t svc_sendreply(SVCXPRT *, xdrproc_t, void *);
+ extern void svcerr_decode(SVCXPRT *);
+ extern void svcerr_weakauth(SVCXPRT *);
+@@ -277,7 +294,9 @@ extern void svcerr_systemerr(SVCXPRT *);
+ extern int rpc_reg(rpcprog_t, rpcvers_t, rpcproc_t,
+ char *(*)(char *), xdrproc_t, xdrproc_t,
+ char *);
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+
+ /*
+ * Lowest level dispatching -OR- who owns this process anyway.
+@@ -306,11 +325,17 @@ extern int svc_fds;
+ * a small program implemented by the svc_rpc implementation itself;
+ * also see clnt.h for protocol numbers.
+ */
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ extern void rpctest_service(void);
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ extern void svc_getreq(int);
+ extern void svc_getreqset(fd_set *);
+ extern void svc_getreq_common(int);
+@@ -319,7 +344,9 @@ extern void svc_getreq_poll(struct pollf
+
+ extern void svc_run(void);
+ extern void svc_exit(void);
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+
+ /*
+ * Socket to use on svcxxx_create call to get default socket
+@@ -331,7 +358,9 @@ __END_DECLS
+ * These are the existing service side transport implementations
+ */
+
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ /*
+ * Transport independent svc_create routine.
+ */
+@@ -427,7 +456,9 @@ int svc_dg_enablecache(SVCXPRT *, const
+
+ int __rpc_get_local_uid(SVCXPRT *_transp, uid_t *_uid);
+
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+
+
+ /* for backward compatibility */
diff --git a/package/libtirpc/patches/patch-tirpc_rpc_svc_soc_h b/package/libtirpc/patches/patch-tirpc_rpc_svc_soc_h
new file mode 100644
index 000000000..9f7c22259
--- /dev/null
+++ b/package/libtirpc/patches/patch-tirpc_rpc_svc_soc_h
@@ -0,0 +1,102 @@
+--- libtirpc-0.2.3.orig/tirpc/rpc/svc_soc.h 2013-02-13 16:13:59.000000000 +0100
++++ libtirpc-0.2.3/tirpc/rpc/svc_soc.h 2014-03-22 13:20:52.000000000 +0100
+@@ -38,7 +38,6 @@
+
+ #ifndef _RPC_SVC_SOC_H
+ #define _RPC_SVC_SOC_H
+-#include <sys/cdefs.h>
+
+ /* #pragma ident "@(#)svc_soc.h 1.11 94/04/25 SMI" */
+ /* svc_soc.h 1.8 89/05/01 SMI */
+@@ -64,10 +63,14 @@
+ * void (*dispatch)();
+ * int protocol; like TCP or UDP, zero means do not register
+ */
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ extern bool_t svc_register(SVCXPRT *, u_long, u_long,
+ void (*)(struct svc_req *, SVCXPRT *), int);
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+
+ /*
+ * Service un-registration
+@@ -76,44 +79,64 @@ __END_DECLS
+ * u_long prog;
+ * u_long vers;
+ */
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ extern void svc_unregister(u_long, u_long);
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+
+
+ /*
+ * Memory based rpc for testing and timing.
+ */
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ extern SVCXPRT *svcraw_create(void);
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+
+
+ /*
+ * Udp based rpc.
+ */
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ extern SVCXPRT *svcudp_create(int);
+ extern SVCXPRT *svcudp_bufcreate(int, u_int, u_int);
+ extern int svcudp_enablecache(SVCXPRT *, u_long);
+ extern SVCXPRT *svcudp6_create(int);
+ extern SVCXPRT *svcudp6_bufcreate(int, u_int, u_int);
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+
+
+ /*
+ * Tcp based rpc.
+ */
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ extern SVCXPRT *svctcp_create(int, u_int, u_int);
+ extern SVCXPRT *svctcp6_create(int, u_int, u_int);
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+
+ /*
+ * Fd based rpc.
+ */
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ extern SVCXPRT *svcfd_create(int, u_int, u_int);
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+
+ #endif /* !_RPC_SVC_SOC_H */
diff --git a/package/libtirpc/patches/patch-tirpc_rpc_xdr_h b/package/libtirpc/patches/patch-tirpc_rpc_xdr_h
new file mode 100644
index 000000000..0f43e3702
--- /dev/null
+++ b/package/libtirpc/patches/patch-tirpc_rpc_xdr_h
@@ -0,0 +1,53 @@
+--- libtirpc-0.2.3.orig/tirpc/rpc/xdr.h 2013-02-13 16:13:59.000000000 +0100
++++ libtirpc-0.2.3/tirpc/rpc/xdr.h 2014-03-22 13:20:52.000000000 +0100
+@@ -40,7 +40,6 @@
+
+ #ifndef _TIRPC_XDR_H
+ #define _TIRPC_XDR_H
+-#include <sys/cdefs.h>
+ #include <stdio.h>
+ #include <netinet/in.h>
+
+@@ -287,7 +286,9 @@ struct xdr_discrim {
+ /*
+ * These are the "generic" xdr routines.
+ */
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ extern bool_t xdr_void(void);
+ extern bool_t xdr_int(XDR *, int *);
+ extern bool_t xdr_u_int(XDR *, u_int *);
+@@ -322,7 +323,9 @@ extern bool_t xdr_hyper(XDR *, quad_t *)
+ extern bool_t xdr_u_hyper(XDR *, u_quad_t *);
+ extern bool_t xdr_longlong_t(XDR *, quad_t *);
+ extern bool_t xdr_u_longlong_t(XDR *, u_quad_t *);
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+
+ /*
+ * Common opaque bytes objects used by many rpc protocols;
+@@ -340,7 +343,9 @@ extern bool_t xdr_netobj(XDR *, struct
+ * These are the public routines for the various implementations of
+ * xdr streams.
+ */
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ /* XDR using memory buffers */
+ extern void xdrmem_create(XDR *, char *, u_int, enum xdr_op);
+
+@@ -361,6 +366,8 @@ extern bool_t xdrrec_skiprecord(XDR *);
+ /* true if no more input */
+ extern bool_t xdrrec_eof(XDR *);
+ extern u_int xdrrec_readbytes(XDR *, caddr_t, u_int);
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+
+ #endif /* !_TIRPC_XDR_H */
diff --git a/package/libtirpc/patches/patch-tirpc_rpcsvc_crypt_x b/package/libtirpc/patches/patch-tirpc_rpcsvc_crypt_x
new file mode 100644
index 000000000..872800b1d
--- /dev/null
+++ b/package/libtirpc/patches/patch-tirpc_rpcsvc_crypt_x
@@ -0,0 +1,12 @@
+--- libtirpc-0.2.3.orig/tirpc/rpcsvc/crypt.x 2013-02-13 16:13:59.000000000 +0100
++++ libtirpc-0.2.3/tirpc/rpcsvc/crypt.x 2014-03-22 13:20:52.000000000 +0100
+@@ -31,8 +31,7 @@
+ */
+
+ #ifndef RPC_HDR
+-%#include <sys/cdefs.h>
+-%__FBSDID("$FreeBSD: src/include/rpcsvc/crypt.x,v 1.5 2003/05/04 02:51:42 obrien Exp $");
++%%__FBSDID("$FreeBSD: src/include/rpcsvc/crypt.x,v 1.5 2003/05/04 02:51:42 obrien Exp $");
+ #endif
+
+ /*
diff --git a/package/libtirpc/src/src/queue.h b/package/libtirpc/src/src/queue.h
new file mode 100644
index 000000000..daf4553d3
--- /dev/null
+++ b/package/libtirpc/src/src/queue.h
@@ -0,0 +1,574 @@
+/*
+ * Copyright (c) 1991, 1993
+ * The Regents of the University of California. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the University nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ * @(#)queue.h 8.5 (Berkeley) 8/20/94
+ */
+
+#ifndef _SYS_QUEUE_H_
+#define _SYS_QUEUE_H_
+
+/*
+ * This file defines five types of data structures: singly-linked lists,
+ * lists, simple queues, tail queues, and circular queues.
+ *
+ * A singly-linked list is headed by a single forward pointer. The
+ * elements are singly linked for minimum space and pointer manipulation
+ * overhead at the expense of O(n) removal for arbitrary elements. New
+ * elements can be added to the list after an existing element or at the
+ * head of the list. Elements being removed from the head of the list
+ * should use the explicit macro for this purpose for optimum
+ * efficiency. A singly-linked list may only be traversed in the forward
+ * direction. Singly-linked lists are ideal for applications with large
+ * datasets and few or no removals or for implementing a LIFO queue.
+ *
+ * A list is headed by a single forward pointer (or an array of forward
+ * pointers for a hash table header). The elements are doubly linked
+ * so that an arbitrary element can be removed without a need to
+ * traverse the list. New elements can be added to the list before
+ * or after an existing element or at the head of the list. A list
+ * may only be traversed in the forward direction.
+ *
+ * A simple queue is headed by a pair of pointers, one the head of the
+ * list and the other to the tail of the list. The elements are singly
+ * linked to save space, so elements can only be removed from the
+ * head of the list. New elements can be added to the list after
+ * an existing element, at the head of the list, or at the end of the
+ * list. A simple queue may only be traversed in the forward direction.
+ *
+ * A tail queue is headed by a pair of pointers, one to the head of the
+ * list and the other to the tail of the list. The elements are doubly
+ * linked so that an arbitrary element can be removed without a need to
+ * traverse the list. New elements can be added to the list before or
+ * after an existing element, at the head of the list, or at the end of
+ * the list. A tail queue may be traversed in either direction.
+ *
+ * A circle queue is headed by a pair of pointers, one to the head of the
+ * list and the other to the tail of the list. The elements are doubly
+ * linked so that an arbitrary element can be removed without a need to
+ * traverse the list. New elements can be added to the list before or after
+ * an existing element, at the head of the list, or at the end of the list.
+ * A circle queue may be traversed in either direction, but has a more
+ * complex end of list detection.
+ *
+ * For details on the use of these macros, see the queue(3) manual page.
+ */
+
+/*
+ * List definitions.
+ */
+#define LIST_HEAD(name, type) \
+struct name { \
+ struct type *lh_first; /* first element */ \
+}
+
+#define LIST_HEAD_INITIALIZER(head) \
+ { NULL }
+
+#define LIST_ENTRY(type) \
+struct { \
+ struct type *le_next; /* next element */ \
+ struct type **le_prev; /* address of previous next element */ \
+}
+
+/*
+ * List functions.
+ */
+#define LIST_INIT(head) do { \
+ (head)->lh_first = NULL; \
+} while (/*CONSTCOND*/0)
+
+#define LIST_INSERT_AFTER(listelm, elm, field) do { \
+ if (((elm)->field.le_next = (listelm)->field.le_next) != NULL) \
+ (listelm)->field.le_next->field.le_prev = \
+ &(elm)->field.le_next; \
+ (listelm)->field.le_next = (elm); \
+ (elm)->field.le_prev = &(listelm)->field.le_next; \
+} while (/*CONSTCOND*/0)
+
+#define LIST_INSERT_BEFORE(listelm, elm, field) do { \
+ (elm)->field.le_prev = (listelm)->field.le_prev; \
+ (elm)->field.le_next = (listelm); \
+ *(listelm)->field.le_prev = (elm); \
+ (listelm)->field.le_prev = &(elm)->field.le_next; \
+} while (/*CONSTCOND*/0)
+
+#define LIST_INSERT_HEAD(head, elm, field) do { \
+ if (((elm)->field.le_next = (head)->lh_first) != NULL) \
+ (head)->lh_first->field.le_prev = &(elm)->field.le_next;\
+ (head)->lh_first = (elm); \
+ (elm)->field.le_prev = &(head)->lh_first; \
+} while (/*CONSTCOND*/0)
+
+#define LIST_REMOVE(elm, field) do { \
+ if ((elm)->field.le_next != NULL) \
+ (elm)->field.le_next->field.le_prev = \
+ (elm)->field.le_prev; \
+ *(elm)->field.le_prev = (elm)->field.le_next; \
+} while (/*CONSTCOND*/0)
+
+#define LIST_FOREACH(var, head, field) \
+ for ((var) = ((head)->lh_first); \
+ (var); \
+ (var) = ((var)->field.le_next))
+
+/*
+ * List access methods.
+ */
+#define LIST_EMPTY(head) ((head)->lh_first == NULL)
+#define LIST_FIRST(head) ((head)->lh_first)
+#define LIST_NEXT(elm, field) ((elm)->field.le_next)
+
+
+/*
+ * Singly-linked List definitions.
+ */
+#define SLIST_HEAD(name, type) \
+struct name { \
+ struct type *slh_first; /* first element */ \
+}
+
+#define SLIST_HEAD_INITIALIZER(head) \
+ { NULL }
+
+#define SLIST_ENTRY(type) \
+struct { \
+ struct type *sle_next; /* next element */ \
+}
+
+/*
+ * Singly-linked List functions.
+ */
+#define SLIST_INIT(head) do { \
+ (head)->slh_first = NULL; \
+} while (/*CONSTCOND*/0)
+
+#define SLIST_INSERT_AFTER(slistelm, elm, field) do { \
+ (elm)->field.sle_next = (slistelm)->field.sle_next; \
+ (slistelm)->field.sle_next = (elm); \
+} while (/*CONSTCOND*/0)
+
+#define SLIST_INSERT_HEAD(head, elm, field) do { \
+ (elm)->field.sle_next = (head)->slh_first; \
+ (head)->slh_first = (elm); \
+} while (/*CONSTCOND*/0)
+
+#define SLIST_REMOVE_HEAD(head, field) do { \
+ (head)->slh_first = (head)->slh_first->field.sle_next; \
+} while (/*CONSTCOND*/0)
+
+#define SLIST_REMOVE(head, elm, type, field) do { \
+ if ((head)->slh_first == (elm)) { \
+ SLIST_REMOVE_HEAD((head), field); \
+ } \
+ else { \
+ struct type *curelm = (head)->slh_first; \
+ while(curelm->field.sle_next != (elm)) \
+ curelm = curelm->field.sle_next; \
+ curelm->field.sle_next = \
+ curelm->field.sle_next->field.sle_next; \
+ } \
+} while (/*CONSTCOND*/0)
+
+#define SLIST_FOREACH(var, head, field) \
+ for((var) = (head)->slh_first; (var); (var) = (var)->field.sle_next)
+
+/*
+ * Singly-linked List access methods.
+ */
+#define SLIST_EMPTY(head) ((head)->slh_first == NULL)
+#define SLIST_FIRST(head) ((head)->slh_first)
+#define SLIST_NEXT(elm, field) ((elm)->field.sle_next)
+
+
+/*
+ * Singly-linked Tail queue declarations.
+ */
+#define STAILQ_HEAD(name, type) \
+struct name { \
+ struct type *stqh_first; /* first element */ \
+ struct type **stqh_last; /* addr of last next element */ \
+}
+
+#define STAILQ_HEAD_INITIALIZER(head) \
+ { NULL, &(head).stqh_first }
+
+#define STAILQ_ENTRY(type) \
+struct { \
+ struct type *stqe_next; /* next element */ \
+}
+
+/*
+ * Singly-linked Tail queue functions.
+ */
+#define STAILQ_INIT(head) do { \
+ (head)->stqh_first = NULL; \
+ (head)->stqh_last = &(head)->stqh_first; \
+} while (/*CONSTCOND*/0)
+
+#define STAILQ_INSERT_HEAD(head, elm, field) do { \
+ if (((elm)->field.stqe_next = (head)->stqh_first) == NULL) \
+ (head)->stqh_last = &(elm)->field.stqe_next; \
+ (head)->stqh_first = (elm); \
+} while (/*CONSTCOND*/0)
+
+#define STAILQ_INSERT_TAIL(head, elm, field) do { \
+ (elm)->field.stqe_next = NULL; \
+ *(head)->stqh_last = (elm); \
+ (head)->stqh_last = &(elm)->field.stqe_next; \
+} while (/*CONSTCOND*/0)
+
+#define STAILQ_INSERT_AFTER(head, listelm, elm, field) do { \
+ if (((elm)->field.stqe_next = (listelm)->field.stqe_next) == NULL)\
+ (head)->stqh_last = &(elm)->field.stqe_next; \
+ (listelm)->field.stqe_next = (elm); \
+} while (/*CONSTCOND*/0)
+
+#define STAILQ_REMOVE_HEAD(head, field) do { \
+ if (((head)->stqh_first = (head)->stqh_first->field.stqe_next) == NULL) \
+ (head)->stqh_last = &(head)->stqh_first; \
+} while (/*CONSTCOND*/0)
+
+#define STAILQ_REMOVE(head, elm, type, field) do { \
+ if ((head)->stqh_first == (elm)) { \
+ STAILQ_REMOVE_HEAD((head), field); \
+ } else { \
+ struct type *curelm = (head)->stqh_first; \
+ while (curelm->field.stqe_next != (elm)) \
+ curelm = curelm->field.stqe_next; \
+ if ((curelm->field.stqe_next = \
+ curelm->field.stqe_next->field.stqe_next) == NULL) \
+ (head)->stqh_last = &(curelm)->field.stqe_next; \
+ } \
+} while (/*CONSTCOND*/0)
+
+#define STAILQ_FOREACH(var, head, field) \
+ for ((var) = ((head)->stqh_first); \
+ (var); \
+ (var) = ((var)->field.stqe_next))
+
+#define STAILQ_CONCAT(head1, head2) do { \
+ if (!STAILQ_EMPTY((head2))) { \
+ *(head1)->stqh_last = (head2)->stqh_first; \
+ (head1)->stqh_last = (head2)->stqh_last; \
+ STAILQ_INIT((head2)); \
+ } \
+} while (/*CONSTCOND*/0)
+
+/*
+ * Singly-linked Tail queue access methods.
+ */
+#define STAILQ_EMPTY(head) ((head)->stqh_first == NULL)
+#define STAILQ_FIRST(head) ((head)->stqh_first)
+#define STAILQ_NEXT(elm, field) ((elm)->field.stqe_next)
+
+
+/*
+ * Simple queue definitions.
+ */
+#define SIMPLEQ_HEAD(name, type) \
+struct name { \
+ struct type *sqh_first; /* first element */ \
+ struct type **sqh_last; /* addr of last next element */ \
+}
+
+#define SIMPLEQ_HEAD_INITIALIZER(head) \
+ { NULL, &(head).sqh_first }
+
+#define SIMPLEQ_ENTRY(type) \
+struct { \
+ struct type *sqe_next; /* next element */ \
+}
+
+/*
+ * Simple queue functions.
+ */
+#define SIMPLEQ_INIT(head) do { \
+ (head)->sqh_first = NULL; \
+ (head)->sqh_last = &(head)->sqh_first; \
+} while (/*CONSTCOND*/0)
+
+#define SIMPLEQ_INSERT_HEAD(head, elm, field) do { \
+ if (((elm)->field.sqe_next = (head)->sqh_first) == NULL) \
+ (head)->sqh_last = &(elm)->field.sqe_next; \
+ (head)->sqh_first = (elm); \
+} while (/*CONSTCOND*/0)
+
+#define SIMPLEQ_INSERT_TAIL(head, elm, field) do { \
+ (elm)->field.sqe_next = NULL; \
+ *(head)->sqh_last = (elm); \
+ (head)->sqh_last = &(elm)->field.sqe_next; \
+} while (/*CONSTCOND*/0)
+
+#define SIMPLEQ_INSERT_AFTER(head, listelm, elm, field) do { \
+ if (((elm)->field.sqe_next = (listelm)->field.sqe_next) == NULL)\
+ (head)->sqh_last = &(elm)->field.sqe_next; \
+ (listelm)->field.sqe_next = (elm); \
+} while (/*CONSTCOND*/0)
+
+#define SIMPLEQ_REMOVE_HEAD(head, field) do { \
+ if (((head)->sqh_first = (head)->sqh_first->field.sqe_next) == NULL) \
+ (head)->sqh_last = &(head)->sqh_first; \
+} while (/*CONSTCOND*/0)
+
+#define SIMPLEQ_REMOVE(head, elm, type, field) do { \
+ if ((head)->sqh_first == (elm)) { \
+ SIMPLEQ_REMOVE_HEAD((head), field); \
+ } else { \
+ struct type *curelm = (head)->sqh_first; \
+ while (curelm->field.sqe_next != (elm)) \
+ curelm = curelm->field.sqe_next; \
+ if ((curelm->field.sqe_next = \
+ curelm->field.sqe_next->field.sqe_next) == NULL) \
+ (head)->sqh_last = &(curelm)->field.sqe_next; \
+ } \
+} while (/*CONSTCOND*/0)
+
+#define SIMPLEQ_FOREACH(var, head, field) \
+ for ((var) = ((head)->sqh_first); \
+ (var); \
+ (var) = ((var)->field.sqe_next))
+
+/*
+ * Simple queue access methods.
+ */
+#define SIMPLEQ_EMPTY(head) ((head)->sqh_first == NULL)
+#define SIMPLEQ_FIRST(head) ((head)->sqh_first)
+#define SIMPLEQ_NEXT(elm, field) ((elm)->field.sqe_next)
+
+
+/*
+ * Tail queue definitions.
+ */
+#define _TAILQ_HEAD(name, type, qual) \
+struct name { \
+ qual type *tqh_first; /* first element */ \
+ qual type *qual *tqh_last; /* addr of last next element */ \
+}
+#define TAILQ_HEAD(name, type) _TAILQ_HEAD(name, struct type,)
+
+#define TAILQ_HEAD_INITIALIZER(head) \
+ { NULL, &(head).tqh_first }
+
+#define _TAILQ_ENTRY(type, qual) \
+struct { \
+ qual type *tqe_next; /* next element */ \
+ qual type *qual *tqe_prev; /* address of previous next element */\
+}
+#define TAILQ_ENTRY(type) _TAILQ_ENTRY(struct type,)
+
+/*
+ * Tail queue functions.
+ */
+#define TAILQ_INIT(head) do { \
+ (head)->tqh_first = NULL; \
+ (head)->tqh_last = &(head)->tqh_first; \
+} while (/*CONSTCOND*/0)
+
+#define TAILQ_INSERT_HEAD(head, elm, field) do { \
+ if (((elm)->field.tqe_next = (head)->tqh_first) != NULL) \
+ (head)->tqh_first->field.tqe_prev = \
+ &(elm)->field.tqe_next; \
+ else \
+ (head)->tqh_last = &(elm)->field.tqe_next; \
+ (head)->tqh_first = (elm); \
+ (elm)->field.tqe_prev = &(head)->tqh_first; \
+} while (/*CONSTCOND*/0)
+
+#define TAILQ_INSERT_TAIL(head, elm, field) do { \
+ (elm)->field.tqe_next = NULL; \
+ (elm)->field.tqe_prev = (head)->tqh_last; \
+ *(head)->tqh_last = (elm); \
+ (head)->tqh_last = &(elm)->field.tqe_next; \
+} while (/*CONSTCOND*/0)
+
+#define TAILQ_INSERT_AFTER(head, listelm, elm, field) do { \
+ if (((elm)->field.tqe_next = (listelm)->field.tqe_next) != NULL)\
+ (elm)->field.tqe_next->field.tqe_prev = \
+ &(elm)->field.tqe_next; \
+ else \
+ (head)->tqh_last = &(elm)->field.tqe_next; \
+ (listelm)->field.tqe_next = (elm); \
+ (elm)->field.tqe_prev = &(listelm)->field.tqe_next; \
+} while (/*CONSTCOND*/0)
+
+#define TAILQ_INSERT_BEFORE(listelm, elm, field) do { \
+ (elm)->field.tqe_prev = (listelm)->field.tqe_prev; \
+ (elm)->field.tqe_next = (listelm); \
+ *(listelm)->field.tqe_prev = (elm); \
+ (listelm)->field.tqe_prev = &(elm)->field.tqe_next; \
+} while (/*CONSTCOND*/0)
+
+#define TAILQ_REMOVE(head, elm, field) do { \
+ if (((elm)->field.tqe_next) != NULL) \
+ (elm)->field.tqe_next->field.tqe_prev = \
+ (elm)->field.tqe_prev; \
+ else \
+ (head)->tqh_last = (elm)->field.tqe_prev; \
+ *(elm)->field.tqe_prev = (elm)->field.tqe_next; \
+} while (/*CONSTCOND*/0)
+
+#define TAILQ_FOREACH(var, head, field) \
+ for ((var) = ((head)->tqh_first); \
+ (var); \
+ (var) = ((var)->field.tqe_next))
+
+#define TAILQ_FOREACH_REVERSE(var, head, headname, field) \
+ for ((var) = (*(((struct headname *)((head)->tqh_last))->tqh_last)); \
+ (var); \
+ (var) = (*(((struct headname *)((var)->field.tqe_prev))->tqh_last)))
+
+#define TAILQ_CONCAT(head1, head2, field) do { \
+ if (!TAILQ_EMPTY(head2)) { \
+ *(head1)->tqh_last = (head2)->tqh_first; \
+ (head2)->tqh_first->field.tqe_prev = (head1)->tqh_last; \
+ (head1)->tqh_last = (head2)->tqh_last; \
+ TAILQ_INIT((head2)); \
+ } \
+} while (/*CONSTCOND*/0)
+
+/*
+ * Tail queue access methods.
+ */
+#define TAILQ_EMPTY(head) ((head)->tqh_first == NULL)
+#define TAILQ_FIRST(head) ((head)->tqh_first)
+#define TAILQ_NEXT(elm, field) ((elm)->field.tqe_next)
+
+#define TAILQ_LAST(head, headname) \
+ (*(((struct headname *)((head)->tqh_last))->tqh_last))
+#define TAILQ_PREV(elm, headname, field) \
+ (*(((struct headname *)((elm)->field.tqe_prev))->tqh_last))
+
+
+/*
+ * Circular queue definitions.
+ */
+#define CIRCLEQ_HEAD(name, type) \
+struct name { \
+ struct type *cqh_first; /* first element */ \
+ struct type *cqh_last; /* last element */ \
+}
+
+#define CIRCLEQ_HEAD_INITIALIZER(head) \
+ { (void *)&head, (void *)&head }
+
+#define CIRCLEQ_ENTRY(type) \
+struct { \
+ struct type *cqe_next; /* next element */ \
+ struct type *cqe_prev; /* previous element */ \
+}
+
+/*
+ * Circular queue functions.
+ */
+#define CIRCLEQ_INIT(head) do { \
+ (head)->cqh_first = (void *)(head); \
+ (head)->cqh_last = (void *)(head); \
+} while (/*CONSTCOND*/0)
+
+#define CIRCLEQ_INSERT_AFTER(head, listelm, elm, field) do { \
+ (elm)->field.cqe_next = (listelm)->field.cqe_next; \
+ (elm)->field.cqe_prev = (listelm); \
+ if ((listelm)->field.cqe_next == (void *)(head)) \
+ (head)->cqh_last = (elm); \
+ else \
+ (listelm)->field.cqe_next->field.cqe_prev = (elm); \
+ (listelm)->field.cqe_next = (elm); \
+} while (/*CONSTCOND*/0)
+
+#define CIRCLEQ_INSERT_BEFORE(head, listelm, elm, field) do { \
+ (elm)->field.cqe_next = (listelm); \
+ (elm)->field.cqe_prev = (listelm)->field.cqe_prev; \
+ if ((listelm)->field.cqe_prev == (void *)(head)) \
+ (head)->cqh_first = (elm); \
+ else \
+ (listelm)->field.cqe_prev->field.cqe_next = (elm); \
+ (listelm)->field.cqe_prev = (elm); \
+} while (/*CONSTCOND*/0)
+
+#define CIRCLEQ_INSERT_HEAD(head, elm, field) do { \
+ (elm)->field.cqe_next = (head)->cqh_first; \
+ (elm)->field.cqe_prev = (void *)(head); \
+ if ((head)->cqh_last == (void *)(head)) \
+ (head)->cqh_last = (elm); \
+ else \
+ (head)->cqh_first->field.cqe_prev = (elm); \
+ (head)->cqh_first = (elm); \
+} while (/*CONSTCOND*/0)
+
+#define CIRCLEQ_INSERT_TAIL(head, elm, field) do { \
+ (elm)->field.cqe_next = (void *)(head); \
+ (elm)->field.cqe_prev = (head)->cqh_last; \
+ if ((head)->cqh_first == (void *)(head)) \
+ (head)->cqh_first = (elm); \
+ else \
+ (head)->cqh_last->field.cqe_next = (elm); \
+ (head)->cqh_last = (elm); \
+} while (/*CONSTCOND*/0)
+
+#define CIRCLEQ_REMOVE(head, elm, field) do { \
+ if ((elm)->field.cqe_next == (void *)(head)) \
+ (head)->cqh_last = (elm)->field.cqe_prev; \
+ else \
+ (elm)->field.cqe_next->field.cqe_prev = \
+ (elm)->field.cqe_prev; \
+ if ((elm)->field.cqe_prev == (void *)(head)) \
+ (head)->cqh_first = (elm)->field.cqe_next; \
+ else \
+ (elm)->field.cqe_prev->field.cqe_next = \
+ (elm)->field.cqe_next; \
+} while (/*CONSTCOND*/0)
+
+#define CIRCLEQ_FOREACH(var, head, field) \
+ for ((var) = ((head)->cqh_first); \
+ (var) != (const void *)(head); \
+ (var) = ((var)->field.cqe_next))
+
+#define CIRCLEQ_FOREACH_REVERSE(var, head, field) \
+ for ((var) = ((head)->cqh_last); \
+ (var) != (const void *)(head); \
+ (var) = ((var)->field.cqe_prev))
+
+/*
+ * Circular queue access methods.
+ */
+#define CIRCLEQ_EMPTY(head) ((head)->cqh_first == (void *)(head))
+#define CIRCLEQ_FIRST(head) ((head)->cqh_first)
+#define CIRCLEQ_LAST(head) ((head)->cqh_last)
+#define CIRCLEQ_NEXT(elm, field) ((elm)->field.cqe_next)
+#define CIRCLEQ_PREV(elm, field) ((elm)->field.cqe_prev)
+
+#define CIRCLEQ_LOOP_NEXT(head, elm, field) \
+ (((elm)->field.cqe_next == (void *)(head)) \
+ ? ((head)->cqh_first) \
+ : (elm->field.cqe_next))
+#define CIRCLEQ_LOOP_PREV(head, elm, field) \
+ (((elm)->field.cqe_prev == (void *)(head)) \
+ ? ((head)->cqh_last) \
+ : (elm->field.cqe_prev))
+
+#endif /* sys/queue.h */
diff --git a/package/logrotate/Makefile b/package/logrotate/Makefile
index 32ced2e60..375746034 100644
--- a/package/logrotate/Makefile
+++ b/package/logrotate/Makefile
@@ -4,9 +4,9 @@
include ${TOPDIR}/rules.mk
PKG_NAME:= logrotate
-PKG_VERSION:= 3.7.8
+PKG_VERSION:= 3.8.7
PKG_RELEASE:= 1
-PKG_MD5SUM:= b3589bea6d8d5afc8a84134fddaae973
+PKG_MD5SUM:= 99e08503ef24c3e2e3ff74cc5f3be213
PKG_DESCR:= logfile rotation utility
PKG_SECTION:= misc
PKG_DEPENDS:= libpopt
diff --git a/package/logrotate/patches/patch-Makefile b/package/logrotate/patches/patch-Makefile
index 755e612b1..c2b81fbbc 100644
--- a/package/logrotate/patches/patch-Makefile
+++ b/package/logrotate/patches/patch-Makefile
@@ -1,60 +1,33 @@
---- logrotate-3.7.8.orig/Makefile 2008-05-19 12:25:54.000000000 +0200
-+++ logrotate-3.7.8/Makefile 2011-01-15 23:45:59.000000000 +0100
-@@ -1,10 +1,10 @@
+--- logrotate-3.8.7.orig/Makefile 2013-06-10 13:29:16.000000000 +0200
++++ logrotate-3.8.7/Makefile 2014-03-23 15:16:09.000000000 +0100
+@@ -1,11 +1,11 @@
VERSION = $(shell awk '/Version:/ { print $$2 }' logrotate.spec)
-OS_NAME = $(shell uname -s)
+OS_NAME = Linux
LFS = $(shell echo `getconf LFS_CFLAGS 2>/dev/null`)
--CFLAGS = -Wall -D_GNU_SOURCE -D$(OS_NAME) -DVERSION=\"$(VERSION)\" $(RPM_OPT_FLAGS) $(LFS)
-+CFLAGS ?= -Wall -D_GNU_SOURCE -D$(OS_NAME) -DVERSION=\"$(VERSION)\" $(RPM_OPT_FLAGS) $(LFS)
+ CFLAGS = -Wall -D_GNU_SOURCE -D$(OS_NAME) -DVERSION=\"$(VERSION)\" $(RPM_OPT_FLAGS) $(LFS)
PROG = logrotate
MAN = logrotate.8
+ MAN5 = logrotate.conf.5
-LOADLIBES = -lpopt
+LIBS = -lpopt
SVNURL= svn+ssh://svn.fedorahosted.org/svn/logrotate
SVNPUBURL = http://svn.fedorahosted.org/svn/logrotate
SVNTAG = r$(subst .,-,$(VERSION))
-@@ -68,10 +68,7 @@ MANDIR = $(BASEDIR)/man
- OBJS = logrotate.o log.o config.o basenames.o
- SOURCES = $(subst .o,.c,$(OBJS) $(LIBOBJS))
+@@ -64,7 +64,7 @@ endif
+ # Red Hat Linux
+ ifeq ($(OS_NAME),Linux)
+ INSTALL = install
+- BASEDIR = /usr
++ BASEDIR = $(DESTDIR)/usr
+ endif
--ifeq ($(RPM_OPT_FLAGS),)
--CFLAGS += -g
--LDFLAGS = -g
--endif
-+LDFLAGS ?=
-
- ifeq (.depend,$(wildcard .depend))
- TARGET=$(PROG)
-@@ -84,6 +81,7 @@ RCSVERSION = $(subst .,-,$(VERSION))
- all: $(TARGET)
+ # FreeBSD
+@@ -117,6 +117,7 @@ RCSVERSION = $(subst .,-,$(VERSION))
+ all: $(TARGET) pretest
$(PROG): $(OBJS)
+ $(CC) $(LDFLAGS) -o $(PROG) $^ $(LIBS)
clean:
rm -f $(OBJS) $(PROG) core* .depend
-@@ -96,16 +94,16 @@ test: $(TARGET)
- (cd test; ./test)
-
- install:
-- [ -d $(PREFIX)/$(BINDIR) ] || mkdir -p $(PREFIX)/$(BINDIR)
-- [ -d $(PREFIX)/$(MANDIR) ] || mkdir -p $(PREFIX)/$(MANDIR)
-- [ -d $(PREFIX)/$(MANDIR)/man8 ] || mkdir -p $(PREFIX)/$(MANDIR)/man8
-+ [ -d $(DESTDIR)/$(BINDIR) ] || mkdir -p $(DESTDIR)/$(BINDIR)
-+ [ -d $(DESTDIR)/$(MANDIR) ] || mkdir -p $(DESTDIR)/$(MANDIR)
-+ [ -d $(DESTDIR)/$(MANDIR)/man8 ] || mkdir -p $(DESTDIR)/$(MANDIR)/man8
-
- if [ "$(OS_NAME)" = HP-UX ]; then \
-- $(INSTALL) $(PROG) $(PREFIX)/$(BINDIR) 0755 bin bin; \
-- $(INSTALL) $(MAN) $(PREFIX)/$(MANDIR)/man`echo $(MAN) | sed "s/.*\.//"` 0644 bin bin; \
-+ $(INSTALL) $(PROG) $(DESTDIR)/$(BINDIR) 0755 bin bin; \
-+ $(INSTALL) $(MAN) $(DESTDIR)/$(MANDIR)/man`echo $(MAN) | sed "s/.*\.//"` 0644 bin bin; \
- else \
-- $(INSTALL) -m 755 $(PROG) $(PREFIX)/$(BINDIR); \
-- $(INSTALL) -m 644 $(MAN) $(PREFIX)/$(MANDIR)/man`echo $(MAN) | sed "s/.*\.//"`/$(MAN); \
-+ $(INSTALL) -m 755 $(PROG) $(DESTDIR)/$(BINDIR); \
-+ $(INSTALL) -m 644 $(MAN) $(DESTDIR)/$(MANDIR)/man`echo $(MAN) | sed "s/.*\.//"`/$(MAN); \
- fi
-
- co:
diff --git a/package/logrotate/patches/patch-config_c b/package/logrotate/patches/patch-config_c
new file mode 100644
index 000000000..ea58cd4ce
--- /dev/null
+++ b/package/logrotate/patches/patch-config_c
@@ -0,0 +1,8 @@
+--- logrotate-3.8.7.orig/config.c 2013-07-31 13:34:31.000000000 +0200
++++ logrotate-3.8.7/config.c 2014-03-23 15:11:39.000000000 +0100
+@@ -1,4 +1,4 @@
+-#include <sys/queue.h>
++#include "queue.h"
+ /* Alloca is defined in stdlib.h in NetBSD */
+ #ifndef __NetBSD__
+ #include <alloca.h>
diff --git a/package/logrotate/patches/patch-logrotate_c b/package/logrotate/patches/patch-logrotate_c
new file mode 100644
index 000000000..d2ee8dd83
--- /dev/null
+++ b/package/logrotate/patches/patch-logrotate_c
@@ -0,0 +1,8 @@
+--- logrotate-3.8.7.orig/logrotate.c 2013-10-10 10:43:36.000000000 +0200
++++ logrotate-3.8.7/logrotate.c 2014-03-23 15:10:21.000000000 +0100
+@@ -1,4 +1,4 @@
+-#include <sys/queue.h>
++#include "queue.h"
+ /* alloca() is defined in stdlib.h in NetBSD */
+ #ifndef __NetBSD__
+ #include <alloca.h>
diff --git a/package/logrotate/patches/patch-logrotate_h b/package/logrotate/patches/patch-logrotate_h
new file mode 100644
index 000000000..7bc3c06ef
--- /dev/null
+++ b/package/logrotate/patches/patch-logrotate_h
@@ -0,0 +1,11 @@
+--- logrotate-3.8.7.orig/logrotate.h 2013-06-10 13:29:16.000000000 +0200
++++ logrotate-3.8.7/logrotate.h 2014-03-23 15:11:06.000000000 +0100
+@@ -2,7 +2,7 @@
+ #define H_LOGROTATE
+
+ #include <sys/types.h>
+-#include <sys/queue.h>
++#include "queue.h"
+ #include <glob.h>
+
+ #include "config.h"
diff --git a/package/logrotate/src/queue.h b/package/logrotate/src/queue.h
new file mode 100644
index 000000000..daf4553d3
--- /dev/null
+++ b/package/logrotate/src/queue.h
@@ -0,0 +1,574 @@
+/*
+ * Copyright (c) 1991, 1993
+ * The Regents of the University of California. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the University nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ * @(#)queue.h 8.5 (Berkeley) 8/20/94
+ */
+
+#ifndef _SYS_QUEUE_H_
+#define _SYS_QUEUE_H_
+
+/*
+ * This file defines five types of data structures: singly-linked lists,
+ * lists, simple queues, tail queues, and circular queues.
+ *
+ * A singly-linked list is headed by a single forward pointer. The
+ * elements are singly linked for minimum space and pointer manipulation
+ * overhead at the expense of O(n) removal for arbitrary elements. New
+ * elements can be added to the list after an existing element or at the
+ * head of the list. Elements being removed from the head of the list
+ * should use the explicit macro for this purpose for optimum
+ * efficiency. A singly-linked list may only be traversed in the forward
+ * direction. Singly-linked lists are ideal for applications with large
+ * datasets and few or no removals or for implementing a LIFO queue.
+ *
+ * A list is headed by a single forward pointer (or an array of forward
+ * pointers for a hash table header). The elements are doubly linked
+ * so that an arbitrary element can be removed without a need to
+ * traverse the list. New elements can be added to the list before
+ * or after an existing element or at the head of the list. A list
+ * may only be traversed in the forward direction.
+ *
+ * A simple queue is headed by a pair of pointers, one the head of the
+ * list and the other to the tail of the list. The elements are singly
+ * linked to save space, so elements can only be removed from the
+ * head of the list. New elements can be added to the list after
+ * an existing element, at the head of the list, or at the end of the
+ * list. A simple queue may only be traversed in the forward direction.
+ *
+ * A tail queue is headed by a pair of pointers, one to the head of the
+ * list and the other to the tail of the list. The elements are doubly
+ * linked so that an arbitrary element can be removed without a need to
+ * traverse the list. New elements can be added to the list before or
+ * after an existing element, at the head of the list, or at the end of
+ * the list. A tail queue may be traversed in either direction.
+ *
+ * A circle queue is headed by a pair of pointers, one to the head of the
+ * list and the other to the tail of the list. The elements are doubly
+ * linked so that an arbitrary element can be removed without a need to
+ * traverse the list. New elements can be added to the list before or after
+ * an existing element, at the head of the list, or at the end of the list.
+ * A circle queue may be traversed in either direction, but has a more
+ * complex end of list detection.
+ *
+ * For details on the use of these macros, see the queue(3) manual page.
+ */
+
+/*
+ * List definitions.
+ */
+#define LIST_HEAD(name, type) \
+struct name { \
+ struct type *lh_first; /* first element */ \
+}
+
+#define LIST_HEAD_INITIALIZER(head) \
+ { NULL }
+
+#define LIST_ENTRY(type) \
+struct { \
+ struct type *le_next; /* next element */ \
+ struct type **le_prev; /* address of previous next element */ \
+}
+
+/*
+ * List functions.
+ */
+#define LIST_INIT(head) do { \
+ (head)->lh_first = NULL; \
+} while (/*CONSTCOND*/0)
+
+#define LIST_INSERT_AFTER(listelm, elm, field) do { \
+ if (((elm)->field.le_next = (listelm)->field.le_next) != NULL) \
+ (listelm)->field.le_next->field.le_prev = \
+ &(elm)->field.le_next; \
+ (listelm)->field.le_next = (elm); \
+ (elm)->field.le_prev = &(listelm)->field.le_next; \
+} while (/*CONSTCOND*/0)
+
+#define LIST_INSERT_BEFORE(listelm, elm, field) do { \
+ (elm)->field.le_prev = (listelm)->field.le_prev; \
+ (elm)->field.le_next = (listelm); \
+ *(listelm)->field.le_prev = (elm); \
+ (listelm)->field.le_prev = &(elm)->field.le_next; \
+} while (/*CONSTCOND*/0)
+
+#define LIST_INSERT_HEAD(head, elm, field) do { \
+ if (((elm)->field.le_next = (head)->lh_first) != NULL) \
+ (head)->lh_first->field.le_prev = &(elm)->field.le_next;\
+ (head)->lh_first = (elm); \
+ (elm)->field.le_prev = &(head)->lh_first; \
+} while (/*CONSTCOND*/0)
+
+#define LIST_REMOVE(elm, field) do { \
+ if ((elm)->field.le_next != NULL) \
+ (elm)->field.le_next->field.le_prev = \
+ (elm)->field.le_prev; \
+ *(elm)->field.le_prev = (elm)->field.le_next; \
+} while (/*CONSTCOND*/0)
+
+#define LIST_FOREACH(var, head, field) \
+ for ((var) = ((head)->lh_first); \
+ (var); \
+ (var) = ((var)->field.le_next))
+
+/*
+ * List access methods.
+ */
+#define LIST_EMPTY(head) ((head)->lh_first == NULL)
+#define LIST_FIRST(head) ((head)->lh_first)
+#define LIST_NEXT(elm, field) ((elm)->field.le_next)
+
+
+/*
+ * Singly-linked List definitions.
+ */
+#define SLIST_HEAD(name, type) \
+struct name { \
+ struct type *slh_first; /* first element */ \
+}
+
+#define SLIST_HEAD_INITIALIZER(head) \
+ { NULL }
+
+#define SLIST_ENTRY(type) \
+struct { \
+ struct type *sle_next; /* next element */ \
+}
+
+/*
+ * Singly-linked List functions.
+ */
+#define SLIST_INIT(head) do { \
+ (head)->slh_first = NULL; \
+} while (/*CONSTCOND*/0)
+
+#define SLIST_INSERT_AFTER(slistelm, elm, field) do { \
+ (elm)->field.sle_next = (slistelm)->field.sle_next; \
+ (slistelm)->field.sle_next = (elm); \
+} while (/*CONSTCOND*/0)
+
+#define SLIST_INSERT_HEAD(head, elm, field) do { \
+ (elm)->field.sle_next = (head)->slh_first; \
+ (head)->slh_first = (elm); \
+} while (/*CONSTCOND*/0)
+
+#define SLIST_REMOVE_HEAD(head, field) do { \
+ (head)->slh_first = (head)->slh_first->field.sle_next; \
+} while (/*CONSTCOND*/0)
+
+#define SLIST_REMOVE(head, elm, type, field) do { \
+ if ((head)->slh_first == (elm)) { \
+ SLIST_REMOVE_HEAD((head), field); \
+ } \
+ else { \
+ struct type *curelm = (head)->slh_first; \
+ while(curelm->field.sle_next != (elm)) \
+ curelm = curelm->field.sle_next; \
+ curelm->field.sle_next = \
+ curelm->field.sle_next->field.sle_next; \
+ } \
+} while (/*CONSTCOND*/0)
+
+#define SLIST_FOREACH(var, head, field) \
+ for((var) = (head)->slh_first; (var); (var) = (var)->field.sle_next)
+
+/*
+ * Singly-linked List access methods.
+ */
+#define SLIST_EMPTY(head) ((head)->slh_first == NULL)
+#define SLIST_FIRST(head) ((head)->slh_first)
+#define SLIST_NEXT(elm, field) ((elm)->field.sle_next)
+
+
+/*
+ * Singly-linked Tail queue declarations.
+ */
+#define STAILQ_HEAD(name, type) \
+struct name { \
+ struct type *stqh_first; /* first element */ \
+ struct type **stqh_last; /* addr of last next element */ \
+}
+
+#define STAILQ_HEAD_INITIALIZER(head) \
+ { NULL, &(head).stqh_first }
+
+#define STAILQ_ENTRY(type) \
+struct { \
+ struct type *stqe_next; /* next element */ \
+}
+
+/*
+ * Singly-linked Tail queue functions.
+ */
+#define STAILQ_INIT(head) do { \
+ (head)->stqh_first = NULL; \
+ (head)->stqh_last = &(head)->stqh_first; \
+} while (/*CONSTCOND*/0)
+
+#define STAILQ_INSERT_HEAD(head, elm, field) do { \
+ if (((elm)->field.stqe_next = (head)->stqh_first) == NULL) \
+ (head)->stqh_last = &(elm)->field.stqe_next; \
+ (head)->stqh_first = (elm); \
+} while (/*CONSTCOND*/0)
+
+#define STAILQ_INSERT_TAIL(head, elm, field) do { \
+ (elm)->field.stqe_next = NULL; \
+ *(head)->stqh_last = (elm); \
+ (head)->stqh_last = &(elm)->field.stqe_next; \
+} while (/*CONSTCOND*/0)
+
+#define STAILQ_INSERT_AFTER(head, listelm, elm, field) do { \
+ if (((elm)->field.stqe_next = (listelm)->field.stqe_next) == NULL)\
+ (head)->stqh_last = &(elm)->field.stqe_next; \
+ (listelm)->field.stqe_next = (elm); \
+} while (/*CONSTCOND*/0)
+
+#define STAILQ_REMOVE_HEAD(head, field) do { \
+ if (((head)->stqh_first = (head)->stqh_first->field.stqe_next) == NULL) \
+ (head)->stqh_last = &(head)->stqh_first; \
+} while (/*CONSTCOND*/0)
+
+#define STAILQ_REMOVE(head, elm, type, field) do { \
+ if ((head)->stqh_first == (elm)) { \
+ STAILQ_REMOVE_HEAD((head), field); \
+ } else { \
+ struct type *curelm = (head)->stqh_first; \
+ while (curelm->field.stqe_next != (elm)) \
+ curelm = curelm->field.stqe_next; \
+ if ((curelm->field.stqe_next = \
+ curelm->field.stqe_next->field.stqe_next) == NULL) \
+ (head)->stqh_last = &(curelm)->field.stqe_next; \
+ } \
+} while (/*CONSTCOND*/0)
+
+#define STAILQ_FOREACH(var, head, field) \
+ for ((var) = ((head)->stqh_first); \
+ (var); \
+ (var) = ((var)->field.stqe_next))
+
+#define STAILQ_CONCAT(head1, head2) do { \
+ if (!STAILQ_EMPTY((head2))) { \
+ *(head1)->stqh_last = (head2)->stqh_first; \
+ (head1)->stqh_last = (head2)->stqh_last; \
+ STAILQ_INIT((head2)); \
+ } \
+} while (/*CONSTCOND*/0)
+
+/*
+ * Singly-linked Tail queue access methods.
+ */
+#define STAILQ_EMPTY(head) ((head)->stqh_first == NULL)
+#define STAILQ_FIRST(head) ((head)->stqh_first)
+#define STAILQ_NEXT(elm, field) ((elm)->field.stqe_next)
+
+
+/*
+ * Simple queue definitions.
+ */
+#define SIMPLEQ_HEAD(name, type) \
+struct name { \
+ struct type *sqh_first; /* first element */ \
+ struct type **sqh_last; /* addr of last next element */ \
+}
+
+#define SIMPLEQ_HEAD_INITIALIZER(head) \
+ { NULL, &(head).sqh_first }
+
+#define SIMPLEQ_ENTRY(type) \
+struct { \
+ struct type *sqe_next; /* next element */ \
+}
+
+/*
+ * Simple queue functions.
+ */
+#define SIMPLEQ_INIT(head) do { \
+ (head)->sqh_first = NULL; \
+ (head)->sqh_last = &(head)->sqh_first; \
+} while (/*CONSTCOND*/0)
+
+#define SIMPLEQ_INSERT_HEAD(head, elm, field) do { \
+ if (((elm)->field.sqe_next = (head)->sqh_first) == NULL) \
+ (head)->sqh_last = &(elm)->field.sqe_next; \
+ (head)->sqh_first = (elm); \
+} while (/*CONSTCOND*/0)
+
+#define SIMPLEQ_INSERT_TAIL(head, elm, field) do { \
+ (elm)->field.sqe_next = NULL; \
+ *(head)->sqh_last = (elm); \
+ (head)->sqh_last = &(elm)->field.sqe_next; \
+} while (/*CONSTCOND*/0)
+
+#define SIMPLEQ_INSERT_AFTER(head, listelm, elm, field) do { \
+ if (((elm)->field.sqe_next = (listelm)->field.sqe_next) == NULL)\
+ (head)->sqh_last = &(elm)->field.sqe_next; \
+ (listelm)->field.sqe_next = (elm); \
+} while (/*CONSTCOND*/0)
+
+#define SIMPLEQ_REMOVE_HEAD(head, field) do { \
+ if (((head)->sqh_first = (head)->sqh_first->field.sqe_next) == NULL) \
+ (head)->sqh_last = &(head)->sqh_first; \
+} while (/*CONSTCOND*/0)
+
+#define SIMPLEQ_REMOVE(head, elm, type, field) do { \
+ if ((head)->sqh_first == (elm)) { \
+ SIMPLEQ_REMOVE_HEAD((head), field); \
+ } else { \
+ struct type *curelm = (head)->sqh_first; \
+ while (curelm->field.sqe_next != (elm)) \
+ curelm = curelm->field.sqe_next; \
+ if ((curelm->field.sqe_next = \
+ curelm->field.sqe_next->field.sqe_next) == NULL) \
+ (head)->sqh_last = &(curelm)->field.sqe_next; \
+ } \
+} while (/*CONSTCOND*/0)
+
+#define SIMPLEQ_FOREACH(var, head, field) \
+ for ((var) = ((head)->sqh_first); \
+ (var); \
+ (var) = ((var)->field.sqe_next))
+
+/*
+ * Simple queue access methods.
+ */
+#define SIMPLEQ_EMPTY(head) ((head)->sqh_first == NULL)
+#define SIMPLEQ_FIRST(head) ((head)->sqh_first)
+#define SIMPLEQ_NEXT(elm, field) ((elm)->field.sqe_next)
+
+
+/*
+ * Tail queue definitions.
+ */
+#define _TAILQ_HEAD(name, type, qual) \
+struct name { \
+ qual type *tqh_first; /* first element */ \
+ qual type *qual *tqh_last; /* addr of last next element */ \
+}
+#define TAILQ_HEAD(name, type) _TAILQ_HEAD(name, struct type,)
+
+#define TAILQ_HEAD_INITIALIZER(head) \
+ { NULL, &(head).tqh_first }
+
+#define _TAILQ_ENTRY(type, qual) \
+struct { \
+ qual type *tqe_next; /* next element */ \
+ qual type *qual *tqe_prev; /* address of previous next element */\
+}
+#define TAILQ_ENTRY(type) _TAILQ_ENTRY(struct type,)
+
+/*
+ * Tail queue functions.
+ */
+#define TAILQ_INIT(head) do { \
+ (head)->tqh_first = NULL; \
+ (head)->tqh_last = &(head)->tqh_first; \
+} while (/*CONSTCOND*/0)
+
+#define TAILQ_INSERT_HEAD(head, elm, field) do { \
+ if (((elm)->field.tqe_next = (head)->tqh_first) != NULL) \
+ (head)->tqh_first->field.tqe_prev = \
+ &(elm)->field.tqe_next; \
+ else \
+ (head)->tqh_last = &(elm)->field.tqe_next; \
+ (head)->tqh_first = (elm); \
+ (elm)->field.tqe_prev = &(head)->tqh_first; \
+} while (/*CONSTCOND*/0)
+
+#define TAILQ_INSERT_TAIL(head, elm, field) do { \
+ (elm)->field.tqe_next = NULL; \
+ (elm)->field.tqe_prev = (head)->tqh_last; \
+ *(head)->tqh_last = (elm); \
+ (head)->tqh_last = &(elm)->field.tqe_next; \
+} while (/*CONSTCOND*/0)
+
+#define TAILQ_INSERT_AFTER(head, listelm, elm, field) do { \
+ if (((elm)->field.tqe_next = (listelm)->field.tqe_next) != NULL)\
+ (elm)->field.tqe_next->field.tqe_prev = \
+ &(elm)->field.tqe_next; \
+ else \
+ (head)->tqh_last = &(elm)->field.tqe_next; \
+ (listelm)->field.tqe_next = (elm); \
+ (elm)->field.tqe_prev = &(listelm)->field.tqe_next; \
+} while (/*CONSTCOND*/0)
+
+#define TAILQ_INSERT_BEFORE(listelm, elm, field) do { \
+ (elm)->field.tqe_prev = (listelm)->field.tqe_prev; \
+ (elm)->field.tqe_next = (listelm); \
+ *(listelm)->field.tqe_prev = (elm); \
+ (listelm)->field.tqe_prev = &(elm)->field.tqe_next; \
+} while (/*CONSTCOND*/0)
+
+#define TAILQ_REMOVE(head, elm, field) do { \
+ if (((elm)->field.tqe_next) != NULL) \
+ (elm)->field.tqe_next->field.tqe_prev = \
+ (elm)->field.tqe_prev; \
+ else \
+ (head)->tqh_last = (elm)->field.tqe_prev; \
+ *(elm)->field.tqe_prev = (elm)->field.tqe_next; \
+} while (/*CONSTCOND*/0)
+
+#define TAILQ_FOREACH(var, head, field) \
+ for ((var) = ((head)->tqh_first); \
+ (var); \
+ (var) = ((var)->field.tqe_next))
+
+#define TAILQ_FOREACH_REVERSE(var, head, headname, field) \
+ for ((var) = (*(((struct headname *)((head)->tqh_last))->tqh_last)); \
+ (var); \
+ (var) = (*(((struct headname *)((var)->field.tqe_prev))->tqh_last)))
+
+#define TAILQ_CONCAT(head1, head2, field) do { \
+ if (!TAILQ_EMPTY(head2)) { \
+ *(head1)->tqh_last = (head2)->tqh_first; \
+ (head2)->tqh_first->field.tqe_prev = (head1)->tqh_last; \
+ (head1)->tqh_last = (head2)->tqh_last; \
+ TAILQ_INIT((head2)); \
+ } \
+} while (/*CONSTCOND*/0)
+
+/*
+ * Tail queue access methods.
+ */
+#define TAILQ_EMPTY(head) ((head)->tqh_first == NULL)
+#define TAILQ_FIRST(head) ((head)->tqh_first)
+#define TAILQ_NEXT(elm, field) ((elm)->field.tqe_next)
+
+#define TAILQ_LAST(head, headname) \
+ (*(((struct headname *)((head)->tqh_last))->tqh_last))
+#define TAILQ_PREV(elm, headname, field) \
+ (*(((struct headname *)((elm)->field.tqe_prev))->tqh_last))
+
+
+/*
+ * Circular queue definitions.
+ */
+#define CIRCLEQ_HEAD(name, type) \
+struct name { \
+ struct type *cqh_first; /* first element */ \
+ struct type *cqh_last; /* last element */ \
+}
+
+#define CIRCLEQ_HEAD_INITIALIZER(head) \
+ { (void *)&head, (void *)&head }
+
+#define CIRCLEQ_ENTRY(type) \
+struct { \
+ struct type *cqe_next; /* next element */ \
+ struct type *cqe_prev; /* previous element */ \
+}
+
+/*
+ * Circular queue functions.
+ */
+#define CIRCLEQ_INIT(head) do { \
+ (head)->cqh_first = (void *)(head); \
+ (head)->cqh_last = (void *)(head); \
+} while (/*CONSTCOND*/0)
+
+#define CIRCLEQ_INSERT_AFTER(head, listelm, elm, field) do { \
+ (elm)->field.cqe_next = (listelm)->field.cqe_next; \
+ (elm)->field.cqe_prev = (listelm); \
+ if ((listelm)->field.cqe_next == (void *)(head)) \
+ (head)->cqh_last = (elm); \
+ else \
+ (listelm)->field.cqe_next->field.cqe_prev = (elm); \
+ (listelm)->field.cqe_next = (elm); \
+} while (/*CONSTCOND*/0)
+
+#define CIRCLEQ_INSERT_BEFORE(head, listelm, elm, field) do { \
+ (elm)->field.cqe_next = (listelm); \
+ (elm)->field.cqe_prev = (listelm)->field.cqe_prev; \
+ if ((listelm)->field.cqe_prev == (void *)(head)) \
+ (head)->cqh_first = (elm); \
+ else \
+ (listelm)->field.cqe_prev->field.cqe_next = (elm); \
+ (listelm)->field.cqe_prev = (elm); \
+} while (/*CONSTCOND*/0)
+
+#define CIRCLEQ_INSERT_HEAD(head, elm, field) do { \
+ (elm)->field.cqe_next = (head)->cqh_first; \
+ (elm)->field.cqe_prev = (void *)(head); \
+ if ((head)->cqh_last == (void *)(head)) \
+ (head)->cqh_last = (elm); \
+ else \
+ (head)->cqh_first->field.cqe_prev = (elm); \
+ (head)->cqh_first = (elm); \
+} while (/*CONSTCOND*/0)
+
+#define CIRCLEQ_INSERT_TAIL(head, elm, field) do { \
+ (elm)->field.cqe_next = (void *)(head); \
+ (elm)->field.cqe_prev = (head)->cqh_last; \
+ if ((head)->cqh_first == (void *)(head)) \
+ (head)->cqh_first = (elm); \
+ else \
+ (head)->cqh_last->field.cqe_next = (elm); \
+ (head)->cqh_last = (elm); \
+} while (/*CONSTCOND*/0)
+
+#define CIRCLEQ_REMOVE(head, elm, field) do { \
+ if ((elm)->field.cqe_next == (void *)(head)) \
+ (head)->cqh_last = (elm)->field.cqe_prev; \
+ else \
+ (elm)->field.cqe_next->field.cqe_prev = \
+ (elm)->field.cqe_prev; \
+ if ((elm)->field.cqe_prev == (void *)(head)) \
+ (head)->cqh_first = (elm)->field.cqe_next; \
+ else \
+ (elm)->field.cqe_prev->field.cqe_next = \
+ (elm)->field.cqe_next; \
+} while (/*CONSTCOND*/0)
+
+#define CIRCLEQ_FOREACH(var, head, field) \
+ for ((var) = ((head)->cqh_first); \
+ (var) != (const void *)(head); \
+ (var) = ((var)->field.cqe_next))
+
+#define CIRCLEQ_FOREACH_REVERSE(var, head, field) \
+ for ((var) = ((head)->cqh_last); \
+ (var) != (const void *)(head); \
+ (var) = ((var)->field.cqe_prev))
+
+/*
+ * Circular queue access methods.
+ */
+#define CIRCLEQ_EMPTY(head) ((head)->cqh_first == (void *)(head))
+#define CIRCLEQ_FIRST(head) ((head)->cqh_first)
+#define CIRCLEQ_LAST(head) ((head)->cqh_last)
+#define CIRCLEQ_NEXT(elm, field) ((elm)->field.cqe_next)
+#define CIRCLEQ_PREV(elm, field) ((elm)->field.cqe_prev)
+
+#define CIRCLEQ_LOOP_NEXT(head, elm, field) \
+ (((elm)->field.cqe_next == (void *)(head)) \
+ ? ((head)->cqh_first) \
+ : (elm->field.cqe_next))
+#define CIRCLEQ_LOOP_PREV(head, elm, field) \
+ (((elm)->field.cqe_prev == (void *)(head)) \
+ ? ((head)->cqh_last) \
+ : (elm->field.cqe_prev))
+
+#endif /* sys/queue.h */
diff --git a/package/lynx/Makefile b/package/lynx/Makefile
index 77cb6ef3e..b15da35e6 100644
--- a/package/lynx/Makefile
+++ b/package/lynx/Makefile
@@ -4,9 +4,9 @@
include ${TOPDIR}/rules.mk
PKG_NAME:= lynx
-PKG_VERSION:= 2.8.7
+PKG_VERSION:= 2.8.8
PKG_RELEASE:= 1
-PKG_MD5SUM:= e36d70f3f09b2d502055ca67f09e363c
+PKG_MD5SUM:= 7caa6773f94e136556c1c30629fe1431
PKG_DESCR:= Standard text browser
PKG_SECTION:= browser
PKG_DEPENDS:= libncurses libopenssl zlib
@@ -17,7 +17,7 @@ PKG_SITES:= http://lynx.isc.org/${PKG_NAME}${PKG_VERSION}/
PKG_NOPARALLEL:= 1
DISTFILES= ${PKG_NAME}${PKG_VERSION}.tar.gz
-WRKDIST= ${WRKDIR}/lynx2-8-7
+WRKDIST= ${WRKDIR}/lynx2-8-8
include ${TOPDIR}/mk/package.mk
diff --git a/package/lynx/patches/patch-WWW_Library_Implementation_HTUtils_h b/package/lynx/patches/patch-WWW_Library_Implementation_HTUtils_h
index d16953cca..c8217b70e 100644
--- a/package/lynx/patches/patch-WWW_Library_Implementation_HTUtils_h
+++ b/package/lynx/patches/patch-WWW_Library_Implementation_HTUtils_h
@@ -1,6 +1,6 @@
---- lynx2-8-7.orig/WWW/Library/Implementation/HTUtils.h 2009-05-25 23:05:31.000000000 +0200
-+++ lynx2-8-7/WWW/Library/Implementation/HTUtils.h 2010-05-29 12:56:42.125000000 +0200
-@@ -677,6 +677,8 @@ extern int WWW_TraceMask;
+--- lynx2-8-8.orig/WWW/Library/Implementation/HTUtils.h 2014-02-05 01:50:18.000000000 +0100
++++ lynx2-8-8/WWW/Library/Implementation/HTUtils.h 2014-03-21 22:14:07.000000000 +0100
+@@ -725,6 +725,8 @@ extern int WWW_TraceMask;
#define SHORTENED_RBIND /* FIXME: do this in configure-script */
@@ -9,15 +9,15 @@
#ifdef USE_SSL
#define free_func free__func
-@@ -717,6 +719,7 @@ extern int WWW_TraceMask;
+@@ -765,6 +767,7 @@ extern int WWW_TraceMask;
#undef free_func
#endif /* USE_SSL */
+#endif
- #ifdef HAVE_LIBDMALLOC
- #include <dmalloc.h> /* Gray Watson's library */
-@@ -747,11 +750,14 @@ extern "C" {
+ #ifdef HAVE_BSD_STDLIB_H
+ #include <bsd/stdlib.h> /* prototype for arc4random.h */
+@@ -801,11 +804,14 @@ extern "C" {
extern FILE *TraceFP(void);
diff --git a/package/lynx/patches/patch-makefile_in b/package/lynx/patches/patch-makefile_in
new file mode 100644
index 000000000..5cb6b5962
--- /dev/null
+++ b/package/lynx/patches/patch-makefile_in
@@ -0,0 +1,11 @@
+--- lynx2-8-8.orig/makefile.in 2014-03-09 22:43:10.000000000 +0100
++++ lynx2-8-8/makefile.in 2014-03-21 23:17:26.000000000 +0100
+@@ -210,7 +210,7 @@ SRC_CFLAGS = \
+ WWWINC=$(WWW_DIR) \
+ WWWLIB="../$(WWW_DIR)/libwww.a"
+
+-actual_PROG = `echo lynx| sed '$(transform)'`
++actual_PROG = lynx
+ binary_PROG = $(actual_PROG)$x
+
+ all lynx$x: cfg_defs.h LYHelp.h
diff --git a/package/lynx/patches/patch-src_chrtrans_makeuctb_c b/package/lynx/patches/patch-src_chrtrans_makeuctb_c
index 9f23671e7..9972a6f8c 100644
--- a/package/lynx/patches/patch-src_chrtrans_makeuctb_c
+++ b/package/lynx/patches/patch-src_chrtrans_makeuctb_c
@@ -1,23 +1,10 @@
---- lynx2-8-7.orig/src/chrtrans/makeuctb.c 2009-02-02 02:41:02.000000000 +0100
-+++ lynx2-8-7/src/chrtrans/makeuctb.c 2010-05-29 12:55:33.031250000 +0200
-@@ -18,6 +18,7 @@
- * version 2, or at your option any later version.
- */
-
-+
- #ifndef HAVE_CONFIG_H
- /* override HTUtils.h fallbacks for cross-compiling */
- #undef HAVE_LSTAT
-@@ -28,10 +29,12 @@
+--- lynx2-8-8.orig/src/chrtrans/makeuctb.c 2013-11-29 01:52:56.000000000 +0100
++++ lynx2-8-8/src/chrtrans/makeuctb.c 2014-03-21 22:12:13.000000000 +0100
+@@ -28,6 +28,7 @@
#define DONT_USE_GETTEXT
#define DONT_USE_SOCKS5
+#define DONT_USE_SSL
#include <UCDefs.h>
#include <UCkd.h>
- #include <LYUtils.h>
-+
- /*
- * Don't try to use LYexit() since this is a standalone file.
- */
diff --git a/package/moc/Makefile b/package/moc/Makefile
index 11bc9243c..797e76b06 100644
--- a/package/moc/Makefile
+++ b/package/moc/Makefile
@@ -4,9 +4,9 @@
include ${TOPDIR}/rules.mk
PKG_NAME:= moc
-PKG_VERSION:= 2.5.0-beta1
+PKG_VERSION:= 2.5.0-beta2
PKG_RELEASE:= 1
-PKG_MD5SUM:= 795ecba86847e082aa2f21937cc04804
+PKG_MD5SUM:= da87b90b57934234589b63e347921458
PKG_DESCR:= console music player
PKG_SECTION:= multimedia
PKG_DEPENDS:= libmad libvorbis libcurl libflac
@@ -22,6 +22,7 @@ include ${TOPDIR}/mk/package.mk
$(eval $(call PKG_template,MOC,moc,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
+TARGET_CPPFLAGS+= -D_GNU_SOURCE -D_POSIX_SOURCE
TARGET_LDFLAGS+= -ltinfo
CONFIGURE_ARGS+= --without-jack \
--without-oss \
diff --git a/package/ntfs-3g/Makefile b/package/ntfs-3g/Makefile
index 5151bfd21..b893cdb53 100644
--- a/package/ntfs-3g/Makefile
+++ b/package/ntfs-3g/Makefile
@@ -4,9 +4,9 @@
include ${TOPDIR}/rules.mk
PKG_NAME:= ntfs-3g
-PKG_VERSION:= 2013.1.13
+PKG_VERSION:= 2014.2.15
PKG_RELEASE:= 1
-PKG_MD5SUM:= 2d6fb47ddf62b51733227126fe9227fe
+PKG_MD5SUM:= f11d563816249d730a00498983485f3a
PKG_DESCR:= ntfs filesystem driver
PKG_SECTION:= fs
PKG_DEPENDS:= kmod-fuse-fs
diff --git a/package/ntfs-3g/patches/patch-libfuse-lite_fusermount_c b/package/ntfs-3g/patches/patch-libfuse-lite_fusermount_c
new file mode 100644
index 000000000..eb11b0bf0
--- /dev/null
+++ b/package/ntfs-3g/patches/patch-libfuse-lite_fusermount_c
@@ -0,0 +1,10 @@
+--- ntfs-3g_ntfsprogs-2014.2.15.orig/libfuse-lite/fusermount.c 2014-02-15 15:07:52.000000000 +0100
++++ ntfs-3g_ntfsprogs-2014.2.15/libfuse-lite/fusermount.c 2014-03-23 09:53:10.000000000 +0100
+@@ -18,6 +18,7 @@
+ #include <getopt.h>
+ #include <errno.h>
+ #include <fcntl.h>
++#include <paths.h>
+ #include <pwd.h>
+
+ #ifdef __SOLARIS__
diff --git a/package/ntfs-3g/patches/patch-libfuse-lite_mount_util_c b/package/ntfs-3g/patches/patch-libfuse-lite_mount_util_c
new file mode 100644
index 000000000..1a3d8e8c5
--- /dev/null
+++ b/package/ntfs-3g/patches/patch-libfuse-lite_mount_util_c
@@ -0,0 +1,10 @@
+--- ntfs-3g_ntfsprogs-2014.2.15.orig/libfuse-lite/mount_util.c 2014-02-15 15:07:52.000000000 +0100
++++ ntfs-3g_ntfsprogs-2014.2.15/libfuse-lite/mount_util.c 2014-03-23 09:54:19.000000000 +0100
+@@ -12,6 +12,7 @@
+ #include <unistd.h>
+ #include <stdlib.h>
+ #include <string.h>
++#include <paths.h>
+ #include <dirent.h>
+ #include <errno.h>
+ #include <limits.h>
diff --git a/package/rrdcollect/Makefile b/package/rrdcollect/Makefile
index c437d5399..39a4d3b2a 100644
--- a/package/rrdcollect/Makefile
+++ b/package/rrdcollect/Makefile
@@ -4,15 +4,17 @@
include ${TOPDIR}/rules.mk
PKG_NAME:= rrdcollect
-PKG_VERSION:= 0.2.9
+PKG_VERSION:= 0.2.10
PKG_RELEASE:= 1
-PKG_MD5SUM:= 1e94eb0f8d55ebf0f042c10baebc2d3d
+PKG_MD5SUM:= 138e21fc9f2de0b8b6c89f1506394ef8
PKG_DESCR:= Round-Robin Database (RRD) collecting daemon
PKG_SECTION:= admin
PKG_DEPENDS:= librrd
PKG_BUILDDEP:= rrdtool
PKG_SITES:= ${MASTER_SITE_SOURCEFORGE:=rrdcollect/}
+DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.bz2
+
ifneq (${ADK_PACKAGE_LIBRRD},)
RRDTOOL_LIBS:= -lart_lgpl_2 -lfreetype -lpng
endif
@@ -25,8 +27,8 @@ CONFIGURE_ENV+= LIBS="${RRDTOOL_LIBS} -lz" \
ac_cv_func_malloc_0_nonnull=yes
CONFIGURE_ARGS+= --enable-exec \
--without-rrdtool \
- --with-librrd \
- --without-libpcre
+ --without-libpcre \
+ --with-librrd
TARGET_CPPFLAGS+= -DSOCKET_COMM
rrdcollect-install:
diff --git a/package/socat/Makefile b/package/socat/Makefile
index 4969a6d85..9311ddbcb 100644
--- a/package/socat/Makefile
+++ b/package/socat/Makefile
@@ -4,9 +4,9 @@
include ${TOPDIR}/rules.mk
PKG_NAME:= socat
-PKG_VERSION:= 1.7.2.3
+PKG_VERSION:= 1.7.2.4
PKG_RELEASE:= 1
-PKG_MD5SUM:= 6943f7a5e1ffd553ad2a900bbf05b83a
+PKG_MD5SUM:= 2a15dc3362f49d543abdbacc267d0a41
PKG_DESCR:= A multipurpose relay (SOcket CAT)
PKG_SECTION:= net/misc
PKG_DEPENDS:= libpthread
@@ -22,7 +22,7 @@ include ${TOPDIR}/mk/package.mk
$(eval $(call PKG_template,SOCAT,socat,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
-CONFIGURE_ENV+= sc_cv_termios_ispeed="no" \
+CONFIGURE_ENV+= sc_cv_termios_ispeed=no \
sc_cv_sys_crdly_shift=9 \
sc_cv_sys_tabdly_shift=11 \
sc_cv_sys_csize_shift=4
diff --git a/package/socat/patches/501-honor_ldflags.patch b/package/socat/patches/patch-Makefile_in
index 87c777067..e8e979607 100644
--- a/package/socat/patches/501-honor_ldflags.patch
+++ b/package/socat/patches/patch-Makefile_in
@@ -1,6 +1,5 @@
-diff -ruN socat-1.4-old/Makefile.in socat-1.4-new/Makefile.in
---- socat-1.7.2.2.orig/Makefile.in 2011-12-06 08:45:03.000000000 +0100
-+++ socat-1.7.2.2/Makefile.in 2013-12-24 16:37:21.000000000 +0100
+--- socat-1.7.2.4.orig/Makefile.in 2014-03-09 15:48:44.000000000 +0100
++++ socat-1.7.2.4/Makefile.in 2014-03-22 12:13:46.000000000 +0100
@@ -38,7 +38,8 @@ INSTALL = @INSTALL@
#0 CFLAGS = @CFLAGS@ $(CCOPTS) $(DEFS) $(INCLS)
diff --git a/package/socat/patches/patch-configure b/package/socat/patches/patch-configure
new file mode 100644
index 000000000..75b014290
--- /dev/null
+++ b/package/socat/patches/patch-configure
@@ -0,0 +1,23 @@
+--- socat-1.7.2.4.orig/configure 2014-03-09 20:57:51.000000000 +0100
++++ socat-1.7.2.4/configure 2014-03-22 12:20:13.000000000 +0100
+@@ -3347,18 +3347,8 @@ fi
+ # fail
+
+
+-
+-if test "$CC" = "gcc"; then
+- CFLAGS="$CFLAGS -D_GNU_SOURCE -Wall -Wno-parentheses"
+- ERRONWARN="-Werror -O0"
+-elif test "$CC" = "clang"; then
+- CFLAGS="$CFLAGS -D_GNU_SOURCE -Wall -Wno-parentheses"
+- ERRONWARN="-Werror -O0"
+-#elif Sun Studio
+-# ERRONWARN="-errwarn"
+-else
+- ERRONWARN=
+-fi
++CFLAGS="$CFLAGS -D_GNU_SOURCE -Wall -Wno-parentheses"
++ERRONWARN="-Werror -O0"
+ export CFLAGS
+
+
diff --git a/package/vlc/Makefile b/package/vlc/Makefile
index 67f0ec763..74ab64ef7 100644
--- a/package/vlc/Makefile
+++ b/package/vlc/Makefile
@@ -4,10 +4,10 @@
include $(TOPDIR)/rules.mk
PKG_NAME:= vlc
-PKG_VERSION:= 2.1.1
+PKG_VERSION:= 2.1.4
PKG_RELEASE:= 1
-PKG_MD5SUM:= 1331cd853d56762c96afcb92dd498348
-PKG_DESCR:= Media Player
+PKG_MD5SUM:= 7ed67d22f7425011078772bfc62ac222
+PKG_DESCR:= popular media player
PKG_SECTION:= multimedia
PKG_BUILDDEP:= ffmpeg xcb-util libtheora libgcrypt libmad
PKG_DEPENDS:= libffmpeg xcb-util libtheora libgcrypt
@@ -23,6 +23,7 @@ include $(TOPDIR)/mk/package.mk
$(eval $(call PKG_template,VLC,vlc,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
+TARGET_CPPFLAGS+= -D_GNU_SOURCE -D_POSIX_SOURCE
TARGET_CFLAGS+= -fPIC
CONFIGURE_ENV+= ac_cv_func_sched_getaffinity=no
CONFIGURE_ARGS+= --disable-lua \
diff --git a/package/vlc/patches/patch-modules_text_renderer_freetype_c b/package/vlc/patches/patch-modules_text_renderer_freetype_c
deleted file mode 100644
index 0c25fcfdf..000000000
--- a/package/vlc/patches/patch-modules_text_renderer_freetype_c
+++ /dev/null
@@ -1,11 +0,0 @@
---- vlc-2.1.1.orig/modules/text_renderer/freetype.c 2013-09-12 17:18:34.000000000 +0200
-+++ vlc-2.1.1/modules/text_renderer/freetype.c 2013-12-10 10:13:38.000000000 +0100
-@@ -90,7 +90,7 @@
- #endif
-
- /* Freetype */
--#include <freetype/ftsynth.h>
-+#include <ftsynth.h>
- #include FT_FREETYPE_H
- #include FT_GLYPH_H
- #include FT_STROKER_H
diff --git a/package/watchdog/Makefile b/package/watchdog/Makefile
index a4c6d44a5..a8486dd6a 100644
--- a/package/watchdog/Makefile
+++ b/package/watchdog/Makefile
@@ -4,9 +4,9 @@
include ${TOPDIR}/rules.mk
PKG_NAME:= watchdog
-PKG_VERSION:= 5.7
-PKG_RELEASE:= 3
-PKG_MD5SUM:= 31766450ecfc9aff70fe966c0b9df06d
+PKG_VERSION:= 5.13
+PKG_RELEASE:= 1
+PKG_MD5SUM:= 153455f008f1cf8f65f6ad9586a21ff1
PKG_DESCR:= watchdog daemon
PKG_SECTION:= utils
PKG_DEPENDS:= libtirpc
@@ -17,6 +17,7 @@ include ${TOPDIR}/mk/package.mk
$(eval $(call PKG_template,WATCHDOG,watchdog,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
+TARGET_CPPFLAGS+= -D_GNU_SOURCE
TARGET_CFLAGS+= -I$(STAGING_TARGET_DIR)/usr/include/tirpc
TARGET_LDFLAGS+= -ltirpc
diff --git a/package/watchdog/patches/patch-include_extern_h b/package/watchdog/patches/patch-include_extern_h
new file mode 100644
index 000000000..aea373525
--- /dev/null
+++ b/package/watchdog/patches/patch-include_extern_h
@@ -0,0 +1,9 @@
+--- watchdog-5.13.orig/include/extern.h 2013-02-01 12:15:44.000000000 +0100
++++ watchdog-5.13/include/extern.h 2014-03-22 15:41:57.000000000 +0100
+@@ -1,5 +1,6 @@
+ #include <netinet/in.h>
+ #include <stdio.h>
++#include <time.h>
+
+ /* external variables */
+ extern int softboot, watchdog, temp, maxtemp, tint, lastts, nrts;
diff --git a/package/watchdog/patches/patch-src_memory_c b/package/watchdog/patches/patch-src_memory_c
new file mode 100644
index 000000000..06540812e
--- /dev/null
+++ b/package/watchdog/patches/patch-src_memory_c
@@ -0,0 +1,11 @@
+--- watchdog-5.13.orig/src/memory.c 2013-02-01 12:15:44.000000000 +0100
++++ watchdog-5.13/src/memory.c 2014-03-22 16:07:15.000000000 +0100
+@@ -81,7 +81,7 @@ int check_memory(void)
+ syslog(LOG_INFO, "currently there are %d kB of free memory available", free);
+ #endif /* USE_SYSLOG */
+
+- if (free < minpages * (EXEC_PAGESIZE / 1024)) {
++ if (free < minpages * (4096 / 1024)) {
+ #if USE_SYSLOG
+ syslog(LOG_ERR, "memory %d kB is less than %d pages", free, minpages);
+ #endif /* USE_SYSLOG */
diff --git a/package/watchdog/patches/patch-src_mntent_c b/package/watchdog/patches/patch-src_mntent_c
deleted file mode 100644
index f2277bdbf..000000000
--- a/package/watchdog/patches/patch-src_mntent_c
+++ /dev/null
@@ -1,11 +0,0 @@
---- watchdog-5.7.orig/src/mntent.c 2010-01-06 13:42:08.000000000 +0100
-+++ watchdog-5.7/src/mntent.c 2010-02-06 04:39:34.804334839 +0100
-@@ -157,7 +157,7 @@ my_getmntent (mntFILE *mfp) {
- if (fgets (buf, sizeof(buf), mfp->mntent_fp) == NULL)
- return NULL;
-
-- s = index (buf, '\n');
-+ s = strchr (buf, '\n');
- if (s == NULL) {
- /* extremely long line - assume file was corrupted */
- mfp->mntent_errs = 1;
diff --git a/package/watchdog/patches/patch-src_net_c b/package/watchdog/patches/patch-src_net_c
new file mode 100644
index 000000000..da56cf791
--- /dev/null
+++ b/package/watchdog/patches/patch-src_net_c
@@ -0,0 +1,10 @@
+--- watchdog-5.13.orig/src/net.c 2013-02-01 12:15:44.000000000 +0100
++++ watchdog-5.13/src/net.c 2014-03-22 16:18:27.000000000 +0100
+@@ -6,6 +6,7 @@
+
+ #include <errno.h>
+ #include <sys/time.h>
++#include <sys/types.h>
+ #include <netinet/ip.h>
+ #include <netinet/ip_icmp.h>
+
diff --git a/package/watchdog/patches/patch-src_shutdown_c b/package/watchdog/patches/patch-src_shutdown_c
new file mode 100644
index 000000000..90ba0ee3c
--- /dev/null
+++ b/package/watchdog/patches/patch-src_shutdown_c
@@ -0,0 +1,18 @@
+--- watchdog-5.13.orig/src/shutdown.c 2013-02-01 12:15:44.000000000 +0100
++++ watchdog-5.13/src/shutdown.c 2014-03-22 16:29:44.000000000 +0100
+@@ -186,6 +186,7 @@ static void mnt_off()
+ FILE *fp;
+ struct mntent *mnt;
+
++#if defined __GLIBC__
+ fp = setmntent(MNTTAB, "r");
+ /* in some rare cases fp might be NULL so be careful */
+ while (fp != NULL && ((mnt = getmntent(fp)) != (struct mntent *) 0)) {
+@@ -241,6 +242,7 @@ static void mnt_off()
+ #endif
+ }
+ endmntent(fp);
++#endif
+ }
+
+ /* Parts of the following two functions are taken from Miquel van */
diff --git a/package/watchdog/patches/patch-src_umount_c b/package/watchdog/patches/patch-src_umount_c
deleted file mode 100644
index 6b5a82c1f..000000000
--- a/package/watchdog/patches/patch-src_umount_c
+++ /dev/null
@@ -1,11 +0,0 @@
---- watchdog-5.7.orig/src/umount.c 2010-01-06 13:42:08.000000000 +0100
-+++ watchdog-5.7/src/umount.c 2010-02-06 04:39:47.664334843 +0100
-@@ -212,7 +212,7 @@ umount_one (const char *spec, const char
- if (res < 0)
- umnt_err2 = errno;
- /* Do not complain about remote NFS mount points */
-- if (errno == ENOENT && index(spec, ':'))
-+ if (errno == ENOENT && strchr(spec, ':'))
- umnt_err2 = 0;
- }
- }
diff --git a/package/xf86-video-fbdev/Makefile b/package/xf86-video-fbdev/Makefile
index cf24b3358..b14e8eaa8 100644
--- a/package/xf86-video-fbdev/Makefile
+++ b/package/xf86-video-fbdev/Makefile
@@ -4,9 +4,9 @@
include $(TOPDIR)/rules.mk
PKG_NAME:= xf86-video-fbdev
-PKG_VERSION:= 0.4.2
+PKG_VERSION:= 0.4.4
PKG_RELEASE:= 1
-PKG_MD5SUM:= a94011aac77eb9cd6d46bf0af0dbc631
+PKG_MD5SUM:= 2b5e6dd218243cf96c1a4090596a6bba
PKG_DESCR:= X11 driver for Linux Framebuffer devices
PKG_SECTION:= x11/drivers
PKG_DEPENDS:= xorg-server
diff --git a/rules.mk b/rules.mk
index f822642d1..09323e912 100644
--- a/rules.mk
+++ b/rules.mk
@@ -36,6 +36,7 @@ ADK_TARGET_FPU:= $(strip $(subst ",, $(ADK_TARGET_FPU)))
ADK_TARGET_ARM_MODE:= $(strip $(subst ",, $(ADK_TARGET_ARM_MODE)))
ADK_TARGET_CPU_ARCH:= $(strip $(subst ",, $(ADK_TARGET_CPU_ARCH)))
ADK_TARGET_CFLAGS:= $(strip $(subst ",, $(ADK_TARGET_CFLAGS)))
+ADK_TARGET_CFLAGS_OPT:= $(strip $(subst ",, $(ADK_TARGET_CFLAGS_OPT)))
ADK_TARGET_ABI_CFLAGS:= $(strip $(subst ",, $(ADK_TARGET_ABI_CFLAGS)))
ADK_TARGET_ABI:= $(strip $(subst ",, $(ADK_TARGET_ABI)))
ADK_TARGET_MIPS_ABI:= $(strip $(subst ",, $(ADK_TARGET_MIPS_ABI)))
diff --git a/scripts/gcc-bisect.sh b/scripts/gcc-bisect.sh
new file mode 100644
index 000000000..1da4dd5d6
--- /dev/null
+++ b/scripts/gcc-bisect.sh
@@ -0,0 +1,206 @@
+#!/bin/sh
+rm -rf host_x86_64-linux-gnu target_sparc_glibc
+rm -rf gcc-*
+mkdir host_x86_64-linux-gnu
+mkdir target_sparc_glibc
+
+tar xvf binutils-2.24.tar.bz2
+cd binutils-2.24
+./configure \
+ --prefix=/home/wbx/smoke/host_x86_64-linux-gnu \
+ --target=sparc-openadk-linux-gnu \
+ --with-sysroot=/home/wbx/smoke/target_sparc_glibc \
+ --disable-dependency-tracking \
+ --disable-libtool-lock \
+ --disable-nls \
+ --disable-werror \
+ --disable-plugins \
+ --disable-libssp --disable-multilib
+make -j4 all
+make install
+cd ..
+
+tar xvf gmp-5.1.3.tar.xz
+cd gmp-5.1.3
+cp configfsf.guess config.guess
+PATH="/home/wbx/smoke/host_x86_64-linux-gnu/usr/bin:$PATH" \
+ ./configure \
+ --prefix=/home/wbx/smoke/host_x86_64-linux-gnu \
+ --with-pic \
+ --disable-shared \
+ --enable-static
+make -j4 all
+make install
+cd ..
+
+tar xvf mpfr-3.1.2.tar.xz
+cd mpfr-3.1.2
+./configure \
+ --prefix=/home/wbx/smoke/host_x86_64-linux-gnu \
+ --with-gmp-build=/home/wbx/smoke/gmp-5.1.3 \
+ --disable-shared \
+ --enable-static
+make -j4 all
+make install
+cd ..
+
+tar xvf mpc-0.8.2.tar.gz
+cd mpc-0.8.2
+./configure \
+ --prefix=/home/wbx/smoke/host_x86_64-linux-gnu \
+ --with-gmp=/home/wbx/smoke/host_x86_64-linux-gnu \
+ --disable-shared \
+ --enable-static
+make -j4 all
+make install
+make install
+cd ..
+
+tar xvf libelf-0.8.13.tar.gz
+cd libelf-0.8.13
+./configure \
+ --prefix=/home/wbx/smoke/host_x86_64-linux-gnu \
+ --disable-nls \
+ --disable-shared \
+ --enable-static
+make -j4 all
+make install
+cd ..
+
+rm -rf host_x86_64-linux-gnu/sparc-openadk-linux-gnu/{lib,sys-include}
+cd host_x86_64-linux-gnu/sparc-openadk-linux-gnu/
+ln -sf ../../target_sparc_glibc/usr/include sys-include
+ln -sf ../../target_sparc_glibc/lib lib
+cd -
+
+mkdir gcc-minimal
+cd gcc-minimal
+CFLAGS="-O0 -g0" \
+CXXFLAGS="-O0 -g0" \
+PATH="/home/wbx/smoke/host_x86_64-linux-gnu/bin:$PATH" \
+../gcc/configure \
+ --prefix=/home/wbx/smoke/host_x86_64-linux-gnu --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=sparc-openadk-linux-gnu --with-gmp=/home/wbx/smoke/host_x86_64-linux-gnu --with-mpfr=/home/wbx/smoke/host_x86_64-linux-gnu --with-libelf=/home/wbx/smoke/host_x86_64-linux-gnu --disable-__cxa_atexit --with-gnu-ld --with-gnu-as --enable-tls --disable-libsanitizer --disable-libitm --disable-libmudflap --disable-libgomp --disable-decimal-float --disable-libstdcxx-pch --disable-ppl-version-check --disable-cloog-version-check --without-system-zlib --without-ppl --without-cloog --without-isl --disable-nls --enable-target-optspace \
+ --enable-languages=c \
+ --disable-multilib \
+ --disable-lto \
+ --disable-libssp \
+ --disable-shared \
+ --without-headers
+PATH="/home/wbx/smoke/host_x86_64-linux-gnu/bin:$PATH" make -j4 all-gcc
+if [ $? -ne 0 ];then
+ echo failed
+ exit
+fi
+PATH="/home/wbx/smoke/host_x86_64-linux-gnu/bin:$PATH" make install-gcc
+if [ $? -ne 0 ];then
+ echo failed
+ exit
+fi
+cd ..
+
+cd linux-3.13.6
+make V=1 ARCH=sparc CROSS_COMPILE="/home/wbx/smoke/host_x86_64-linux-gnu/bin/sparc-openadk-linux-gnu-" CC="/home/wbx/smoke/host_x86_64-linux-gnu/bin/sparc-openadk-linux-gnu-gcc" HOSTCC="cc" CONFIG_SHELL='/bin/bash' HOSTCFLAGS='-O2 -Wall' INSTALL_HDR_PATH=/home/wbx/smoke/target_sparc_glibc/usr headers_install
+cd ..
+
+cd glibc-2.19-header
+libc_cv_forced_unwind=yes \
+libc_cv_cc_with_libunwind=yes \
+libc_cv_c_cleanup=yes \
+libc_cv_gnu99_inline=yes \
+libc_cv_initfini_array=yes \
+PATH="/home/wbx/smoke/host_x86_64-linux-gnu/bin:$PATH" ../glibc-2.19/configure \
+ --prefix=/home/wbx/smoke/target_sparc_glibc/usr \
+ --with-sysroot=/home/wbx/smoke/target_sparc_glibc \
+ --build=x86_64-linux-gnu --host=sparc-openadk-linux-gnu --with-headers=/home/wbx/smoke/target_sparc_glibc/usr/include --disable-sanity-checks --disable-nls --without-cvs --disable-profile --disable-debug --without-gd --disable-nscd --with-__thread --with-tls --enable-kernel="2.6.32" --enable-add-ons
+PATH="/home/wbx/smoke/host_x86_64-linux-gnu/bin:$PATH" make cross-compiling=yes PARALLELMFLAGS="-j1" install-headers
+if [ $? -ne 0 ];then
+ echo failed
+ exit
+fi
+cd ..
+touch target_sparc_glibc/usr/include/gnu/stubs.h
+
+mkdir gcc-initial
+cd gcc-initial
+CFLAGS="-O0 -g0" \
+CXXFLAGS="-O0 -g0" \
+PATH="/home/wbx/smoke/host_x86_64-linux-gnu/bin:$PATH" ../gcc/configure \
+ --prefix=/home/wbx/smoke/host_x86_64-linux-gnu --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=sparc-openadk-linux-gnu --with-gmp=/home/wbx/smoke/host_x86_64-linux-gnu --with-mpfr=/home/wbx/smoke/host_x86_64-linux-gnu --with-libelf=/home/wbx/smoke/host_x86_64-linux-gnu --disable-__cxa_atexit --with-gnu-ld --with-gnu-as --enable-tls --disable-libsanitizer --disable-libitm --disable-libmudflap --disable-libgomp --disable-decimal-float --disable-libstdcxx-pch --disable-ppl-version-check --disable-cloog-version-check --without-system-zlib --without-ppl --without-cloog --without-isl --disable-nls --enable-target-optspace \
+ --disable-biarch --disable-multilib --enable-libssp --enable-lto \
+ --enable-languages=c \
+ --disable-shared \
+ --disable-threads \
+ --with-sysroot=/home/wbx/smoke/target_sparc_glibc
+PATH="/home/wbx/smoke/host_x86_64-linux-gnu/bin:$PATH" make all-gcc
+if [ $? -ne 0 ];then
+ echo failed
+ exit
+fi
+PATH="/home/wbx/smoke/host_x86_64-linux-gnu/bin:$PATH" make all-target-libgcc
+if [ $? -ne 0 ];then
+ echo failed
+ exit
+fi
+PATH="/home/wbx/smoke/host_x86_64-linux-gnu/bin:$PATH" make install-gcc install-target-libgcc
+if [ $? -ne 0 ];then
+ echo failed
+ exit
+fi
+cd ..
+
+cd glibc-2.19-final
+PATH="/home/wbx/smoke/host_x86_64-linux-gnu/bin:$PATH" SHELL='/bin/bash' BUILD_CC=cc CFLAGS="-mcpu=v8 -fwrapv -fno-ident -fomit-frame-pointer -O2 -pipe -fno-unwind-tables -fno-asynchronous-unwind-tables -g3" CC="/home/wbx/smoke/host_x86_64-linux-gnu/bin/sparc-openadk-linux-gnu-gcc" CXX="/home/wbx/smoke/host_x86_64-linux-gnu/bin/sparc-openadk-linux-gnu-g++" AR="/home/wbx/smoke/host_x86_64-linux-gnu/bin/sparc-openadk-linux-gnu-ar" RANLIB="/home/wbx/smoke/host_x86_64-linux-gnu/bin/sparc-openadk-linux-gnu-ranlib" libc_cv_forced_unwind=yes libc_cv_cc_with_libunwind=yes libc_cv_c_cleanup=yes libc_cv_gnu99_inline=yes libc_cv_initfini_array=yes \
+../glibc-2.19/configure \
+ --prefix=/usr \
+ --enable-shared \
+ --enable-stackguard-randomization \
+ --build=x86_64-linux-gnu --host=sparc-openadk-linux-gnu --with-headers=/home/wbx/smoke/target_sparc_glibc/usr/include --disable-sanity-checks --disable-nls --without-cvs --disable-profile --disable-debug --without-gd --disable-nscd --with-__thread --with-tls --enable-kernel="2.6.32" --enable-add-ons
+PATH="/home/wbx/smoke/host_x86_64-linux-gnu/bin:$PATH" make all
+PATH="/home/wbx/smoke/host_x86_64-linux-gnu/bin:$PATH" make install_root=/home/wbx/smoke/target_sparc_glibc install
+if [ $? -ne 0 ];then
+ echo failed
+ exit
+fi
+cd ..
+
+mkdir gcc-final
+cd gcc-final
+../gcc/configure \
+ --prefix=/home/wbx/smoke/host_x86_64-linux-gnu --with-bugurl="http://www.openadk.org/" --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=sparc-openadk-linux-gnu --with-gmp=/home/wbx/smoke/host_x86_64-linux-gnu --with-mpfr=/home/wbx/smoke/host_x86_64-linux-gnu --with-libelf=/home/wbx/smoke/host_x86_64-linux-gnu --disable-__cxa_atexit --with-gnu-ld --with-gnu-as --enable-tls --disable-libsanitizer --disable-libitm --disable-libmudflap --disable-libgomp --disable-decimal-float --disable-libstdcxx-pch --disable-ppl-version-check --disable-cloog-version-check --without-system-zlib --without-ppl --without-cloog --without-isl --disable-nls --enable-target-optspace \
+ --disable-biarch --disable-multilib --enable-libssp --enable-lto \
+ --enable-languages=c,c++ \
+ --with-build-sysroot='${prefix}/../target_sparc_glibc' \
+ --with-sysroot='${prefix}/../target_sparc_glibc' \
+ --enable-shared
+make -j4 all
+if [ $? -ne 0 ];then
+ echo failed
+ exit
+fi
+make install
+if [ $? -ne 0 ];then
+ echo failed
+ exit
+fi
+cd ..
+
+cd linux-3.13.6/
+cat > mini.config <<EOF
+CONFIG_SPARC=y
+CONFIG_SPARC32=y
+CONFIG_SBUS=y
+CONFIG_SBUSCHAR=y
+CONFIG_PCI=y
+CONFIG_PCI_SYSCALL=y
+CONFIG_PCIC_PCI=y
+CONFIG_OF=y
+CONFIG_NET_VENDOR_AMD=y
+CONFIG_SUNLANCE=y
+CONFIG_SERIAL_CONSOLE=y
+CONFIG_SERIAL_SUNCORE=y
+CONFIG_SERIAL_SUNZILOG=y
+CONFIG_SERIAL_SUNZILOG_CONSOLE=y
+EOF
+
+PATH="/home/wbx/smoke/host_x86_64-linux-gnu/bin:$PATH" make V=1 ARCH=sparc CROSS_COMPILE="/home/wbx/smoke/host_x86_64-linux-gnu/bin/sparc-openadk-linux-gnu-" CC="/home/wbx/smoke/host_x86_64-linux-gnu/bin/sparc-openadk-linux-gnu-gcc" HOSTCC="cc" CONFIG_SHELL='/bin/bash' HOSTCFLAGS='-O2 -Wall' KCONFIG_ALLCONFIG=mini.config allnoconfig
+PATH="/home/wbx/smoke/host_x86_64-linux-gnu/bin:$PATH" make V=1 ARCH=sparc CROSS_COMPILE="/home/wbx/smoke/host_x86_64-linux-gnu/bin/sparc-openadk-linux-gnu-" CC="/home/wbx/smoke/host_x86_64-linux-gnu/bin/sparc-openadk-linux-gnu-gcc" HOSTCC="cc" CONFIG_SHELL='/bin/bash' HOSTCFLAGS='-O2 -Wall' -j4 zImage
diff --git a/target/arm/sys-available/cubox-i b/target/arm/sys-available/cubox-i
index 97a9a84b4..8c87c9791 100644
--- a/target/arm/sys-available/cubox-i
+++ b/target/arm/sys-available/cubox-i
@@ -12,6 +12,7 @@ config ADK_TARGET_SYSTEM_CUBOX_I
select ADK_TARGET_WITH_USB
select ADK_TARGET_WITH_INPUT
select ADK_TARGET_KERNEL_ZIMAGE
+ select ADK_TARGET_WITH_ROOT_RW
select ADK_PACKAGE_U_BOOT_CUBOX_I
help
Cubox-i
diff --git a/target/arm/sys-available/raspberry-pi b/target/arm/sys-available/raspberry-pi
index e91e0e4a1..472db927a 100644
--- a/target/arm/sys-available/raspberry-pi
+++ b/target/arm/sys-available/raspberry-pi
@@ -12,6 +12,7 @@ config ADK_TARGET_SYSTEM_RASPBERRY_PI
select ADK_TARGET_WITH_USB
select ADK_TARGET_WITH_INPUT
select ADK_PACKAGE_BCM2835_BOOTLOADER
+ select ADK_TARGET_WITH_ROOT_RW
select ADK_TARGET_KERNEL_ZIMAGE
help
Raspberry PI
diff --git a/target/arm/target.mk b/target/arm/target.mk
index 677e112f7..87db1e279 100644
--- a/target/arm/target.mk
+++ b/target/arm/target.mk
@@ -1,5 +1,4 @@
include $(TOPDIR)/mk/kernel-ver.mk
ARCH:= arm
CPU_ARCH:= $(ADK_TARGET_CPU_ARCH)
-TARGET_OPTIMIZATION:= -Os -pipe
TARGET_CFLAGS_ARCH:= $(ADK_TARGET_CFLAGS)
diff --git a/target/config/Config.in b/target/config/Config.in
index 6125a2c81..84f19adec 100644
--- a/target/config/Config.in
+++ b/target/config/Config.in
@@ -218,12 +218,12 @@ choice
prompt "Qemu MICROBLAZE Emulation"
depends on ADK_TARGET_SYSTEM_QEMU_MICROBLAZE || ADK_TARGET_SYSTEM_QEMU_MICROBLAZEEL
-config ADK_TARGET_QEMU_MICROBLAZE_MODEL_ML605
- boolean "Xilinx ml605"
-
config ADK_TARGET_QEMU_MICROBLAZE_MODEL_S3ADSP1800
boolean "Xilinx Spartan S3ADSP1800"
+config ADK_TARGET_QEMU_MICROBLAZE_MODEL_ML605
+ boolean "Xilinx ml605"
+
endchoice
choice
@@ -254,6 +254,8 @@ choice
prompt "Qemu Emulation with permanent storage device (disk/flash)"
depends on ADK_HARDWARE_QEMU
default ADK_TARGET_QEMU_WITH_BLOCK if ADK_TARGET_ROOTFS_ARCHIVE
+default ADK_TARGET_QEMU_WITH_BLOCK if ADK_TARGET_ROOTFS_SQUASHFS
+default ADK_TARGET_QEMU_WITH_BLOCK if ADK_TARGET_ROOTFS_JFFS2
config ADK_TARGET_QEMU_WITHOUT_BLOCK
boolean "disabled"
@@ -261,12 +263,14 @@ config ADK_TARGET_QEMU_WITHOUT_BLOCK
config ADK_TARGET_QEMU_WITH_BLOCK
boolean "enabled"
select ADK_KERNEL_SCSI_SYM53C8XX_2 if ADK_TARGET_QEMU_ARM_MODEL_VERSATILEPB
- select ADK_KERNEL_MTD_M25P80 if ADK_TARGET_QEMU_MICROBLAZE_MODEL_ML605
+ select ADK_KERNEL_MTD_M25P80 if ADK_TARGET_QEMU_MICROBLAZE_MODEL_ML605 || ADK_TARGET_QEMU_MICROBLAZE_MODEL_S3ADSP1800
select ADK_KERNEL_ATA_PIIX if ADK_LINUX_MIPS || ADK_TARGET_SYSTEM_QEMU_I686 || ADK_TARGET_SYSTEM_QEMU_X86_64
select ADK_KERNEL_PATA_MACIO if ADK_TARGET_SYSTEM_QEMU_PPC
select ADK_KERNEL_SCSI_IBMVSCSI if ADK_TARGET_SYSTEM_QEMU_PPC64
select ADK_KERNEL_SCSI_SUNESP if ADK_TARGET_SYSTEM_QEMU_SPARC
select ADK_KERNEL_PATA_PLATFORM if ADK_LINUX_SH
+ select ADK_HOST_NEED_JFFS2 if ADK_TARGET_QEMU_MICROBLAZE_MODEL_ML605 || ADK_TARGET_QEMU_MICROBLAZE_MODEL_S3ADSP1800
+ select ADK_HOST_NEED_SQUASHFS if ADK_TARGET_QEMU_MICROBLAZE_MODEL_ML605 || ADK_TARGET_QEMU_MICROBLAZE_MODEL_S3ADSP1800
endchoice
@@ -773,15 +777,16 @@ config ADK_TARGET_ROOTFS_SQUASHFS
bool "Compressed read-only root filesystem (squashfs)"
select ADK_KERNEL_SQUASHFS
select ADK_HOST_NEED_SQUASHFS
+ select ADK_TARGET_QEMU_WITH_BLOCK if ADK_HARDWARE_QEMU
depends on ADK_TARGET_WITH_MTD
help
highly compressed read-only filesystem for MTD flash systems.
config ADK_TARGET_ROOTFS_JFFS2
bool "Compressed read-write root filesystem (jffs2)"
- select ADK_KERNEL_MISC_FILESYSTEMS
- select ADK_KERNEL_JFFS2
+ select ADK_KERNEL_JFFS2_FS
select ADK_HOST_NEED_JFFS2
+ select ADK_TARGET_QEMU_WITH_BLOCK if ADK_HARDWARE_QEMU
depends on ADK_TARGET_WITH_MTD
help
compressed read-write filesystem for MTD flash systems.
diff --git a/target/config/Config.in.adk b/target/config/Config.in.adk
index 27b72941e..0c598e50c 100644
--- a/target/config/Config.in.adk
+++ b/target/config/Config.in.adk
@@ -19,6 +19,13 @@ config ADK_DL_DIR
Configure the download directory for all source packages.
Use an absolute path.
+config ADK_TARGET_CFLAGS_OPT
+ string "optimization flags for compiler"
+ default "-Os -pipe"
+ help
+ Compilation is only verfied with optimization for code size (Os).
+ Other stuff (O2) might break. Will not be used when ADK_DEBUG is on.
+
config ADK_DEBUG
bool "Compile applications with debug support by default"
default n
diff --git a/target/config/Config.in.runtime b/target/config/Config.in.runtime
index 7acdd26ed..a6f504a49 100644
--- a/target/config/Config.in.runtime
+++ b/target/config/Config.in.runtime
@@ -39,6 +39,7 @@ config ADK_RUNTIME_TIMEZONE
choice
prompt "Start getty or shell after bootup"
default ADK_RUNTIME_GETTY
+default ADK_RUNTIME_SHELL if ADK_PKG_TEST
config ADK_RUNTIME_GETTY
boolean "start a getty after bootup"
diff --git a/target/config/Config.in.tools b/target/config/Config.in.tools
index 7e37f5ec1..b232a3674 100644
--- a/target/config/Config.in.tools
+++ b/target/config/Config.in.tools
@@ -38,6 +38,10 @@ config ADK_HOST_NEED_CCACHE
boolean
default n
+config ADK_HOST_NEED_MKIMAGE
+ boolean
+ default n
+
config ADK_HOST_NEED_PCRE
boolean
default y if ADK_HOST_DARWIN
diff --git a/target/linux/config/Config.in.debug b/target/linux/config/Config.in.debug
index 019c439d8..a1c7ae6c9 100644
--- a/target/linux/config/Config.in.debug
+++ b/target/linux/config/Config.in.debug
@@ -34,7 +34,7 @@ config ADK_KERNEL_PRINTK
boolean
select ADK_KERNEL_EARLY_PRINTK
default y
- #depends on !ADK_PKG_TEST
+ depends on !ADK_PKG_TEST
help
Disable printk to save space and quieten bootup.
diff --git a/target/linux/config/Config.in.flash b/target/linux/config/Config.in.flash
index d8f4faf0f..dda8ad4c9 100644
--- a/target/linux/config/Config.in.flash
+++ b/target/linux/config/Config.in.flash
@@ -99,6 +99,8 @@ config ADK_KERNEL_MTD_M25P80
select ADK_KERNEL_MTD_PHYSMAP
select ADK_KERNEL_MTD_PHYSMAP_OF
select ADK_KERNEL_MTD_OF_PARTS
+ select ADK_KERNEL_SPI
+ select ADK_KERNEL_SPI_MASTER
boolean
default n
@@ -145,6 +147,6 @@ config ADK_TARGET_MTD
config ADK_TARGET_MTD_SIZE
int
- default "33554432" if ADK_TARGET_SYSTEM_QEMU_MICROBLAZE
- default "33554432" if ADK_TARGET_SYSTEM_QEMU_MICROBLAZEEL
+ default "16777216" if ADK_TARGET_QEMU_MICROBLAZE_MODEL_S3ADSP1800
+ default "33554432" if ADK_TARGET_QEMU_MICROBLAZE_MODEL_ML605
default "0"
diff --git a/target/linux/config/Config.in.fs b/target/linux/config/Config.in.fs
index 377122dc5..3cb0517ac 100644
--- a/target/linux/config/Config.in.fs
+++ b/target/linux/config/Config.in.fs
@@ -11,9 +11,6 @@ config ADK_KERNEL_EXPORTFS
boolean
default y
-config ADK_KERNEL_JFFS2_FS
- boolean
-
config ADK_KERNEL_YAFFS_FS
tristate
@@ -51,6 +48,21 @@ config ADK_KERNEL_SQUASHFS_XZ
boolean
default n
+config ADK_KERNEL_JFFS2_COMPRESSION_OPTIONS
+ boolean
+ default n
+
+config ADK_KERNEL_JFFS2_ZLIB
+ boolean
+ default n
+
+config ADK_KERNEL_JFFS2_FS
+ prompt "jffs2............................. JFFS2 filesystem"
+ select ADK_KERNEL_MISC_FILESYSTEMS
+ select ADK_KERNEL_JFFS2_COMPRESSION_OPTIONS
+ select ADK_KERNEL_JFFS2_ZLIB
+ boolean
+
config ADK_KERNEL_SQUASHFS
prompt "squashfs.......................... SquashFS filesystem"
boolean
@@ -223,7 +235,7 @@ config ADK_KPACKAGE_KMOD_XFS_FS
with the IRIX version of XFS.
config ADK_KPACKAGE_KMOD_FUSE_FS
- prompt "kmod-fs-fuse...................... Filesystem in Userspace support"
+ prompt "kmod-fuse-fs...................... Filesystem in Userspace support"
tristate
default n
help
diff --git a/target/linux/config/Config.in.spi b/target/linux/config/Config.in.spi
index 73db5e86d..c130523ef 100644
--- a/target/linux/config/Config.in.spi
+++ b/target/linux/config/Config.in.spi
@@ -1,6 +1,12 @@
config ADK_KERNEL_SPI
boolean
+config ADK_KERNEL_SPI_MASTER
+ boolean
+
+config ADK_KERNEL_SPI_XILINX
+ boolean
+
config ADK_KERNEL_SPI_AR71XX
select ADK_KERNEL_SPI
boolean
diff --git a/target/m68k/target.mk b/target/m68k/target.mk
index 1460b732b..80b1424a6 100644
--- a/target/m68k/target.mk
+++ b/target/m68k/target.mk
@@ -1,5 +1,4 @@
include $(TOPDIR)/mk/kernel-ver.mk
ARCH:= m68k
CPU_ARCH:= $(ADK_TARGET_CPU_ARCH)
-TARGET_OPTIMIZATION:= -Os -pipe
TARGET_CFLAGS_ARCH:= $(ADK_TARGET_CFLAGS)
diff --git a/target/microblaze/Makefile b/target/microblaze/Makefile
index 5ab2345e7..58d02c5be 100644
--- a/target/microblaze/Makefile
+++ b/target/microblaze/Makefile
@@ -10,12 +10,10 @@ include $(TOPDIR)/mk/image.mk
KERNEL:=$(LINUX_DIR)/arch/microblaze/boot/$(ADK_TARGET_KERNEL)
ifeq ($(ADK_TARGET_QEMU_MICROBLAZE_MODEL_ML605),y)
-MODEL:=petalogix-ml605
-DTB:=-dtb target/microblaze/ml605.dtb
+QEMU_ARGS+=-M petalogix-ml605 -dtb target/microblaze/ml605.dtb
endif
ifeq ($(ADK_TARGET_QEMU_MICROBLAZE_MODEL_S3ADSP1800),y)
-MODEL:=petalogix-s3adsp1800
-DTB:=
+QEMU_ARGS+=-M petalogix-s3adsp1800
endif
ifeq ($(ADK_TARGET_FS),squashfs)
@@ -25,7 +23,7 @@ imageinstall: $(BUILD_DIR)/root.squashfs
@cp $(KERNEL) $(FW_DIR)/$(TARGET_KERNEL)
ifneq ($(ADK_HARDWARE_QEMU),)
@echo "Start qemu with following options:"
- @echo 'qemu-system-${CPU_ARCH} -M $(MODEL) -nographic -kernel $(FW_DIR)/$(TARGET_KERNEL) -pflash $(FW_DIR)/$(ROOTFSSQUASHFS) $(DTB)'
+ @echo 'qemu-system-${CPU_ARCH} $(QEMU_ARGS) -nographic -kernel $(FW_DIR)/$(TARGET_KERNEL) -pflash $(FW_DIR)/$(ROOTFSSQUASHFS)'
endif
endif
ifeq ($(ADK_TARGET_FS),jffs2)
@@ -33,7 +31,7 @@ imageinstall: $(FW_DIR)/$(ROOTFSJFFS2)
@cp $(KERNEL) $(FW_DIR)/$(TARGET_KERNEL)
ifneq ($(ADK_HARDWARE_QEMU),)
@echo "Start qemu with following options:"
- @echo 'qemu-system-${CPU_ARCH} -M $(MODEL) -nographic -kernel $(FW_DIR)/$(TARGET_KERNEL) -pflash $(FW_DIR)/$(ROOTFSJFFS2) $(DTB)'
+ @echo 'qemu-system-${CPU_ARCH} $(QEMU_ARGS) -nographic -kernel $(FW_DIR)/$(TARGET_KERNEL) -pflash $(FW_DIR)/$(ROOTFSJFFS2)'
endif
endif
ifeq ($(ADK_TARGET_FS),initramfs)
@@ -43,7 +41,7 @@ imageinstall: $(FW_DIR)/$(INITRAMFS)
@echo 'The initramfs image is: ${FW_DIR}/${INITRAMFS}'
ifneq ($(ADK_HARDWARE_QEMU),)
@echo "Start qemu with following command line:"
- @echo 'qemu-system-${CPU_ARCH} -M $(MODEL) -nographic -kernel $(FW_DIR)/$(TARGET_KERNEL) -initrd ${FW_DIR}/${INITRAMFS} $(DTB)'
+ @echo 'qemu-system-${CPU_ARCH} $(QEMU_ARGS) -nographic -kernel $(FW_DIR)/$(TARGET_KERNEL) -initrd ${FW_DIR}/${INITRAMFS}'
endif
endif
ifeq ($(ADK_TARGET_FS),initramfs-piggyback)
@@ -52,7 +50,7 @@ imageinstall: createinitramfs
@echo 'The kernel+initramfs file is: $(FW_DIR)/${TARGET_KERNEL}'
ifneq ($(ADK_HARDWARE_QEMU),)
@echo "Start qemu with following command line:"
- @echo 'qemu-system-${CPU_ARCH} -M $(MODEL) -nographic -kernel $(FW_DIR)/$(TARGET_KERNEL) $(DTB)'
+ @echo 'qemu-system-${CPU_ARCH} $(QEMU_ARGS) -nographic -kernel $(FW_DIR)/$(TARGET_KERNEL)'
endif
endif
ifeq ($(ADK_TARGET_FS),archive)
diff --git a/target/microblaze/kernel/qemu-microblaze-ml605 b/target/microblaze/kernel/qemu-microblaze-ml605
index 8d13c5ddd..cb8da0cec 100644
--- a/target/microblaze/kernel/qemu-microblaze-ml605
+++ b/target/microblaze/kernel/qemu-microblaze-ml605
@@ -22,3 +22,4 @@ CONFIG_SERIAL_8250_CONSOLE=y
CONFIG_SERIAL_8250_NR_UARTS=1
CONFIG_SERIAL_8250_RUNTIME_UARTS=1
CONFIG_SERIAL_OF_PLATFORM=y
+CONFIG_CMDLINE_FORCE=y
diff --git a/target/microblaze/kernel/qemu-microblaze-s3adsp1800 b/target/microblaze/kernel/qemu-microblaze-s3adsp1800
index fc43ab5f1..3c3546b47 100644
--- a/target/microblaze/kernel/qemu-microblaze-s3adsp1800
+++ b/target/microblaze/kernel/qemu-microblaze-s3adsp1800
@@ -19,3 +19,4 @@ CONFIG_NET_VENDOR_XILINX=y
CONFIG_XILINX_EMACLITE=y
CONFIG_SERIAL_UARTLITE=y
CONFIG_SERIAL_UARTLITE_CONSOLE=y
+CONFIG_CMDLINE_FORCE=y
diff --git a/target/microblaze/s3adsp1800.dtb b/target/microblaze/s3adsp1800.dtb
new file mode 100644
index 000000000..163f1632d
--- /dev/null
+++ b/target/microblaze/s3adsp1800.dtb
Binary files differ
diff --git a/target/microblaze/s3adsp1800.dts b/target/microblaze/s3adsp1800.dts
new file mode 100644
index 000000000..9cc6bdc13
--- /dev/null
+++ b/target/microblaze/s3adsp1800.dts
@@ -0,0 +1,287 @@
+/dts-v1/;
+
+/ {
+ #address-cells = <0x1>;
+ #size-cells = <0x1>;
+ compatible = "xlnx,microblaze";
+ model = "testing";
+
+ memory@90000000 {
+ device_type = "memory";
+ reg = <0x90000000 0x8000000>;
+ };
+
+ chosen {
+ bootargs = "console=ttyUL0,115200";
+ linux,stdout-path = "/plb@0/serial@84000000";
+ };
+
+ cpus {
+ #address-cells = <0x1>;
+ #cpus = <0x1>;
+ #size-cells = <0x0>;
+
+ cpu@0 {
+ clock-frequency = <0x3b9aca0>;
+ compatible = "xlnx,microblaze-7.10.d";
+ d-cache-baseaddr = <0x90000000>;
+ d-cache-highaddr = <0x97ffffff>;
+ d-cache-line-size = <0x10>;
+ d-cache-size = <0x800>;
+ device_type = "cpu";
+ i-cache-baseaddr = <0x90000000>;
+ i-cache-highaddr = <0x97ffffff>;
+ i-cache-line-size = <0x10>;
+ i-cache-size = <0x800>;
+ model = "microblaze,7.10.d";
+ reg = <0x0>;
+ timebase-frequency = <0x3b9aca0>;
+ xlnx,addr-tag-bits = <0x10>;
+ xlnx,allow-dcache-wr = <0x1>;
+ xlnx,allow-icache-wr = <0x1>;
+ xlnx,area-optimized = <0x0>;
+ xlnx,cache-byte-size = <0x800>;
+ xlnx,d-lmb = <0x1>;
+ xlnx,d-opb = <0x0>;
+ xlnx,d-plb = <0x1>;
+ xlnx,data-size = <0x20>;
+ xlnx,dcache-addr-tag = <0x10>;
+ xlnx,dcache-always-used = <0x0>;
+ xlnx,dcache-byte-size = <0x800>;
+ xlnx,dcache-line-len = <0x4>;
+ xlnx,dcache-use-fsl = <0x1>;
+ xlnx,debug-enabled = <0x1>;
+ xlnx,div-zero-exception = <0x0>;
+ xlnx,dopb-bus-exception = <0x0>;
+ xlnx,dynamic-bus-sizing = <0x1>;
+ xlnx,edge-is-positive = <0x1>;
+ xlnx,family = "spartan3adsp";
+ xlnx,fpu-exception = <0x0>;
+ xlnx,fsl-data-size = <0x20>;
+ xlnx,fsl-exception = <0x0>;
+ xlnx,fsl-links = <0x0>;
+ xlnx,i-lmb = <0x1>;
+ xlnx,i-opb = <0x0>;
+ xlnx,i-plb = <0x1>;
+ xlnx,icache-always-used = <0x0>;
+ xlnx,icache-line-len = <0x4>;
+ xlnx,icache-use-fsl = <0x1>;
+ xlnx,ill-opcode-exception = <0x0>;
+ xlnx,instance = "microblaze_0";
+ xlnx,interconnect = <0x1>;
+ xlnx,interrupt-is-edge = <0x0>;
+ xlnx,iopb-bus-exception = <0x0>;
+ xlnx,mmu-dtlb-size = <0x4>;
+ xlnx,mmu-itlb-size = <0x2>;
+ xlnx,mmu-tlb-access = <0x3>;
+ xlnx,mmu-zones = <0x10>;
+ xlnx,number-of-pc-brk = <0x3>;
+ xlnx,number-of-rd-addr-brk = <0x2>;
+ xlnx,number-of-wr-addr-brk = <0x2>;
+ xlnx,opcode-0x0-illegal = <0x0>;
+ xlnx,pvr = <0x1>;
+ xlnx,pvr-user1 = <0x0>;
+ xlnx,pvr-user2 = <0x0>;
+ xlnx,reset-msr = <0x0>;
+ xlnx,sco = <0x0>;
+ xlnx,unaligned-exceptions = <0x1>;
+ xlnx,use-barrel = <0x1>;
+ xlnx,use-dcache = <0x1>;
+ xlnx,use-div = <0x0>;
+ xlnx,use-ext-brk = <0x1>;
+ xlnx,use-ext-nm-brk = <0x1>;
+ xlnx,use-extended-fsl-instr = <0x0>;
+ xlnx,use-fpu = <0x0>;
+ xlnx,use-hw-mul = <0x1>;
+ xlnx,use-icache = <0x1>;
+ xlnx,use-interrupt = <0x1>;
+ xlnx,use-mmu = <0x3>;
+ xlnx,use-msr-instr = <0x1>;
+ xlnx,use-pcmp-instr = <0x1>;
+ };
+ };
+
+ plb@0 {
+ #address-cells = <0x1>;
+ #size-cells = <0x1>;
+ compatible = "xlnx,plb-v46-1.03.a", "simple-bus";
+ ranges;
+
+ ethernet@81000000 {
+ compatible = "xlnx,xps-ethernetlite-2.00.b";
+ device_type = "network";
+ interrupt-parent = <0x1>;
+ interrupts = <0x1 0x0>;
+ local-mac-address = [02 00 00 00 00 00];
+ reg = <0x81000000 0x10000>;
+ xlnx,duplex = <0x1>;
+ xlnx,family = "spartan3adsp";
+ xlnx,rx-ping-pong = <0x0>;
+ xlnx,tx-ping-pong = <0x0>;
+ };
+
+ flash@a0000000 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ bank-width = <0x1>;
+ compatible = "xlnx,xps-mch-emc-2.00.a", "cfi-flash";
+ reg = <0xa0000000 0x1000000>;
+ xlnx,family = "spartan3adsp";
+ xlnx,include-datawidth-matching-0 = <0x1>;
+ xlnx,include-datawidth-matching-1 = <0x0>;
+ xlnx,include-datawidth-matching-2 = <0x0>;
+ xlnx,include-datawidth-matching-3 = <0x0>;
+ xlnx,include-negedge-ioregs = <0x0>;
+ xlnx,include-plb-ipif = <0x1>;
+ xlnx,include-wrbuf = <0x1>;
+ xlnx,max-mem-width = <0x8>;
+ xlnx,mch-native-dwidth = <0x20>;
+ xlnx,mch-plb-clk-period-ps = <0x3e80>;
+ xlnx,mch-splb-awidth = <0x20>;
+ xlnx,mch0-accessbuf-depth = <0x10>;
+ xlnx,mch0-protocol = <0x0>;
+ xlnx,mch0-rddatabuf-depth = <0x10>;
+ xlnx,mch1-accessbuf-depth = <0x10>;
+ xlnx,mch1-protocol = <0x0>;
+ xlnx,mch1-rddatabuf-depth = <0x10>;
+ xlnx,mch2-accessbuf-depth = <0x10>;
+ xlnx,mch2-protocol = <0x0>;
+ xlnx,mch2-rddatabuf-depth = <0x10>;
+ xlnx,mch3-accessbuf-depth = <0x10>;
+ xlnx,mch3-protocol = <0x0>;
+ xlnx,mch3-rddatabuf-depth = <0x10>;
+ xlnx,mem0-width = <0x8>;
+ xlnx,mem1-width = <0x20>;
+ xlnx,mem2-width = <0x20>;
+ xlnx,mem3-width = <0x20>;
+ xlnx,num-banks-mem = <0x1>;
+ xlnx,num-channels = <0x0>;
+ xlnx,priority-mode = <0x0>;
+ xlnx,synch-mem-0 = <0x0>;
+ xlnx,synch-mem-1 = <0x0>;
+ xlnx,synch-mem-2 = <0x0>;
+ xlnx,synch-mem-3 = <0x0>;
+ xlnx,synch-pipedelay-0 = <0x2>;
+ xlnx,synch-pipedelay-1 = <0x2>;
+ xlnx,synch-pipedelay-2 = <0x2>;
+ xlnx,synch-pipedelay-3 = <0x2>;
+ xlnx,tavdv-ps-mem-0 = <0x11170>;
+ xlnx,tavdv-ps-mem-1 = <0x3a98>;
+ xlnx,tavdv-ps-mem-2 = <0x3a98>;
+ xlnx,tavdv-ps-mem-3 = <0x3a98>;
+ xlnx,tcedv-ps-mem-0 = <0x11170>;
+ xlnx,tcedv-ps-mem-1 = <0x3a98>;
+ xlnx,tcedv-ps-mem-2 = <0x3a98>;
+ xlnx,tcedv-ps-mem-3 = <0x3a98>;
+ xlnx,thzce-ps-mem-0 = <0x61a8>;
+ xlnx,thzce-ps-mem-1 = <0x1b58>;
+ xlnx,thzce-ps-mem-2 = <0x1b58>;
+ xlnx,thzce-ps-mem-3 = <0x1b58>;
+ xlnx,thzoe-ps-mem-0 = <0x61a8>;
+ xlnx,thzoe-ps-mem-1 = <0x1b58>;
+ xlnx,thzoe-ps-mem-2 = <0x1b58>;
+ xlnx,thzoe-ps-mem-3 = <0x1b58>;
+ xlnx,tlzwe-ps-mem-0 = <0x1388>;
+ xlnx,tlzwe-ps-mem-1 = <0x0>;
+ xlnx,tlzwe-ps-mem-2 = <0x0>;
+ xlnx,tlzwe-ps-mem-3 = <0x0>;
+ xlnx,twc-ps-mem-0 = <0x11170>;
+ xlnx,twc-ps-mem-1 = <0x3a98>;
+ xlnx,twc-ps-mem-2 = <0x3a98>;
+ xlnx,twc-ps-mem-3 = <0x3a98>;
+ xlnx,twp-ps-mem-0 = <0xafc8>;
+ xlnx,twp-ps-mem-1 = <0x2ee0>;
+ xlnx,twp-ps-mem-2 = <0x2ee0>;
+ xlnx,twp-ps-mem-3 = <0x2ee0>;
+ xlnx,xcl0-linesize = <0x4>;
+ xlnx,xcl0-writexfer = <0x1>;
+ xlnx,xcl1-linesize = <0x4>;
+ xlnx,xcl1-writexfer = <0x1>;
+ xlnx,xcl2-linesize = <0x4>;
+ xlnx,xcl2-writexfer = <0x1>;
+ xlnx,xcl3-linesize = <0x4>;
+ xlnx,xcl3-writexfer = <0x1>;
+ partition@0x00000000 {
+ label = "rootfs";
+ reg = <0x00000000 0x01000000>;
+ };
+ };
+
+ gpio@81400000 {
+ compatible = "xlnx,xps-gpio-1.00.a";
+ interrupt-parent = <0x1>;
+ interrupts = <0x2 0x2>;
+ reg = <0x81400000 0x10000>;
+ xlnx,all-inputs = <0x0>;
+ xlnx,all-inputs-2 = <0x0>;
+ xlnx,dout-default = <0x0>;
+ xlnx,dout-default-2 = <0x0>;
+ xlnx,family = "spartan3adsp";
+ xlnx,gpio-width = <0x8>;
+ xlnx,interrupt-present = <0x1>;
+ xlnx,is-bidir = <0x0>;
+ xlnx,is-bidir-2 = <0x1>;
+ xlnx,is-dual = <0x0>;
+ xlnx,tri-default = <0xffffffff>;
+ xlnx,tri-default-2 = <0xffffffff>;
+ };
+
+ serial@84000000 {
+ clock-frequency = <0x3b9aca0>;
+ compatible = "xlnx,xps-uartlite-1.00.a";
+ current-speed = <0x1c200>;
+ device_type = "serial";
+ interrupt-parent = <0x1>;
+ interrupts = <0x3 0x0>;
+ port-number = <0x0>;
+ reg = <0x84000000 0x10000>;
+ xlnx,baudrate = <0x1c200>;
+ xlnx,data-bits = <0x8>;
+ xlnx,family = "spartan3adsp";
+ xlnx,odd-parity = <0x0>;
+ xlnx,use-parity = <0x0>;
+ };
+
+ debug@84400000 {
+ compatible = "xlnx,mdm-1.00.d";
+ reg = <0x84400000 0x10000>;
+ xlnx,family = "spartan3adsp";
+ xlnx,interconnect = <0x1>;
+ xlnx,jtag-chain = <0x2>;
+ xlnx,mb-dbg-ports = <0x1>;
+ xlnx,uart-width = <0x8>;
+ xlnx,use-uart = <0x1>;
+ xlnx,write-fsl-ports = <0x0>;
+ };
+
+ mpmc@90000000 {
+ #address-cells = <0x1>;
+ #size-cells = <0x1>;
+ compatible = "xlnx,mpmc-4.03.a";
+ };
+
+ interrupt-controller@81800000 {
+ #interrupt-cells = <0x2>;
+ compatible = "xlnx,xps-intc-1.00.a";
+ interrupt-controller;
+ reg = <0x81800000 0x10000>;
+ xlnx,kind-of-intr = <0xa>;
+ xlnx,num-intr-inputs = <0x4>;
+ linux,phandle = <0x1>;
+ };
+
+ timer@83c00000 {
+ compatible = "xlnx,xps-timer-1.00.a";
+ interrupt-parent = <0x1>;
+ interrupts = <0x0 0x2>;
+ reg = <0x83c00000 0x10000>;
+ xlnx,count-width = <0x20>;
+ xlnx,family = "spartan3adsp";
+ xlnx,gen0-assert = <0x1>;
+ xlnx,gen1-assert = <0x1>;
+ xlnx,one-timer-only = <0x0>;
+ xlnx,trig0-assert = <0x1>;
+ xlnx,trig1-assert = <0x1>;
+ };
+ };
+};
diff --git a/target/microblaze/sys-available/qemu-microblaze b/target/microblaze/sys-available/qemu-microblaze
index 63214e39b..a5bdb65e8 100644
--- a/target/microblaze/sys-available/qemu-microblaze
+++ b/target/microblaze/sys-available/qemu-microblaze
@@ -4,7 +4,9 @@ config ADK_TARGET_SYSTEM_QEMU_MICROBLAZE
select ADK_big
select ADK_qemu_microblaze
select ADK_HARDWARE_QEMU
+ select ADK_TARGET_WITH_MTD
select ADK_TARGET_KERNEL_LINUXBIN
+ select ADK_HOST_NEED_MKIMAGE
help
Qemu support for microblaze big endian architecture.
diff --git a/target/microblaze/sys-available/qemu-microblazeel b/target/microblaze/sys-available/qemu-microblazeel
index a58083770..4d752a942 100644
--- a/target/microblaze/sys-available/qemu-microblazeel
+++ b/target/microblaze/sys-available/qemu-microblazeel
@@ -1,10 +1,12 @@
config ADK_TARGET_SYSTEM_QEMU_MICROBLAZEEL
bool "Qemu Emulator (little endian)"
- select ADK_microblazeel
+ select ADK_microblaze
select ADK_qemu_microblazeel
select ADK_little
select ADK_HARDWARE_QEMU
+ select ADK_TARGET_WITH_MTD
select ADK_TARGET_KERNEL_LINUXBIN
+ select ADK_HOST_NEED_MKIMAGE
help
Qemu support for microblaze little endian architecture.
diff --git a/target/microblaze/target.mk b/target/microblaze/target.mk
index bee74e465..c179123f9 100644
--- a/target/microblaze/target.mk
+++ b/target/microblaze/target.mk
@@ -1,5 +1,4 @@
include $(TOPDIR)/mk/kernel-ver.mk
ARCH:= microblaze
CPU_ARCH:= $(ADK_TARGET_CPU_ARCH)
-TARGET_OPTIMIZATION:= -Os -pipe
TARGET_CFLAGS_ARCH:= $(ADK_TARGET_CFLAGS)
diff --git a/target/mips/sys-available/lemote-yeelong b/target/mips/sys-available/lemote-yeelong
index af58ff019..0a6fd9c32 100644
--- a/target/mips/sys-available/lemote-yeelong
+++ b/target/mips/sys-available/lemote-yeelong
@@ -12,6 +12,7 @@ config ADK_TARGET_SYSTEM_LEMOTE_YEELONG
select ADK_TARGET_WITH_RTC
select ADK_TARGET_WITH_HDD
select ADK_TARGET_WITH_PCI
+ select ADK_TARGET_WITH_ROOT_RW
select ADK_TARGET_KERNEL_VMLINUZ
help
System profile for Lemote Yeelong laptop.
diff --git a/target/mips/target.mk b/target/mips/target.mk
index f4864d2cc..8b13be890 100644
--- a/target/mips/target.mk
+++ b/target/mips/target.mk
@@ -1,5 +1,4 @@
include $(TOPDIR)/mk/kernel-ver.mk
ARCH:= mips
CPU_ARCH:= $(ADK_TARGET_CPU_ARCH)
-TARGET_OPTIMIZATION:= -Os -pipe
TARGET_CFLAGS_ARCH:= $(ADK_TARGET_CFLAGS)
diff --git a/target/ppc/target.mk b/target/ppc/target.mk
index bd6624fe7..47ae3121f 100644
--- a/target/ppc/target.mk
+++ b/target/ppc/target.mk
@@ -1,5 +1,4 @@
include $(TOPDIR)/mk/kernel-ver.mk
ARCH:= powerpc
CPU_ARCH:= ppc
-TARGET_OPTIMIZATION:= -Os -pipe
TARGET_CFLAGS_ARCH:= $(ADK_TARGET_CFLAGS) -Wl,--secure-plt
diff --git a/target/ppc64/sys-available/qemu-ppc64 b/target/ppc64/sys-available/qemu-ppc64
index 8f7715cf8..ffc77a388 100644
--- a/target/ppc64/sys-available/qemu-ppc64
+++ b/target/ppc64/sys-available/qemu-ppc64
@@ -3,6 +3,7 @@ config ADK_TARGET_SYSTEM_QEMU_PPC64
select ADK_ppc64
select ADK_qemu_ppc64
select ADK_CPU_PPC64
+ select ADK_LINUX_64
select ADK_HARDWARE_QEMU
help
Support for Qemu Emulator (PPC64).
diff --git a/target/ppc64/sys-available/toolchain-ppc64 b/target/ppc64/sys-available/toolchain-ppc64
index 3615aab85..50e72654a 100644
--- a/target/ppc64/sys-available/toolchain-ppc64
+++ b/target/ppc64/sys-available/toolchain-ppc64
@@ -3,6 +3,7 @@ config ADK_TARGET_SYSTEM_TOOLCHAIN_PPC64
select ADK_ppc64
select ADK_toolchain_ppc64
select ADK_CPU_PPC64
+ select ADK_LINUX_64
select ADK_TOOLCHAIN
select ADK_TARGET_PACKAGE_TGZ
help
diff --git a/target/ppc64/target.mk b/target/ppc64/target.mk
index 7ccf65b9c..5a0ecc30f 100644
--- a/target/ppc64/target.mk
+++ b/target/ppc64/target.mk
@@ -1,5 +1,4 @@
include $(TOPDIR)/mk/kernel-ver.mk
ARCH:= powerpc
CPU_ARCH:= ppc64
-TARGET_OPTIMIZATION:= -Os -pipe
TARGET_CFLAGS_ARCH:= $(ADK_TARGET_CFLAGS)
diff --git a/target/sh/target.mk b/target/sh/target.mk
index b5630cced..408dd12c5 100644
--- a/target/sh/target.mk
+++ b/target/sh/target.mk
@@ -1,5 +1,4 @@
include $(TOPDIR)/mk/kernel-ver.mk
ARCH:= sh
CPU_ARCH:= $(ADK_TARGET_CPU_ARCH)
-TARGET_OPTIMIZATION:= -Os -pipe
TARGET_CFLAGS_ARCH:= $(ADK_TARGET_CFLAGS)
diff --git a/target/sparc/target.mk b/target/sparc/target.mk
index 4de28f960..960a7cf19 100644
--- a/target/sparc/target.mk
+++ b/target/sparc/target.mk
@@ -1,5 +1,4 @@
include $(TOPDIR)/mk/kernel-ver.mk
ARCH:= sparc
CPU_ARCH:= sparc
-TARGET_OPTIMIZATION:= -Os -pipe
TARGET_CFLAGS_ARCH:= $(ADK_TARGET_CFLAGS)
diff --git a/target/sparc64/sys-available/qemu-sparc64 b/target/sparc64/sys-available/qemu-sparc64
index 062ad83e9..d750ea1e4 100644
--- a/target/sparc64/sys-available/qemu-sparc64
+++ b/target/sparc64/sys-available/qemu-sparc64
@@ -2,6 +2,7 @@ config ADK_TARGET_SYSTEM_QEMU_SPARC64
bool "Qemu Emulator"
select ADK_sparc64
select ADK_qemu_sparc64
+ select ADK_LINUX_64
select ADK_CPU_SPARC_V9
select ADK_HARDWARE_QEMU
select ADK_TARGET_KERNEL_ZIMAGE
diff --git a/target/sparc64/sys-available/toolchain-sparc64 b/target/sparc64/sys-available/toolchain-sparc64
index 15eaca575..1abcef8f2 100644
--- a/target/sparc64/sys-available/toolchain-sparc64
+++ b/target/sparc64/sys-available/toolchain-sparc64
@@ -3,6 +3,7 @@ config ADK_TARGET_SYSTEM_TOOLCHAIN_SPARC64
select ADK_sparc64
select ADK_toolchain_sparc64
select ADK_CPU_SPARC_V9
+ select ADK_LINUX_64
select ADK_TOOLCHAIN
select ADK_TARGET_PACKAGE_TGZ
help
diff --git a/target/sparc64/target.mk b/target/sparc64/target.mk
index 663e42d23..dda789e55 100644
--- a/target/sparc64/target.mk
+++ b/target/sparc64/target.mk
@@ -1,5 +1,4 @@
include $(TOPDIR)/mk/kernel-ver.mk
ARCH:= sparc
CPU_ARCH:= sparc64
-TARGET_OPTIMIZATION:= -Os -pipe
TARGET_CFLAGS_ARCH:= $(ADK_TARGET_CFLAGS)
diff --git a/target/x86/sys-available/ibm-x40 b/target/x86/sys-available/ibm-x40
index ac94bb1ec..ef6e20a8a 100644
--- a/target/x86/sys-available/ibm-x40
+++ b/target/x86/sys-available/ibm-x40
@@ -20,6 +20,7 @@ config ADK_TARGET_SYSTEM_IBM_X40
select ADK_TARGET_WITH_ACPI
# with docking station
select ADK_TARGET_WITH_PP
+ select ADK_TARGET_WITH_ROOT_RW
select ADK_TARGET_KERNEL_BZIMAGE
help
System profile for IBM X40 laptop.
diff --git a/target/x86/target.mk b/target/x86/target.mk
index 30e558283..ecb811221 100644
--- a/target/x86/target.mk
+++ b/target/x86/target.mk
@@ -1,5 +1,4 @@
include $(TOPDIR)/mk/kernel-ver.mk
ARCH:= x86
CPU_ARCH:= $(strip $(subst ",, $(ADK_TARGET_CPU_ARCH)))
-TARGET_OPTIMIZATION:= -Os -pipe
TARGET_CFLAGS_ARCH:= $(ADK_TARGET_CFLAGS)
diff --git a/target/x86_64/target.mk b/target/x86_64/target.mk
index 3eed00bf5..f381673fa 100644
--- a/target/x86_64/target.mk
+++ b/target/x86_64/target.mk
@@ -1,5 +1,4 @@
include $(TOPDIR)/mk/kernel-ver.mk
ARCH:= x86
CPU_ARCH:= x86_64
-TARGET_OPTIMIZATION:= -Os -pipe
TARGET_CFLAGS_ARCH:= $(ADK_TARGET_CFLAGS)
diff --git a/toolchain/gcc/Makefile b/toolchain/gcc/Makefile
index 6f70bfd12..5595f82dd 100644
--- a/toolchain/gcc/Makefile
+++ b/toolchain/gcc/Makefile
@@ -28,7 +28,7 @@ GCC_CONFOPTS:= --prefix=$(TOOLCHAIN_DIR)/usr \
--disable-libstdcxx-pch \
--disable-ppl-version-check \
--disable-cloog-version-check \
- --without-system-zlib \
+ --with-system-zlib \
--without-ppl \
--without-cloog \
--without-isl \
diff --git a/toolchain/musl/Makefile b/toolchain/musl/Makefile
index 6701c502a..7b0eeb104 100644
--- a/toolchain/musl/Makefile
+++ b/toolchain/musl/Makefile
@@ -12,6 +12,7 @@ endif
$(WRKBUILD)/.headers:
(cd $(WRKBUILD); CC='$(TARGET_CC)' CROSS_COMPILE='$(TARGET_CROSS)' \
+ CFLAGS='$(TARGET_CFLAGS)' \
./configure --prefix=/usr \
--target=$(GNU_TARGET_NAME) \
--disable-gcc-wrapper \
@@ -22,29 +23,31 @@ $(WRKBUILD)/.headers:
$(WRKBUILD)/.compiled:
# reconfigure musl, otherwise linking with libgcc or libgcc_eh is disabled
- $(MAKE) CFLAGS='$(TARGET_CFLAGS)' -C $(WRKBUILD) clean
+ $(MAKE) -C $(WRKBUILD) clean
(cd $(WRKBUILD); CC='$(TARGET_CC)' CROSS_COMPILE='$(TARGET_CROSS)' \
+ CFLAGS='$(TARGET_CFLAGS)' \
./configure --prefix=/usr \
--target=$(GNU_TARGET_NAME) \
--disable-gcc-wrapper \
)
- $(MAKE) CFLAGS='$(TARGET_CFLAGS)' -C $(WRKBUILD) all
+ $(MAKE) -C $(WRKBUILD) CFLAGS='$(TARGET_CFLAGS)' all
touch $@
$(WRKBUILD)/.installed: $(WRKBUILD)/.compiled
- $(MAKE) -C $(WRKBUILD) DESTDIR=$(STAGING_TARGET_DIR) install
+ $(MAKE) -C $(WRKBUILD) CFLAGS='$(TARGET_CFLAGS)' DESTDIR=$(STAGING_TARGET_DIR) install
touch $@
$(WRKBUILD)/.fixup:
# reconfigure musl, otherwise linking with libgcc or libgcc_eh is disabled
- $(MAKE) CFLAGS='$(TARGET_CFLAGS)' -C $(WRKBUILD) clean
+ $(MAKE) -C $(WRKBUILD) clean
(cd $(WRKBUILD); CC='$(TARGET_CC)' CROSS_COMPILE='$(TARGET_CROSS)' \
+ CFLAGS='$(TARGET_CFLAGS)' \
./configure --prefix=/usr \
--target=$(GNU_TARGET_NAME) \
--disable-gcc-wrapper \
)
- $(MAKE) CFLAGS='$(TARGET_CFLAGS)' -C $(WRKBUILD) all
- $(MAKE) -C $(WRKBUILD) DESTDIR=$(STAGING_TARGET_DIR) install
+ $(MAKE) -C $(WRKBUILD) CFLAGS='$(TARGET_CFLAGS)' all
+ $(MAKE) -C $(WRKBUILD) CFLAGS='$(TARGET_CFLAGS)' DESTDIR=$(STAGING_TARGET_DIR) install
# cleanup toolchain
-find $(STAGING_TARGET_DIR) $(STAGING_HOST_DIR) -name \*.la -delete
ifeq ($(ADK_TOOLCHAIN),y)
diff --git a/toolchain/uClibc/Makefile b/toolchain/uClibc/Makefile
index c691a8b2b..94a81391d 100644
--- a/toolchain/uClibc/Makefile
+++ b/toolchain/uClibc/Makefile
@@ -105,7 +105,10 @@ $(WRKBUILD)/.installed: $(WRKBUILD)/.install_headers
$(WRKBUILD)/.fixup:
# DOSTRIP kills x86 target (ld.so can not map libc.so.0), always use DODEBUG
+ # DODEBUG compile failure linking with libgcc_eh.a on arm hf
+ifneq ($(ADK_LINUX_ARM),y)
$(SED) 's,DOSTRIP,DODEBUG,' ${WRKBUILD}/.config
+endif
$(MAKE) -C $(WRKBUILD) \
PREFIX=$(STAGING_TARGET_DIR) \
DEVEL_PREFIX=/usr/ \
diff --git a/tools/mtd-utils/patches/darwin.patch b/tools/mtd-utils/patches/darwin.patch
new file mode 100644
index 000000000..1df2ccba2
--- /dev/null
+++ b/tools/mtd-utils/patches/darwin.patch
@@ -0,0 +1,261 @@
+diff -Nur mtd-utils-1.5.0.orig/common.mk mtd-utils-1.5.0/common.mk
+--- mtd-utils-1.5.0.orig/common.mk 2012-05-07 09:19:39.000000000 +0200
++++ mtd-utils-1.5.0/common.mk 2014-03-22 11:25:31.000000000 +0100
+@@ -13,8 +13,6 @@
+ $(call cc-option,-Wwrite-strings) \
+ $(call cc-option,-Wno-sign-compare)
+ CFLAGS += $(WFLAGS)
+-SECTION_CFLAGS := $(call cc-option,-ffunction-sections -fdata-sections -Wl$(comma)--gc-sections)
+-CFLAGS += $(SECTION_CFLAGS)
+
+ ifneq ($(WITHOUT_LARGEFILE), 1)
+ CPPFLAGS += -D_FILE_OFFSET_BITS=64
+diff -Nur mtd-utils-1.5.0.orig/compr_lzo.c mtd-utils-1.5.0/compr_lzo.c
+--- mtd-utils-1.5.0.orig/compr_lzo.c 2012-05-07 09:19:39.000000000 +0200
++++ mtd-utils-1.5.0/compr_lzo.c 2014-03-22 11:12:06.000000000 +0100
+@@ -26,7 +26,6 @@
+ #include <string.h>
+
+ #ifndef WITHOUT_LZO
+-#include <asm/types.h>
+ #include <linux/jffs2.h>
+ #include <lzo/lzo1x.h>
+ #include "compr.h"
+diff -Nur mtd-utils-1.5.0.orig/compr_zlib.c mtd-utils-1.5.0/compr_zlib.c
+--- mtd-utils-1.5.0.orig/compr_zlib.c 2012-05-07 09:19:39.000000000 +0200
++++ mtd-utils-1.5.0/compr_zlib.c 2014-03-22 11:11:57.000000000 +0100
+@@ -39,7 +39,6 @@
+ #include <zlib.h>
+ #undef crc32
+ #include <stdio.h>
+-#include <asm/types.h>
+ #include <linux/jffs2.h>
+ #include "common.h"
+ #include "compr.h"
+diff -Nur mtd-utils-1.5.0.orig/include/byteswap.h mtd-utils-1.5.0/include/byteswap.h
+--- mtd-utils-1.5.0.orig/include/byteswap.h 1970-01-01 01:00:00.000000000 +0100
++++ mtd-utils-1.5.0/include/byteswap.h 2014-03-22 10:52:15.000000000 +0100
+@@ -0,0 +1,25 @@
++#ifndef _BYTESWAP_H
++#define _BYTESWAP_H
++
++#include <stdint.h>
++
++static __inline uint16_t __bswap_16(uint16_t __x)
++{
++ return __x<<8 | __x>>8;
++}
++
++static __inline uint32_t __bswap_32(uint32_t __x)
++{
++ return __x>>24 | __x>>8&0xff00 | __x<<8&0xff0000 | __x<<24;
++}
++
++static __inline uint64_t __bswap_64(uint64_t __x)
++{
++ return __bswap_32(__x)+0ULL<<32 | __bswap_32(__x>>32);
++}
++
++#define bswap_16(x) __bswap_16(x)
++#define bswap_32(x) __bswap_32(x)
++#define bswap_64(x) __bswap_64(x)
++
++#endif
+diff -Nur mtd-utils-1.5.0.orig/include/endian.h mtd-utils-1.5.0/include/endian.h
+--- mtd-utils-1.5.0.orig/include/endian.h 1970-01-01 01:00:00.000000000 +0100
++++ mtd-utils-1.5.0/include/endian.h 2014-03-22 11:09:57.000000000 +0100
+@@ -0,0 +1,20 @@
++#ifndef _ENDIAN_H
++#define _ENDIAN_H
++
++#ifndef __BIG_ENDIAN
++#define __BIG_ENDIAN 4321
++#endif
++
++ #ifndef __LITTLE_ENDIAN
++ #define __LITTLE_ENDIAN 1234
++ #endif
++
++#ifndef __BYTE_ORDER
++#define __BYTE_ORDER __LITTLE_ENDIAN
++#endif
++
++#ifndef BYTE_ORDER
++#define BYTE_ORDER __LITTLE_ENDIAN
++#endif
++
++#endif
+diff -Nur mtd-utils-1.5.0.orig/include/linux/types.h mtd-utils-1.5.0/include/linux/types.h
+--- mtd-utils-1.5.0.orig/include/linux/types.h 1970-01-01 01:00:00.000000000 +0100
++++ mtd-utils-1.5.0/include/linux/types.h 2014-03-22 11:17:12.000000000 +0100
+@@ -0,0 +1,18 @@
++#ifndef _LINUX_TYPES_H
++#define _LINUX_TYPES_H
++
++#include <mtd/ubi-media.h>
++
++typedef uint16_t __u16;
++typedef uint32_t __u32;
++typedef uint64_t __u64;
++
++typedef __u16 __le16;
++typedef __u32 __le32;
++typedef __u64 __le64;
++typedef __u64 off64_t;
++
++typedef __u16 __sum16;
++typedef __u32 __wsum;
++
++#endif /* _LINUX_TYPES_H */
+diff -Nur mtd-utils-1.5.0.orig/include/mtd/jffs2-user.h mtd-utils-1.5.0/include/mtd/jffs2-user.h
+--- mtd-utils-1.5.0.orig/include/mtd/jffs2-user.h 2012-05-07 09:19:39.000000000 +0200
++++ mtd-utils-1.5.0/include/mtd/jffs2-user.h 2014-03-22 11:01:37.000000000 +0100
+@@ -9,8 +9,13 @@
+
+ /* This file is blessed for inclusion by userspace */
+ #include <linux/jffs2.h>
++#if defined(__APPLE__)
++#include "endian.h"
++#include "byteswap.h"
++#else
+ #include <endian.h>
+ #include <byteswap.h>
++#endif
+
+ #undef cpu_to_je16
+ #undef cpu_to_je32
+diff -Nur mtd-utils-1.5.0.orig/include/mtd/mtd-abi.h mtd-utils-1.5.0/include/mtd/mtd-abi.h
+--- mtd-utils-1.5.0.orig/include/mtd/mtd-abi.h 2012-05-07 09:19:39.000000000 +0200
++++ mtd-utils-1.5.0/include/mtd/mtd-abi.h 2014-03-22 11:21:06.000000000 +0100
+@@ -171,9 +171,9 @@
+ /* Get info about OOB modes (e.g., RAW, PLACE, AUTO) - legacy interface */
+ #define MEMGETOOBSEL _IOR('M', 10, struct nand_oobinfo)
+ /* Check if an eraseblock is bad */
+-#define MEMGETBADBLOCK _IOW('M', 11, __kernel_loff_t)
++#define MEMGETBADBLOCK _IOW('M', 11, off_t)
+ /* Mark an eraseblock as bad */
+-#define MEMSETBADBLOCK _IOW('M', 12, __kernel_loff_t)
++#define MEMSETBADBLOCK _IOW('M', 12, off_t)
+ /* Set OTP (One-Time Programmable) mode (factory vs. user) */
+ #define OTPSELECT _IOR('M', 13, int)
+ /* Get number of OTP (One-Time Programmable) regions */
+diff -Nur mtd-utils-1.5.0.orig/include/mtd/ubi-media.h mtd-utils-1.5.0/include/mtd/ubi-media.h
+--- mtd-utils-1.5.0.orig/include/mtd/ubi-media.h 2012-05-07 09:19:39.000000000 +0200
++++ mtd-utils-1.5.0/include/mtd/ubi-media.h 2014-03-22 11:18:03.000000000 +0100
+@@ -30,7 +30,15 @@
+ #ifndef __UBI_MEDIA_H__
+ #define __UBI_MEDIA_H__
+
++#ifdef __linux__
+ #include <asm/byteorder.h>
++#else
++#include <stdint.h>
++typedef uint8_t __u8;
++typedef uint16_t __be16;
++typedef uint32_t __be32;
++typedef uint64_t __be64;
++#endif
+
+ /* The version of UBI images supported by this implementation */
+ #define UBI_VERSION 1
+diff -Nur mtd-utils-1.5.0.orig/lib/libfec.c mtd-utils-1.5.0/lib/libfec.c
+--- mtd-utils-1.5.0.orig/lib/libfec.c 2012-05-07 09:19:39.000000000 +0200
++++ mtd-utils-1.5.0/lib/libfec.c 2014-03-22 11:24:15.000000000 +0100
+@@ -61,8 +61,6 @@
+ };
+ #define gettimeofday(x, dummy) { (x)->ticks = clock() ; }
+ #define DIFF_T(a,b) (1+ 1000000*(a.ticks - b.ticks) / CLOCKS_PER_SEC )
+-typedef unsigned long u_long ;
+-typedef unsigned short u_short ;
+ #else /* typically, unix systems */
+ #include <sys/time.h>
+ #define DIFF_T(a,b) \
+@@ -625,7 +623,7 @@
+ #define FEC_MAGIC 0xFECC0DEC
+
+ struct fec_parms {
+- u_long magic ;
++ unsigned long magic ;
+ int k, n ; /* parameters of the code */
+ gf *enc_matrix ;
+ } ;
+diff -Nur mtd-utils-1.5.0.orig/lib/libmtd.c mtd-utils-1.5.0/lib/libmtd.c
+--- mtd-utils-1.5.0.orig/lib/libmtd.c 2012-05-07 09:19:39.000000000 +0200
++++ mtd-utils-1.5.0/lib/libmtd.c 2014-03-22 11:15:49.000000000 +0100
+@@ -1006,7 +1006,7 @@
+ int mtd_is_bad(const struct mtd_dev_info *mtd, int fd, int eb)
+ {
+ int ret;
+- loff_t seek;
++ off_t seek;
+
+ ret = mtd_valid_erase_block(mtd, eb);
+ if (ret)
+@@ -1015,7 +1015,7 @@
+ if (!mtd->bb_allowed)
+ return 0;
+
+- seek = (loff_t)eb * mtd->eb_size;
++ seek = (off_t)eb * mtd->eb_size;
+ ret = ioctl(fd, MEMGETBADBLOCK, &seek);
+ if (ret == -1)
+ return mtd_ioctl_error(mtd, eb, "MEMGETBADBLOCK");
+@@ -1025,7 +1025,7 @@
+ int mtd_mark_bad(const struct mtd_dev_info *mtd, int fd, int eb)
+ {
+ int ret;
+- loff_t seek;
++ off_t seek;
+
+ if (!mtd->bb_allowed) {
+ errno = EINVAL;
+@@ -1036,7 +1036,7 @@
+ if (ret)
+ return ret;
+
+- seek = (loff_t)eb * mtd->eb_size;
++ seek = (off_t)eb * mtd->eb_size;
+ ret = ioctl(fd, MEMSETBADBLOCK, &seek);
+ if (ret == -1)
+ return mtd_ioctl_error(mtd, eb, "MEMSETBADBLOCK");
+diff -Nur mtd-utils-1.5.0.orig/lib/libmtd_legacy.c mtd-utils-1.5.0/lib/libmtd_legacy.c
+--- mtd-utils-1.5.0.orig/lib/libmtd_legacy.c 2012-05-07 09:19:39.000000000 +0200
++++ mtd-utils-1.5.0/lib/libmtd_legacy.c 2014-03-22 11:22:18.000000000 +0100
+@@ -234,7 +234,7 @@
+ struct stat st;
+ struct mtd_info_user ui;
+ int fd, ret;
+- loff_t offs = 0;
++ off_t offs = 0;
+ struct proc_parse_info pi;
+
+ if (stat(node, &st)) {
+diff -Nur mtd-utils-1.5.0.orig/mkfs.jffs2.c mtd-utils-1.5.0/mkfs.jffs2.c
+--- mtd-utils-1.5.0.orig/mkfs.jffs2.c 2012-05-07 09:19:39.000000000 +0200
++++ mtd-utils-1.5.0/mkfs.jffs2.c 2014-03-22 11:11:15.000000000 +0100
+@@ -70,7 +70,12 @@
+ #include <sys/xattr.h>
+ #include <sys/acl.h>
+ #endif
++#if defined(__APPLE__)
++#include "endian.h"
++#include "byteswap.h"
++#else
+ #include <byteswap.h>
++#endif
+ #include <crc32.h>
+ #include <inttypes.h>
+
+diff -Nur mtd-utils-1.5.0.orig/rbtree.h mtd-utils-1.5.0/rbtree.h
+--- mtd-utils-1.5.0.orig/rbtree.h 2012-05-07 09:19:39.000000000 +0200
++++ mtd-utils-1.5.0/rbtree.h 2014-03-22 11:07:58.000000000 +0100
+@@ -94,8 +94,7 @@
+ #ifndef _LINUX_RBTREE_H
+ #define _LINUX_RBTREE_H
+
+-#include <linux/kernel.h>
+-#include <linux/stddef.h>
++#include <stddef.h>
+
+ struct rb_node
+ {
diff --git a/tools/squashfs/Makefile b/tools/squashfs/Makefile
index 423008ff8..06e4215b7 100644
--- a/tools/squashfs/Makefile
+++ b/tools/squashfs/Makefile
@@ -18,7 +18,7 @@ install: ${STAGING_HOST_DIR}/usr/bin/mksquashfs
$(WRKBUILD)/.compiled: ${WRKDIST}/.prepared
${MAKE} -C ${WRKBUILD}/squashfs-tools CC='${CC_FOR_BUILD}' \
- XZ_SUPPORT=1 CPPFLAGS_FOR_BUILD=$(CPPFLAGS_FOR_BUILD) \
+ XATTR_SUPPORT=0 XZ_SUPPORT=1 CPPFLAGS_FOR_BUILD=$(CPPFLAGS_FOR_BUILD) \
EXTRA_LDFLAGS=$(LDFLAGS_FOR_BUILD)
@touch $@
diff --git a/tools/squashfs/patches/darwin.patch b/tools/squashfs/patches/darwin.patch
new file mode 100644
index 000000000..b1d2ebd2e
--- /dev/null
+++ b/tools/squashfs/patches/darwin.patch
@@ -0,0 +1,88 @@
+diff -Nur squashfs4.2.orig/squashfs-tools/mksquashfs.c squashfs4.2/squashfs-tools/mksquashfs.c
+--- squashfs4.2.orig/squashfs-tools/mksquashfs.c 2011-02-28 23:24:09.000000000 +0100
++++ squashfs4.2/squashfs-tools/mksquashfs.c 2014-03-22 11:32:00.000000000 +0100
+@@ -60,6 +60,10 @@
+ #include <sys/sysinfo.h>
+ #endif
+
++#ifndef FNM_EXTMATCH
++#define FNM_EXTMATCH 0
++#endif
++
+ #ifdef SQUASHFS_TRACE
+ #define TRACE(s, args...) \
+ do { \
+@@ -721,13 +725,13 @@
+ + (((char *)A) - data_cache)))
+
+
+-inline void inc_progress_bar()
++static inline void inc_progress_bar()
+ {
+ cur_uncompressed ++;
+ }
+
+
+-inline void update_progress_bar()
++static inline void update_progress_bar()
+ {
+ pthread_mutex_lock(&progress_mutex);
+ pthread_cond_signal(&progress_wait);
+@@ -735,7 +739,7 @@
+ }
+
+
+-inline void waitforthread(int i)
++static inline void waitforthread(int i)
+ {
+ TRACE("Waiting for thread %d\n", i);
+ while(thread[i] != 0)
+@@ -3340,7 +3344,7 @@
+ }
+
+
+-inline void add_dir_entry(char *name, char *pathname, struct dir_info *sub_dir,
++static inline void add_dir_entry(char *name, char *pathname, struct dir_info *sub_dir,
+ struct inode_info *inode_info, struct dir_info *dir)
+ {
+ if((dir->count % DIR_ENTRIES) == 0) {
+diff -Nur squashfs4.2.orig/squashfs-tools/unsquashfs.c squashfs4.2/squashfs-tools/unsquashfs.c
+--- squashfs4.2.orig/squashfs-tools/unsquashfs.c 2011-02-28 23:27:06.000000000 +0100
++++ squashfs4.2/squashfs-tools/unsquashfs.c 2014-03-22 11:36:27.000000000 +0100
+@@ -29,7 +29,13 @@
+ #include "compressor.h"
+ #include "xattr.h"
+
++#ifndef FNM_EXTMATCH
++#define FNM_EXTMATCH 0
++#endif
++
++#ifdef __linux__
+ #include <sys/sysinfo.h>
++#endif
+ #include <sys/types.h>
+
+ struct cache *fragment_cache, *data_cache;
+@@ -1810,7 +1816,7 @@
+ "\n");
+
+ if(processors == -1) {
+-#ifndef linux
++#if 0
+ int mib[2];
+ size_t len = sizeof(processors);
+
+@@ -1821,11 +1827,13 @@
+ mib[1] = HW_NCPU;
+ #endif
+
++#ifdef __linux__
+ if(sysctl(mib, 2, &processors, &len, NULL, 0) == -1) {
+ ERROR("Failed to get number of available processors. "
+ "Defaulting to 1\n");
+ processors = 1;
+ }
++#endif
+ #else
+ processors = sysconf(_SC_NPROCESSORS_ONLN);
+ #endif