diff --git a/.defconfig b/.defconfig
index 77ab11aedd..585be557d4 100644
--- a/.defconfig
+++ b/.defconfig
@@ -6,7 +6,6 @@ BR2_HAVE_DOT_CONFIG=y
 # BR2_alpha is not set
 # BR2_arm is not set
 # BR2_armeb is not set
-# BR2_avr32 is not set
 # BR2_cris is not set
 # BR2_ia64 is not set
 BR2_i386=y
diff --git a/arch/Config.in b/arch/Config.in
index 890e7e2d40..16ad8be56b 100644
--- a/arch/Config.in
+++ b/arch/Config.in
@@ -53,21 +53,6 @@ config BR2_aarch64
 	  http://www.arm.com/products/processors/instruction-set-architectures/armv8-architecture.php
 	  http://en.wikipedia.org/wiki/ARM
 
-config BR2_avr32
-	bool "AVR32"
-	select BR2_SOFT_FLOAT
-	# This architecture is obsolete and complicated to maintain to
-	# do the lack of upstream support in the major toolchain
-	# components. If you're interested by AVR32, contact the
-	# Buildroot community. Otherwise, its support will be removed
-	# by the 2015.02 release.
-	depends on BR2_DEPRECATED_SINCE_2014_08
-	help
-	  The AVR32 is a 32-bit RISC microprocessor architecture designed by
-	  Atmel.
-	  http://www.atmel.com/
-	  http://en.wikipedia.org/wiki/Avr32
-
 config BR2_bfin
 	bool "Blackfin"
 	help
@@ -328,10 +313,6 @@ if BR2_aarch64
 source "arch/Config.in.aarch64"
 endif
 
-if BR2_avr32
-source "arch/Config.in.avr32"
-endif
-
 if BR2_bfin
 source "arch/Config.in.bfin"
 endif
diff --git a/arch/Config.in.avr32 b/arch/Config.in.avr32
deleted file mode 100644
index fc1f4f66f9..0000000000
--- a/arch/Config.in.avr32
+++ /dev/null
@@ -1,11 +0,0 @@
-config BR2_ARCH
-	default "avr32"
-
-config BR2_ENDIAN
-	default "BIG"
-
-config BR2_GCC_TARGET_ARCH
-	default "ap"
-
-config BR2_ARCH_HAS_ATOMICS
-	default y
diff --git a/board/armadeus/apf27/linux-3.13.config b/board/armadeus/apf27/linux-3.18.config
similarity index 96%
rename from board/armadeus/apf27/linux-3.13.config
rename to board/armadeus/apf27/linux-3.18.config
index d2955cf00b..ed5a569e72 100644
--- a/board/armadeus/apf27/linux-3.13.config
+++ b/board/armadeus/apf27/linux-3.18.config
@@ -17,14 +17,11 @@ CONFIG_MODULE_UNLOAD=y
 # CONFIG_IOSCHED_CFQ is not set
 # CONFIG_ARCH_MULTI_V7 is not set
 CONFIG_ARCH_MXC=y
-CONFIG_MXC_IRQ_PRIOR=y
 CONFIG_MACH_IMX27_DT=y
 CONFIG_PREEMPT=y
 CONFIG_AEABI=y
 CONFIG_ZBOOT_ROM_TEXT=0x0
 CONFIG_ZBOOT_ROM_BSS=0x0
-CONFIG_FPE_NWFPE=y
-CONFIG_FPE_NWFPE_XP=y
 CONFIG_PM_DEBUG=y
 CONFIG_NET=y
 CONFIG_PACKET=y
@@ -40,8 +37,6 @@ CONFIG_IP_PNP_DHCP=y
 # CONFIG_INET_DIAG is not set
 CONFIG_IPV6=y
 CONFIG_CAN=m
-CONFIG_CAN_RAW=m
-CONFIG_CAN_BCM=m
 CONFIG_CAN_VCAN=m
 CONFIG_CAN_MCP251X=m
 CONFIG_BT=m
@@ -60,7 +55,6 @@ CONFIG_DEVTMPFS=y
 CONFIG_DEVTMPFS_MOUNT=y
 CONFIG_MTD=y
 CONFIG_MTD_CMDLINE_PARTS=y
-CONFIG_MTD_CHAR=y
 CONFIG_MTD_BLOCK=y
 CONFIG_MTD_CFI=y
 CONFIG_MTD_CFI_ADV_OPTIONS=y
@@ -72,13 +66,11 @@ CONFIG_MTD_PHYSMAP=y
 CONFIG_MTD_NAND=y
 CONFIG_MTD_NAND_MXC=y
 CONFIG_MTD_UBI=y
-CONFIG_PROC_DEVICETREE=y
 CONFIG_EEPROM_AT24=y
 CONFIG_EEPROM_AT25=y
 CONFIG_SCSI=y
 CONFIG_BLK_DEV_SD=y
 CONFIG_NETDEVICES=y
-CONFIG_MII=y
 # CONFIG_NET_VENDOR_BROADCOM is not set
 # CONFIG_NET_VENDOR_CIRRUS is not set
 # CONFIG_NET_VENDOR_FARADAY is not set
@@ -144,8 +136,6 @@ CONFIG_BACKLIGHT_LCD_SUPPORT=y
 # CONFIG_LCD_CLASS_DEVICE is not set
 CONFIG_BACKLIGHT_CLASS_DEVICE=y
 CONFIG_FRAMEBUFFER_CONSOLE=y
-CONFIG_FONTS=y
-CONFIG_FONT_8x8=y
 CONFIG_LOGO=y
 # CONFIG_LOGO_LINUX_MONO is not set
 # CONFIG_LOGO_LINUX_VGA16 is not set
@@ -162,21 +152,21 @@ CONFIG_SND_IMX_SOC=m
 CONFIG_USB=y
 CONFIG_USB_EHCI_HCD=y
 CONFIG_USB_EHCI_MXC=y
-CONFIG_USB_CHIPIDEA=y
-CONFIG_USB_CHIPIDEA_HOST=y
-CONFIG_USB_CHIPIDEA_DEBUG=y
 CONFIG_USB_ACM=y
 CONFIG_USB_PRINTER=y
 CONFIG_USB_STORAGE=y
+CONFIG_USB_CHIPIDEA=y
+CONFIG_USB_CHIPIDEA_HOST=y
+CONFIG_USB_CHIPIDEA_DEBUG=y
 CONFIG_USB_SERIAL=y
 CONFIG_USB_SERIAL_FTDI_SIO=y
 CONFIG_USB_SERIAL_PL2303=y
+CONFIG_USB_ULPI=y
 CONFIG_USB_GADGET=y
 CONFIG_USB_ETH=m
 CONFIG_USB_GADGETFS=m
 CONFIG_USB_MASS_STORAGE=m
 CONFIG_USB_G_HID=m
-CONFIG_USB_ULPI=y
 CONFIG_MMC=y
 CONFIG_MMC_MXC=y
 CONFIG_NEW_LEDS=y
@@ -198,7 +188,9 @@ CONFIG_DMADEVICES=y
 CONFIG_IMX_SDMA=y
 CONFIG_IMX_DMA=y
 # CONFIG_IOMMU_SUPPORT is not set
-CONFIG_IIO=m
+CONFIG_IIO=y
+CONFIG_MAX1027=y
+CONFIG_MAX5821=y
 CONFIG_PWM=y
 CONFIG_PWM_IMX=y
 CONFIG_EXT2_FS=y
@@ -220,11 +212,13 @@ CONFIG_NLS_CODEPAGE_850=y
 CONFIG_NLS_ISO8859_1=y
 CONFIG_NLS_ISO8859_15=m
 CONFIG_PRINTK_TIME=y
+CONFIG_DEBUG_INFO=y
 CONFIG_DEBUG_FS=y
 # CONFIG_SCHED_DEBUG is not set
 # CONFIG_DEBUG_PREEMPT is not set
-CONFIG_DEBUG_INFO=y
 # CONFIG_FTRACE is not set
 CONFIG_DEBUG_LL=y
 CONFIG_EARLY_PRINTK=y
 # CONFIG_CRYPTO_ANSI_CPRNG is not set
+CONFIG_FONTS=y
+CONFIG_FONT_8x8=y
diff --git a/board/raspberrypi/readme.txt b/board/raspberrypi/readme.txt
index ead9227a11..9bab374b67 100644
--- a/board/raspberrypi/readme.txt
+++ b/board/raspberrypi/readme.txt
@@ -1,9 +1,14 @@
-RaspberryPi
+Raspberry Pi
 
 Intro
 =====
 
-To be able to use your RaspberryPi board with the images generated by
+These instructions apply to all models of the Raspberry Pi:
+  - the original models A and B,
+  - the "enhanced" models A+ and B+,
+  - the model B2 (aka Raspberry Pi 2).
+
+To be able to use your Raspberry Pi board with the images generated by
 Buildroot, you have to choose whether you will use:
 
     * Volatile rootfs in RAM (the rootfs is an initramfs) or
@@ -96,7 +101,7 @@ Mount the partitions (adjust 'sdX' to match your SDcard device):
 Install the binaries to the SDCard
 ----------------------------------
 
-At the root of the boot partition, the RaspberryPi must find the following
+At the root of the boot partition, the Raspberry Pi must find the following
 files:
 
     * bcm2708-rpi-b.dtb         [2]
diff --git a/board/raspberrypi2 b/board/raspberrypi2
new file mode 120000
index 0000000000..fcdafc81ed
--- /dev/null
+++ b/board/raspberrypi2
@@ -0,0 +1 @@
+raspberrypi
\ No newline at end of file
diff --git a/boot/barebox/barebox.mk b/boot/barebox/barebox.mk
index 0fb7cec098..b829ae7201 100644
--- a/boot/barebox/barebox.mk
+++ b/boot/barebox/barebox.mk
@@ -49,21 +49,18 @@ endif
 
 BAREBOX_MAKE_FLAGS = ARCH=$(BAREBOX_ARCH) CROSS_COMPILE="$(CCACHE) \
 	$(TARGET_CROSS)"
-
+BAREBOX_MAKE_ENV = $(TARGET_MAKE_ENV)
 
 ifeq ($(BR2_TARGET_BAREBOX_USE_DEFCONFIG),y)
-BAREBOX_SOURCE_CONFIG = $(@D)/arch/$(BAREBOX_ARCH)/configs/$(call qstrip,\
+BAREBOX_SOURCE_CONFIG = $(BAREBOX_DIR)/arch/$(BAREBOX_ARCH)/configs/$(call qstrip,\
 	$(BR2_TARGET_BAREBOX_BOARD_DEFCONFIG))_defconfig
 else ifeq ($(BR2_TARGET_BAREBOX_USE_CUSTOM_CONFIG),y)
-BAREBOX_SOURCE_CONFIG = $(BR2_TARGET_BAREBOX_CUSTOM_CONFIG_FILE)
+BAREBOX_SOURCE_CONFIG = $(call qstrip,$(BR2_TARGET_BAREBOX_CUSTOM_CONFIG_FILE))
 endif
 
-define BAREBOX_CONFIGURE_CMDS
-	cp $(BAREBOX_SOURCE_CONFIG) \
-		$(@D)/arch/$(BAREBOX_ARCH)/configs/buildroot_defconfig
-	$(TARGET_MAKE_ENV) $(MAKE) $(BAREBOX_MAKE_FLAGS) -C $(@D) \
-		buildroot_defconfig
-endef
+BAREBOX_KCONFIG_FILE = $(BAREBOX_SOURCE_CONFIG)
+BAREBOX_KCONFIG_EDITORS = menuconfig xconfig gconfig nconfig
+BAREBOX_KCONFIG_OPTS = $(BAREBOX_MAKE_FLAGS)
 
 ifeq ($(BR2_TARGET_BAREBOX_BAREBOXENV),y)
 define BAREBOX_BUILD_BAREBOXENV_CMDS
@@ -106,7 +103,7 @@ define BAREBOX_INSTALL_TARGET_CMDS
 endef
 endif
 
-$(eval $(generic-package))
+$(eval $(kconfig-package))
 
 ifeq ($(BR2_TARGET_BAREBOX),y)
 # we NEED a board defconfig file unless we're at make source
@@ -115,24 +112,4 @@ ifeq ($(BAREBOX_SOURCE_CONFIG),)
 $(error No Barebox config file. Check your BR2_TARGET_BAREBOX_BOARD_DEFCONFIG or BR2_TARGET_BAREBOX_CUSTOM_CONFIG_FILE settings)
 endif
 endif
-
-barebox-menuconfig barebox-xconfig barebox-gconfig barebox-nconfig: barebox-configure
-	$(TARGET_MAKE_ENV) $(MAKE) $(BAREBOX_MAKE_FLAGS) -C $(BAREBOX_DIR) \
-		$(subst barebox-,,$@)
-	rm -f $(BAREBOX_DIR)/.stamp_{built,target_installed,images_installed}
-
-barebox-savedefconfig: barebox-configure
-	$(TARGET_MAKE_ENV) $(MAKE) $(BAREBOX_MAKE_FLAGS) -C $(BAREBOX_DIR) \
-		$(subst barebox-,,$@)
-
-ifeq ($(BR2_TARGET_BAREBOX_USE_CUSTOM_CONFIG),y)
-barebox-update-config: barebox-configure $(BAREBOX_DIR)/.config
-	cp -f $(BAREBOX_DIR)/.config $(BR2_TARGET_BAREBOX_CUSTOM_CONFIG_FILE)
-
-barebox-update-defconfig: barebox-savedefconfig
-	cp -f $(BAREBOX_DIR)/defconfig $(BR2_TARGET_BAREBOX_CUSTOM_CONFIG_FILE)
-else
-barebox-update-config: ;
-barebox-update-defconfig: ;
-endif
 endif
diff --git a/configs/armadeus_apf27_defconfig b/configs/armadeus_apf27_defconfig
index 7e33a41f19..b779e6b12f 100644
--- a/configs/armadeus_apf27_defconfig
+++ b/configs/armadeus_apf27_defconfig
@@ -4,8 +4,8 @@ BR2_arm926t=y
 
 # Lock down headers to avoid breaking with new defaults
 BR2_KERNEL_HEADERS_VERSION=y
-BR2_DEFAULT_KERNEL_VERSION="3.13.2"
-BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_3_13=y
+BR2_DEFAULT_KERNEL_VERSION="3.18.6"
+BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_3_18=y
 
 # System
 BR2_TARGET_GENERIC_HOSTNAME="apf27"
@@ -21,9 +21,9 @@ BR2_TARGET_ROOTFS_UBI=y
 # Kernel
 BR2_LINUX_KERNEL=y
 BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="3.13.2"
+BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="3.18.6"
 BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
-BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/armadeus/apf27/linux-3.13.config"
+BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/armadeus/apf27/linux-3.18.config"
 BR2_LINUX_KERNEL_UIMAGE_LOADADDR="0xA0008000"
 BR2_LINUX_KERNEL_DTS_SUPPORT=y
 BR2_LINUX_KERNEL_INTREE_DTS_NAME="imx27-apf27dev"
diff --git a/configs/atngw100_defconfig b/configs/atngw100_defconfig
deleted file mode 100644
index d410f5b5a6..0000000000
--- a/configs/atngw100_defconfig
+++ /dev/null
@@ -1,35 +0,0 @@
-# AVR32 is deprecated
-BR2_DEPRECATED=y
-
-# Architecture
-BR2_avr32=y
-
-# Lock down kernel headers version, to match the kernel version used
-# below.
-BR2_KERNEL_HEADERS_VERSION=y
-BR2_DEFAULT_KERNEL_VERSION="3.9.11"
-BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_3_9=y
-
-# Filesystems
-BR2_TARGET_ROOTFS_JFFS2=y
-BR2_TARGET_ROOTFS_JFFS2_FLASH_128=y
-BR2_TARGET_ROOTFS_JFFS2_PAGESIZE=0x1000
-BR2_TARGET_ROOTFS_JFFS2_EBSIZE=0x20000
-BR2_TARGET_ROOTFS_JFFS2_NOCLEANMARKER=y
-BR2_TARGET_ROOTFS_JFFS2_BE=y
-BR2_TARGET_ROOTFS_TAR=y
-BR2_TARGET_ROOTFS_TAR_NONE=y
-
-# Bootloader
-BR2_TARGET_UBOOT=y
-BR2_TARGET_UBOOT_BOARDNAME="atngw100"
-BR2_TARGET_UBOOT_CUSTOM_VERSION=y
-BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2010.09"
-
-# Kernel. Locked to 3.9.x, because 3.10.x fails to build with
-# relocation truncated to fit: R_AVR32_16N_PCREL against symbol
-# `_ctype'
-BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="3.9.11"
-BR2_LINUX_KERNEL_DEFCONFIG="atngw100"
diff --git a/configs/atstk100x_defconfig b/configs/atstk100x_defconfig
deleted file mode 100644
index 0e17e36dc9..0000000000
--- a/configs/atstk100x_defconfig
+++ /dev/null
@@ -1,26 +0,0 @@
-# AVR32 is deprecated
-BR2_DEPRECATED=y
-
-# Architecture
-BR2_avr32=y
-
-# Lock to same version as kernel
-BR2_KERNEL_HEADERS_VERSION=y
-BR2_DEFAULT_KERNEL_VERSION="3.9.11"
-BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_3_9=y
-
-# U-Boot
-BR2_TARGET_UBOOT=y
-BR2_TARGET_UBOOT_BOARDNAME="atstk1002"
-BR2_TARGET_UBOOT_CUSTOM_VERSION=y
-BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2010.09"
-
-# Kernel
-BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="3.9.11"
-BR2_LINUX_KERNEL_USE_DEFCONFIG=y
-BR2_LINUX_KERNEL_DEFCONFIG="atstk1002"
-
-# Filesystem
-BR2_TARGET_ROOTFS_TAR=y
diff --git a/configs/raspberrypi2_defconfig b/configs/raspberrypi2_defconfig
new file mode 100644
index 0000000000..b523a4ac0e
--- /dev/null
+++ b/configs/raspberrypi2_defconfig
@@ -0,0 +1,25 @@
+BR2_arm=y
+BR2_cortex_a7=y
+BR2_ARM_EABIHF=y
+BR2_ARM_FPU_NEON_VFPV4=y
+
+BR2_TOOLCHAIN_BUILDROOT_LARGEFILE=y
+BR2_TOOLCHAIN_BUILDROOT_CXX=y
+
+BR2_TARGET_GENERIC_GETTY_PORT="tty1"
+
+# Lock to 3.19 headers as the RPi2 kernel is based off the 3.19 branch
+BR2_KERNEL_HEADERS_VERSION=y
+BR2_DEFAULT_KERNEL_VERSION="3.19"
+BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_3_19=y
+
+BR2_LINUX_KERNEL=y
+BR2_LINUX_KERNEL_CUSTOM_GIT=y
+BR2_LINUX_KERNEL_CUSTOM_REPO_URL="https://github.com/raspberrypi/linux.git"
+BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="23c76b7f608e51258c6fca02aebeb5d588583149"
+BR2_LINUX_KERNEL_DEFCONFIG="bcm2709"
+BR2_LINUX_KERNEL_ZIMAGE=y
+
+# Install the DTB files, as the RPi2 uses the Device Tree
+BR2_PACKAGE_RPI_FIRMWARE=y
+BR2_PACKAGE_RPI_FIRMWARE_INSTALL_DTBS=y
diff --git a/fs/tar/tar.mk b/fs/tar/tar.mk
index 780827e42f..28219cf052 100644
--- a/fs/tar/tar.mk
+++ b/fs/tar/tar.mk
@@ -7,7 +7,7 @@
 TAR_OPTS := $(call qstrip,$(BR2_TARGET_ROOTFS_TAR_OPTIONS))
 
 define ROOTFS_TAR_CMD
-	tar -c$(TAR_OPTS)f $@ -C $(TARGET_DIR) .
+	tar -c$(TAR_OPTS)f $@ --numeric-owner -C $(TARGET_DIR) .
 endef
 
 $(eval $(call ROOTFS_TARGET,tar))
diff --git a/linux/Config.in b/linux/Config.in
index c981493697..95c847b2ea 100644
--- a/linux/Config.in
+++ b/linux/Config.in
@@ -21,7 +21,7 @@ choice
 	prompt "Kernel version"
 
 config BR2_LINUX_KERNEL_LATEST_VERSION
-	bool "3.18.6"
+	bool "3.19"
 
 config BR2_LINUX_KERNEL_SAME_AS_HEADERS
 	bool "Same as toolchain kernel headers"
@@ -109,7 +109,7 @@ config BR2_LINUX_KERNEL_CUSTOM_LOCAL_PATH
 
 config BR2_LINUX_KERNEL_VERSION
 	string
-	default "3.18.6" if BR2_LINUX_KERNEL_LATEST_VERSION
+	default "3.19" if BR2_LINUX_KERNEL_LATEST_VERSION
 	default BR2_DEFAULT_KERNEL_HEADERS if BR2_LINUX_KERNEL_SAME_AS_HEADERS
 	default BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE \
 		if BR2_LINUX_KERNEL_CUSTOM_VERSION
@@ -174,7 +174,7 @@ choice
 config BR2_LINUX_KERNEL_UIMAGE
 	bool "uImage"
 	depends on BR2_arc || BR2_arm || BR2_armeb || BR2_bfin || \
-		   BR2_powerpc || BR2_avr32 || BR2_sh || BR2_sh64 || \
+		   BR2_powerpc || BR2_sh || BR2_sh64 || \
 		   BR2_mips || BR2_mipsel || BR2_mips64 || BR2_mips64el
 	select BR2_LINUX_KERNEL_UBOOT_IMAGE
 
diff --git a/linux/linux.mk b/linux/linux.mk
index 0b8c9121f3..78e589e486 100644
--- a/linux/linux.mk
+++ b/linux/linux.mk
@@ -57,6 +57,10 @@ LINUX_MAKE_FLAGS = \
 	CROSS_COMPILE="$(CCACHE) $(TARGET_CROSS)" \
 	DEPMOD=$(HOST_DIR)/sbin/depmod
 
+LINUX_MAKE_ENV = \
+	$(TARGET_MAKE_ENV) \
+	BR_BINARIES_DIR=$(BINARIES_DIR)
+
 # Get the real Linux version, which tells us where kernel modules are
 # going to be installed in the target filesystem.
 LINUX_VERSION_PROBED = $(shell $(MAKE) $(LINUX_MAKE_FLAGS) -C $(LINUX_DIR) --no-print-directory -s kernelrelease)
@@ -139,11 +143,7 @@ LINUX_IMAGE_PATH = $(LINUX_DIR)/$(LINUX_IMAGE_NAME)
 else ifeq ($(BR2_LINUX_KERNEL_VMLINUZ),y)
 LINUX_IMAGE_PATH = $(LINUX_DIR)/$(LINUX_IMAGE_NAME)
 else
-ifeq ($(KERNEL_ARCH),avr32)
-LINUX_IMAGE_PATH = $(KERNEL_ARCH_PATH)/boot/images/$(LINUX_IMAGE_NAME)
-else
 LINUX_IMAGE_PATH = $(KERNEL_ARCH_PATH)/boot/$(LINUX_IMAGE_NAME)
-endif
 endif # BR2_LINUX_KERNEL_VMLINUX
 
 define LINUX_DOWNLOAD_PATCHES
@@ -173,13 +173,14 @@ LINUX_POST_PATCH_HOOKS += LINUX_APPLY_PATCHES
 ifeq ($(BR2_LINUX_KERNEL_USE_DEFCONFIG),y)
 KERNEL_SOURCE_CONFIG = $(KERNEL_ARCH_PATH)/configs/$(call qstrip,$(BR2_LINUX_KERNEL_DEFCONFIG))_defconfig
 else ifeq ($(BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG),y)
-KERNEL_SOURCE_CONFIG = $(BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE)
+KERNEL_SOURCE_CONFIG = $(call qstrip,$(BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE))
 endif
 
-define LINUX_CONFIGURE_CMDS
-	$(INSTALL) -m 0644 $(KERNEL_SOURCE_CONFIG) $(KERNEL_ARCH_PATH)/configs/buildroot_defconfig
-	$(TARGET_MAKE_ENV) $(MAKE1) $(LINUX_MAKE_FLAGS) -C $(@D) buildroot_defconfig
-	rm $(KERNEL_ARCH_PATH)/configs/buildroot_defconfig
+LINUX_KCONFIG_FILE = $(KERNEL_SOURCE_CONFIG)
+LINUX_KCONFIG_EDITORS = menuconfig xconfig gconfig nconfig
+LINUX_KCONFIG_OPTS = $(LINUX_MAKE_FLAGS)
+
+define LINUX_KCONFIG_FIXUP_CMDS
 	$(if $(BR2_arm)$(BR2_armeb),
 		$(call KCONFIG_ENABLE_OPT,CONFIG_AEABI,$(@D)/.config))
 	$(if $(BR2_TARGET_ROOTFS_CPIO),
@@ -190,7 +191,7 @@ define LINUX_CONFIGURE_CMDS
 	# rebuilt using the linux-rebuild-with-initramfs target.
 	$(if $(BR2_TARGET_ROOTFS_INITRAMFS),
 		touch $(BINARIES_DIR)/rootfs.cpio
-		$(call KCONFIG_SET_OPT,CONFIG_INITRAMFS_SOURCE,"$(BINARIES_DIR)/rootfs.cpio",$(@D)/.config)
+		$(call KCONFIG_SET_OPT,CONFIG_INITRAMFS_SOURCE,"$${BR_BINARIES_DIR}/rootfs.cpio",$(@D)/.config)
 		$(call KCONFIG_SET_OPT,CONFIG_INITRAMFS_ROOT_UID,0,$(@D)/.config)
 		$(call KCONFIG_SET_OPT,CONFIG_INITRAMFS_ROOT_GID,0,$(@D)/.config))
 	$(if $(BR2_ROOTFS_DEVICE_CREATION_STATIC),,
@@ -224,13 +225,12 @@ define LINUX_CONFIGURE_CMDS
 		$(call KCONFIG_ENABLE_OPT,CONFIG_NF_CONNTRACK_MARK,$(@D)/.config))
 	$(if $(BR2_LINUX_KERNEL_APPENDED_DTB),
 		$(call KCONFIG_ENABLE_OPT,CONFIG_ARM_APPENDED_DTB,$(@D)/.config))
-	yes '' | $(TARGET_MAKE_ENV) $(MAKE1) $(LINUX_MAKE_FLAGS) -C $(@D) oldconfig
 endef
 
 ifeq ($(BR2_LINUX_KERNEL_DTS_SUPPORT),y)
 ifeq ($(BR2_LINUX_KERNEL_DTB_IS_SELF_BUILT),)
 define LINUX_BUILD_DTB
-	$(TARGET_MAKE_ENV) $(MAKE) $(LINUX_MAKE_FLAGS) -C $(@D) $(KERNEL_DTBS)
+	$(LINUX_MAKE_ENV) $(MAKE) $(LINUX_MAKE_FLAGS) -C $(@D) $(KERNEL_DTBS)
 endef
 define LINUX_INSTALL_DTB
 	# dtbs moved from arch/<ARCH>/boot to arch/<ARCH>/boot/dts since 3.8-rc1
@@ -277,9 +277,9 @@ endif
 define LINUX_BUILD_CMDS
 	$(if $(BR2_LINUX_KERNEL_USE_CUSTOM_DTS),
 		cp $(call qstrip,$(BR2_LINUX_KERNEL_CUSTOM_DTS_PATH)) $(KERNEL_ARCH_PATH)/boot/dts/)
-	$(TARGET_MAKE_ENV) $(MAKE) $(LINUX_MAKE_FLAGS) -C $(@D) $(LINUX_TARGET_NAME)
+	$(LINUX_MAKE_ENV) $(MAKE) $(LINUX_MAKE_FLAGS) -C $(@D) $(LINUX_TARGET_NAME)
 	@if grep -q "CONFIG_MODULES=y" $(@D)/.config; then 	\
-		$(TARGET_MAKE_ENV) $(MAKE) $(LINUX_MAKE_FLAGS) -C $(@D) modules ;	\
+		$(LINUX_MAKE_ENV) $(MAKE) $(LINUX_MAKE_FLAGS) -C $(@D) modules ;	\
 	fi
 	$(LINUX_BUILD_DTB)
 	$(LINUX_APPEND_DTB)
@@ -312,7 +312,7 @@ define LINUX_INSTALL_TARGET_CMDS
 	# Install modules and remove symbolic links pointing to build
 	# directories, not relevant on the target
 	@if grep -q "CONFIG_MODULES=y" $(@D)/.config; then 	\
-		$(TARGET_MAKE_ENV) $(MAKE1) $(LINUX_MAKE_FLAGS) -C $(@D) modules_install; \
+		$(LINUX_MAKE_ENV) $(MAKE1) $(LINUX_MAKE_FLAGS) -C $(@D) modules_install; \
 		rm -f $(TARGET_DIR)/lib/modules/$(LINUX_VERSION_PROBED)/build ;		\
 		rm -f $(TARGET_DIR)/lib/modules/$(LINUX_VERSION_PROBED)/source ;	\
 	fi
@@ -321,36 +321,14 @@ endef
 
 include $(sort $(wildcard linux/linux-ext-*.mk))
 
-$(eval $(generic-package))
-
-ifeq ($(BR2_LINUX_KERNEL),y)
-linux-menuconfig linux-xconfig linux-gconfig linux-nconfig: linux-configure
-	$(MAKE) $(LINUX_MAKE_FLAGS) -C $(LINUX_DIR) \
-		$(subst linux-,,$@)
-	rm -f $(LINUX_DIR)/.stamp_{built,target_installed,images_installed}
-
-linux-savedefconfig: linux-configure
-	$(MAKE) $(LINUX_MAKE_FLAGS) -C $(LINUX_DIR) \
-		$(subst linux-,,$@)
-
-ifeq ($(BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG),y)
-linux-update-config: linux-configure $(LINUX_DIR)/.config
-	cp -f $(LINUX_DIR)/.config $(BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE)
-
-linux-update-defconfig: linux-savedefconfig
-	cp -f $(LINUX_DIR)/defconfig $(BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE)
-else
-linux-update-config: ;
-linux-update-defconfig: ;
-endif
-endif
+$(eval $(kconfig-package))
 
 # Support for rebuilding the kernel after the cpio archive has
 # been generated in $(BINARIES_DIR)/rootfs.cpio.
 $(LINUX_DIR)/.stamp_initramfs_rebuilt: $(LINUX_DIR)/.stamp_target_installed $(LINUX_DIR)/.stamp_images_installed $(BINARIES_DIR)/rootfs.cpio
 	@$(call MESSAGE,"Rebuilding kernel with initramfs")
 	# Build the kernel.
-	$(TARGET_MAKE_ENV) $(MAKE) $(LINUX_MAKE_FLAGS) -C $(@D) $(LINUX_TARGET_NAME)
+	$(LINUX_MAKE_ENV) $(MAKE) $(LINUX_MAKE_FLAGS) -C $(@D) $(LINUX_TARGET_NAME)
 	$(LINUX_APPEND_DTB)
 	# Copy the kernel image to its final destination
 	cp $(LINUX_IMAGE_PATH) $(BINARIES_DIR)
diff --git a/package/Config.in b/package/Config.in
index 262a7fb736..ba45f32208 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -207,10 +207,12 @@ endif
 	source "package/fb-test-app/Config.in"
 	source "package/fbterm/Config.in"
 	source "package/fbv/Config.in"
+	source "package/freerdp/Config.in"
 	source "package/imagemagick/Config.in"
 	source "package/linux-fusion/Config.in"
 	source "package/lite/Config.in"
 	source "package/mesa3d/Config.in"
+	source "package/mesa3d-headers/Config.in"
 	source "package/ocrad/Config.in"
 	source "package/psplash/Config.in"
 	source "package/sawman/Config.in"
@@ -243,7 +245,6 @@ comment "X applications"
 	source "package/dillo/Config.in"
 	source "package/docker/Config.in"
 	source "package/feh/Config.in"
-	source "package/freerdp/Config.in"
 	source "package/gmpc/Config.in"
 	source "package/gqview/Config.in"
 	source "package/gtkperf/Config.in"
@@ -348,6 +349,7 @@ endif
 	source "package/minicom/Config.in"
 	source "package/nanocom/Config.in"
 	source "package/neard/Config.in"
+	source "package/nvidia-driver/Config.in"
 	source "package/ofono/Config.in"
 	source "package/ola/Config.in"
 	source "package/on2-8170-modules/Config.in"
@@ -391,6 +393,7 @@ endif
 	source "package/usbmount/Config.in"
 	source "package/usbutils/Config.in"
 	source "package/w_scan/Config.in"
+	source "package/wf111/Config.in"
 	source "package/wipe/Config.in"
 	source "package/xorriso/Config.in"
 endmenu
@@ -443,6 +446,7 @@ menu "Lua libraries/modules"
 	source "package/lua-ev/Config.in"
 	source "package/lua-messagepack/Config.in"
 	source "package/lua-msgpack-native/Config.in"
+	source "package/lua-periphery/Config.in"
 	source "package/lua-testmore/Config.in"
 	source "package/luabitop/Config.in"
 	source "package/luacrypto/Config.in"
@@ -510,6 +514,7 @@ menu "external python modules"
 	source "package/python-certifi/Config.in"
 	source "package/python-cffi/Config.in"
 	source "package/python-cheetah/Config.in"
+	source "package/python-cherrypy/Config.in"
 	source "package/python-coherence/Config.in"
 	source "package/python-configobj/Config.in"
 	source "package/python-configshell-fb/Config.in"
@@ -534,6 +539,8 @@ menu "external python modules"
 	source "package/python-json-schema-validator/Config.in"
 	source "package/python-keyring/Config.in"
 	source "package/python-libconfig/Config.in"
+	source "package/python-lxml/Config.in"
+	source "package/python-mako/Config.in"
 	source "package/python-mad/Config.in"
 	source "package/python-markdown/Config.in"
 	source "package/python-markupsafe/Config.in"
@@ -614,6 +621,7 @@ menu "Audio/Sound"
 	source "package/mp4v2/Config.in"
 	source "package/opencore-amr/Config.in"
 	source "package/opus/Config.in"
+	source "package/opusfile/Config.in"
 	source "package/portaudio/Config.in"
 	source "package/speex/Config.in"
 	source "package/taglib/Config.in"
@@ -1042,11 +1050,13 @@ menu "Miscellaneous"
 	source "package/snowball-init/Config.in"
 	source "package/sound-theme-borealis/Config.in"
 	source "package/sound-theme-freedesktop/Config.in"
+	source "package/wine/Config.in"
 endmenu
 
 menu "Networking applications"
 	source "package/aiccu/Config.in"
 	source "package/aircrack-ng/Config.in"
+	source "package/apache/Config.in"
 	source "package/argus/Config.in"
 	source "package/arptables/Config.in"
 	source "package/atftp/Config.in"
@@ -1054,6 +1064,7 @@ menu "Networking applications"
 	source "package/avahi/Config.in"
 	source "package/axel/Config.in"
 	source "package/bandwidthd/Config.in"
+	source "package/batctl/Config.in"
 	source "package/bcusdk/Config.in"
 	source "package/bind/Config.in"
 	source "package/bluez_utils/Config.in"
@@ -1086,6 +1097,7 @@ endif
 	source "package/fping/Config.in"
 	source "package/gesftpserver/Config.in"
 	source "package/gutenprint/Config.in"
+	source "package/hans/Config.in"
 	source "package/hiawatha/Config.in"
 	source "package/hostapd/Config.in"
 	source "package/hplip/Config.in"
@@ -1100,6 +1112,7 @@ endif
 	source "package/igh-ethercat/Config.in"
 	source "package/igmpproxy/Config.in"
 	source "package/inadyn/Config.in"
+	source "package/iodine/Config.in"
 	source "package/iperf/Config.in"
 	source "package/iperf3/Config.in"
 	source "package/iproute2/Config.in"
diff --git a/package/aiccu/Config.in b/package/aiccu/Config.in
index ce5cea6fbe..bd67bac8db 100644
--- a/package/aiccu/Config.in
+++ b/package/aiccu/Config.in
@@ -4,12 +4,6 @@ config BR2_PACKAGE_AICCU
 	depends on BR2_USE_WCHAR
 	depends on BR2_TOOLCHAIN_HAS_THREADS
 	depends on BR2_USE_MMU # fork()
-	# Uses dn_skipname(), only available since 0.9.33
-	depends on !BR2_UCLIBC_VERSION_0_9_31
-	# AVR32 only has uClibc 0.9.31, so there's no way it can build
-	# due to the lack of dn_skipname(), even with external
-	# toolchains.
-	depends on !BR2_avr32
 	# Triggers the _gp link issue
 	depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII201305
 	depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII201405
@@ -31,6 +25,5 @@ config BR2_PACKAGE_AICCU
 comment "aiccu needs a toolchain w/ IPv6, wchar, threads"
 	depends on BR2_USE_MMU
 	depends on !(BR2_INET_IPV6 && BR2_USE_WCHAR && BR2_TOOLCHAIN_HAS_THREADS)
-	depends on !BR2_avr32
 	depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII201305
 	depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII201405
diff --git a/package/alsa-lib/0001-avr32-bad-inline.patch b/package/alsa-lib/0001-avr32-bad-inline.patch
deleted file mode 100644
index 568ba40a4e..0000000000
--- a/package/alsa-lib/0001-avr32-bad-inline.patch
+++ /dev/null
@@ -1,91 +0,0 @@
-diff -urN alsa-lib-1.0.18-0rig//src/pcm/pcm_local.h alsa-lib-1.0.18/src/pcm/pcm_local.h
---- alsa-lib-1.0.18-0rig//src/pcm/pcm_local.h	2009-01-31 11:02:12.000000000 +0100
-+++ alsa-lib-1.0.18/src/pcm/pcm_local.h	2009-01-31 11:03:24.000000000 +0100
-@@ -611,6 +611,13 @@
- 			   snd_pcm_hw_param_t var);
- int _snd_pcm_hw_param_set(snd_pcm_hw_params_t *params,
- 			  snd_pcm_hw_param_t var, unsigned int val, int dir);
-+
-+#if	defined(AVR32_INLINE_BUG)
-+int _snd_pcm_hw_params_set_format(snd_pcm_hw_params_t *params,
-+						snd_pcm_format_t val);
-+int _snd_pcm_hw_params_set_subformat(snd_pcm_hw_params_t *params,
-+				     snd_pcm_subformat_t val);
-+#else
- static inline int _snd_pcm_hw_params_set_format(snd_pcm_hw_params_t *params,
- 						snd_pcm_format_t val)
- {
-@@ -624,7 +631,7 @@
- 	return _snd_pcm_hw_param_set(params, SND_PCM_HW_PARAM_SUBFORMAT,
- 				     (unsigned long) val, 0);
- }
--
-+#endif
- int _snd_pcm_hw_param_set_min(snd_pcm_hw_params_t *params,
- 			      snd_pcm_hw_param_t var, unsigned int val, int dir);
- int _snd_pcm_hw_param_set_max(snd_pcm_hw_params_t *params,
-diff -urN alsa-lib-1.0.18-0rig//src/pcm/pcm_route.c alsa-lib-1.0.18/src/pcm/pcm_route.c
---- alsa-lib-1.0.18-0rig//src/pcm/pcm_route.c	2009-01-31 11:02:12.000000000 +0100
-+++ alsa-lib-1.0.18/src/pcm/pcm_route.c	2009-01-31 11:03:18.000000000 +0100
-@@ -26,6 +26,7 @@
-  *
-  */
-   
-+
- #include <byteswap.h>
- #include <math.h>
- #include "pcm_local.h"
-@@ -106,6 +107,23 @@
- 
- #endif /* DOC_HIDDEN */
- 
-+
-+#if	defined(AVR32_INLINE_BUG)
-+int _snd_pcm_hw_params_set_format(snd_pcm_hw_params_t *params,
-+						snd_pcm_format_t val)
-+{
-+	return _snd_pcm_hw_param_set(params, SND_PCM_HW_PARAM_FORMAT,
-+				     (unsigned long) val, 0);
-+}
-+
-+int _snd_pcm_hw_params_set_subformat(snd_pcm_hw_params_t *params,
-+				     snd_pcm_subformat_t val)
-+{
-+	return _snd_pcm_hw_param_set(params, SND_PCM_HW_PARAM_SUBFORMAT,
-+				     (unsigned long) val, 0);
-+}
-+#endif
-+
- static void snd_pcm_route_convert1_zero(const snd_pcm_channel_area_t *dst_area,
- 					snd_pcm_uframes_t dst_offset,
- 					const snd_pcm_channel_area_t *src_areas ATTRIBUTE_UNUSED,
-@@ -483,6 +501,8 @@
- 				  snd_pcm_uframes_t frames,
- 				  snd_pcm_route_params_t *params)
- {
-+#if	defined(AVR32_INLINE_BUG)
-+#endif
- 	unsigned int dst_channel;
- 	snd_pcm_route_ttable_dst_t *dstp;
- 	const snd_pcm_channel_area_t *dst_area;
-@@ -551,8 +571,20 @@
- 	_snd_pcm_hw_param_set_mask(sparams, SND_PCM_HW_PARAM_ACCESS,
- 				   &saccess_mask);
- 	if (route->sformat != SND_PCM_FORMAT_UNKNOWN) {
-+#if	defined(AVR32_INLINE_BUG)
-+/* Start of  of problem */
-+#endif
- 		_snd_pcm_hw_params_set_format(sparams, route->sformat);
- 		_snd_pcm_hw_params_set_subformat(sparams, SND_PCM_SUBFORMAT_STD);
-+#if	0
-+		_snd_pcm_hw_param_set(sparams, SND_PCM_HW_PARAM_FORMAT,
-+				     (unsigned long) route->sformat, 0);
-+		_snd_pcm_hw_param_set(sparams, SND_PCM_HW_PARAM_SUBFORMAT,
-+				     (unsigned long) SND_PCM_SUBFORMAT_STD, 0);
-+#endif
-+#if	defined(AVR32_INLINE_BUG)
-+/* End of problem */
-+#endif
- 	}
- 	if (route->schannels >= 0) {
- 		_snd_pcm_hw_param_set(sparams, SND_PCM_HW_PARAM_CHANNELS,
diff --git a/package/alsa-lib/alsa-lib.mk b/package/alsa-lib/alsa-lib.mk
index 16d184ea0e..c67258f498 100644
--- a/package/alsa-lib/alsa-lib.mk
+++ b/package/alsa-lib/alsa-lib.mk
@@ -50,10 +50,6 @@ ifneq ($(BR2_PACKAGE_ALSA_LIB_OLD_SYMBOLS),y)
 ALSA_LIB_CONF_OPTS += --disable-old-symbols
 endif
 
-ifeq ($(BR2_avr32),y)
-ALSA_LIB_CFLAGS += -DAVR32_INLINE_BUG
-endif
-
 ifeq ($(BR2_PACKAGE_ALSA_LIB_PYTHON),y)
 ALSA_LIB_CONF_OPTS += \
 	--with-pythonlibs=-lpython$(PYTHON_VERSION_MAJOR) \
diff --git a/package/apache/0001-cross-compile.patch b/package/apache/0001-cross-compile.patch
new file mode 100644
index 0000000000..790b7a0490
--- /dev/null
+++ b/package/apache/0001-cross-compile.patch
@@ -0,0 +1,63 @@
+Fix cross-compilation
+
+Fetched httpd-2.4.x-cross_compile.diff from upstream bugtracker:
+https://issues.apache.org/bugzilla/show_bug.cgi?id=51257#c6
+
+which is a bundle of upstream revisions:
+    http://svn.apache.org/viewvc?view=revision&revision=1327907
+    http://svn.apache.org/viewvc?view=revision&revision=1328390
+    http://svn.apache.org/viewvc?view=revision&revision=1328714
+
+Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
+
+Index: server/Makefile.in
+===================================================================
+--- a/server/Makefile.in	(revision 1328714)
++++ b/server/Makefile.in	(working copy)
+@@ -22,9 +22,14 @@
+ include $(top_builddir)/build/rules.mk
+ include $(top_srcdir)/build/library.mk
+ 
++ifdef CC_FOR_BUILD
++gen_test_char: gen_test_char.c
++	$(CC_FOR_BUILD) $(CFLAGS_FOR_BUILD) -DCROSS_COMPILE -o $@ $<
++else
+ gen_test_char_OBJECTS = gen_test_char.lo
+ gen_test_char: $(gen_test_char_OBJECTS)
+ 	$(LINK) $(EXTRA_LDFLAGS) $(gen_test_char_OBJECTS) $(EXTRA_LIBS)
++endif
+ 
+ test_char.h: gen_test_char
+ 	./gen_test_char > test_char.h
+Index: configure.in
+===================================================================
+--- a/configure.in	(revision 1328714)
++++ b/configure.in	(working copy)
+@@ -193,6 +193,14 @@
+ dnl Try to get c99 support for variadic macros
+ ifdef([AC_PROG_CC_C99], [AC_PROG_CC_C99])
+ 
++dnl In case of cross compilation we set CC_FOR_BUILD to cc unless
++dnl we got already CC_FOR_BUILD from environment.
++if test "x${build_alias}" != "x${host_alias}"; then
++  if test "x${CC_FOR_BUILD}" = "x"; then
++    CC_FOR_BUILD=cc
++  fi
++fi
++
+ if test "x${cache_file}" = "x/dev/null"; then
+   # Likewise, ensure that CC and CPP are passed through to the pcre
+   # configure script iff caching is disabled (the autoconf 2.5x default).
+Index: acinclude.m4
+===================================================================
+--- a/acinclude.m4	(revision 1328714)
++++ ab/cinclude.m4	(working copy)
+@@ -53,6 +53,8 @@
+   APACHE_SUBST(CPPFLAGS)
+   APACHE_SUBST(CFLAGS)
+   APACHE_SUBST(CXXFLAGS)
++  APACHE_SUBST(CC_FOR_BUILD)
++  APACHE_SUBST(CFLAGS_FOR_BUILD)
+   APACHE_SUBST(LTFLAGS)
+   APACHE_SUBST(LDFLAGS)
+   APACHE_SUBST(LT_LDFLAGS)
diff --git a/package/apache/Config.in b/package/apache/Config.in
new file mode 100644
index 0000000000..0814a17f7e
--- /dev/null
+++ b/package/apache/Config.in
@@ -0,0 +1,19 @@
+config BR2_PACKAGE_APACHE
+	bool "apache"
+	select BR2_PACKAGE_APR_UTIL
+	select BR2_PACKAGE_PCRE
+	depends on !BR2_STATIC_LIBS
+	depends on BR2_TOOLCHAIN_HAS_THREADS
+	depends on BR2_USE_MMU # apr
+	help
+	  The Apache HTTP Server Project is an effort to develop and maintain an
+	  open-source HTTP server for modern operating systems including UNIX
+	  and Windows NT. The goal of this project is to provide a secure,
+	  efficient and extensible server that provides HTTP services in sync
+	  with the current HTTP standards.
+
+	  http://httpd.apache.org
+
+comment "apache needs a toolchain w/ dynamic library, threads"
+	depends on BR2_USE_MMU
+	depends on BR2_STATIC_LIBS || !BR2_TOOLCHAIN_HAS_THREADS
diff --git a/package/apache/apache.hash b/package/apache/apache.hash
new file mode 100644
index 0000000000..51fd3ca87f
--- /dev/null
+++ b/package/apache/apache.hash
@@ -0,0 +1,2 @@
+# From http://www.apache.org/dist/httpd/httpd-2.4.12.tar.bz2.sha1
+sha1	bc4681bfd63accec8d82d3cc440fbc8264ce0f17	httpd-2.4.12.tar.bz2
diff --git a/package/apache/apache.mk b/package/apache/apache.mk
new file mode 100644
index 0000000000..296e27e9c6
--- /dev/null
+++ b/package/apache/apache.mk
@@ -0,0 +1,85 @@
+################################################################################
+#
+# apache
+#
+################################################################################
+
+APACHE_VERSION = 2.4.12
+APACHE_SOURCE = httpd-$(APACHE_VERSION).tar.bz2
+APACHE_SITE = http://archive.apache.org/dist/httpd
+APACHE_LICENSE = Apache-2.0
+APACHE_LICENSE_FILES = LICENSE
+# Needed for mod_php
+APACHE_INSTALL_STAGING = YES
+# We have a patch touching configure.in and Makefile.in,
+# so we need to autoreconf:
+APACHE_AUTORECONF = YES
+APACHE_DEPENDENCIES = apr apr-util pcre
+
+APACHE_CONF_ENV= \
+	ap_cv_void_ptr_lt_long=no \
+	PCRE_CONFIG=$(STAGING_DIR)/usr/bin/pcre-config
+
+APACHE_CONF_OPTS = \
+	--sysconfdir=/etc/apache2 \
+	--with-apr=$(STAGING_DIR)/usr \
+	--with-apr-util=$(STAGING_DIR)/usr \
+	--with-pcre=$(STAGING_DIR)/usr/bin/pcre-config \
+	--enable-http \
+	--enable-dbd \
+	--enable-proxy \
+	--enable-mime-magic \
+	--without-suexec-bin \
+	--enable-mods-shared=all \
+	--with-mpm=worker \
+	--disable-lua \
+	--disable-luajit
+
+ifeq ($(BR2_ARCH_HAS_ATOMICS),y)
+APACHE_CONF_OPTS += --enable-nonportable-atomics=yes
+endif
+
+ifeq ($(BR2_PACKAGE_LIBXML2),y)
+APACHE_DEPENDENCIES += libxml2
+# Apache wants the path to the header file, where it can find
+# <libxml/parser.h>.
+APACHE_CONF_OPTS += \
+	--enable-xml2enc \
+	--enable-proxy-html \
+	--with-libxml2=$(STAGING_DIR)/usr/include/libxml2
+else
+APACHE_CONF_OPTS += \
+	--disable-xml2enc \
+	--disable-proxy-html
+endif
+
+ifeq ($(BR2_PACKAGE_OPENSSL),y)
+APACHE_DEPENDENCIES += openssl
+APACHE_CONF_OPTS += \
+	--enable-ssl \
+	--with-ssl=$(STAGING_DIR)/usr
+else
+APACHE_CONF_OPTS += --disable-ssl
+endif
+
+ifeq ($(BR2_PACKAGE_ZLIB),y)
+APACHE_DEPENDENCIES += zlib
+APACHE_CONF_OPTS += \
+	--enable-deflate \
+	--with-z=$(STAGING_DIR)/usr
+else
+APACHE_CONF_OPTS += --disable-deflate
+endif
+
+define APACHE_FIX_STAGING_APACHE_CONFIG
+	$(SED) 's%/usr/build%$(STAGING_DIR)/usr/build%' $(STAGING_DIR)/usr/bin/apxs
+	$(SED) 's%^prefix =.*%prefix = $(STAGING_DIR)/usr%' $(STAGING_DIR)/usr/build/config_vars.mk
+endef
+APACHE_POST_INSTALL_STAGING_HOOKS += APACHE_FIX_STAGING_APACHE_CONFIG
+
+define APACHE_CLEANUP_TARGET
+	$(RM) -rf $(TARGET_DIR)/usr/manual $(TARGET_DIR)/usr/build
+endef
+APACHE_POST_INSTALL_TARGET_HOOKS += APACHE_CLEANUP_TARGET
+
+$(eval $(autotools-package))
diff --git a/package/autoconf-archive/autoconf-archive.mk b/package/autoconf-archive/autoconf-archive.mk
new file mode 100644
index 0000000000..78cb6a8d42
--- /dev/null
+++ b/package/autoconf-archive/autoconf-archive.mk
@@ -0,0 +1,13 @@
+################################################################################
+#
+# autoconf-archive
+#
+################################################################################
+
+AUTOCONF_ARCHIVE_VERSION = 2015.02.04
+AUTOCONF_ARCHIVE_SOURCE = autoconf-archive-$(AUTOCONF_ARCHIVE_VERSION).tar.xz
+AUTOCONF_ARCHIVE_SITE = $(BR2_GNU_MIRROR)/autoconf-archive/
+AUTOCONF_ARCHIVE_LICENSE = GPLv3+ with exception
+AUTOCONF_ARCHIVE_LICENSE_FILES = COPYING COPYING.EXCEPTION
+
+$(eval $(host-autotools-package))
diff --git a/package/autossh/autossh.hash b/package/autossh/autossh.hash
index e1e3b2ccb1..4f3de137a5 100644
--- a/package/autossh/autossh.hash
+++ b/package/autossh/autossh.hash
@@ -1,4 +1,2 @@
-# From http://www.harding.motd.ca/autossh/autossh-1.4d.cksums
-md5	89c09b50aa2d57814f808d727e937d0f	autossh-1.4d.tgz
-sha1	27da23c357f8d263aba6ecf3e8792a3552d90e50	autossh-1.4d.tgz
-sha256	00008fe458bde4c94e98bfa96e1e6e18c4107a1f9fc8a538556b82e91ddedc16	autossh-1.4d.tgz
+# From http://www.harding.motd.ca/autossh/autossh-1.4e.cksums
+sha256	9e8e10a59d7619176f4b986e256f776097a364d1be012781ea52e08d04679156	autossh-1.4e.tgz
diff --git a/package/autossh/autossh.mk b/package/autossh/autossh.mk
index 51f9faf42e..01d3c65cc9 100644
--- a/package/autossh/autossh.mk
+++ b/package/autossh/autossh.mk
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-AUTOSSH_VERSION = 1.4d
+AUTOSSH_VERSION = 1.4e
 AUTOSSH_SITE = http://www.harding.motd.ca/autossh
 AUTOSSH_SOURCE = autossh-$(AUTOSSH_VERSION).tgz
 AUTOSSH_LICENSE = Modified BSD
diff --git a/package/avrdude/Config.in b/package/avrdude/Config.in
index f090ac673f..1433d2b5c8 100644
--- a/package/avrdude/Config.in
+++ b/package/avrdude/Config.in
@@ -8,7 +8,6 @@ config BR2_PACKAGE_AVRDUDE
 	depends on BR2_LARGEFILE # elfutils
 	depends on BR2_USE_WCHAR # elfutils
 	depends on !BR2_STATIC_LIBS # elfutils
-	depends on !BR2_avr32 # elfutils
 	depends on !BR2_bfin # elfutils
 	help
 	  avrdude is a programmer for Atmel AVR microcontrollers
@@ -18,5 +17,4 @@ config BR2_PACKAGE_AVRDUDE
 
 comment "avrdude needs a toolchain w/ threads, largefile, wchar, dynamic library"
 	depends on !BR2_TOOLCHAIN_HAS_THREADS || !BR2_LARGEFILE || !BR2_USE_WCHAR || BR2_STATIC_LIBS
-	depends on !BR2_avr32
 	depends on !BR2_bfin
diff --git a/package/batctl/Config.in b/package/batctl/Config.in
new file mode 100644
index 0000000000..a60f4f6add
--- /dev/null
+++ b/package/batctl/Config.in
@@ -0,0 +1,12 @@
+config BR2_PACKAGE_BATCTL
+	bool "batctl"
+	depends on BR2_INET_IPV6
+	depends on BR2_TOOLCHAIN_HAS_THREADS # libnl
+	select BR2_PACKAGE_LIBNL
+	help
+	  Batctl is the configuration and debugging tool for batman-adv.
+
+	  http://www.open-mesh.org/projects/batman-adv/wiki/Using-batctl
+
+comment "batctl needs a toolchain w/ IPv6, threads"
+	depends on !BR2_INET_IPV6 || !BR2_TOOLCHAIN_HAS_THREADS
diff --git a/package/batctl/batctl.hash b/package/batctl/batctl.hash
new file mode 100644
index 0000000000..663e6021de
--- /dev/null
+++ b/package/batctl/batctl.hash
@@ -0,0 +1,2 @@
+# Locally calculated
+sha256	77509ed70232ebc0b73e2fa9471ae13b12d6547d167dda0a82f7a7fad7252c36  batctl-2014.4.0.tar.gz
diff --git a/package/batctl/batctl.mk b/package/batctl/batctl.mk
new file mode 100644
index 0000000000..c458752148
--- /dev/null
+++ b/package/batctl/batctl.mk
@@ -0,0 +1,21 @@
+################################################################################
+#
+# batctl
+#
+################################################################################
+
+BATCTL_VERSION = 2014.4.0
+BATCTL_SITE = http://downloads.open-mesh.org/batman/releases/batman-adv-$(BATCTL_VERSION)
+BATCTL_LICENSE = GPLv2
+BATCTL_DEPENDENCIES = libnl host-pkgconf
+
+define BATCTL_BUILD_CMDS
+	$(TARGET_MAKE_ENV) $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D) all
+endef
+
+define BATCTL_INSTALL_TARGET_CMDS
+	$(TARGET_MAKE_ENV) $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D) \
+		PREFIX=/usr DESTDIR=$(TARGET_DIR) install
+endef
+
+$(eval $(generic-package))
diff --git a/package/bdwgc/Config.in b/package/bdwgc/Config.in
index ec83fa3a6d..9aa7c7dff5 100644
--- a/package/bdwgc/Config.in
+++ b/package/bdwgc/Config.in
@@ -1,13 +1,5 @@
-config BR2_PACKAGE_BDWGC_ARCH_SUPPORTS
-	bool
-	default y
-	depends on BR2_arm || BR2_armeb || BR2_avr32 || BR2_i386 \
-		|| BR2_mips || BR2_mipsel || BR2_powerpc || BR2_sh \
-		|| BR2_sparc || BR2_x86_64
-
 config BR2_PACKAGE_BDWGC
 	bool "bdwgc"
-	depends on BR2_PACKAGE_BDWGC_ARCH_SUPPORTS
 	depends on BR2_PACKAGE_LIBATOMIC_ARCH_SUPPORTS
 	select BR2_PACKAGE_LIBATOMIC_OPS
 	help
diff --git a/package/bdwgc/bdwgc.hash b/package/bdwgc/bdwgc.hash
new file mode 100644
index 0000000000..44414e4efa
--- /dev/null
+++ b/package/bdwgc/bdwgc.hash
@@ -0,0 +1,2 @@
+# Locally computed
+sha256	63320ad7c45460e4a40e03f5aa4c6893783f21a16416c3282b994f933312afa2	gc-7.4.2.tar.gz
diff --git a/package/bdwgc/bdwgc.mk b/package/bdwgc/bdwgc.mk
index b408947359..9cf015ed1b 100644
--- a/package/bdwgc/bdwgc.mk
+++ b/package/bdwgc/bdwgc.mk
@@ -4,9 +4,7 @@
 #
 ################################################################################
 
-# When bumping the version number, check if the list of supported architectures
-# is still valid; see Config.log.
-BDWGC_VERSION = 7.2f
+BDWGC_VERSION = 7.4.2
 BDWGC_SOURCE = gc-$(BDWGC_VERSION).tar.gz
 BDWGC_SITE = http://www.hboehm.info/gc/gc_source
 BDWGC_INSTALL_STAGING = YES
diff --git a/package/binutils/Config.in.host b/package/binutils/Config.in.host
index 0739467cc4..d0ed84e059 100644
--- a/package/binutils/Config.in.host
+++ b/package/binutils/Config.in.host
@@ -7,33 +7,31 @@ choice
 	help
 	  Select the version of binutils you wish to use.
 
-	config BR2_BINUTILS_VERSION_2_18_AVR32_1_0_1
-		depends on BR2_avr32
-		bool "binutils 2.18-avr32-1.0.1"
-
 	config BR2_BINUTILS_VERSION_2_22
-		depends on !BR2_avr32 && !BR2_aarch64 && !BR2_microblaze && !BR2_powerpc64le
+		depends on !BR2_aarch64 && !BR2_microblaze && \
+			   !BR2_powerpc64le && !BR2_nios2
 		bool "binutils 2.22"
 
 	# bfin disabled for newer binutils due to
 	# https://sourceware.org/bugzilla/show_bug.cgi?id=17334
 	config BR2_BINUTILS_VERSION_2_23_2
-		depends on !BR2_avr32 && !BR2_aarch64 && !BR2_bfin && !BR2_microblaze && !BR2_powerpc64le
+		depends on !BR2_aarch64 && !BR2_bfin && !BR2_microblaze && \
+			   !BR2_powerpc64le && !BR2_nios2
 		bool "binutils 2.23.2"
 
 	config BR2_BINUTILS_VERSION_2_24
-		depends on !BR2_avr32 && !BR2_bfin
+		depends on !BR2_bfin
+		depends on !BR2_nios2 # supported, but broken on Nios-II
 		bool "binutils 2.24"
 
 	config BR2_BINUTILS_VERSION_2_25
-		depends on !BR2_avr32 && !BR2_bfin
+		depends on !BR2_bfin
 		bool "binutils 2.25"
 
 endchoice
 
 config BR2_BINUTILS_VERSION
 	string
-	default "2.18-avr32-1.0.1" if BR2_BINUTILS_VERSION_2_18_AVR32_1_0_1
 	default "arc-2014.12"	if BR2_arc
 	default "2.22"		if BR2_BINUTILS_VERSION_2_22
 	default "2.23.2"	if BR2_BINUTILS_VERSION_2_23_2
diff --git a/package/binutils/binutils.mk b/package/binutils/binutils.mk
index c3b3c18afd..9e992533f3 100644
--- a/package/binutils/binutils.mk
+++ b/package/binutils/binutils.mk
@@ -8,17 +8,9 @@
 # If not, we do like other packages
 BINUTILS_VERSION = $(call qstrip,$(BR2_BINUTILS_VERSION))
 ifeq ($(BINUTILS_VERSION),)
-ifeq ($(BR2_avr32),y)
-# avr32 uses a special version
-BINUTILS_VERSION = 2.18-avr32-1.0.1
-else
 BINUTILS_VERSION = 2.22
 endif
-endif
 
-ifeq ($(ARCH),avr32)
-BINUTILS_SITE = ftp://www.at91.com/pub/buildroot
-endif
 ifeq ($(BR2_arc),y)
 BINUTILS_SITE = $(call github,foss-for-synopsys-dwc-arc-processors,binutils-gdb,$(BINUTILS_VERSION))
 BINUTILS_SOURCE = binutils-$(BINUTILS_VERSION).tar.gz
diff --git a/package/blktrace/Config.in b/package/blktrace/Config.in
index e68ae1334b..09c95eb39a 100644
--- a/package/blktrace/Config.in
+++ b/package/blktrace/Config.in
@@ -4,7 +4,7 @@ config BR2_PACKAGE_BLKTRACE
 	depends on BR2_TOOLCHAIN_USES_GLIBC || BR2_TOOLCHAIN_USES_MUSL
 	# Because of libaio arch depends
 	depends on \
-		BR2_arm   || BR2_armeb || BR2_avr32  || BR2_i386    || \
+		BR2_arm   || BR2_armeb || BR2_i386   || \
 		BR2_m68k  || BR2_mips  || BR2_mipsel || BR2_powerpc || \
 		BR2_sparc || BR2_x86_64
 	select BR2_PACKAGE_LIBAIO
diff --git a/package/bluez5_utils/Config.in b/package/bluez5_utils/Config.in
index a7cd55eb9a..8841649872 100644
--- a/package/bluez5_utils/Config.in
+++ b/package/bluez5_utils/Config.in
@@ -1,6 +1,5 @@
 config BR2_PACKAGE_BLUEZ5_UTILS
 	bool "bluez-utils 5.x"
-	depends on !BR2_avr32
 	depends on BR2_USE_WCHAR # libglib2
 	depends on BR2_TOOLCHAIN_HAS_THREADS # dbus, libglib2
 	depends on BR2_USE_MMU # dbus
diff --git a/package/bluez_utils/Config.in b/package/bluez_utils/Config.in
index c4760b29a3..34defd3fcf 100644
--- a/package/bluez_utils/Config.in
+++ b/package/bluez_utils/Config.in
@@ -1,6 +1,5 @@
 config BR2_PACKAGE_BLUEZ_UTILS
 	bool "bluez-utils"
-	depends on !BR2_avr32
 	depends on !BR2_STATIC_LIBS
 	depends on BR2_USE_WCHAR # libglib2
 	depends on BR2_TOOLCHAIN_HAS_THREADS # dbus, alsa-lib, libglib2
@@ -47,5 +46,5 @@ config BR2_PACKAGE_BLUEZ_UTILS_GATT
 endif
 
 comment "bluez-utils needs a toolchain w/ wchar, threads, dynamic library"
-	depends on !BR2_avr32 && BR2_USE_MMU
+	depends on BR2_USE_MMU
 	depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS
diff --git a/package/bmon/0001-build-uclinux-is-also-linux.patch b/package/bmon/0001-build-uclinux-is-also-linux.patch
deleted file mode 100644
index 18f517ece9..0000000000
--- a/package/bmon/0001-build-uclinux-is-also-linux.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From adcf320db5cc2844209d001f9484b0ff0cab4e0b Mon Sep 17 00:00:00 2001
-From: Gustavo Zacarias <gustavo@zacarias.com.ar>
-Date: Tue, 11 Nov 2014 20:22:37 -0300
-Subject: [PATCH] build: uclinux is also linux
-
-Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
----
-Status: pull request in github
-
-diff --git a/configure.ac b/configure.ac
-index 3059e52..10388fd 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -70,7 +70,7 @@ fi
- PKG_CHECK_MODULES([CONFUSE], [libconfuse], [], AC_MSG_ERROR([requires libconfuse]))
- 
- case ${target_os} in
--    linux*)
-+    linux*|uclinux*)
-         PKG_CHECK_MODULES([LIBNL], [libnl-3.0], [], AC_MSG_ERROR([requires libnl3-dev]))
-         PKG_CHECK_MODULES([LIBNL_ROUTE], [libnl-route-3.0], [], AC_MSG_ERROR([requires libnl3-route]))
-     ;;
--- 
-2.0.4
-
diff --git a/package/bmon/bmon.hash b/package/bmon/bmon.hash
index dbe2e683a0..65747b4863 100644
--- a/package/bmon/bmon.hash
+++ b/package/bmon/bmon.hash
@@ -1,2 +1,2 @@
 # Locally calculated
-sha256  78ab9e46840178fbc874cdbc94fde34e72e41a18a27383660b50b4c3cd0d1f9c  bmon-3.5.tar.gz
+sha256  62c8c20d00572a7670891d4c112924786cb69ec4ca92d5052951566f000d1514  bmon-3.6.tar.gz
diff --git a/package/bmon/bmon.mk b/package/bmon/bmon.mk
index c89de17d11..95168f6003 100644
--- a/package/bmon/bmon.mk
+++ b/package/bmon/bmon.mk
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-BMON_VERSION = 3.5
+BMON_VERSION = 3.6
 BMON_SITE = https://github.com/tgraf/bmon/releases/download/v$(BMON_VERSION)/
 BMON_DEPENDENCIES = host-pkgconf libconfuse libnl ncurses
 BMON_LICENSE = BSD-2c
diff --git a/package/btrfs-progs/Config.in b/package/btrfs-progs/Config.in
index a8d407be65..dcd2ec540a 100644
--- a/package/btrfs-progs/Config.in
+++ b/package/btrfs-progs/Config.in
@@ -4,7 +4,6 @@ config BR2_PACKAGE_BTRFS_PROGS
 	depends on BR2_USE_WCHAR # util-linux
 	depends on BR2_USE_MMU # util-linux
 	depends on BR2_TOOLCHAIN_HAS_THREADS
-	depends on !BR2_avr32 # toolchain issues
 	select BR2_PACKAGE_ACL
 	select BR2_PACKAGE_ATTR
 	select BR2_PACKAGE_E2FSPROGS
@@ -20,6 +19,5 @@ config BR2_PACKAGE_BTRFS_PROGS
 
 comment "btrfs-progs needs a toolchain w/ largefile, wchar, threads"
 	depends on BR2_USE_MMU
-	depends on !BR2_avr32
 	depends on !BR2_LARGEFILE || !BR2_USE_WCHAR || \
 		!BR2_TOOLCHAIN_HAS_THREADS
diff --git a/package/busybox/busybox.config b/package/busybox/busybox.config
index 7af7ecaf22..20b8c1d87b 100644
--- a/package/busybox/busybox.config
+++ b/package/busybox/busybox.config
@@ -575,7 +575,7 @@ CONFIG_FEATURE_FDISK_WRITABLE=y
 CONFIG_FEATURE_GPT_LABEL=y
 CONFIG_FEATURE_FDISK_ADVANCED=y
 # CONFIG_FINDFS is not set
-# CONFIG_FLOCK is not set
+CONFIG_FLOCK=y
 CONFIG_FREERAMDISK=y
 # CONFIG_FSCK_MINIX is not set
 # CONFIG_MKFS_EXT2 is not set
diff --git a/package/cmake/cmake.hash b/package/cmake/cmake.hash
new file mode 100644
index 0000000000..76e03d3247
--- /dev/null
+++ b/package/cmake/cmake.hash
@@ -0,0 +1,2 @@
+# Locally calculated
+sha256 45f4d3fa8a2f61cc092ae461aac4cac1bab4ac6706f98274ea7f314dd315c6d0 cmake-3.1.3.tar.gz
diff --git a/package/cmake/cmake.mk b/package/cmake/cmake.mk
index e09fddf01e..8c64b58370 100644
--- a/package/cmake/cmake.mk
+++ b/package/cmake/cmake.mk
@@ -4,8 +4,8 @@
 #
 ################################################################################
 
-CMAKE_VERSION_MAJOR = 3.0
-CMAKE_VERSION = $(CMAKE_VERSION_MAJOR).2
+CMAKE_VERSION_MAJOR = 3.1
+CMAKE_VERSION = $(CMAKE_VERSION_MAJOR).3
 CMAKE_SITE = http://www.cmake.org/files/v$(CMAKE_VERSION_MAJOR)
 CMAKE_LICENSE = BSD-3c
 CMAKE_LICENSE_FILES = Copyright.txt
diff --git a/package/collectd/Config.in b/package/collectd/Config.in
index c12dd5b46c..64f7d58c4b 100644
--- a/package/collectd/Config.in
+++ b/package/collectd/Config.in
@@ -251,7 +251,6 @@ config BR2_PACKAGE_COLLECTD_MYSQL
 	depends on BR2_INSTALL_LIBSTDCPP # mysql
 	depends on BR2_USE_MMU # mysql
 	depends on BR2_TOOLCHAIN_HAS_THREADS # mysql
-	depends on !BR2_avr32 # mysql
 	select BR2_PACKAGE_MYSQL
 	help
 	  Connects to a MySQL database and issues a "show status" command.
diff --git a/package/connman/Config.in b/package/connman/Config.in
index f071627e89..39a8ed4327 100644
--- a/package/connman/Config.in
+++ b/package/connman/Config.in
@@ -3,7 +3,6 @@ config BR2_PACKAGE_CONNMAN
 	select BR2_PACKAGE_DBUS
 	select BR2_PACKAGE_LIBGLIB2
 	select BR2_PACKAGE_IPTABLES
-	depends on !BR2_avr32 # no inotify_init1
 	depends on BR2_USE_WCHAR # libglib2
 	depends on BR2_INET_IPV6
 	depends on BR2_TOOLCHAIN_HAS_THREADS # dbus, libglib2
@@ -66,5 +65,5 @@ config BR2_PACKAGE_CONNMAN_CLIENT
 endif # BR2_PACKAGE_CONNMAN
 
 comment "connman needs a toolchain w/ IPv6, wchar, threads, resolver, dynamic library"
-	depends on BR2_USE_MMU && !BR2_avr32
+	depends on BR2_USE_MMU
 	depends on !BR2_USE_WCHAR || !BR2_INET_IPV6 || !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS
diff --git a/package/crda/0002-Add-DESTDIR-support-in-install-libreg-rules.patch b/package/crda/0002-Add-DESTDIR-support-in-install-libreg-rules.patch
deleted file mode 100644
index 617d05f7ce..0000000000
--- a/package/crda/0002-Add-DESTDIR-support-in-install-libreg-rules.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From 2cabb2588da56735369131b709f191453c080be0 Mon Sep 17 00:00:00 2001
-From: "John W. Linville" <linville@tuxdriver.com>
-Date: Fri, 14 Feb 2014 13:58:44 -0500
-Subject: [PATCH 1/4] crda: Add DESTDIR support in install-libreg* rules in
- Makefile
-
-Also drop ldconfig call, as that causes problems when cross compiling /
-installing as non-root.
-
-Signed-off-by: John W. Linville <linville@tuxdriver.com>
-Signed-off-by: Luis R. Rodriguez <mcgrof@do-not-panic.com>
-Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
----
- Makefile | 8 ++++----
- 1 file changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/Makefile b/Makefile
-index 0b2f0d7..1f25509 100644
---- a/Makefile
-+++ b/Makefile
-@@ -120,13 +120,12 @@ $(LIBREG): regdb.h reglib.h reglib.c
- 
- install-libreg-headers:
- 	$(NQ) '  INSTALL  libreg-headers'
--	$(Q)mkdir -p $(INCLUDE_DIR)
--	$(Q)cp *.h $(INCLUDE_DIR)/
-+	$(Q)mkdir -p $(DESTDIR)/$(INCLUDE_DIR)
-+	$(Q)cp *.h $(DESTDIR)/$(INCLUDE_DIR)/
- 
- install-libreg:
- 	$(NQ) '  INSTALL  libreg'
--	$(Q)mkdir -p $(LIBDIR)
--	$(Q)cp $(LIBREG) $(LIBDIR)/
--	$(Q)ldconfig
-+	$(Q)mkdir -p $(DESTDIR)/$(LIBDIR)
-+	$(Q)cp $(LIBREG) $(DESTDIR)/$(LIBDIR)/
- 
- %.o: %.c regdb.h $(LIBREG)
--- 
-1.8.5.5
-
diff --git a/package/crda/0002-drop-ldconfig-call.patch b/package/crda/0002-drop-ldconfig-call.patch
new file mode 100644
index 0000000000..f09e258adb
--- /dev/null
+++ b/package/crda/0002-drop-ldconfig-call.patch
@@ -0,0 +1,15 @@
+Drop ldconfig call, it's useless for cross-compiling.
+
+Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
+
+diff -Nura crda-3.18.orig/Makefile crda-3.18/Makefile
+--- crda-3.18.orig/Makefile	2015-02-18 10:34:23.841259401 -0300
++++ crda-3.18/Makefile	2015-02-18 10:35:10.524201452 -0300
+@@ -127,7 +127,6 @@
+ 	$(NQ) '  INSTALL  libreg'
+ 	$(Q)mkdir -p $(DESTDIR)/$(LIBDIR)
+ 	$(Q)cp $(LIBREG) $(DESTDIR)/$(LIBDIR)/
+-	$(Q)ldconfig
+ 
+ %.o: %.c regdb.h $(LIBREG)
+ 	$(NQ) '  CC  ' $@
diff --git a/package/crda/crda.hash b/package/crda/crda.hash
index 2fc04e662c..45b9d20407 100644
--- a/package/crda/crda.hash
+++ b/package/crda/crda.hash
@@ -1,2 +1,2 @@
 # From https://www.kernel.org/pub/software/network/crda/sha256sums.asc
-sha256	2f85da7ab0170b140d6ed62596c8f268d4a7dedecf84cac7182ada979742ff59	crda-3.13.tar.xz
+sha256	43fcb9679f8b75ed87ad10944a506292def13e4afb194afa7aa921b01e8ecdbf	crda-3.18.tar.xz
diff --git a/package/crda/crda.mk b/package/crda/crda.mk
index 3c06e075d2..abfbb8e1ef 100644
--- a/package/crda/crda.mk
+++ b/package/crda/crda.mk
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-CRDA_VERSION = 3.13
+CRDA_VERSION = 3.18
 CRDA_SOURCE = crda-$(CRDA_VERSION).tar.xz
 CRDA_SITE = $(BR2_KERNEL_MIRROR)/software/network/crda
 CRDA_DEPENDENCIES = host-pkgconf host-python-m2crypto \
diff --git a/package/cryptodev-linux/0001-Replace_INIT_COMPLETION_with_reinit_completion.patch b/package/cryptodev-linux/0001-Replace_INIT_COMPLETION_with_reinit_completion.patch
deleted file mode 100644
index 3c1b5801f5..0000000000
--- a/package/cryptodev-linux/0001-Replace_INIT_COMPLETION_with_reinit_completion.patch
+++ /dev/null
@@ -1,83 +0,0 @@
-From: Cosmin Paraschiv <cosmin.paraschiv@freescale.com>
-To: <cryptodev-linux-devel@gna.org>
-Subject: [Cryptodev-linux-devel] [PATCH v2] Replace INIT_COMPLETION with
-	reinit_completion.
-
-In the 3.13-rc1 Linux kernel, the INIT_COMPLETION macro has been replaced
-with an inline function, reinit_completion [1][2]. We are currently
-using the 3.13-rc3 Linux kernel, which leads to the following error:
-
-cryptlib.c:279:2: error: implicit declaration of function 'INIT_COMPLETION' [-Werror=implicit-function-declaration]
-  INIT_COMPLETION(cdata->async.result->completion);
-
-[1] https://github.com/torvalds/linux/commit/c32f74ab2872994bc8336ed367313da3139350ca
-[2] https://github.com/torvalds/linux/commit/62026aedaacedbe1ffe94a3599ad4acd8ecdf587
-
-Signed-off-by: Cosmin Paraschiv <cosmin.paraschiv@freescale.com>
-Reviewed-by: Cristian Stoica <cristian.stoica@freescale.com>
-Tested-by: Cristian Stoica <cristian.stoica@freescale.com>
-Signed-off-by: Horia Geanta <horia.geanta@freescale.com>
----
- cryptlib.c      | 8 ++++----
- cryptodev_int.h | 6 ++++++
- 2 files changed, 10 insertions(+), 4 deletions(-)
-
-diff --git a/cryptlib.c b/cryptlib.c
-index e6c91fc..fe25563 100644
---- a/cryptlib.c
-+++ b/cryptlib.c
-@@ -276,7 +276,7 @@ ssize_t cryptodev_cipher_encrypt(struct cipher_data *cdata,
- {
- 	int ret;
- 
--	INIT_COMPLETION(cdata->async.result->completion);
-+	reinit_completion(&cdata->async.result->completion);
- 
- 	if (cdata->aead == 0) {
- 		ablkcipher_request_set_crypt(cdata->async.request,
-@@ -299,7 +299,7 @@ ssize_t cryptodev_cipher_decrypt(struct cipher_data *cdata,
- {
- 	int ret;
- 
--	INIT_COMPLETION(cdata->async.result->completion);
-+	reinit_completion(&cdata->async.result->completion);
- 	if (cdata->aead == 0) {
- 		ablkcipher_request_set_crypt(cdata->async.request,
- 			(struct scatterlist *)src, dst,
-@@ -410,7 +410,7 @@ ssize_t cryptodev_hash_update(struct hash_data *hdata,
- {
- 	int ret;
- 
--	INIT_COMPLETION(hdata->async.result->completion);
-+	reinit_completion(&hdata->async.result->completion);
- 	ahash_request_set_crypt(hdata->async.request, sg, NULL, len);
- 
- 	ret = crypto_ahash_update(hdata->async.request);
-@@ -422,7 +422,7 @@ int cryptodev_hash_final(struct hash_data *hdata, void* output)
- {
- 	int ret;
- 
--	INIT_COMPLETION(hdata->async.result->completion);
-+	reinit_completion(&hdata->async.result->completion);
- 	ahash_request_set_crypt(hdata->async.request, NULL, output, 0);
- 
- 	ret = crypto_ahash_final(hdata->async.request);
-diff --git a/cryptodev_int.h b/cryptodev_int.h
-index eb2aabf..3834ef1 100644
---- a/cryptodev_int.h
-+++ b/cryptodev_int.h
-@@ -2,6 +2,12 @@
- #ifndef CRYPTODEV_INT_H
- # define CRYPTODEV_INT_H
- 
-+#include <linux/version.h>
-+
-+#if (LINUX_VERSION_CODE < KERNEL_VERSION(3, 13, 0))
-+#  define reinit_completion(x) INIT_COMPLETION(*(x))
-+#endif
-+
- #include <linux/init.h>
- #include <linux/sched.h>
- #include <linux/fs.h>
--- 
-1.8.3.1
diff --git a/package/cryptodev-linux/0001-fix-compilation-against-linux-3.19.patch b/package/cryptodev-linux/0001-fix-compilation-against-linux-3.19.patch
new file mode 100644
index 0000000000..aebbc9b595
--- /dev/null
+++ b/package/cryptodev-linux/0001-fix-compilation-against-linux-3.19.patch
@@ -0,0 +1,37 @@
+From 5054d20d45571cc85339351fde52f872eeb82206 Mon Sep 17 00:00:00 2001
+From: Phil Sutter <phil@nwl.cc>
+Date: Tue, 10 Feb 2015 04:57:05 +0100
+Subject: [PATCH] fix compilation against linux-3.19
+
+Commit f938612dd97d481b8b5bf960c992ae577f081c17 in linux.git removes
+get_unused_fd() macro. This patch changes the calling code to use it's
+content 'get_unused_fd_flags(0)' instead. Checking for when
+get_unused_fd_flags was introduced shows it's been there since 2.6.23 at
+least, so probably no need to make this change conditional on the target
+kernel version.
+
+Original patch by Ricardo Ribalda Delgado for Open Embedded, reported by
+Oleg Rakhmanov.
+
+Signed-off-by: Phil Sutter <phil@nwl.cc>
+Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
+---
+ ioctl.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/ioctl.c b/ioctl.c
+index 5a55a76..b23f5fd 100644
+--- a/ioctl.c
++++ b/ioctl.c
+@@ -546,7 +546,7 @@ static int
+ clonefd(struct file *filp)
+ {
+ 	int ret;
+-	ret = get_unused_fd();
++	ret = get_unused_fd_flags(0);
+ 	if (ret >= 0) {
+ 			get_file(filp);
+ 			fd_install(ret, filp);
+-- 
+2.0.5
+
diff --git a/package/cryptodev-linux/cryptodev-linux.hash b/package/cryptodev-linux/cryptodev-linux.hash
new file mode 100644
index 0000000000..d5e0bae44c
--- /dev/null
+++ b/package/cryptodev-linux/cryptodev-linux.hash
@@ -0,0 +1,2 @@
+# Locally calculated after checking php signature
+sha256	41880533b53de4d7b3f054e230f576988dafb8eed7bef5ebcf6422bb2e3a3b25	cryptodev-linux-1.7.tar.gz
diff --git a/package/cryptodev-linux/cryptodev-linux.mk b/package/cryptodev-linux/cryptodev-linux.mk
index 03e3126366..6f419307aa 100644
--- a/package/cryptodev-linux/cryptodev-linux.mk
+++ b/package/cryptodev-linux/cryptodev-linux.mk
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-CRYPTODEV_LINUX_VERSION = 1.6
+CRYPTODEV_LINUX_VERSION = 1.7
 CRYPTODEV_LINUX_SITE = http://download.gna.org/cryptodev-linux
 CRYPTODEV_LINUX_DEPENDENCIES = linux
 CRYPTODEV_LINUX_INSTALL_STAGING = YES
diff --git a/package/cwiid/Config.in b/package/cwiid/Config.in
index 0859dacbb6..1b64f0a79d 100644
--- a/package/cwiid/Config.in
+++ b/package/cwiid/Config.in
@@ -1,6 +1,5 @@
 config BR2_PACKAGE_CWIID
 	bool "cwiid"
-	depends on !BR2_avr32 # bluez_utils
 	depends on !BR2_STATIC_LIBS # bluez_utils
 	depends on BR2_USE_WCHAR # bluez_utils -> libglib2
 	depends on BR2_TOOLCHAIN_HAS_THREADS # bluez_utils -> dbus, alsa-lib, libglib2
@@ -27,5 +26,4 @@ endif
 
 comment "cwiid needs a toolchain w/ dynamic lib, threads, wchar"
 	depends on BR2_STATIC_LIBS || !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS
-	depends on !BR2_avr32
 	depends on !BR2_USE_MMU
diff --git a/package/dialog/Config.in b/package/dialog/Config.in
index 929ab466aa..fc0e8fd51d 100644
--- a/package/dialog/Config.in
+++ b/package/dialog/Config.in
@@ -1,6 +1,5 @@
 config BR2_PACKAGE_DIALOG
 	bool "dialog"
-	depends on BR2_TOOLCHAIN_HAS_THREADS # fork()
 	depends on BR2_USE_MMU # fork()
 	select BR2_PACKAGE_NCURSES
 	select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE
@@ -12,7 +11,3 @@ config BR2_PACKAGE_DIALOG
 	  of a script to interact with the user in a much friendlier manner.
 
 	  http://invisible-island.net/dialog/dialog.html
-
-comment "dialog needs a toolchain w/ threads"
-	depends on !BR2_TOOLCHAIN_HAS_THREADS
-	depends on BR2_USE_MMU
diff --git a/package/dialog/dialog.hash b/package/dialog/dialog.hash
index 1ffbafbebc..75a79189c8 100644
--- a/package/dialog/dialog.hash
+++ b/package/dialog/dialog.hash
@@ -1,2 +1,2 @@
 # Locally calculated after checking pgp signature
-sha256	d054766fba3dac828851f1c9852e5992eb824fd0a0dd26d87ee517242027bafc	dialog-1.2-20140911.tgz
+sha256	1d98ec7cc81f11f9019fa0b90f1afdaa86579cae1ce8869a6fd61deb9d4b887a	dialog-1.2-20150125.tgz
diff --git a/package/dialog/dialog.mk b/package/dialog/dialog.mk
index 0ecbddbb80..f207f75704 100644
--- a/package/dialog/dialog.mk
+++ b/package/dialog/dialog.mk
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-DIALOG_VERSION = 1.2-20140911
+DIALOG_VERSION = 1.2-20150125
 DIALOG_SOURCE = dialog-$(DIALOG_VERSION).tgz
 DIALOG_SITE = ftp://invisible-island.net/dialog
 DIALOG_CONF_OPTS = --with-ncurses --with-curses-dir=$(STAGING_DIR)/usr \
diff --git a/package/dmraid/dmraid.mk b/package/dmraid/dmraid.mk
index a6ed57f364..fbb23871fc 100644
--- a/package/dmraid/dmraid.mk
+++ b/package/dmraid/dmraid.mk
@@ -11,7 +11,6 @@ DMRAID_SUBDIR = $(DMRAID_VERSION)/dmraid
 # lib and tools race with parallel make
 DMRAID_MAKE = $(MAKE1)
 DMRAID_INSTALL_STAGING = YES
-DMRAID_INSTALL_TARGET_OPTS = DESTDIR=$(TARGET_DIR) install
 DMRAID_LICENSE = GPLv2
 DMRAID_LICENSE_FILES = $(DMRAID_SUBDIR)/LICENSE_GPL $(DMRAID_SUBDIR)/LICENSE
 
diff --git a/package/dovecot/Config.in b/package/dovecot/Config.in
index aa4c221c93..fedc4d96b7 100644
--- a/package/dovecot/Config.in
+++ b/package/dovecot/Config.in
@@ -24,13 +24,11 @@ config BR2_PACKAGE_DOVECOT_MYSQL
 	select BR2_PACKAGE_MYSQL
 	depends on BR2_INSTALL_LIBSTDCPP # mysql
 	depends on BR2_TOOLCHAIN_HAS_THREADS # mysql
-	depends on !BR2_avr32 # mysql
 	help
 	  Enable MySQL support.
 
 comment "mysql support needs a toolchain w/ C++, threads"
 	depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS
-	depends on !BR2_avr32
 
 config BR2_PACKAGE_DOVECOT_OPENSSL
 	bool "openssl support"
diff --git a/package/dropbear/dropbear.mk b/package/dropbear/dropbear.mk
index e063b10a46..f2ae4037b0 100644
--- a/package/dropbear/dropbear.mk
+++ b/package/dropbear/dropbear.mk
@@ -53,9 +53,9 @@ endef
 
 define DROPBEAR_INSTALL_INIT_SYSTEMD
 	$(INSTALL) -D -m 644 package/dropbear/dropbear.service \
-		$(TARGET_DIR)/etc/systemd/system/dropbear.service
+		$(TARGET_DIR)/lib/systemd/system/dropbear.service
 	mkdir -p $(TARGET_DIR)/etc/systemd/system/multi-user.target.wants
-	ln -fs ../dropbear.service \
+	ln -fs /lib/systemd/system/dropbear.service \
 		$(TARGET_DIR)/etc/systemd/system/multi-user.target.wants/dropbear.service
 endef
 
diff --git a/package/dropwatch/dropwatch.mk b/package/dropwatch/dropwatch.mk
index 9c058455f5..3565927e29 100644
--- a/package/dropwatch/dropwatch.mk
+++ b/package/dropwatch/dropwatch.mk
@@ -13,10 +13,8 @@ DROPWATCH_LICENSE_FILES = COPYING
 
 # libbfd may be linked to libintl
 # Ugly... but LDFLAGS are hardcoded anyway
-#
-# Also: always need to add -liberty to hardcoded LDFLAGS for avr32
 DROPWATCH_LDFLAGS = \
-	$(TARGET_LDFLAGS) -lbfd -liberty -lreadline -lnl-3 -lnl-genl-3 \
+	$(TARGET_LDFLAGS) -lbfd -lreadline -lnl-3 -lnl-genl-3 \
 		-lpthread -lncurses -lm
 
 ifeq ($(BR2_NEEDS_GETTEXT_IF_LOCALE),y)
diff --git a/package/dvb-apps/0002-Fix-compiler-warning-flags.patch b/package/dvb-apps/0002-Fix-compiler-warning-flags.patch
deleted file mode 100644
index 9da0408a20..0000000000
--- a/package/dvb-apps/0002-Fix-compiler-warning-flags.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-When building for avr32, the build fails as follows.
-
-  cc1: error: unrecognized command line option "-Wno-packed-bitfield-compat"
-
-An example of an autobuild failure arising from this is the following.
-
-  http://autobuild.buildroot.net/results/92e/92e472004812a3616f62d766a9ea07a997a66e89/
-
-Clearly, not all toolchains provide a gcc that understands
-the -Wno-packed-bitfield-compat flag; remove usage of this flag.
-
-Signed-off-by: Simon Dawson <spdawson@gmail.com>
-
-diff -Nurp a/util/scan/Makefile b/util/scan/Makefile
---- a/util/scan/Makefile	2013-11-24 17:04:10.000000000 +0000
-+++ b/util/scan/Makefile	2013-12-13 09:37:11.967975173 +0000
-@@ -14,7 +14,7 @@ inst_bin = $(binaries)
- 
- removing = atsc_psip_section.c atsc_psip_section.h
- 
--CPPFLAGS += -Wno-packed-bitfield-compat -D__KERNEL_STRICT_NAMES
-+CPPFLAGS += -D__KERNEL_STRICT_NAMES
- 
- .PHONY: all
- 
diff --git a/package/e2fsprogs/Config.in b/package/e2fsprogs/Config.in
index 05fa4e339b..d9c03a8f10 100644
--- a/package/e2fsprogs/Config.in
+++ b/package/e2fsprogs/Config.in
@@ -50,7 +50,7 @@ config BR2_PACKAGE_E2FSPROGS_E2UNDO
 
 config BR2_PACKAGE_E2FSPROGS_E4DEFRAG
 	bool "e4defrag"
-	depends on !BR2_avr32 && !BR2_nios2 # fallocate not implemented
+	depends on !BR2_nios2 # fallocate not implemented
 	depends on !BR2_TOOLCHAIN_USES_UCLIBC # sync_file_range not impl
 
 comment "e4defrag needs an (e)glibc or musl toolchain"
diff --git a/package/ecryptfs-utils/Config.in b/package/ecryptfs-utils/Config.in
index 845717b760..bd7b5863da 100644
--- a/package/ecryptfs-utils/Config.in
+++ b/package/ecryptfs-utils/Config.in
@@ -9,7 +9,7 @@ config BR2_PACKAGE_ECRYPTFS_UTILS
 	select BR2_PACKAGE_GETENT
 	depends on BR2_USE_WCHAR # gettext
 	depends on BR2_USE_MMU # keyutils
-	depends on !BR2_avr32 && !BR2_microblaze # keyutils
+	depends on !BR2_microblaze # keyutils
 	depends on BR2_LARGEFILE # libnss
 	depends on BR2_TOOLCHAIN_HAS_THREADS # libnss -> libnspr
 	depends on BR2_PACKAGE_LIBNSPR_ARCH_SUPPORT # libnss -> libnspr
@@ -31,7 +31,7 @@ config BR2_PACKAGE_ECRYPTFS_UTILS
 	  http://ecryptfs.org
 
 comment "ecryptfs-utils needs a toolchain w/ largefile, threads, wchar, dynamic library"
-	depends on !BR2_avr32 && !BR2_microblaze
+	depends on !BR2_microblaze
 	depends on BR2_PACKAGE_LIBNSPR_ARCH_SUPPORT
 	depends on BR2_USE_MMU
 	depends on !BR2_LARGEFILE || !BR2_TOOLCHAIN_HAS_THREADS || !BR2_USE_WCHAR || \
diff --git a/package/efl/expedite/Config.in b/package/efl/expedite/Config.in
index 96db266ac5..ddbf020f07 100644
--- a/package/efl/expedite/Config.in
+++ b/package/efl/expedite/Config.in
@@ -5,7 +5,6 @@ config BR2_PACKAGE_EXPEDITE
 	select BR2_PACKAGE_LIBEET
 	depends on BR2_INSTALL_LIBSTDCPP
 	depends on BR2_TOOLCHAIN_HAS_THREADS # libevas
-	depends on !BR2_avr32 # libevas
 	help
 	  Expedite is the official Evas benchmark tool. It can test different
 	  engines, such as X11, XRender, OpenGL (also ES variant), SDL,
@@ -15,4 +14,3 @@ config BR2_PACKAGE_EXPEDITE
 comment "expedite needs a toolchain w/ C++, threads"
 	depends on !BR2_INSTALL_LIBSTDCPP
 	depends on !BR2_TOOLCHAIN_HAS_THREADS
-	depends on !BR2_avr32
diff --git a/package/efl/libecore/Config.in b/package/efl/libecore/Config.in
index 3db036c5db..a9408dc762 100644
--- a/package/efl/libecore/Config.in
+++ b/package/efl/libecore/Config.in
@@ -39,10 +39,8 @@ config BR2_PACKAGE_LIBECORE_EVAS
 	bool "libecore Evas support"
 	select BR2_PACKAGE_LIBEVAS
 	depends on BR2_TOOLCHAIN_HAS_THREADS
-	depends on !BR2_avr32 # libevas
 
 comment "evas support needs a toolchain w/ threads"
 	depends on !BR2_TOOLCHAIN_HAS_THREADS
-	depends on !BR2_avr32 # libevas
 
 endif # BR2_PACKAGE_LIBECORE
diff --git a/package/efl/libedbus/Config.in b/package/efl/libedbus/Config.in
index b35e46ad10..7e862d3e58 100644
--- a/package/efl/libedbus/Config.in
+++ b/package/efl/libedbus/Config.in
@@ -16,7 +16,6 @@ if BR2_PACKAGE_LIBEDBUS
 
 config BR2_PACKAGE_LIBEDBUS_BLUEZ
 	bool "bluez support"
-	depends on !BR2_avr32 # bluez_utils
 	depends on !BR2_STATIC_LIBS # bluez_utils
 	depends on BR2_USE_WCHAR # bluez_utils -> glib2
 	depends on BR2_TOOLCHAIN_HAS_THREADS # bluez_utils -> glib2
@@ -25,7 +24,6 @@ config BR2_PACKAGE_LIBEDBUS_BLUEZ
 	  Bluetooth support.
 
 comment "bluez support needs a toolchain w/ wchar, threads, dynamic library"
-	depends on !BR2_avr32
 	depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS
 
 config BR2_PACKAGE_LIBEDBUS_CONNMAN
diff --git a/package/efl/libedje/Config.in b/package/efl/libedje/Config.in
index 503919c3bd..b1635082ab 100644
--- a/package/efl/libedje/Config.in
+++ b/package/efl/libedje/Config.in
@@ -1,5 +1,4 @@
 comment "libedje needs a toolchain w/ threads"
-	depends on !BR2_avr32
 	depends on !BR2_TOOLCHAIN_HAS_THREADS
 
 config BR2_PACKAGE_LIBEDJE
@@ -11,7 +10,6 @@ config BR2_PACKAGE_LIBEDJE
 	select BR2_PACKAGE_LIBEMBRYO
 	select BR2_PACKAGE_LIBEVAS
 	select BR2_PACKAGE_LUA
-	depends on !BR2_avr32 # libevas
 	depends on BR2_TOOLCHAIN_HAS_THREADS # libevas
 	help
 	  A graphical layout and animation library for animated
diff --git a/package/efl/libelementary/Config.in b/package/efl/libelementary/Config.in
index 91740aff9f..c193ef128c 100644
--- a/package/efl/libelementary/Config.in
+++ b/package/efl/libelementary/Config.in
@@ -1,5 +1,4 @@
 comment "libelementary needs a toolchain w/ threads"
-	depends on !BR2_avr32
 	depends on !BR2_TOOLCHAIN_HAS_THREADS
 
 config BR2_PACKAGE_LIBELEMENTARY
@@ -8,7 +7,6 @@ config BR2_PACKAGE_LIBELEMENTARY
 	select BR2_PACKAGE_LIBEVAS
 	select BR2_PACKAGE_LIBECORE
 	select BR2_PACKAGE_LIBEDJE
-	depends on !BR2_avr32 # libevas
 	depends on BR2_TOOLCHAIN_HAS_THREADS # libevas
 	help
 	  Elementary is a widget toolkit and EFL wrapper and convenience
diff --git a/package/efl/libethumb/Config.in b/package/efl/libethumb/Config.in
index 64574a0eb8..3e9cbdedf7 100644
--- a/package/efl/libethumb/Config.in
+++ b/package/efl/libethumb/Config.in
@@ -1,5 +1,4 @@
 comment "libethumb needs a toolchain w/ threads"
-	depends on !BR2_avr32
 	depends on !BR2_TOOLCHAIN_HAS_THREADS
 
 config BR2_PACKAGE_LIBETHUMB
@@ -9,7 +8,6 @@ config BR2_PACKAGE_LIBETHUMB
 	select BR2_PACKAGE_LIBECORE
 	select BR2_PACKAGE_LIBECORE_EVAS
 	select BR2_PACKAGE_LIBEDJE
-	depends on !BR2_avr32 # libevas
 	depends on BR2_TOOLCHAIN_HAS_THREADS # libevas
 	help
 	  Ethumb is a library for generating thumbnail images of documents.
diff --git a/package/efl/libevas/Config.in b/package/efl/libevas/Config.in
index febc115912..1fefe3beca 100644
--- a/package/efl/libevas/Config.in
+++ b/package/efl/libevas/Config.in
@@ -1,10 +1,8 @@
 comment "libevas needs a toolchain w/ threads"
-	depends on !BR2_avr32
 	depends on !BR2_TOOLCHAIN_HAS_THREADS
 
 config BR2_PACKAGE_LIBEVAS
 	bool "libevas"
-	depends on !BR2_avr32 # no epoll_create1 or inotify_init1
 	# libevas should normally build without threads, but due to a
 	# build issue when the async preloader is disabled, which is
 	# needed when no threads are available, we don't allow evas to
diff --git a/package/elfutils/Config.in b/package/elfutils/Config.in
index 9f720986ef..cb9a658aba 100644
--- a/package/elfutils/Config.in
+++ b/package/elfutils/Config.in
@@ -1,5 +1,4 @@
 comment "elfutils needs a toolchain w/ largefile, wchar, dynamic library"
-	depends on !BR2_avr32
 	depends on !BR2_bfin
 	depends on !BR2_LARGEFILE || !BR2_USE_WCHAR || BR2_STATIC_LIBS
 
@@ -10,9 +9,6 @@ config BR2_PACKAGE_ELFUTILS
 	depends on BR2_LARGEFILE
 	depends on BR2_USE_WCHAR
 	depends on !BR2_STATIC_LIBS
-	# canonicalize_file_name() not available on uClibc 0.9.31, used
-	# only for AVR32
-	depends on !BR2_avr32
 	# build issue caused by the _ prefix used on blackfin for
 	# assembly symbols
 	depends on !BR2_bfin
diff --git a/package/enlightenment/Config.in b/package/enlightenment/Config.in
index 37e9e75610..58f8f39ba7 100644
--- a/package/enlightenment/Config.in
+++ b/package/enlightenment/Config.in
@@ -26,7 +26,6 @@ config BR2_PACKAGE_ENLIGHTENMENT
 	# libedbus -> dbus, efl libraries
 	depends on BR2_USE_MMU
 	depends on BR2_PACKAGE_XORG7
-	depends on !BR2_avr32 # libevas
 	# libevas-generic-loaders-svg -> librsvg -> pango -> cairo
 	depends on BR2_ARCH_HAS_ATOMICS
 	help
@@ -42,4 +41,3 @@ comment "enlightenment needs a toolchain w/ wchar, C++, threads"
 	depends on BR2_PACKAGE_XORG7 && BR2_USE_MMU
 	depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || !BR2_INSTALL_LIBSTDCPP
 	depends on BR2_ARCH_HAS_ATOMICS
-	depends on !BR2_avr32
diff --git a/package/eudev/Config.in b/package/eudev/Config.in
index 7916fd03cf..7934cd7cbe 100644
--- a/package/eudev/Config.in
+++ b/package/eudev/Config.in
@@ -1,6 +1,5 @@
 config BR2_PACKAGE_EUDEV
 	bool "eudev"
-	depends on !BR2_avr32 # no epoll_create1
 	depends on BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV
 	depends on BR2_USE_MMU # uses fork()
 	depends on BR2_LARGEFILE # util-linux
@@ -32,11 +31,9 @@ config BR2_PACKAGE_EUDEV_RULES_GEN
 endif
 
 comment "eudev needs eudev /dev management"
-	depends on !BR2_avr32
 	depends on BR2_USE_MMU
 	depends on !BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV
 
 comment "eudev needs a toolchain w/ largefile, wchar, dynamic library"
-	depends on !BR2_avr32
 	depends on BR2_USE_MMU
 	depends on !BR2_LARGEFILE || !BR2_USE_WCHAR || BR2_STATIC_LIBS
diff --git a/package/exfat-utils/exfat-utils.hash b/package/exfat-utils/exfat-utils.hash
new file mode 100644
index 0000000000..79ccf42505
--- /dev/null
+++ b/package/exfat-utils/exfat-utils.hash
@@ -0,0 +1,2 @@
+# From https://code.google.com/p/exfat/wiki/Downloads?tm=2
+sha1	ddf0819c27aeb3eaae5aae0423d4dafc54d477da	exfat-utils-1.1.1.tar.gz
diff --git a/package/exfat-utils/exfat-utils.mk b/package/exfat-utils/exfat-utils.mk
index a7e90dd753..4f432338be 100644
--- a/package/exfat-utils/exfat-utils.mk
+++ b/package/exfat-utils/exfat-utils.mk
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-EXFAT_UTILS_VERSION = 1.1.0
+EXFAT_UTILS_VERSION = 1.1.1
 EXFAT_UTILS_SITE = http://distfiles.gentoo.org/distfiles
 EXFAT_UTILS_DEPENDENCIES = host-scons
 EXFAT_UTILS_LICENSE = GPLv3+
diff --git a/package/exfat/exfat.hash b/package/exfat/exfat.hash
new file mode 100644
index 0000000000..bfaca6e6d9
--- /dev/null
+++ b/package/exfat/exfat.hash
@@ -0,0 +1,2 @@
+# From https://code.google.com/p/exfat/wiki/Downloads?tm=2
+sha1	060560f74dbce4dc947c7e658e75fdf339bc10ff	fuse-exfat-1.1.0.tar.gz
diff --git a/package/fbv/0001-arch.patch.avr32 b/package/fbv/0001-arch.patch.avr32
deleted file mode 100644
index f57bbac0fa..0000000000
--- a/package/fbv/0001-arch.patch.avr32
+++ /dev/null
@@ -1,48 +0,0 @@
-diff -ur fbv-1.0b/fb_display.c fbv-1.0b-avr32/fb_display.c
---- fbv-1.0b/fb_display.c	2004-09-07 14:09:43.000000000 +0200
-+++ fbv-1.0b-avr32/fb_display.c	2006-05-04 13:30:25.000000000 +0200
-@@ -276,9 +276,6 @@
- 	    for(i = 0; i < yc; i++, fbptr += scr_xs * cpp, imptr += pic_xs * cpp)
- 			memcpy(fbptr, imptr, xc * cpp);
- 		
--	if(cpp == 1)
--	    set8map(fh, &map_back);
--	
- 	munmap(fb, scr_xs * scr_ys * cpp);
- }
- 
-@@ -293,17 +290,17 @@
- inline static unsigned short make15color(unsigned char r, unsigned char g, unsigned char b)
- {
-     return (
--	(((r >> 3) & 31) << 10) |
-+	(((r >> 3) & 31)) |
- 	(((g >> 3) & 31) << 5)  |
--	 ((b >> 3) & 31)        );
-+	 ((b >> 3) & 31) << 10);
- }
- 
- inline static unsigned short make16color(unsigned char r, unsigned char g, unsigned char b)
- {
-     return (
--	(((r >> 3) & 31) << 11) |
--	(((g >> 2) & 63) << 5)  |
--	 ((b >> 3) & 31)        );
-+	(((r >> 3) & 31))      |
-+	(((g >> 3) & 31) << 5) |
-+	 ((b >> 3) & 31) << 10);
- }
- 
- void* convertRGB2FB(int fh, unsigned char *rgbbuff, unsigned long count, int bpp, int *cpp)
-@@ -342,9 +339,9 @@
- 	    *cpp = 4;
- 	    i_fbbuff = (unsigned int *) malloc(count * sizeof(unsigned int));
- 	    for(i = 0; i < count ; i++)
--		i_fbbuff[i] = ((rgbbuff[i*3] << 16) & 0xFF0000) |
-+		i_fbbuff[i] = ((rgbbuff[i*3+2] << 16) & 0xFF0000) |
- 			    ((rgbbuff[i*3+1] << 8) & 0xFF00) |
--			    (rgbbuff[i*3+2] & 0xFF);
-+			    (rgbbuff[i*3] & 0xFF);
- 	    fbbuff = (void *) i_fbbuff;
- 	    break;
- 	default:
diff --git a/package/ffmpeg/ffmpeg.hash b/package/ffmpeg/ffmpeg.hash
index b1d8c95fbe..c39174f4b7 100644
--- a/package/ffmpeg/ffmpeg.hash
+++ b/package/ffmpeg/ffmpeg.hash
@@ -1,2 +1,2 @@
 # Locally calculated
-sha256	9d383d7ef9dffe6980849a93accfef848e197fdac9b1fbd02fca2798f863411a	ffmpeg-2.5.3.tar.bz2
+sha256  cc91c166c2b0ad9aacc533e4d5637912df583b43834c68aeec12ded7e082a286  ffmpeg-2.5.4.tar.bz2
diff --git a/package/ffmpeg/ffmpeg.mk b/package/ffmpeg/ffmpeg.mk
index f9c1d94820..68a28a272e 100644
--- a/package/ffmpeg/ffmpeg.mk
+++ b/package/ffmpeg/ffmpeg.mk
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-FFMPEG_VERSION = 2.5.3
+FFMPEG_VERSION = 2.5.4
 FFMPEG_SOURCE = ffmpeg-$(FFMPEG_VERSION).tar.bz2
 FFMPEG_SITE = http://ffmpeg.org/releases
 FFMPEG_INSTALL_STAGING = YES
diff --git a/package/fio/Config.in b/package/fio/Config.in
index 8cbbf6ce18..219b9d9f4e 100644
--- a/package/fio/Config.in
+++ b/package/fio/Config.in
@@ -7,10 +7,8 @@ config BR2_PACKAGE_FIO
 	# release of uClibc, but is part of uClibc Git, and backported
 	# in Buildroot patch set of uClibc 0.9.33. Therefore, we
 	# disable the build of fio for external uClibc toolchains
-	# (which use an unknown uClibc version) and for 0.9.31 which
-	# don't have posix_madvise().
-	depends on !BR2_TOOLCHAIN_EXTERNAL_UCLIBC && \
-		!BR2_UCLIBC_VERSION_0_9_31
+	# (which use an unknown uClibc version)
+	depends on !BR2_TOOLCHAIN_EXTERNAL_UCLIBC
 	# fio uses fallocate() which becomes fallocate64() while compiling
 	# with BR2_LARGEFILE but fallocate64() is not available on nios2
 	depends on !BR2_nios2
diff --git a/package/fltk/fltk.hash b/package/fltk/fltk.hash
new file mode 100644
index 0000000000..7b9b67dcfb
--- /dev/null
+++ b/package/fltk/fltk.hash
@@ -0,0 +1,4 @@
+# From http://www.fltk.org/software.php?VERSION=1.3.3
+md5	9ccdb0d19dc104b87179bd9fd10822e3	fltk-1.3.3-source.tar.gz
+# Locally generated
+sha256	f8398d98d7221d40e77bc7b19e761adaf2f1ef8bb0c30eceb7beb4f2273d0d97	fltk-1.3.3-source.tar.gz
diff --git a/package/fltk/fltk.mk b/package/fltk/fltk.mk
index d1acb86514..9b67bd32ae 100644
--- a/package/fltk/fltk.mk
+++ b/package/fltk/fltk.mk
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-FLTK_VERSION = 1.3.2
+FLTK_VERSION = 1.3.3
 FLTK_SOURCE = fltk-$(FLTK_VERSION)-source.tar.gz
 FLTK_SITE = http://fltk.org/pub/fltk/$(FLTK_VERSION)
 FLTK_INSTALL_STAGING = YES
@@ -27,6 +27,20 @@ FLTK_CONF_OPTS += --enable-cairo
 FLTK_DEPENDENCIES += cairo
 endif
 
+ifeq ($(BR2_PACKAGE_XLIB_LIBXCURSOR),y)
+FLTK_DEPENDENCIES += xlib_libXcursor
+FLTK_CONF_OPTS += --enable-xcursor
+else
+FLTK_CONF_OPTS += --disable-xcursor
+endif
+
+ifeq ($(BR2_PACKAGE_XLIB_LIBXFIXES),y)
+FLTK_DEPENDENCIES += xlib_libXfixes
+FLTK_CONF_OPTS += --enable-xfixes
+else
+FLTK_CONF_OPTS += --disable-xfixes
+endif
+
 ifeq ($(BR2_PACKAGE_XLIB_LIBXFT),y)
 FLTK_CONF_ENV += ac_cv_path_FTCONFIG=$(STAGING_DIR)/usr/bin/freetype-config
 FLTK_DEPENDENCIES += xlib_libXft
diff --git a/package/fluxbox/fluxbox.hash b/package/fluxbox/fluxbox.hash
index bfbbd7f59d..b18582b6c0 100644
--- a/package/fluxbox/fluxbox.hash
+++ b/package/fluxbox/fluxbox.hash
@@ -1,2 +1,2 @@
 # Locally computed:
-sha256  05cc2149b79155121cb0fff6d4fd0289e3edb669390714e0b54071bec987e686  fluxbox-1.3.6.tar.bz2
+sha256  fc8c75fe94c54ed5a5dd3fd4a752109f8949d6df67a48e5b11a261403c382ec0  fluxbox-1.3.7.tar.xz
diff --git a/package/fluxbox/fluxbox.mk b/package/fluxbox/fluxbox.mk
index 30255c434d..c8e4289bf5 100644
--- a/package/fluxbox/fluxbox.mk
+++ b/package/fluxbox/fluxbox.mk
@@ -4,8 +4,8 @@
 #
 ################################################################################
 
-FLUXBOX_VERSION = 1.3.6
-FLUXBOX_SOURCE = fluxbox-$(FLUXBOX_VERSION).tar.bz2
+FLUXBOX_VERSION = 1.3.7
+FLUXBOX_SOURCE = fluxbox-$(FLUXBOX_VERSION).tar.xz
 FLUXBOX_SITE = http://downloads.sourceforge.net/project/fluxbox/fluxbox/$(FLUXBOX_VERSION)
 FLUXBOX_LICENSE = MIT
 FLUXBOX_LICENSE_FILES = COPYING
diff --git a/package/freerdp/Config.in b/package/freerdp/Config.in
index c5ff769025..ea36e0e4ab 100644
--- a/package/freerdp/Config.in
+++ b/package/freerdp/Config.in
@@ -1,14 +1,43 @@
 config BR2_PACKAGE_FREERDP
 	bool "freerdp"
+	depends on BR2_USE_WCHAR
 	select BR2_PACKAGE_OPENSSL
-	select BR2_PACKAGE_XLIB_LIBX11
-	select BR2_PACKAGE_XLIB_LIBXT
-	select BR2_PACKAGE_XLIB_LIBXEXT
-	select BR2_PACKAGE_XLIB_LIBXCURSOR
 	select BR2_PACKAGE_ZLIB
-	depends on BR2_PACKAGE_XORG7
 	help
 	  FreeRDP is a free implementation of the Remote Desktop
 	  Protocol (RDP), released under the Apache license
 
+	  This only installs the freerdp library.
+
 	  http://www.freerdp.com/
+
+	  Note: this also installs a key and certificate in
+	  /etc/freerdp/keys/ . These are publicly-known, as they
+	  are present in FreeRDP's source tree. It is strongly
+	  suggested that you overwrite them with your own set,
+	  either in an overlay rootfs or in a post-build script.
+
+if BR2_PACKAGE_FREERDP
+
+config BR2_PACKAGE_FREERDP_SERVER
+	bool "build server"
+	depends on BR2_PACKAGE_XORG7
+	select BR2_PACKAGE_XLIB_LIBX11
+	select BR2_PACKAGE_XLIB_LIBXDAMAGE
+	select BR2_PACKAGE_XLIB_LIBXEXT
+	select BR2_PACKAGE_XLIB_LIBXFIXES
+
+config BR2_PACKAGE_FREERDP_CLIENT
+	bool "build client"
+	default y
+	depends on BR2_PACKAGE_XORG7
+	select BR2_PACKAGE_XLIB_LIBX11
+	select BR2_PACKAGE_XLIB_LIBXEXT
+
+comment "freerdp server and client need X.Org"
+	depends on !BR2_PACKAGE_XORG7
+
+endif
+
+comment "freerdp needs a toolchain w/ wchar"
+	depends on !BR2_USE_WCHAR
diff --git a/package/freerdp/freerdp-0002-fix-building-shared-libs.patch b/package/freerdp/freerdp-0002-fix-building-shared-libs.patch
new file mode 100644
index 0000000000..420f3d3544
--- /dev/null
+++ b/package/freerdp/freerdp-0002-fix-building-shared-libs.patch
@@ -0,0 +1,23 @@
+winpr/tools: fix building shared libs
+
+libwinpr-makecert-tool.a is used to build libxfreerdp-server.so, so even
+if we are building a static libwinpr-makecert-tool.a library, we need to
+build it with -fPIC.
+
+Patch and commit log suggested by Samuel MARTIN.
+
+Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
+Cc: Samuel Martin <s.martin49@gmail.com>
+
+diff -durN freerdp-440916eae2e07463912d5fe507677e67096eb083.orig/winpr/tools/makecert/CMakeLists.txt freerdp-440916eae2e07463912d5fe507677e67096eb083/winpr/tools/makecert/CMakeLists.txt
+--- freerdp-440916eae2e07463912d5fe507677e67096eb083.orig/winpr/tools/makecert/CMakeLists.txt	2014-08-25 06:52:43.000000000 -0700
++++ freerdp-440916eae2e07463912d5fe507677e67096eb083/winpr/tools/makecert/CMakeLists.txt	2014-10-24 15:39:39.600319523 -0700
+@@ -43,3 +43,8 @@
+ 
+ set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "WinPR/Tools")
+ 
++if(BUILD_SHARED_LIBS)
++	# build libwinpr-makecert-tool.a with PIC because it is used to build
++	# the shared library libxfreerdp-server.so.
++	set_property(TARGET ${MODULE_NAME} PROPERTY POSITION_INDEPENDENT_CODE TRUE)
++endif()
diff --git a/package/freerdp/freerdp.mk b/package/freerdp/freerdp.mk
index 57cd7a867a..f73bdd7770 100644
--- a/package/freerdp/freerdp.mk
+++ b/package/freerdp/freerdp.mk
@@ -5,14 +5,22 @@
 ################################################################################
 
 # Changeset on the stable-1.1 branch
-FREERDP_VERSION = 440916eae2e07463912d5fe507677e67096eb083
+FREERDP_VERSION = b21ff842ef3de5837513042dc30488b12bd9cf9d
 FREERDP_SITE = $(call github,FreeRDP,FreeRDP,$(FREERDP_VERSION))
-FREERDP_DEPENDENCIES = openssl zlib \
-	xlib_libX11 xlib_libXt xlib_libXext xlib_libXcursor
+FREERDP_DEPENDENCIES = openssl zlib
 FREERDP_LICENSE = Apache-2.0
 FREERDP_LICENSE_FILES = LICENSE
 
-FREERDP_CONF_OPTS = -DWITH_MANPAGES=OFF
+FREERDP_INSTALL_STAGING = YES
+
+FREERDP_CONF_OPTS = -DWITH_MANPAGES=OFF -Wno-dev
+
+ifeq ($(BR2_PACKAGE_GSTREAMER),y)
+FREERDP_CONF_OPTS += -DWITH_GSTREAMER=ON
+FREERDP_DEPENDENCIES += gstreamer
+else
+FREERDP_CONF_OPTS += -DWITH_GSTREAMER=OFF
+endif
 
 ifeq ($(BR2_PACKAGE_CUPS),y)
 FREERDP_CONF_OPTS += -DWITH_CUPS=ON
@@ -42,27 +50,6 @@ else
 FREERDP_CONF_OPTS += -DWITH_PULSEAUDIO=OFF
 endif
 
-ifeq ($(BR2_PACKAGE_XLIB_LIBXINERAMA),y)
-FREERDP_CONF_OPTS += -DWITH_XINERAMA=ON
-FREERDP_DEPENDENCIES += xlib_libXinerama
-else
-FREERDP_CONF_OPTS += -DWITH_XINERAMA=OFF
-endif
-
-ifeq ($(BR2_PACKAGE_XLIB_LIBXKBFILE),y)
-FREERDP_CONF_OPTS += -DWITH_XKBFILE=ON
-FREERDP_DEPENDENCIES += xlib_libxkbfile
-else
-FREERDP_CONF_OPTS += -DWITH_XKBFILE=OFF
-endif
-
-ifeq ($(BR2_PACKAGE_XLIB_LIBXV),y)
-FREERDP_CONF_OPTS += -DWITH_XV=ON
-FREERDP_DEPENDENCIES += xlib_libXv
-else
-FREERDP_CONF_OPTS += -DWITH_XV=OFF
-endif
-
 ifeq ($(BR2_ARM_CPU_HAS_NEON),y)
 FREERDP_CONF_OPTS += -DWITH_NEON=ON
 else
@@ -79,4 +66,121 @@ ifeq ($(BR2_arm)$(BR2_armeb),y)
 FREERDP_CONF_OPTS += -DARM_FP_ABI=$(call qstrip,$(BR2_GCC_TARGET_FLOAT_ABI))
 endif
 
+#---------------------------------------
+# Enabling server and/or client
+
+ifeq ($(BR2_PACKAGE_FREERDP_SERVER),y)
+FREERDP_CONF_OPTS += -DWITH_SERVER=ON -DWITH_SERVER_INTERFACE=ON
+else
+FREERDP_CONF_OPTS += -DWITH_SERVER=OFF -DWITH_SERVER_INTERFACE=OFF
+endif
+
+ifeq ($(BR2_PACKAGE_FREERDP_CLIENT),y)
+FREERDP_CONF_OPTS += -DWITH_CLIENT=ON -DWITH_CLIENT_INTERFACE=ON
+else
+FREERDP_CONF_OPTS += -DWITH_CLIENT=OFF -DWITH_CLIENT_INTERFACE=OFF
+endif
+
+#---------------------------------------
+# X.Org libs for client and/or server
+
+ifneq ($(BR2_PACKAGE_FREERDP_SERVER)$(BR2_PACKAGE_FREERDP_CLIENT),)
+
+# Those two are mandatory for both the server and the client
+FREERDP_DEPENDENCIES += xlib_libX11 xlib_libXext
+FREERDP_CONF_OPTS += -DWITH_X11=ON
+
+# The following libs are either optional or mandatory only for either
+# the server or the client. A mandatory library for either one is
+# selected from Kconfig, so we can make it conditional here
+ifeq ($(BR2_PACKAGE_XLIB_LIBXCURSOR),y)
+FREERDP_CONF_OPTS += -DWITH_XCURSOR=ON
+FREERDP_DEPENDENCIES += xlib_libXcursor
+else
+FREERDP_CONF_OPTS += -DWITH_XCURSOR=OFF
+endif
+
+ifeq ($(BR2_PACKAGE_XLIB_LIBXDAMAGE),y)
+FREERDP_CONF_OPTS += -DWITH_XDAMAGE=ON
+FREERDP_DEPENDENCIES += xlib_libXdamage
+else
+FREERDP_CONF_OPTS += -DWITH_XDAMAGE=OFF
+endif
+
+ifeq ($(BR2_PACKAGE_XLIB_LIBXFIXES),y)
+FREERDP_CONF_OPTS += -DWITH_XFIXES=ON
+FREERDP_DEPENDENCIES += xlib_libXfixes
+else
+FREERDP_CONF_OPTS += -DWITH_XFIXES=OFF
+endif
+
+ifeq ($(BR2_PACKAGE_XLIB_LIBXI),y)
+FREERDP_CONF_OPTS += -DWITH_XI=ON
+FREERDP_DEPENDENCIES += xlib_libXi
+else
+FREERDP_CONF_OPTS += -DWITH_XI=OFF
+endif
+
+ifeq ($(BR2_PACKAGE_XLIB_LIBXINERAMA),y)
+FREERDP_CONF_OPTS += -DWITH_XINERAMA=ON
+FREERDP_DEPENDENCIES += xlib_libXinerama
+else
+FREERDP_CONF_OPTS += -DWITH_XINERAMA=OFF
+endif
+
+ifeq ($(BR2_PACKAGE_XLIB_LIBXKBFILE),y)
+FREERDP_CONF_OPTS += -DWITH_XKBFILE=ON
+FREERDP_DEPENDENCIES += xlib_libxkbfile
+else
+FREERDP_CONF_OPTS += -DWITH_XKBFILE=OFF
+endif
+
+ifeq ($(BR2_PACKAGE_XLIB_LIBXRANDR),y)
+FREERDP_CONF_OPTS += -DWITH_XRANDR=ON
+FREERDP_DEPENDENCIES += xlib_libXrandr
+else
+FREERDP_CONF_OPTS += -DWITH_XRANDR=OFF
+endif
+
+ifeq ($(BR2_PACKAGE_XLIB_LIBXRENDER),y)
+FREERDP_CONF_OPTS += -DWITH_XRENDER=ON
+FREERDP_DEPENDENCIES += xlib_libXrender
+else
+FREERDP_CONF_OPTS += -DWITH_XRENDER=OFF
+endif
+
+ifeq ($(BR2_PACKAGE_XLIB_LIBXTST),y)
+FREERDP_CONF_OPTS += -DWITH_XTEST=ON
+FREERDP_DEPENDENCIES += xlib_libXtst
+else
+FREERDP_CONF_OPTS += -DWITH_XTEST=OFF
+endif
+
+ifeq ($(BR2_PACKAGE_XLIB_LIBXV),y)
+FREERDP_CONF_OPTS += -DWITH_XV=ON
+FREERDP_DEPENDENCIES += xlib_libXv
+else
+FREERDP_CONF_OPTS += -DWITH_XV=OFF
+endif
+
+else # ! SERVER && ! CLIENT
+
+FREERDP_CONF_OPTS += -DWITH_X11=OFF
+
+endif # ! SERVER && ! CLIENT
+
+# Install the server key and certificate, so that a client can connect.
+# A user can override them with its own in a post-build script, if needed.
+# We install them even if the server is not enabled, since another server
+# can be built and linked with libfreerdp (e.g. weston with the  RDP
+# backend). Key and cert are installed world-readable, so non-root users
+# can start a server.
+define FREERDP_INSTALL_KEYS
+	$(INSTALL) -m 0644 -D $(@D)/server/X11/server.key \
+		      $(TARGET_DIR)/etc/freerdp/keys/server.key
+	$(INSTALL) -m 0644 -D $(@D)/server/X11/server.crt \
+		      $(TARGET_DIR)/etc/freerdp/keys/server.crt
+endef
+FREERDP_POST_INSTALL_TARGET_HOOKS += FREERDP_INSTALL_KEYS
+
 $(eval $(cmake-package))
diff --git a/package/gadgetfs-test/Config.in b/package/gadgetfs-test/Config.in
index 9afb0a2d90..38358f2a1c 100644
--- a/package/gadgetfs-test/Config.in
+++ b/package/gadgetfs-test/Config.in
@@ -11,7 +11,7 @@ config BR2_PACKAGE_GADGETFS_TEST_USE_AIO
 	select BR2_PACKAGE_LIBAIO
 	# libaio is available only on few architectures
 	depends on \
-		BR2_arm   || BR2_armeb || BR2_avr32  || BR2_i386    || \
+		BR2_arm   || BR2_armeb || BR2_i386   || \
 		BR2_m68k  || BR2_mips  || BR2_mipsel || BR2_powerpc || \
 		BR2_sparc || BR2_x86_64
 	help
diff --git a/package/gcc/4.2.2-avr32-2.1.5/1001-gcc-4.2.x-inhibit-libc.patch b/package/gcc/4.2.2-avr32-2.1.5/1001-gcc-4.2.x-inhibit-libc.patch
deleted file mode 100644
index 9a7c909748..0000000000
--- a/package/gcc/4.2.2-avr32-2.1.5/1001-gcc-4.2.x-inhibit-libc.patch
+++ /dev/null
@@ -1,49 +0,0 @@
---- gcc-4.2.4/gcc/unwind-sjlj.c.khem	2010-08-11 12:45:28.000000000 -0700
-+++ gcc-4.2.4/gcc/unwind-sjlj.c	2010-08-11 12:45:50.000000000 -0700
-@@ -28,6 +28,8 @@
-    Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
-    02110-1301, USA.  */
- 
-+#ifndef inhibit_libc
-+
- #include "tconfig.h"
- #include "tsystem.h"
- #include "coretypes.h"
-@@ -326,3 +328,4 @@ uw_identify_context (struct _Unwind_Cont
- #include "unwind.inc"
- 
- #endif /* USING_SJLJ_EXCEPTIONS */
-+#endif
---- gcc-4.2.4/gcc/unwind-dw2.c.khem	2010-08-11 12:42:45.000000000 -0700
-+++ gcc-4.2.4/gcc/unwind-dw2.c	2010-08-11 12:43:17.000000000 -0700
-@@ -28,6 +28,8 @@
-    Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
-    02110-1301, USA.  */
- 
-+#ifndef inhibit_libc
-+
- #include "tconfig.h"
- #include "tsystem.h"
- #include "coretypes.h"
-@@ -1537,3 +1539,5 @@ alias (_Unwind_SetIP);
- #endif
- 
- #endif /* !USING_SJLJ_EXCEPTIONS */
-+#endif
-+
---- gcc-4.2.4/gcc/unwind-dw2-fde-glibc.c.khem	2010-08-11 12:44:25.000000000 -0700
-+++ gcc-4.2.4/gcc/unwind-dw2-fde-glibc.c	2010-08-11 12:44:48.000000000 -0700
-@@ -29,6 +29,8 @@
-    segment and dl_iterate_phdr to avoid register/deregister calls at
-    DSO load/unload.  */
- 
-+#ifndef inhibit_libc
-+
- #ifndef _GNU_SOURCE
- #define _GNU_SOURCE 1
- #endif
-@@ -438,3 +440,4 @@ _Unwind_Find_FDE (void *pc, struct dwarf
- #if defined (USE_GAS_SYMVER) && defined (SHARED) && defined (USE_LIBUNWIND_EXCEPTIONS)
- alias (_Unwind_Find_FDE);
- #endif
-+#endif
diff --git a/package/gcc/4.2.2-avr32-2.1.5/903-avr32-fix-removal-of-redundant-cast-operations.patch b/package/gcc/4.2.2-avr32-2.1.5/903-avr32-fix-removal-of-redundant-cast-operations.patch
deleted file mode 100644
index 59ecbff4f5..0000000000
--- a/package/gcc/4.2.2-avr32-2.1.5/903-avr32-fix-removal-of-redundant-cast-operations.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-Index: trunk/gcc/config/avr32/avr32.c
-===================================================================
---- trunk/gcc/config/avr32/avr32.c	(revision 43495)
-+++ trunk/gcc/config/avr32/avr32.c	(revision 43496)
-@@ -6499,6 +6499,11 @@
- 		    break;
- 		}
- 
-+              /* Check if we have a call and the register is used as an argument. */
-+              if (CALL_P (scan)
-+                  && find_reg_fusage (scan, USE, reg) )
-+                break;
-+
- 	      if (!reg_mentioned_p (reg, PATTERN (scan)))
- 		continue;
- 
diff --git a/package/gcc/4.2.2-avr32-2.1.5/904-avr32-fix-conditional-insn-which-clobbers-cc_status.patch b/package/gcc/4.2.2-avr32-2.1.5/904-avr32-fix-conditional-insn-which-clobbers-cc_status.patch
deleted file mode 100644
index 539c666d2b..0000000000
--- a/package/gcc/4.2.2-avr32-2.1.5/904-avr32-fix-conditional-insn-which-clobbers-cc_status.patch
+++ /dev/null
@@ -1,150 +0,0 @@
-Index: gcc-4.2.2/gcc/config/avr32/avr32.c
-===================================================================
---- gcc-4.2.2.orig/gcc/config/avr32/avr32.c	2008-09-19 14:29:20.000000000 +0200
-+++ gcc-4.2.2/gcc/config/avr32/avr32.c	2008-09-19 14:30:02.000000000 +0200
-@@ -1788,7 +1788,7 @@
-     {
-       if (TREE_CODE (*node) != FUNCTION_DECL)
- 	{
--	  warning ("`%s' attribute only applies to functions",
-+	  warning (OPT_Wattributes,"`%s' attribute only applies to functions",
- 		   IDENTIFIER_POINTER (name));
- 	  *no_add_attrs = true;
- 	}
-@@ -1802,7 +1802,7 @@
- 	{
- 	  if (avr32_isr_value (args) == AVR32_FT_UNKNOWN)
- 	    {
--	      warning ("`%s' attribute ignored", IDENTIFIER_POINTER (name));
-+	      warning (OPT_Wattributes,"`%s' attribute ignored", IDENTIFIER_POINTER (name));
- 	      *no_add_attrs = true;
- 	    }
- 	}
-@@ -1829,7 +1829,7 @@
- 	    }
- 	  else
- 	    {
--	      warning ("`%s' attribute ignored", IDENTIFIER_POINTER (name));
-+	      warning (OPT_Wattributes,"`%s' attribute ignored", IDENTIFIER_POINTER (name));
- 	    }
- 	}
-     }
-@@ -1847,7 +1847,7 @@
- {
-   if (TREE_CODE (*node) != FUNCTION_DECL)
-     {
--      warning ("%qs attribute only applies to functions",
-+      warning (OPT_Wattributes,"%qs attribute only applies to functions",
- 	       IDENTIFIER_POINTER (name));
-       *no_add_attrs = true;
-     }
-@@ -1866,13 +1866,13 @@
- {
-   if (TREE_CODE (*node) == FUNCTION_TYPE || TREE_CODE (*node) == METHOD_TYPE)
-     {
--      warning ("`%s' attribute not yet supported...",
-+      warning (OPT_Wattributes,"`%s' attribute not yet supported...",
- 	       IDENTIFIER_POINTER (name));
-       *no_add_attrs = true;
-       return NULL_TREE;
-     }
- 
--  warning ("`%s' attribute only applies to functions",
-+  warning (OPT_Wattributes,"`%s' attribute only applies to functions",
- 	   IDENTIFIER_POINTER (name));
-   *no_add_attrs = true;
-   return NULL_TREE;
-@@ -4215,51 +4215,6 @@
- 
- 
- void
--avr32_asm_output_ascii (FILE * stream, char *ptr, int len)
--{
--  int i, i_new = 0;
--  char *new_ptr = xmalloc (4 * len);
--  if (new_ptr == NULL)
--    internal_error ("Out of memory.");
--
--  for (i = 0; i < len; i++)
--    {
--      if (ptr[i] == '\n')
--	{
--	  new_ptr[i_new++] = '\\';
--	  new_ptr[i_new++] = '0';
--	  new_ptr[i_new++] = '1';
--	  new_ptr[i_new++] = '2';
--	}
--      else if (ptr[i] == '\"')
--	{
--	  new_ptr[i_new++] = '\\';
--	  new_ptr[i_new++] = '\"';
--	}
--      else if (ptr[i] == '\\')
--	{
--	  new_ptr[i_new++] = '\\';
--	  new_ptr[i_new++] = '\\';
--	}
--      else if (ptr[i] == '\0' && i + 1 < len)
--	{
--	  new_ptr[i_new++] = '\\';
--	  new_ptr[i_new++] = '0';
--	}
--      else
--	{
--	  new_ptr[i_new++] = ptr[i];
--	}
--    }
--
--  /* Terminate new_ptr. */
--  new_ptr[i_new] = '\0';
--  fprintf (stream, "\t.ascii\t\"%s\"\n", new_ptr);
--  free (new_ptr);
--}
--
--
--void
- avr32_asm_output_label (FILE * stream, const char *name)
- {
-   name = avr32_strip_name_encoding (name);
-@@ -4444,12 +4399,15 @@
-         rtx cmp;
-         rtx cmp_op0, cmp_op1;
-         rtx cond;
-+        rtx dest;
-+
-         if ( GET_CODE (exp) == COND_EXEC )
-           {
-             cmp_op0 = XEXP (COND_EXEC_TEST (exp), 0);
-             cmp_op1 = XEXP (COND_EXEC_TEST (exp), 1);
-             cond = COND_EXEC_TEST (exp);
--          } 
-+            dest = SET_DEST (COND_EXEC_CODE (exp));
-+          }
-         else
-           {
-             /* If then else conditional. compare operands are in operands
-@@ -4457,6 +4415,7 @@
-             cmp_op0 = recog_data.operand[4];
-             cmp_op1 = recog_data.operand[5];
-             cond = recog_data.operand[1];
-+            dest = SET_DEST (exp);
-           }
- 
-         if ( GET_CODE (cmp_op0) == AND )
-@@ -4466,7 +4425,15 @@
-                                  cmp_op0,
-                                  cmp_op1);
-         
--	if (is_compare_redundant (cmp, cond) == NULL_RTX)
-+        /* Check if the conditional insns updates a register present
-+           in the comparison, if so then we must reset the cc_status. */
-+        if (REG_P (dest)
-+            && (reg_mentioned_p (dest, cmp_op0)
-+                || reg_mentioned_p (dest, cmp_op1)))
-+          {
-+            CC_STATUS_INIT;
-+          }
-+	else if (is_compare_redundant (cmp, cond) == NULL_RTX)
- 	  {
- 	    /* Reset the nonstandard flag */
- 	    CC_STATUS_INIT;
diff --git a/package/gcc/4.2.2-avr32-2.1.5/905-avr32-optimize-movsf2-use-movh-to-move-immediates-into-register.patch b/package/gcc/4.2.2-avr32-2.1.5/905-avr32-optimize-movsf2-use-movh-to-move-immediates-into-register.patch
deleted file mode 100644
index 08d972df24..0000000000
--- a/package/gcc/4.2.2-avr32-2.1.5/905-avr32-optimize-movsf2-use-movh-to-move-immediates-into-register.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-Index: gcc-4.2.2/gcc/config/avr32/avr32.md
-===================================================================
---- gcc-4.2.2.orig/gcc/config/avr32/avr32.md	2008-09-19 14:23:34.000000000 +0200
-+++ gcc-4.2.2/gcc/config/avr32/avr32.md	2008-09-19 14:30:18.000000000 +0200
-@@ -803,14 +803,22 @@
- (define_insn "*movsf_internal"
-   [(set (match_operand:SF 0 "nonimmediate_operand"     "=r,r,r,r,m")
- 	(match_operand:SF 1 "general_operand"          "r, G,F,m,r"))]
--  "TARGET_SOFT_FLOAT
--   && (register_operand (operands[0], SFmode)
--       || register_operand (operands[1], SFmode))"
-+  "(register_operand (operands[0], SFmode)
-+    || register_operand (operands[1], SFmode))"
-   {
-     switch (which_alternative) {
-       case 0:
-       case 1: return "mov\t%0, %1";
--      case 2: return "mov\t%0, lo(%1)\;orh\t%0, hi(%1)";
-+      case 2: 
-+       {
-+        HOST_WIDE_INT target_float[2];
-+        real_to_target (target_float, CONST_DOUBLE_REAL_VALUE (operands[1]), SFmode);
-+        if ( TARGET_V2_INSNS 
-+             && avr32_hi16_immediate_operand (GEN_INT (target_float[0]), VOIDmode) )
-+           return "movh\t%0, hi(%1)";
-+        else
-+           return "mov\t%0, lo(%1)\;orh\t%0, hi(%1)";
-+       }
-       case 3:
-         if ( (REG_P(XEXP(operands[1], 0))
-               && REGNO(XEXP(operands[1], 0)) == SP_REGNUM)
diff --git a/package/gcc/4.2.2-avr32-2.1.5/990-fix-300-libstdc++-pic.patch b/package/gcc/4.2.2-avr32-2.1.5/990-fix-300-libstdc++-pic.patch
deleted file mode 100644
index a63b3ad233..0000000000
--- a/package/gcc/4.2.2-avr32-2.1.5/990-fix-300-libstdc++-pic.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-libstdc++-v3: fix the effects of pre-applied 300-libstdc++-pic.patch
-
-This version of GCC comes with a number of pre-applied patches, among which is
-300-libstdc++-pic.patch that makes a PIC version of libstdc++. The resulting
-Makefile.in incorrectly refers to object files that should be insde the library.
-
-Signed-off-by: Alexander Lukichev <alexander.lukichev@gmail.com>
-
-diff -uNrp host-gcc-final-4.2.2-avr32-2.1.5.orig/libstdc++-v3/src/Makefile.in host-gcc-final-4.2.2-avr32-2.1.5/libstdc++-v3/src/Makefile.in
---- host-gcc-final-4.2.2-avr32-2.1.5.orig/libstdc++-v3/src/Makefile.in	2008-07-04 00:18:42.000000000 +0300
-+++ host-gcc-final-4.2.2-avr32-2.1.5/libstdc++-v3/src/Makefile.in	2013-08-08 16:15:56.201258882 +0300
-@@ -804,7 +804,7 @@ install_debug:
- 
- install-exec-local:
- ifeq ($(enable_shared),yes)
--	$(AR) cru libstdc++_pic.a *.o $(top_builddir)/libsupc++/*.o
-+	$(AR) cru libstdc++_pic.a .libs/*.o $(top_builddir)/libsupc++/*.o
- 	$(INSTALL_DATA) libstdc++_pic.a $(DESTDIR)$(toolexeclibdir)
- endif
- 
diff --git a/package/gcc/4.9.2/920-libgcc-remove-unistd-header.patch b/package/gcc/4.9.2/920-libgcc-remove-unistd-header.patch
new file mode 100644
index 0000000000..df5372bb5a
--- /dev/null
+++ b/package/gcc/4.9.2/920-libgcc-remove-unistd-header.patch
@@ -0,0 +1,12 @@
+Upstream status: In progress
+
+--- a/libgcc/config/nios2/linux-atomic.c
++++ b/libgcc/config/nios2/linux-atomic.c
+@@ -20,7 +20,6 @@
+ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
+ <http://www.gnu.org/licenses/>.  */
+ 
+-#include <asm/unistd.h>
+ #define EFAULT  14
+ #define EBUSY   16
+ #define ENOSYS  38
diff --git a/package/gcc/Config.in.host b/package/gcc/Config.in.host
index 24004c4331..dd61f51a96 100644
--- a/package/gcc/Config.in.host
+++ b/package/gcc/Config.in.host
@@ -8,7 +8,6 @@ config BR2_GCC_SUPPORTS_GRAPHITE
 
 choice
 	prompt "GCC compiler Version"
-	default BR2_GCC_VERSION_4_2_2_AVR32_2_1_5 if BR2_avr32
 	default BR2_GCC_VERSION_4_8_ARC if BR2_arc
 	default BR2_GCC_VERSION_4_9_X if BR2_microblaze || BR2_powerpc64le
 	default BR2_GCC_VERSION_4_5_X if BR2_bfin
@@ -16,16 +15,11 @@ choice
 	help
 	  Select the version of gcc you wish to use.
 
-	config BR2_GCC_VERSION_4_2_2_AVR32_2_1_5
-		bool "gcc 4.2.2-avr32-2.1.5"
-		# Only supported architecture
-		depends on BR2_avr32
-
 	config BR2_GCC_VERSION_4_5_X
 		bool "gcc 4.5.x"
 		# Broken or unsupported architectures
 		depends on !BR2_microblaze && !BR2_aarch64 && !BR2_arc \
-			&& !BR2_avr32  && !BR2_powerpc64le
+			&& !BR2_powerpc64le && !BR2_nios2
 		# Broken or unsupported ARM cores
 		depends on !BR2_cortex_a7 && !BR2_cortex_a12 && \
 			!BR2_cortex_a15 && !BR2_fa526 && !BR2_pj4
@@ -46,7 +40,7 @@ choice
 		bool "gcc 4.7.x"
 		# Broken or unsupported architectures
 		depends on !BR2_microblaze && !BR2_aarch64 && !BR2_arc \
-			&& !BR2_avr32 && !BR2_bfin && !BR2_powerpc64le
+			&& !BR2_bfin && !BR2_powerpc64le && !BR2_nios2
 		# Broken or unsupported ARM cores
 		depends on !BR2_cortex_a12 && !BR2_pj4
 		# Broken or unsupported PPC cores
@@ -61,8 +55,8 @@ choice
 	config BR2_GCC_VERSION_4_8_X
 		bool "gcc 4.8.x"
 		# Broken or unsupported architectures
-		depends on !BR2_microblaze && !BR2_arc && !BR2_avr32 \
-			&& !BR2_bfin && !BR2_powerpc64le
+		depends on !BR2_microblaze && !BR2_arc \
+			&& !BR2_bfin && !BR2_powerpc64le && !BR2_nios2
 		# Broken or unsupported ARM cores
 		depends on !BR2_cortex_a12
 		# Broken or unsupported PPC cores
@@ -79,7 +73,7 @@ choice
 	config BR2_GCC_VERSION_4_9_X
 		bool "gcc 4.9.x"
 		# Broken or unsupported architectures
-		depends on !BR2_arc && !BR2_avr32 && !BR2_bfin
+		depends on !BR2_arc && !BR2_bfin
 		# PR60102 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60102
 		select BR2_GCC_NEEDS_MPC
 		select BR2_GCC_SUPPORTS_GRAPHITE
@@ -88,11 +82,10 @@ endchoice
 
 config BR2_GCC_SUPPORTS_FINEGRAINEDMTUNE
 	bool
-	default y if !BR2_GCC_VERSION_4_2_2_AVR32_2_1_5
+	default y
 
 config BR2_GCC_VERSION
 	string
-	default "4.2.2-avr32-2.1.5" if BR2_GCC_VERSION_4_2_2_AVR32_2_1_5
 	default "4.5.4"     if BR2_GCC_VERSION_4_5_X
 	default "4.7.4"     if BR2_GCC_VERSION_4_7_X
 	default "4.8.4"     if BR2_GCC_VERSION_4_8_X
@@ -110,16 +103,11 @@ config BR2_EXTRA_GCC_CONFIG_OPTIONS
 config BR2_TOOLCHAIN_BUILDROOT_CXX
 	bool "Enable C++ support"
 	select BR2_INSTALL_LIBSTDCPP
-	depends on !(BR2_GCC_VERSION_4_2_2_AVR32_2_1_5 && \
-		     BR2_TOOLCHAIN_BUILDROOT_LOCALE)
 	help
 	  Enable this option if you want your toolchain to support the
 	  C++ language and you want C++ libraries to be installed on
 	  your target system.
 
-comment "C++ support broken in uClibc with locale enabled with gcc 4.2"
-	depends on BR2_GCC_VERSION_4_2_2_AVR32_2_1_5 && BR2_TOOLCHAIN_BUILDROOT_LOCALE
-
 config BR2_GCC_ENABLE_TLS
 	bool "Enable compiler tls support" if BR2_TOOLCHAIN_BUILDROOT_UCLIBC
 	default y
@@ -130,7 +118,7 @@ config BR2_GCC_ENABLE_TLS
 
 config BR2_GCC_ENABLE_OPENMP
 	bool "Enable compiler OpenMP support"
-	depends on !BR2_PTHREADS_NONE && !BR2_avr32 && !BR2_arc && !BR2_microblaze
+	depends on !BR2_PTHREADS_NONE && !BR2_arc && !BR2_microblaze
 	help
 	  Enable OpenMP support for the compiler
 
@@ -138,7 +126,7 @@ config BR2_GCC_ENABLE_LIBMUDFLAP
 	bool "Enable libmudflap support"
 	# There are architectures, or specific configurations for
 	# which mudflap is not supported.
-	depends on !BR2_avr32 && !BR2_bfin && !BR2_ARM_INSTRUCTIONS_THUMB && !BR2_powerpc_SPE
+	depends on !BR2_bfin && !BR2_ARM_INSTRUCTIONS_THUMB && !BR2_powerpc_SPE
 	depends on !BR2_GCC_VERSION_4_9_X
 	help
 	  libmudflap is a gcc library used for the mudflap pointer
diff --git a/package/gcc/gcc.mk b/package/gcc/gcc.mk
index 3af8290017..477f846b89 100644
--- a/package/gcc/gcc.mk
+++ b/package/gcc/gcc.mk
@@ -10,9 +10,7 @@
 
 GCC_VERSION = $(call qstrip,$(BR2_GCC_VERSION))
 
-ifeq ($(findstring avr32,$(GCC_VERSION)),avr32)
-GCC_SITE = ftp://www.at91.com/pub/buildroot
-else ifeq ($(BR2_arc),y)
+ifeq ($(BR2_arc),y)
 GCC_SITE = $(call github,foss-for-synopsys-dwc-arc-processors,gcc,$(GCC_VERSION))
 GCC_SOURCE = gcc-$(GCC_VERSION).tar.gz
 else
diff --git a/package/gdb/Config.in b/package/gdb/Config.in
index b211878326..db6adf54f5 100644
--- a/package/gdb/Config.in
+++ b/package/gdb/Config.in
@@ -40,10 +40,10 @@ config BR2_PACKAGE_GDB_DEBUGGER
 	bool "full debugger"
 	select BR2_PACKAGE_NCURSES
 	depends on BR2_USE_WCHAR
-	depends on !BR2_sh && !BR2_sh64 && !BR2_avr32 && !BR2_microblaze && !BR2_bfin
+	depends on !BR2_sh && !BR2_sh64 && !BR2_microblaze && !BR2_bfin
 
 comment "full gdb on target needs a toolchain w/ wchar"
-	depends on !BR2_sh && !BR2_sh64 && !BR2_avr32 && !BR2_microblaze && !BR2_bfin
+	depends on !BR2_sh && !BR2_sh64 && !BR2_microblaze && !BR2_bfin
 	depends on !BR2_USE_WCHAR
 
 if BR2_PACKAGE_GDB_DEBUGGER
diff --git a/package/gdb/Config.in.host b/package/gdb/Config.in.host
index c8d6a94012..2a03939981 100644
--- a/package/gdb/Config.in.host
+++ b/package/gdb/Config.in.host
@@ -27,15 +27,10 @@ choice
 	prompt "GDB debugger Version"
 	depends on !BR2_arc
 	depends on !BR2_microblaze
-	default BR2_GDB_VERSION_6_7_1_AVR32_2_1_5 if BR2_avr32
 	default BR2_GDB_VERSION_7_7
 	help
 	  Select the version of gdb you wish to use.
 
-	config BR2_GDB_VERSION_6_7_1_AVR32_2_1_5
-		depends on BR2_avr32
-		bool "gdb 6.7.1-avr32-2.1.5"
-
 	config BR2_GDB_VERSION_7_7
 		bool "gdb 7.7.x"
 
@@ -50,8 +45,6 @@ endif
 config BR2_GDB_VERSION
 	string
 	depends on BR2_PACKAGE_GDB || BR2_PACKAGE_HOST_GDB
-	default "6.7.1-avr32-2.1.5" if BR2_GDB_VERSION_6_7_1_AVR32_2_1_5 || \
-                                   (!BR2_PACKAGE_HOST_GDB && BR2_avr32)
 	default "arc-2014.12-gdb" if BR2_arc
 	default "6be65fb56ea6694a9260733a536a023a1e2d4d57" if BR2_microblaze
 	default "7.7.1"    if BR2_GDB_VERSION_7_7 || !BR2_PACKAGE_HOST_GDB
diff --git a/package/gdb/gdb.mk b/package/gdb/gdb.mk
index 24084b81c0..6a192fb9c5 100644
--- a/package/gdb/gdb.mk
+++ b/package/gdb/gdb.mk
@@ -19,10 +19,6 @@ GDB_SOURCE = gdb-$(GDB_VERSION).tar.gz
 GDB_FROM_GIT = y
 endif
 
-ifeq ($(GDB_VERSION),6.7.1-avr32-2.1.5)
-GDB_SITE = ftp://www.at91.com/pub/buildroot
-endif
-
 # Starting from 7.8.x, bz2 tarballs no longer available, use .tar.xz
 # instead.
 ifneq ($(filter 7.8.%,$(GDB_VERSION)),)
@@ -129,12 +125,9 @@ endif
 #  * --target, because we're doing a cross build rather than a real
 #    host build.
 #  * --enable-static because gdb really wants to use libbfd.a
-#  * --disable-shared, otherwise the old 6.7 version specific to AVR32
-#    doesn't build because it wants to link a shared libbfd.so against
-#    non-PIC liberty.a.
 HOST_GDB_CONF_OPTS = \
 	--target=$(GNU_TARGET_NAME) \
-	--enable-static --disable-shared \
+	--enable-static \
 	--without-uiout \
 	--disable-gdbtk \
 	--without-x \
diff --git a/package/git/git.hash b/package/git/git.hash
index ba3a3eaee3..aa81df50cc 100644
--- a/package/git/git.hash
+++ b/package/git/git.hash
@@ -1,2 +1,2 @@
 # From: https://www.kernel.org/pub/software/scm/git/sha256sums.asc
-sha256  94b23a14d66df536cfe7de37551f55acf908f8bddf30a0f5325a255bb57b0aca  git-2.3.0.tar.xz
+sha256  1acc4b051576143eb41d80f5675476629588c7c5fb4e6a1dc2c4590f47c498b7  git-2.3.1.tar.xz
diff --git a/package/git/git.mk b/package/git/git.mk
index 674095df60..0672d6ee1f 100644
--- a/package/git/git.mk
+++ b/package/git/git.mk
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-GIT_VERSION = 2.3.0
+GIT_VERSION = 2.3.1
 GIT_SOURCE = git-$(GIT_VERSION).tar.xz
 GIT_SITE = https://www.kernel.org/pub/software/scm/git
 GIT_LICENSE = GPLv2 LGPLv2.1+
diff --git a/package/glibc/2.19/0001-CVE-2014-7817.patch b/package/glibc/2.19/0001-CVE-2014-7817.patch
deleted file mode 100644
index cd20c42c20..0000000000
--- a/package/glibc/2.19/0001-CVE-2014-7817.patch
+++ /dev/null
@@ -1,173 +0,0 @@
-Patch from https://bugzilla.redhat.com/show_bug.cgi?id=1157689
-
-Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
-
-WARNING !!! WARNING !!! WARNING !!! WARNING !!! WARNING !!! WARNING !!!
-EMBARGOED !!! EMBARGOED !!! EMARGOED !!! EMBARGOED !!! EMBARGOED !!!
-SECURITY !!! SECURITY !!! SECURITY !!! SECURITY !!! SECURITY !!!
-
-CVE-2014-7817:
-
-The function wordexp() fails to properly handle the WRDE_NOCMD
-flag when processing arithmetic inputs in the form of "$((... ``))"
-where "..." can be anything valid. The backticks in the arithmetic
-epxression are evaluated by in a shell even if WRDE_NOCMD forbade
-command substitution. This allows an attacker to attempt to pass
-dangerous commands via constructs of the above form, and bypass
-the WRDE_NOCMD flag. This patch fixes this by checking for WRDE_NOCMD
-in parse_arith(). The patch also hardens parse_backticks() and 
-parse_comm() to check for WRDE_NOCMD flag and return an error instead
-of ever running a shell.
-
-We expand the testsuite and add 3 new regression tests of roughtly
-the same form but with a couple of nested levels. 
-
-On top of the 3 new tests we add fork validation to the WRDE_NOCMD
-testing. If any forks are detected during the execution of a wordexp()
-call with WRDE_NOCMD, the test is marked as failed. This is slightly
-heuristic since vfork might be used, but it provides a higher level
-of assurance that no shells were executed as part of command substitution
-with WRDE_NOCMD in effect. In addition it doesn't require libpthread or
-libdl, instead we use the public implementation namespace function
-__register_atfork (already part of the public ABI for libpthread).
-
-Tested on x86_64 with no regressions.
-
-2014-10-27  Carlos O'Donell  <carlos@redhat.com>
-
-	* wordexp-test.c (__dso_handle): Add prototype.
-	(__register_atfork): Likewise.
-	(__app_register_atfork): New function.
-	(registered_forks): New global.
-	(register_fork): New function.
-	(test_case): Add 3 new tests for WRDE_CMDSUB.
-	(main): Call __app_register_atfork.
-	(testit): If WRDE_NOCMD set registered_forks to zero, run test, and
-	if fork count is non-zero fail the test.
-	* posix/wordexp.c (parse_arith): Return WRDE_NOCMD if WRDE_NOCMD flag
-	is set and parsing '`'. 
-	(parse_comm): Return WRDE_NOCMD if WRDE_NOCMD flag is set.
-	(parse_backtick): Return WRDE_NOCMD if WRDE_NOCMD flag is set and
-	parsing '`'.
-
-diff --git a/posix/wordexp-test.c b/posix/wordexp-test.c
-index 4957006..5ce2a1b 100644
---- a/posix/wordexp-test.c
-+++ b/posix/wordexp-test.c
-@@ -27,6 +27,25 @@
- 
- #define IFS " \n\t"
- 
-+extern void *__dso_handle __attribute__ ((__weak__, __visibility__ ("hidden")));
-+extern int __register_atfork (void (*) (void), void (*) (void), void (*) (void), void *);
-+
-+static int __app_register_atfork (void (*prepare) (void), void (*parent) (void), void (*child) (void))
-+{
-+  return __register_atfork (prepare, parent, child,
-+			    &__dso_handle == NULL ? NULL : __dso_handle);
-+}
-+
-+/* Number of forks seen.  */
-+static int registered_forks;
-+
-+/* For each fork increment the fork count.  */
-+static void
-+register_fork (void)
-+{
-+  registered_forks++;
-+}
-+
- struct test_case_struct
- {
-   int retval;
-@@ -206,6 +225,12 @@ struct test_case_struct
-     { WRDE_SYNTAX, NULL, "$((2+))", 0, 0, { NULL, }, IFS },
-     { WRDE_SYNTAX, NULL, "`", 0, 0, { NULL, }, IFS },
-     { WRDE_SYNTAX, NULL, "$((010+4+))", 0, 0, { NULL }, IFS },
-+    /* Test for CVE-2014-7817. We test 3 combinations of command
-+       substitution inside an arithmetic expression to make sure that
-+       no commands are executed and error is returned.  */
-+    { WRDE_CMDSUB, NULL, "$((`echo 1`))", WRDE_NOCMD, 0, { NULL, }, IFS },
-+    { WRDE_CMDSUB, NULL, "$((1+`echo 1`))", WRDE_NOCMD, 0, { NULL, }, IFS },
-+    { WRDE_CMDSUB, NULL, "$((1+$((`echo 1`))))", WRDE_NOCMD, 0, { NULL, }, IFS },
- 
-     { -1, NULL, NULL, 0, 0, { NULL, }, IFS },
-   };
-@@ -258,6 +283,15 @@ main (int argc, char *argv[])
- 	  return -1;
-     }
- 
-+  /* If we are not allowed to do command substitution, we install
-+     fork handlers to verify that no forks happened.  No forks should
-+     happen at all if command substitution is disabled.  */
-+  if (__app_register_atfork (register_fork, NULL, NULL) != 0)
-+    {
-+      printf ("Failed to register fork handler.\n");
-+      return -1;
-+    }
-+
-   for (test = 0; test_case[test].retval != -1; test++)
-     if (testit (&test_case[test]))
-       ++fail;
-@@ -367,6 +401,9 @@ testit (struct test_case_struct *tc)
- 
-   printf ("Test %d (%s): ", ++tests, tc->words);
- 
-+  if (tc->flags & WRDE_NOCMD)
-+    registered_forks = 0;
-+
-   if (tc->flags & WRDE_APPEND)
-     {
-       /* initial wordexp() call, to be appended to */
-@@ -378,6 +415,13 @@ testit (struct test_case_struct *tc)
-     }
-   retval = wordexp (tc->words, &we, tc->flags);
- 
-+  if ((tc->flags & WRDE_NOCMD)
-+      && (registered_forks > 0))
-+    {
-+      printf ("FAILED fork called for WRDE_NOCMD\n");
-+      return 1;
-+    }
-+
-   if (tc->flags & WRDE_DOOFFS)
-       start_offs = sav_we.we_offs;
- 
-diff --git a/posix/wordexp.c b/posix/wordexp.c
-index b6b65dd..d6a158f 100644
---- a/posix/wordexp.c
-+++ b/posix/wordexp.c
-@@ -693,6 +693,12 @@ parse_arith (char **word, size_t *word_length, size_t *max_length,
- 	  break;
- 
- 	case '`':
-+	   if (flags & WRDE_NOCMD)
-+	     {
-+	       free (expr);
-+	       return WRDE_NOCMD;
-+	     }
-+
- 	  (*offset)++;
- 	  error = parse_backtick (&expr, &expr_length, &expr_maxlen,
- 				  words, offset, flags, NULL, NULL, NULL);
-@@ -1144,6 +1150,10 @@ parse_comm (char **word, size_t *word_length, size_t *max_length,
-   size_t comm_maxlen;
-   char *comm = w_newword (&comm_length, &comm_maxlen);
- 
-+  /* Do nothing if command substitution should not succeed.  */
-+  if (flags & WRDE_NOCMD)
-+    return WRDE_CMDSUB;
-+
-   for (; words[*offset]; ++(*offset))
-     {
-       switch (words[*offset])
-@@ -2121,6 +2131,9 @@ parse_backtick (char **word, size_t *word_length, size_t *max_length,
-       switch (words[*offset])
- 	{
- 	case '`':
-+	  if (flags & WRDE_NOCMD)
-+	    return WRDE_NOCMD;
-+
- 	  /* Go -- give the script to the shell */
- 	  error = exec_comm (comm, word, word_length, max_length, flags,
- 			     pwordexp, ifs, ifs_white);
diff --git a/package/glibc/2.19/0002-CVE-2014-6040.patch b/package/glibc/2.19/0002-CVE-2014-6040.patch
deleted file mode 100644
index d107b3280f..0000000000
--- a/package/glibc/2.19/0002-CVE-2014-6040.patch
+++ /dev/null
@@ -1,141 +0,0 @@
-Backport from https://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commit;h=41488498b6
-See https://bugzilla.redhat.com/show_bug.cgi?id=1135841
-
-Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
-
-diff -Nura glibc-2.19.orig/iconvdata/ibm1364.c glibc-2.19/iconvdata/ibm1364.c
---- glibc-2.19.orig/iconvdata/ibm1364.c	2015-01-08 16:02:54.370960818 -0300
-+++ glibc-2.19/iconvdata/ibm1364.c	2015-01-08 16:02:57.607688939 -0300
-@@ -220,7 +220,8 @@
- 	  ++rp2;							      \
- 									      \
- 	uint32_t res;							      \
--	if (__builtin_expect (ch < rp2->start, 0)			      \
-+	if (__builtin_expect (rp2->start == 0xffff, 0)			      \
-+	    || __builtin_expect (ch < rp2->start, 0)			      \
- 	    || (res = DB_TO_UCS4[ch + rp2->idx],			      \
- 		__builtin_expect (res, L'\1') == L'\0' && ch != '\0'))	      \
- 	  {								      \
-diff -Nura glibc-2.19.orig/iconvdata/ibm932.c glibc-2.19/iconvdata/ibm932.c
---- glibc-2.19.orig/iconvdata/ibm932.c	2015-01-08 16:02:54.357953873 -0300
-+++ glibc-2.19/iconvdata/ibm932.c	2015-01-08 16:02:57.608689473 -0300
-@@ -73,11 +73,12 @@
- 	  }								      \
- 									      \
- 	ch = (ch * 0x100) + inptr[1];					      \
-+	/* ch was less than 0xfd.  */					      \
-+	assert (ch < 0xfd00);						      \
- 	while (ch > rp2->end)						      \
- 	  ++rp2;							      \
- 									      \
--	if (__builtin_expect (rp2 == NULL, 0)				      \
--	    || __builtin_expect (ch < rp2->start, 0)			      \
-+	if (__builtin_expect (ch < rp2->start, 0)			      \
- 	    || (res = __ibm932db_to_ucs4[ch + rp2->idx],		      \
- 	    __builtin_expect (res, '\1') == 0 && ch !=0))		      \
- 	  {								      \
-diff -Nura glibc-2.19.orig/iconvdata/ibm933.c glibc-2.19/iconvdata/ibm933.c
---- glibc-2.19.orig/iconvdata/ibm933.c	2015-01-08 16:02:54.369960284 -0300
-+++ glibc-2.19/iconvdata/ibm933.c	2015-01-08 16:02:57.608689473 -0300
-@@ -161,7 +161,7 @@
- 	while (ch > rp2->end)						      \
- 	  ++rp2;							      \
- 									      \
--	if (__builtin_expect (rp2 == NULL, 0)				      \
-+	if (__builtin_expect (rp2->start == 0xffff, 0)			      \
- 	    || __builtin_expect (ch < rp2->start, 0)			      \
- 	    || (res = __ibm933db_to_ucs4[ch + rp2->idx],		      \
- 		__builtin_expect (res, L'\1') == L'\0' && ch != '\0'))	      \
-diff -Nura glibc-2.19.orig/iconvdata/ibm935.c glibc-2.19/iconvdata/ibm935.c
---- glibc-2.19.orig/iconvdata/ibm935.c	2015-01-08 16:02:54.373962421 -0300
-+++ glibc-2.19/iconvdata/ibm935.c	2015-01-08 16:02:57.608689473 -0300
-@@ -161,7 +161,7 @@
- 	while (ch > rp2->end)						      \
- 	  ++rp2;							      \
- 									      \
--	if (__builtin_expect (rp2 == NULL, 0)				      \
-+	if (__builtin_expect (rp2->start == 0xffff, 0)			      \
- 	    || __builtin_expect (ch < rp2->start, 0)			      \
- 	    || (res = __ibm935db_to_ucs4[ch + rp2->idx],		      \
- 		__builtin_expect (res, L'\1') == L'\0' && ch != '\0'))	      \
-diff -Nura glibc-2.19.orig/iconvdata/ibm937.c glibc-2.19/iconvdata/ibm937.c
---- glibc-2.19.orig/iconvdata/ibm937.c	2015-01-08 16:02:54.368959749 -0300
-+++ glibc-2.19/iconvdata/ibm937.c	2015-01-08 16:02:57.608689473 -0300
-@@ -161,7 +161,7 @@
- 	while (ch > rp2->end)						      \
- 	  ++rp2;							      \
- 									      \
--	if (__builtin_expect (rp2 == NULL, 0)				      \
-+	if (__builtin_expect (rp2->start == 0xffff, 0)			      \
- 	    || __builtin_expect (ch < rp2->start, 0)			      \
- 	    || (res = __ibm937db_to_ucs4[ch + rp2->idx],		      \
- 		__builtin_expect (res, L'\1') == L'\0' && ch != '\0'))	      \
-diff -Nura glibc-2.19.orig/iconvdata/ibm939.c glibc-2.19/iconvdata/ibm939.c
---- glibc-2.19.orig/iconvdata/ibm939.c	2015-01-08 16:02:54.369960284 -0300
-+++ glibc-2.19/iconvdata/ibm939.c	2015-01-08 16:02:57.609690007 -0300
-@@ -161,7 +161,7 @@
- 	while (ch > rp2->end)						      \
- 	  ++rp2;							      \
- 									      \
--	if (__builtin_expect (rp2 == NULL, 0)				      \
-+	if (__builtin_expect (rp2->start == 0xffff, 0)			      \
- 	    || __builtin_expect (ch < rp2->start, 0)			      \
- 	    || (res = __ibm939db_to_ucs4[ch + rp2->idx],		      \
- 		__builtin_expect (res, L'\1') == L'\0' && ch != '\0'))	      \
-diff -Nura glibc-2.19.orig/iconvdata/ibm943.c glibc-2.19/iconvdata/ibm943.c
---- glibc-2.19.orig/iconvdata/ibm943.c	2015-01-08 16:02:54.370960818 -0300
-+++ glibc-2.19/iconvdata/ibm943.c	2015-01-08 16:02:57.609690007 -0300
-@@ -74,11 +74,12 @@
- 	  }								      \
- 									      \
- 	ch = (ch * 0x100) + inptr[1];					      \
-+	/* ch was less than 0xfd.  */					      \
-+	assert (ch < 0xfd00);						      \
- 	while (ch > rp2->end)						      \
- 	  ++rp2;							      \
- 									      \
--	if (__builtin_expect (rp2 == NULL, 0)				      \
--	    || __builtin_expect (ch < rp2->start, 0)			      \
-+	if (__builtin_expect (ch < rp2->start, 0)			      \
- 	    || (res = __ibm943db_to_ucs4[ch + rp2->idx],		      \
- 	    __builtin_expect (res, '\1') == 0 && ch !=0))		      \
- 	  {								      \
-diff -Nura glibc-2.19.orig/iconvdata/Makefile glibc-2.19/iconvdata/Makefile
---- glibc-2.19.orig/iconvdata/Makefile	2015-01-08 16:02:54.344946929 -0300
-+++ glibc-2.19/iconvdata/Makefile	2015-01-08 16:03:21.748578005 -0300
-@@ -299,6 +299,7 @@
- $(objpfx)iconv-test.out: run-iconv-test.sh $(objpfx)gconv-modules \
- 			 $(addprefix $(objpfx),$(modules.so)) \
- 			 $(common-objdir)/iconv/iconv_prog TESTS
-+	iconv_modules="$(modules)" \
- 	$(SHELL) $< $(common-objdir) '$(test-wrapper)' > $@
- 
- $(objpfx)tst-tables.out: tst-tables.sh $(objpfx)gconv-modules \
-diff -Nura glibc-2.19.orig/iconvdata/run-iconv-test.sh glibc-2.19/iconvdata/run-iconv-test.sh
---- glibc-2.19.orig/iconvdata/run-iconv-test.sh	2015-01-08 16:02:54.322935176 -0300
-+++ glibc-2.19/iconvdata/run-iconv-test.sh	2015-01-08 16:02:57.609690007 -0300
-@@ -188,6 +188,24 @@
- 
- done < TESTS2
- 
-+# Check for crashes in decoders.
-+printf '\016\377\377\377\377\377\377\377' > $temp1
-+for from in $iconv_modules ; do
-+    echo $ac_n "test decoder $from $ac_c"
-+    PROG=`eval echo $ICONV`
-+    if $PROG < $temp1 >/dev/null 2>&1 ; then
-+	: # fall through
-+    else
-+	status=$?
-+	if test $status -gt 1 ; then
-+	    echo "/FAILED"
-+	    failed=1
-+	    continue
-+	fi
-+    fi
-+    echo "OK"
-+done
-+
- exit $failed
- # Local Variables:
- #  mode:shell-script
diff --git a/package/glibc/2.19/0003-CVE-2014-9402.patch b/package/glibc/2.19/0003-CVE-2014-9402.patch
deleted file mode 100644
index d6d753e2b5..0000000000
--- a/package/glibc/2.19/0003-CVE-2014-9402.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-Fix CVE-2014-9402 - denial of service in getnetbyname function.
-Backport from https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=11e3417af6e354f1942c68a271ae51e892b2814d
-See https://bugzilla.redhat.com/show_bug.cgi?id=1175369
-
-Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
-
-diff --git a/resolv/nss_dns/dns-network.c b/resolv/nss_dns/dns-network.c
-index 0a77c8b..08cf0a6 100644
---- a/resolv/nss_dns/dns-network.c
-+++ b/resolv/nss_dns/dns-network.c
-@@ -398,8 +398,8 @@ getanswer_r (const querybuf *answer, int anslen, struct netent *result,
- 
- 	case BYNAME:
- 	  {
--	    char **ap = result->n_aliases++;
--	    while (*ap != NULL)
-+	    char **ap;
-+	    for (ap = result->n_aliases; *ap != NULL; ++ap)
- 	      {
- 		/* Check each alias name for being of the forms:
- 		   4.3.2.1.in-addr.arpa		= net 1.2.3.4
--- 
-1.7.1
-
diff --git a/package/glibc/Config.in b/package/glibc/Config.in
index 8c033f233d..80014910b0 100644
--- a/package/glibc/Config.in
+++ b/package/glibc/Config.in
@@ -30,14 +30,15 @@ config BR2_PACKAGE_GLIBC
 
 choice
 	prompt "glibc version"
-	default BR2_GLIBC_VERSION_2_19
-
-config BR2_GLIBC_VERSION_2_19
-	bool "2.19"
+	default BR2_GLIBC_VERSION_2_20
 
 config BR2_GLIBC_VERSION_2_20
+	depends on !BR2_nios2
 	bool "2.20"
 
+config BR2_GLIBC_VERSION_2_21
+	bool "2.21"
+
 endchoice
 
 endif
@@ -48,3 +49,4 @@ config BR2_GLIBC_VERSION_STRING
 	default "2.19-svnr25243" if BR2_EGLIBC_VERSION_2_19
 	default "2.19" if BR2_GLIBC_VERSION_2_19
 	default "2.20" if BR2_GLIBC_VERSION_2_20
+	default "2.21" if BR2_GLIBC_VERSION_2_21
diff --git a/package/glibc/glibc.hash b/package/glibc/glibc.hash
index 094bbda023..525a5ed3a3 100644
--- a/package/glibc/glibc.hash
+++ b/package/glibc/glibc.hash
@@ -4,5 +4,5 @@ md5	b395b021422a027d89884992e91734fc	eglibc-2.18-svnr23787.tar.bz2
 sha1	224d9e655e8f0ad04ffde47b97a11c64e2255b56	eglibc-2.18-svnr23787.tar.bz2
 md5	197836c2ba42fb146e971222647198dd	eglibc-2.19-svnr25243.tar.bz2
 sha1	8013c1935b46fd50d2d1fbfad3b0af362b75fb28	eglibc-2.19-svnr25243.tar.bz2
-sha256	2d3997f588401ea095a0b27227b1d50cdfdd416236f6567b564549d3b46ea2a2	glibc-2.19.tar.xz
 sha256	f84b6d42aecc288d593c397b0a3d02260a33ee686bce0c634eb9b32798f36ba5	glibc-2.20.tar.xz
+sha256  aeeb362437965a5d3f40b151094ca79def04a115bd363fdd4a9a0c69482923b8  glibc-2.21.tar.xz
diff --git a/package/gnutls/gnutls.hash b/package/gnutls/gnutls.hash
index 16a6fcbfa3..24da09d8b6 100644
--- a/package/gnutls/gnutls.hash
+++ b/package/gnutls/gnutls.hash
@@ -1,2 +1,2 @@
 # Locally calculated after checking pgp signature
-sha256	67ab3e92c5d48f3323b897d7c1aa0bb2af6f3a84f5bd9931cda163a7ff32299b	gnutls-3.3.12.tar.xz
+sha256	91bf1ef5c159b7f2176f972184545b287af6507ab55a543f6007d31406b97a99	gnutls-3.3.13.tar.xz
diff --git a/package/gnutls/gnutls.mk b/package/gnutls/gnutls.mk
index 6c64b383aa..0154b4da46 100644
--- a/package/gnutls/gnutls.mk
+++ b/package/gnutls/gnutls.mk
@@ -5,7 +5,7 @@
 ################################################################################
 
 GNUTLS_VERSION_MAJOR = 3.3
-GNUTLS_VERSION = $(GNUTLS_VERSION_MAJOR).12
+GNUTLS_VERSION = $(GNUTLS_VERSION_MAJOR).13
 GNUTLS_SOURCE = gnutls-$(GNUTLS_VERSION).tar.xz
 GNUTLS_SITE = ftp://ftp.gnutls.org/gcrypt/gnutls/v$(GNUTLS_VERSION_MAJOR)
 GNUTLS_LICENSE = GPLv3+ LGPLv2.1+
diff --git a/package/gpsd/Config.in b/package/gpsd/Config.in
index 6623900cad..fac8756dd3 100644
--- a/package/gpsd/Config.in
+++ b/package/gpsd/Config.in
@@ -174,9 +174,6 @@ config BR2_PACKAGE_GPSD_NMEA2000
 	bool "NMEA2000"
 	select BR2_PACKAGE_GPSD_NAVCOM
 	select BR2_PACKAGE_GPSD_AIVDM
-	# uClibc 0.9.31, used on AVR32, does not have the necessary
-	# CAN definitions.
-	depends on !BR2_avr32
 	help
 	  NMEA2000/CAN support
 
diff --git a/package/gstreamer/gstreamer/gstreamer.mk b/package/gstreamer/gstreamer/gstreamer.mk
index 62c49350f3..1dbd66fdae 100644
--- a/package/gstreamer/gstreamer/gstreamer.mk
+++ b/package/gstreamer/gstreamer/gstreamer.mk
@@ -12,7 +12,7 @@ GSTREAMER_INSTALL_STAGING = YES
 # Checking if unaligned memory access works correctly cannot be done when cross
 # compiling. For the following architectures there is no information available
 # in the configure script.
-ifeq ($(BR2_arc)$(BR2_avr32)$(BR2_xtensa)$(BR2_microblaze),y)
+ifeq ($(BR2_arc)$(BR2_xtensa)$(BR2_microblaze),y)
 GSTREAMER_CONF_ENV = as_cv_unaligned_access=no
 endif
 ifeq ($(BR2_aarch64),y)
diff --git a/package/gstreamer1/gst1-libav/Config.in b/package/gstreamer1/gst1-libav/Config.in
index 2ab786ec42..4f9c2b8eb0 100644
--- a/package/gstreamer1/gst1-libav/Config.in
+++ b/package/gstreamer1/gst1-libav/Config.in
@@ -1,6 +1,5 @@
 config BR2_PACKAGE_GST1_LIBAV
 	bool "gst1-libav"
-	depends on !BR2_avr32 # binary too large, relocations don't fit
 	select BR2_PACKAGE_GST1_PLUGINS_BASE
 	help
 	  GStreamer plugin (formerly gst-ffmpeg).
diff --git a/package/gstreamer1/gst1-plugins-bad/Config.in b/package/gstreamer1/gst1-plugins-bad/Config.in
index 75a0ca13b5..5cadc42517 100644
--- a/package/gstreamer1/gst1-plugins-bad/Config.in
+++ b/package/gstreamer1/gst1-plugins-bad/Config.in
@@ -371,7 +371,6 @@ config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_DIRECTFB
 
 config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_WAYLAND
 	bool "wayland"
-	depends on !BR2_avr32 # wayland
 	depends on !BR2_STATIC_LIBS # wayland
 	depends on BR2_TOOLCHAIN_HAS_THREADS # wayland
 	select BR2_PACKAGE_WAYLAND
diff --git a/package/gstreamer1/gstreamer1/gstreamer1.mk b/package/gstreamer1/gstreamer1/gstreamer1.mk
index a8b9fda40a..7840284b52 100644
--- a/package/gstreamer1/gstreamer1/gstreamer1.mk
+++ b/package/gstreamer1/gstreamer1/gstreamer1.mk
@@ -14,7 +14,7 @@ GSTREAMER1_LICENSE = LGPLv2+ LGPLv2.1+
 # Checking if unaligned memory access works correctly cannot be done when cross
 # compiling. For the following architectures there is no information available
 # in the configure script.
-ifeq ($(BR2_arc)$(BR2_avr32)$(BR2_xtensa)$(BR2_microblaze),y)
+ifeq ($(BR2_arc)$(BR2_xtensa)$(BR2_microblaze),y)
 GSTREAMER1_CONF_ENV = as_cv_unaligned_access=no
 endif
 ifeq ($(BR2_aarch64),y)
diff --git a/package/guile/Config.in b/package/guile/Config.in
index 6859caff61..d24f318448 100644
--- a/package/guile/Config.in
+++ b/package/guile/Config.in
@@ -1,7 +1,6 @@
 config BR2_PACKAGE_GUILE
 	bool "guile"
 	depends on BR2_TOOLCHAIN_HAS_THREADS
-	depends on BR2_PACKAGE_BDWGC_ARCH_SUPPORTS # bdwgc
 	depends on BR2_PACKAGE_LIBATOMIC_ARCH_SUPPORTS # bdwgc
 	depends on BR2_USE_WCHAR # libunistring
 	select BR2_PACKAGE_LIBUNISTRING
diff --git a/package/hans/Config.in b/package/hans/Config.in
new file mode 100644
index 0000000000..7b60090f62
--- /dev/null
+++ b/package/hans/Config.in
@@ -0,0 +1,13 @@
+comment "hans needs a toolchain w/ C++"
+	depends on !BR2_INSTALL_LIBSTDCPP
+
+config BR2_PACKAGE_HANS
+	bool "hans"
+	depends on BR2_INSTALL_LIBSTDCPP
+	help
+	  Hans makes it possible to tunnel IPv4 through ICMP echo packets,
+	  so you could call it a ping tunnel.
+	  This can be useful when you find yourself in the situation
+	  that your Internet access is firewalled, but pings are allowed.
+
+	  http://code.gerade.org/hans/
diff --git a/package/hans/hans.hash b/package/hans/hans.hash
new file mode 100644
index 0000000000..c1a28df129
--- /dev/null
+++ b/package/hans/hans.hash
@@ -0,0 +1,3 @@
+# From http://sourceforge.net/projects/hanstunnel/files/source/
+md5	97a93a886bc766212257198fd99d1061	hans-0.4.4.tar.gz
+sha1	8a21a9acc6d52cf7d2a5049523469e2609716ab3	hans-0.4.4.tar.gz
diff --git a/package/hans/hans.mk b/package/hans/hans.mk
new file mode 100644
index 0000000000..bda091f33a
--- /dev/null
+++ b/package/hans/hans.mk
@@ -0,0 +1,20 @@
+################################################################################
+#
+# hans
+#
+################################################################################
+
+HANS_VERSION = 0.4.4
+HANS_SITE = http://downloads.sourceforge.net/project/hanstunnel/source
+HANS_LICENSE = GPLv3+
+HANS_LICENSE_FILES = LICENSE
+
+define HANS_BUILD_CMDS
+	$(MAKE) GCC="$(TARGET_CC)" GPP="$(TARGET_CXX)" -C $(@D)
+endef
+
+define HANS_INSTALL_TARGET_CMDS
+	$(INSTALL) -m 755 -D $(@D)/hans $(TARGET_DIR)/usr/sbin/hans
+endef
+
+$(eval $(generic-package))
diff --git a/package/httping/httping.hash b/package/httping/httping.hash
new file mode 100644
index 0000000000..0368f75652
--- /dev/null
+++ b/package/httping/httping.hash
@@ -0,0 +1,2 @@
+# Locally calculated
+sha256	dab59f02b08bfbbc978c005bb16d2db6fe21e1fc841fde96af3d497ddfc82084	httping-2.4.tgz
diff --git a/package/httping/httping.mk b/package/httping/httping.mk
index e868463a8e..7e7609086e 100644
--- a/package/httping/httping.mk
+++ b/package/httping/httping.mk
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-HTTPING_VERSION = 2.3.4
+HTTPING_VERSION = 2.4
 HTTPING_SOURCE = httping-$(HTTPING_VERSION).tgz
 HTTPING_SITE = http://www.vanheusden.com/httping
 HTTPING_LICENSE = GPLv2
diff --git a/package/imagemagick/imagemagick.hash b/package/imagemagick/imagemagick.hash
index f425c3d4a5..9d331f51ae 100644
--- a/package/imagemagick/imagemagick.hash
+++ b/package/imagemagick/imagemagick.hash
@@ -1,2 +1,2 @@
 # From ftp://ftp.nluug.nl/pub/ImageMagick/digest.rdf
-sha256	996aa8081dced3f3bbf23d90fca861b30332f734329f89367c6fc35173a74957  ImageMagick-6.9.0-4.tar.xz
+sha256 90c90397ccf74200cd0e3931d3b26e6722665db235a66a5af392ac25d133d8c2 ImageMagick-6.9.0-7.tar.xz
diff --git a/package/imagemagick/imagemagick.mk b/package/imagemagick/imagemagick.mk
index ab2b7921ba..03c1bd4e06 100644
--- a/package/imagemagick/imagemagick.mk
+++ b/package/imagemagick/imagemagick.mk
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-IMAGEMAGICK_VERSION = 6.9.0-4
+IMAGEMAGICK_VERSION = 6.9.0-7
 IMAGEMAGICK_SOURCE = ImageMagick-$(IMAGEMAGICK_VERSION).tar.xz
 IMAGEMAGICK_SITE = http://www.imagemagick.org/download/releases
 IMAGEMAGICK_LICENSE = Apache-2.0
diff --git a/package/iodine/0001-disable-systemd-and-selinux.patch b/package/iodine/0001-disable-systemd-and-selinux.patch
new file mode 100644
index 0000000000..965abb7cff
--- /dev/null
+++ b/package/iodine/0001-disable-systemd-and-selinux.patch
@@ -0,0 +1,29 @@
+Disable selinux and systemd support since they check for host headers.
+
+Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
+
+diff -Nura iodine-0.7.0.orig/src/osflags iodine-0.7.0/src/osflags
+--- iodine-0.7.0.orig/src/osflags	2015-02-20 14:59:00.799958145 -0300
++++ iodine-0.7.0/src/osflags	2015-02-20 15:05:54.791135141 -0300
+@@ -18,8 +18,8 @@
+ 		;;
+ 		Linux)
+ 			FLAGS="";
+-			[ -e /usr/include/selinux/selinux.h ] && FLAGS="$FLAGS -lselinux";
+-			[ -e /usr/include/systemd/sd-daemon.h ] && FLAGS="$FLAGS -lsystemd-daemon";
++			#[ -e /usr/include/selinux/selinux.h ] && FLAGS="$FLAGS -lselinux";
++			#[ -e /usr/include/systemd/sd-daemon.h ] && FLAGS="$FLAGS -lsystemd-daemon";
+ 			echo $FLAGS;
+ 		;;
+ 	esac
+@@ -34,8 +34,8 @@
+ 		;;
+ 		Linux)
+ 			FLAGS="-D_GNU_SOURCE"
+-			[ -e /usr/include/selinux/selinux.h ] && FLAGS="$FLAGS -DHAVE_SETCON";
+-			[ -e /usr/include/systemd/sd-daemon.h ] && FLAGS="$FLAGS -DHAVE_SYSTEMD";
++			#[ -e /usr/include/selinux/selinux.h ] && FLAGS="$FLAGS -DHAVE_SETCON";
++			#[ -e /usr/include/systemd/sd-daemon.h ] && FLAGS="$FLAGS -DHAVE_SYSTEMD";
+ 			echo $FLAGS;
+ 		;;
+ 	esac
diff --git a/package/iodine/Config.in b/package/iodine/Config.in
new file mode 100644
index 0000000000..6962cb8a39
--- /dev/null
+++ b/package/iodine/Config.in
@@ -0,0 +1,9 @@
+config BR2_PACKAGE_IODINE
+	bool "iodine"
+	select BR2_PACKAGE_ZLIB
+	help
+	  iodine lets you tunnel IPv4 data through a DNS server.
+	  This can be usable in different situations where
+	  internet access is firewalled, but DNS queries are allowed.
+
+	  http://code.kryo.se/iodine/
diff --git a/package/iodine/iodine.hash b/package/iodine/iodine.hash
new file mode 100644
index 0000000000..94eb5aa9cc
--- /dev/null
+++ b/package/iodine/iodine.hash
@@ -0,0 +1,2 @@
+# From http://code.kryo.se/iodine/
+md5	fdbf3b81cd69caf5230d76a8b039fd99	iodine-0.7.0.tar.gz
diff --git a/package/iodine/iodine.mk b/package/iodine/iodine.mk
new file mode 100644
index 0000000000..57deb9ece8
--- /dev/null
+++ b/package/iodine/iodine.mk
@@ -0,0 +1,21 @@
+################################################################################
+#
+# iodine
+#
+################################################################################
+
+IODINE_VERSION = 0.7.0
+IODINE_SITE = http://code.kryo.se/iodine
+IODINE_DEPENDENCIES = zlib
+IODINE_LICENSE = MIT
+IODINE_LICENSE_FILES = README
+
+define IODINE_BUILD_CMDS
+	$(MAKE) CC="$(TARGET_CC)" ARCH=$(BR2_ARCH) -C $(@D)
+endef
+
+define IODINE_INSTALL_TARGET_CMDS
+	$(MAKE) -C $(@D) install DESTDIR="$(TARGET_DIR)" prefix=/usr
+endef
+
+$(eval $(generic-package))
diff --git a/package/iproute2/iproute2.hash b/package/iproute2/iproute2.hash
index 35dc554e0e..40dd0a5b82 100644
--- a/package/iproute2/iproute2.hash
+++ b/package/iproute2/iproute2.hash
@@ -1,2 +1,2 @@
 # From https://kernel.org/pub/linux/utils/net/iproute2/sha256sums.asc
-sha256	d5a182154abd0749b1df7d1649115a32c65f559951477396203b1f514dbff1df	iproute2-3.18.0.tar.xz
+sha256	e2f9f8c36e166f2ba6c0e1e7a9ad84cdf7c1615b93df49dac44563d7b57fd7b0	iproute2-3.19.0.tar.xz
diff --git a/package/iproute2/iproute2.mk b/package/iproute2/iproute2.mk
index 0838463ed9..688ae97b38 100644
--- a/package/iproute2/iproute2.mk
+++ b/package/iproute2/iproute2.mk
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-IPROUTE2_VERSION = 3.18.0
+IPROUTE2_VERSION = 3.19.0
 IPROUTE2_SOURCE = iproute2-$(IPROUTE2_VERSION).tar.xz
 IPROUTE2_SITE = $(BR2_KERNEL_MIRROR)/linux/utils/net/iproute2
 IPROUTE2_DEPENDENCIES = host-bison host-flex
diff --git a/package/iputils/Config.in b/package/iputils/Config.in
index e9221ad704..fdddb52d24 100644
--- a/package/iputils/Config.in
+++ b/package/iputils/Config.in
@@ -2,9 +2,6 @@ config BR2_PACKAGE_IPUTILS
 	bool "iputils"
 	select BR2_PACKAGE_OPENSSL if BR2_INET_IPV6
 	depends on BR2_USE_MMU # fork()
-	# requires dn_comp (only available in since uclibc 0.9.33)
-	depends on !BR2_avr32
-	depends on !BR2_UCLIBC_VERSION_0_9_31
 	help
 	  This package is set of small useful utilities for Linux networking.
 	  It includes complete versions of ping, traceroute, etc.
diff --git a/package/kexec/kexec.hash b/package/kexec/kexec.hash
index ac37610ba1..fa2d8be875 100644
--- a/package/kexec/kexec.hash
+++ b/package/kexec/kexec.hash
@@ -1,2 +1,2 @@
 # From https://www.kernel.org/pub/linux/utils/kernel/kexec/sha256sums.asc
-sha256	f3abe96fa0793e63936725a4471429f070039a1e81e605deb378747194a50c47	kexec-tools-2.0.8.tar.xz
+sha256	8ae34a9ceb76350954e1e1e3ca9ab51da15862bd5f2fd14392208e60fb454f71	kexec-tools-2.0.9.tar.xz
diff --git a/package/kexec/kexec.mk b/package/kexec/kexec.mk
index a5df788fc6..d1584069ef 100644
--- a/package/kexec/kexec.mk
+++ b/package/kexec/kexec.mk
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-KEXEC_VERSION = 2.0.8
+KEXEC_VERSION = 2.0.9
 KEXEC_SOURCE = kexec-tools-$(KEXEC_VERSION).tar.xz
 KEXEC_SITE = $(BR2_KERNEL_MIRROR)/linux/utils/kernel/kexec
 KEXEC_LICENSE = GPLv2
diff --git a/package/keyutils/Config.in b/package/keyutils/Config.in
index bae8568bf6..fcb075fa91 100644
--- a/package/keyutils/Config.in
+++ b/package/keyutils/Config.in
@@ -1,6 +1,6 @@
 config BR2_PACKAGE_KEYUTILS
 	bool "keyutils"
-	depends on !BR2_avr32 && !BR2_microblaze
+	depends on !BR2_microblaze
 	depends on BR2_USE_MMU # fork()
 	help
 	  These tools are used to control the key management system
diff --git a/package/ktap/0001-Add-missing-stdarg.h-include.patch b/package/ktap/0001-Add-missing-stdarg.h-include.patch
deleted file mode 100644
index 9c4566f395..0000000000
--- a/package/ktap/0001-Add-missing-stdarg.h-include.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-From dc135d8f1f2a843cebd4da0d4b17828911e162a6 Mon Sep 17 00:00:00 2001
-From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-Date: Sat, 1 Nov 2014 18:53:47 +0100
-Subject: [PATCH] Add missing <stdarg.h> include
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Fixes:
-
-In file included from userspace/kp_bcwrite.c:32:0:
-userspace/kp_util.h:74:14: error: unknown type name ‘va_list’
-   ErrMsg em, va_list argp);
-              ^
-userspace/kp_util.h:76:42: error: unknown type name ‘va_list’
- const char *kp_sprintfv(const char *fmt, va_list argp);
-                                          ^
-In file included from userspace/kp_lex.c:28:0:
-userspace/kp_util.h:74:14: error: unknown type name ‘va_list’
-   ErrMsg em, va_list argp);
-              ^
-userspace/kp_util.h:76:42: error: unknown type name ‘va_list’
- const char *kp_sprintfv(const char *fmt, va_list argp);
-
-Submitted upstream: https://github.com/ktap/ktap/pull/77
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
----
- userspace/kp_util.h | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/userspace/kp_util.h b/userspace/kp_util.h
-index af0b221..5778dc4 100644
---- a/userspace/kp_util.h
-+++ b/userspace/kp_util.h
-@@ -1,6 +1,8 @@
- #ifndef __KTAP_UTIL_H__
- #define __KTAP_UTIL_H__
- 
-+#include <stdarg.h>
-+
- #include "../include/ktap_bc.h"
- #include "../include/ktap_err.h"
- 
--- 
-2.0.0
-
diff --git a/package/ktap/ktap.mk b/package/ktap/ktap.mk
index 50ad22260b..4a0e51cf96 100644
--- a/package/ktap/ktap.mk
+++ b/package/ktap/ktap.mk
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-KTAP_VERSION = 5b16b61deb6c8a99d71e5167706a5f5566135828
+KTAP_VERSION = eb66d40310c93dc82bc8eac889744c1ed1f01f7b
 KTAP_SITE = $(call github,ktap,ktap,$(KTAP_VERSION))
 KTAP_LICENSE = GPLv2
 KTAP_LICENSE_FILES = LICENSE-GPL
diff --git a/package/libaio/0002-avr32-support.patch b/package/libaio/0002-avr32-support.patch
deleted file mode 100644
index 57bb1f388c..0000000000
--- a/package/libaio/0002-avr32-support.patch
+++ /dev/null
@@ -1,122 +0,0 @@
-Add AVR32 support to libaio
-
-Taken from OpenWRT repository.
-
---- a/src/libaio.h
-+++ b/src/libaio.h
-@@ -107,6 +107,10 @@ typedef enum io_iocb_cmd {
- #  else
- #    error "neither mipseb nor mipsel?"
- #  endif
-+#elif defined(__avr32__) /* big endian, 32 bits */
-+#define PADDED(x, y)	unsigned y; x
-+#define PADDEDptr(x, y)	unsigned y; x
-+#define PADDEDul(x, y)	unsigned y; unsigned long x;
- #else
- #error	endian?
- #endif
---- /dev/null
-+++ b/src/syscall-avr32.h
-@@ -0,0 +1,91 @@
-+/*
-+ * Copyright (C) 2007 Atmel Corporation
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License version 2 as
-+ * published by the Free Software Foundation.
-+ */
-+
-+#define __NR_io_setup		197
-+#define __NR_io_destroy		198
-+#define __NR_io_getevents	199
-+#define __NR_io_submit		200
-+#define __NR_io_cancel		201
-+
-+#define io_syscall1(type,fname,sname,type1,arg1)			\
-+type fname(type1 arg1)							\
-+{									\
-+	register long __r12 __asm__("r12") = (long)arg1;		\
-+	register long __res_r12 __asm__("r12");				\
-+	register long __scno __asm__("r8") = __NR_##sname;		\
-+	__asm__ __volatile__("scall"					\
-+			     : "=r"(__res_r12)				\
-+			     : "0"(__r12), "r"(__scno)			\
-+			     : "memory");				\
-+	return (type) __res_r12;					\
-+}
-+
-+#define io_syscall2(type,fname,sname,type1,arg1,type2,arg2)		\
-+type fname(type1 arg1, type2 arg2)					\
-+{									\
-+	register long __r12 __asm__("r12") = (long)arg1;		\
-+	register long __r11 __asm__("r11") = (long)arg2;		\
-+	register long __res_r12 __asm__("r12");				\
-+	register long __scno __asm__("r8") = __NR_##sname;		\
-+	__asm__ __volatile__("scall"					\
-+			     : "=r"(__res_r12)				\
-+			     : "0"(__r12), "r"(__r11), "r"(__scno)	\
-+			     : "memory");				\
-+	return (type) __res_r12;					\
-+}
-+
-+#define io_syscall3(type,fname,sname,type1,arg1,type2,arg2,type3,arg3)	\
-+type fname(type1 arg1, type2 arg2, type3 arg3)				\
-+{									\
-+	register long __r12 __asm__("r12") = (long)arg1;		\
-+	register long __r11 __asm__("r11") = (long)arg2;		\
-+	register long __r10 __asm__("r10") = (long)arg3;		\
-+	register long __res_r12 __asm__("r12");				\
-+	register long __scno __asm__("r8") = __NR_##sname;		\
-+	__asm__ __volatile__("scall"					\
-+			     : "=r"(__res_r12)				\
-+			     : "0"(__r12), "r"(__r11), "r"(__r10),	\
-+			       "r"(__scno)				\
-+			     : "memory");				\
-+	return (type) __res_r12;					\
-+}
-+
-+#define io_syscall4(type,fname,sname,type1,arg1,type2,arg2,type3,arg3,type4,arg4) \
-+type fname(type1 arg1, type2 arg2, type3 arg3, type4 arg4)		\
-+{									\
-+	register long __r12 __asm__("r12") = (long)arg1;		\
-+	register long __r11 __asm__("r11") = (long)arg2;		\
-+	register long __r10 __asm__("r10") = (long)arg3;		\
-+	register long __r9 __asm__("r9") = (long)arg4;			\
-+	register long __res_r12 __asm__("r12");				\
-+	register long __scno __asm__("r8") = __NR_##sname;		\
-+	__asm__ __volatile__("scall"					\
-+			     : "=r"(__res_r12)				\
-+			     : "0"(__r12), "r"(__r11), "r"(__r10),	\
-+			       "r"(__r9), "r"(__scno)			\
-+			     : "memory");				\
-+	return (type) __res_r12;					\
-+}
-+
-+#define io_syscall5(type,fname,sname,type1,arg1,type2,arg2,type3,arg3,type4,arg4,type5,arg5) \
-+type fname(type1 arg1, type2 arg2, type3 arg3, type4 arg4, type5 arg5)	\
-+{									\
-+	register long __r12 __asm__("r12") = (long)arg1;		\
-+	register long __r11 __asm__("r11") = (long)arg2;		\
-+	register long __r10 __asm__("r10") = (long)arg3;		\
-+	register long __r9 __asm__("r9") = (long)arg4;			\
-+	register long __r5 __asm__("r5") = (long)arg5;			\
-+	register long __res_r12 __asm__("r12");				\
-+	register long __scno __asm__("r8") = __NR_##sname;		\
-+	__asm__ __volatile__("scall"					\
-+			     : "=r"(__res_r12)				\
-+			     : "0"(__r12), "r"(__r11), "r"(__r10),	\
-+			       "r"(__r9), "r"(__r5), "r"(__scno)	\
-+			     : "memory");				\
-+	return (type) __res_r12;					\
-+}
---- a/src/syscall.h
-+++ b/src/syscall.h
-@@ -32,6 +32,8 @@
- #include "syscall-parisc.h"
- #elif defined(__mips__)
- #include "syscall-mips.h"
-+#elif defined(__avr32__)
-+#include "syscall-avr32.h"
- #else
- #error "add syscall-arch.h"
- #endif
diff --git a/package/libaio/Config.in b/package/libaio/Config.in
index 833009a42a..622fd55a5e 100644
--- a/package/libaio/Config.in
+++ b/package/libaio/Config.in
@@ -1,7 +1,7 @@
 config BR2_PACKAGE_LIBAIO
 	bool "libaio"
 	depends on \
-		BR2_arm   || BR2_armeb || BR2_avr32  || BR2_i386    || \
+		BR2_arm   || BR2_armeb || BR2_i386   || \
 		BR2_m68k  || BR2_mips  || BR2_mipsel || BR2_powerpc || \
 		BR2_sparc || BR2_x86_64
 	help
diff --git a/package/libcap-ng/Config.in b/package/libcap-ng/Config.in
index da5b447726..d1663cdefc 100644
--- a/package/libcap-ng/Config.in
+++ b/package/libcap-ng/Config.in
@@ -1,6 +1,5 @@
 config BR2_PACKAGE_LIBCAP_NG
 	bool "libcap-ng"
-	depends on !BR2_avr32 # lacks TLS
 	help
 	  The libcap-ng library is intended to make programming with
 	  posix capabilities much easier than the traditional libcap
diff --git a/package/libcec/0001-no-psabi-warning.patch b/package/libcec/0001-no-psabi-warning.patch
deleted file mode 100644
index bd6557e077..0000000000
--- a/package/libcec/0001-no-psabi-warning.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-Do not use -Wno-psabi warning, not available on old g++
-
-AVR32 uses a very old g++ version, which does not implement the
--Wno-psabi warning flag. This patch simply removes this warning flag
-from the libcec build. It can be dropped if only gcc 4.5+ versions are
-supported in Buildroot.
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-
-Index: b/configure.ac
-===================================================================
---- a/configure.ac
-+++ b/configure.ac
-@@ -130,7 +130,7 @@
- use_udev="no"
- use_adapter_detection="yes"
- use_lockdev="no"
--SUPPRESS_MANGLING_WARNINGS=" -Wno-psabi"
-+SUPPRESS_MANGLING_WARNINGS=""
- case "${host}" in
-   *-*-linux*)
-     ## search for udev if pkg-config was found
diff --git a/package/libcurl/libcurl.hash b/package/libcurl/libcurl.hash
index 546ad3a6a3..3b00f0d379 100644
--- a/package/libcurl/libcurl.hash
+++ b/package/libcurl/libcurl.hash
@@ -1,2 +1,2 @@
 # Locally calculated after checking pgp signature
-sha256	899109eb3900fa6b8a2f995df7f449964292776a04763e94fae640700f883fba	curl-7.40.0.tar.bz2
+sha256	9f8b546bdc5c57d959151acae7ce6610fe929d82b8d0fc5b25a3a2296e5f8bea	curl-7.41.0.tar.bz2
diff --git a/package/libcurl/libcurl.mk b/package/libcurl/libcurl.mk
index 014c5e39e6..69cd8dff64 100644
--- a/package/libcurl/libcurl.mk
+++ b/package/libcurl/libcurl.mk
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-LIBCURL_VERSION = 7.40.0
+LIBCURL_VERSION = 7.41.0
 LIBCURL_SOURCE = curl-$(LIBCURL_VERSION).tar.bz2
 LIBCURL_SITE = http://curl.haxx.se/download
 LIBCURL_DEPENDENCIES = host-pkgconf \
diff --git a/package/libev/Config.in b/package/libev/Config.in
index 3d10cd70d8..db8d263df0 100644
--- a/package/libev/Config.in
+++ b/package/libev/Config.in
@@ -1,7 +1,7 @@
 config BR2_PACKAGE_LIBEV
 	bool "libev"
 	# needs memory fences
-	depends on !(BR2_avr32 || BR2_bfin)
+	depends on !BR2_bfin
 	help
 	  Userspace library for handling asynchronous notifications
 
diff --git a/package/libglib2/libglib2.mk b/package/libglib2/libglib2.mk
index fa909cdf1b..991c972827 100644
--- a/package/libglib2/libglib2.mk
+++ b/package/libglib2/libglib2.mk
@@ -49,7 +49,7 @@ LIBGLIB2_CONF_ENV = \
 	gt_cv_c_wchar_t=$(if $(BR2_USE_WCHAR),yes,no)
 
 # old uClibc versions don't provide qsort_r
-ifeq ($(BR2_UCLIBC_VERSION_0_9_31)$(BR2_TOOLCHAIN_EXTERNAL_UCLIBC)$(BR2_TOOLCHAIN_EXTERNAL_XILINX_MICROBLAZEEL_V2)$(BR2_TOOLCHAIN_EXTERNAL_XILINX_MICROBLAZEBE_V2),y)
+ifeq ($(BR2_TOOLCHAIN_EXTERNAL_UCLIBC)$(BR2_TOOLCHAIN_EXTERNAL_XILINX_MICROBLAZEEL_V2)$(BR2_TOOLCHAIN_EXTERNAL_XILINX_MICROBLAZEBE_V2),y)
 LIBGLIB2_CONF_ENV += glib_cv_have_qsort_r=no
 else
 LIBGLIB2_CONF_ENV += glib_cv_have_qsort_r=yes
diff --git a/package/libinput/libinput.hash b/package/libinput/libinput.hash
index fa246d423f..f2791e0945 100644
--- a/package/libinput/libinput.hash
+++ b/package/libinput/libinput.hash
@@ -1,2 +1,2 @@
-# From http://lists.freedesktop.org/archives/wayland-devel/2014-December/018750.html
-sha256 129f485afe5e4a9394641293991c97cb99f5f3338340d0d65b704ff463d1579e  libinput-0.7.0.tar.xz
+# From http://lists.freedesktop.org/archives/wayland-devel/2015-February/019827.html
+sha256  4ce001f80ff1a6bf547784d02125648bf8abe60db7d3d5e0020294d5215c1441  libinput-0.10.0.tar.xz
diff --git a/package/libinput/libinput.mk b/package/libinput/libinput.mk
index bf4537b9f6..5a793b0f72 100644
--- a/package/libinput/libinput.mk
+++ b/package/libinput/libinput.mk
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-LIBINPUT_VERSION = 0.7.0
+LIBINPUT_VERSION = 0.10.0
 LIBINPUT_SOURCE = libinput-$(LIBINPUT_VERSION).tar.xz
 LIBINPUT_SITE = http://www.freedesktop.org/software/libinput
 LIBINPUT_LICENSE = MIT
diff --git a/package/liblinear/liblinear.mk b/package/liblinear/liblinear.mk
index 38aaefca44..9eff62a17d 100644
--- a/package/liblinear/liblinear.mk
+++ b/package/liblinear/liblinear.mk
@@ -5,7 +5,7 @@
 ################################################################################
 
 LIBLINEAR_VERSION = 1.96
-LIBLINEAR_SITE = http://www.csie.ntu.edu.tw/~cjlin/liblinear/$(LIBLINEAR_VERSION_MAJOR)
+LIBLINEAR_SITE = http://www.csie.ntu.edu.tw/~cjlin/liblinear
 LIBLINEAR_LICENSE = BSD-3c
 LIBLINEAR_LICENSE_FILES = COPYING
 LIBLINEAR_INSTALL_STAGING = YES
diff --git a/package/libmad/0002-optimization.patch.avr32 b/package/libmad/0002-optimization.patch.avr32
deleted file mode 100644
index b74eea3225..0000000000
--- a/package/libmad/0002-optimization.patch.avr32
+++ /dev/null
@@ -1,2922 +0,0 @@
-diff --git a/bit.c b/bit.c
-index c2bfb24..262ce3a 100644
---- a/bit.c
-+++ b/bit.c
-@@ -25,12 +25,6 @@
- 
- # include "global.h"
- 
--# ifdef HAVE_LIMITS_H
--#  include <limits.h>
--# else
--#  define CHAR_BIT  8
--# endif
--
- # include "bit.h"
- 
- /*
-@@ -81,6 +75,8 @@ unsigned short const crc_table[256] = {
- 
- # define CRC_POLY  0x8005
- 
-+#ifndef FPM_AVR32
-+
- /*
-  * NAME:	bit->init()
-  * DESCRIPTION:	initialize bit pointer struct
-@@ -190,6 +186,8 @@ void mad_bit_write(struct mad_bitptr *bitptr, unsigned int len,
- }
- # endif
- 
-+#endif
-+
- /*
-  * NAME:	bit->crc()
-  * DESCRIPTION:	compute CRC-check word
-diff --git a/bit.h b/bit.h
-index 5a51570..70f550a 100644
---- a/bit.h
-+++ b/bit.h
-@@ -22,6 +22,92 @@
- # ifndef LIBMAD_BIT_H
- # define LIBMAD_BIT_H
- 
-+# ifdef HAVE_LIMITS_H
-+#  include <limits.h>
-+# else
-+#  define CHAR_BIT  8
-+# endif
-+
-+#ifdef FPM_AVR32
-+
-+struct mad_bitptr {
-+  unsigned char const *byte;
-+  unsigned int read_bytes;
-+};
-+
-+/*
-+ * NAME:	bit->init()
-+ * DESCRIPTION:	initialize bit pointer struct
-+ */
-+static void mad_bit_init(struct mad_bitptr *bitptr, unsigned char const *byte)
-+{
-+  bitptr->byte  = byte;
-+  bitptr->read_bytes  = 0;
-+}
-+
-+/*
-+ * NAME:	bit->length()
-+ * DESCRIPTION:	return number of bits between start and end points
-+ */
-+static unsigned int mad_bit_length(struct mad_bitptr const *begin,
-+			    struct mad_bitptr const *end)
-+{
-+  return (end->read_bytes - begin->read_bytes) +
-+    8 * (end->byte - begin->byte);
-+}
-+
-+/*
-+ * NAME:	bit->nextbyte()
-+ * DESCRIPTION:	return pointer to next unprocessed byte
-+ */
-+static unsigned char const *mad_bit_nextbyte(struct mad_bitptr const *bitptr)
-+{
-+  return bitptr->byte + ((bitptr->read_bytes + 0x7) >> 3);
-+}
-+
-+/*
-+ * NAME:	bit->skip()
-+ * DESCRIPTION:	advance bit pointer
-+ */
-+static void mad_bit_skip(struct mad_bitptr *bitptr, unsigned int len)
-+{
-+  bitptr->read_bytes += len;
-+  bitptr->byte += (bitptr->read_bytes >> 3);
-+  bitptr->read_bytes &=  0x7;
-+}
-+
-+/*
-+ * NAME:	bit->read()
-+ * DESCRIPTION:	read an arbitrary number of bits and return their UIMSBF value
-+ */
-+static unsigned long mad_bit_read(struct mad_bitptr *bitptr, unsigned int len)
-+{
-+  register unsigned long value;
-+
-+  if (!len)
-+    return 0;
-+
-+  value = *(unsigned int *)bitptr->byte;
-+
-+  value <<= bitptr->read_bytes;
-+  value >>= (32 - len);
-+
-+  bitptr->read_bytes += len;
-+  bitptr->byte += (bitptr->read_bytes >> 3);
-+  bitptr->read_bytes &=  0x7;
-+
-+  return value;
-+}
-+
-+# define mad_bit_finish(bitptr)		/* nothing */
-+
-+static unsigned long  mad_bit_bitsleft(struct mad_bitptr *bitptr)
-+{
-+  return (8 - (bitptr)->read_bytes);
-+}
-+
-+#else /* #ifdef FPM_AVR32 */
-+
- struct mad_bitptr {
-   unsigned char const *byte;
-   unsigned short cache;
-@@ -42,6 +128,8 @@ void mad_bit_skip(struct mad_bitptr *, unsigned int);
- unsigned long mad_bit_read(struct mad_bitptr *, unsigned int);
- void mad_bit_write(struct mad_bitptr *, unsigned int, unsigned long);
- 
-+#endif
-+
- unsigned short mad_bit_crc(struct mad_bitptr, unsigned int, unsigned short);
- 
- # endif
-diff --git a/configure.ac b/configure.ac
-index 9b79399..063cb9b 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -274,13 +274,14 @@ fi
- AC_MSG_CHECKING(for architecture-specific fixed-point math routines)
- AC_ARG_ENABLE(fpm, AC_HELP_STRING([--enable-fpm=ARCH],
- 		   [use ARCH-specific fixed-point math routines
--		    (one of: intel, arm, mips, sparc, ppc, 64bit, default)]),
-+		    (one of: intel, arm, avr32, mips, sparc, ppc, 64bit, default)]),
- [
-     case "$enableval" in
- 	yes)                             ;;
- 	no|default|approx) FPM="DEFAULT" ;;
- 	intel|i?86)        FPM="INTEL"   ;;
- 	arm)               FPM="ARM"     ;;
-+	avr32)             FPM="AVR32"   ;;
- 	mips)              FPM="MIPS"    ;;
- 	sparc)             FPM="SPARC"   ;;
- 	ppc|powerpc)       FPM="PPC"     ;;
-@@ -298,6 +299,7 @@ then
-     case "$host" in
- 	i?86-*)     FPM="INTEL"  ;;
- 	arm*-*)     FPM="ARM"    ;;
-+	avr32*-*)   FPM="AVR32"  ;;
- 	mips*-*)    FPM="MIPS"   ;;
- 	sparc*-*)   FPM="SPARC"  ;;
- 	powerpc*-*) FPM="PPC"    ;;
-@@ -343,6 +345,11 @@ then
- 	    ASO="$ASO -DASO_IMDCT"
- 	    ASO_OBJS="imdct_l_arm.lo"
- 	    ;;
-+	avr32*-*)
-+	    ASO="$ASO -DASO_INTERLEAVE2"
-+	    ASO="$ASO -DASO_ZEROCHECK"
-+	    ASO_OBJS="dct32_avr32.lo synth_avr32.lo imdct_avr32.lo"
-+	    ;;
- 	mips*-*)
- 	    ASO="$ASO -DASO_INTERLEAVE2"
- 	    ASO="$ASO -DASO_ZEROCHECK"
-diff --git a/configure b/configure
-index ee421cc..7a9f0c8 100755
---- a/configure
-+++ b/configure
-@@ -1048,7 +1048,7 @@ Optional Features:
-   --enable-speed          optimize for speed over accuracy
-   --enable-accuracy       optimize for accuracy over speed
-   --enable-fpm=ARCH       use ARCH-specific fixed-point math routines (one of:
--                          intel, arm, mips, sparc, ppc, 64bit, default)
-+                          intel, arm, avr32, mips, sparc, ppc, 64bit, default)
-   --enable-sso            use subband synthesis optimization
-   --disable-aso           disable architecture-specific optimizations
-   --enable-strict-iso     use strict ISO/IEC interpretations
-@@ -21477,6 +21477,7 @@ if test "${enable_fpm+set}" = set; then
- 	no|default|approx) FPM="DEFAULT" ;;
- 	intel|i?86)        FPM="INTEL"   ;;
- 	arm)               FPM="ARM"     ;;
-+	avr32)             FPM="AVR32"   ;;
- 	mips)              FPM="MIPS"    ;;
- 	sparc)             FPM="SPARC"   ;;
- 	ppc|powerpc)       FPM="PPC"     ;;
-@@ -21498,6 +21499,7 @@ then
-     case "$host" in
- 	i?86-*)     FPM="INTEL"  ;;
- 	arm*-*)     FPM="ARM"    ;;
-+	avr32*-*)   FPM="AVR32"  ;;
- 	mips*-*)    FPM="MIPS"   ;;
- 	sparc*-*)   FPM="SPARC"  ;;
- 	powerpc*-*) FPM="PPC"    ;;
-@@ -21554,6 +21556,11 @@ then
- 	    ASO="$ASO -DASO_IMDCT"
- 	    ASO_OBJS="imdct_l_arm.lo"
- 	    ;;
-+	avr32*-*)
-+	    ASO="$ASO -DASO_INTERLEAVE2"
-+	    ASO="$ASO -DASO_ZEROCHECK"
-+	    ASO_OBJS="dct32_avr32.lo synth_avr32.lo imdct_avr32.lo"
-+	    ;;
- 	mips*-*)
- 	    ASO="$ASO -DASO_INTERLEAVE2"
- 	    ASO="$ASO -DASO_ZEROCHECK"
-diff --git a/dct32_avr32.S b/dct32_avr32.S
-new file mode 100644
-index 0000000..7513340
---- /dev/null
-+++ b/dct32_avr32.S
-@@ -0,0 +1,780 @@
-+/*
-+   Optimized 32-point Discrete Cosine Transform (DCT)
-+   Copyright 2003-2006 Atmel Corporation.
-+
-+   Written by Ronny Pedersen, Atmel Norway
-+
-+   This program is free software; you can redistribute it and/or modify
-+   it under the terms of the GNU General Public License as published by
-+   the Free Software Foundation; either version 2 of the License, or
-+   (at your option) any later version.
-+
-+   This program is distributed in the hope that it will be useful,
-+   but WITHOUT ANY WARRANTY; without even the implied warranty of
-+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+   GNU General Public License for more details.
-+
-+   You should have received a copy of the GNU General Public License
-+   along with this program; if not, write to the Free Software
-+   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-+
-+#define	SHIFT	12
-+#define MAD_F_SCALEBITS 28
-+#define SLOTS 8
-+
-+#define MAD_F(x)	((x + (1 << 15)) >> 16)
-+
-+#  define costab1	MAD_F(0x7fd8878e)
-+#  define costab2	MAD_F(0x7f62368f)
-+#  define costab3	MAD_F(0x7e9d55fc)
-+#  define costab4	MAD_F(0x7d8a5f40)
-+#  define costab5	MAD_F(0x7c29fbee)
-+#  define costab6	MAD_F(0x7a7d055b)
-+#  define costab7	MAD_F(0x78848414)
-+#  define costab8	MAD_F(0x7641af3d)
-+#  define costab9	MAD_F(0x73b5ebd1)
-+#  define costab10	MAD_F(0x70e2cbc6)
-+#  define costab11	MAD_F(0x6dca0d14)
-+#  define costab12	MAD_F(0x6a6d98a4)
-+#  define costab13	MAD_F(0x66cf8120)
-+#  define costab14	MAD_F(0x62f201ac)
-+#  define costab15	MAD_F(0x5ed77c8a)
-+#  define costab16	MAD_F(0x5a82799a)
-+#  define costab17	MAD_F(0x55f5a4d2)
-+#  define costab18	MAD_F(0x5133cc94)
-+#  define costab19	MAD_F(0x4c3fdff4)
-+#  define costab20	MAD_F(0x471cece7)
-+#  define costab21	MAD_F(0x41ce1e65)
-+#  define costab22	MAD_F(0x3c56ba70)
-+#  define costab23	MAD_F(0x36ba2014)
-+#  define costab24	MAD_F(0x30fbc54d)
-+#  define costab25	MAD_F(0x2b1f34eb)
-+#  define costab26	MAD_F(0x25280c5e)
-+#  define costab27	MAD_F(0x1f19f97b)
-+#  define costab28	MAD_F(0x18f8b83c)
-+#  define costab29	MAD_F(0x12c8106f)
-+#  define costab30	MAD_F(0x0c8bd35e)
-+#  define costab31	MAD_F(0x0647d97c)
-+
-+
-+	.macro	butterfly2_in out1, out2, out3, out4, in, idx_in1, idx_in2, idx_in3, idx_in4, coeff1, coeff2, tmplo, tmphi
-+	mov	\tmplo, \coeff1
-+	ld.w	\out1, \in[\idx_in1 * 4]
-+	ld.w	\out2, \in[\idx_in2 * 4]
-+	ld.w	\out3, \in[\idx_in3 * 4]
-+	ld.w	\out4, \in[\idx_in4 * 4]
-+	sub	\tmphi, \out1, \out2
-+	add	\out1, \out2
-+	mulsatrndwh.w	\out2, \tmphi, \tmplo:b
-+
-+	sub	\tmphi, \out3, \out4
-+	mov	\tmplo, \coeff2
-+	add	\out3, \out4
-+	mulsatrndwh.w	\out4, \tmphi, \tmplo:b
-+	.endm
-+
-+	.macro	butterfly2	in1, in2, in3, in4, coeff1, tmplo, tmphi, tmp
-+	mov	\tmp, \coeff1
-+	sub	\tmphi, \in1, \in2
-+	add	\in1, \in2
-+	mulsatrndwh.w	\in2, \tmphi, \tmp:b
-+
-+	sub	\tmphi, \in3, \in4
-+	add	\in3, \in4
-+	mulsatrndwh.w	\in4, \tmphi, \tmp:b
-+	.endm
-+
-+	.macro	butterfly4	in1, in2, in3, in4, in5, in6, in7, in8, coeff1, tmplo, tmphi, tmp
-+	mov	\tmp, \coeff1
-+	sub	\tmphi, \in1, \in2
-+	add	\in1, \in2
-+	mulsatrndwh.w	\in2, \tmphi, \tmp:b
-+
-+	sub	\tmphi, \in3, \in4
-+	add	\in3, \in4
-+	mulsatrndwh.w	\in4, \tmphi, \tmp:b
-+
-+	sub	\tmphi, \in5, \in6
-+	add	\in5, \in6
-+	mulsatrndwh.w	\in6, \tmphi, \tmp:b
-+
-+	sub	\tmphi, \in7, \in8
-+	add	\in7, \in8
-+	mulsatrndwh.w	\in8, \tmphi, \tmp:b
-+	.endm
-+
-+	.macro	scale	reg
-+	.endm
-+
-+/*void dct32(	mad_fixed_t const in[32], unsigned int slot,
-+		mad_fixed_t lo[16][8], mad_fixed_t hi[16][8]) */
-+
-+	.global	dct32_avr32
-+dct32_avr32:
-+	stm	--sp, r0-r7, r9-r11, lr
-+
-+	sub	sp, 32*4
-+
-+/*	t0   = in[0]  + in[31];  t16  = MUL(in[0]  - in[31], costab1);
-+	t1   = in[15] + in[16];  t17  = MUL(in[15] - in[16], costab31); */
-+	butterfly2_in	r4/*t0*/, r5/*t16*/, r6/*t1*/, r7/*t17*/, r12, 0, 31, 15, 16, costab1, costab31, r10, r11
-+
-+/*	t41  = t16 + t17;
-+	t59  = MUL(t16 - t17, costab2);
-+	t33  =	 t0  + t1;
-+	t50  = MUL(t0  - t1,  costab2);*/
-+	butterfly2	r5/*t41*/, r7/*t59*/, r4/*t33*/, r6/*t50*/, costab2, r10, r11, lr
-+
-+/*	t2   = in[7]  + in[24];  t18  = MUL(in[7]  - in[24], costab15);
-+	t3   = in[8]  + in[23];  t19  = MUL(in[8]  - in[23], costab17); */
-+	butterfly2_in	r0/*t2*/, r1/*t18*/, r2/*t3*/, r3/*t19*/, r12, 7, 24, 8, 23, costab15, costab17, r10, r11
-+
-+/*	t42  = t18 + t19;
-+	t60  = MUL(t18 - t19, costab30);
-+	t34  = t2  + t3;
-+	t51  = MUL(t2  - t3,  costab30); */
-+	butterfly2	r1/*t42*/, r3/*t60*/, r0/*t34*/, r2/*t51*/, costab30, r10, r11, lr
-+
-+/*	t73  = t41 + t42;  t94  = MUL(t41 - t42, costab4);
-+	t83  = t59 + t60;  t106 = MUL(t59 - t60, costab4); */
-+
-+
-+/*	t69  = t33 + t34;  t89  = MUL(t33 - t34, costab4);
-+	t78  = t50 + t51;  t100 = MUL(t50 - t51, costab4); */
-+	butterfly4	r5/*t73*/, r1/*t94*/, r7/*t83*/, r3/*t106*/,r4/*t69*/, r0/*t89*/, r6/*t78*/, r2/*t100*/, costab4, r10, r11, lr
-+
-+/*	Store away the computed butterflies:
-+	sp[0-7] = t83, t78, t73, t69, t106, t100, t94, t89 */
-+	stm	sp, r0-r7
-+
-+
-+/*	t4   = in[3]  + in[28];  t20  = MUL(in[3]  - in[28], costab7);
-+	t5   = in[12] + in[19];  t21  = MUL(in[12] - in[19], costab25); */
-+	butterfly2_in	r4/*t4*/, r5/*t20*/, r6/*t5*/, r7/*t21*/, r12, 3, 28, 12, 19, costab7, costab25, r10, r11
-+
-+/*	t43  = t20 + t21;
-+	t61  = MUL(t20 - t21, costab14);
-+	t35  = t4  + t5;
-+	t52  = MUL(t4  - t5,  costab14); */
-+	butterfly2	r5/*t43*/, r7/*t61*/, r4/*t35*/, r6/*t52*/, costab14, r10, r11, lr
-+
-+/*	t6   = in[4]  + in[27];  t22  = MUL(in[4]  - in[27], costab9);
-+	t7   = in[11] + in[20];  t23  = MUL(in[11] - in[20], costab23); */
-+	butterfly2_in	r0/*t6*/, r1/*t22*/, r2/*t7*/, r3/*t23*/, r12, 4, 27, 11, 20, costab9, costab23, r10, r11
-+
-+/*	t44  = t22 + t23;
-+	t62  = MUL(t22 - t23, costab18);
-+	t36  = t6  + t7;
-+	t53  = MUL(t6  - t7,  costab18); */
-+	butterfly2	r1/*t44*/, r3/*t62*/, r0/*t36*/, r2/*t53*/, costab18, r10, r11, lr
-+
-+/*	t74  = t43 + t44;  t95  = MUL(t43 - t44, costab28);
-+	t84  = t61 + t62;  t107 = MUL(t61 - t62, costab28); */
-+
-+/*	t70  = t35 + t36;  t90  = MUL(t35 - t36, costab28);
-+	t79  = t52 + t53;  t101 = MUL(t52 - t53, costab28); */
-+	butterfly4	r5/*t74*/, r1/*t95*/, r7/*t84*/, r3/*t107*/, r4/*t70*/, r0/*t90*/, r6/*t79*/, r2/*t101*/, costab28, r10, r11, lr
-+
-+/*	Store away the computed butterflies:
-+	sp[8-15] = t84, t79, t74, t70, t107, t101, t95, t90 */
-+	sub	r10, sp, -8*4
-+	stm	r10, r0-r7
-+
-+
-+/*	t8   = in[1]  + in[30];  t24  = MUL(in[1]  - in[30], costab3);
-+	t9   = in[14] + in[17];  t25  = MUL(in[14] - in[17], costab29); */
-+	butterfly2_in	r4/*t8*/, r5/*t24*/, r6/*t9*/, r7/*t25*/, r12, 1, 30, 14, 17, costab3, costab29, r10, r11
-+
-+
-+/*	t45  = t24 + t25;
-+	t63  = MUL(t24 - t25, costab6);
-+	t37  = t8  + t9;
-+	t54  = MUL(t8  - t9,  costab6); */
-+	butterfly2	r5/*t45*/, r7/*t63*/, r4/*t37*/, r6/*t54*/, costab6, r10, r11, lr
-+
-+/*	t10  = in[6]  + in[25];  t26  = MUL(in[6]  - in[25], costab13);
-+	t11  = in[9]  + in[22];  t27  = MUL(in[9]  - in[22], costab19); */
-+	butterfly2_in	r0/*t10*/, r1/*t26*/, r2/*t11*/, r3/*t27*/, r12, 6, 25, 9, 22, costab13, costab19, r10, r11
-+
-+/*	t46  = t26 + t27;
-+	t64  = MUL(t26 - t27, costab26);
-+	t38  = t10 + t11;
-+	t55  = MUL(t10 - t11, costab26); */
-+	butterfly2	r1/*t46*/, r3/*t64*/, r0/*t38*/, r2/*t55*/, costab26, r10, r11, lr
-+
-+/*	t75  = t45 + t46;  t96  = MUL(t45 - t46, costab12);
-+	t85  = t63 + t64;  t108 = MUL(t63 - t64, costab12); */
-+
-+/*	t71  = t37 + t38;  t91  = MUL(t37 - t38, costab12);
-+	t80  = t54 + t55;  t102 = MUL(t54 - t55, costab12); */
-+	butterfly4	r5/*t75*/, r1/*t96*/, r7/*t85*/, r3/*t108*/, r4/*t71*/, r0/*t91*/, r6/*t80*/, r2/*t102*/, costab12, r10, r11, lr
-+
-+/*	Store away the computed butterflies:
-+	sp[16-23] = t85, t80, t75, t71, t108, t102, t96, t91 */
-+	sub	r10, sp, -16*4
-+	stm	r10, r0-r7
-+
-+/*	t12  = in[2]  + in[29];  t28  = MUL(in[2]  - in[29], costab5);
-+	t13  = in[13] + in[18];  t29  = MUL(in[13] - in[18], costab27); */
-+	butterfly2_in	r4/*t12*/, r5/*t28*/, r6/*t13*/, r7/*t29*/, r12, 2, 29, 13, 18, costab5, costab27, r10, r11
-+
-+/*	t47  = t28 + t29;
-+	t65  = MUL(t28 - t29, costab10);
-+	t39  = t12 + t13;
-+	t56  = MUL(t12 - t13, costab10); */
-+	butterfly2	r5/*t47*/, r7/*t65*/, r4/*t39*/, r6/*t56*/, costab10, r10, r11, lr
-+
-+/*	t14  = in[5]  + in[26];  t30  = MUL(in[5]  - in[26], costab11);
-+	t15  = in[10] + in[21];  t31  = MUL(in[10] - in[21], costab21);*/
-+	butterfly2_in	r0/*t14*/, r1/*t30*/, r2/*t15*/, r3/*t31*/, r12, 5, 26, 10, 21, costab11, costab21, r10, r11
-+
-+/*	t48  = t30 + t31;
-+	t66  = MUL(t30 - t31, costab22);
-+	t40  = t14 + t15;
-+	t57  = MUL(t14 - t15, costab22);*/
-+	butterfly2	r1/*t48*/, r3/*t66*/, r0/*t40*/, r2/*t57*/, costab22, r10, r11, lr
-+
-+/*	t76  = t47 + t48;  t97  = MUL(t47 - t48, costab20);
-+	t86  = t65 + t66;  t109 = MUL(t65 - t66, costab20);*/
-+
-+/*	t72  = t39 + t40;  t92  = MUL(t39 - t40, costab20);
-+	t81  = t56 + t57;  t103 = MUL(t56 - t57, costab20);*/
-+	butterfly4	r5/*t76*/, r1/*t97*/, r7/*t86*/, r3/*t109*/,r4/*t72*/, r0/*t92*/, r6/*t81*/, r2/*t103*/, costab20, r10, r11, lr
-+
-+/*	Store away the computed butterflies:
-+	sp[24-31] = t86, t81, t76, t72, t109, t103, t97, t92 */
-+	sub	r10, sp, -24*4
-+	stm	r10, r0-r7
-+
-+/*      We now have the following on the stack:
-+
-+	sp[0-7] = t83, t78, t73, t69, t106, t100, t94, t89
-+	sp[8-15] = t84, t79, t74, t70, t107, t101, t95, t90
-+	sp[16-23] = t85, t80, t75, t71, t108, t102, t96, t91
-+	sp[24-31] = t86, t81, t76, t72, t109, t103, t97, t92 	*/
-+
-+/*	Load 	{r0...r7} = { t72, t76, t71, t75, t70, t74, t69, t73 } */
-+	ld.d	r6, sp[2*4]
-+	ld.d	r4, sp[10*4]
-+	ld.d	r2, sp[18*4]
-+	ld.d	r0, sp[26*4]
-+
-+
-+/*	t113 = t69  + t70;
-+	t141 = MUL(t69 - t70, costab8);
-+
-+	t115 = t73  + t74;
-+	t144 = MUL(t73 - t74, costab8); */
-+	butterfly2	r6/*t113*/, r4/*t141*/, r7/*t115*/, r5/*t144*/, costab8, r10, r11, lr
-+
-+/*	t114 = t71  + t72;
-+	t142 = MUL(t71 - t72, costab24);
-+
-+	t116 = t75  + t76;
-+	t145 = MUL(t75 - t76, costab24); */
-+	butterfly2	r2/*t114*/, r0/*t142*/, r3/*t116*/, r1/*t145*/, costab24, r10, r11, lr
-+
-+
-+/*
-+	t191 = t113 + t114;
-+	t192 = MUL(t113 - t114, costab16)
-+
-+	t32  = t115 + t116;
-+	t177 = MUL(t115 - t116, costab16) ;
-+
-+	t143 = t141 + t142;
-+	t190 = MUL(t141 - t142, costab16) ;
-+
-+	t146 = t144 + t145;
-+	t184 = MUL(t144 - t145, costab16) ; */
-+	butterfly4	r6/*t191*/, r2/*t192*/, r7/*t32*/, r3/*t177*/, r4/*t143*/, r0/*190*/, r5/*t146*/, r1/*t184*/, costab16, r10, r11, lr
-+
-+/*	Store away the computed butterflies:
-+	sp[2-3] = t32, t191
-+	sp[10-11] = t146, t143
-+	sp[18-19] = t177, t192
-+	sp[26-27] = t184, t190 */
-+	st.d	sp[2*4] , r6
-+	st.d	sp[10*4], r4
-+	st.d	sp[18*4], r2
-+	st.d	sp[26*4], r0
-+
-+/*	Load 	{r0...r7} = { t81, t86, t80, t85, t79, t84, t78, t83 } */
-+	ld.d	r6, sp[0*4]
-+	ld.d	r4, sp[8*4]
-+	ld.d	r2, sp[16*4]
-+	ld.d	r0, sp[24*4]
-+
-+
-+/*	t118 = t78  + t79;
-+	t148 = MUL(t78 - t79, costab8);
-+
-+	t121 = t83  + t84;
-+	t152 = MUL(t83 - t84, costab8); */
-+	butterfly2	r6/*t118*/, r4/*t148*/, r7/*t121*/, r5/*t152*/, costab8, r10, r11, lr
-+
-+/*	t119 = t80  + t81;
-+	t149 = MUL(t80 - t81, costab24);
-+
-+	t122 = t85  + t86;
-+	t153 = MUL(t85 - t86, costab24); */
-+	butterfly2	r2/*t119*/, r0/*t149*/, r3/*t122*/, r1/*t153*/, costab24, r10, r11, lr
-+
-+
-+
-+/*	t58  = t118 + t119;
-+	t178 = MUL(t118 - t119, costab16) ;
-+
-+	t67  = t121 + t122;
-+	t179 = MUL(t121 - t122, costab16) ;
-+
-+	t150 = t148 + t149;
-+	t185 = MUL(t148 - t149, costab16) ;
-+
-+	t154 = t152 + t153;
-+	t186 = MUL(t152 - t153, costab16) ; */
-+	butterfly4	r6/*t58*/, r2/*t178*/, r7/*t67*/, r3/*t179*/, r4/*t150*/, r0/*185*/, r5/*t154*/, r1/*t186*/, costab16, r10, r11, lr
-+
-+/*	Store away the computed butterflies:
-+	sp[0-1] = t67, t58
-+	sp[8-9] = t154, t150
-+	sp[16-17] = t179, t178
-+	sp[24-25] = t186, t185 */
-+	st.d	sp[0*4] , r6
-+	st.d	sp[8*4], r4
-+	st.d	sp[16*4], r2
-+	st.d	sp[24*4], r0
-+
-+/*	Load 	{r0...r7} = { t92, t97, t91, t96, t90, t95, t89, t94 } */
-+	ld.d	r6, sp[6*4]
-+	ld.d	r4, sp[14*4]
-+	ld.d	r2, sp[22*4]
-+	ld.d	r0, sp[30*4]
-+
-+
-+/*	t125 = t89  + t90;
-+	t157 = MUL(t89 - t90, costab8);
-+
-+	t128 = t94  + t95;
-+	t161 = MUL(t94 - t95, costab8); */
-+	butterfly2	r6/*t125*/, r4/*t157*/, r7/*t128*/, r5/*t161*/, costab8, r10, r11, lr
-+
-+/*	t126 = t91  + t92;
-+	t158 = MUL(t91 - t92, costab24);
-+
-+	t129 = t96  + t97;
-+	t162 = MUL(t96 - t97, costab24); */
-+	butterfly2	r2/*t126*/, r0/*t158*/, r3/*t129*/, r1/*t162*/, costab24, r10, r11, lr
-+
-+
-+/*
-+	t93  = t125 + t126;
-+	t180 = MUL(t125 - t126, costab16) ;
-+
-+	t98  = t128 + t129;
-+	t181 = MUL(t128 - t129, costab16) ;
-+
-+	t159 = t157 + t158;
-+	t187 = MUL(t157 - t158, costab16) ;
-+
-+	t163 = t161 + t162;
-+	t188 = MUL(t161 - t162, costab16) ; */
-+	butterfly4	r6/*t93*/, r2/*t180*/, r7/*t98*/, r3/*t181*/, r4/*t159*/, r0/*187*/, r5/*t163*/, r1/*t188*/, costab16, r10, r11, lr
-+
-+
-+/*	Store away the computed butterflies:
-+	sp[6-7] = t98, t93
-+	sp[14-15] = t163, t159
-+	sp[22-23] = t181, t180
-+	sp[30-31] = t188, t187 */
-+	st.d	sp[6*4] , r6
-+	st.d	sp[14*4], r4
-+	st.d	sp[22*4], r2
-+	st.d	sp[30*4], r0
-+
-+/*	Load 	{r0...r7} = { t103, t109, t102, t108, t101, t107, t100, t106 } */
-+	ld.d	r6, sp[4*4]
-+	ld.d	r4, sp[12*4]
-+	ld.d	r2, sp[20*4]
-+	ld.d	r0, sp[28*4]
-+
-+
-+
-+/*	t132 = t100 + t101;
-+	t166 = MUL(t100 - t101, costab8);
-+
-+	t136 = t106 + t107;
-+	t171 = MUL(t106 - t107, costab8); */
-+	butterfly2	r6/*t132*/, r4/*t166*/, r7/*t136*/, r5/*t171*/, costab8, r10, r11, lr
-+
-+/*	t133 = t102 + t103;
-+	t167 = MUL(t102 - t103, costab24);
-+
-+	t137 = t108 + t109;
-+	t172 = MUL(t108 - t109, costab24);*/
-+	butterfly2	r2/*t133*/, r0/*t167*/, r3/*t137*/, r1/*t172*/, costab24, r10, r11, lr
-+
-+
-+/*	t104 = t132 + t133;
-+	t182 = MUL(t132 - t133, costab16) ;
-+
-+	t110 = t136 + t137;
-+	t183 = MUL(t136 - t137, costab16) ;
-+
-+	t168 = t166 + t167;
-+	t189 = MUL(t166 - t167, costab16) ;
-+
-+	t173 = t171 + t172;
-+	t208 = MUL(t171 - t172, costab16) ; */
-+	butterfly4	r6/*t104*/, r2/*t182*/, r7/*t110*/, r3/*t183*/, r4/*t168*/, r0/*189*/, r5/*t173*/, r1/*t208*/, costab16, r10, r11, lr
-+
-+/*	Store away the computed butterflies:
-+	sp[4-5] = t110, t104
-+	sp[12-13] = t173, t168
-+	sp[20-21] = t183, t182
-+	sp[28-29] = t208, t189 */
-+	st.d	sp[4*4] , r6
-+	st.d	sp[12*4], r4
-+	st.d	sp[20*4], r2
-+	st.d	sp[28*4], r0
-+
-+/*	Now we have the following stack
-+
-+	sp[0-7]   = t67,  t58 , t32,  t191, t110, t104, t98,  t93
-+	sp[8-15]  = t154, t150,	t146, t143, t173, t168,	t163, t159
-+	sp[16-23] = t179, t178,	t177, t192, t183, t182,	t181, t180
-+	sp[24-31] = t186, t185, t184, t190, t208, t189,	t188, t187
-+*/
-+
-+	/* Get slot, lo and hi from stack */
-+	lddsp	lr, sp[32*4 + 4] /*slot*/
-+	lddsp	r12, sp[32*4 + 8] /*lo*/
-+	lddsp	r11, sp[32*4 + 12] /*hi*/
-+
-+	add	r12, r12, lr << 2
-+	add	r11, r11, lr << 2
-+
-+
-+/*	t49  = -(t67 * 2) + t32;
-+	 hi[14][slot] = SHIFT(t32);
-+	t87  = -(t110 * 2) + t67;
-+	t138 = -(t173 * 2) + t110;
-+	t203 = -(t208 * 2) + t173; */
-+
-+	lddsp	r0/*t67*/, sp[0]
-+	lddsp	r1/*t32*/, sp[2*4]
-+	lddsp	r2/*t110*/, sp[4*4]
-+	lddsp	r3/*t173*/, sp[12*4]
-+	lddsp	r5/*t208*/, sp[28*4]
-+
-+	sub	r4/*t49*/, r1, r0 << 1
-+	scale	r1
-+	sub	r0/*t87*/, r0, r2 << 1
-+	st.w	r11[14*SLOTS*4], r1
-+	sub	r2/*t138*/, r2, r3 << 1
-+	sub	r1/*t203*/, r3, r5 << 1
-+
-+/*      Live:	r0 = t87, r1= t203, r2= t138, r4 = t49
-+	Free:	r3, r5, r6, r7, r8, r9, r10, lr  */
-+
-+/*	t68  = (t98 * 2) + t49;
-+	hi[12][slot] = SHIFT(-t49);
-+	t130 = -(t163 * 2) + t98;
-+	t201 = -(t188 * 2) + t163;
-+	t200 = -(t186 * 2) + t154;
-+	t111 = (t154 * 2) + t87;
-+	t77  = -(-(t87 * 2) - t68);
-+	t88  = (t146 * 2) + t77;
-+	t199 = -(t184 * 2) + t146;
-+	hi[ 8][slot] = SHIFT(-t77);
-+	hi[10][slot] = SHIFT(t68);*/
-+	lddsp	r3/*t98*/, sp[6*4]
-+	lddsp	r5/*t163*/, sp[14*4]
-+	lddsp	r6/*t188*/, sp[30*4]
-+	lddsp	r10/*t186*/, sp[24*4]
-+
-+	add	r7/*t68*/, r4, r3 << 1
-+	neg	r4
-+	scale	r4
-+	lddsp	r9/*t154*/, sp[8*4]
-+	sub	r3/*t130*/, r3, r5 << 1
-+	st.w	r11[12*SLOTS*4], r4
-+	sub	r8/*t201*/, r5, r6 << 1
-+	sub	r4/*t200*/, r9, r10 << 1
-+	lddsp	lr/*t146*/, sp[10*4]
-+	lddsp	r6/*t184*/, sp[26*4]
-+	add	r10/*t111*/, r0, r9 << 1
-+	add	r5/*t77*/,r7, r0 << 1
-+	add	r0/*t88*/, r5, lr << 1
-+	sub	r6/*t199*/, lr, r6 << 1
-+	neg	r5
-+	scale	r5
-+	scale	r7
-+	st.w	r11[8*SLOTS*4], r5
-+	st.w	r11[10*SLOTS*4], r7
-+
-+/*      Live:	r0 = t88, r1= t203, r2= t138, r3 = t130, r4 = t200,
-+		r6 = 199, r8 = t201, r10 = t111
-+	Free:	r5, r7, r9, lr    */
-+
-+
-+/*
-+	t123 = -(-(t138 * 2) - t111);
-+	t174 = (t183 * 2) + t138;
-+	t99  = -(t111 * 2) + t88;
-+	hi[ 6][slot] = SHIFT(t88); */
-+	lddsp	r5/*t183*/, sp[20*4]
-+
-+	add	r7/*t123*/, r10, r2 << 1
-+	sub	r10/*t99*/, r0, r10 << 1
-+	scale	r0
-+	add	r2/*t174*/, r2, r5 << 1
-+	st.w	r11[6*SLOTS*4], r0
-+
-+/*      Live:	r1 = t203, r2 = t174, r3 = t130, r4 = t200,
-+		r6 = t199, r7 = t123, r8 = t201, r10 = t99
-+	Free:	r0, r5, r9, lr    */
-+
-+/*	t112 = -(t130 * 2) + t99;
-+	t164 = (t181 * 2) + t130;
-+	hi[ 4][slot] = SHIFT(-t99); */
-+	lddsp	r0/*t181*/, sp[22*4]
-+
-+	sub	r5/*t112*/, r10, r3 << 1
-+	neg	r10
-+	scale	r10
-+	add	r3/*164*/, r3, r0 << 1
-+	st.w	r11[4*SLOTS*4], r10
-+
-+/*      Live:	r1 = t203, r2 = t174, r3 = t164, r4 = t200,
-+		r5 = t112, r6 = t199, r7 = t123, r8 = t201
-+	Free:	r0, r9, r10, lr    */
-+
-+
-+/*	t117 = -(-(t123 * 2) - t112);
-+	t139 = (t179 * 2) + t123;
-+	hi[ 2][slot] = SHIFT(t112); */
-+	lddsp	r0/*t179*/, sp[16*4]
-+
-+	add	r9/*t117*/, r5, r7 << 1
-+	scale	r5
-+	add	r7/*t139*/, r7, r0 << 1
-+	st.w	r11[2*SLOTS*4], r5
-+
-+/*      Live:	r1 = t203, r2 = t174, r3 = t164, r4 = t200,
-+		r6 = t199, r7 = t139, r8 = t201, r9 = t117
-+	Free:	r0, r5, r10, lr    */
-+
-+/*	t155 = -(t174 * 2) + t139;
-+	t204 = -(-(t203 * 2) - t174);
-+	t124 = (t177 * 2) + t117;
-+	hi[ 0][slot] = SHIFT(-t117);
-+	t131 = -(t139 * 2) + t124;
-+	lo[ 1][slot] = SHIFT(t124);*/
-+	lddsp	r0/*t177*/, sp[18*4]
-+
-+	sub	r5/*t155*/, r7, r2 << 1
-+	add	r2/*t204*/, r2, r1 << 1
-+	add	r0/*t124*/, r9, r0 << 1
-+	neg	r9
-+	scale	r9
-+	sub	r7/*t131*/, r0, r7 << 1
-+	scale	r0
-+	st.w	r11[0*SLOTS*4], r9
-+	st.w	r12[1*SLOTS*4], r0
-+
-+/*      Live:	r2 = t204, r3 = t164, r4 = t200,
-+		r5 = t155, r6 = t199, r7 = t131, r8 = t201
-+	Free:	r0, r1, r9, r10, lr    */
-+
-+/*	t140 = (t164 * 2) + t131;
-+	lo[ 3][slot] = SHIFT(-t131);
-+	t202 = -(-(t201 * 2) - t164);  */
-+	add	r0/*t140*/, r7, r3 << 1
-+	neg	r7
-+	scale	r7
-+	add	r3/*t202*/, r3, r8 << 1
-+	st.w	r12[3*SLOTS*4], r7
-+
-+/*      Live:	r0 = t140, r2 = t204, r3 = t202, r4 = t200,
-+		r5 = t155, r6 = t199
-+	Free:	r1, r7, r8, r9, r10, lr    */
-+
-+
-+/*	t147 = -(-(t155 * 2) - t140);
-+	lo[ 5][slot] = SHIFT(t140);
-+	t175 = -(t200 * 2) + t155;
-+	t156 = -(t199 * 2) + t147;
-+	lo[ 7][slot] = SHIFT(-t147); */
-+	add	r1/*t147*/, r0, r5 << 1
-+	scale	r0
-+	sub	r5/*t175*/, r5, r4 << 1
-+	sub	r4/*156*/, r1, r6 << 1
-+	neg	r1
-+	scale	r1
-+	st.w	r12[5*SLOTS*4], r0
-+	st.w	r12[7*SLOTS*4], r1
-+
-+/*      Live:	r2 = t204, r3 = t202,
-+		r4 = t156, r5 = t175
-+	Free:	r0, r1, r6, r7, r8, r9, r10, lr    */
-+
-+
-+/*	t205 = -(-(t204 * 2) - t175);
-+	t165 = -(t175 * 2) + t156;
-+	lo[ 9][slot] = SHIFT(t156);
-+	t176 = -(t202 * 2) + t165;
-+	lo[11][slot] = SHIFT(-t165);
-+	t206 = -(-(t205 * 2) - t176);
-+	lo[15][slot] = SHIFT(-t206)
-+	lo[13][slot] = SHIFT(t176) */
-+	add	r0/*t205*/, r5, r2 << 1
-+	sub	r1/*t165*/, r4, r5 << 1
-+	scale	r4
-+	sub	r3/*t176*/, r1, r3 << 1
-+	st.w	r12[9*SLOTS*4], r4
-+	neg	r1
-+	scale	r1
-+	add	r6/*t206*/, r3, r0 << 1
-+	neg	r6
-+	scale	r6
-+	scale	r3
-+	st.w	r12[11*SLOTS*4], r1
-+	st.w	r12[15*SLOTS*4], r6
-+	st.w	r12[13*SLOTS*4], r3
-+
-+/*	t193 = -((t190 * 2) - t143)
-+	hi[ 7][slot] = SHIFT(t143);
-+	lo[ 8][slot] = SHIFT(-t193);
-+	t82  = -(t104 * 2) + t58;
-+	hi[13][slot] = SHIFT(t58);
-+	t134 = -(t168 * 2) + t104;
-+	t196 = -(t189 * 2) + t168; */
-+
-+	lddsp	r0/*t190*/, sp[27*4]
-+	lddsp	r1/*t143*/, sp[11*4]
-+	lddsp	r2/*t104*/, sp[5*4]
-+	lddsp	r3/*t58*/, sp[1*4]
-+	lddsp	r4/*t168*/, sp[13*4]
-+	lddsp	r5/*t189*/, sp[29*4]
-+	sub	r0/*t193*/, r1, r0 << 1
-+	neg	r0
-+	scale	r1
-+	scale	r0
-+	st.w	r11[7*SLOTS*4], r1
-+	st.w	r12[8*SLOTS*4], r0
-+	sub	r0/*t82*/, r3, r2 << 1
-+	scale	r3
-+	sub	r2/*t134*/, r2, r4 << 1
-+	sub	r4/*t196*/, r4, r5 << 1
-+	st.w	r11[13*SLOTS*4], r3
-+
-+/*      Live:	r0 = t82, r2 = t134,
-+		r4 = t196
-+	Free:	r1, r3, r5, r6, r7, r8, r9, r10, lr    */
-+
-+
-+
-+/*
-+
-+	t207 = -(t185 * 2) + t150;
-+	t105 = (t150 * 2) + t82;
-+	hi[ 9][slot] = SHIFT(-t82);
-+	t120 = -(-(t134 * 2) - t105);
-+	hi[ 5][slot] = SHIFT(t105);
-+	t169 = (t182 * 2) + t134;
-+
-+	t135 = (t178 * 2) + t120;
-+	hi[ 1][slot] = SHIFT(-t120);
-+	t197 = -(-(t196 * 2) - t169);
-+	t151 = -(t169 * 2) + t135;
-+	lo[ 2][slot] = SHIFT(t135); */
-+	lddsp	r1/*t185*/, sp[25*4]
-+	lddsp	r3/*t150*/, sp[9*4]
-+	lddsp	r5/*t182*/, sp[21*4]
-+	lddsp	r8/*t178*/, sp[17*4]
-+
-+	sub	r6/*t207*/, r3, r1 << 1
-+	add	r3/*t105*/, r0, r3 << 1
-+	neg	r0
-+	scale	r0
-+	add	r7/*t120*/, r3, r2 << 1
-+	scale	r3
-+	st.w	r11[9*SLOTS*4], r0
-+	st.w	r11[5*SLOTS*4], r3
-+	add	r2/*t169*/, r2, r5 << 1
-+	add	r8/*t135*/, r7, r8 << 1
-+	neg	r7
-+	scale	r7
-+	add	r4/*t197*/, r2, r4 << 1
-+	sub	r2/*t151*/, r8, r2 << 1
-+	scale	r8
-+	st.w	r11[1*SLOTS*4], r7
-+	st.w	r12[2*SLOTS*4], r8
-+
-+/*      Live:	r2 = t151, r4 = t197, r6 = t207
-+
-+	Free:	r0, r1, r3, r5, r7, r8, r9, r10, lr    */
-+
-+
-+
-+/*	t170 = -(t207 * 2) + t151;
-+	lo[ 6][slot] = SHIFT(-t151);
-+
-+	t198 = -(-(t197 * 2) - t170);
-+	lo[10][slot] = SHIFT(t170);
-+	lo[14][slot] = SHIFT(-t198);
-+
-+	t127 = -(t159 * 2) + t93;
-+	hi[11][slot] = SHIFT(t93);
-+	t194 = -(t187 * 2) + t159;   */
-+	lddsp	r0/*t159*/, sp[15*4]
-+	lddsp	r1/*t93*/, sp[7*4]
-+	lddsp	r3/*t187*/, sp[31*4]
-+	sub	r5/*t170*/, r2, r6 << 1
-+	neg	r2
-+	scale	r2
-+	add	r4/*t198*/,r5, r4 << 1
-+	neg	r4
-+	scale	r5
-+	scale	r4
-+	st.w	r12[6*SLOTS*4], r2
-+	st.w	r12[10*SLOTS*4], r5
-+	st.w	r12[14*SLOTS*4], r4
-+	sub	r7/*t127*/, r1, r0 << 1
-+	scale	r1
-+	sub	r0/*t194*/, r0, r3 << 1
-+	st.w	r11[11*SLOTS*4], r1
-+
-+
-+/*      Live:	r0 = t194, r7 = t127
-+	Free:	r1, r2, r3, r4, r6, r5, r8, r9, r10, lr    */
-+
-+/*	t160 = (t180 * 2) + t127;
-+	hi[ 3][slot] = SHIFT(-t127);
-+	t195 = -(-(t194 * 2) - t160);
-+	lo[ 4][slot] = SHIFT(t160);
-+	lo[12][slot] = SHIFT(-t195);
-+
-+	hi[15][slot] = SHIFT(t191);
-+	lo[ 0][slot] = SHIFT(t192); */
-+	lddsp	r1/*t180*/, sp[23*4]
-+	lddsp	r2/*t191*/, sp[3*4]
-+	lddsp	r3/*t192*/, sp[19*4]
-+	add	r4/*t160*/, r7, r1 << 1
-+	neg	r7
-+	scale	r7
-+	add	r6/*t195*/, r4, r0 << 1
-+	scale	r4
-+	neg	r6
-+	scale	r6
-+	st.w	r11[3*SLOTS*4], r7
-+	st.w	r12[4*SLOTS*4], r4
-+	st.w	r12[12*SLOTS*4], r6
-+	scale	r2
-+	scale	r3
-+	st.w	r11[15*SLOTS*4], r2
-+	st.w	r12[0*SLOTS*4], r3
-+
-+	sub	sp, -32*4
-+	ldm	sp++,r0-r7, r9-r11, pc
-diff --git a/fixed.h b/fixed.h
-index 4b58abf..0a1350a 100644
---- a/fixed.h
-+++ b/fixed.h
-@@ -237,6 +237,46 @@ mad_fixed_t mad_f_mul_inline(mad_fixed_t x, mad_fixed_t y)
- #   define MAD_F_SCALEBITS  MAD_F_FRACBITS
- #  endif
- 
-+/* --- AVR32 ----------------------------------------------------------------- */
-+
-+# elif defined(FPM_AVR32)
-+
-+typedef   signed short mad_coeff_t;
-+
-+struct DWstruct {int high, low;};
-+
-+typedef union {
-+  struct DWstruct s;
-+  long long ll;
-+} DWunion;
-+
-+#  define MAD_F_MLX(hi, lo, x, y)  \
-+  { register DWunion __res; \
-+    __res.ll = (long long)x * (long long)y; \
-+    /*    asm ("muls.d\t%0, %1, %2" : "=r" (__res.ll) : "r" (x), "r" (y));*/ \
-+    hi = __res.s.high; \
-+    lo = __res.s.low; }
-+
-+#  define MAD_F_MLA(hi, lo, x, y)  \
-+  { register DWunion __res; \
-+    __res.s.high = hi; \
-+    __res.s.low = lo; \
-+    __res.ll += (long long)x * (long long)y; \
-+/*  asm ("macs.d\t%0, %1, %2" : "+r" (__res.ll) : "r" (x), "r" (y));*/ \
-+    hi = __res.s.high; \
-+    lo = __res.s.low; }
-+
-+
-+#  define MAD_F_MLN(hi, lo)  \
-+    asm ("neg	%0\n"  \
-+	 "acr	%1\n"  \
-+         "neg   %1"    \
-+	 : "+r" (lo), "+r" (hi) \
-+	 :: "cc")
-+
-+
-+#  define MAD_F_SCALEBITS  MAD_F_FRACBITS
-+
- /* --- ARM ----------------------------------------------------------------- */
- 
- # elif defined(FPM_ARM)
-@@ -433,6 +473,8 @@ mad_fixed_t mad_f_mul_inline(mad_fixed_t x, mad_fixed_t y)
-  *
-  * Pre-rounding is required to stay within the limits of compliance.
-  */
-+typedef   signed int mad_coeff_t;
-+
- #  if defined(OPT_SPEED)
- #   define mad_f_mul(x, y)	(((x) >> 12) * ((y) >> 16))
- #  else
-diff --git a/imdct_avr32.S b/imdct_avr32.S
-new file mode 100644
-index 0000000..d0ee6b4
---- /dev/null
-+++ b/imdct_avr32.S
-@@ -0,0 +1,789 @@
-+/*
-+   Optimized 36-point Inverse Modified Cosine Transform (IMDCT)
-+   Copyright 2003-2006 Atmel Corporation.
-+
-+   Written by Ronny Pedersen, Atmel Norway
-+
-+   This program is free software; you can redistribute it and/or modify
-+   it under the terms of the GNU General Public License as published by
-+   the Free Software Foundation; either version 2 of the License, or
-+   (at your option) any later version.
-+
-+   This program is distributed in the hope that it will be useful,
-+   but WITHOUT ANY WARRANTY; without even the implied warranty of
-+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+   GNU General Public License for more details.
-+
-+   You should have received a copy of the GNU General Public License
-+   along with this program; if not, write to the Free Software
-+   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-+
-+#define MAD_F(x) ((x + (1 << 13)) >> 14)
-+
-+	.public	imdct36_avr32
-+
-+/*
-+	void imdct36(mad_fixed_t const x[18], mad_fixed_t y[36])
-+	{
-+	mad_fixed_t tmp[18];
-+	int i;
-+*/
-+/* DCT-IV */
-+imdct36_avr32:
-+	pushm	r0-r7,r11,lr
-+	sub	sp, 4*18
-+/*
-+	{
-+	mad_fixed_t tmp2[18];
-+	int i;
-+
-+	/* scale[i] = 2 * cos(PI * (2 * i + 1) / (4 * 18)) */
-+/*
-+	static mad_fixed_t const scale[18] = {
-+	MAD_F(0x1ff833fa), MAD_F(0x1fb9ea93), MAD_F(0x1f3dd120),
-+	MAD_F(0x1e84d969), MAD_F(0x1d906bcf), MAD_F(0x1c62648b),
-+	MAD_F(0x1afd100f), MAD_F(0x1963268b), MAD_F(0x1797c6a4),
-+	MAD_F(0x159e6f5b), MAD_F(0x137af940), MAD_F(0x11318ef3),
-+	MAD_F(0x0ec6a507), MAD_F(0x0c3ef153), MAD_F(0x099f61c5),
-+	MAD_F(0x06ed12c5), MAD_F(0x042d4544), MAD_F(0x0165547c)
-+	};
-+*/
-+
-+  /* scaling */
-+
-+/*
-+	for (i = 0; i < 18; i += 3) {
-+		tmp2[i + 0] = mad_f_mul(x[i + 0], scale[i + 0]);
-+		tmp2[i + 1] = mad_f_mul(x[i + 1], scale[i + 1]);
-+		tmp2[i + 2] = mad_f_mul(x[i + 2], scale[i + 2]);
-+	  }
-+*/
-+	/* even input butterfly */
-+
-+/*
-+	for (i = 0; i < 9; i += 3) {
-+		tmp3[i + 0] = tmp2[i + 0] + tmp2[18 - (i + 0) - 1];
-+		tmp3[i + 1] = tmp2[i + 1] + tmp2[18 - (i + 1) - 1];
-+		tmp3[i + 2] = tmp2[i + 2] + tmp2[18 - (i + 2) - 1];
-+	  }
-+	for (i = 0; i < 9; i += 3) {
-+		tmp4[i + 0] = tmp2[i + 0] - tmp2[18 - (i + 0) - 1];
-+		tmp4[i + 1] = tmp2[i + 1] - tmp2[18 - (i + 1) - 1];
-+		tmp4[i + 2] = tmp2[i + 2] - tmp2[18 - (i + 2) - 1];
-+	  }
-+*/
-+
-+	ld.d	r8, r12[0]				/*r8 = x[1], r9 = x[0]*/
-+	ld.d	r0, pc[scale_dctIV - .]			/*r0 = {scale[2], scale[3]}, r1 = { scale[0], scale[1] }*/
-+	ld.d	r2, r12[2*4]				/*r2 = x[3], r3 = x[2]*/
-+	ld.d	r4, pc[scale_dctIV - . + 14*2]		/*r4 = {scale[16], scale[17]}, r5 = { scale[14], scale[15] }*/
-+	mulsatrndwh.w	r9/*tmp2[0]*/, r9, r1:t		/*tmp2[0] = mad_f_mul(x[0], scale[0]) */
-+	ld.d	r6, r12[16*4]				/*r6 = x[17], r7 = x[16]*/
-+	mulsatrndwh.w	r8/*tmp2[1]*/, r8, r1:b		/*tmp2[1] = mad_f_mul(x[1], scale[1]) */
-+	mulsatrndwh.w	r3/*tmp2[2]*/, r3, r0:t		/*tmp2[2] = mad_f_mul(x[2], scale[2]) */
-+	mulsatrndwh.w	r2/*tmp2[3]*/, r2, r0:b		/*tmp2[3] = mad_f_mul(x[3], scale[3]) */
-+	ld.d	r0, r12[14*4]				/*r0 = x[15], r1 = x[14]*/
-+	mulsatrndwh.w	r7/*tmp2[16]*/, r7, r4:t	/*tmp2[16] = mad_f_mul(x[16], scale[16]) */
-+	mulsatrndwh.w	r6/*tmp2[17]*/, r6, r4:b	/*tmp2[17] = mad_f_mul(x[17], scale[17]) */
-+	mulsatrndwh.w	r1/*tmp2[14]*/, r1, r5:t	/*tmp2[14] = mad_f_mul(x[14], scale[14]) */
-+	mulsatrndwh.w	r0/*tmp2[15]*/, r0, r5:b	/*tmp2[15] = mad_f_mul(x[15], scale[15]) */
-+
-+	ld.d	r4, r12[4*4]				/*r4 = x[5], r5 = x[4]*/
-+
-+	sub		lr/*tmp4[0]*/, r9, r6
-+	add		r6/*tmp3[0]*/, r9, r6
-+	sub		r10/*tmp4[1]*/, r8, r7
-+	add		r7/*tmp3[1]*/, r8, r7
-+	sub		r9/*tmp4[2]*/, r3, r0
-+	add		r0/*tmp3[2]*/, r3, r0
-+	sub		r8/*tmp4[3]*/, r2, r1
-+	add		r1/*tmp3[3]*/, r2, r1
-+
-+	ld.d	r2, pc[scale_dctIV - . + 4*2]		/*r2 = {scale[6], scale[7]}, r3 = { scale[4], scale[5] }*/
-+
-+	stm		--sp, r8-r10, lr		/*sp[0] = tmp4[0],sp[1] = tmp4[1],
-+							  sp[2] = tmp4[2],sp[3] = tmp4[3] */
-+
-+	/* Registers used:	r0 = tmp3[2], r1 = tmp3[3], r6 = tmp3[0], r7 = tmp3[1], r12 = x
-+	   Free	registers:	r2-r5, r8-r11, lr
-+	*/
-+	ld.d	r8, r12[6*4]				/*r8 = x[7], r9 = x[6]*/
-+	ld.d	r10, pc[scale_dctIV - . + 10*2]		/*r10 = {scale[12], scale[13]}, r11 = { scale[10], scale[11] }*/
-+	mulsatrndwh.w	r5/*tmp2[4]*/, r5, r3:t		/*tmp2[4] = mad_f_mul(x[4], scale[4]) */
-+	mulsatrndwh.w	r4/*tmp2[5]*/, r4, r3:b		/*tmp2[5] = mad_f_mul(x[5], scale[5]) */
-+	mulsatrndwh.w	r9/*tmp2[6]*/, r9, r2:t		/*tmp2[6] = mad_f_mul(x[6], scale[6]) */
-+	mulsatrndwh.w	r8/*tmp2[7]*/, r8, r2:b		/*tmp2[7] = mad_f_mul(x[7], scale[7]) */
-+
-+	ld.d	r2, r12[12*4]				/*r2 = x[13], r3 = x[12]*/
-+	ld.w	lr, r12[11*4]				/*lr = x[11] */
-+	mulsatrndwh.w	r3/*tmp2[12]*/, r3, r10:t	/*tmp2[12] = mad_f_mul(x[12], scale[12]) */
-+	mulsatrndwh.w	r2/*tmp2[13]*/, r2, r10:b	/*tmp2[13] = mad_f_mul(x[13], scale[13]) */
-+	ld.w	r10, r12[10*4]				/*r10 = x[10] */
-+	mulsatrndwh.w	lr/*tmp2[11]*/, lr, r11:b	/*tmp2[11] = mad_f_mul(x[11], scale[11]) */
-+	mulsatrndwh.w	r10/*tmp2[10]*/, r10, r11:t	/*tmp2[10] = mad_f_mul(x[10], scale[10]) */
-+
-+	sub	r11/*tmp4[4]*/, r5, r2
-+	add	r2/*tmp3[4]*/, r5, r2
-+	sub	r5/*tmp4[5]*/, r4, r3
-+	add	r3/*tmp3[5]*/, r4, r3
-+	sub	r4/*tmp4[6]*/, r9, lr
-+	add	lr/*tmp3[6]*/, r9, lr
-+	sub	r9/*tmp4[7]*/, r8, r10
-+	add	r10/*tmp3[7]*/, r8, r10
-+	lddpc	r8, scale_dctIV + 8*2			/*r8 = {scale[8], scale[9]} */
-+
-+	stm	--sp, r4, r5, r9, r11			/*sp[0] = tmp4[4],sp[1] = tmp4[7],
-+							  sp[2] = tmp4[5],sp[3] = tmp4[6] */
-+	ld.d	r4, r12[8*4]				/*r4 = x[9], r5 = x[8]*/
-+	mulsatrndwh.w	r5/*tmp2[8]*/, r5, r8:t		/*tmp2[8] = mad_f_mul(x[8], scale[8]) */
-+	mulsatrndwh.w	r4/*tmp2[9]*/, r4, r8:b		/*tmp2[9] = mad_f_mul(x[9], scale[9]) */
-+	sub		r9/*tmp4[8]*/, r5, r4
-+	add		r5/*tmp3[8]*/, r5, r4
-+
-+	st.w	--sp, r9				/* sp[0] = tmp4[8] */
-+
-+	/* Registers used:
-+
-+		r0=tmp3[2], r1=tmp3[3], r2=tmp3[4], r3=tmp3[5], r5=tmp3[8], r6 = tmp3[0],
-+		r7 = tmp3[1], r10=tmp3[7], lr=tmp3[6]
-+	   Free registers:
-+		r4, r8, r9, r11, r12
-+	*/
-+
-+
-+  /* SDCT-II */
-+/*
-+
-+	{
-+	mad_fixed_t tmp3[9];
-+	int i;
-+*/
-+	/* scale[i] = 2 * cos(PI * (2 * i + 1) / (2 * 18)) */
-+/*
-+	static mad_fixed_t const scale[9] = {
-+	MAD_F(0x1fe0d3b4), MAD_F(0x1ee8dd47), MAD_F(0x1d007930),
-+	MAD_F(0x1a367e59), MAD_F(0x16a09e66), MAD_F(0x125abcf8),
-+	MAD_F(0x0d8616bc), MAD_F(0x08483ee1), MAD_F(0x02c9fad7)
-+	};
-+*/
-+  /* divide the 18-point SDCT-II into two 9-point SDCT-IIs */
-+
-+
-+  /* fastdct */
-+
-+/*
-+	{
-+	mad_fixed_t a0,  a1,  a2,  a3,  a4,  a5,  a6,  a7,  a8,  a9,  a10, a11, a12;
-+	mad_fixed_t a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25;
-+	mad_fixed_t m0,  m1,  m2,  m3,  m4,  m5,  m6,  m7;
-+*/
-+//	  enum {
-+//	    c0 =  MAD_F(0x1f838b8d),  /* 2 * cos( 1 * PI / 18) */
-+//	    c1 =  MAD_F(0x1bb67ae8),  /* 2 * cos( 3 * PI / 18) */
-+//	    c2 =  MAD_F(0x18836fa3),  /* 2 * cos( 4 * PI / 18) */
-+//	    c3 =  MAD_F(0x1491b752),  /* 2 * cos( 5 * PI / 18) */
-+//	    c4 =  MAD_F(0x0af1d43a),  /* 2 * cos( 7 * PI / 18) */
-+//	    c5 =  MAD_F(0x058e86a0),  /* 2 * cos( 8 * PI / 18) */
-+//	    c6 = -MAD_F(0x1e11f642)   /* 2 * cos(16 * PI / 18) */
-+//	  };
-+
-+/*
-+	a2 = tmp3[6] + tmp3[2];
-+	a6 = tmp3[8] + tmp3[0];
-+	a11 = a2  - a6;
-+	m5 = mad_f_mul(a11, -c6) ;
-+	a4 = tmp3[1] + tmp3[7];
-+
-+	a18 =     tmp3[4] + a4;
-+	a19 = -2 * tmp3[4] + a4;
-+
-+	a0 = tmp3[3] + tmp3[5];
-+
-+*/
-+	add	r11/*a4*/, r7, r10
-+	add	r12/*a18*/, r2, r11
-+	sub	r11/*a19*/, r11, r2<<1
-+
-+	add	r4/*a2*/, lr, r0
-+	add	r8/*a6*/, r5, r6
-+	sub	r9/*a11*/, r4, r8
-+
-+	st.d	--sp, r0	/* sp[0] = tmp3[3], sp1[1] = tmp3[2]*/
-+
-+	mov	r2, MAD_F(0x1e11f642)
-+	mulsatrndwh.w	r9/*m5*/, r9, r2:b
-+
-+	add	r2/*a0*/, r1, r3
-+
-+	/* Registers used:
-+
-+		r2=a0, r3=tmp3[5], r4=a2, r5=tmp3[8], r6 = tmp3[0],
-+		r7 = tmp3[1], r8=a6, r10=tmp3[7], r9=m5, r11=a19, r12=a18,lr=tmp3[6]
-+	   Free registers:
-+		r0, r1
-+	*/
-+
-+/*
-+	a8  = a0  + a2;
-+	a12 = a8  + a6;
-+	a10 = a0  - a6;
-+	a9  = a0  - a2;
-+	m7 = mad_f_mul(a9,  -c2) ;
-+	m6 = mad_f_mul(a10, -c5) ;
-+*/
-+
-+	add	r0/*a8*/, r2, r4
-+	add	r0/*a12*/, r8
-+	rsub	r8/*a10*/, r2
-+	sub	r2/*a9*/, r4
-+	mov	r1, -MAD_F(0x18836fa3)
-+	mulsatrndwh.w	r2/*m7*/, r2, r1:b
-+	mov	r1, -MAD_F(0x058e86a0)
-+	mulsatrndwh.w	r8/*m6*/, r8, r1:b
-+
-+	/* Registers used:
-+
-+		r0=a12, r2=m7, r3=tmp3[5], r5=tmp3[8], r6 = tmp3[0],
-+		r7 = tmp3[1], r8=m6, r10=tmp3[7], r9=m5, r11=a19, r12=a18,lr=tmp3[6]
-+	   Free registers:
-+		r1, r4
-+	*/
-+
-+
-+/*
-+	a21 = -a19 - (m5 << 1);
-+	tmp[ 8] = a21 - (m6 << 1);
-+
-+	a20 = a19 - (m5 << 1);
-+	tmp[ 4] = (m7 << 1)  + a20;
-+	a22 = -a19 + (m6 << 1);
-+	tmp[16] = a22 + (m7 << 1);
-+	tmp[ 0] = a18 + a12;
-+	tmp[12] = a12 - 2 * a18;
-+*/
-+	add	r1/*a21*/, r11, r9 << 1
-+	neg	r1
-+	sub	r1/*tmp[8]*/, r1, r8 << 1
-+	stdsp	sp[4*11/*tmp3[..] on the stack*/ + 8*4], r1
-+	sub	r4/*a20*/, r11, r9 << 1
-+	add	r4/*tmp[4]*/, r4, r2 << 1
-+	stdsp	sp[4*11/*tmp3[..] on the stack*/ + 4*4], r4
-+	neg	r11
-+	add	r1/*a22*/, r11, r8 << 1
-+	add	r1/*tmp[16]*/, r1, r2 << 1
-+	stdsp	sp[4*11/*tmp3[..] on the stack*/ + 16*4], r1
-+	add	r4, r12, r0
-+	sub	r1, r0, r12 << 1
-+	stdsp	sp[4*11/*tmp3[..] on the stack*/ + 0*4], r4
-+	stdsp	sp[4*11/*tmp3[..] on the stack*/ + 12*4], r1
-+
-+	ld.d	r0, sp++
-+
-+	/* Registers used:
-+
-+		r0 = tmp3[2], r1 = tmp3[3], r3=tmp3[5], r5=tmp3[8], r6 = tmp3[0],
-+		r7 = tmp3[1], r10=tmp3[7], r11=a19, lr=tmp3[6]
-+	   Free registers:
-+		r2,r4,r8,r9,r12
-+	*/
-+
-+/*
-+	a5 = tmp3[1] - tmp3[7];
-+	a7 = tmp3[8] - tmp3[0];
-+	a3 = tmp3[6] - tmp3[2];
-+	a1 = tmp3[3] - tmp3[5];
-+	a13 = a1  - a3;
-+	a14 = a13 + a7;
-+	m3 = mad_f_mul(a14, -c1) ;
-+	m4 = mad_f_mul(a5,  -c1) ;
-+	tmp[ 6] = m3 << 1;
-+*/
-+	sub	r7/*a5*/, r10
-+	sub	r2/*a7*/, r5, r6
-+	sub	r4/*a3*/, lr, r0
-+	sub	r8/*a1*/, r1, r3
-+	sub	r9/*a13*/, r8, r4
-+	add	r12/*a14*/, r9, r2
-+	mov	r0, -MAD_F(0x1bb67ae8)
-+	mulsatrndwh.w	r12/*m3*/, r12, r0:b
-+	mulsatrndwh.w	r7/*m4*/, r7, r0:b
-+	lsl	r12, 1
-+	stdsp	sp[4*9/*tmp3[..] on the stack*/ + 6*4], r12
-+
-+	/* Registers used:
-+		r2 = a7, r4 = a3, r7 = m4, r8 = a1, r12 = m3
-+
-+	   Free registers:
-+		r0, r1, r3, r5, r6, r10, r9, r11, lr
-+	*/
-+
-+
-+/*
-+	a15 = a3  + a7;
-+	m2 = mad_f_mul(a15, -c4) ;
-+	a17 = a1  + a3;
-+	m0 = mad_f_mul(a17, -c3) ;
-+	a23 = (m4 << 1)  + (m2 << 1);
-+	tmp[14] = a23 + (m0 << 1); */
-+	add	r0/*a15*/, r4, r2
-+	mov	r1, -MAD_F(0x0af1d43a)
-+	mulsatrndwh.w	r0/*m2*/, r0, r1:b
-+	mov	r3, -MAD_F(0x1491b752)
-+	add	r5/*a17*/, r8, r4
-+	mulsatrndwh.w	r5/*m0*/, r5, r3:b
-+	lsl	r7, 1
-+	add	r6/*a23*/, r7, r0 << 1
-+	add	r6/*tmp[14]*/, r6, r5 << 1
-+	stdsp	sp[4*9/*tmp3[..] on the stack*/ + 14*4], r6
-+
-+	/* Registers used:
-+		r0 = m2, r2 = a7, r5 = m0, r7 = m4, r8 = a1
-+
-+	   Free registers:
-+		r1, r3, r4, r6, r10, r9, r11, lr
-+	*/
-+
-+/*
-+	a16 = a1  - a7;
-+	m1 = mad_f_mul(a16, -c0) ;
-+	a24 = (m4 << 1)  - (m2 << 1);
-+	tmp[10] = a24 - (m1 << 1);
-+
-+	a25 = (m4 << 1)  + (m1 << 1);
-+	tmp[ 2] = (m0 << 1)  - a25;
-+*/
-+	sub	r3/*a16*/, r8, r2
-+	mov	r4,  -MAD_F(0x1f838b8d)
-+	mulsatrndwh.w	r3/*m1*/, r3, r4:b
-+	sub	r1/*a24*/, r7, r0 << 1
-+	sub	r1/*tmp[10]*/, r1, r3 << 1
-+	stdsp	sp[4*9/*tmp3[..] on the stack*/ + 10*4], r1
-+	add	r7/*a25*/, r7, r3 << 1
-+	sub	r7, r7, r5 << 1
-+	neg	r7
-+	stdsp	sp[4*9/*tmp3[..] on the stack*/ + 2*4], r7
-+
-+
-+
-+
-+  /* output to every other slot for convenience */
-+
-+  /*} */
-+  /* End fastdct */
-+
-+  /* odd input butterfly and scaling */
-+
-+
-+	/*  On the stack:
-+		sp[0] = tmp4[8], sp[1] = tmp4[4],sp[2] = tmp4[7], sp[3] = tmp4[5],sp[4] = tmp4[6]
-+		sp[5] = tmp4[0], sp[6] = tmp4[1],sp[7] = tmp4[2],sp[8] = tmp4[3]
-+	*/
-+
-+  /*
-+	  tmp3[0] = mad_f_mul(tmp4[0], scale[0]);
-+	  tmp3[1] = mad_f_mul(tmp4[1], scale[1]) << 1;
-+	  tmp3[2] = mad_f_mul(tmp4[2], scale[2]);
-+	  tmp3[3] = mad_f_mul(tmp4[3], scale[3]) << 1;
-+	  tmp3[4] = mad_f_mul(tmp4[4], scale[4]);
-+	  tmp3[5] = mad_f_mul(tmp4[5], scale[5]);
-+	  tmp3[6] = mad_f_mul(tmp4[6], scale[6]) << 1;
-+	  tmp3[7] = mad_f_mul(tmp4[7], scale[7]);
-+	  tmp3[8] = mad_f_mul(tmp4[8], scale[8]) << 1;
-+  */
-+	/* Registers used:
-+		r1 = tmp4[3], r2 = tmp4[2], r3 = tmp4[1], r4 = tmp4[0], r7 = tmp4[6]
-+		r10 = tmp4[5], r11 = tmp4[7], r12 = tmp4[4], lr = tmp4[8]
-+
-+	   Free registers:
-+		r0, r5, r6, r8, r9
-+	*/
-+	ld.d	r8, pc[ scale_sdctII - . + 4*2]	/* r8 = { scale[6], scale[7] }, r9 = { scale[4], scale[5]} */
-+	ldm	sp++, r1, r2, r3, r4, r7, r10, r11, r12, lr
-+	mov	r5, MAD_F(0x02c9fad7)		/* r3 = scale[8] */
-+	mulsatrndwh.w	r5/*tmp3[8]*/, lr, r5:b
-+	mulsatrndwh.w	lr/*tmp3[6]*/, r7, r8:t
-+	ld.d	r6, pc[ scale_sdctII - . + 0*2]	/* r6 = { scale[2], scale[3] }, r7 = { scale[0], scale[1]} */
-+	lsl	lr, 1
-+	lsl	r5, 1
-+	mulsatrndwh.w	r0/*tmp3[2]*/, r2, r6:t
-+	mulsatrndwh.w	r1/*tmp3[3]*/, r1, r6:b
-+	mulsatrndwh.w	r6/*tmp3[0]*/, r4, r7:t
-+	mulsatrndwh.w	r7/*tmp3[1]*/, r3, r7:b
-+	mulsatrndwh.w	r3/*tmp3[5]*/, r10, r9:b
-+	mulsatrndwh.w	r2/*tmp3[4]*/, r12, r9:t
-+	mulsatrndwh.w	r9/*tmp3[7]*/, r11, r8:b
-+	lsl	r1, 1
-+	lsl	r7, 1
-+
-+
-+  /* fastdct */
-+
-+/*
-+	{
-+	mad_fixed_t a0,  a1,  a2,  a3,  a4,  a5,  a6,  a7,  a8,  a9,  a10, a11, a12;
-+	mad_fixed_t a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25;
-+	mad_fixed_t m0,  m1,  m2,  m3,  m4,  m5,  m6,  m7;
-+*/
-+//	  enum {
-+//	    c0 =  MAD_F(0x1f838b8d),  /* 2 * cos( 1 * PI / 18) */
-+//	    c1 =  MAD_F(0x1bb67ae8),  /* 2 * cos( 3 * PI / 18) */
-+//	    c2 =  MAD_F(0x18836fa3),  /* 2 * cos( 4 * PI / 18) */
-+//	    c3 =  MAD_F(0x1491b752),  /* 2 * cos( 5 * PI / 18) */
-+//	    c4 =  MAD_F(0x0af1d43a),  /* 2 * cos( 7 * PI / 18) */
-+//	    c5 =  MAD_F(0x058e86a0),  /* 2 * cos( 8 * PI / 18) */
-+//	    c6 = -MAD_F(0x1e11f642)   /* 2 * cos(16 * PI / 18) */
-+//	  };
-+
-+	/* Registers used:
-+
-+		r0=tmp3[2], r1=tmp3[3], r2=tmp3[4], r3=tmp3[5], r5=tmp3[8], r6 = tmp3[0],
-+		r7 = tmp3[1], r9=tmp3[7], lr=tmp3[6]
-+	   Free registers:
-+		r4, r8, r10, r11, r12
-+	*/
-+
-+/*
-+	a2 = tmp3[6] + (tmp3[2] << 1);
-+	a6 = tmp3[8] + (tmp3[0] << 1);
-+	a11 = a2 - a6;
-+	m5 = mad_f_mul(a11, c6) ;
-+	a4 = tmp3[1] + (tmp3[7] << 1);
-+
-+	a18 =     (tmp3[4] << 1) + a4;
-+	a19 = -2 * (tmp3[4] << 1) + a4;
-+
-+	a0 = tmp3[3] + (tmp3[5] << 1);
-+
-+*/
-+	add	r11/*a4*/, r7, r9 << 1
-+	add	r12/*a18*/, r11, r2 << 1
-+	sub	r11/*a19*/, r11, r2 << 2
-+
-+	add	r4/*a2*/, lr, r0 << 1
-+	add	r8/*a6*/, r5, r6 << 1
-+	sub	r10/*a11*/, r4, r8
-+
-+	st.d	--sp, r0	/* sp[0] = tmp3[3], sp1[1] = tmp3[2]*/
-+
-+	mov	r2, -MAD_F(0x1e11f642)
-+	mulsatrndwh.w	r10/*m5*/, r10, r2:b
-+
-+	add	r2/*a0*/, r1, r3 << 1
-+
-+	/* Registers used:
-+
-+		r2=a0, r3=tmp3[5], r4=a2, r5=tmp3[8], r6 = tmp3[0],
-+		r7 = tmp3[1], r8=a6, r9=tmp3[7], r10=m5, r11=a19, r12=a18,lr=tmp3[6]
-+	   Free registers:
-+		r0, r1
-+	*/
-+
-+/*
-+	a8  = a0  + a2;
-+	a12 = a8  + a6;
-+	a10 = a0  - a6;
-+	a9  = a0  - a2;
-+	m7 = mad_f_mul(a9,  -c2) ;
-+	m6 = mad_f_mul(a10, -c5) ;
-+*/
-+
-+	add	r0/*a8*/, r2, r4
-+	add	r0/*a12*/, r8
-+	rsub	r8/*a10*/, r2
-+	sub	r2/*a9*/, r4
-+	mov	r1, -MAD_F(0x18836fa3)
-+	mulsatrndwh.w	r2/*m7*/, r2, r1:b
-+	mov	r1, -MAD_F(0x058e86a0)
-+	mulsatrndwh.w	r8/*m6*/, r8, r1:b
-+
-+	/* Registers used:
-+
-+		r0=a12, r2=m7, r3=tmp3[5], r5=tmp3[8], r6 = tmp3[0],
-+		r7 = tmp3[1], r8=m6, r9=tmp3[7], r10=m5, r11=a19, r12=a18,lr=tmp3[6]
-+	   Free registers:
-+		r1, r4
-+	*/
-+
-+
-+/*
-+	a21 = -a19 + (m5 << 1);
-+	tmp[ 9] = a21 - (m6 << 1);
-+
-+	a20 = -(-a19 - (m5 << 1));
-+	tmp[ 5] = (m7 << 1)  + a20;
-+	a22 = -a19 + (m6 << 1);
-+	tmp[17] = a22 + (m7 << 1);
-+	tmp[ 1] = a18 + a12;
-+	tmp[13] = a12 - 2 * a18;
-+*/
-+	sub	r1/*a21*/, r11, r10 << 1
-+	neg	r1
-+	sub	r1/*tmp[9]*/, r1, r8 << 1
-+	stdsp	sp[4*2/*tmp3[..] on the stack*/ + 9*4], r1
-+	add	r4/*a20*/, r11, r10 << 1
-+	add	r4/*tmp[5]*/, r4, r2 << 1
-+	stdsp	sp[4*2/*tmp3[..] on the stack*/ + 5*4], r4
-+	neg	r11
-+	add	r1/*a22*/, r11, r8 << 1
-+	add	r1/*tmp[17]*/, r1, r2 << 1
-+	stdsp	sp[4*2/*tmp3[..] on the stack*/ + 17*4], r1
-+	add	r4, r12, r0
-+	sub	r1, r0, r12 << 1
-+	stdsp	sp[4*2/*tmp3[..] on the stack*/ + 1*4], r4
-+	stdsp	sp[4*2/*tmp3[..] on the stack*/ + 13*4], r1
-+
-+	ld.d	r0, sp++
-+
-+	/* Registers used:
-+
-+		r0 = tmp3[2], r1 = tmp3[3], r3=tmp3[5], r5=tmp3[8], r6 = tmp3[0],
-+		r7 = tmp3[1], r9=tmp3[7], r11=a19, lr=tmp3[6]
-+	   Free registers:
-+		r2,r4,r8,r10,r12
-+	*/
-+
-+/*
-+	a5 = tmp3[1] - (tmp3[7] << 1);
-+	a7 = tmp3[8] - (tmp3[0] << 1);
-+	a3 = tmp3[6] - (tmp3[2] << 1);
-+	a1 = tmp3[3] - (tmp3[5] << 1);
-+	a13 = a1  - a3;
-+	a14 = a13 + a7;
-+	m3 = mad_f_mul(a14, -c1) ;
-+	m4 = mad_f_mul(a5,  -c1) ;
-+	tmp[ 7] = m3 << 1;
-+*/
-+	sub	r7/*a5*/, r7, r9 << 1
-+	sub	r2/*a7*/, r5, r6 << 1
-+	sub	r4/*a3*/, lr, r0 << 1
-+	sub	r8/*a1*/, r1, r3 << 1
-+	sub	r10/*a13*/, r8, r4
-+	add	r12/*a14*/, r10, r2
-+	mov	r0, -MAD_F(0x1bb67ae8)
-+	mulsatrndwh.w	r12/*m3*/, r12, r0:b
-+	mulsatrndwh.w	r7/*m4*/, r7, r0:b
-+	lsl	r12, 1
-+	stdsp	sp[7*4], r12
-+
-+	/* Registers used:
-+		r2 = a7, r4 = a3, r7 = m4, r8 = a1, r12 = m3
-+
-+	   Free registers:
-+		r0, r1, r3, r5, r6, r9, r10, r11, lr
-+	*/
-+
-+
-+/*
-+	a15 = a3  + a7;
-+	m2 = mad_f_mul(a15, -c4) ;
-+	a17 = a1  + a3;
-+	m0 = mad_f_mul(a17, -c3) ;
-+	a23 = (m4 << 1)  + (m2 << 1);
-+	tmp[15] = a23 + (m0 << 1); */
-+	add	r0/*a15*/, r4, r2
-+	mov	r1, -MAD_F(0x0af1d43a)
-+	mulsatrndwh.w	r0/*m2*/, r0, r1:b
-+	mov	r3, -MAD_F(0x1491b752)
-+	add	r5/*a17*/, r8, r4
-+	mulsatrndwh.w	r5/*m0*/, r5, r3:b
-+	lsl	r7, 1
-+	add	r6/*a23*/, r7, r0 << 1
-+	add	r6/*tmp[15]*/, r6, r5 << 1
-+	stdsp	sp[15*4], r6
-+
-+	/* Registers used:
-+		r0 = m2, r2 = a7, r5 = m0, r7 = m4, r8 = a1
-+
-+	   Free registers:
-+		r1, r3, r4, r6, r9, r10, r11, lr
-+	*/
-+
-+/*
-+	a16 = a1  - a7;
-+	m1 = mad_f_mul(a16, -c0) ;
-+	a24 = (m4 << 1)  - (m2 << 1);
-+	tmp[11] = a24 - (m1 << 1);
-+
-+	a25 = (m4 << 1)  + (m1 << 1);
-+	tmp[ 3] = (m0 << 1)  - a25;
-+*/
-+	sub	r3/*a16*/, r8, r2
-+	mov	r4,  -MAD_F(0x1f838b8d)
-+	mulsatrndwh.w	r3/*m1*/, r3, r4:b
-+	sub	r1/*a24*/, r7, r0 << 1
-+	sub	r1/*tmp[11]*/, r1, r3 << 1
-+	stdsp	sp[11*4], r1
-+	add	r7/*a25*/, r7, r3 << 1
-+	sub	r7, r7, r5 << 1
-+	neg	r7
-+	lddsp	r12, sp[4*18+4]	/* Get y from stack */
-+	stdsp	sp[3*4], r7
-+
-+
-+  /* output to every other slot for convenience */
-+
-+  /* End fastdct */
-+
-+  /* output accumulation */
-+
-+/*	for (i = 3; i < 18; i += 8) {
-+	  tmp[i + 0] -= tmp[(i + 0) - 2];
-+	  tmp[i + 2] -= tmp[(i + 2) - 2];
-+	  tmp[i + 4] -= tmp[(i + 4) - 2];
-+	  tmp[i + 6] -= tmp[(i + 6) - 2];
-+	}
-+	}
-+*/
-+
-+/* End  SDCT-II */
-+
-+
-+
-+  /* scale reduction and output accumulation */
-+
-+/*
-+	for (i = 1; i < 17; i += 4) {
-+	  tmp[i + 0] = tmp[i + 0]  - tmp[(i + 0) - 1];
-+	  tmp[i + 1] = tmp[i + 1]  - tmp[(i + 1) - 1];
-+	  tmp[i + 2] = tmp[i + 2]  - tmp[(i + 2) - 1];
-+	  tmp[i + 3] = tmp[i + 3]  - tmp[(i + 3) - 1];
-+	}
-+	tmp[17] = tmp[17] - tmp[16];
-+	}
-+*/
-+/* End  DCT-IV */
-+
-+
-+  /* convert 18-point DCT-IV to 36-point IMDCT */
-+
-+/*
-+	for (i =  0; i <  9; i += 3) {
-+	  y[i + 0] =  tmp[9 + (i + 0)];
-+	  y[i + 1] =  tmp[9 + (i + 1)];
-+	  y[i + 2] =  tmp[9 + (i + 2)];
-+	}
-+	for (i =  9; i < 27; i += 3) {
-+	  y[i + 0] = -tmp[36 - (9 + (i + 0)) - 1];
-+	  y[i + 1] = -tmp[36 - (9 + (i + 1)) - 1];
-+	  y[i + 2] = -tmp[36 - (9 + (i + 2)) - 1];
-+	}
-+	for (i = 27; i < 36; i += 3) {
-+	  y[i + 0] = -tmp[(i + 0) - 27];
-+	  y[i + 1] = -tmp[(i + 1) - 27];
-+	  y[i + 2] = -tmp[(i + 2) - 27];
-+	}
-+	}
-+*/
-+
-+	/* Registers used:
-+		r0 = tmp[8], r1 = tmp[7], r2 = tmp[6], r3 = tmp[5], r4 = tmp[4]
-+		r5 = tmp[3], r6 = tmp[2], r7 = tmp[1], r8 = tmp[0], r12 = y
-+
-+	   Free registers:
-+		r9, r10, r11, lr
-+	*/
-+
-+	ldm	sp++, r0-r8	/* Get tmp[0]-tmp[8] from stack */
-+	sub	r5, r7		/* tmp[3] -= tmp[1]*/
-+	sub	r3, r5		/* tmp[5] -= tmp[3]*/
-+	sub	r1, r3		/* tmp[7] -= tmp[5]*/
-+
-+	sub	r7, r8		/* tmp[1] -= tmp[0]*/
-+	sub	r6, r7		/* tmp[2] -= tmp[1]*/
-+	sub	r5, r6		/* tmp[3] -= tmp[2]*/
-+	neg	r8
-+	st.w	r12[26*4], r8	/* y[26] = -tmp[0] */
-+	st.w	r12[27*4], r8	/* y[27] = -tmp[0] */
-+	neg	r7
-+	neg	r6
-+	st.w	r12[25*4], r7	/* y[25] = -tmp[1] */
-+	st.w	r12[24*4], r6	/* y[24] = -tmp[2] */
-+	st.d	r12[28*4], r6	/* y[28] = -tmp[1], y[29] = -tmp[2]*/
-+
-+	sub	r4, r5		/* tmp[4] -= tmp[3]*/
-+	sub	r3, r4		/* tmp[5] -= tmp[4]*/
-+	neg	r5
-+	neg	r4
-+	st.w	r12[23*4], r5	/* y[23] = -tmp[3] */
-+	st.w	r12[22*4], r4	/* y[22] = -tmp[4] */
-+	st.d	r12[30*4], r4	/* y[30] = -tmp[3], y[31] = -tmp[4]*/
-+
-+	ldm	sp++, r4-r11,lr	/* Get tmp[9]-tmp[17] from stack */
-+
-+	sub	r2, r3		/* tmp[6] -= tmp[5]*/
-+
-+	sub	lr, r1		/* tmp[9] -= tmp[7]*/
-+	sub	r10, lr		/* tmp[11] -= tmp[9]*/
-+	sub	r8, r10		/* tmp[13] -= tmp[11]*/
-+	sub	r6, r8		/* tmp[15] -= tmp[13]*/
-+	sub	r4, r6		/* tmp[17] -= tmp[15]*/
-+
-+	sub	r1, r2		/* tmp[7] -= tmp[6]*/
-+	sub	r0, r1		/* tmp[8] -= tmp[7]*/
-+	neg	r3
-+	neg	r2
-+	st.w	r12[21*4], r3	/* y[21] = -tmp[5] */
-+	st.w	r12[20*4], r2	/* y[20] = -tmp[6] */
-+	st.d	r12[32*4], r2	/* y[32] = -tmp[5], y[33] = -tmp[6]*/
-+
-+	sub	lr, r0		/* tmp[9] -= tmp[8]*/
-+	sub	r11, lr		/* tmp[10] -= tmp[9]*/
-+	neg	r1
-+	neg	r0
-+	st.w	r12[19*4], r1	/* y[19] = -tmp[7] */
-+	st.w	r12[18*4], r0	/* y[18] = -tmp[8] */
-+	st.d	r12[34*4], r0	/* y[34] = -tmp[7], y[35] = -tmp[8]*/
-+
-+	sub	r10, r11	/* tmp[11] -= tmp[10]*/
-+	sub	r9, r10		/* tmp[12] -= tmp[11]*/
-+
-+	st.w	r12[0*4], lr	/* y[0] = tmp[9]*/
-+	neg	lr
-+	st.w	r12[17*4], lr	/* y[17] = -tmp[9]*/
-+	st.d	r12[1*4], r10	/* y[1] = tmp[10], y[2] = tmp[11] */
-+	neg	r11
-+	neg	r10
-+	st.w	r12[16*4], r11	/* y[16] = -tmp[10] */
-+	st.w	r12[15*4], r10	/* y[15] = -tmp[11] */
-+
-+
-+	sub	r8, r9		/* tmp[13] -= tmp[12]*/
-+	sub	r7, r8		/* tmp[14] -= tmp[13]*/
-+	st.d	r12[3*4], r8	/* y[3] = tmp[12], y[4] = tmp[13] */
-+	neg	r9
-+	neg	r8
-+	st.w	r12[14*4], r9	/* y[14] = -tmp[12] */
-+	st.w	r12[13*4], r8	/* y[13] = -tmp[13] */
-+
-+	sub	r6, r7		/* tmp[15] -= tmp[14]*/
-+	sub	r5, r6		/* tmp[16] -= tmp[15]*/
-+	sub	r4, r5		/* tmp[17] -= tmp[16]*/
-+
-+	st.d	r12[5*4], r6	/* y[5] = tmp[14], y[6] = tmp[15] */
-+	neg	r7
-+	neg	r6
-+	st.w	r12[12*4], r7	/* y[12] = -tmp[14] */
-+	st.w	r12[11*4], r6	/* y[11] = -tmp[15] */
-+
-+	st.d	r12[7*4], r4	/* y[7] = tmp[16], y[8] = tmp[17] */
-+	neg	r5
-+	neg	r4
-+	st.w	r12[10*4], r5	/* y[10] = -tmp[16] */
-+	st.w	r12[9*4], r4	/* y[9] = -tmp[17] */
-+
-+	popm	r0-r7,r11,pc
-+
-+	.align	2
-+scale_dctIV:
-+	.short	MAD_F(0x1ff833fa), MAD_F(0x1fb9ea93), MAD_F(0x1f3dd120)
-+	.short	MAD_F(0x1e84d969), MAD_F(0x1d906bcf), MAD_F(0x1c62648b)
-+	.short	MAD_F(0x1afd100f), MAD_F(0x1963268b), MAD_F(0x1797c6a4)
-+	.short	MAD_F(0x159e6f5b), MAD_F(0x137af940), MAD_F(0x11318ef3)
-+	.short	MAD_F(0x0ec6a507), MAD_F(0x0c3ef153), MAD_F(0x099f61c5)
-+	.short	MAD_F(0x06ed12c5), MAD_F(0x042d4544), MAD_F(0x0165547c)
-+
-+	.align	2
-+scale_sdctII:
-+	.short	MAD_F(0x1fe0d3b4), MAD_F(0x1ee8dd47), MAD_F(0x1d007930)
-+	.short	MAD_F(0x1a367e59), MAD_F(0x16a09e66), MAD_F(0x125abcf8)
-+	.short	MAD_F(0x0d8616bc), MAD_F(0x08483ee1), MAD_F(0x02c9fad7)
-diff --git a/layer3.c b/layer3.c
-index 4e5d3fa..dffdab3 100644
---- a/layer3.c
-+++ b/layer3.c
-@@ -378,6 +378,11 @@ mad_fixed_t const ca[8] = {
-   -MAD_F(0x003a2847) /* -0.014198569 */, -MAD_F(0x000f27b4) /* -0.003699975 */
- };
- 
-+#ifdef FPM_AVR32
-+# undef MAD_F
-+# define MAD_F(x) ((x + (1 << 12)) >> 13)
-+#endif
-+
- /*
-  * IMDCT coefficients for short blocks
-  * derived from section 2.4.3.4.10.2 of ISO/IEC 11172-3
-@@ -386,7 +391,7 @@ mad_fixed_t const ca[8] = {
-  * imdct_s[i /odd][k] = cos((PI / 24) * (2 * (6 + (i-1)/2) + 7) * (2 * k + 1))
-  */
- static
--mad_fixed_t const imdct_s[6][6] = {
-+mad_coeff_t const imdct_s[6][6] = {
- # include "imdct_s.dat"
- };
- 
-@@ -398,7 +403,7 @@ mad_fixed_t const imdct_s[6][6] = {
-  * window_l[i] = sin((PI / 36) * (i + 1/2))
-  */
- static
--mad_fixed_t const window_l[36] = {
-+mad_coeff_t const window_l[36] = {
-   MAD_F(0x00b2aa3e) /* 0.043619387 */, MAD_F(0x0216a2a2) /* 0.130526192 */,
-   MAD_F(0x03768962) /* 0.216439614 */, MAD_F(0x04cfb0e2) /* 0.300705800 */,
-   MAD_F(0x061f78aa) /* 0.382683432 */, MAD_F(0x07635284) /* 0.461748613 */,
-@@ -429,7 +434,7 @@ mad_fixed_t const window_l[36] = {
-  * window_s[i] = sin((PI / 12) * (i + 1/2))
-  */
- static
--mad_fixed_t const window_s[12] = {
-+mad_coeff_t const window_s[12] = {
-   MAD_F(0x0216a2a2) /* 0.130526192 */, MAD_F(0x061f78aa) /* 0.382683432 */,
-   MAD_F(0x09bd7ca0) /* 0.608761429 */, MAD_F(0x0cb19346) /* 0.793353340 */,
-   MAD_F(0x0ec835e8) /* 0.923879533 */, MAD_F(0x0fdcf549) /* 0.991444861 */,
-@@ -438,6 +443,11 @@ mad_fixed_t const window_s[12] = {
-   MAD_F(0x061f78aa) /* 0.382683432 */, MAD_F(0x0216a2a2) /* 0.130526192 */,
- };
- 
-+#ifdef FPM_AVR32
-+# undef MAD_F
-+# define MAD_F(x)		((mad_fixed_t) (x##L))
-+#endif
-+
- /*
-  * coefficients for intensity stereo processing
-  * derived from section 2.4.3.4.9.3 of ISO/IEC 11172-3
-@@ -879,6 +889,42 @@ void III_exponents(struct channel const *channel,
-  * NAME:	III_requantize()
-  * DESCRIPTION:	requantize one (positive) value
-  */
-+
-+#if 0
-+/*static*/
-+mad_fixed_t III_requantize(unsigned int value, signed int exp)
-+{
-+  register mad_fixed_t tmp2, tmp3;
-+  long long tmp_d;
-+
-+  asm ("asr\t%0, %1, 2\n"
-+       "ld.w\t%2, %4[%5 << 2]\n"
-+       "sub\t%1, %1, %0 << 2\n"
-+       "asr\t%3, %2, 7\n"
-+       "andl\t%2, 0x7f, COH\n"
-+       "add\t%0, %2\n"
-+       "lsl\t%m0,%3,%0\n"
-+       "neg\t%0\n"
-+       "asr\t%3,%3,%0\n"
-+       "add\t%2, %6, %1 << 2\n"
-+       "ld.w\t%2, %2[12]\n"
-+       "cp.w\t%0, 0\n"
-+       "movlt\t%3, %m0\n"
-+       "muls.d\t%0, %3, %2\n"
-+       "cp.w\t%1, 0\n"
-+       "breq\t0f\n"
-+       "lsr\t%0, %0, 28\n"
-+       "or\t%3, %0, %m0 << 4\n"
-+       "0:\n"
-+       : "=&r"(tmp_d), "+r"(exp), "=&r"(tmp2), "=&r"(tmp3)
-+       : "r"(&rq_table), "r"(value), "r"(root_table));
-+
-+
-+  return tmp3;
-+}
-+
-+#else
-+
- static
- mad_fixed_t III_requantize(unsigned int value, signed int exp)
- {
-@@ -918,6 +964,7 @@ mad_fixed_t III_requantize(unsigned int value, signed int exp)
- 
-   return frac ? mad_f_mul(requantized, root_table[3 + frac]) : requantized;
- }
-+#endif
- 
- /* we must take care that sz >= bits and sz < sizeof(long) lest bits == 0 */
- # define MASK(cache, sz, bits)	\
-@@ -2054,27 +2101,42 @@ void imdct36(mad_fixed_t const X[18], mad_fixed_t x[36])
- }
- #  endif
- 
-+
-+#ifdef FPM_AVR32
-+# undef  mad_f_mul
-+# define mad_f_mul(x, y) __builtin_mulsatrndwh_w(x, y)
-+#endif
-+
- /*
-  * NAME:	III_imdct_l()
-  * DESCRIPTION:	perform IMDCT and windowing for long blocks
-  */
- static
--void III_imdct_l(mad_fixed_t const X[18], mad_fixed_t z[36],
-+void III_imdct_l(mad_fixed_t /*const*/ X[18], mad_fixed_t z[36],
- 		 unsigned int block_type)
- {
-   unsigned int i;
-+  mad_fixed_t *z_ptr;
-+  mad_coeff_t *w_ptr;
- 
-   /* IMDCT */
- 
-+#ifdef FPM_AVR32
-+  imdct36_avr32(X, z);
-+#else
-   imdct36(X, z);
-+#endif
- 
-   /* windowing */
- 
-+  z_ptr = &z[0];
-+  w_ptr = &window_l[0];
-+
-   switch (block_type) {
-   case 0:  /* normal window */
- # if defined(ASO_INTERLEAVE1)
-     {
--      register mad_fixed_t tmp1, tmp2;
-+      register mad_coeff_t tmp1, tmp2;
- 
-       tmp1 = window_l[0];
-       tmp2 = window_l[1];
-@@ -2091,15 +2153,16 @@ void III_imdct_l(mad_fixed_t const X[18], mad_fixed_t z[36],
-     }
- # elif defined(ASO_INTERLEAVE2)
-     {
--      register mad_fixed_t tmp1, tmp2;
-+      register mad_fixed_t tmp1;
-+      register mad_coeff_t tmp2;
- 
--      tmp1 = z[0];
--      tmp2 = window_l[0];
-+      tmp1 = *z_ptr;
-+      tmp2 = *w_ptr++;
- 
-       for (i = 0; i < 35; ++i) {
--	z[i] = mad_f_mul(tmp1, tmp2);
--	tmp1 = z[i + 1];
--	tmp2 = window_l[i + 1];
-+	*z_ptr++ = mad_f_mul(tmp1, tmp2);
-+	tmp1 = *z_ptr;
-+	tmp2 = *w_ptr++;
-       }
- 
-       z[35] = mad_f_mul(tmp1, tmp2);
-@@ -2118,23 +2181,28 @@ void III_imdct_l(mad_fixed_t const X[18], mad_fixed_t z[36],
- 
-   case 1:  /* start block */
-     for (i =  0; i < 18; i += 3) {
--      z[i + 0] = mad_f_mul(z[i + 0], window_l[i + 0]);
--      z[i + 1] = mad_f_mul(z[i + 1], window_l[i + 1]);
--      z[i + 2] = mad_f_mul(z[i + 2], window_l[i + 2]);
-+      *(z_ptr++) = mad_f_mul(*z_ptr, *w_ptr++);
-+      *(z_ptr++) = mad_f_mul(*z_ptr, *w_ptr++);
-+      *(z_ptr++) = mad_f_mul(*z_ptr, *w_ptr++);
-     }
-+    z_ptr += 6;
-+    w_ptr = &window_s[6];
-     /*  (i = 18; i < 24; ++i) z[i] unchanged */
--    for (i = 24; i < 30; ++i) z[i] = mad_f_mul(z[i], window_s[i - 18]);
--    for (i = 30; i < 36; ++i) z[i] = 0;
-+    for (i = 24; i < 30; ++i) *z_ptr++ = mad_f_mul(*z_ptr, *w_ptr++);
-+    for (i = 30; i < 36; ++i) *z_ptr++ = 0;
-     break;
- 
-   case 3:  /* stop block */
--    for (i =  0; i <  6; ++i) z[i] = 0;
--    for (i =  6; i < 12; ++i) z[i] = mad_f_mul(z[i], window_s[i - 6]);
-+    w_ptr = &window_s[0];
-+    for (i =  0; i <  6; ++i) *z_ptr++ = 0;
-+    for (i =  6; i < 12; ++i) *z_ptr++ = mad_f_mul(*z_ptr, *w_ptr++);
-     /*  (i = 12; i < 18; ++i) z[i] unchanged */
-+    w_ptr = &window_l[18];
-+    z_ptr += 6;
-     for (i = 18; i < 36; i += 3) {
--      z[i + 0] = mad_f_mul(z[i + 0], window_l[i + 0]);
--      z[i + 1] = mad_f_mul(z[i + 1], window_l[i + 1]);
--      z[i + 2] = mad_f_mul(z[i + 2], window_l[i + 2]);
-+      *z_ptr++ = mad_f_mul(*z_ptr, *w_ptr++ );
-+      *z_ptr++ = mad_f_mul(*z_ptr, *w_ptr++);
-+      *z_ptr++ = mad_f_mul(*z_ptr, *w_ptr++);
-     }
-     break;
-   }
-@@ -2146,10 +2214,10 @@ void III_imdct_l(mad_fixed_t const X[18], mad_fixed_t z[36],
-  * DESCRIPTION:	perform IMDCT and windowing for short blocks
-  */
- static
--void III_imdct_s(mad_fixed_t const X[18], mad_fixed_t z[36])
-+void III_imdct_s(mad_fixed_t /*const*/ X[18], mad_fixed_t z[36])
- {
-   mad_fixed_t y[36], *yptr;
--  mad_fixed_t const *wptr;
-+  mad_coeff_t const *wptr;
-   int w, i;
-   register mad_fixed64hi_t hi;
-   register mad_fixed64lo_t lo;
-@@ -2159,11 +2227,56 @@ void III_imdct_s(mad_fixed_t const X[18], mad_fixed_t z[36])
-   yptr = &y[0];
- 
-   for (w = 0; w < 3; ++w) {
--    register mad_fixed_t const (*s)[6];
-+    register mad_coeff_t const (*s)[6];
- 
-     s = imdct_s;
- 
-     for (i = 0; i < 3; ++i) {
-+#ifdef FPM_AVR32
-+      register long long int acc, tmp1, tmp2, tmp3, tmp4;
-+      asm volatile ("ld.d\t%0, %5++\n"
-+                    "ld.d\t%1, %6[0]\n"
-+                    "ld.d\t%2, %6[2*4]\n"
-+                    "ld.d\t%3, %6[4*4]\n"
-+                    "mulwh.d\t%4, %m1, %m0:t\n"
-+                    "macwh.d\t%4, %1, %m0:b\n"
-+                    "ld.w\t%m0, %5++\n"
-+                    "macwh.d\t%4, %m2, %0:t\n"
-+                    "macwh.d\t%4, %2, %0:b\n"
-+                    "macwh.d\t%4, %m3, %m0:t\n"
-+                    "macwh.d\t%4, %3, %m0:b\n"
-+                    "ld.d\t%0, %5++\n"
-+                    "rol\t%4\n"
-+                    "rol\t%m4\n"
-+                    : "=&r"(tmp1), "=&r"(tmp2), "=&r"(tmp3), "=&r"(tmp4),
-+                      "=&r"(acc), "+r"(s)
-+                    : "r"(X));
-+
-+      asm volatile ("st.w\t%1[0], %m0\n"
-+                    "neg\t%m0\n"
-+                    "st.w\t%2[5*4], %m0\n"
-+                    : "+r"(acc)
-+                    : "r"(&yptr[i]), "r"(&yptr[-i]));
-+
-+      asm volatile ("mulwh.d\t%4, %m1, %m0:t\n"
-+                    "macwh.d\t%4, %1, %m0:b\n"
-+                    "ld.w\t%m0, %5++\n"
-+                    "macwh.d\t%4, %m2, %0:t\n"
-+                    "macwh.d\t%4, %2, %0:b\n"
-+                    "macwh.d\t%4, %m3, %m0:t\n"
-+                    "macwh.d\t%4, %3, %m0:b\n"
-+                    "rol\t%4\n"
-+                    "rol\t%m4\n"
-+                    : "+r"(tmp1), "+r"(tmp2), "+r"(tmp3), "+r"(tmp4),
-+                      "=&r"(acc), "+r"(s)
-+                    : "r"(X));
-+
-+      asm volatile (  "st.w\t%1[6*4], %m0\n"
-+                      "st.w\t%2[11*4], %m0\n"
-+                      :: "r"(acc), "r"(&yptr[i]), "r"(&yptr[-i]));
-+
-+
-+#else
-       MAD_F_ML0(hi, lo, X[0], (*s)[0]);
-       MAD_F_MLA(hi, lo, X[1], (*s)[1]);
-       MAD_F_MLA(hi, lo, X[2], (*s)[2]);
-@@ -2187,6 +2300,7 @@ void III_imdct_s(mad_fixed_t const X[18], mad_fixed_t z[36])
-       yptr[11 - i] = yptr[i + 6];
- 
-       ++s;
-+#endif
-     }
- 
-     yptr += 12;
-@@ -2198,6 +2312,196 @@ void III_imdct_s(mad_fixed_t const X[18], mad_fixed_t z[36])
-   yptr = &y[0];
-   wptr = &window_s[0];
- 
-+#ifdef FPM_AVR32
-+  /*    z[0] = 0;
-+        z[1] = 0;
-+        z[2] = 0;
-+        z[3] = 0;
-+        z[4] = 0;
-+        z[5] = 0;
-+        z[30] = 0;
-+        z[31] = 0;
-+        z[32] = 0;
-+        z[33] = 0;
-+        z[34] = 0;
-+        z[35] = 0;
-+  */
-+  {
-+    register long long int tmp, tmp2, tmp3, w0123, w4567, w891011;
-+    asm volatile ("mov\t%m0, 0\n"
-+                  "mov\t%0, %m0\n"
-+                  "st.d\t%1[0], %0\n"
-+                  "st.d\t%1[2*4], %0\n"
-+                  "st.d\t%1[4*4], %0\n"
-+                  "st.d\t%1[30*4], %0\n"
-+                  "st.d\t%1[32*4], %0\n"
-+                  "st.d\t%1[34*4], %0\n"
-+                  : "=&r"(tmp) : "r"(z));
-+
-+
-+
-+    /*
-+            z[6] = mad_f_mul(yptr [0], wptr[0]);
-+            z[7] = mad_f_mul(yptr [1], wptr[1]);
-+            z[8] = mad_f_mul(yptr [2], wptr[2]);
-+            z[9] = mad_f_mul(yptr [3], wptr[3]);
-+            z[10] = mad_f_mul(yptr[4], wptr[4]);
-+            z[11] = mad_f_mul(yptr[5], wptr[5]);
-+            z[24] = mad_f_mul(yptr [30], wptr[6]);
-+            z[25] = mad_f_mul(yptr [31], wptr[7]);
-+            z[26] = mad_f_mul(yptr [32], wptr[8]);
-+            z[27] = mad_f_mul(yptr [33], wptr[9]);
-+            z[28] = mad_f_mul(yptr[34], wptr[10]);
-+            z[29] = mad_f_mul(yptr[35], wptr[11]);
-+    */
-+
-+
-+    asm volatile ("ld.d\t%0, %5[0*4]\n"
-+                  "ld.d\t%3, %6[0*4]\n"
-+                  "ld.d\t%1, %5[2*4]\n"
-+                  "ld.d\t%2, %5[4*4]\n"
-+                  "mulsatrndwh.w\t%m3, %m3, %m0:t\n"
-+                  "mulsatrndwh.w\t%3, %3, %m0:b\n"
-+                  "ld.d\t%4, %6[2*4]\n"
-+                  "st.d\t%7[6*4], %3\n"
-+
-+                  "mulsatrndwh.w\t%m4, %m4, %0:t\n"
-+                  "mulsatrndwh.w\t%4, %4, %0:b\n"
-+                  "ld.d\t%3, %6[4*4]\n"
-+                  "st.d\t%7[8*4], %4\n"
-+
-+                  "mulsatrndwh.w\t%m3, %m3, %m1:t\n"
-+                  "mulsatrndwh.w\t%3, %3, %m1:b\n"
-+                  "ld.d\t%4, %6[30*4]\n"
-+                  "st.d\t%7[10*4], %3\n"
-+
-+                  "mulsatrndwh.w\t%m4, %m4, %1:t\n"
-+                  "mulsatrndwh.w\t%4, %4, %1:b\n"
-+                  "ld.d\t%3, %6[32*4]\n"
-+                  "st.d\t%7[24*4], %4\n"
-+
-+                  "mulsatrndwh.w\t%m3, %m3, %m2:t\n"
-+                  "mulsatrndwh.w\t%3, %3, %m2:b\n"
-+                  "ld.d\t%4, %6[34*4]\n"
-+                  "st.d\t%7[26*4], %3\n"
-+
-+                  "mulsatrndwh.w\t%m4, %m4, %2:t\n"
-+                  "mulsatrndwh.w\t%4, %4, %2:b\n"
-+                  "st.d\t%7[28*4], %4\n"
-+
-+                  : "=&r"(w0123), "=&r"(w4567), "=&r"(w891011), "=&r"(tmp), "=&r"(tmp2)
-+                  : "r"(wptr), "r"(yptr), "r"(z));
-+    /*
-+       MAD_F_ML0(hi, lo, yptr[6], wptr[6]);
-+       MAD_F_MLA(hi, lo, yptr[12], wptr[0]);
-+       z[12] = MAD_F_MLZ(hi, lo);
-+       MAD_F_ML0(hi, lo, yptr[7], wptr[7]);
-+       MAD_F_MLA(hi, lo, yptr[13], wptr[1]);
-+       z[13] = MAD_F_MLZ(hi, lo);
-+       MAD_F_ML0(hi, lo, yptr[8], wptr[8]);
-+       MAD_F_MLA(hi, lo, yptr[14], wptr[2]);
-+       z[14] = MAD_F_MLZ(hi, lo);
-+       MAD_F_ML0(hi, lo, yptr[9], wptr[9]);
-+       MAD_F_MLA(hi, lo, yptr[15], wptr[3]);
-+       z[15] = MAD_F_MLZ(hi, lo);
-+       MAD_F_ML0(hi, lo, yptr[10], wptr[10]);
-+       MAD_F_MLA(hi, lo, yptr[16], wptr[4]);
-+       z[16] = MAD_F_MLZ(hi, lo);
-+       MAD_F_ML0(hi, lo, yptr[11], wptr[11]);
-+       MAD_F_MLA(hi, lo, yptr[17], wptr[5]);
-+       z[17] = MAD_F_MLZ(hi, lo);
-+
-+       MAD_F_ML0(hi, lo, yptr[18], wptr[6]);
-+       MAD_F_MLA(hi, lo, yptr[24], wptr[0]);
-+       z[18] = MAD_F_MLZ(hi, lo);
-+       MAD_F_ML0(hi, lo, yptr[19], wptr[7]);
-+       MAD_F_MLA(hi, lo, yptr[25], wptr[1]);
-+       z[19] = MAD_F_MLZ(hi, lo);
-+       MAD_F_ML0(hi, lo, yptr[20], wptr[8]);
-+       MAD_F_MLA(hi, lo, yptr[26], wptr[2]);
-+       z[20] = MAD_F_MLZ(hi, lo);
-+       MAD_F_ML0(hi, lo, yptr[21], wptr[9]);
-+       MAD_F_MLA(hi, lo, yptr[27], wptr[3]);
-+       z[21] = MAD_F_MLZ(hi, lo);
-+       MAD_F_ML0(hi, lo, yptr[22], wptr[10]);
-+       MAD_F_MLA(hi, lo, yptr[28], wptr[4]);
-+       z[22] = MAD_F_MLZ(hi, lo);
-+       MAD_F_ML0(hi, lo, yptr[23], wptr[11]);
-+       MAD_F_MLA(hi, lo, yptr[29], wptr[5]);
-+       z[23] = MAD_F_MLZ(hi, lo);*/
-+
-+
-+    asm volatile ("ld.d\t%0, %3[6*4]\n"
-+                  "ld.d\t%1, %3[12*4]\n"
-+                  "mulwh.d\t%2, %m0, %5:t\n"
-+                  "macwh.d\t%2, %m1, %m4:t\n"
-+                  "mulwh.d\t%0, %0, %5:b\n"
-+                  "macwh.d\t%0, %1, %m4:b\n"
-+                  "lsl\t%m2, 1\n"
-+                  "lsl\t%2, %m0, 1\n"
-+                  "st.d\t%6[12*4], %2\n"
-+
-+                  "ld.d\t%0, %3[18*4]\n"
-+                  "ld.d\t%1, %3[24*4]\n"
-+                  "mulwh.d\t%2, %m0, %5:t\n"
-+                  "macwh.d\t%2, %m1, %m4:t\n"
-+                  "mulwh.d\t%0, %0, %5:b\n"
-+                  "macwh.d\t%0, %1, %m4:b\n"
-+                  "lsl\t%m2, 1\n"
-+                  "lsl\t%2, %m0, 1\n"
-+                  "st.d\t%6[18*4], %2\n"
-+
-+                  : "=&r"(tmp), "=&r"(tmp2), "=&r"(tmp3)
-+                  : "r"(yptr), "r"(w0123), "r"(w4567), "r"(z));
-+
-+    asm volatile ("ld.d\t%0, %3[8*4]\n"
-+                  "ld.d\t%1, %3[14*4]\n"
-+                  "mulwh.d\t%2, %m0, %m5:t\n"
-+                  "macwh.d\t%2, %m1, %4:t\n"
-+                  "mulwh.d\t%0, %0, %m5:b\n"
-+                  "macwh.d\t%0, %1, %4:b\n"
-+                  "lsl\t%m2, 1\n"
-+                  "lsl\t%2, %m0, 1\n"
-+                  "st.d\t%6[14*4], %2\n"
-+
-+                  "ld.d\t%0, %3[20*4]\n"
-+                  "ld.d\t%1, %3[26*4]\n"
-+                  "mulwh.d\t%2, %m0, %m5:t\n"
-+                  "macwh.d\t%2, %m1, %4:t\n"
-+                  "mulwh.d\t%0, %0, %m5:b\n"
-+                  "macwh.d\t%0, %1, %4:b\n"
-+                  "lsl\t%m2, 1\n"
-+                  "lsl\t%2, %m0, 1\n"
-+                  "st.d\t%6[20*4], %2\n"
-+
-+                  : "=&r"(tmp), "=&r"(tmp2), "=&r"(tmp3)
-+                  : "r"(yptr), "r"(w0123), "r"(w891011), "r"(z));
-+
-+    asm volatile ("ld.d\t%0, %3[10*4]\n"
-+                  "ld.d\t%1, %3[16*4]\n"
-+                  "mulwh.d\t%2, %m0, %5:t\n"
-+                  "macwh.d\t%2, %m1, %m4:t\n"
-+                  "mulwh.d\t%0, %0, %5:b\n"
-+                  "macwh.d\t%0, %1, %m4:b\n"
-+                  "lsl\t%m2, 1\n"
-+                  "lsl\t%2, %m0, 1\n"
-+                  "st.d\t%6[16*4], %2\n"
-+
-+                  "ld.d\t%0, %3[22*4]\n"
-+                  "ld.d\t%1, %3[28*4]\n"
-+                  "mulwh.d\t%2, %m0, %5:t\n"
-+                  "macwh.d\t%2, %m1, %m4:t\n"
-+                  "mulwh.d\t%0, %0, %5:b\n"
-+                  "macwh.d\t%0, %1, %m4:b\n"
-+                  "lsl\t%m2, 1\n"
-+                  "lsl\t%2, %m0, 1\n"
-+                  "st.d\t%6[22*4], %2\n"
-+
-+                  : "=&r"(tmp), "=&r"(tmp2), "=&r"(tmp3)
-+                  : "r"(yptr), "r"(w4567), "r"(w891011), "r"(z));
-+
-+  }
-+#else
-   for (i = 0; i < 6; ++i) {
-     z[i +  0] = 0;
-     z[i +  6] = mad_f_mul(yptr[ 0 + 0], wptr[0]);
-@@ -2218,8 +2522,15 @@ void III_imdct_s(mad_fixed_t const X[18], mad_fixed_t z[36])
-     ++yptr;
-     ++wptr;
-   }
-+#endif
- }
- 
-+#ifdef FPM_AVR32
-+# undef  mad_f_mul
-+# define mad_f_mul(x, y) ((((x) + (1L << 11)) >> 12) *  \
-+				 (((y) + (1L << 15)) >> 16))
-+#endif
-+
- /*
-  * NAME:	III_overlap()
-  * DESCRIPTION:	perform overlap-add of windowed IMDCT outputs
-diff --git a/synth.c b/synth.c
-index 1d28d43..f42d49b 100644
---- a/synth.c
-+++ b/synth.c
-@@ -29,20 +29,6 @@
- # include "frame.h"
- # include "synth.h"
- 
--/*
-- * NAME:	synth->init()
-- * DESCRIPTION:	initialize synth struct
-- */
--void mad_synth_init(struct mad_synth *synth)
--{
--  mad_synth_mute(synth);
--
--  synth->phase = 0;
--
--  synth->pcm.samplerate = 0;
--  synth->pcm.channels   = 0;
--  synth->pcm.length     = 0;
--}
- 
- /*
-  * NAME:	synth->mute()
-@@ -88,6 +74,10 @@ void mad_synth_mute(struct mad_synth *synth)
- 
- /* FPM_DEFAULT without OPT_SSO will actually lose accuracy and performance */
- 
-+# if defined(FPM_AVR32)
-+#  define OPT_SSO
-+# endif
-+
- # if defined(FPM_DEFAULT) && !defined(OPT_SSO)
- #  define OPT_SSO
- # endif
-@@ -522,9 +512,15 @@ void dct32(mad_fixed_t const in[32], unsigned int slot,
- #  endif
- #  define ML0(hi, lo, x, y)	((lo)  = (x) * (y))
- #  define MLA(hi, lo, x, y)	((lo) += (x) * (y))
--#  define MLN(hi, lo)		((lo)  = -(lo))
--#  define MLZ(hi, lo)		((void) (hi), (mad_fixed_t) (lo))
--#  define SHIFT(x)		((x) >> 2)
-+#  if defined(FPM_AVR32)
-+#   define MLN(hi, lo)		MAD_F_MLN((hi), (lo))
-+#   define MLZ(hi, lo)		(hi)
-+#   define SHIFT(x)		((x) << 2)
-+#  else
-+#   define MLN(hi, lo)		((lo)  = -(lo))
-+#   define MLZ(hi, lo)		((void) (hi), (mad_fixed_t) (lo))
-+#   define SHIFT(x)		((x) >> 2)
-+#  endif
- #  define PRESHIFT(x)		((MAD_F(x) + (1L << 13)) >> 14)
- # else
- #  define ML0(hi, lo, x, y)	MAD_F_ML0((hi), (lo), (x), (y))
-@@ -541,11 +537,54 @@ void dct32(mad_fixed_t const in[32], unsigned int slot,
- #  endif
- # endif
- 
-+/*
-+ * NAME:	synth->init()
-+ * DESCRIPTION:	initialize synth struct
-+ */
-+
-+#ifdef FPM_AVR32
-+short Dmod[17][33];
-+#endif
-+
- static
-+#ifdef FPM_AVR32
-+short const D[17][32] = {
-+#else
- mad_fixed_t const D[17][32] = {
-+#endif
- # include "D.dat"
- };
- 
-+void mad_synth_init(struct mad_synth *synth)
-+{
-+
-+  mad_synth_mute(synth);
-+
-+  synth->phase = 0;
-+
-+  synth->pcm.samplerate = 0;
-+  synth->pcm.channels   = 0;
-+  synth->pcm.length     = 0;
-+
-+#ifdef FPM_AVR32
-+  {
-+    int i, j;
-+    for ( i = 0; i < 17; i++ ){
-+      for ( j = 0; j < 32; j++ ){
-+        if ( j & 1 ){
-+          Dmod[i][17 + (j >> 1)]= D[i][j];
-+        } else {
-+          Dmod[i][(j >> 1)]= D[i][j];
-+        }
-+      }
-+
-+      Dmod[i][16]= Dmod[i][16+8];
-+    }
-+  }
-+#endif
-+
-+}
-+
- # if defined(ASO_SYNTH)
- void synth_full(struct mad_synth *, struct mad_frame const *,
- 		unsigned int, unsigned int);
-@@ -560,9 +599,13 @@ void synth_full(struct mad_synth *synth, struct mad_frame const *frame,
- {
-   unsigned int phase, ch, s, sb, pe, po;
-   mad_fixed_t *pcm1, *pcm2, (*filter)[2][2][16][8];
--  mad_fixed_t const (*sbsample)[36][32];
-+  mad_fixed_t /*const*/ (*sbsample)[36][32];
-   register mad_fixed_t (*fe)[8], (*fx)[8], (*fo)[8];
-+#ifdef FPM_AVR32
-+  register short const (*Dptr)[32], *ptr;
-+#else
-   register mad_fixed_t const (*Dptr)[32], *ptr;
-+#endif
-   register mad_fixed64hi_t hi;
-   register mad_fixed64lo_t lo;
- 
-@@ -573,6 +616,20 @@ void synth_full(struct mad_synth *synth, struct mad_frame const *frame,
-     pcm1     = synth->pcm.samples[ch];
- 
-     for (s = 0; s < ns; ++s) {
-+#  ifdef FPM_AVR32
-+/*
-+  int i;
-+  for ( i = 0; i < 32; i++ ){
-+  (*sbsample)[s][i] = ((*sbsample)[s][i] + (1 << 13)) & 0xFFFFC000;
-+  }
-+*/
-+      dct32_avr32((*sbsample)[s], phase >> 1,
-+	    (*filter)[0][phase & 1], (*filter)[1][phase & 1]);
-+      /*      printf("dct32: %d\n", GET_CYCLES);*/
-+      pcm1 = synth_avr32(phase, (mad_fixed_t *)filter, \
-+                         pcm1, (short *)&Dmod[0]);
-+      /*      printf("synth_window: %d\n", GET_CYCLES);*/
-+#  else
-       dct32((*sbsample)[s], phase >> 1,
- 	    (*filter)[0][phase & 1], (*filter)[1][phase & 1]);
- 
-@@ -679,6 +736,7 @@ void synth_full(struct mad_synth *synth, struct mad_frame const *frame,
-       MLA(hi, lo, (*fo)[7], ptr[ 2]);
- 
-       *pcm1 = SHIFT(-MLZ(hi, lo));
-+#  endif
-       pcm1 += 16;
- 
-       phase = (phase + 1) % 16;
-diff --git a/synth_avr32.S b/synth_avr32.S
-new file mode 100644
-index 0000000..701077b
---- /dev/null
-+++ b/synth_avr32.S
-@@ -0,0 +1,394 @@
-+/*
-+   Optimized function for speeding up synthesis filter
-+   in MPEG Audio Decoding.
-+   Copyright 2003-2006 Atmel Corporation.
-+
-+   Written by Ronny Pedersen and Lars Even Alm�s, Atmel Norway
-+
-+   This program is free software; you can redistribute it and/or modify
-+   it under the terms of the GNU General Public License as published by
-+   the Free Software Foundation; either version 2 of the License, or
-+   (at your option) any later version.
-+
-+   This program is distributed in the hope that it will be useful,
-+   but WITHOUT ANY WARRANTY; without even the implied warranty of
-+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+   GNU General Public License for more details.
-+
-+   You should have received a copy of the GNU General Public License
-+   along with this program; if not, write to the Free Software
-+   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-+
-+
-+/* *****************
-+   Defining macros
-+   ***************** */
-+
-+	.macro	window_1	f, ptr, acc, ptr_offset, mul, tmp1_lo, tmp1_hi, tmp2_lo, tmp2_hi, tmp3_lo, tmp3_hi
-+	ld.d		\tmp1_lo, \f[0*4]			/* tmp1 = { f[0], f[1] } */
-+	ld.w		\tmp2_lo, \ptr[0*2+\ptr_offset*2]	/* tmp2_lo = { ptr[0], ptr[1] }*/
-+	ld.d		\tmp3_lo, \f[6*4]			/* tmp3 = { f[6], f[7] } */
-+	ld.w		\tmp2_hi, \ptr[6*2+\ptr_offset*2]	/* tmp2_hi = { ptr[6], ptr[7] }*/
-+	.if \mul
-+	mulwh.d		\acc, \tmp1_hi, \tmp2_lo:t		/* f[0] * ptr[0]*/
-+	.else
-+	macwh.d		\acc, \tmp1_hi, \tmp2_lo:t		/* f[0] * ptr[0]*/
-+	.endif
-+	macwh.d		\acc, \tmp3_lo, \tmp2_lo:b		/* f[7] * ptr[1]*/
-+	ld.w		\tmp2_lo, \ptr[2*2+\ptr_offset*2]	/* tmp2_lo = { ptr[2], ptr[3] }*/
-+	macwh.d		\acc, \tmp1_lo, \tmp2_hi:b		/* f[1] * ptr[7]*/
-+	ld.d		\tmp1_lo, \f[2*4]			/* tmp1 = { f[2], f[3] } */
-+
-+	macwh.d		\acc, \tmp3_hi, \tmp2_lo:t		/* f[6] * ptr[2]*/
-+	macwh.d		\acc, \tmp1_hi, \tmp2_hi:t		/* f[2] * ptr[6]*/
-+	ld.d		\tmp3_lo, \f[4*4]			/* tmp3 = { f[4], f[5] } */
-+	ld.w		\tmp2_hi, \ptr[4*2+\ptr_offset*2]	/* tmp2_hi = { ptr[4], ptr[5] }*/
-+	macwh.d		\acc, \tmp3_lo, \tmp2_lo:b		/* f[5] * ptr[3]*/
-+
-+	macwh.d		\acc, \tmp1_lo, \tmp2_hi:b		/* f[3] * ptr[5]*/
-+	macwh.d		\acc, \tmp3_hi, \tmp2_hi:t		/* f[4] * ptr[4]*/
-+	.endm
-+
-+	.macro	window_2	f, ptr, acc, ptr_offset, mul, tmp1_lo, tmp1_hi, tmp2_lo, tmp2_hi, tmp3_lo, tmp3_hi
-+	ld.d		\tmp1_lo, \f[0*4]			/* tmp1 = { f[0], f[1] } */
-+	ld.w		\tmp2_lo, \ptr[7*2+\ptr_offset*2]	/* tmp2_lo = { ptr[7], ptr[8] }*/
-+	ld.d		\tmp3_lo, \f[2*4]			/* tmp3 = { f[2], f[3] } */
-+	ld.w		\tmp2_hi, \ptr[9*2+\ptr_offset*2]	/* tmp2_hi = { ptr[9], ptr[10] }*/
-+	.if \mul
-+	mulwh.d		\acc, \tmp1_hi, \tmp2_lo:t		/* f[0] * ptr[7]*/
-+	.else
-+	macwh.d		\acc, \tmp1_hi, \tmp2_lo:t		/* f[0] * ptr[7]*/
-+	.endif
-+	macwh.d		\acc, \tmp1_lo, \tmp2_lo:b		/* f[1] * ptr[8]*/
-+
-+	ld.d		\tmp1_lo, \f[4*4]			/* tmp1 = { f[4], f[5] } */
-+	ld.w		\tmp2_lo, \ptr[11*2+\ptr_offset*2]	/* tmp2_lo = { ptr[11], ptr[12] }*/
-+
-+	macwh.d		\acc, \tmp3_hi, \tmp2_hi:t		/* f[2] * ptr[9]*/
-+	macwh.d		\acc, \tmp3_lo, \tmp2_hi:b		/* f[3] * ptr[10]*/
-+
-+	ld.d		\tmp3_lo, \f[6*4]			/* tmp3 = { f[6], f[7] } */
-+	ld.w		\tmp2_hi, \ptr[13*2+\ptr_offset*2]	/* tmp2_hi = { ptr[13], ptr[14] }*/
-+
-+	macwh.d		\acc, \tmp1_hi, \tmp2_lo:t		/* f[4] * ptr[11]*/
-+	macwh.d		\acc, \tmp1_lo, \tmp2_lo:b		/* f[5] * ptr[12]*/
-+	macwh.d		\acc, \tmp3_hi, \tmp2_hi:t		/* f[6] * ptr[13]*/
-+	macwh.d		\acc, \tmp3_lo, \tmp2_hi:b		/* f[7] * ptr[14]*/
-+	.endm
-+
-+	.macro	scale	res, d_lo, d_hi
-+	lsl		\d_hi, 2
-+	.endm
-+
-+/* **********************
-+   Starting main function
-+   ********************** */
-+
-+/* Function synth_avr32 is called from synth.c with arguments:
-+             phase, filter, *pcm1, &D[0]		*/
-+
-+	.global	synth_avr32
-+synth_avr32:
-+	pushm		r0-r7, lr
-+	sub		sp, 8
-+
-+	/* R12 = phase, R11 = filter, R10 = pcm1, r9 = D*/
-+	bld		r12, 0
-+	brcc		synth_even
-+
-+	/* Filter for odd phases */
-+
-+	/*	fe = &(*filter)[0][1][0];
-+		fx = &(*filter)[0][0][0];
-+		fo = &(*filter)[1][0][0]; */
-+	sub		lr /*fe*/, r11, -16*8*4
-+	sub		r8 /*fo*/, r11, -16*8*4*2
-+
-+	/*	pe = phase >> 1; */
-+	lsr		r12, 1
-+	stdsp		sp[4], r12
-+	/*	ptr = (short const *)Dmod + pe; */
-+	add		r12, r9, r12 << 1
-+
-+	/*	ML0(hi, lo, (*fx)[0], ptr[0 + 17]);
-+		MLA(hi, lo, (*fx)[1], ptr[7 + 17]);
-+		MLA(hi, lo, (*fx)[2], ptr[6 + 17]);
-+		MLA(hi, lo, (*fx)[3], ptr[5 + 17]);
-+		MLA(hi, lo, (*fx)[4], ptr[4 + 17]);
-+		MLA(hi, lo, (*fx)[5], ptr[3 + 17]);
-+		MLA(hi, lo, (*fx)[6], ptr[2 + 17]);
-+		MLA(hi, lo, (*fx)[7], ptr[1 + 17]); */
-+	window_1	r11/*fx*/,r12/*ptr*/,r0/*acc*/,17/*off*/,1/*mul*/,r2,r3,r4,r5,r6,r7
-+
-+    /*		MLN(hi, lo); */
-+	neg		r0
-+	acr		r1
-+	neg		r1
-+
-+    /*		MLA(hi, lo, (*fe)[0], ptr[0]);
-+		MLA(hi, lo, (*fe)[1], ptr[7]);
-+		MLA(hi, lo, (*fe)[2], ptr[6]);
-+                MLA(hi, lo, (*fe)[3], ptr[5]);
-+                MLA(hi, lo, (*fe)[4], ptr[4]);
-+                MLA(hi, lo, (*fe)[5], ptr[3]);
-+                MLA(hi, lo, (*fe)[6], ptr[2]);
-+                MLA(hi, lo, (*fe)[7], ptr[1]); */
-+	window_1	lr/*fe*/,r12/*ptr*/,r0/*acc*/,0/*off*/,0/*mac*/,r2,r3,r4,r5,r6,r7
-+
-+    /*		*pcm1++ = SHIFT(MLZ(hi, lo));
-+
-+		pcm2 = pcm1 + 31; */
-+	scale		r1, r0, r1
-+	st.w		r10/*pcm_1*/++, r1
-+	sub		r11/*pcm2*/, r10, -4*31
-+
-+    /*		for (sb = 1; sb < 16; ++sb) { */
-+	mov 		r2, 15
-+	stdsp		sp[0], r2
-+odd_loop:
-+    /*		++fe;
-+		ptr += 33; */
-+	sub		lr /*fe*/, -8*4
-+	sub		r12, -33*2
-+
-+    /*		ML0(hi, lo, (*fo)[0], ptr[0 + 17]);
-+		MLA(hi, lo, (*fo)[1], ptr[7 + 17]);
-+		MLA(hi, lo, (*fo)[2], ptr[6 + 17]);
-+		MLA(hi, lo, (*fo)[3], ptr[5 + 17]);
-+		MLA(hi, lo, (*fo)[4], ptr[4 + 17]);
-+		MLA(hi, lo, (*fo)[5], ptr[3 + 17]);
-+		MLA(hi, lo, (*fo)[6], ptr[2 + 17]);
-+		MLA(hi, lo, (*fo)[7], ptr[1 + 17]); */
-+	window_1	r8/*fo*/,r12/*ptr*/,r0/*acc*/,17/*off*/,1/*mul*/,r2,r3,r4,r5,r6,r7
-+    /*		MLN(hi, lo); */
-+
-+	neg		r0
-+	acr		r1
-+	neg		r1
-+
-+    /*		MLA(hi, lo, (*fe)[7], ptr[1]);
-+		MLA(hi, lo, (*fe)[6], ptr[2]);
-+		MLA(hi, lo, (*fe)[5], ptr[3]);
-+		MLA(hi, lo, (*fe)[4], ptr[4]);
-+		MLA(hi, lo, (*fe)[3], ptr[5]);
-+		MLA(hi, lo, (*fe)[2], ptr[6]);
-+		MLA(hi, lo, (*fe)[1], ptr[7]);
-+		MLA(hi, lo, (*fe)[0], ptr[0]); */
-+	window_1	lr/*fe*/,r12/*ptr*/,r0/*acc*/,0/*off*/,0/*mac*/,r2,r3,r4,r5,r6,r7
-+
-+    /*	ptr -= 2*pe; */
-+	lddsp		r2, sp[4]
-+
-+    /*		*pcm1++ = SHIFT(MLZ(hi, lo)); */
-+
-+	scale		r1, r0, r1
-+	sub		r12/*ptr*/, r12, r2/*pe*/<< 2
-+	st.w		r10/*pcm_1*/++, r1
-+
-+
-+    /*		ML0(hi, lo, (*fe)[0], ptr[7  + 17]);
-+		MLA(hi, lo, (*fe)[1], ptr[8  + 17]);
-+		MLA(hi, lo, (*fe)[2], ptr[9  + 17]);
-+		MLA(hi, lo, (*fe)[3], ptr[10 + 17]);
-+		MLA(hi, lo, (*fe)[4], ptr[11 + 17]);
-+		MLA(hi, lo, (*fe)[5], ptr[12 + 17]);
-+		MLA(hi, lo, (*fe)[6], ptr[13 + 17]);
-+		MLA(hi, lo, (*fe)[7], ptr[14 + 17]); */
-+	window_2	lr/*fe*/,r12/*ptr*/,r0/*acc*/,17/*off*/,1/*mul*/,r2,r3,r4,r5,r6,r7
-+    /*		MLA(hi, lo, (*fo)[7], ptr[14]);
-+		MLA(hi, lo, (*fo)[6], ptr[13]);
-+		MLA(hi, lo, (*fo)[5], ptr[12]);
-+		MLA(hi, lo, (*fo)[4], ptr[11]);
-+		MLA(hi, lo, (*fo)[3], ptr[10]);
-+		MLA(hi, lo, (*fo)[2], ptr[9]);
-+		MLA(hi, lo, (*fo)[1], ptr[8]);
-+		MLA(hi, lo, (*fo)[0], ptr[7]); */
-+	window_2	r8/*fo*/,r12/*ptr*/,r0/*acc*/,0/*off*/,0/*mac*/,r2,r3,r4,r5,r6,r7
-+
-+
-+    /*		*pcm2-- = SHIFT(MLZ(hi, lo)); */
-+	lddsp		r3, sp[4]
-+	lddsp		r2, sp[0]
-+	scale		r1, r0, r1
-+	st.w		--r11/*pcm_2*/, r1
-+
-+    /*		ptr += 2*pe; */
-+	add		r12/*ptr*/, r12, r3/*pe*/<< 2
-+
-+    /*		++fo;
-+		} */
-+	sub		r8/*fo*/, -8*4
-+
-+	sub		r2, 1
-+	stdsp		sp[0], r2
-+	brne		odd_loop
-+
-+    /*		ptr += 33; */
-+	sub		r12/*ptr*/, -33*2
-+
-+    /*		ML0(hi, lo, (*fo)[0], ptr[0 + 17]);
-+		MLA(hi, lo, (*fo)[1], ptr[7 + 17]);
-+		MLA(hi, lo, (*fo)[2], ptr[6 + 17]);
-+		MLA(hi, lo, (*fo)[3], ptr[5 + 17]);
-+		MLA(hi, lo, (*fo)[4], ptr[4 + 17]);
-+		MLA(hi, lo, (*fo)[5], ptr[3 + 17]);
-+		MLA(hi, lo, (*fo)[6], ptr[2 + 17]);
-+		MLA(hi, lo, (*fo)[7], ptr[1 + 17]); */
-+	window_1	r8/*fo*/,r12/*ptr*/,r0/*acc*/,17/*off*/,1/*mul*/,r2,r3,r4,r5,r6,r7
-+
-+	rjmp		synth_end
-+synth_even:
-+	/* Filter for even phases */
-+
-+	/*	fe = &(*filter)[0][0][0];
-+		fx = &(*filter)[0][1][0];
-+		fo = &(*filter)[1][1][0]; */
-+	sub		lr /*fx*/, r11, -16*8*4
-+	sub		r8 /*fo*/, r11, -(16*8*4*2 + 16*8*4)
-+
-+	/*	po = ((phase - 1) & 0xF) >> 1; */
-+	sub		r12, 1
-+	andl		r12, 0xe, COH
-+	stdsp		sp[4], r12
-+	/*	ptr = (short const *)Dmod + po; */
-+	add		r12, r9, r12
-+
-+	/*	ML0(hi, lo, (*fx)[0], ptr[0 + 17]);
-+		MLA(hi, lo, (*fx)[1], ptr[7 + 17]);
-+		MLA(hi, lo, (*fx)[2], ptr[6 + 17]);
-+		MLA(hi, lo, (*fx)[3], ptr[5 + 17]);
-+		MLA(hi, lo, (*fx)[4], ptr[4 + 17]);
-+		MLA(hi, lo, (*fx)[5], ptr[3 + 17]);
-+		MLA(hi, lo, (*fx)[6], ptr[2 + 17]);
-+		MLA(hi, lo, (*fx)[7], ptr[1 + 17]); */
-+	window_1	lr/*fx*/,r12/*ptr*/,r0/*acc*/,17/*off*/,1/*mul*/,r2,r3,r4,r5,r6,r7
-+
-+    /*		MLN(hi, lo); */
-+	neg		r0
-+	acr		r1
-+	neg		r1
-+
-+    /*		MLA(hi, lo, (*fe)[0], ptr[0 + 1]);
-+		MLA(hi, lo, (*fe)[1], ptr[7 + 1]);
-+		MLA(hi, lo, (*fe)[2], ptr[6 + 1]);
-+                MLA(hi, lo, (*fe)[3], ptr[5 + 1]);
-+                MLA(hi, lo, (*fe)[4], ptr[4 + 1]);
-+                MLA(hi, lo, (*fe)[5], ptr[3 + 1]);
-+                MLA(hi, lo, (*fe)[6], ptr[2 + 1]);
-+                MLA(hi, lo, (*fe)[7], ptr[1 + 1]); */
-+	window_1	r11/*fe*/,r12/*ptr*/,r0/*acc*/,1/*off*/,0/*mac*/,r2,r3,r4,r5,r6,r7
-+
-+    /*		*pcm1++ = SHIFT(MLZ(hi, lo));
-+
-+		pcm2 = pcm1 + 31; */
-+	scale		r1, r0, r1
-+	st.w		r10/*pcm_1*/++, r1
-+	sub		lr/*pcm2*/, r10, -4*31
-+
-+    /*		for (sb = 1; sb < 16; ++sb) { */
-+	mov 		r2, 15
-+	stdsp		sp[0], r2
-+even_loop:
-+    /*		++fe;
-+		ptr += 33; */
-+	sub		r11 /*fe*/, -8*4
-+	sub		r12, -33*2
-+
-+    /*		ML0(hi, lo, (*fo)[0], ptr[0 + 17]);
-+		MLA(hi, lo, (*fo)[1], ptr[7 + 17]);
-+		MLA(hi, lo, (*fo)[2], ptr[6 + 17]);
-+		MLA(hi, lo, (*fo)[3], ptr[5 + 17]);
-+		MLA(hi, lo, (*fo)[4], ptr[4 + 17]);
-+		MLA(hi, lo, (*fo)[5], ptr[3 + 17]);
-+		MLA(hi, lo, (*fo)[6], ptr[2 + 17]);
-+		MLA(hi, lo, (*fo)[7], ptr[1 + 17]); */
-+	window_1	r8/*fo*/,r12/*ptr*/,r0/*acc*/,17/*off*/,1/*mul*/,r2,r3,r4,r5,r6,r7
-+    /*		MLN(hi, lo); */
-+	neg		r0
-+	acr		r1
-+	neg		r1
-+
-+    /*		MLA(hi, lo, (*fe)[7], ptr[1 + 1]);
-+		MLA(hi, lo, (*fe)[6], ptr[2 + 1]);
-+		MLA(hi, lo, (*fe)[5], ptr[3 + 1]);
-+		MLA(hi, lo, (*fe)[4], ptr[4 + 1]);
-+		MLA(hi, lo, (*fe)[3], ptr[5 + 1]);
-+		MLA(hi, lo, (*fe)[2], ptr[6 + 1]);
-+		MLA(hi, lo, (*fe)[1], ptr[7 + 1]);
-+		MLA(hi, lo, (*fe)[0], ptr[0 + 1]); */
-+	window_1	r11/*fe*/,r12/*ptr*/,r0/*acc*/,1/*off*/,0/*mac*/,r2,r3,r4,r5,r6,r7
-+
-+    /*		*pcm1++ = SHIFT(MLZ(hi, lo)); */
-+	lddsp		r2, sp[4]
-+	scale		r1, r0, r1
-+    /*	ptr -= 2*po; */
-+	sub		r12/*ptr*/, r12, r2/*po*/<< 1
-+	st.w		r10/*pcm_1*/++, r1
-+
-+
-+    /*		ML0(hi, lo, (*fe)[0], ptr[7  + 17 - 1]);
-+		MLA(hi, lo, (*fe)[1], ptr[8  + 17 - 1]);
-+		MLA(hi, lo, (*fe)[2], ptr[9  + 17 - 1]);
-+		MLA(hi, lo, (*fe)[3], ptr[10 + 17 - 1]);
-+		MLA(hi, lo, (*fe)[4], ptr[11 + 17 - 1]);
-+		MLA(hi, lo, (*fe)[5], ptr[12 + 17 - 1]);
-+		MLA(hi, lo, (*fe)[6], ptr[13 + 17 - 1]);
-+		MLA(hi, lo, (*fe)[7], ptr[14 + 17 - 1]); */
-+	window_2	r11/*fe*/,r12/*ptr*/,r0/*acc*/,16/*off*/,1/*mul*/,r2,r3,r4,r5,r6,r7
-+    /*		MLA(hi, lo, (*fo)[7], ptr[14]);
-+		MLA(hi, lo, (*fo)[6], ptr[13]);
-+		MLA(hi, lo, (*fo)[5], ptr[12]);
-+		MLA(hi, lo, (*fo)[4], ptr[11]);
-+		MLA(hi, lo, (*fo)[3], ptr[10]);
-+		MLA(hi, lo, (*fo)[2], ptr[9]);
-+		MLA(hi, lo, (*fo)[1], ptr[8]);
-+		MLA(hi, lo, (*fo)[0], ptr[7]); */
-+	window_2	r8/*fo*/,r12/*ptr*/,r0/*acc*/,0/*off*/,0/*mac*/,r2,r3,r4,r5,r6,r7
-+
-+
-+    /*		*pcm2-- = SHIFT(MLZ(hi, lo)); */
-+	lddsp		r3, sp[4]
-+	lddsp		r2, sp[0]
-+	scale		r1, r0, r1
-+	st.w		--lr/*pcm_2*/, r1
-+
-+    /*		ptr += 2*po; */
-+	add		r12/*ptr*/, r12, r3/*po*/<< 1
-+
-+    /*		++fo;
-+		} */
-+	sub		r8/*fo*/, -8*4
-+
-+	sub		r2, 1
-+	stdsp		sp[0], r2
-+	brne		even_loop
-+
-+    /*		ptr += 33; */
-+	sub		r12/*ptr*/, -33*2
-+
-+    /*		ML0(hi, lo, (*fo)[0], ptr[0 + 17]);
-+		MLA(hi, lo, (*fo)[1], ptr[7 + 17]);
-+		MLA(hi, lo, (*fo)[2], ptr[6 + 17]);
-+		MLA(hi, lo, (*fo)[3], ptr[5 + 17]);
-+		MLA(hi, lo, (*fo)[4], ptr[4 + 17]);
-+		MLA(hi, lo, (*fo)[5], ptr[3 + 17]);
-+		MLA(hi, lo, (*fo)[6], ptr[2 + 17]);
-+		MLA(hi, lo, (*fo)[7], ptr[1 + 17]); */
-+	window_1	r8/*fo*/,r12/*ptr*/,r0/*acc*/,17/*off*/,1/*mul*/,r2,r3,r4,r5,r6,r7
-+
-+
-+
-+synth_end:
-+   /*		*pcm1 = SHIFT(-MLZ(hi, lo)); */
-+	scale		r1, r0, r1
-+	neg		r1
-+	st.w		r10/*pcm_1*/, r1
-+
-+	mov		r12, r10
-+	sub		sp, -8
-+	popm		r0-r7, pc
-+
-+
-+
-+
-+
diff --git a/package/libmad/Config.in b/package/libmad/Config.in
index 80ed85357d..d0edc497c4 100644
--- a/package/libmad/Config.in
+++ b/package/libmad/Config.in
@@ -1,6 +1,5 @@
 config BR2_PACKAGE_LIBMAD
 	bool "libmad"
-	select BR2_PACKAGE_LIBMAD_ASO if BR2_avr32
 	help
 	  High-quality MPEG audio decoder.  All computations are performed
 	  with fixed-point integer arithmetic, making it ideal for systems
diff --git a/package/libmicrohttpd/libmicrohttpd.hash b/package/libmicrohttpd/libmicrohttpd.hash
index 8cc7d599a1..2cf1a54325 100644
--- a/package/libmicrohttpd/libmicrohttpd.hash
+++ b/package/libmicrohttpd/libmicrohttpd.hash
@@ -1,2 +1,2 @@
 # Locally calculated after checking pgp signature
-sha256	8df2b4dd863c98799a4775a530d905363fbc02fec850af9094da890b28b9e721	libmicrohttpd-0.9.38.tar.gz
+sha256	4f937b6065c366d776be86b1d24b8fc400ebc7ea006a9d77c49a8f2f0cd7e373	libmicrohttpd-0.9.39.tar.gz
diff --git a/package/libmicrohttpd/libmicrohttpd.mk b/package/libmicrohttpd/libmicrohttpd.mk
index 0575b7418f..e1b5f8b14e 100644
--- a/package/libmicrohttpd/libmicrohttpd.mk
+++ b/package/libmicrohttpd/libmicrohttpd.mk
@@ -4,11 +4,11 @@
 #
 ################################################################################
 
-LIBMICROHTTPD_VERSION = 0.9.38
+LIBMICROHTTPD_VERSION = 0.9.39
 LIBMICROHTTPD_SITE = $(BR2_GNU_MIRROR)/libmicrohttpd
 LIBMICROHTTPD_LICENSE_FILES = COPYING
 LIBMICROHTTPD_INSTALL_STAGING = YES
-LIBMICROHTTPD_CONF_OPTS = --disable-curl --disable-spdy
+LIBMICROHTTPD_CONF_OPTS = --disable-curl --disable-spdy --disable-examples
 
 ifeq ($(BR2_PACKAGE_LIBMICROHTTPD_SSL),y)
 LIBMICROHTTPD_LICENSE = LGPLv2.1+
@@ -21,9 +21,4 @@ LIBMICROHTTPD_LICENSE = LGPLv2.1+ or eCos
 LIBMICROHTTPD_CONF_OPTS += --disable-https
 endif
 
-ifeq ($(BR2_avr32),y)
-# no epoll_create1
-LIBMICROHTTPD_CONF_OPTS += --disable-epoll
-endif
-
 $(eval $(autotools-package))
diff --git a/package/libmpdclient/0001-musl-fixes.patch b/package/libmpdclient/0001-musl-fixes.patch
deleted file mode 100644
index 60df540b80..0000000000
--- a/package/libmpdclient/0001-musl-fixes.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From cc2ffe943dd36a4c95ec34b2f2bf413de15b7974 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Fran=C3=A7ois=20Revol?= <revol@free.fr>
-Date: Fri, 11 Jul 2014 08:56:49 +0200
-Subject: POSIX says fd_set is defined by <sys/select.h>
-
-Haiku requires this.
-
-cf.
-http://pubs.opengroup.org/onlinepubs/009695399/basedefs/sys/select.h.html
-
-Also guard sys/select.h by ifndef WIN32 as Mingw32 doesn't provide it.
-We'll avoid a configure check just for this.
-
-diff --git a/src/socket.c b/src/socket.c
-index f76510c..2aa5f7f 100644
---- a/src/socket.c
-+++ b/src/socket.c
-@@ -43,6 +43,7 @@
- #else
- #  include <netinet/in.h>
- #  include <arpa/inet.h>
-+#  include <sys/select.h>
- #  include <sys/socket.h>
- #  include <netdb.h>
- #  include <sys/un.h>
-diff --git a/src/sync.c b/src/sync.c
-index 43cfe50..0a6c9d3 100644
---- a/src/sync.c
-+++ b/src/sync.c
-@@ -33,6 +33,9 @@
- #include <assert.h>
- #include <stdlib.h>
- #include <stdio.h>
-+#ifndef WIN32
-+#include <sys/select.h>
-+#endif
- #include <fcntl.h>
- #include <unistd.h>
- 
--- 
-cgit v0.10-2-gd358
diff --git a/package/libmpdclient/libmpdclient.hash b/package/libmpdclient/libmpdclient.hash
new file mode 100644
index 0000000000..2fd20a41fb
--- /dev/null
+++ b/package/libmpdclient/libmpdclient.hash
@@ -0,0 +1,2 @@
+# Verified against http://www.musicpd.org/download/libmpdclient/2/libmpdclient-2.10.tar.xz.sig, sha256 locally computed
+sha256 4f08cde82dae70895f8e4532a6e9b54b201efd5591c6b5d6834895807ed2ff82  libmpdclient-2.10.tar.xz
diff --git a/package/libmpdclient/libmpdclient.mk b/package/libmpdclient/libmpdclient.mk
index 530e4fce96..db3ae0596e 100644
--- a/package/libmpdclient/libmpdclient.mk
+++ b/package/libmpdclient/libmpdclient.mk
@@ -5,7 +5,7 @@
 ################################################################################
 
 LIBMPDCLIENT_VERSION_MAJOR = 2
-LIBMPDCLIENT_VERSION = $(LIBMPDCLIENT_VERSION_MAJOR).9
+LIBMPDCLIENT_VERSION = $(LIBMPDCLIENT_VERSION_MAJOR).10
 LIBMPDCLIENT_SOURCE = libmpdclient-$(LIBMPDCLIENT_VERSION).tar.xz
 LIBMPDCLIENT_SITE = http://www.musicpd.org/download/libmpdclient/$(LIBMPDCLIENT_VERSION_MAJOR)
 LIBMPDCLIENT_CONF_ENV = ac_cv_prog_cc_c99='-std=gnu99'
diff --git a/package/libnspr/libnspr.hash b/package/libnspr/libnspr.hash
new file mode 100644
index 0000000000..632422f809
--- /dev/null
+++ b/package/libnspr/libnspr.hash
@@ -0,0 +1,2 @@
+# From https://ftp.mozilla.org/pub/mozilla.org/nspr/releases/v4.10.8/src/SHA256SUMS
+sha256	507ea57c525c0c524dae4857a642b4ef5c9d795518754c7f83422d22fe544a15	nspr-4.10.8.tar.gz
diff --git a/package/libnspr/libnspr.mk b/package/libnspr/libnspr.mk
index c4f86cc4d7..91a740a369 100644
--- a/package/libnspr/libnspr.mk
+++ b/package/libnspr/libnspr.mk
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-LIBNSPR_VERSION = 4.10.7
+LIBNSPR_VERSION = 4.10.8
 LIBNSPR_SOURCE = nspr-$(LIBNSPR_VERSION).tar.gz
 LIBNSPR_SITE = https://ftp.mozilla.org/pub/mozilla.org/nspr/releases/v$(LIBNSPR_VERSION)/src
 LIBNSPR_SUBDIR = nspr
diff --git a/package/libnss/libnss.hash b/package/libnss/libnss.hash
index 5664e93d2f..1f76f030cf 100644
--- a/package/libnss/libnss.hash
+++ b/package/libnss/libnss.hash
@@ -1,2 +1,2 @@
-# From https://ftp.mozilla.org/pub/mozilla.org/security/nss/releases/NSS_3_17_3_RTM/src/
-sha256	f4d5e9035a2f84f25f35c283de3b0ff60d72e918748de25eaf017ed201fa21d5	nss-3.17.3.tar.gz
+# From https://ftp.mozilla.org/pub/mozilla.org/security/nss/releases/NSS_3_17_4_RTM/src/SHA256SUMS
+sha256	1d98ad1881a4237ec98cbe472fc851480f0b0e954dfe224d047811fb96ff9d79	nss-3.17.4.tar.gz
diff --git a/package/libnss/libnss.mk b/package/libnss/libnss.mk
index ea28e5c299..db272b3814 100644
--- a/package/libnss/libnss.mk
+++ b/package/libnss/libnss.mk
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-LIBNSS_VERSION = 3.17.3
+LIBNSS_VERSION = 3.17.4
 LIBNSS_SOURCE = nss-$(LIBNSS_VERSION).tar.gz
 LIBNSS_SITE = https://ftp.mozilla.org/pub/mozilla.org/security/nss/releases/NSS_$(subst .,_,$(LIBNSS_VERSION))_RTM/src
 LIBNSS_DISTDIR = dist
@@ -37,7 +37,6 @@ LIBNSS_BUILD_VARS += USE_64=1
 endif
 endif
 
-
 define LIBNSS_BUILD_CMDS
 	$(MAKE1) -C $(@D)/nss coreconf \
 		SOURCE_MD_DIR=$(@D)/$(LIBNSS_DISTDIR) \
diff --git a/package/libpciaccess/libpciaccess.mk b/package/libpciaccess/libpciaccess.mk
index f27925d6db..ade4cc6474 100644
--- a/package/libpciaccess/libpciaccess.mk
+++ b/package/libpciaccess/libpciaccess.mk
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-LIBPCIACCESS_VERSION = 0.13.2
+LIBPCIACCESS_VERSION = 0.13.3
 LIBPCIACCESS_SOURCE = libpciaccess-$(LIBPCIACCESS_VERSION).tar.bz2
 LIBPCIACCESS_SITE = http://xorg.freedesktop.org/releases/individual/lib
 LIBPCIACCESS_LICENSE = MIT
diff --git a/package/libsecret/Config.in b/package/libsecret/Config.in
index 9a21d2eac9..70f1fe7eb9 100644
--- a/package/libsecret/Config.in
+++ b/package/libsecret/Config.in
@@ -4,8 +4,6 @@ config BR2_PACKAGE_LIBSECRET
 	depends on BR2_USE_WCHAR # gettext dep in libglib2
 	depends on BR2_TOOLCHAIN_HAS_THREADS # libglib2
 	depends on BR2_USE_MMU # libglib2
-	# Triggers an internal compiler error on AVR32
-	depends on !BR2_avr32
 	help
 	  libsecret is a library for storing and retrieving passwords and other
 	  secrets. It communicates with the "Secret Service" using DBus.
@@ -15,6 +13,5 @@ config BR2_PACKAGE_LIBSECRET
 	  https://wiki.gnome.org/Libsecret
 
 comment "libsecret needs a toolchain w/ wchar, threads"
-	depends on !BR2_avr32
 	depends on BR2_USE_MMU
 	depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS
diff --git a/package/libserialport/Config.in b/package/libserialport/Config.in
index 1e2935f1c2..d8218309e9 100644
--- a/package/libserialport/Config.in
+++ b/package/libserialport/Config.in
@@ -1,8 +1,9 @@
 config BR2_PACKAGE_LIBSERIALPORT
 	bool "libserialport"
 	help
-	  Serial port access library.
-
-	  This library is a part of the sigrok software suite.
+	  Libserialport is a minimal, cross-platform shared
+	  library written in C that is intended to take care
+	  of the OS-specific details when writing software
+	  that uses serial ports.
 
 	  http://sigrok.org/wiki/Libserialport
diff --git a/package/libsigrok/Config.in b/package/libsigrok/Config.in
index 09077fb79f..93bd06f7b4 100644
--- a/package/libsigrok/Config.in
+++ b/package/libsigrok/Config.in
@@ -1,6 +1,5 @@
 config BR2_PACKAGE_LIBSIGROK
 	bool "libsigrok"
-	select BR2_PACKAGE_LIBSERIALPORT
 	select BR2_PACKAGE_LIBZIP
 	select BR2_PACKAGE_LIBGLIB2
 	# libglib2
@@ -17,6 +16,21 @@ config BR2_PACKAGE_LIBSIGROK
 
 	  http://sigrok.org/wiki/Libsigrok
 
+if BR2_PACKAGE_LIBSIGROK
+
+config BR2_PACKAGE_LIBSIGROKCXX
+	bool "build C++ bindings"
+	select BR2_PACKAGE_GLIBMM
+	depends on BR2_INSTALL_LIBSTDCPP
+	help
+	  Build libsigrok C++ bindings as well.
+
+comment "C++ bindings need a toolchain w/ C++"
+	depends on BR2_PACKAGE_LIBSIGROK
+	depends on !BR2_INSTALL_LIBSTDCPP
+
+endif
+
 comment "libsigrok needs a toolchain w/ wchar, threads"
 	depends on BR2_USE_MMU
 	depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS
diff --git a/package/libsigrok/libsigrok.mk b/package/libsigrok/libsigrok.mk
index f91b8cb735..1e6080d099 100644
--- a/package/libsigrok/libsigrok.mk
+++ b/package/libsigrok/libsigrok.mk
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-LIBSIGROK_VERSION = 8656a71790133d4de42252a1e75b4209c03b4983
+LIBSIGROK_VERSION = 380ee96fdfe0895ca0aa0b158d5c332ef08f8b3c
 # No https access on upstream git
 LIBSIGROK_SITE = git://sigrok.org/libsigrok
 LIBSIGROK_LICENSE = GPLv3+
@@ -13,7 +13,7 @@ LIBSIGROK_LICENSE_FILES = COPYING
 LIBSIGROK_AUTORECONF = YES
 LIBSIGROK_INSTALL_STAGING = YES
 LIBSIGROK_DEPENDENCIES = libglib2 libzip host-pkgconf
-LIBSIGROK_CONF_OPTS = --disable-libudev --disable-bindings --disable-glibtest
+LIBSIGROK_CONF_OPTS = --disable-glibtest --disable-java --disable-python
 
 define LIBSIGROK_ADD_MISSING
 	mkdir -p $(@D)/autostuff
@@ -21,6 +21,13 @@ endef
 
 LIBSIGROK_PRE_CONFIGURE_HOOKS += LIBSIGROK_ADD_MISSING
 
+ifeq ($(BR2_PACKAGE_LIBSERIALPORT),y)
+LIBSIGROK_CONF_OPTS += --enable-libserialport
+LIBSIGROK_DEPENDENCIES += libserialport
+else
+LIBSIGROK_CONF_OPTS += --disable-libserialport
+endif
+
 ifeq ($(BR2_PACKAGE_LIBFTDI),y)
 LIBSIGROK_CONF_OPTS += --enable-libftdi
 LIBSIGROK_DEPENDENCIES += libftdi
@@ -39,4 +46,11 @@ ifeq ($(BR2_PACKAGE_GLIBMM),y)
 LIBSIGROK_DEPENDENCIES += glibmm
 endif
 
+ifeq ($(BR2_PACKAGE_LIBSIGROKCXX),y)
+LIBSIGROK_CONF_OPTS += --enable-cxx
+LIBSIGROK_DEPENDENCIES += host-autoconf-archive glibmm
+else
+LIBSIGROK_CONF_OPTS += --disable-cxx
+endif
+
 $(eval $(autotools-package))
diff --git a/package/libsigsegv/0002-Add-stack-direction-for-the-AArch64-architecture.patch b/package/libsigsegv/0001-Add-stack-direction-for-the-AArch64-architecture.patch
similarity index 100%
rename from package/libsigsegv/0002-Add-stack-direction-for-the-AArch64-architecture.patch
rename to package/libsigsegv/0001-Add-stack-direction-for-the-AArch64-architecture.patch
diff --git a/package/libsigsegv/0001-Add-stack-direction-for-the-AVR32-architecture.patch b/package/libsigsegv/0001-Add-stack-direction-for-the-AVR32-architecture.patch
deleted file mode 100644
index ba388c6d57..0000000000
--- a/package/libsigsegv/0001-Add-stack-direction-for-the-AVR32-architecture.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From 60d329bb2b20a67323152501969ff1db6a43e467 Mon Sep 17 00:00:00 2001
-From: Simon Dawson <spdawson@gmail.com>
-Date: Mon, 29 Dec 2014 13:53:51 +0100
-Subject: [PATCH 1/5] Add stack direction for the AVR32 architecture
-
-The libsigsegv configure step fails to correctly figure out the direction of
-stack growth for avr32. This leads to a zero STACK_DIRECTION definition, and
-build failures such as the following.
-
-  http://autobuild.buildroot.net/results/a3fe938f9376533b4777d79deb7a2ee83ed5ce33
-
-Signed-off-by: Simon Dawson <spdawson@gmail.com>
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
----
- m4/stack-direction.m4 | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/m4/stack-direction.m4 b/m4/stack-direction.m4
-index 00e0445..39c1a28 100644
---- a/m4/stack-direction.m4
-+++ b/m4/stack-direction.m4
-@@ -16,7 +16,7 @@ AC_DEFUN([SV_STACK_DIRECTION],
-       alpha* | \
-       arc | \
-       arm* | strongarm* | xscale* | \
--      avr | \
-+      avr | avr32 | \
-       c1 | c2 | c32 | c34 | c38 | \
-       clipper | \
-       cris | \
--- 
-2.1.0
-
diff --git a/package/libsigsegv/0003-Add-stack-direction-for-the-Microblaze-architecture.patch b/package/libsigsegv/0002-Add-stack-direction-for-the-Microblaze-architecture.patch
similarity index 100%
rename from package/libsigsegv/0003-Add-stack-direction-for-the-Microblaze-architecture.patch
rename to package/libsigsegv/0002-Add-stack-direction-for-the-Microblaze-architecture.patch
diff --git a/package/libsigsegv/0004-Add-stack-direction-for-the-Blackfin-architecture.patch b/package/libsigsegv/0003-Add-stack-direction-for-the-Blackfin-architecture.patch
similarity index 97%
rename from package/libsigsegv/0004-Add-stack-direction-for-the-Blackfin-architecture.patch
rename to package/libsigsegv/0003-Add-stack-direction-for-the-Blackfin-architecture.patch
index e5f3c49587..5d8232a1b6 100644
--- a/package/libsigsegv/0004-Add-stack-direction-for-the-Blackfin-architecture.patch
+++ b/package/libsigsegv/0003-Add-stack-direction-for-the-Blackfin-architecture.patch
@@ -19,7 +19,7 @@ index 53f4216..1a97d5a 100644
 @@ -18,6 +18,7 @@ AC_DEFUN([SV_STACK_DIRECTION],
        arc | \
        arm* | strongarm* | xscale* | \
-       avr | avr32 | \
+       avr | \
 +      bfin | \
        c1 | c2 | c32 | c34 | c38 | \
        clipper | \
diff --git a/package/libsigsegv/0005-Add-stack-direction-for-the-Nios-II-architecture.patch b/package/libsigsegv/0004-Add-stack-direction-for-the-Nios-II-architecture.patch
similarity index 100%
rename from package/libsigsegv/0005-Add-stack-direction-for-the-Nios-II-architecture.patch
rename to package/libsigsegv/0004-Add-stack-direction-for-the-Nios-II-architecture.patch
diff --git a/package/libtool/libtool.hash b/package/libtool/libtool.hash
index 06a562d721..baaac61232 100644
--- a/package/libtool/libtool.hash
+++ b/package/libtool/libtool.hash
@@ -1,2 +1,2 @@
 # Locally calculated after checking pgp signature
-sha256	84aac136513b009278896ffa255e4d685bcdb0cb0e5363be36adad64c986177e	libtool-2.4.5.tar.xz
+sha256	7c87a8c2c8c0fc9cd5019e402bed4292462d00a718a7cd5f11218153bf28b26f	libtool-2.4.6.tar.xz
diff --git a/package/libtool/libtool.mk b/package/libtool/libtool.mk
index 3332cfc000..28786d2df9 100644
--- a/package/libtool/libtool.mk
+++ b/package/libtool/libtool.mk
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-LIBTOOL_VERSION = 2.4.5
+LIBTOOL_VERSION = 2.4.6
 LIBTOOL_SOURCE = libtool-$(LIBTOOL_VERSION).tar.xz
 LIBTOOL_SITE = $(BR2_GNU_MIRROR)/libtool
 LIBTOOL_INSTALL_STAGING = YES
diff --git a/package/libunistring/libunistring.hash b/package/libunistring/libunistring.hash
new file mode 100644
index 0000000000..e272997189
--- /dev/null
+++ b/package/libunistring/libunistring.hash
@@ -0,0 +1,2 @@
+# Locally calculated after checking pgp signature
+sha256	0b3f4dbea5124f56639a701376ed78e5f595e7b720cfbb0cf1f81f375894c77b	libunistring-0.9.5.tar.xz
diff --git a/package/libunistring/libunistring.mk b/package/libunistring/libunistring.mk
index fd77d12421..0060518adc 100644
--- a/package/libunistring/libunistring.mk
+++ b/package/libunistring/libunistring.mk
@@ -4,8 +4,9 @@
 #
 ################################################################################
 
-LIBUNISTRING_VERSION = 0.9.4
+LIBUNISTRING_VERSION = 0.9.5
 LIBUNISTRING_SITE = $(BR2_GNU_MIRROR)/libunistring
+LIBUNISTRING_SOURCE = libunistring-$(LIBUNISTRING_VERSION).tar.xz
 LIBUNISTRING_INSTALL_STAGING = YES
 LIBUNISTRING_LICENSE = LGPLv3+
 LIBUNISTRING_LICENSE_FILES = COPYING.LIB
diff --git a/package/libusb/libusb.mk b/package/libusb/libusb.mk
index 33a7157a26..d24a6343eb 100644
--- a/package/libusb/libusb.mk
+++ b/package/libusb/libusb.mk
@@ -17,10 +17,6 @@ LIBUSB_INSTALL_STAGING = YES
 HOST_LIBUSB_CONF_OPTS = --disable-udev
 HOST_LIBUSB_DEPENDENCIES = host-pkgconf
 
-ifeq ($(BR2_avr32),y)
-LIBUSB_CONF_OPTS += --disable-timerfd
-endif
-
 ifeq ($(BR2_PACKAGE_HAS_UDEV),y)
 LIBUSB_DEPENDENCIES += udev
 else
diff --git a/package/linux-headers/Config.in.host b/package/linux-headers/Config.in.host
index 2755f2f9b4..9ebf48abf4 100644
--- a/package/linux-headers/Config.in.host
+++ b/package/linux-headers/Config.in.host
@@ -5,7 +5,7 @@ comment "Kernel Header Options"
 
 choice
 	prompt "Kernel Headers"
-	default BR2_KERNEL_HEADERS_3_18
+	default BR2_KERNEL_HEADERS_3_19
 	help
 	  Select the version of kernel header files you wish to use.
 	  You must select the correct set of header files to match
@@ -14,59 +14,72 @@ choice
 	config BR2_KERNEL_HEADERS_3_0
 		bool "Linux 3.0.x kernel headers"
 		depends on BR2_DEPRECATED_SINCE_2014_08
-		depends on !BR2_arc
+		depends on !BR2_arc && !BR2_nios2
 		select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0
 
 	config BR2_KERNEL_HEADERS_3_2
 		bool "Linux 3.2.x kernel headers"
-		depends on !BR2_arc
+		depends on !BR2_arc && !BR2_nios2
 		select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_2
 
 	config BR2_KERNEL_HEADERS_3_4
 		bool "Linux 3.4.x kernel headers"
-		depends on !BR2_arc
+		depends on !BR2_arc && !BR2_nios2
 		select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_4
 
 	config BR2_KERNEL_HEADERS_3_10
 		bool "Linux 3.10.x kernel headers"
+		depends on !BR2_nios2
 		select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_10
 
 	config BR2_KERNEL_HEADERS_3_11
 		bool "Linux 3.11.x kernel headers"
 		depends on BR2_DEPRECATED_SINCE_2014_08
+		depends on !BR2_nios2
 		select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_11
 
 	config BR2_KERNEL_HEADERS_3_12
 		bool "Linux 3.12.x kernel headers"
+		depends on !BR2_nios2
 		select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_12
 
 	config BR2_KERNEL_HEADERS_3_13
 		bool "Linux 3.13.x kernel headers"
 		depends on BR2_DEPRECATED_SINCE_2014_08
+		depends on !BR2_nios2
 		select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_13
 
 	config BR2_KERNEL_HEADERS_3_14
 		bool "Linux 3.14.x kernel headers"
+		depends on !BR2_nios2
 		select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_14
 
 	config BR2_KERNEL_HEADERS_3_15
 		bool "Linux 3.15.x kernel headers"
 		depends on BR2_DEPRECATED_SINCE_2014_08
+		depends on !BR2_nios2
 		select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_15
 
 	config BR2_KERNEL_HEADERS_3_16
 		bool "Linux 3.16.x kernel headers"
 		depends on BR2_DEPRECATED_SINCE_2015_02
+		depends on !BR2_nios2
 		select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_16
 
 	config BR2_KERNEL_HEADERS_3_17
 		bool "Linux 3.17.x kernel headers"
+		depends on !BR2_nios2
 		select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_17
 
 	config BR2_KERNEL_HEADERS_3_18
 		bool "Linux 3.18.x kernel headers"
+		depends on !BR2_nios2
 		select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_18
 
+	config BR2_KERNEL_HEADERS_3_19
+		bool "Linux 3.19.x kernel headers"
+		select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_19
+
 	config BR2_KERNEL_HEADERS_VERSION
 		bool "Manually specified Linux version"
 endchoice
@@ -88,6 +101,10 @@ choice
 	  This is used to hide/show some packages that have strict
 	  requirements on the version of kernel headers.
 
+config BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_3_19
+	bool "3.19.x"
+	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_19
+
 config BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_3_18
 	bool "3.18.x"
 	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_18
@@ -172,15 +189,16 @@ endchoice
 config BR2_DEFAULT_KERNEL_HEADERS
 	string
 	default "3.0.101"	if BR2_KERNEL_HEADERS_3_0
-	default "3.2.66"	if BR2_KERNEL_HEADERS_3_2
+	default "3.2.67"	if BR2_KERNEL_HEADERS_3_2
 	default "3.4.106"	if BR2_KERNEL_HEADERS_3_4
-	default "3.10.68"	if BR2_KERNEL_HEADERS_3_10
+	default "3.10.70"	if BR2_KERNEL_HEADERS_3_10
 	default "3.11.10"	if BR2_KERNEL_HEADERS_3_11
-	default "3.12.37"	if BR2_KERNEL_HEADERS_3_12
+	default "3.12.38"	if BR2_KERNEL_HEADERS_3_12
 	default "3.13.11"	if BR2_KERNEL_HEADERS_3_13
-	default "3.14.32"	if BR2_KERNEL_HEADERS_3_14
+	default "3.14.34"	if BR2_KERNEL_HEADERS_3_14
 	default "3.15.10"	if BR2_KERNEL_HEADERS_3_15
 	default "3.16.7"	if BR2_KERNEL_HEADERS_3_16
 	default "3.17.8"	if BR2_KERNEL_HEADERS_3_17
-	default "3.18.6"	if BR2_KERNEL_HEADERS_3_18
+	default "3.18.8"	if BR2_KERNEL_HEADERS_3_18
+	default "3.19"		if BR2_KERNEL_HEADERS_3_19
 	default BR2_DEFAULT_KERNEL_VERSION if BR2_KERNEL_HEADERS_VERSION
diff --git a/package/lmbench/lmbench.mk b/package/lmbench/lmbench.mk
index 63a83fd2e7..59e750c589 100644
--- a/package/lmbench/lmbench.mk
+++ b/package/lmbench/lmbench.mk
@@ -14,9 +14,9 @@ LMBENCH_CFLAGS = $(TARGET_CFLAGS)
 LMBENCH_LDLIBS = $(TARGET_LDFLAGS)
 
 ifeq ($(BR2_PACKAGE_LIBTIRPC),y)
-LMBENCH_DEPENDENCIES += libtirpc
-LMBENCH_CFLAGS += -I$(STAGING_DIR)/usr/include/tirpc/
-LMBENCH_LDFLAGS += -ltirpc
+LMBENCH_DEPENDENCIES += host-pkgconf libtirpc
+LMBENCH_CFLAGS += $(shell $(PKG_CONFIG_HOST_BINARY) --cflags libtirpc)
+LMBENCH_LDFLAGS += $(shell $(PKG_CONFIG_HOST_BINARY) --libs libtirpc)
 endif
 
 define LMBENCH_CONFIGURE_CMDS
diff --git a/package/lua-ev/Config.in b/package/lua-ev/Config.in
index 74b5dc7b8e..4b3f8ed185 100644
--- a/package/lua-ev/Config.in
+++ b/package/lua-ev/Config.in
@@ -2,7 +2,7 @@ config BR2_PACKAGE_LUA_EV
 	bool "lua-ev"
 	depends on BR2_PACKAGE_HAS_LUAINTERPRETER
 	select BR2_PACKAGE_LIBEV
-	depends on !(BR2_avr32 || BR2_bfin) # libev
+	depends on !BR2_bfin # libev
 	help
 	  Get access to the libev library from Lua.
 
diff --git a/package/lua-periphery/Config.in b/package/lua-periphery/Config.in
new file mode 100644
index 0000000000..de5a71633c
--- /dev/null
+++ b/package/lua-periphery/Config.in
@@ -0,0 +1,8 @@
+config BR2_PACKAGE_LUA_PERIPHERY
+	bool "lua-periphery"
+	depends on BR2_PACKAGE_HAS_LUAINTERPRETER
+	help
+	  A library for GPIO, SPI, I2C, MMIO, and Serial peripheral I/O
+	  interface access in userspace Linux with Lua.
+
+	  https://github.com/vsergeev/lua-periphery
diff --git a/package/lua-periphery/lua-periphery.mk b/package/lua-periphery/lua-periphery.mk
new file mode 100644
index 0000000000..0717a27545
--- /dev/null
+++ b/package/lua-periphery/lua-periphery.mk
@@ -0,0 +1,13 @@
+################################################################################
+#
+# lua-periphery
+#
+################################################################################
+
+LUA_PERIPHERY_VERSION_UPSTREAM = 1.0.4
+LUA_PERIPHERY_VERSION = $(LUA_PERIPHERY_VERSION_UPSTREAM)-1
+LUA_PERIPHERY_SUBDIR = lua-periphery
+LUA_PERIPHERY_LICENSE = MIT
+LUA_PERIPHERY_LICENSE_FILES = $(LUA_PERIPHERY_SUBDIR)/LICENSE
+
+$(eval $(luarocks-package))
diff --git a/package/luacrypto/luacrypto.mk b/package/luacrypto/luacrypto.mk
index 42e20afdf3..b0e972c629 100644
--- a/package/luacrypto/luacrypto.mk
+++ b/package/luacrypto/luacrypto.mk
@@ -9,6 +9,6 @@ LUACRYPTO_VERSION = $(LUACRYPTO_VERSION_UPSTREAM)-1
 LUACRYPTO_SUBDIR = luacrypto-$(LUACRYPTO_VERSION_UPSTREAM)
 LUACRYPTO_LICENSE = MIT
 LUACRYPTO_LICENSE_FILES = $(LUACRYPTO_SUBDIR)/COPYING
-LUACRYPTO_DEPENDENCIES = luainterpreter openssl
+LUACRYPTO_DEPENDENCIES = openssl
 
 $(eval $(luarocks-package))
diff --git a/package/lxc/Config.in b/package/lxc/Config.in
index cf715ab48f..7bae87d006 100644
--- a/package/lxc/Config.in
+++ b/package/lxc/Config.in
@@ -5,7 +5,6 @@ config BR2_PACKAGE_LXC
 	depends on BR2_TOOLCHAIN_HAS_THREADS
 	depends on BR2_LARGEFILE
 	depends on BR2_USE_MMU # fork()
-	depends on !BR2_avr32 # no timerfd
 	# the toolchain doesn't support setns syscall
 	depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII201305
 	depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII201405
@@ -19,7 +18,6 @@ config BR2_PACKAGE_LXC
 
 comment "lxc needs a toolchain w/ IPv6, threads, largefile, headers >= 3.0"
 	depends on BR2_USE_MMU
-	depends on !BR2_avr32 # no timerfd
 	depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII201305
 	depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII201405
 	depends on !BR2_INET_IPV6 || !BR2_TOOLCHAIN_HAS_THREADS \
diff --git a/package/mesa3d-headers/Config.in b/package/mesa3d-headers/Config.in
new file mode 100644
index 0000000000..c4efab673f
--- /dev/null
+++ b/package/mesa3d-headers/Config.in
@@ -0,0 +1,9 @@
+config BR2_PACKAGE_MESA3D_HEADERS
+	bool
+	help
+	  Mesa 3D, an open-source implementation of the OpenGL
+	  specification.
+
+	  This package only installs headers needed by other packages.
+
+	  http://mesa3d.org
diff --git a/package/mesa3d-headers/mesa3d-headers.hash b/package/mesa3d-headers/mesa3d-headers.hash
new file mode 120000
index 0000000000..137d0bea9c
--- /dev/null
+++ b/package/mesa3d-headers/mesa3d-headers.hash
@@ -0,0 +1 @@
+../mesa3d/mesa3d.hash
\ No newline at end of file
diff --git a/package/mesa3d-headers/mesa3d-headers.mk b/package/mesa3d-headers/mesa3d-headers.mk
new file mode 100644
index 0000000000..e20859ebb9
--- /dev/null
+++ b/package/mesa3d-headers/mesa3d-headers.mk
@@ -0,0 +1,79 @@
+################################################################################
+#
+# mesa3d-headers
+#
+################################################################################
+
+# mesa3d-headers is inherently incompatible with mesa3d, so error out
+# if both are enabled.
+ifeq ($(BR2_PACKAGE_MESA3D)$(BR2_PACKAGE_MESA3D_HEADERS),yy)
+$(error mesa3d-headers enabled, but mesa3d enabled too)
+endif
+
+# Not possible to directly refer to mesa3d variables, because of
+# first/second expansion trickery...
+MESA3D_HEADERS_VERSION = 10.4.5
+MESA3D_HEADERS_SOURCE = MesaLib-$(MESA3D_HEADERS_VERSION).tar.bz2
+MESA3D_HEADERS_SITE = ftp://ftp.freedesktop.org/pub/mesa/$(MESA3D_HEADERS_VERSION)
+MESA3D_HEADERS_LICENSE = MIT, SGI, Khronos
+MESA3D_HEADERS_LICENSE_FILES = docs/license.html
+
+# Only installs header files
+MESA3D_HEADERS_INSTALL_STAGING = YES
+MESA3D_HEADERS_INSTALL_TARGET = NO
+
+MESA3D_HEADERS_DIRS = KHR
+
+ifeq ($(BR2_PACKAGE_HAS_LIBGL),y)
+
+MESA3D_HEADERS_DIRS += GL
+
+ifeq ($(BR2_PACKAGE_XORG7),y)
+
+# Not using $(SED) because we do not want to work in-place, and $(SED)
+# contains -i.
+define MESA3D_HEADERS_BUILD_DRI_PC
+	sed -e 's:@\(exec_\)\?prefix@:/usr:' \
+	    -e 's:@libdir@:${exec_prefix}/lib:' \
+	    -e 's:@includedir@:${prefix}/include:' \
+	    -e 's:@DRI_DRIVER_INSTALL_DIR@:${libdir}/dri:' \
+	    -e 's:@VERSION@:$(MESA3D_HEADERS_VERSION):' \
+	    -e 's:@DRI_PC_REQ_PRIV@::' \
+	    $(@D)/src/mesa/drivers/dri/dri.pc.in \
+	    >$(@D)/src/mesa/drivers/dri/dri.pc
+endef
+
+define MESA3D_HEADERS_INSTALL_DRI_PC
+	$(INSTALL) -D -m 0644 $(@D)/include/GL/internal/dri_interface.h \
+		$(STAGING_DIR)/usr/include/GL/internal/dri_interface.h
+	$(INSTALL) -D -m 0644 $(@D)/src/mesa/drivers/dri/dri.pc \
+		$(STAGING_DIR)/usr/lib/pkg-config/dri.pc
+endef
+
+endif # Xorg
+
+endif # OpenGL
+
+ifeq ($(BR2_PACKAGE_HAS_LIBEGL),y)
+MESA3D_HEADERS_DIRS += EGL
+endif
+
+ifeq ($(BR2_PACKAGE_HAS_LIBGLES),y)
+MESA3D_HEADERS_DIRS += GLES GLES2
+endif
+
+ifeq ($(BR2_PACKAGE_HAS_LIBOPENVG),y)
+MESA3D_HEADERS_DIRS += VG
+endif
+
+define MESA3D_HEADERS_BUILD_CMDS
+	$(MESA3D_HEADERS_BUILD_DRI_PC)
+endef
+
+define MESA3D_HEADERS_INSTALL_STAGING_CMDS
+	$(foreach d,$(MESA3D_HEADERS_DIRS),\
+		cp -dpfr $(@D)/include/$(d) $(STAGING_DIR)/usr/include/ || exit 1$(sep))
+	$(MESA3D_HEADERS_INSTALL_DRI_PC)
+endef
+
+$(eval $(generic-package))
diff --git a/package/mesa3d/mesa3d.hash b/package/mesa3d/mesa3d.hash
index 6b00367eb5..677781fb70 100644
--- a/package/mesa3d/mesa3d.hash
+++ b/package/mesa3d/mesa3d.hash
@@ -1,2 +1,2 @@
-# From http://lists.freedesktop.org/archives/mesa-announce/2015-February/000139.html
-sha256	f18a967e9c4d80e054b2fdff8c130ce6e6d1f8eecfc42c9f354f8628d8b4df1c	MesaLib-10.4.4.tar.bz2
+# From http://cgit.freedesktop.org/mesa/mesa/commit/?h=10.4&id=41bdeda10210b8f1d358c04b25af2fbfe3335531
+sha256	bf60000700a9d58e3aca2bfeee7e781053b0d839e61a95b1883e05a2dee247a0	MesaLib-10.4.5.tar.bz2
diff --git a/package/mesa3d/mesa3d.mk b/package/mesa3d/mesa3d.mk
index eb38a9ae8e..5e0e20eae3 100644
--- a/package/mesa3d/mesa3d.mk
+++ b/package/mesa3d/mesa3d.mk
@@ -4,7 +4,8 @@
 #
 ################################################################################
 
-MESA3D_VERSION = 10.4.4
+# When updating the version, please also update mesa3d-headers
+MESA3D_VERSION = 10.4.5
 MESA3D_SOURCE = MesaLib-$(MESA3D_VERSION).tar.bz2
 MESA3D_SITE = ftp://ftp.freedesktop.org/pub/mesa/$(MESA3D_VERSION)
 MESA3D_LICENSE = MIT, SGI, Khronos
diff --git a/package/mono/mono.mk b/package/mono/mono.mk
index 0bbf33864e..9ec3c24d89 100644
--- a/package/mono/mono.mk
+++ b/package/mono/mono.mk
@@ -21,7 +21,6 @@ MONO_AUTORECONF = YES
 MONO_CONF_OPTS = --disable-gtk-doc \
 	--with-mcs-docs=no \
 	--with-moonlight=no \
-	--disable-libraries \
 	--with-ikvm-native=no \
 	--enable-minimal=aot,profiler,debug \
 	--disable-mcs-build \
diff --git a/package/mpc/mpc.hash b/package/mpc/mpc.hash
index bee59fe588..98f1447a0d 100644
--- a/package/mpc/mpc.hash
+++ b/package/mpc/mpc.hash
@@ -1,2 +1,2 @@
 # From http://www.multiprecision.org/index.php?prog=mpc&page=download
-sha1	5072d82ab50ec36cc8c0e320b5c377adb48abe70	mpc-1.0.2.tar.gz
+sha1	b8be66396c726fdc36ebb0f692ed8a8cca3bcc66	mpc-1.0.3.tar.gz
diff --git a/package/mpc/mpc.mk b/package/mpc/mpc.mk
index 81ee5f0da7..bc26599520 100644
--- a/package/mpc/mpc.mk
+++ b/package/mpc/mpc.mk
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-MPC_VERSION = 1.0.2
+MPC_VERSION = 1.0.3
 MPC_SITE = $(BR2_GNU_MIRROR)/mpc
 MPC_LICENSE = LGPLv3+
 MPC_LICENSE_FILES = COPYING.LESSER
diff --git a/package/mpd/Config.in b/package/mpd/Config.in
index bab0b22e3d..287ccf3b9e 100644
--- a/package/mpd/Config.in
+++ b/package/mpd/Config.in
@@ -5,8 +5,8 @@ menuconfig BR2_PACKAGE_MPD
 	depends on BR2_USE_WCHAR # libglib2, flac
 	depends on BR2_TOOLCHAIN_HAS_THREADS # libglib2
 	depends on BR2_USE_MMU # libglib2
-	# avr32, sparc & CS powerpc gcc are too old
-	depends on !(BR2_avr32 || BR2_sparc)
+	# sparc & CS powerpc gcc are too old
+	depends on !BR2_sparc
 	depends on !(BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_POWERPC201103 || BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_POWERPC201009)
 	select BR2_PACKAGE_BOOST
 	select BR2_PACKAGE_LIBGLIB2
@@ -311,6 +311,6 @@ endif
 
 comment "mpd needs a toolchain w/ C++, threads, wchar"
 	depends on BR2_USE_MMU
-	depends on !(BR2_avr32 || BR2_sparc)
+	depends on !BR2_sparc
 	depends on !BR2_INSTALL_LIBSTDCPP || !BR2_USE_WCHAR || \
 		!BR2_TOOLCHAIN_HAS_THREADS || !BR2_LARGEFILE
diff --git a/package/mpd/mpd.hash b/package/mpd/mpd.hash
index 5cb6102b2a..9f26f61e26 100644
--- a/package/mpd/mpd.hash
+++ b/package/mpd/mpd.hash
@@ -1,2 +1,2 @@
 # Locally calculated after checking pgp signature
-sha256	d3c069d2867e362b343c5babea3e7fe9e6780d3dcb1be38808a8ea48911bae50	mpd-0.19.8.tar.xz
+sha256	47851423053cd38cfad65be5985b41b7cd5bdbe8d0d13378e11748a28b19f26f	mpd-0.19.9.tar.xz
diff --git a/package/mpd/mpd.mk b/package/mpd/mpd.mk
index 7333164ecb..41f3564ca5 100644
--- a/package/mpd/mpd.mk
+++ b/package/mpd/mpd.mk
@@ -5,7 +5,7 @@
 ################################################################################
 
 MPD_VERSION_MAJOR = 0.19
-MPD_VERSION = $(MPD_VERSION_MAJOR).8
+MPD_VERSION = $(MPD_VERSION_MAJOR).9
 MPD_SOURCE = mpd-$(MPD_VERSION).tar.xz
 MPD_SITE = http://www.musicpd.org/download/mpd/$(MPD_VERSION_MAJOR)
 MPD_DEPENDENCIES = host-pkgconf boost libglib2
diff --git a/package/mpg123/mpg123.hash b/package/mpg123/mpg123.hash
index 22d16a7bd7..383dae5c7a 100644
--- a/package/mpg123/mpg123.hash
+++ b/package/mpg123/mpg123.hash
@@ -1,3 +1,3 @@
-# From http://sourceforge.net/projects/mpg123/files/mpg123/1.21.0/
-md5	13a9df5d4e7aa110e4ae27cf30128ce9	mpg123-1.21.0.tar.bz2
-sha1	a2fd84078632b7ab73ae4cd64c3f941d140167a8	mpg123-1.21.0.tar.bz2
+# From http://sourceforge.net/projects/mpg123/files/mpg123/1.22.0/
+md5	33069bff83413824669c8ecb37e706d5	mpg123-1.22.0.tar.bz2
+sha1	0375e2aa11800d7d4d869ec84b93611e90583206	mpg123-1.22.0.tar.bz2
diff --git a/package/mpg123/mpg123.mk b/package/mpg123/mpg123.mk
index 0341ed9710..bbad0b6941 100644
--- a/package/mpg123/mpg123.mk
+++ b/package/mpg123/mpg123.mk
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-MPG123_VERSION = 1.21.0
+MPG123_VERSION = 1.22.0
 MPG123_SOURCE = mpg123-$(MPG123_VERSION).tar.bz2
 MPG123_SITE = http://downloads.sourceforge.net/project/mpg123/mpg123/$(MPG123_VERSION)
 MPG123_CONF_OPTS = --disable-lfs-alias
diff --git a/package/mtr/Config.in b/package/mtr/Config.in
index 4e529d6bf3..5e2d5b238c 100644
--- a/package/mtr/Config.in
+++ b/package/mtr/Config.in
@@ -1,8 +1,5 @@
 config BR2_PACKAGE_MTR
 	bool "mtr"
-	# res_mkquery() only available in 0.9.33+
-	depends on !BR2_UCLIBC_VERSION_0_9_31
-	depends on !BR2_avr32
 	help
 	  mtr combines the functionality of the 'traceroute' and 'ping'
 	  programs in a single network diagnostic tool.
diff --git a/package/mysql/Config.in b/package/mysql/Config.in
index 9c5d6ed0df..f5549ef7bf 100644
--- a/package/mysql/Config.in
+++ b/package/mysql/Config.in
@@ -4,7 +4,6 @@ config BR2_PACKAGE_MYSQL
 	depends on BR2_USE_MMU # fork()
 	depends on BR2_TOOLCHAIN_HAS_THREADS
 	# Toolchain is not up to the task
-	depends on !BR2_avr32
 	select BR2_PACKAGE_NCURSES
 	select BR2_PACKAGE_READLINE
 	help
diff --git a/package/netsnmp/Config.in b/package/netsnmp/Config.in
index 8edbd39446..47a53d7ead 100644
--- a/package/netsnmp/Config.in
+++ b/package/netsnmp/Config.in
@@ -9,6 +9,18 @@ config BR2_PACKAGE_NETSNMP
 
 if BR2_PACKAGE_NETSNMP
 
+config BR2_PACKAGE_NETSNMP_SERVER
+	bool "server"
+	default y
+	help
+	  The snmpd server.
+
+config BR2_PACKAGE_NETSNMP_CLIENTS
+	bool "clients"
+	default y
+	help
+	  The net-snmp clients (snmpget, snmpwalk, etc).
+
 config BR2_PACKAGE_NETSNMP_ENABLE_MIBS
 	bool "Install MIB files on target and enable MIB loading code"
 	default y
@@ -37,4 +49,11 @@ config BR2_PACKAGE_NETSNMP_ENABLE_DEBUGGING
 	  support, including the ability to log with DEBUGMSG(),
 	  DEBUGMSGTL() and companion macros.
 
+config BR2_PACKAGE_NETSNMP_OPENSSL_INTERNAL
+	bool "Enable minimal internal OpenSSL code"
+	depends on !BR2_PACKAGE_OPENSSL
+	help
+	  Enable a minimal internal copy of OpenSSL usable for USM
+	  security. It will not enable the usage of SNMP over (D)TLS.
+
 endif
diff --git a/package/netsnmp/netsnmp.mk b/package/netsnmp/netsnmp.mk
index f1b103e4ea..279a93dcd8 100644
--- a/package/netsnmp/netsnmp.mk
+++ b/package/netsnmp/netsnmp.mk
@@ -54,6 +54,8 @@ ifeq ($(BR2_STATIC_LIBS),y)
 	# openssl uses zlib, so we need to explicitly link with it when static
 	NETSNMP_CONF_ENV += LIBS=-lz
 endif
+else ifeq ($(BR2_PACKAGE_NETSNMP_OPENSSL_INTERNAL),y)
+	NETSNMP_CONF_OPTS += --with-openssl=internal
 else
 	NETSNMP_CONF_OPTS += --without-openssl
 endif
@@ -67,6 +69,18 @@ ifneq ($(BR2_PACKAGE_NETSNMP_ENABLE_DEBUGGING),y)
 	NETSNMP_CONF_OPTS += --disable-debugging
 endif
 
+ifeq ($(BR2_PACKAGE_NETSNMP_SERVER),y)
+	NETSNMP_CONF_OPTS += --enable-agent
+else
+	NETSNMP_CONF_OPTS += --disable-agent
+endif
+
+ifeq ($(BR2_PACKAGE_NETSNMP_CLIENTS),y)
+	NETSNMP_CONF_OPTS += --enable-applications
+else
+	NETSNMP_CONF_OPTS += --disable-applications
+endif
+
 # Remove IPv6 MIBs if there's no IPv6
 ifneq ($(BR2_INET_IPV6),y)
 define NETSNMP_REMOVE_MIBS_IPV6
@@ -84,10 +98,12 @@ endef
 
 NETSNMP_POST_INSTALL_TARGET_HOOKS += NETSNMP_REMOVE_BLOAT_MIBS
 
+ifeq ($(BR2_PACKAGE_NETSNMP_SERVER),y)
 define NETSNMP_INSTALL_INIT_SYSV
 	$(INSTALL) -D -m 0755 package/netsnmp/S59snmpd \
 		$(TARGET_DIR)/etc/init.d/S59snmpd
 endef
+endif
 
 define NETSNMP_STAGING_NETSNMP_CONFIG_FIXUP
 	$(SED) 	"s,^includedir=.*,includedir=\'$(STAGING_DIR)/usr/include\',g" \
diff --git a/package/network-manager/Config.in b/package/network-manager/Config.in
index a3e6e33e6d..8b3ad71607 100644
--- a/package/network-manager/Config.in
+++ b/package/network-manager/Config.in
@@ -1,6 +1,5 @@
 config BR2_PACKAGE_NETWORK_MANAGER
 	bool "networkmanager"
-	depends on !BR2_avr32 # udev
 	depends on BR2_INET_IPV6
 	depends on BR2_LARGEFILE # acl
 	depends on BR2_USE_WCHAR # libglib2 and gnutls
@@ -54,7 +53,6 @@ config BR2_PACKAGE_NETWORK_MANAGER_PPPD
 endif
 
 comment "NetworkManager needs udev /dev management and a toolchain w/ IPv6, largefile, wchar, threads, headers >= 3.7"
-	depends on !BR2_avr32
 	depends on BR2_USE_MMU
 	depends on !BR2_INET_IPV6 || !BR2_LARGEFILE || !BR2_USE_WCHAR || \
 		!BR2_TOOLCHAIN_HAS_THREADS || \
diff --git a/package/nvidia-driver/Config.in b/package/nvidia-driver/Config.in
new file mode 100644
index 0000000000..cd7fc958e0
--- /dev/null
+++ b/package/nvidia-driver/Config.in
@@ -0,0 +1,66 @@
+comment "nvidia-driver needs an (e)glibc toolchain and a modular Xorg server"
+	depends on BR2_i386 || BR2_x86_64
+	depends on !BR2_TOOLCHAIN_USES_GLIBC \
+		|| !BR2_PACKAGE_XSERVER_XORG_SERVER_MODULAR
+
+config BR2_PACKAGE_NVIDIA_DRIVER
+	bool "nvidia-driver"
+	depends on BR2_i386 || BR2_x86_64
+	depends on BR2_TOOLCHAIN_USES_GLIBC
+	depends on BR2_PACKAGE_XSERVER_XORG_SERVER_MODULAR
+	select BR2_PACKAGE_MESA3D_HEADERS
+	select BR2_PACKAGE_XLIB_LIBX11
+	select BR2_PACKAGE_XLIB_LIBXEXT
+	select BR2_PACKAGE_HAS_LIBGL
+	select BR2_PACKAGE_HAS_LIBEGL
+	select BR2_PACKAGE_HAS_LIBGLES
+	help
+	  The binary-only driver blob for NVidia cards.
+	  This is the userland part only.
+
+	  http://www.nvidia.com/
+
+if BR2_PACKAGE_NVIDIA_DRIVER
+
+config BR2_PACKAGE_PROVIDES_LIBGL
+	default "nvidia-driver"
+
+config BR2_PACKAGE_PROVIDES_LIBEGL
+	default "nvidia-driver"
+
+config BR2_PACKAGE_PROVIDES_LIBGLES
+	default "nvidia-driver"
+
+config BR2_PACKAGE_NVIDIA_DRIVER_CUDA
+	bool "CUDA support"
+
+config BR2_PACKAGE_NVIDIA_DRIVER_OPENCL
+	bool "OpenCL support"
+	depends on BR2_PACKAGE_NVIDIA_DRIVER_CUDA
+
+config BR2_PACKAGE_NVIDIA_DRIVER_PRIVATE_LIBS
+	bool "Install private libraries"
+	help
+	  Two libraries require special agreement with NVidia to
+	  develop code linking to those libraries: libnvidia-ifr.so
+	  and libnvidia-fbc.so (to grab and encode an OpenGL buffer or
+	  an X framebuffer.)
+
+	  Say 'y' here if you plan on running a program that uses
+	  those private libraries.
+
+comment "nvidia kernel module needs a kernel to be built"
+	depends on !BR2_LINUX_KERNEL
+
+config BR2_PACKAGE_NVIDIA_DRIVER_MODULE
+	bool "nvidia kernel module"
+	depends on BR2_LINUX_KERNEL
+	help
+	  Build the nvidia.ko kernel module.
+
+	  If CUDA support (above) is set, and the target is x86_64, then
+	  this will also build the nvidia-uvm.ko kernel module, which
+	  provides Unified Memory access to the GPU and CPU memories for
+	  CUDA programs.
+
+endif # BR2_PACKAGE_NVIDIA_DRIVER
diff --git a/package/nvidia-driver/gl.pc b/package/nvidia-driver/gl.pc
new file mode 100644
index 0000000000..d822763f57
--- /dev/null
+++ b/package/nvidia-driver/gl.pc
@@ -0,0 +1,11 @@
+prefix=/usr
+exec_prefix=${prefix}
+libdir=${exec_prefix}/lib
+includedir=${prefix}/include
+
+Name: gl
+Description: Nvidia OpenGL library
+Version: 10.4.2
+Libs: -L${libdir} -lGL -lm -lXext -lX11 -ldl
+Cflags: -I${includedir}  -DMESA_EGL_NO_X11_HEADERS
+glx_tls: no
diff --git a/package/nvidia-driver/nvidia-driver.hash b/package/nvidia-driver/nvidia-driver.hash
new file mode 100644
index 0000000000..137590f35f
--- /dev/null
+++ b/package/nvidia-driver/nvidia-driver.hash
@@ -0,0 +1,3 @@
+# Locally computed
+sha256  bba63c30c730ad7b8500a77c81cae58562b9f9b57cd576b61f37a2d8bc45df25  NVIDIA-Linux-x86-346.35.run
+sha256  8625acbbc7a2abdda436a5cb9d06f2a7f5913b16e0a35ac4f9f106853a94d086  NVIDIA-Linux-x86_64-346.35.run
diff --git a/package/nvidia-driver/nvidia-driver.mk b/package/nvidia-driver/nvidia-driver.mk
new file mode 100644
index 0000000000..4605d02c94
--- /dev/null
+++ b/package/nvidia-driver/nvidia-driver.mk
@@ -0,0 +1,167 @@
+################################################################################
+#
+# nvidia-driver
+#
+################################################################################
+
+NVIDIA_DRIVER_VERSION = 346.35
+NVIDIA_DRIVER_SUFFIX = $(if $(BR2_x86_64),_64)
+NVIDIA_DRIVER_SITE = ftp://download.nvidia.com/XFree86/Linux-x86$(NVIDIA_DRIVER_SUFFIX)/$(NVIDIA_DRIVER_VERSION)
+NVIDIA_DRIVER_SOURCE = NVIDIA-Linux-x86$(NVIDIA_DRIVER_SUFFIX)-$(NVIDIA_DRIVER_VERSION).run
+NVIDIA_DRIVER_LICENSE = NVIDIA Software License
+NVIDIA_DRIVER_LICENSE_FILES = LICENSE
+NVIDIA_DRIVER_REDISTRIBUTE = NO
+NVIDIA_DRIVER_INSTALL_STAGING = YES
+
+# Since nvidia-driver are binary blobs, the below dependencies are not
+# strictly speaking build dependencies of nvidia-driver. However, they
+# are build dependencies of packages that depend on nvidia-driver, so
+# they should be built prior to those packages, and the only simple
+# way to do so is to make nvidia-driver depend on them.
+NVIDIA_DRIVER_DEPENDENCIES = mesa3d-headers xlib_libX11 xlib_libXext
+NVIDIA_DRIVER_PROVIDES = libgl libegl libgles
+
+# We have two variables that contains a list of libraries to install:
+#   NVIDIA_DRIVER_LIBS
+#       contains the libraries whose filename end up in .so.$(VERSION); rather
+#       than duplicate the version string for all of them, we just store their
+#       basename, and append the version string below.
+#   NVIDIA_DRIVER_LIBS_NO_VERSION
+#       contains all libraries the do not use the NVidia version; since there
+#       is currently only one such library, we store its full name.
+
+# Each line corresponds to a specific set of libraries
+NVIDIA_DRIVER_LIBS = \
+	libEGL libGLESv1_CM libGLESv2 libGL \
+	libnvidia-glcore libnvidia-eglcore libnvidia-glsi \
+	tls/libnvidia-tls \
+	libvdpau libvdpau_nvidia \
+	libnvidia-ml
+
+ifeq ($(BR2_PACKAGE_NVIDIA_DRIVER_CUDA),y)
+NVIDIA_DRIVER_LIBS += libcuda libnvidia-compiler libnvcuvid libnvidia-encode
+endif
+
+ifeq ($(BR2_PACKAGE_NVIDIA_DRIVER_OPENCL),y)
+NVIDIA_DRIVER_LIBS_NO_VERSION += libOpenCL.so.1.0.0
+NVIDIA_DRIVER_LIBS += libnvidia-opencl
+endif
+
+# Those libraries are 'private' libraries requiring an agreement with
+# NVidia to develop code for those libs. There seems to be no restriction
+# on using those libraries (e.g. if the user has such an agreement, or
+# wants to run a third-party program developped under such an agreement).
+ifeq ($(BR2_PACKAGE_NVIDIA_DRIVER_PRIVATE_LIBS),y)
+NVIDIA_DRIVER_LIBS += libnvidia-ifr libnvidia-fbc
+endif
+
+# We refer to the destination path; the origin file has no directory component
+NVIDIA_DRIVER_X_MODS = drivers/nvidia_drv.so \
+	extensions/libglx.so.$(NVIDIA_DRIVER_VERSION) \
+	libnvidia-wfb.so.$(NVIDIA_DRIVER_VERSION)
+
+# The downloaded archive is in fact an auto-extract script. So, it can run
+# virtually everywhere, and it is fine enough to provide useful options.
+# Except it can't extract into an existing (even empty) directory.
+define NVIDIA_DRIVER_EXTRACT_CMDS
+	$(SHELL) $(DL_DIR)/$(NVIDIA_DRIVER_SOURCE) --extract-only --target \
+		$(@D)/tmp-extract
+	mv $(@D)/tmp-extract/* $(@D)/tmp-extract/.manifest $(@D)
+	rm -rf $(@D)/tmp-extract
+endef
+
+# Build and install the kernel modules if needed
+ifeq ($(BR2_PACKAGE_NVIDIA_DRIVER_MODULE),y)
+
+NVIDIA_DRIVER_DEPENDENCIES += linux
+
+# NVidia uses the legacy naming scheme for the x86 architecture, when i386
+# and x86_64 were still considered two separate architectures in the Linux
+# kernel.
+NVIDIA_DRIVER_ARCH = $(if $(BR2_i386),i386,$(BR2_ARCH))
+
+NVIDIA_DRIVER_MOD_DIRS = kernel
+NVIDIA_DRIVER_MOD_FILES = kernel/nvidia.ko
+# nvidia-uvm.ko only available for x86_64
+ifeq ($(BR2_x86_64)$(BR2_PACKAGE_NVIDIA_DRIVER_CUDA),yy)
+NVIDIA_DRIVER_MOD_DIRS += kernel/uvm
+NVIDIA_DRIVER_MOD_FILES += kernel/uvm/nvidia-uvm.ko
+endif
+
+# We can not use '$(MAKE) -C $(@D)/$${dir}' because NVidia's uses its own
+# Makefile to build a kernel module, which includes a lot of assumptions
+# on where to find its own sub-Makefile fragments, and fails if make is
+# not run from the directory where the module's source files are. Hence
+# our little trick to cd in there first.
+# That's also the reason why we do not use LINUX_MAKE_FLAGS or the other
+# linux-specific variables, since NVidia's Makefile does not understand
+# them.
+define NVIDIA_DRIVER_BUILD_CMDS
+	for dir in $(NVIDIA_DRIVER_MOD_DIRS); do \
+		(cd $(@D)/$${dir} && \
+		  $(MAKE) SYSSRC="$(LINUX_DIR)" SYSOUT="$(LINUX_DIR)" \
+				CC="$(TARGET_CC)" LD="$(TARGET_LD)" HOSTCC="$(HOSTCC)" \
+				ARCH=$(NVIDIA_DRIVER_ARCH) module) || exit 1; \
+	done
+endef
+
+# We do not use module-install because NVidia's Makefile requires root.
+# Also, we do not install it in the expected location (in nvidia/ rather
+# than in kernel/drivers/video/)
+define NVIDIA_DRIVER_INSTALL_KERNEL_MODULE
+	for mod in $(NVIDIA_DRIVER_MOD_FILES); do \
+		$(INSTALL) -D -m 0644 $(@D)/$${mod} \
+			$(TARGET_DIR)/lib/modules/$(LINUX_VERSION_PROBED)/nvidia/$${mod##*/} \
+		|| exit 1; \
+	done
+	$(HOST_DIR)/sbin/depmod -a -b $(TARGET_DIR) $(LINUX_VERSION_PROBED)
+endef
+
+endif # BR2_PACKAGE_NVIDIA_DRIVER_MODULE == y
+
+# Helper to install libraries
+# $1: destination directory (target or staging)
+#
+# For all libraries that need it, we append the NVidia version string.
+# Then for all libraries, we install them and create a symlink using
+# their SONAME, so we can link to them at runtime; we also create the
+# no-version symlink, so we can link to them at build time.
+define NVIDIA_DRIVER_INSTALL_LIBS
+	for libpath in $(addsuffix .so.$(NVIDIA_DRIVER_VERSION),$(NVIDIA_DRIVER_LIBS)) \
+	           $(NVIDIA_DRIVER_LIBS_NO_VERSION); \
+	do \
+		libname="$${libpath##*/}"; \
+		$(INSTALL) -D -m 0644 $(@D)/$${libpath} $(1)/usr/lib/$${libname}; \
+		libsoname="$$( $(TARGET_READELF) -d "$(@D)/$${libpath}" \
+		       |sed -r -e '/.*\(SONAME\).*\[(.*)\]$$/!d; s//\1/;' )"; \
+		if [ -n "$${libsoname}" -a "$${libsoname}" != "$${libname}" ]; then \
+			ln -sf $${libname} $(1)/usr/lib/$${libsoname}; \
+		fi; \
+		baseso="$${libname/.so*}.so"; \
+		if [ -n "$${baseso}" -a "$${baseso}" != "$${libname}" ]; then \
+			ln -sf $${libname} $(1)/usr/lib/$${baseso}; \
+		fi; \
+	done
+endef
+
+# For staging, install libraries and development files
+define NVIDIA_DRIVER_INSTALL_STAGING_CMDS
+	$(call NVIDIA_DRIVER_INSTALL_LIBS,$(STAGING_DIR))
+	$(INSTALL) -D -m 0644 $(@D)/libGL.la $(STAGING_DIR)/usr/lib/libGL.la
+	$(SED) 's:__GENERATED_BY__:Buildroot:' $(STAGING_DIR)/usr/lib/libGL.la
+	$(SED) 's:__LIBGL_PATH__:/usr/lib:' $(STAGING_DIR)/usr/lib/libGL.la
+	$(SED) 's:-L[^[:space:]]\+::' $(STAGING_DIR)/usr/lib/libGL.la
+	$(INSTALL) -D -m 0644 package/nvidia-driver/gl.pc $(STAGING_DIR)/usr/lib/pkgconfig/gl.pc
+endef
+
+# For target, install libraries and X.org modules
+define NVIDIA_DRIVER_INSTALL_TARGET_CMDS
+	$(call NVIDIA_DRIVER_INSTALL_LIBS,$(TARGET_DIR))
+	for m in $(NVIDIA_DRIVER_X_MODS); do \
+		$(INSTALL) -D -m 0644 $(@D)/$${m##*/} \
+			$(TARGET_DIR)/usr/lib/xorg/modules/$${m}; \
+	done
+	$(NVIDIA_DRIVER_INSTALL_KERNEL_MODULE)
+endef
+
+$(eval $(generic-package))
diff --git a/package/odhcp6c/odhcp6c.mk b/package/odhcp6c/odhcp6c.mk
index db963e07ce..8102c2679c 100644
--- a/package/odhcp6c/odhcp6c.mk
+++ b/package/odhcp6c/odhcp6c.mk
@@ -4,9 +4,16 @@
 #
 ################################################################################
 
-ODHCP6C_VERSION = c42e34111e19bd435dc4b5bb3ba81224ea214314
+ODHCP6C_VERSION = 8d9b60fb496000988f3633951f2e30380fc2de50
 ODHCP6C_SITE = $(call github,sbyx,odhcp6c,$(ODHCP6C_VERSION))
 ODHCP6C_LICENSE = GPLv2
 ODHCP6C_LICENSE_FILES = COPYING
 
+define ODHCP6C_INSTALL_SCRIPT
+        $(INSTALL) -m 0755 -D $(@D)/odhcp6c-example-script.sh \
+		$(TARGET_DIR)/usr/sbin/odhcp6c-update
+endef
+
+ODHCP6C_POST_INSTALL_TARGET_HOOKS += ODHCP6C_INSTALL_SCRIPT
+
 $(eval $(cmake-package))
diff --git a/package/ofono/Config.in b/package/ofono/Config.in
index 00df25186e..b26b5e76a0 100644
--- a/package/ofono/Config.in
+++ b/package/ofono/Config.in
@@ -3,7 +3,6 @@ config BR2_PACKAGE_OFONO
 	depends on BR2_USE_WCHAR # gettext, libglib2
 	depends on BR2_TOOLCHAIN_HAS_THREADS # dbus, libglib2
 	depends on BR2_USE_MMU # dbus, libglib2
-	depends on !BR2_avr32 # libcap-ng
 	select BR2_PACKAGE_LIBCAP_NG
 	select BR2_PACKAGE_DBUS
 	select BR2_PACKAGE_LIBGLIB2
@@ -16,6 +15,5 @@ config BR2_PACKAGE_OFONO
 	  http://ofono.org/
 
 comment "ofono needs a toolchain w/ wchar, threads"
-	depends on !BR2_avr32
 	depends on BR2_USE_MMU
 	depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS
diff --git a/package/opencv/Config.in b/package/opencv/Config.in
index c444d65838..6a8ac6aeb3 100644
--- a/package/opencv/Config.in
+++ b/package/opencv/Config.in
@@ -189,7 +189,6 @@ config BR2_PACKAGE_OPENCV_WITH_PNG
 config BR2_PACKAGE_OPENCV_WITH_QT
 	bool "qt backend support"
 	depends on BR2_INSTALL_LIBSTDCPP
-	depends on !BR2_avr32 # qt
 	depends on BR2_USE_MMU # qt
 	depends on BR2_PACKAGE_OPENCV_LIB_HIGHGUI
 	select BR2_PACKAGE_QT
diff --git a/package/openobex/Config.in b/package/openobex/Config.in
index 367caa6db4..c56692d2bd 100644
--- a/package/openobex/Config.in
+++ b/package/openobex/Config.in
@@ -11,7 +11,6 @@ if BR2_PACKAGE_OPENOBEX
 
 config BR2_PACKAGE_OPENOBEX_BLUEZ
 	bool "enable bluez support"
-	depends on !BR2_avr32
 	depends on !BR2_STATIC_LIBS # bluez_utils
 	depends on BR2_USE_WCHAR # libglib2
 	depends on BR2_TOOLCHAIN_HAS_THREADS # dbus, alsa-lib, libglib2
@@ -19,7 +18,7 @@ config BR2_PACKAGE_OPENOBEX_BLUEZ
 	select BR2_PACKAGE_BLUEZ_UTILS
 
 comment "bluez support needs a toolchain w/ wchar, threads, dynamic library"
-	depends on !BR2_avr32 && BR2_USE_MMU
+	depends on BR2_USE_MMU
 	depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS
 
 config BR2_PACKAGE_OPENOBEX_LIBUSB
diff --git a/package/openpgm/Config.in b/package/openpgm/Config.in
index dc66367b41..3a262121a2 100644
--- a/package/openpgm/Config.in
+++ b/package/openpgm/Config.in
@@ -1,7 +1,6 @@
 config BR2_PACKAGE_OPENPGM
 	bool "openpgm"
 	# The following toolchains lack required compiler intrinsics
-	depends on !BR2_avr32
 	depends on !BR2_TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX_2013R1
 	depends on !BR2_TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX_2012R2
 	depends on BR2_TOOLCHAIN_HAS_THREADS
@@ -18,4 +17,3 @@ config BR2_PACKAGE_OPENPGM
 
 comment "openpgm needs a toolchain w/ wchar, threads, IPv6"
 	depends on !(BR2_TOOLCHAIN_HAS_THREADS && BR2_INET_IPV6 && BR2_USE_WCHAR)
-	depends on !BR2_avr32
diff --git a/package/oprofile/oprofile.mk b/package/oprofile/oprofile.mk
index 1322d9d695..5876307e48 100644
--- a/package/oprofile/oprofile.mk
+++ b/package/oprofile/oprofile.mk
@@ -19,11 +19,6 @@ OPROFILE_BINARIES = \
 	utils/op-check-perfevents libabi/opimport \
 	pe_counting/ocount
 
-# No perf_events support in kernel for avr32
-ifneq ($(BR2_avr32),y)
-OPROFILE_BINARIES += pe_profiling/operf
-endif
-
 ifeq ($(BR2_i386),y)
 OPROFILE_ARCH = i386
 endif
diff --git a/package/opusfile/Config.in b/package/opusfile/Config.in
new file mode 100644
index 0000000000..f9271c4f47
--- /dev/null
+++ b/package/opusfile/Config.in
@@ -0,0 +1,13 @@
+comment "opusfile needs a toolchain w/ largefile"
+	depends on !BR2_LARGEFILE
+
+config BR2_PACKAGE_OPUSFILE
+	bool "opusfile"
+	depends on BR2_LARGEFILE
+	select BR2_PACKAGE_LIBOGG
+	select BR2_PACKAGE_OPUS
+	help
+	  A convenient high-level API for decoding and basic manipulation
+	  of all Ogg Opus audio streams.
+
+	  http://opus-codec.org
diff --git a/package/opusfile/opusfile.hash b/package/opusfile/opusfile.hash
new file mode 100644
index 0000000000..183395081c
--- /dev/null
+++ b/package/opusfile/opusfile.hash
@@ -0,0 +1,2 @@
+# From http://downloads.xiph.org/releases/opus/SHA256SUMS.txt
+sha256	2428717b356e139f18ed2fdb5ad990b5654a238907a0058200b39c46a7d03ea6	opusfile-0.6.tar.gz
diff --git a/package/opusfile/opusfile.mk b/package/opusfile/opusfile.mk
new file mode 100644
index 0000000000..918041da8d
--- /dev/null
+++ b/package/opusfile/opusfile.mk
@@ -0,0 +1,25 @@
+################################################################################
+#
+# opusfile
+#
+################################################################################
+
+OPUSFILE_VERSION = 0.6
+OPUSFILE_SITE = http://downloads.xiph.org/releases/opus
+OPUSFILE_DEPENDENCIES = host-pkgconf libogg opus
+OPUSFILE_LICENSE = BSD-3c
+OPUSFILE_LICENSE_FILES = COPYING
+OPUSFILE_INSTALL_STAGING = YES
+
+ifeq ($(BR2_PACKAGE_OPENSSL),y)
+OPUSFILE_DEPENDENCIES += openssl
+else
+OPUSFILE_CONF_OPTS += --disable-http
+endif
+
+# Use the same as opus package since it's a dep and we can't mix
+ifeq ($(BR2_PACKAGE_OPUS_FIXED_POINT),y)
+OPUSFILE_CONF_OPTS += --enable-fixed-point
+endif
+
+$(eval $(autotools-package))
diff --git a/package/perl-datetime-tiny/perl-datetime-tiny.hash b/package/perl-datetime-tiny/perl-datetime-tiny.hash
new file mode 100644
index 0000000000..e498edb3a9
--- /dev/null
+++ b/package/perl-datetime-tiny/perl-datetime-tiny.hash
@@ -0,0 +1,3 @@
+# retrieved by scancpan from http://cpan.metacpan.org/
+md5    9e7e4fe588445023763df113d3f2345f DateTime-Tiny-1.04.tar.gz
+sha256 68137c8ab3ca2a7f8a5fcea20f94b2f82bc2c7c36bb45063dbd81faadf0c7881 DateTime-Tiny-1.04.tar.gz
diff --git a/package/perl-gd/perl-gd.hash b/package/perl-gd/perl-gd.hash
new file mode 100644
index 0000000000..c6822aeaf1
--- /dev/null
+++ b/package/perl-gd/perl-gd.hash
@@ -0,0 +1,3 @@
+# retrieved by scancpan from http://cpan.metacpan.org/
+md5    d2c9b18123bcaff8672eb50f2eb37ed3 GD-2.53.tar.gz
+sha256 d05d01fe95e581adb3468cf05ab5d405db7497c0fb3ec7ecf23d023705fab7aa GD-2.53.tar.gz
diff --git a/package/perl-gdgraph/perl-gdgraph.hash b/package/perl-gdgraph/perl-gdgraph.hash
new file mode 100644
index 0000000000..ba51793bc2
--- /dev/null
+++ b/package/perl-gdgraph/perl-gdgraph.hash
@@ -0,0 +1,3 @@
+# retrieved by scancpan from http://cpan.metacpan.org/
+md5    2c9e4feb4246200d96b9faa8024b0bf0 GDGraph-1.48.tar.gz
+sha256 4324a104557edaf8925a20f24326af89c08e419989fbaa7380f0c9731bc2ac6c GDGraph-1.48.tar.gz
diff --git a/package/perl-gdtextutil/perl-gdtextutil.hash b/package/perl-gdtextutil/perl-gdtextutil.hash
new file mode 100644
index 0000000000..7996ed9d3d
--- /dev/null
+++ b/package/perl-gdtextutil/perl-gdtextutil.hash
@@ -0,0 +1,3 @@
+# retrieved by scancpan from http://cpan.metacpan.org/
+md5    941ad06eadc86b47f3a32da405665c41 GDTextUtil-0.86.tar.gz
+sha256 886ecbf85cfe94f4135ee5689c4847a9ae783ecb99e6759e12c734f2dd6116bc GDTextUtil-0.86.tar.gz
diff --git a/package/perl-json-tiny/perl-json-tiny.hash b/package/perl-json-tiny/perl-json-tiny.hash
new file mode 100644
index 0000000000..0a1e7cacd8
--- /dev/null
+++ b/package/perl-json-tiny/perl-json-tiny.hash
@@ -0,0 +1,3 @@
+# retrieved by scancpan from http://cpan.metacpan.org/
+md5    70957d3df2ea67f8e2c760166fce7b24 JSON-Tiny-0.53.tar.gz
+sha256 37e547c5b5b7f4dd9adf00db7c77454f3451f79c1be93ef11d4f2ddc9c10aad9 JSON-Tiny-0.53.tar.gz
diff --git a/package/perl-json-tiny/perl-json-tiny.mk b/package/perl-json-tiny/perl-json-tiny.mk
index 7ee611d030..ddc50aca9f 100644
--- a/package/perl-json-tiny/perl-json-tiny.mk
+++ b/package/perl-json-tiny/perl-json-tiny.mk
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-PERL_JSON_TINY_VERSION = 0.50
+PERL_JSON_TINY_VERSION = 0.53
 PERL_JSON_TINY_SOURCE = JSON-Tiny-$(PERL_JSON_TINY_VERSION).tar.gz
 PERL_JSON_TINY_SITE = $(BR2_CPAN_MIRROR)/authors/id/D/DA/DAVIDO
 PERL_JSON_TINY_DEPENDENCIES = perl
diff --git a/package/perl-module-build/perl-module-build.hash b/package/perl-module-build/perl-module-build.hash
new file mode 100644
index 0000000000..7da8793398
--- /dev/null
+++ b/package/perl-module-build/perl-module-build.hash
@@ -0,0 +1,3 @@
+# retrieved by scancpan from http://cpan.metacpan.org/
+md5    296e2ee8d7f7c6b4b178cda6919ba3c9 Module-Build-0.4208.tar.gz
+sha256 32eca47c494a5d2a826c30616270b0fc744315b7363223b54fdea2dcef635378 Module-Build-0.4208.tar.gz
diff --git a/package/perl-module-build/perl-module-build.mk b/package/perl-module-build/perl-module-build.mk
index 4fdb4c7158..aa6259a7ef 100644
--- a/package/perl-module-build/perl-module-build.mk
+++ b/package/perl-module-build/perl-module-build.mk
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-PERL_MODULE_BUILD_VERSION = 0.4210
+PERL_MODULE_BUILD_VERSION = 0.4208
 PERL_MODULE_BUILD_SOURCE = Module-Build-$(PERL_MODULE_BUILD_VERSION).tar.gz
 PERL_MODULE_BUILD_SITE = $(BR2_CPAN_MIRROR)/authors/id/L/LE/LEONT
 PERL_MODULE_BUILD_LICENSE = Artistic or GPLv1+
diff --git a/package/perl-try-tiny/perl-try-tiny.hash b/package/perl-try-tiny/perl-try-tiny.hash
new file mode 100644
index 0000000000..bff911f2c1
--- /dev/null
+++ b/package/perl-try-tiny/perl-try-tiny.hash
@@ -0,0 +1,3 @@
+# retrieved by scancpan from http://cpan.metacpan.org/
+md5    6769658bfbca241a470206c9a8819ff2 Try-Tiny-0.22.tar.gz
+sha256 60fba46f4693d33d54539104f9001df008dabb400b6837e9605c39a6ee6a1b19 Try-Tiny-0.22.tar.gz
diff --git a/package/perl-xml-libxml/0001-Makefile-PL.patch b/package/perl-xml-libxml/0001-Makefile-PL.patch
index ce2724c891..e043c6d24c 100644
--- a/package/perl-xml-libxml/0001-Makefile-PL.patch
+++ b/package/perl-xml-libxml/0001-Makefile-PL.patch
@@ -6,7 +6,7 @@ Index: b/Makefile.PL
 ===================================================================
 --- a/Makefile.PL
 +++ b/Makefile.PL
-@@ -84,8 +84,7 @@
+@@ -88,8 +88,7 @@
  # -------------------------------------------------------------------------- #
  # -------------------------------------------------------------------------- #
  
diff --git a/package/perl-xml-libxml/perl-xml-libxml.hash b/package/perl-xml-libxml/perl-xml-libxml.hash
index db30300ed0..37d8b3d124 100644
--- a/package/perl-xml-libxml/perl-xml-libxml.hash
+++ b/package/perl-xml-libxml/perl-xml-libxml.hash
@@ -1,3 +1,3 @@
 # retrieved by scancpan from http://cpan.metacpan.org/
-md5    484308164ecab1d7d0eddf4dc4c9c0ca XML-LibXML-2.0117.tar.gz
-sha256 5767c90f34ffd3762d7800a64c7190a2635c941a41a73e1156fa791b0652bac0 XML-LibXML-2.0117.tar.gz
+md5    da8d61a5d0d1bfd8d46814e376d33f58 XML-LibXML-2.0118.tar.gz
+sha256 cc64ae26ef5ebc0f64ba292c582f1cd70701c6513133a063e2d25c3257430c9c XML-LibXML-2.0118.tar.gz
diff --git a/package/perl-xml-libxml/perl-xml-libxml.mk b/package/perl-xml-libxml/perl-xml-libxml.mk
index 94681e56c9..e93623c768 100644
--- a/package/perl-xml-libxml/perl-xml-libxml.mk
+++ b/package/perl-xml-libxml/perl-xml-libxml.mk
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-PERL_XML_LIBXML_VERSION = 2.0117
+PERL_XML_LIBXML_VERSION = 2.0118
 PERL_XML_LIBXML_SOURCE = XML-LibXML-$(PERL_XML_LIBXML_VERSION).tar.gz
 PERL_XML_LIBXML_SITE = $(BR2_CPAN_MIRROR)/authors/id/S/SH/SHLOMIF
 PERL_XML_LIBXML_DEPENDENCIES = perl zlib libxml2 perl-xml-sax perl-xml-namespacesupport
diff --git a/package/perl-xml-namespacesupport/perl-xml-namespacesupport.hash b/package/perl-xml-namespacesupport/perl-xml-namespacesupport.hash
new file mode 100644
index 0000000000..9389601d0f
--- /dev/null
+++ b/package/perl-xml-namespacesupport/perl-xml-namespacesupport.hash
@@ -0,0 +1,3 @@
+# retrieved by scancpan from http://cpan.metacpan.org/
+md5    222cca76161cd956d724286d36b607da XML-NamespaceSupport-1.11.tar.gz
+sha256 6d8151f0a3f102313d76b64bfd1c2d9ed46bfe63a16f038e7d860fda287b74ea XML-NamespaceSupport-1.11.tar.gz
diff --git a/package/perl-xml-sax-base/perl-xml-sax-base.hash b/package/perl-xml-sax-base/perl-xml-sax-base.hash
new file mode 100644
index 0000000000..6822e1844a
--- /dev/null
+++ b/package/perl-xml-sax-base/perl-xml-sax-base.hash
@@ -0,0 +1,3 @@
+# retrieved by scancpan from http://cpan.metacpan.org/
+md5    38c8c3247dfd080712596118d70dbe32 XML-SAX-Base-1.08.tar.gz
+sha256 666270318b15f88b8427e585198abbc19bc2e6ccb36dc4c0a4f2d9807330219e XML-SAX-Base-1.08.tar.gz
diff --git a/package/perl-xml-sax/perl-xml-sax.hash b/package/perl-xml-sax/perl-xml-sax.hash
new file mode 100644
index 0000000000..6aa543c002
--- /dev/null
+++ b/package/perl-xml-sax/perl-xml-sax.hash
@@ -0,0 +1,3 @@
+# retrieved by scancpan from http://cpan.metacpan.org/
+md5    290f5375ae87fdebfdb5bc3854019f24 XML-SAX-0.99.tar.gz
+sha256 32b04b8e36b6cc4cfc486de2d859d87af5386dd930f2383c49347050d6f5ad84 XML-SAX-0.99.tar.gz
diff --git a/package/perl/perl.hash b/package/perl/perl.hash
index f287eaa7eb..ac7bafe733 100644
--- a/package/perl/perl.hash
+++ b/package/perl/perl.hash
@@ -1,7 +1,7 @@
-# Hashes from: http://www.cpan.org/src/5.0/perl-5.20.1.tar.bz2.{md5,sha1,sha256}.txt
-md5    ede5166f949d9a07163bc5b086be9759                                 perl-5.20.1.tar.bz2
-sha1   cd424d1520ba2686fe5d4422565aaf880e9467f6                         perl-5.20.1.tar.bz2
-sha256 ede5ded37e7fb6139b04728cfca826f17076f9888dbfd100a56834dbeb04657c perl-5.20.1.tar.bz2
+# Hashes from: http://www.cpan.org/src/5.0/perl-5.20.2.tar.bz2.{md5,sha1,sha256}.txt
+md5    21062666f1c627aeb6dbff3c6952738b                                 perl-5.20.2.tar.bz2
+sha1   63126c683b4c79c35008a47d56f7beae876c569f                         perl-5.20.2.tar.bz2
+sha256 e5a4713bc65e1da98ebd833dce425c000768bfe84d17ec5183ec5ca249db71ab perl-5.20.2.tar.bz2
 
 # No upstream hashes for the following
 sha256 614f320d45042ca179a15ec88c6a15ff68e6f36fb004ee89efa71e42bda1dead perl-5.20.1-cross-0.9.4.tar.gz
diff --git a/package/perl/perl.mk b/package/perl/perl.mk
index b1f2101d67..0636abaf54 100644
--- a/package/perl/perl.mk
+++ b/package/perl/perl.mk
@@ -5,7 +5,7 @@
 ################################################################################
 
 PERL_VERSION_MAJOR = 20
-PERL_VERSION = 5.$(PERL_VERSION_MAJOR).1
+PERL_VERSION = 5.$(PERL_VERSION_MAJOR).2
 PERL_SITE = http://www.cpan.org/src/5.0
 PERL_SOURCE = perl-$(PERL_VERSION).tar.bz2
 PERL_LICENSE = Artistic or GPLv1+
diff --git a/package/php/Config.ext b/package/php/Config.ext
index 2b1e6150ab..daf16c7168 100644
--- a/package/php/Config.ext
+++ b/package/php/Config.ext
@@ -106,7 +106,6 @@ config BR2_PACKAGE_PHP_EXT_MYSQL
 	depends on BR2_INSTALL_LIBSTDCPP
 	depends on BR2_USE_MMU # mysql
 	depends on BR2_TOOLCHAIN_HAS_THREADS # mysql
-	depends on !BR2_avr32 # mysql
 	select BR2_PACKAGE_MYSQL
 	help
 	  MySQL support
@@ -116,7 +115,6 @@ config BR2_PACKAGE_PHP_EXT_MYSQLI
 	depends on BR2_INSTALL_LIBSTDCPP
 	depends on BR2_USE_MMU # mysql
 	depends on BR2_TOOLCHAIN_HAS_THREADS # mysql
-	depends on !BR2_avr32 # mysql
 	select BR2_PACKAGE_MYSQL
 	select BR2_PACKAGE_PHP_EXT_MYSQL
 	help
@@ -134,7 +132,6 @@ config BR2_PACKAGE_PHP_EXT_PDO_MYSQL
 	depends on BR2_INSTALL_LIBSTDCPP
 	depends on BR2_USE_MMU # mysql
 	depends on BR2_TOOLCHAIN_HAS_THREADS # mysql
-	depends on !BR2_avr32 # mysql
 	select BR2_PACKAGE_MYSQL
 	help
 	  PDO driver for MySQL
@@ -142,7 +139,6 @@ config BR2_PACKAGE_PHP_EXT_PDO_MYSQL
 comment "MySQL drivers need a toolchain w/ C++, threads"
 	depends on BR2_USE_MMU
 	depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS
-	depends on !BR2_avr32
 
 config BR2_PACKAGE_PHP_EXT_PDO_POSTGRESQL
 	bool "PostgreSQL"
diff --git a/package/pinentry/Config.in b/package/pinentry/Config.in
index 350327a226..edf3316322 100644
--- a/package/pinentry/Config.in
+++ b/package/pinentry/Config.in
@@ -37,7 +37,6 @@ comment "pinentry-gtk2 needs X and a toolchain w/ wchar, threads, C++"
 
 config BR2_PACKAGE_PINENTRY_QT4
 	bool "pinentry-qt4"
-	depends on !BR2_avr32 # lacks TLS
 	depends on BR2_USE_MMU # fork
 	depends on BR2_INSTALL_LIBSTDCPP
 	depends on BR2_TOOLCHAIN_HAS_THREADS
@@ -47,7 +46,6 @@ config BR2_PACKAGE_PINENTRY_QT4
 	  The pinentry-qt4 tool
 
 comment "pinentry-qt4 needs a toolchain w/ C++, threads"
-	depends on !BR2_avr32
 	depends on BR2_USE_MMU
 	depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS
 
diff --git a/package/pkg-cmake.mk b/package/pkg-cmake.mk
index eacd641cb4..2404c40122 100644
--- a/package/pkg-cmake.mk
+++ b/package/pkg-cmake.mk
@@ -31,6 +31,10 @@ CMAKE_HOST_C_COMPILER = $(HOSTCC)
 CMAKE_HOST_CXX_COMPILER = $(HOSTCXX)
 endif
 
+ifneq ($(QUIET),)
+CMAKE_QUIET = -DCMAKE_RULE_MESSAGES=OFF -DCMAKE_INSTALL_MESSAGE=NEVER
+endif
+
 ################################################################################
 # inner-cmake-package -- defines how the configuration, compilation and
 # installation of a CMake package should be done, implements a few hooks to
@@ -86,6 +90,7 @@ define $(2)_CONFIGURE_CMDS
 		-DBUILD_TESTING=OFF \
 		-DBUILD_SHARED_LIBS=$$(if $$(BR2_STATIC_LIBS),OFF,ON) \
 		-DUSE_CCACHE=$$(if $$(BR2_CCACHE),ON,OFF) \
+		$$(CMAKE_QUIET) \
 		$$($$(PKG)_CONF_OPTS) \
 	)
 endef
@@ -121,6 +126,7 @@ define $(2)_CONFIGURE_CMDS
 		-DBUILD_TEST=OFF \
 		-DBUILD_TESTS=OFF \
 		-DBUILD_TESTING=OFF \
+		$$(CMAKE_QUIET) \
 		$$($$(PKG)_CONF_OPTS) \
 	)
 endef
diff --git a/package/pkg-kconfig.mk b/package/pkg-kconfig.mk
index ec58d69f55..04ac37df42 100644
--- a/package/pkg-kconfig.mk
+++ b/package/pkg-kconfig.mk
@@ -41,10 +41,19 @@ ifndef $(2)_KCONFIG_FILE
 $$(error Internal error: no value specified for $(2)_KCONFIG_FILE)
 endif
 
+# The config file could be in-tree, so before depending on it the package should
+# be extracted (and patched) first
+$$($(2)_KCONFIG_FILE): | $(1)-patch
+
 # The .config file is obtained by copying it from the specified source
 # configuration file, after the package has been patched.
-$$($(2)_DIR)/.config: $$($(2)_KCONFIG_FILE) | $(1)-patch
+# Since the file could be a defconfig file it needs to be expanded to a
+# full .config first. We use 'make oldconfig' because this can be safely
+# done even when the package does not support defconfigs.
+$$($(2)_DIR)/.config: $$($(2)_KCONFIG_FILE)
 	$$(INSTALL) -m 0644 $$($(2)_KCONFIG_FILE) $$($(2)_DIR)/.config
+	@yes "" | $$($(2)_MAKE_ENV) $$(MAKE) -C $$($(2)_DIR) \
+		$$($(2)_KCONFIG_OPTS) oldconfig
 
 # In order to get a usable, consistent configuration, some fixup may be needed.
 # The exact rules are specified by the package .mk file.
@@ -57,16 +66,39 @@ $$($(2)_DIR)/.stamp_kconfig_fixup_done: $$($(2)_DIR)/.config
 # Before running configure, the configuration file should be present and fixed
 $$($(2)_TARGET_CONFIGURE): $$($(2)_DIR)/.stamp_kconfig_fixup_done
 
+# Only enable the foo-*config targets when the package is actually enabled.
+# Note: the variable $(2)_KCONFIG_VAR is not related to the kconfig
+# infrastructure, but defined by pkg-generic.mk. The generic infrastructure is
+# already called above, so we can effectively use this variable.
+ifeq ($$($$($(2)_KCONFIG_VAR)),y)
+
 # Configuration editors (menuconfig, ...)
 $$(addprefix $(1)-,$$($(2)_KCONFIG_EDITORS)): $$($(2)_DIR)/.stamp_kconfig_fixup_done
 	$$($(2)_MAKE_ENV) $$(MAKE) -C $$($(2)_DIR) \
 		$$($(2)_KCONFIG_OPTS) $$(subst $(1)-,,$$@)
 	rm -f $$($(2)_DIR)/.stamp_{kconfig_fixup_done,configured,built}
-	rm -f $$($(2)_DIR)/.stamp_{target,staging}_installed
+	rm -f $$($(2)_DIR)/.stamp_{target,staging,images}_installed
+
+$(1)-savedefconfig: $$($(2)_DIR)/.stamp_kconfig_fixup_done
+	$$($(2)_MAKE_ENV) $$(MAKE) -C $$($(2)_DIR) \
+		$$($(2)_KCONFIG_OPTS) savedefconfig
 
 # Target to copy back the configuration to the source configuration file
+# Even though we could use 'cp --preserve-timestamps' here, the separate
+# cp and 'touch --reference' is used for symmetry with $(1)-update-defconfig.
 $(1)-update-config: $$($(2)_DIR)/.stamp_kconfig_fixup_done
-	cp --preserve=timestamps -f $$($(2)_DIR)/.config $$($(2)_KCONFIG_FILE)
+	cp -f $$($(2)_DIR)/.config $$($(2)_KCONFIG_FILE)
+	touch --reference $$($(2)_DIR)/.config $$($(2)_KCONFIG_FILE)
+
+# Note: make sure the timestamp of the stored configuration is not newer than
+# the .config to avoid a useless rebuild. Note that, contrary to
+# $(1)-update-config, the reference for 'touch' is _not_ the file from which
+# we copy.
+$(1)-update-defconfig: $(1)-savedefconfig
+	cp -f $$($(2)_DIR)/defconfig $$($(2)_KCONFIG_FILE)
+	touch --reference $$($(2)_DIR)/.config $$($(2)_KCONFIG_FILE)
+
+endif # package enabled
 
 endef # inner-kconfig-package
 
diff --git a/package/poco/Config.in b/package/poco/Config.in
index 8384b42be1..155f098a30 100644
--- a/package/poco/Config.in
+++ b/package/poco/Config.in
@@ -4,7 +4,7 @@ config BR2_PACKAGE_POCO
 	depends on BR2_USE_WCHAR
 	depends on BR2_TOOLCHAIN_HAS_THREADS
 	depends on !(BR2_arc || BR2_bfin || BR2_microblaze || BR2_mipsel \
-		|| BR2_xtensa || BR2_avr32)
+		|| BR2_xtensa)
 	select BR2_PACKAGE_ZLIB
 	select BR2_PACKAGE_PCRE
 	help
@@ -55,7 +55,6 @@ config BR2_PACKAGE_POCO_DATA_SQLITE
 config BR2_PACKAGE_POCO_DATA_MYSQL
 	bool "mysql"
 	depends on BR2_USE_MMU # mysql
-	depends on !BR2_avr32 # mysql
 	select BR2_PACKAGE_POCO_DATA
 	select BR2_PACKAGE_MYSQL
 
@@ -65,4 +64,4 @@ comment "poco needs a toolchain w/ wchar, threads, C++"
 	depends on !BR2_USE_WCHAR || !BR2_INSTALL_LIBSTDCPP \
 		|| !BR2_TOOLCHAIN_HAS_THREADS
 	depends on !(BR2_arc || BR2_bfin || BR2_microblaze || BR2_mipsel \
-		|| BR2_xtensa || BR2_avr32)
+		|| BR2_xtensa)
diff --git a/package/prboom/prboom.mk b/package/prboom/prboom.mk
index 5612cc65bb..3d131cdd46 100644
--- a/package/prboom/prboom.mk
+++ b/package/prboom/prboom.mk
@@ -45,10 +45,4 @@ define PRBOOM_INSTALL_TARGET_CMDS
 	$(INSTALL) -D $(@D)/data/prboom.wad $(TARGET_DIR)/usr/share/games/doom/prboom.wad
 endef
 
-define PRBOOM_UINSTALL_TARGET_CMDS
-	rm -rf $(TARGET_DIR)/usr/share/games/doom/prboom.wad \
-		$(TARGET_DIR)/usr/games/prboom-game-server \
-		$(TARGET_DIR)/usr/games/prboom
-endef
-
 $(eval $(autotools-package))
diff --git a/package/python-cherrypy/Config.in b/package/python-cherrypy/Config.in
new file mode 100644
index 0000000000..6e32ec2a1a
--- /dev/null
+++ b/package/python-cherrypy/Config.in
@@ -0,0 +1,10 @@
+config BR2_PACKAGE_PYTHON_CHERRYPY
+	bool "python-cherrypy"
+	select BR2_PACKAGE_PYTHON_ZLIB if BR2_PACKAGE_PYTHON # runtime
+	select BR2_PACKAGE_PYTHON3_ZLIB if BR2_PACKAGE_PYTHON3 # runtime
+	select BR2_PACKAGE_PYTHON_PYEXPAT if BR2_PACKAGE_PYTHON # runtime
+	select BR2_PACKAGE_PYTHON3_PYEXPAT if BR2_PACKAGE_PYTHON3 # runtime
+	help
+	  A minimalist web framework
+
+	  http://www.cherrypy.org
diff --git a/package/python-cherrypy/python-cherrypy.hash b/package/python-cherrypy/python-cherrypy.hash
new file mode 100644
index 0000000000..08fa0754ba
--- /dev/null
+++ b/package/python-cherrypy/python-cherrypy.hash
@@ -0,0 +1,3 @@
+# md5 from https://pypi.python.org/pypi?:action=show_md5&digest=9772dbee426d656f01a13881e2b139d8, sha256 locally computed
+md5	9772dbee426d656f01a13881e2b139d8  CherryPy-3.6.0.tar.gz
+sha256	a149271819a15417104aa8f641ad5b96287070f0153e6ef2832a87e2c693d75d  CherryPy-3.6.0.tar.gz
diff --git a/package/python-cherrypy/python-cherrypy.mk b/package/python-cherrypy/python-cherrypy.mk
new file mode 100644
index 0000000000..a08b21ab54
--- /dev/null
+++ b/package/python-cherrypy/python-cherrypy.mk
@@ -0,0 +1,14 @@
+################################################################################
+#
+# python-cherrypy
+#
+################################################################################
+
+PYTHON_CHERRYPY_VERSION = 3.6.0
+PYTHON_CHERRYPY_SOURCE = CherryPy-$(PYTHON_CHERRYPY_VERSION).tar.gz
+PYTHON_CHERRYPY_SITE = http://pypi.python.org/packages/source/C/CherryPy
+PYTHON_CHERRYPY_LICENSE = BSD-3c
+PYTHON_CHERRYPY_LICENSE_FILES = LICENSE.txt
+PYTHON_CHERRYPY_SETUP_TYPE = distutils
+
+$(eval $(python-package))
diff --git a/package/python-dialog/Config.in b/package/python-dialog/Config.in
index 8dd3fdf4e7..c1fdb23723 100644
--- a/package/python-dialog/Config.in
+++ b/package/python-dialog/Config.in
@@ -1,7 +1,6 @@
 config BR2_PACKAGE_PYTHON_DIALOG
 	bool "python-dialog"
 	depends on BR2_PACKAGE_PYTHON
-	depends on BR2_TOOLCHAIN_HAS_THREADS # dialog
 	depends on BR2_USE_MMU # dialog
 	select BR2_PACKAGE_DIALOG
 	help
@@ -9,7 +8,3 @@ config BR2_PACKAGE_PYTHON_DIALOG
 	  mostly-compatible programs.
 
 	  http://pythondialog.sourceforge.net/
-
-comment "python-dialog needs a toolchain w/ threads"
-	depends on BR2_USE_MMU && BR2_PACKAGE_PYTHON
-	depends on !BR2_TOOLCHAIN_HAS_THREADS
diff --git a/package/python-lxml/Config.in b/package/python-lxml/Config.in
new file mode 100644
index 0000000000..1ccaa5e387
--- /dev/null
+++ b/package/python-lxml/Config.in
@@ -0,0 +1,10 @@
+config BR2_PACKAGE_PYTHON_LXML
+	bool "python-lxml"
+	select BR2_PACKAGE_LIBXML2
+	select BR2_PACKAGE_LIBXSLT
+	select BR2_PACKAGE_ZLIB
+	help
+	  The lxml XML toolkit is a Pythonic binding for the C libraries
+	  libxml2 and libxslt.
+
+	  http://lxml.de/
diff --git a/package/python-lxml/python-lxml.hash b/package/python-lxml/python-lxml.hash
new file mode 100644
index 0000000000..470a245516
--- /dev/null
+++ b/package/python-lxml/python-lxml.hash
@@ -0,0 +1,2 @@
+# Locally computed
+sha256  069594837d0376a1bacf5cc42aa9a1be2e1c1396dc62f7d07f7358afecd34adf  lxml-3.4.1.tgz
diff --git a/package/python-lxml/python-lxml.mk b/package/python-lxml/python-lxml.mk
new file mode 100644
index 0000000000..e7222e826e
--- /dev/null
+++ b/package/python-lxml/python-lxml.mk
@@ -0,0 +1,31 @@
+################################################################################
+#
+# python-lxml
+#
+################################################################################
+
+PYTHON_LXML_VERSION = 3.4.1
+PYTHON_LXML_SITE = http://lxml.de/files
+PYTHON_LXML_SOURCE = lxml-$(PYTHON_LXML_VERSION).tgz
+
+# Not including the GPL, because it is used only for the test scripts.
+PYTHON_LXML_LICENSE = BSD-3c, Others
+PYTHON_LXML_LICENSE_FILES = \
+	LICENSES.txt \
+	doc/licenses/BSD.txt \
+	doc/licenses/elementtree.txt \
+	src/lxml/isoschematron/resources/rng/iso-schematron.rng
+
+# python-lxml can use either setuptools, or distutils as a fallback.
+# So, we use setuptools.
+PYTHON_LXML_SETUP_TYPE = setuptools
+
+PYTHON_LXML_DEPENDENCIES = libxml2 libxslt zlib
+
+# python-lxml needs these scripts in order to properly detect libxml2 and
+# libxslt compiler and linker flags
+PYTHON_LXML_BUILD_OPTS = \
+	--with-xslt-config=$(STAGING_DIR)/usr/bin/xslt-config \
+	--with-xml2-config=$(STAGING_DIR)/usr/bin/xml2-config
+
+$(eval $(python-package))
diff --git a/package/python-mako/Config.in b/package/python-mako/Config.in
new file mode 100644
index 0000000000..442e290efa
--- /dev/null
+++ b/package/python-mako/Config.in
@@ -0,0 +1,8 @@
+config BR2_PACKAGE_PYTHON_MAKO
+	bool "python-mako"
+	help
+	  Mako is a template library written in Python. It provides a
+	  familiar, non-XML syntax which compiles into Python modules
+	  for maximum performance.
+
+	  https://pypi.python.org/pypi/Mako
diff --git a/package/python-mako/python-mako.mk b/package/python-mako/python-mako.mk
new file mode 100644
index 0000000000..398b8d2fb2
--- /dev/null
+++ b/package/python-mako/python-mako.mk
@@ -0,0 +1,18 @@
+################################################################################
+#
+# python-mako
+#
+################################################################################
+
+PYTHON_MAKO_VERSION = 1.0.1
+PYTHON_MAKO_SOURCE = Mako-$(PYTHON_MAKO_VERSION).tar.gz
+PYTHON_MAKO_SITE = https://pypi.python.org/packages/source/M/Mako
+PYTHON_MAKO_SETUP_TYPE = setuptools
+PYTHON_MAKO_LICENSE = MIT
+PYTHON_MAKO_LICENSE_FILES = LICENSE
+
+# In host build, setup.py tries to download markupsafe if it is not installed
+HOST_PYTHON_MAKO_DEPENDENCIES = host-python-markupsafe
+
+$(eval $(python-package))
+$(eval $(host-python-package))
diff --git a/package/python/012-support-library-path-old-compilers.patch b/package/python/012-support-library-path-old-compilers.patch
deleted file mode 100644
index 9803821258..0000000000
--- a/package/python/012-support-library-path-old-compilers.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-python: do not rely only on LIBRARY_PATH for old compilers
-
-The cross-compilation improvements integrated in Python rely on the
-compiler exposing a line starting with LIBRARY_PATH when called with
--E -v. This is used by Python setup.py to find the installation
-locations of libraries.
-
-However, this LIBRARY_PATH line is not shown by very old compilers,
-such as the gcc 4.2.x compiler used on the AVR32 architecture. This
-causes libraries installed in the sysroot, such as libffi, to not be
-detected by the setup.py script.
-
-To fix this problem, this patch adds addtional logic to setup.py,
-which consists in deriving the library paths from the sysroot
-location, if no LIBRARY_PATH field was found.
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-
-Index: b/setup.py
-===================================================================
---- a/setup.py
-+++ b/setup.py
-@@ -418,6 +418,7 @@
-         in_incdirs = False
-         inc_dirs = []
-         lib_dirs = []
-+        compiler_has_library_path = False
-         try:
-             if ret >> 8 == 0:
-                 with open(tmpfile) as fp:
-@@ -429,6 +430,7 @@
-                         elif line.startswith("End of search list"):
-                             in_incdirs = False
-                         elif is_gcc and line.startswith("LIBRARY_PATH"):
-+                            compiler_has_library_path = True
-                             for d in line.strip().split("=")[1].split(":"):
-                                 d = os.path.normpath(d)
-                                 if '/gcc/' not in d:
-@@ -440,6 +442,15 @@
-         finally:
-             os.unlink(tmpfile)
- 
-+        if not compiler_has_library_path:
-+            ret = os.system("%s -print-file-name=libc.a | sed -r -e 's:(usr/)?lib(32|64)?/([^/]*/)?libc\.a::' >%s" % (gcc, tmpfile))
-+            with open(tmpfile) as fp:
-+                line = fp.readline().strip()
-+                add_dir_to_list(self.compiler.library_dirs,
-+                                os.path.join(line, "usr", "lib"))
-+                add_dir_to_list(self.compiler.library_dirs,
-+                                os.path.join(line, "lib"))
-+
-     def detect_modules(self):
-         # Ensure that /usr/local is always used
-         if not cross_compiling:
diff --git a/package/python/Config.in b/package/python/Config.in
index 87defad812..8d71dc9351 100644
--- a/package/python/Config.in
+++ b/package/python/Config.in
@@ -65,12 +65,6 @@ config BR2_PACKAGE_PYTHON_OSSAUDIODEV
 	help
 	  ossaudiodev module for Python.
 
-config BR2_PACKAGE_PYTHON_PYEXPAT
-	select BR2_PACKAGE_EXPAT
-	bool "pyexpat"
-	help
-	  pyexpat module for Python.
-
 config BR2_PACKAGE_PYTHON_READLINE
 	select BR2_PACKAGE_READLINE
 	bool "readline"
@@ -114,6 +108,12 @@ config BR2_PACKAGE_PYTHON_SQLITE
 	help
 	  SQLite database support
 
+config BR2_PACKAGE_PYTHON_PYEXPAT
+	select BR2_PACKAGE_EXPAT
+	bool "xml module"
+	help
+	  pyexpat and xml libraries for Python
+
 config BR2_PACKAGE_PYTHON_ZLIB
 	bool "zlib module"
 	select BR2_PACKAGE_ZLIB
diff --git a/package/python3/011-support-library-path-old-compilers.patch b/package/python3/011-support-library-path-old-compilers.patch
deleted file mode 100644
index 296e9febb9..0000000000
--- a/package/python3/011-support-library-path-old-compilers.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-python3: do not rely only on LIBRARY_PATH for old compilers
-
-The cross-compilation improvements integrated in Python rely on the
-compiler exposing a line starting with LIBRARY_PATH when called with
--E -v. This is used by Python setup.py to find the installation
-locations of libraries.
-
-However, this LIBRARY_PATH line is not shown by very old compilers,
-such as the gcc 4.2.x compiler used on the AVR32 architecture. This
-causes libraries installed in the sysroot, such as libffi, to not be
-detected by the setup.py script.
-
-To fix this problem, this patch adds addtional logic to setup.py,
-which consists in deriving the library paths from the sysroot
-location, if no LIBRARY_PATH field was found.
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-
-Index: b/setup.py
-===================================================================
---- a/setup.py
-+++ b/setup.py
-@@ -427,6 +427,7 @@
-         in_incdirs = False
-         inc_dirs = []
-         lib_dirs = []
-+        compiler_has_library_path = False
-         try:
-             if ret >> 8 == 0:
-                 with open(tmpfile) as fp:
-@@ -438,6 +439,7 @@
-                         elif line.startswith("End of search list"):
-                             in_incdirs = False
-                         elif is_gcc and line.startswith("LIBRARY_PATH"):
-+                            compiler_has_library_path = True
-                             for d in line.strip().split("=")[1].split(":"):
-                                 d = os.path.normpath(d)
-                                 if '/gcc/' not in d:
-@@ -449,6 +451,15 @@
-         finally:
-             os.unlink(tmpfile)
- 
-+        if not compiler_has_library_path:
-+            ret = os.system("%s -print-file-name=libc.a | sed -r -e 's:(usr/)?lib(32|64)?/([^/]*/)?libc\.a::' >%s" % (gcc, tmpfile))
-+            with open(tmpfile) as fp:
-+                line = fp.readline().strip()
-+                add_dir_to_list(self.compiler.library_dirs,
-+                                os.path.join(line, "usr", "lib"))
-+                add_dir_to_list(self.compiler.library_dirs,
-+                                os.path.join(line, "lib"))
-+
-     def detect_modules(self):
-         # Ensure that /usr/local is always used, but the local build
-         # directories (i.e. '.' and 'Include') must be first.  See issue
diff --git a/package/python3/Config.in b/package/python3/Config.in
index c3118c864e..e2f9077c4b 100644
--- a/package/python3/Config.in
+++ b/package/python3/Config.in
@@ -66,12 +66,6 @@ config BR2_PACKAGE_PYTHON3_OSSAUDIODEV
 	help
 	  ossaudiodev module for Python3.
 
-config BR2_PACKAGE_PYTHON3_PYEXPAT
-	select BR2_PACKAGE_EXPAT
-	bool "pyexpat"
-	help
-	  pyexpat module for Python3.
-
 config BR2_PACKAGE_PYTHON3_READLINE
 	select BR2_PACKAGE_READLINE
 	bool "readline"
@@ -97,6 +91,12 @@ config BR2_PACKAGE_PYTHON3_SQLITE
 	help
 	  SQLite database support
 
+config BR2_PACKAGE_PYTHON3_PYEXPAT
+	select BR2_PACKAGE_EXPAT
+	bool "xml module"
+	help
+	  pyexpat and xml libraries for Python3.
+
 config BR2_PACKAGE_PYTHON3_ZLIB
 	bool "zlib module"
 	select BR2_PACKAGE_ZLIB
diff --git a/package/qemu/qemu.mk b/package/qemu/qemu.mk
index 581f4ee065..1202df77c5 100644
--- a/package/qemu/qemu.mk
+++ b/package/qemu/qemu.mk
@@ -22,7 +22,6 @@ HOST_QEMU_DEPENDENCIES = host-pkgconf host-python host-zlib host-libglib2 host-p
 #       -------         ----
 #       arm             arm
 #       armeb           armeb
-#       avr32           not supported
 #       bfin            not supported
 #       i386            i386
 #       i486            i386
diff --git a/package/qt/Config.in b/package/qt/Config.in
index 990014e8ed..a40b6b5b84 100644
--- a/package/qt/Config.in
+++ b/package/qt/Config.in
@@ -1,11 +1,9 @@
 comment "qt needs a toolchain w/ C++, threads"
-	depends on !BR2_avr32
 	depends on BR2_USE_MMU
 	depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS
 
 menuconfig BR2_PACKAGE_QT
 	bool "Qt"
-	depends on !BR2_avr32 # lacks TLS
 	depends on BR2_USE_MMU # fork
 	depends on BR2_INSTALL_LIBSTDCPP
 	depends on BR2_TOOLCHAIN_HAS_THREADS
diff --git a/package/qt/qt.mk b/package/qt/qt.mk
index 9ea676cafd..3fb557fae2 100644
--- a/package/qt/qt.mk
+++ b/package/qt/qt.mk
@@ -225,8 +225,6 @@ endif
 
 ifeq ($(BR2_arm)$(BR2_armeb),y)
 QT_EMB_PLATFORM = arm
-else ifeq ($(BR2_avr32),y)
-QT_EMB_PLATFORM = avr32
 else ifeq ($(BR2_i386),y)
 QT_EMB_PLATFORM = x86
 else ifeq ($(BR2_x86_64),y)
diff --git a/package/qt5/Config.in b/package/qt5/Config.in
index fd8bde5e3b..9d316b1e79 100644
--- a/package/qt5/Config.in
+++ b/package/qt5/Config.in
@@ -13,12 +13,10 @@ config BR2_PACKAGE_QT5_JSCORE_AVAILABLE
 
 comment "Qt5 needs a toolchain w/ wchar, IPv6, NPTL, C++"
 	depends on !BR2_PACKAGE_QT
-	depends on !BR2_avr32
 	depends on !BR2_INSTALL_LIBSTDCPP || !BR2_USE_WCHAR || !BR2_INET_IPV6 || !BR2_TOOLCHAIN_HAS_THREADS_NPTL
 
 menuconfig BR2_PACKAGE_QT5
 	bool "Qt5"
-	depends on !BR2_avr32
 	depends on BR2_INSTALL_LIBSTDCPP
 	depends on BR2_USE_WCHAR
 	depends on BR2_INET_IPV6
diff --git a/package/qt5/qt5base/Config.in b/package/qt5/qt5base/Config.in
index d57dd8e494..99e249fdfc 100644
--- a/package/qt5/qt5base/Config.in
+++ b/package/qt5/qt5base/Config.in
@@ -53,7 +53,6 @@ config BR2_PACKAGE_QT5BASE_MYSQL
 	select BR2_PACKAGE_NCURSES
 	select BR2_PACKAGE_READLINE
 	depends on BR2_USE_MMU # mysql
-	depends on !BR2_avr32 # mysql
 	help
 	  Build MySQL plugin
 	  If unsure, say n.
diff --git a/package/qt5/qt5connectivity/Config.in b/package/qt5/qt5connectivity/Config.in
index ca1deab5f0..d529ea7f85 100644
--- a/package/qt5/qt5connectivity/Config.in
+++ b/package/qt5/qt5connectivity/Config.in
@@ -4,7 +4,6 @@ config BR2_PACKAGE_QT5CONNECTIVITY
 	select BR2_PACKAGE_QT5BASE
 	select BR2_PACKAGE_QT5BASE_CONCURRENT
 	select BR2_PACKAGE_QT5BASE_DBUS
-	depends on !BR2_avr32 # bluez_utils
 	depends on !BR2_STATIC_LIBS # bluez_utils
 	depends on BR2_USE_WCHAR # bluez_utils
 	depends on BR2_TOOLCHAIN_HAS_THREADS # bluez_utils
@@ -18,5 +17,5 @@ config BR2_PACKAGE_QT5CONNECTIVITY
 	  http://qt.io
 
 comment "qt5connectivity needs a toolchain w/ wchar, threads, dynamic library"
-	depends on !BR2_avr32 && BR2_USE_MMU
+	depends on BR2_USE_MMU
 	depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS
diff --git a/package/radvd/Config.in b/package/radvd/Config.in
index e74777c046..1c6024011c 100644
--- a/package/radvd/Config.in
+++ b/package/radvd/Config.in
@@ -3,7 +3,6 @@ config BR2_PACKAGE_RADVD
 	depends on BR2_USE_MMU # fork()
 	depends on BR2_INET_IPV6
 	# uClibc too old, does not define ARPHRD_IEEE802154
-	depends on !BR2_avr32
 	select BR2_PACKAGE_FLEX
 	help
 	  IPv6 Router Advertisement Daemon.
@@ -13,4 +12,3 @@ config BR2_PACKAGE_RADVD
 comment "radvd needs a toolchain w/ IPv6"
 	depends on BR2_USE_MMU
 	depends on !BR2_INET_IPV6
-	depends on !BR2_avr32
diff --git a/package/rpi-firmware/rpi-firmware.mk b/package/rpi-firmware/rpi-firmware.mk
index 945f890bee..cbcf790095 100644
--- a/package/rpi-firmware/rpi-firmware.mk
+++ b/package/rpi-firmware/rpi-firmware.mk
@@ -11,20 +11,16 @@ RPI_FIRMWARE_LICENSE_FILES = boot/LICENCE.broadcom
 RPI_FIRMWARE_INSTALL_TARGET = NO
 RPI_FIRMWARE_INSTALL_IMAGES = YES
 
-ifeq ($(BR2_PACKAGE_RPI_FIRMWARE_INSTALL_DTBS),y)
 RPI_FIRMWARE_DEPENDENCIES += host-rpi-firmware
-# The Device Tree blobs are not yet in the master branch of the
-# raspberrypi firmware project, so we have to use a separate branch
-# for now.
-RPI_FIRMWARE_VERSION = 6c0acfbbdba9908a4a4d21eab63c49ab72cb528b
+
 define RPI_FIRMWARE_INSTALL_DTB
 	$(INSTALL) -D -m 0644 $(@D)/boot/bcm2708-rpi-b.dtb $(BINARIES_DIR)/rpi-firmware/bcm2708-rpi-b.dtb
 	$(INSTALL) -D -m 0644 $(@D)/boot/bcm2708-rpi-b-plus.dtb $(BINARIES_DIR)/rpi-firmware/bcm2708-rpi-b-plus.dtb
+	$(INSTALL) -D -m 0644 $(@D)/boot/bcm2709-rpi-2-b.dtb $(BINARIES_DIR)/rpi-firmware/bcm2709-rpi-2-b.dtb
 	for ovldtb in  $(@D)/boot/overlays/*.dtb; do \
 		$(INSTALL) -D -m 0644 $${ovldtb} $(BINARIES_DIR)/rpi-firmware/overlays/$${ovldtb##*/} || exit 1; \
 	done
 endef
-endif
 
 define RPI_FIRMWARE_INSTALL_IMAGES_CMDS
 	$(INSTALL) -D -m 0644 $(@D)/boot/bootcode.bin $(BINARIES_DIR)/rpi-firmware/bootcode.bin
diff --git a/package/rpi-userland/0001-add-pkgconfig-files.patch b/package/rpi-userland/0001-Add-.pc-files-for-the-OpenGLESv2-EGL-and-bcm_host-li.patch
similarity index 60%
rename from package/rpi-userland/0001-add-pkgconfig-files.patch
rename to package/rpi-userland/0001-Add-.pc-files-for-the-OpenGLESv2-EGL-and-bcm_host-li.patch
index e88f810b34..352f95df2f 100644
--- a/package/rpi-userland/0001-add-pkgconfig-files.patch
+++ b/package/rpi-userland/0001-Add-.pc-files-for-the-OpenGLESv2-EGL-and-bcm_host-li.patch
@@ -1,13 +1,72 @@
-Add .pc files for the OpenGLESv2, EGL and bcm_host libraries
+From 853d7486a98e38eb78d48b2dcb1dda36610575b4 Mon Sep 17 00:00:00 2001
+From: "Yann E. MORIN" <yann.morin.1998@free.fr>
+Date: Sat, 24 Jan 2015 19:44:14 +0100
+Subject: [PATCH] Add .pc files for the OpenGLESv2, EGL and bcm_host
+ libraries
 
 Those pkg-config files make it easier for Qt5 to find those libraries
 and the appropriate link flags.
 
 Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
 Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
+---
+ host_applications/linux/libs/bcm_host/CMakeLists.txt |  4 ++++
+ host_applications/linux/libs/bcm_host/bcm_host.pc.in | 10 ++++++++++
+ interface/khronos/CMakeLists.txt                     |  8 ++++++++
+ interface/khronos/egl/egl.pc.in                      | 11 +++++++++++
+ interface/khronos/glxx/glesv2.pc.in                  | 10 ++++++++++
+ 5 files changed, 43 insertions(+)
+ create mode 100644 host_applications/linux/libs/bcm_host/bcm_host.pc.in
+ create mode 100644 interface/khronos/egl/egl.pc.in
+ create mode 100644 interface/khronos/glxx/glesv2.pc.in
 
-Index: b/interface/khronos/egl/egl.pc.in
-===================================================================
+diff --git a/host_applications/linux/libs/bcm_host/CMakeLists.txt b/host_applications/linux/libs/bcm_host/CMakeLists.txt
+index 1edf50a..1f29ead 100644
+--- a/host_applications/linux/libs/bcm_host/CMakeLists.txt
++++ b/host_applications/linux/libs/bcm_host/CMakeLists.txt
+@@ -20,3 +20,7 @@ target_link_libraries(bcm_host vcos vchostif)
+ 
+ install(TARGETS bcm_host DESTINATION lib)
+ 
++configure_file("${CMAKE_CURRENT_SOURCE_DIR}/bcm_host.pc.in"
++  "${CMAKE_CURRENT_BINARY_DIR}/bcm_host.pc" @ONLY)
++install(FILES "${CMAKE_CURRENT_BINARY_DIR}/bcm_host.pc"
++  DESTINATION "${CMAKE_INSTALL_PREFIX}/lib/pkgconfig")
+diff --git a/host_applications/linux/libs/bcm_host/bcm_host.pc.in b/host_applications/linux/libs/bcm_host/bcm_host.pc.in
+new file mode 100644
+index 0000000..d40d350
+--- /dev/null
++++ b/host_applications/linux/libs/bcm_host/bcm_host.pc.in
+@@ -0,0 +1,10 @@
++prefix=/usr
++exec_prefix=${prefix}
++libdir=${exec_prefix}/lib
++includedir=${prefix}/include
++
++Name: bcm_host
++Description: Broadcom VideoCore host API library
++Version: 1
++Libs: -L${libdir} -lbcm_host -lvcos -lvchiq_arm
++Cflags: -I${includedir} -I${includedir}/interface/vmcs_host/linux -I${includedir}/interface/vcos/pthreads -DUSE_VCHIQ_ARM
+diff --git a/interface/khronos/CMakeLists.txt b/interface/khronos/CMakeLists.txt
+index c437291..ec5a605 100644
+--- a/interface/khronos/CMakeLists.txt
++++ b/interface/khronos/CMakeLists.txt
+@@ -74,3 +74,11 @@ target_link_libraries(OpenVG EGL)
+ 
+ install(TARGETS EGL GLESv2 OpenVG WFC khrn_client DESTINATION lib)
+ install(TARGETS EGL_static GLESv2_static khrn_static DESTINATION lib)
++configure_file("${CMAKE_CURRENT_SOURCE_DIR}/egl/egl.pc.in"
++  "${CMAKE_CURRENT_BINARY_DIR}/egl/egl.pc" @ONLY)
++install(FILES "${CMAKE_CURRENT_BINARY_DIR}/egl/egl.pc"
++  DESTINATION "${CMAKE_INSTALL_PREFIX}/lib/pkgconfig")
++configure_file("${CMAKE_CURRENT_SOURCE_DIR}/glxx/glesv2.pc.in"
++  "${CMAKE_CURRENT_BINARY_DIR}/glxx/glesv2.pc" @ONLY)
++install(FILES "${CMAKE_CURRENT_BINARY_DIR}/glxx/glesv2.pc"
++  DESTINATION "${CMAKE_INSTALL_PREFIX}/lib/pkgconfig")
+diff --git a/interface/khronos/egl/egl.pc.in b/interface/khronos/egl/egl.pc.in
+new file mode 100644
+index 0000000..5868706
 --- /dev/null
 +++ b/interface/khronos/egl/egl.pc.in
 @@ -0,0 +1,11 @@
@@ -22,24 +81,9 @@ Index: b/interface/khronos/egl/egl.pc.in
 +Libs: -L${libdir} -lEGL -lGLESv2 -lbcm_host -lvchostif
 +Cflags: -I${includedir}/ -I${includedir}/interface/vcos/pthreads/ \
 +        -I${includedir}/interface/vmcs_host/linux/
-Index: b/interface/khronos/CMakeLists.txt
-===================================================================
---- a/interface/khronos/CMakeLists.txt
-+++ b/interface/khronos/CMakeLists.txt
-@@ -74,3 +74,11 @@
- 
- install(TARGETS EGL GLESv2 OpenVG WFC khrn_client DESTINATION lib)
- install(TARGETS EGL_static GLESv2_static khrn_static DESTINATION lib)
-+configure_file("${CMAKE_CURRENT_SOURCE_DIR}/egl/egl.pc.in"
-+  "${CMAKE_CURRENT_BINARY_DIR}/egl/egl.pc" @ONLY)
-+install(FILES "${CMAKE_CURRENT_BINARY_DIR}/egl/egl.pc"
-+  DESTINATION "${CMAKE_INSTALL_PREFIX}/lib/pkgconfig")
-+configure_file("${CMAKE_CURRENT_SOURCE_DIR}/glxx/glesv2.pc.in"
-+  "${CMAKE_CURRENT_BINARY_DIR}/glxx/glesv2.pc" @ONLY)
-+install(FILES "${CMAKE_CURRENT_BINARY_DIR}/glxx/glesv2.pc"
-+  DESTINATION "${CMAKE_INSTALL_PREFIX}/lib/pkgconfig")
-Index: b/interface/khronos/glxx/glesv2.pc.in
-===================================================================
+diff --git a/interface/khronos/glxx/glesv2.pc.in b/interface/khronos/glxx/glesv2.pc.in
+new file mode 100644
+index 0000000..2f58eed
 --- /dev/null
 +++ b/interface/khronos/glxx/glesv2.pc.in
 @@ -0,0 +1,10 @@
@@ -53,30 +97,6 @@ Index: b/interface/khronos/glxx/glesv2.pc.in
 +Version: 2.0
 +Libs: -L${libdir} -lGLESv2
 +Cflags: -I${includedir}/
-Index: b/host_applications/linux/libs/bcm_host/CMakeLists.txt
-===================================================================
---- a/host_applications/linux/libs/bcm_host/CMakeLists.txt
-+++ b/host_applications/linux/libs/bcm_host/CMakeLists.txt
-@@ -20,3 +20,7 @@
- 
- install(TARGETS bcm_host DESTINATION lib)
- 
-+configure_file("${CMAKE_CURRENT_SOURCE_DIR}/bcm_host.pc.in"
-+  "${CMAKE_CURRENT_BINARY_DIR}/bcm_host.pc" @ONLY)
-+install(FILES "${CMAKE_CURRENT_BINARY_DIR}/bcm_host.pc"
-+  DESTINATION "${CMAKE_INSTALL_PREFIX}/lib/pkgconfig")
-Index: b/host_applications/linux/libs/bcm_host/bcm_host.pc.in
-===================================================================
---- /dev/null
-+++ b/host_applications/linux/libs/bcm_host/bcm_host.pc.in
-@@ -0,0 +1,10 @@
-+prefix=/usr
-+exec_prefix=${prefix}
-+libdir=${exec_prefix}/lib
-+includedir=${prefix}/include
-+
-+Name: bcm_host
-+Description: Broadcom VideoCore host API library
-+Version: 1
-+Libs: -L${libdir} -lbcm_host -lvcos -lvchiq_arm
-+Cflags: -I${includedir} -I${includedir}/interface/vmcs_host/linux -I${includedir}/interface/vcos/pthreads -DUSE_VCHIQ_ARM
+-- 
+1.9.1
+
diff --git a/package/rpi-userland/0002-makefiles-cmake-vmcs.cmake-allow-to-override-VMCS_IN.patch b/package/rpi-userland/0002-makefiles-cmake-vmcs.cmake-allow-to-override-VMCS_IN.patch
index e54d29e03d..c21889808c 100644
--- a/package/rpi-userland/0002-makefiles-cmake-vmcs.cmake-allow-to-override-VMCS_IN.patch
+++ b/package/rpi-userland/0002-makefiles-cmake-vmcs.cmake-allow-to-override-VMCS_IN.patch
@@ -1,6 +1,6 @@
-From fec2560cfcb8d3398e4f1ccc3de7923365873676 Mon Sep 17 00:00:00 2001
+From 8894136ff80a8c6eeadf1799af59aa3aa7b87827 Mon Sep 17 00:00:00 2001
 From: Samuel Martin <s.martin49@gmail.com>
-Date: Sat, 5 Jan 2013 16:04:55 +0100
+Date: Sat, 24 Jan 2015 19:44:50 +0100
 Subject: [PATCH] makefiles/cmake/vmcs.cmake: allow to override
  VMCS_INSTALL_PREFIX
 
@@ -23,4 +23,5 @@ index 0f8641b..cc70cca 100644
  endif()
  
 -- 
-1.8.1
+1.9.1
+
diff --git a/package/rpi-userland/0003-interface-remove-faulty-assert-to-make-weston-happy-.patch b/package/rpi-userland/0003-interface-remove-faulty-assert-to-make-weston-happy-.patch
new file mode 100644
index 0000000000..16a5f52be7
--- /dev/null
+++ b/package/rpi-userland/0003-interface-remove-faulty-assert-to-make-weston-happy-.patch
@@ -0,0 +1,33 @@
+From e0df1a4f1d9737935165f420d0d0f685efc63f49 Mon Sep 17 00:00:00 2001
+From: "Yann E. MORIN" <yann.morin.1998@free.fr>
+Date: Sat, 24 Jan 2015 22:07:19 +0100
+Subject: [PATCH] interface: remove faulty assert() to make weston happy at
+ runtime
+
+This was removed after a discussion on IRC with the weston guys
+('daniels' on irc.freenode.net/#wayland).
+
+Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
+
+---
+Upstream status: no, will be pushed by weston guys later.
+If not, I'll do it.
+---
+ interface/vmcs_host/vc_vchi_dispmanx.c | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/interface/vmcs_host/vc_vchi_dispmanx.c b/interface/vmcs_host/vc_vchi_dispmanx.c
+index 85b373c..59a01f8 100755
+--- a/interface/vmcs_host/vc_vchi_dispmanx.c
++++ b/interface/vmcs_host/vc_vchi_dispmanx.c
+@@ -1296,7 +1296,6 @@ static void *dispmanx_notify_func( void *arg ) {
+          // Decrement the use count - the corresponding "use" is in vc_dispmanx_update_submit.
+          vchi_service_release(dispmanx_client.notify_handle[0]);
+          if (dispmanx_client.update_callback ) {
+-            vcos_assert( dispmanx_client.pending_update_handle == handle);
+             dispmanx_client.update_callback(handle, dispmanx_client.update_callback_param);
+          }
+       } else {
+-- 
+1.9.1
+
diff --git a/package/rpi-userland/0003-remove-faulty-assert.patch b/package/rpi-userland/0003-remove-faulty-assert.patch
deleted file mode 100644
index c23c43ae0e..0000000000
--- a/package/rpi-userland/0003-remove-faulty-assert.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-interface: remove faulty assert() to make weston happy at runtime
-
-This was removed after a discussion on IRC with the weston guys
-('daniels' on irc.freenode.net/#wayland).
-
-Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
----
-Upstream status: no, will be pushed by weston guys later.
-If not, I'll do it.
-
-diff -durN rpi-userland-77d32cd.orig/interface/vmcs_host/vc_vchi_dispmanx.c rpi-userland-77d32cd/interface/vmcs_host/vc_vchi_dispmanx.c
---- rpi-userland-77d32cd.orig/interface/vmcs_host/vc_vchi_dispmanx.c	2013-10-04 17:43:44.000000000 +0200
-+++ rpi-userland-77d32cd/interface/vmcs_host/vc_vchi_dispmanx.c	2013-10-08 22:28:51.611433539 +0200
-@@ -1187,7 +1187,6 @@
-          continue;
-    
-       if(dispmanx_client.update_callback ) {
--         vcos_assert( dispmanx_client.pending_update_handle == (DISPMANX_UPDATE_HANDLE_T) dispmanx_client.notify_buffer[1]);
-          dispmanx_client.update_callback((DISPMANX_UPDATE_HANDLE_T) dispmanx_client.notify_buffer[1], dispmanx_client.update_callback_param);
-       }
-    }
diff --git a/package/rpi-userland/0004-fix-musl-compile.patch b/package/rpi-userland/0004-fix-musl-compile.patch
deleted file mode 100644
index f960482805..0000000000
--- a/package/rpi-userland/0004-fix-musl-compile.patch
+++ /dev/null
@@ -1,113 +0,0 @@
-From 198d93fab0659f7a548329d742de8b3e27cfd977 Mon Sep 17 00:00:00 2001
-From: Maarten ter Huurne <maarten@treewalker.org>
-Date: Fri, 12 Sep 2014 18:28:51 +0200
-Subject: [PATCH] Combined musl compile fixes
-
-The individual patches and their descriptions can be found here:
-https://github.com/raspberrypi/userland/pull/201
-
-Upstream status: accepted (4333d6d)
-However, bumping to that revision is currently not an option since that
-also pulls in 66338d3 which breaks Weston:
-http://lists.busybox.net/pipermail/buildroot/2014-October/109309.html
-
-Signed-off-by: Maarten ter Huurne <maarten@treewalker.org>
----
- containers/CMakeLists.txt                                  | 2 +-
- host_applications/linux/apps/hello_pi/CMakeLists.txt       | 2 +-
- host_applications/linux/apps/hello_pi/libs/vgfont/Makefile | 1 -
- interface/vcos/pthreads/vcos_platform.h                    | 3 ---
- interface/vcos/pthreads/vcos_pthreads.c                    | 2 +-
- interface/vmcs_host/linux/vcfilesys.c                      | 4 ++--
- 6 files changed, 5 insertions(+), 9 deletions(-)
-
-diff --git a/containers/CMakeLists.txt b/containers/CMakeLists.txt
-index 721f74f..a29a885 100644
---- a/containers/CMakeLists.txt
-+++ b/containers/CMakeLists.txt
-@@ -13,7 +13,7 @@ add_definitions(-DDL_PATH_PREFIX="${VMCS_PLUGIN_DIR}/")
- 
- SET( GCC_COMPILER_FLAGS -Wall -g -O2 -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wcast-qual -Wwrite-strings -Wundef )
- SET( GCC_COMPILER_FLAGS ${GCC_COMPILER_FLAGS} -Wextra )#-Wno-missing-field-initializers )
--SET( GCC_COMPILER_FLAGS ${GCC_COMPILER_FLAGS} -D__STDC_VERSION__=199901L )
-+SET( GCC_COMPILER_FLAGS ${GCC_COMPILER_FLAGS} -std=c99 -D_POSIX_C_SOURCE=199309L )
- SET( GCC_COMPILER_FLAGS ${GCC_COMPILER_FLAGS} -Wno-missing-field-initializers )
- SET( GCC_COMPILER_FLAGS ${GCC_COMPILER_FLAGS} -Wno-unused-value )
- 
-diff --git a/host_applications/linux/apps/hello_pi/CMakeLists.txt b/host_applications/linux/apps/hello_pi/CMakeLists.txt
-index ab4dae3..f2c6aef 100644
---- a/host_applications/linux/apps/hello_pi/CMakeLists.txt
-+++ b/host_applications/linux/apps/hello_pi/CMakeLists.txt
-@@ -24,7 +24,7 @@ add_subdirectory(hello_teapot)
- 
- if(BUILD_FONT)
- set(VGFONT_SRCS libs/vgfont/font.c libs/vgfont/vgft.c libs/vgfont/graphics.c)
--set_source_files_properties(${VGFONT_SRCS} PROPERTIES COMPILE_DEFINITIONS "_HAVE_TIMER_T")
-+set_source_files_properties(${VGFONT_SRCS} PROPERTIES COMPILE_DEFINITIONS)
- add_library(vgfont ${VGFONT_SRCS})
- 
- add_subdirectory(hello_font)
-diff --git a/host_applications/linux/apps/hello_pi/libs/vgfont/Makefile b/host_applications/linux/apps/hello_pi/libs/vgfont/Makefile
-index d04fb08..1e2a22b 100755
---- a/host_applications/linux/apps/hello_pi/libs/vgfont/Makefile
-+++ b/host_applications/linux/apps/hello_pi/libs/vgfont/Makefile
-@@ -2,7 +2,6 @@ OBJS=font.o vgft.o graphics.o
- LIB=libvgfont.a
- 
- INCLUDES+=-I$(SDKSTAGE)/usr/include/freetype2 -I$(SDKSTAGE)/usr/include -I$(SDKSTAGE)/usr/include/arm-linux-gnueabi
--CFLAGS+=-D_HAVE_TIMER_T
- 
- include ../../Makefile.include
- 
-diff --git a/interface/vcos/pthreads/vcos_platform.h b/interface/vcos/pthreads/vcos_platform.h
-index 468098b..2095e25 100755
---- a/interface/vcos/pthreads/vcos_platform.h
-+++ b/interface/vcos/pthreads/vcos_platform.h
-@@ -120,9 +120,6 @@ typedef struct
- 
- #define VCOS_ONCE_INIT        PTHREAD_ONCE_INIT
- 
--#if defined(__arm__) && !defined(_HAVE_TIMER_T) && !defined(ANDROID)
--typedef __timer_t timer_t;
--#endif
- typedef struct VCOS_TIMER_T
- {
-    pthread_t thread;                      /**< id of the timer thread */
-diff --git a/interface/vcos/pthreads/vcos_pthreads.c b/interface/vcos/pthreads/vcos_pthreads.c
-index 668f647..fdc8bc4 100644
---- a/interface/vcos/pthreads/vcos_pthreads.c
-+++ b/interface/vcos/pthreads/vcos_pthreads.c
-@@ -33,7 +33,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- #include <stdlib.h>
- #include <stdio.h>
- #include <sys/time.h>
--#include <sys/param.h>
-+#include <linux/param.h>
- 
- /* Cygwin doesn't always have prctl.h and it doesn't have PR_SET_NAME */
- #if defined( __linux__ )
-diff --git a/interface/vmcs_host/linux/vcfilesys.c b/interface/vmcs_host/linux/vcfilesys.c
-index ab65e3e..53c7486 100644
---- a/interface/vmcs_host/linux/vcfilesys.c
-+++ b/interface/vmcs_host/linux/vcfilesys.c
-@@ -49,7 +49,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- #include <ctype.h>
- #include <limits.h>
- 
--#if !defined(ANDROID) && !defined( __USE_FILE_OFFSET64 )
-+#if defined(__GLIBC__) && !defined( __USE_FILE_OFFSET64 )
- #error   "__USE_FILE_OFFSET64 isn't defined"
- #endif
- 
-@@ -916,7 +916,7 @@ int vc_hostfs_set_attr(const char *path, fattributes_t attr)
- 
-    if (pathbuf)
-    {
--      __mode_t mode = 0;
-+      mode_t mode = 0;
-       struct stat sb;
- 
-       backslash_to_slash(pathbuf);
--- 
-1.8.4.5
-
diff --git a/package/rpi-userland/rpi-userland.mk b/package/rpi-userland/rpi-userland.mk
index 3f92950a79..20a6af0fd9 100644
--- a/package/rpi-userland/rpi-userland.mk
+++ b/package/rpi-userland/rpi-userland.mk
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-RPI_USERLAND_VERSION = ba753c1a7f68d7a2e00edaf03364eef001e233ef
+RPI_USERLAND_VERSION = 8f542a1647e6f88f254eadd9ad6929301c81913b
 RPI_USERLAND_SITE = $(call github,raspberrypi,userland,$(RPI_USERLAND_VERSION))
 RPI_USERLAND_LICENSE = BSD-3c
 RPI_USERLAND_LICENSE_FILES = LICENCE
diff --git a/package/rsyslog/0001-configure.ac-make-mysql-support-cross-compile-friendly.patch b/package/rsyslog/0001-configure.ac-make-mysql-support-cross-compile-friendly.patch
deleted file mode 100644
index 74a144da21..0000000000
--- a/package/rsyslog/0001-configure.ac-make-mysql-support-cross-compile-friendly.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-From b095b56b7cf96a5b1a5e411b6da14b5e9f237a43 Mon Sep 17 00:00:00 2001
-From: Gustavo Zacarias <gustavo@zacarias.com.ar>
-Date: Wed, 14 Jan 2015 10:07:50 -0300
-Subject: [PATCH] configure.ac: make mysql support cross-compile friendly
-
-When cross-compiling mysql_config shouldn't be expected to be in PATH
-since normally this would point to distribution mysql rather than cross,
-which can be of a totally different architecture.
-
-Change it so we can use ac_cv_prog_MYSQL_CONFIG to point to the real one.
-
-Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
----
- configure.ac | 15 ++++++++-------
- 1 file changed, 8 insertions(+), 7 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index ad7274c..4e662dc 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -547,21 +547,22 @@ AC_ARG_ENABLE(mysql,
- )
- if test "x$enable_mysql" = "xyes"; then
-   AC_CHECK_PROG(
--    [HAVE_MYSQL_CONFIG],
-+    [MYSQL_CONFIG],
-     [mysql_config],
--    [yes],,,
-+    [mysql_config],
-+    [no],,
-   )
--  if test "x${HAVE_MYSQL_CONFIG}" != "xyes"; then
--    AC_MSG_FAILURE([mysql_config not found in PATH - usually a package named mysql-dev, libmysql-dev or similar, is missing - install it to fix this issue])
-+  if test "x${MYSQL_CONFIG}" = "xno"; then
-+    AC_MSG_FAILURE([mysql_config not found - usually a package named mysql-dev, libmysql-dev or similar, is missing - install it to fix this issue])
-   fi
-   AC_CHECK_LIB(
-     [mysqlclient],
-     [mysql_init],
--    [MYSQL_CFLAGS=`mysql_config --cflags`
--     MYSQL_LIBS=`mysql_config --libs`
-+    [MYSQL_CFLAGS=`$MYSQL_CONFIG --cflags`
-+     MYSQL_LIBS=`$MYSQL_CONFIG --libs`
-     ],
-     [AC_MSG_FAILURE([MySQL library is missing])],
--    [`mysql_config --libs`]
-+    [`$MYSQL_CONFIG --libs`]
-   )
-   AC_MSG_CHECKING(if we have mysql_library_init)
-   save_CFLAGS="$CFLAGS"
--- 
-2.0.5
-
diff --git a/package/rsyslog/0002-configure.ac-make-pgsql-support-cross-compile-friendly.patch b/package/rsyslog/0002-configure.ac-make-pgsql-support-cross-compile-friendly.patch
deleted file mode 100644
index 6e253dd1bd..0000000000
--- a/package/rsyslog/0002-configure.ac-make-pgsql-support-cross-compile-friendly.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-From 80f49958083b90869e2857eb3edb7367e66c6a72 Mon Sep 17 00:00:00 2001
-From: Gustavo Zacarias <gustavo@zacarias.com.ar>
-Date: Wed, 14 Jan 2015 10:11:42 -0300
-Subject: [PATCH] configure.ac: make pgsql support cross-compile friendly
-
-When cross-compiling pg_config shouldn't be expected to be in PATH
-since normally this would point to distribution pgsql rather than cross,
-which can be of a totally different architecture.
-
-Change it so we can use ac_cv_prog_PG_CONFIG to point to the real one.
-
-Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
----
- configure.ac | 15 ++++++++-------
- 1 file changed, 8 insertions(+), 7 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index 4e662dc..6edaedd 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -598,21 +598,22 @@ AC_ARG_ENABLE(pgsql,
- )
- if test "x$enable_pgsql" = "xyes"; then
-   AC_CHECK_PROG(
--    [HAVE_PGSQL_CONFIG],
-+    [PG_CONFIG],
-     [pg_config],
--    [yes],,,
-+    [pg_config],
-+    [no],,,
-   )
--  if test "x${HAVE_PGSQL_CONFIG}" != "xyes"; then
--    AC_MSG_FAILURE([pg_config not found in PATH])
-+  if test "x${PG_CONFIG}" = "xno"; then
-+    AC_MSG_FAILURE([pg_config not found])
-   fi
-   AC_CHECK_LIB(
-     [pq],
-     [PQconnectdb],
--    [PGSQL_CFLAGS="-I`pg_config --includedir`"
--     PGSQL_LIBS="-L`pg_config --libdir` -lpq"
-+    [PGSQL_CFLAGS="-I`$PG_CONFIG --includedir`"
-+     PGSQL_LIBS="-L`$PG_CONFIG --libdir` -lpq"
-     ],
-     [AC_MSG_FAILURE([PgSQL library is missing])],
--    [-L`pg_config --libdir`]
-+    [-L`$PG_CONFIG --libdir`]
-   )
- fi
- AM_CONDITIONAL(ENABLE_PGSQL, test x$enable_pgsql = xyes)
--- 
-2.0.5
-
diff --git a/package/rsyslog/rsyslog.hash b/package/rsyslog/rsyslog.hash
index 4a0ae5aa1b..bd350192eb 100644
--- a/package/rsyslog/rsyslog.hash
+++ b/package/rsyslog/rsyslog.hash
@@ -1,2 +1,2 @@
 # From http://www.rsyslog.com/downloads/download-v8-stable/
-sha256	c77125b67a623569c9bdca8136b9aac013f1c6fd82fb8595e3ea267e61800f9c	rsyslog-8.7.0.tar.gz
+sha256	147a7e474665af7a817ac18d7924e26448350a77572e7fd9cfe284cb6291a0eb	rsyslog-8.8.0.tar.gz
diff --git a/package/rsyslog/rsyslog.mk b/package/rsyslog/rsyslog.mk
index 1e0953f83f..c6758eb23c 100644
--- a/package/rsyslog/rsyslog.mk
+++ b/package/rsyslog/rsyslog.mk
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-RSYSLOG_VERSION = 8.7.0
+RSYSLOG_VERSION = 8.8.0
 RSYSLOG_SITE = http://rsyslog.com/files/download/rsyslog
 RSYSLOG_LICENSE = GPLv3 LGPLv3 Apache-2.0
 RSYSLOG_LICENSE_FILES = COPYING COPYING.LESSER COPYING.ASL20
diff --git a/package/rtmpdump/rtmpdump.mk b/package/rtmpdump/rtmpdump.mk
index 14037fb18f..613f1cd49e 100644
--- a/package/rtmpdump/rtmpdump.mk
+++ b/package/rtmpdump/rtmpdump.mk
@@ -39,7 +39,7 @@ define RTMPDUMP_BUILD_CMDS
 	$(MAKE) CRYPTO=$(RTMPDUMP_CRYPTO) \
 		prefix=/usr \
 		XCFLAGS="$(RTMPDUMP_CFLAGS)" \
-		XLDFLAGS="$(TARGET_CFLAGS)" \
+		XLDFLAGS="$(TARGET_LDFLAGS)" \
 		CROSS_COMPILE="$(TARGET_CROSS)" \
 		$(RTMPDUMP_SHARED) \
 		-C $(@D)/librtmp
diff --git a/package/samba/Config.in b/package/samba/Config.in
index e2cac9e94f..9d04851741 100644
--- a/package/samba/Config.in
+++ b/package/samba/Config.in
@@ -2,7 +2,6 @@ config BR2_PACKAGE_SAMBA
 	bool "samba"
 	depends on BR2_TOOLCHAIN_HAS_THREADS
 	depends on BR2_USE_MMU # fork()
-	depends on !BR2_avr32 # binary too large, relocations don't fit
 	depends on !BR2_nios2 # binary too large, relocations don't fit
 	select BR2_PACKAGE_POPT
 	help
@@ -16,7 +15,6 @@ config BR2_PACKAGE_SAMBA
 		so choose only the components you need.
 
 comment "samba needs a toolchain w/ threads"
-	depends on !BR2_avr32
 	depends on BR2_USE_MMU
 	depends on !BR2_TOOLCHAIN_HAS_THREADS
 
diff --git a/package/samba4/Config.in b/package/samba4/Config.in
index 60e0f55475..b841f42618 100644
--- a/package/samba4/Config.in
+++ b/package/samba4/Config.in
@@ -6,7 +6,6 @@ config BR2_PACKAGE_SAMBA4
 	depends on BR2_USE_WCHAR # e2fsprogs
 	depends on BR2_LARGEFILE
 	depends on BR2_TOOLCHAIN_HAS_THREADS # talloc python threads
-	depends on !BR2_avr32 # bad toolchain
 	depends on !BR2_nios2 # binary too large, relocations don't fit
 	select BR2_PACKAGE_E2FSPROGS
 	select BR2_PACKAGE_POPT
diff --git a/package/sconeserver/Config.in b/package/sconeserver/Config.in
index 9d70086401..c7d602f2f5 100644
--- a/package/sconeserver/Config.in
+++ b/package/sconeserver/Config.in
@@ -35,7 +35,6 @@ config BR2_PACKAGE_SCONESERVER_HTTP_SCONESITE_IMAGE
 config BR2_PACKAGE_SCONESERVER_MYSQL
 	bool "mysql"
 	depends on BR2_USE_MMU # mysql
-	depends on !BR2_avr32 # mysql
 	select BR2_PACKAGE_MYSQL
 	help
 	  MySQL module for Sconeserver
@@ -45,14 +44,13 @@ config BR2_PACKAGE_SCONESERVER_BLUETOOTH
 	depends on BR2_USE_WCHAR # bluez->libglib2
 	depends on BR2_USE_MMU # bluez->dbus
 	depends on BR2_TOOLCHAIN_HAS_THREADS # bluez->dbus, bluez->libglib2
-	depends on !BR2_avr32 # bluez_utils
 	depends on !BR2_STATIC_LIBS # bluez_utils
 	select BR2_PACKAGE_BLUEZ_UTILS
 	help
 	  Bluetooth module for Sconeserver
 
 comment "bluetooth support needs a toolchain w/ wchar, threads, dynamic library"
-	depends on !BR2_avr32 && BR2_USE_MMU
+	depends on BR2_USE_MMU
 	depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS
 
 config BR2_PACKAGE_SCONESERVER_RSS
diff --git a/package/shairport-sync/shairport-sync.mk b/package/shairport-sync/shairport-sync.mk
index 9f3c0f0f72..9b85f1d91e 100644
--- a/package/shairport-sync/shairport-sync.mk
+++ b/package/shairport-sync/shairport-sync.mk
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-SHAIRPORT_SYNC_VERSION = 2.1.15
+SHAIRPORT_SYNC_VERSION = 2.2.1
 SHAIRPORT_SYNC_SITE = $(call github,mikebrady,shairport-sync,$(SHAIRPORT_SYNC_VERSION))
 
 SHAIRPORT_SYNC_LICENSE = MIT, BSD-3c
diff --git a/package/sigrok-cli/Config.in b/package/sigrok-cli/Config.in
index e3e5420aba..4e7f137185 100644
--- a/package/sigrok-cli/Config.in
+++ b/package/sigrok-cli/Config.in
@@ -1,6 +1,5 @@
 config BR2_PACKAGE_SIGROK_CLI
 	bool "sigrok-cli"
-	select BR2_PACKAGE_LIBSERIALPORT
 	select BR2_PACKAGE_LIBSIGROK
 	# libsigrok->libglib2:
 	depends on BR2_USE_WCHAR
diff --git a/package/snowball-init/Config.in b/package/snowball-init/Config.in
index 03d47527ed..6c94731203 100644
--- a/package/snowball-init/Config.in
+++ b/package/snowball-init/Config.in
@@ -2,7 +2,6 @@ config BR2_PACKAGE_SNOWBALL_INIT
 	bool "snowball-init"
 	# Runtime dependency, needed by snowball startup script
 	select BR2_PACKAGE_BLUEZ_UTILS
-	depends on !BR2_avr32
 	depends on !BR2_STATIC_LIBS # bluez_utils
 	depends on BR2_USE_WCHAR # libglib2
 	depends on BR2_TOOLCHAIN_HAS_THREADS # dbus, alsa-lib, libglib2
@@ -14,5 +13,5 @@ config BR2_PACKAGE_SNOWBALL_INIT
 	  http://www.igloocommunity.org
 
 comment "snowball-init needs a toolchain w/ wchar, threads, dynamic library"
-	depends on !BR2_avr32 && BR2_USE_MMU
+	depends on BR2_USE_MMU
 	depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS
diff --git a/package/sox/sox.hash b/package/sox/sox.hash
index 85b1aec758..2f8069b69f 100644
--- a/package/sox/sox.hash
+++ b/package/sox/sox.hash
@@ -1,2 +1,3 @@
-# Locally computed:
-sha256  9a8c2c6fe51e608da346a157e111508a957af9e3ecf3de26781d36e9a67fa89b  sox-14.4.1.tar.gz
+# From http://sourceforge.net/projects/sox/files/sox/14.4.2/
+md5	ba804bb1ce5c71dd484a102a5b27d0dd	sox-14.4.2.tar.bz2
+sha1	dc9668256b9d81ef25d672f14f12ec026b0b4087	sox-14.4.2.tar.bz2
diff --git a/package/sox/sox.mk b/package/sox/sox.mk
index 97776fcc25..cd5fbb677e 100644
--- a/package/sox/sox.mk
+++ b/package/sox/sox.mk
@@ -4,8 +4,9 @@
 #
 ################################################################################
 
-SOX_VERSION = 14.4.1
+SOX_VERSION = 14.4.2
 SOX_SITE = http://downloads.sourceforge.net/project/sox/sox/$(SOX_VERSION)
+SOX_SOURCE = sox-$(SOX_VERSION).tar.bz2
 SOX_DEPENDENCIES = host-pkgconf
 SOX_CONF_OPTS = --with-distro="Buildroot" --without-ffmpeg --disable-gomp
 SOX_LICENSE = GPLv2+ (sox binary), LGPLv2.1+ (libraries)
@@ -77,6 +78,12 @@ else
 SOX_CONF_OPTS += --without-amrwb --without-amrnb
 endif
 
+ifeq ($(BR2_PACKAGE_OPUSFILE),y)
+SOX_DEPENDENCIES += opusfile
+else
+SOX_CONF_OPTS += --without-opus
+endif
+
 ifeq ($(BR2_PACKAGE_PULSEAUDIO),y)
 SOX_DEPENDENCIES += pulseaudio
 else
diff --git a/package/sqlite/sqlite.hash b/package/sqlite/sqlite.hash
index 19cfb8f9f5..3dfbd5c57c 100644
--- a/package/sqlite/sqlite.hash
+++ b/package/sqlite/sqlite.hash
@@ -1,2 +1,2 @@
 # From http://www.sqlite.org/download.html
-sha1	1db237523419af7110e1d92c6b766e965f9322e4	sqlite-autoconf-3080802.tar.gz
+sha1	2fe3f6226a2a08a2e814b97cd53e36bb3c597112	sqlite-autoconf-3080803.tar.gz
diff --git a/package/sqlite/sqlite.mk b/package/sqlite/sqlite.mk
index f5f063fe6a..23dfd755d6 100644
--- a/package/sqlite/sqlite.mk
+++ b/package/sqlite/sqlite.mk
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-SQLITE_VERSION = 3080802
+SQLITE_VERSION = 3080803
 SQLITE_SOURCE = sqlite-autoconf-$(SQLITE_VERSION).tar.gz
 SQLITE_SITE = http://www.sqlite.org/2015
 SQLITE_LICENSE = Public domain
diff --git a/package/squid/Config.in b/package/squid/Config.in
index 9953b0dbda..a9300d8e34 100644
--- a/package/squid/Config.in
+++ b/package/squid/Config.in
@@ -1,6 +1,5 @@
 comment "squid needs a toolchain w/ C++, IPv6, headers >= 3.0"
 	depends on BR2_USE_MMU
-	depends on !BR2_avr32 # toolchain too old
 	depends on !BR2_INSTALL_LIBSTDCPP || !BR2_INET_IPV6 \
 		|| !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0
 
diff --git a/package/squid/squid.hash b/package/squid/squid.hash
index 574d4620e1..7d3e3f64b5 100644
--- a/package/squid/squid.hash
+++ b/package/squid/squid.hash
@@ -1,3 +1,3 @@
-# From http://www.squid-cache.org/Versions/v3/3.5/squid-3.5.1.tar.xz.asc
-md5	b3c9d9726314c1136b7a4c06447db24b	squid-3.5.1.tar.xz
-sha1	a2b01afd33d1df3a234e1a5c3405d626f6cf0fb0	squid-3.5.1.tar.xz
+# From http://www.squid-cache.org/Versions/v3/3.5/squid-3.5.2.tar.xz.asc
+md5	0330ec9f69e333c2a81fa4502ba96a22	squid-3.5.2.tar.xz
+sha1	9c546d72df741c9ddaa6da87baa2112503bcbb45	squid-3.5.2.tar.xz
diff --git a/package/squid/squid.mk b/package/squid/squid.mk
index e385c375c7..874332f14a 100644
--- a/package/squid/squid.mk
+++ b/package/squid/squid.mk
@@ -5,7 +5,7 @@
 ################################################################################
 
 SQUID_VERSION_MAJOR = 3.5
-SQUID_VERSION = $(SQUID_VERSION_MAJOR).1
+SQUID_VERSION = $(SQUID_VERSION_MAJOR).2
 SQUID_SOURCE = squid-$(SQUID_VERSION).tar.xz
 SQUID_SITE = http://www.squid-cache.org/Versions/v3/$(SQUID_VERSION_MAJOR)
 SQUID_LICENSE = GPLv2+
diff --git a/package/systemd/0002-build-sys-revert-use-of-ln-relative-option.patch b/package/systemd/0002-build-sys-revert-use-of-ln-relative-option.patch
index f4795b8ae0..2d9b34708d 100644
--- a/package/systemd/0002-build-sys-revert-use-of-ln-relative-option.patch
+++ b/package/systemd/0002-build-sys-revert-use-of-ln-relative-option.patch
@@ -10,9 +10,9 @@ for example).
 
 Signed-off-by: Eric Le Bihan <eric.le.bihan.dev@free.fr>
 ---
- Makefile.am  |   21 ++++++---------------
+ Makefile.am  |   19 +++++--------------
  configure.ac |    2 --
- 2 files changed, 6 insertions(+), 17 deletions(-)
+ 2 files changed, 5 insertions(+), 16 deletions(-)
 
 diff --git a/Makefile.am b/Makefile.am
 index e238cde..02b39ea 100644
@@ -66,15 +66,6 @@ index e238cde..02b39ea 100644
  
  dbus1-generator-uninstall-hook:
  	rm -f $(DESTDIR)$(usergeneratordir)/systemd-dbus1-generator
-@@ -2188,7 +2179,7 @@ systemd_bus_proxyd_LDADD = \
- bus-proxyd-install-hook:
- 	$(AM_V_at)$(MKDIR_P) $(DESTDIR)$(bindir)
- 	$(AM_V_RM)rm -f $(DESTDIR)$(bindir)/systemd-stdio-bridge
--	$(AM_V_LN)$(LN_S) --relative -f $(DESTDIR)$(rootlibexecdir)/systemd-bus-proxyd $(DESTDIR)$(bindir)/systemd-stdio-bridge
-+	$(AM_V_LN)$(LN_S) -f $(rootlibexecdir)/systemd-bus-proxyd $(DESTDIR)$(bindir)/systemd-stdio-bridge
- 
- bus-proxyd-uninstall-hook:
- 	rm -f $(DESTDIR)$(bindir)/systemd-stdio-bridge
 diff --git a/configure.ac b/configure.ac
 index ae88382..ec220af 100644
 --- a/configure.ac
diff --git a/package/systemd/systemd.hash b/package/systemd/systemd.hash
index e20519bea4..d2ac7405c0 100644
--- a/package/systemd/systemd.hash
+++ b/package/systemd/systemd.hash
@@ -1,2 +1,2 @@
 # Locally calculated
-sha256  1b0768b53b6c6d813a93a4b8fe1f80cf53561b09075010a97c7aa08eee3fd59b  systemd-218.tar.xz
+sha256  5c57113454e37c040d0cb481bd960ae7cf3a3fe0a231ff4945259bc74503f2d9  systemd-219.tar.xz
diff --git a/package/systemd/systemd.mk b/package/systemd/systemd.mk
index 92f99c2e01..98bda028e2 100644
--- a/package/systemd/systemd.mk
+++ b/package/systemd/systemd.mk
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-SYSTEMD_VERSION = 218
+SYSTEMD_VERSION = 219
 SYSTEMD_SITE = http://www.freedesktop.org/software/systemd
 SYSTEMD_SOURCE = systemd-$(SYSTEMD_VERSION).tar.xz
 SYSTEMD_LICENSE = LGPLv2.1+; GPLv2+ for udev; MIT-like license for few source files listed in README
@@ -37,9 +37,7 @@ SYSTEMD_CONF_OPTS += \
 	--with-dbuspolicydir=/etc/dbus-1/system.d \
 	--with-dbussessionservicedir=/usr/share/dbus-1/services \
 	--with-dbussystemservicedir=/usr/share/dbus-1/system-services \
-	--with-dbusinterfacedir=/usr/share/dbus-1/interfaces \
 	--enable-split-usr \
-	--enable-introspection=no \
 	--disable-efi \
 	--disable-tests \
 	--disable-dbus \
diff --git a/package/trace-cmd/Config.in b/package/trace-cmd/Config.in
index 55f896f11d..f64d28db94 100644
--- a/package/trace-cmd/Config.in
+++ b/package/trace-cmd/Config.in
@@ -2,7 +2,6 @@ config BR2_PACKAGE_TRACE_CMD
 	bool "trace-cmd"
 	depends on BR2_LARGEFILE
 	depends on BR2_TOOLCHAIN_HAS_THREADS
-	depends on !BR2_avr32 # AVR32 does not have TLS support
 	depends on BR2_USE_MMU # fork()
 	depends on !BR2_STATIC_LIBS # dlopen()
 	help
diff --git a/package/trinity/trinity.mk b/package/trinity/trinity.mk
index 52805e0c92..5f8a707467 100644
--- a/package/trinity/trinity.mk
+++ b/package/trinity/trinity.mk
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-TRINITY_VERSION = 5d2dfe9727eb9c8dc44c31e95968e8d85284ffcc
+TRINITY_VERSION = c8c41f99500b5854c2061a08962b8908c872d852
 TRINITY_SITE = $(call github,kernelslacker,trinity,$(TRINITY_VERSION))
 TRINITY_LICENSE = GPLv2
 TRINITY_LICENSE_FILES = COPYING
diff --git a/package/tvheadend/Config.in b/package/tvheadend/Config.in
index 303a345ca6..33dd484650 100644
--- a/package/tvheadend/Config.in
+++ b/package/tvheadend/Config.in
@@ -6,12 +6,6 @@ config BR2_PACKAGE_TVHEADEND
 	depends on BR2_LARGEFILE && BR2_INET_IPV6
 	depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL
 	depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_2
-	# tvheadend requires an atomic_add operation. Either you have
-	# a gcc >= 4.3 toolchain and it uses the gcc intrinsics, or it
-	# has special code for x86, x86-64, PPC and ARM. So in the
-	# context of Buildroot, the only really problematic
-	# architecture is avr32, which uses gcc 4.2.
-	depends on !BR2_avr32
 	select BR2_PACKAGE_DTV_SCAN_TABLES
 	select BR2_PACKAGE_FFMPEG_AVRESAMPLE if BR2_PACKAGE_FFMPEG
 	select BR2_PACKAGE_FFMPEG_SWSCALE if BR2_PACKAGE_FFMPEG
diff --git a/package/tzdata/tzdata.mk b/package/tzdata/tzdata.mk
index d869eda684..454ac294a8 100644
--- a/package/tzdata/tzdata.mk
+++ b/package/tzdata/tzdata.mk
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-TZDATA_VERSION = 2014d
+TZDATA_VERSION = 2015a
 TZDATA_SOURCE = tzdata$(TZDATA_VERSION).tar.gz
 TZDATA_SITE = ftp://ftp.iana.org/tz/releases
 TZDATA_DEPENDENCIES = host-tzdata
diff --git a/package/uboot-tools/uboot-tools.mk b/package/uboot-tools/uboot-tools.mk
index f02bb55f0b..413207d1dd 100644
--- a/package/uboot-tools/uboot-tools.mk
+++ b/package/uboot-tools/uboot-tools.mk
@@ -69,8 +69,8 @@ $(eval $(host-generic-package))
 
 MKIMAGE = $(HOST_DIR)/usr/bin/mkimage
 
-# mkimage supports arm avr32 blackfin m68k microblaze mips mips64 nios2 powerpc ppc sh sparc sparc64 x86
-# KERNEL_ARCH can be arm64 arc arm avr32 blackfin m68k microblaze mips nios2 powerpc sh sparc i386 x86_64 xtensa
+# mkimage supports arm blackfin m68k microblaze mips mips64 nios2 powerpc ppc sh sparc sparc64 x86
+# KERNEL_ARCH can be arm64 arc arm blackfin m68k microblaze mips nios2 powerpc sh sparc i386 x86_64 xtensa
 # For arm64, arc, xtensa we'll just keep KERNEL_ARCH
 # For mips64, we'll just keep mips
 # For i386 and x86_64, we need to convert
diff --git a/package/uclibc/0.9.31.1/0001-add-bsd-endian-conversions.patch b/package/uclibc/0.9.31.1/0001-add-bsd-endian-conversions.patch
deleted file mode 100644
index 652d7c9f10..0000000000
--- a/package/uclibc/0.9.31.1/0001-add-bsd-endian-conversions.patch
+++ /dev/null
@@ -1,64 +0,0 @@
-From c6d6237819037168a6923ac080e348e54615422c Mon Sep 17 00:00:00 2001
-From: Vladimir Zapolskiy <vzapolskiy@gmail.com>
-Date: Tue, 1 Jun 2010 23:22:57 +0400
-Subject: [PATCH] endian.h: add BSD convertions between big/little-endian byte order
-
-This patch adds support for convertion of values between host and
-big-/little-endian byte order.
-
-Signed-off-by: Vladimir Zapolskiy <vzapolskiy@gmail.com>
-Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
----
- include/endian.h |   38 ++++++++++++++++++++++++++++++++++++++
- 1 files changed, 38 insertions(+), 0 deletions(-)
-
-diff --git a/include/endian.h b/include/endian.h
-index 2f7bce1..0ba7384 100644
---- a/include/endian.h
-+++ b/include/endian.h
-@@ -55,4 +55,42 @@
- # define __LONG_LONG_PAIR(HI, LO) HI, LO
- #endif
- 
-+
-+#ifdef __USE_BSD
-+/* Conversion interfaces.  */
-+# include <byteswap.h>
-+
-+# if __BYTE_ORDER == __LITTLE_ENDIAN
-+#  define htobe16(x) __bswap_16 (x)
-+#  define htole16(x) (x)
-+#  define be16toh(x) __bswap_16 (x)
-+#  define le16toh(x) (x)
-+
-+#  define htobe32(x) __bswap_32 (x)
-+#  define htole32(x) (x)
-+#  define be32toh(x) __bswap_32 (x)
-+#  define le32toh(x) (x)
-+
-+#  define htobe64(x) __bswap_64 (x)
-+#  define htole64(x) (x)
-+#  define be64toh(x) __bswap_64 (x)
-+#  define le64toh(x) (x)
-+# else
-+#  define htobe16(x) (x)
-+#  define htole16(x) __bswap_16 (x)
-+#  define be16toh(x) (x)
-+#  define le16toh(x) __bswap_16 (x)
-+
-+#  define htobe32(x) (x)
-+#  define htole32(x) __bswap_32 (x)
-+#  define be32toh(x) (x)
-+#  define le32toh(x) __bswap_32 (x)
-+
-+#  define htobe64(x) (x)
-+#  define htole64(x) __bswap_64 (x)
-+#  define be64toh(x) (x)
-+#  define le64toh(x) __bswap_64 (x)
-+# endif
-+#endif
-+
- #endif	/* endian.h */
--- 
-1.7.3.4
-
diff --git a/package/uclibc/0.9.31.1/0002-add-inotify-init1.patch b/package/uclibc/0.9.31.1/0002-add-inotify-init1.patch
deleted file mode 100644
index cbec426238..0000000000
--- a/package/uclibc/0.9.31.1/0002-add-inotify-init1.patch
+++ /dev/null
@@ -1,64 +0,0 @@
-From a2e5630af426f85fdd8721b2820786d9bd2aa695 Mon Sep 17 00:00:00 2001
-From: Vladimir Zapolskiy <vzapolskiy@gmail.com>
-Date: Tue, 1 Jun 2010 20:02:54 +0400
-Subject: [PATCH] inotify: add inotify_init1 system call support
-
-This patch introduces support for inotify_init1 system call, found
-since Linux 2.6.27.
-
-Signed-off-by: Vladimir Zapolskiy <vzapolskiy@gmail.com>
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- libc/sysdeps/linux/common/inotify.c     |    4 ++++
- libc/sysdeps/linux/common/sys/inotify.h |   13 +++++++++++++
- 2 files changed, 17 insertions(+), 0 deletions(-)
-
-diff --git a/libc/sysdeps/linux/common/inotify.c b/libc/sysdeps/linux/common/inotify.c
-index e5a6120..e35f043 100644
---- a/libc/sysdeps/linux/common/inotify.c
-+++ b/libc/sysdeps/linux/common/inotify.c
-@@ -15,6 +15,10 @@
- _syscall0(int, inotify_init)
- #endif
- 
-+#ifdef __NR_inotify_init1
-+_syscall1(int, inotify_init1, int, flags)
-+#endif
-+
- #ifdef __NR_inotify_add_watch
- _syscall3(int, inotify_add_watch, int, fd, const char *, path, uint32_t, mask)
- #endif
-diff --git a/libc/sysdeps/linux/common/sys/inotify.h b/libc/sysdeps/linux/common/sys/inotify.h
-index 0131db9..dc4e19d 100644
---- a/libc/sysdeps/linux/common/sys/inotify.h
-+++ b/libc/sysdeps/linux/common/sys/inotify.h
-@@ -22,6 +22,16 @@
- #include <stdint.h>
- 
- 
-+/* Flags for the parameter of inotify_init1.  */
-+enum
-+  {
-+    IN_CLOEXEC = 02000000,
-+#define IN_CLOEXEC IN_CLOEXEC
-+    IN_NONBLOCK = 04000
-+#define IN_NONBLOCK IN_NONBLOCK
-+  };
-+
-+
- /* Structure describing an inotify event.  */
- struct inotify_event
- {
-@@ -79,6 +89,9 @@ __BEGIN_DECLS
- /* Create and initialize inotify instance.  */
- extern int inotify_init (void) __THROW;
- 
-+/* Create and initialize inotify instance.  */
-+extern int inotify_init1 (int __flags) __THROW;
-+
- /* Add watch of object NAME to inotify instance FD.  Notify about
-    events specified by MASK.  */
- extern int inotify_add_watch (int __fd, const char *__name, uint32_t __mask)
--- 
-1.7.3.4
-
diff --git a/package/uclibc/0.9.31.1/0003-add-sock-cloexec.patch b/package/uclibc/0.9.31.1/0003-add-sock-cloexec.patch
deleted file mode 100644
index a7089a98ac..0000000000
--- a/package/uclibc/0.9.31.1/0003-add-sock-cloexec.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From 83333e9c873e4eca6b2c945f7770b1f5373b0427 Mon Sep 17 00:00:00 2001
-From: Vladimir Zapolskiy <vzapolskiy@gmail.com>
-Date: Tue, 1 Jun 2010 20:02:39 +0400
-Subject: [PATCH] bits/socket.h: add SOCK_CLOEXEC and SOCK_NONBLOCK support
-
-This patch adds support for SOCK_CLOEXEC and SOCK_NONBLOCK socket
-descriptor flags, which are introduced since Linux 2.6.27
-
-Signed-off-by: Vladimir Zapolskiy <vzapolskiy@gmail.com>
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- libc/sysdeps/linux/common/bits/socket.h |   12 +++++++++++-
- 1 files changed, 11 insertions(+), 1 deletions(-)
-
-diff --git a/libc/sysdeps/linux/common/bits/socket.h b/libc/sysdeps/linux/common/bits/socket.h
-index ac5a433..11f6e97 100644
---- a/libc/sysdeps/linux/common/bits/socket.h
-+++ b/libc/sysdeps/linux/common/bits/socket.h
-@@ -53,10 +53,20 @@ enum __socket_type
-   SOCK_SEQPACKET = 5,		/* Sequenced, reliable, connection-based,
- 				   datagrams of fixed maximum length.  */
- #define SOCK_SEQPACKET SOCK_SEQPACKET
--  SOCK_PACKET = 10		/* Linux specific way of getting packets
-+  SOCK_PACKET = 10,		/* Linux specific way of getting packets
- 				   at the dev level.  For writing rarp and
- 				   other similar things on the user level. */
- #define SOCK_PACKET SOCK_PACKET
-+
-+  /* Flags to be ORed into the type parameter of socket and socketpair and
-+     used for the flags parameter of paccept.  */
-+
-+  SOCK_CLOEXEC = 02000000,	/* Atomically set close-on-exec flag for the
-+				   new descriptor(s).  */
-+#define SOCK_CLOEXEC SOCK_CLOEXEC
-+  SOCK_NONBLOCK = 04000		/* Atomically mark descriptor(s) as
-+				   non-blocking.  */
-+#define SOCK_NONBLOCK SOCK_NONBLOCK
- };
- 
- /* Protocol families.  */
--- 
-1.7.3.4
-
diff --git a/package/uclibc/0.9.31.1/0004-export-strverscmp.patch b/package/uclibc/0.9.31.1/0004-export-strverscmp.patch
deleted file mode 100644
index 19bc021b88..0000000000
--- a/package/uclibc/0.9.31.1/0004-export-strverscmp.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From 139b8f0c673fed465d27f99c98568e5d5e1b9b72 Mon Sep 17 00:00:00 2001
-From: Denys Vlasenko <vda.linux@googlemail.com>
-Date: Fri, 4 Jun 2010 13:36:30 +0200
-Subject: [PATCH] strverscmp: I forgot to export it
-
-Result was:
-
-strverscmp.o:
-000000ec T __GI_strverscmp
-
-i.e. no plain "strverscmp"!
-
-Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
-Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
----
- libc/string/strverscmp.c |    1 +
- 1 files changed, 1 insertions(+), 0 deletions(-)
-
-diff --git a/libc/string/strverscmp.c b/libc/string/strverscmp.c
-index 74ae4c6..b19e8f0 100644
---- a/libc/string/strverscmp.c
-+++ b/libc/string/strverscmp.c
-@@ -115,3 +115,4 @@ int strverscmp (const char *s1, const char *s2)
-       return state;
-   }
- }
-+libc_hidden_def(strverscmp)
--- 
-1.7.3.4
-
diff --git a/package/uclibc/0.9.31.1/0005-fix-daylight-saving-time-handling.patch b/package/uclibc/0.9.31.1/0005-fix-daylight-saving-time-handling.patch
deleted file mode 100644
index 5a96113877..0000000000
--- a/package/uclibc/0.9.31.1/0005-fix-daylight-saving-time-handling.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From 47f3da1cf49377c25772bb54d07db55225bbb142 Mon Sep 17 00:00:00 2001
-From: Guillaume Bourcier <guillaumebourcier@free.fr>
-Date: Tue, 11 Oct 2011 13:45:33 +0200
-Subject: [PATCH] libc: fix daylight saving time handling
-
-The algorithm computing daylight saving time incorrectly adds a day for
-each month after January for leap years. The clock shift from/to DST can
-be delayed if the last Sunday of a transition month is exactly seven
-days before the first of the following month.
-
-This change adds a day for the February month only.
-
-Signed-off-by: Guillaume Bourcier <guillaumebourcier@free.fr>
-Signed-off-by: Richard Braun <rbraun@sceen.net>
-Signed-off-by: Carmelo Amoroso <carmelo.amoroso@st.com>
-Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
----
- libc/misc/time/time.c |    2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/libc/misc/time/time.c b/libc/misc/time/time.c
-index 19d68e1..8e2ebf1 100644
---- a/libc/misc/time/time.c
-+++ b/libc/misc/time/time.c
-@@ -689,7 +689,7 @@ static int tm_isdst(register const struct tm *__restrict ptm,
- 					++day;
- 				}
- 				monlen = 31 + day_cor[r->month -1] - day_cor[r->month];
--				if (isleap && (r->month > 1)) {
-+				if (isleap && (r->month == 2)) {
- 					++monlen;
- 				}
- 				/* Wweekday (0 is Sunday) of 1st of the month
--- 
-1.7.3.4
-
diff --git a/package/uclibc/0.9.31.1/0006-fix-error-locale-utf-8.patch b/package/uclibc/0.9.31.1/0006-fix-error-locale-utf-8.patch
deleted file mode 100644
index 1305add50a..0000000000
--- a/package/uclibc/0.9.31.1/0006-fix-error-locale-utf-8.patch
+++ /dev/null
@@ -1,17 +0,0 @@
----
- extra/locale/gen_wc8bit.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-Index: uClibc-0.9.31/extra/locale/gen_wc8bit.c
-===================================================================
---- uClibc-0.9.31.orig/extra/locale/gen_wc8bit.c
-+++ uClibc-0.9.31/extra/locale/gen_wc8bit.c
-@@ -120,7 +120,7 @@
- 		}
- 
-  locale_failure:
--		printf("could not find a UTF8 locale ... please enable en_US.UTF-8\n");
-+		fprintf(stderr, "could not find a UTF8 locale ... please enable en_US.UTF-8\n");
- 		return EXIT_FAILURE;
-  locale_success:
- 		pclose(fp);
diff --git a/package/uclibc/0.9.31.1/0007-linuxthreads-errno-fix.patch b/package/uclibc/0.9.31.1/0007-linuxthreads-errno-fix.patch
deleted file mode 100644
index c49821bde7..0000000000
--- a/package/uclibc/0.9.31.1/0007-linuxthreads-errno-fix.patch
+++ /dev/null
@@ -1,98 +0,0 @@
-From af8b2d71ce37b9d4d24ddbc755cdea68de02949a Mon Sep 17 00:00:00 2001
-From: Peter Korsgaard <jacmet@sunsite.dk>
-Date: Mon, 5 Jul 2010 14:08:17 +0200
-Subject: [PATCH] don't make __errno_location / __h_errno_location hidden
-
-Closes #2089 (https://bugs.busybox.net/show_bug.cgi?id=2089)
-
-__errno_location / __h_errno_location access has to go through the PLT
-like malloc/free, so the linuxthread variants gets used instead when
-compiling with -pthread.
-
-Based on http://github.com/mat-c/uClibc/commit/328d392c54aa5dc2b8e7f398a419087de497de2b
-
-Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
----
- include/netdb.h                               |    1 -
- libc/misc/internals/__errno_location.c        |    3 ---
- libc/misc/internals/__h_errno_location.c      |    1 -
- libc/misc/internals/__uClibc_main.c           |    2 --
- libc/sysdeps/linux/common/bits/errno.h        |    1 -
- libc/sysdeps/linux/common/bits/uClibc_errno.h |    3 ---
- 6 files changed, 0 insertions(+), 11 deletions(-)
-
-diff --git a/include/netdb.h b/include/netdb.h
-index 9d3807d..ac411ab 100644
---- a/include/netdb.h
-+++ b/include/netdb.h
-@@ -59,7 +59,6 @@ __BEGIN_DECLS
- 
- /* Function to get address of global `h_errno' variable.  */
- extern int *__h_errno_location (void) __THROW __attribute__ ((__const__));
--libc_hidden_proto(__h_errno_location)
- 
- /* Macros for accessing h_errno from inside libc.  */
- #ifdef _LIBC
-diff --git a/libc/misc/internals/__errno_location.c b/libc/misc/internals/__errno_location.c
-index 487a9c2..0620860 100644
---- a/libc/misc/internals/__errno_location.c
-+++ b/libc/misc/internals/__errno_location.c
-@@ -11,6 +11,3 @@ int * weak_const_function __errno_location (void)
- {
-     return &errno;
- }
--#ifdef IS_IN_libc /* not really need, only to keep in sync w/ libc_hidden_proto */
--libc_hidden_weak(__errno_location)
--#endif
-diff --git a/libc/misc/internals/__h_errno_location.c b/libc/misc/internals/__h_errno_location.c
-index 213d398..235df4e 100644
---- a/libc/misc/internals/__h_errno_location.c
-+++ b/libc/misc/internals/__h_errno_location.c
-@@ -10,4 +10,3 @@ int * weak_const_function __h_errno_location (void)
- {
-     return &h_errno;
- }
--libc_hidden_weak(__h_errno_location)
-diff --git a/libc/misc/internals/__uClibc_main.c b/libc/misc/internals/__uClibc_main.c
-index 6e520fa..f4a9ebb 100644
---- a/libc/misc/internals/__uClibc_main.c
-+++ b/libc/misc/internals/__uClibc_main.c
-@@ -64,9 +64,7 @@ void internal_function _dl_aux_init (ElfW(auxv_t) *av);
-  * Prototypes.
-  */
- extern int *weak_const_function __errno_location(void);
--libc_hidden_proto(__errno_location)
- extern int *weak_const_function __h_errno_location(void);
--libc_hidden_proto(__h_errno_location)
- 
- extern void weak_function _stdio_init(void) attribute_hidden;
- #ifdef __UCLIBC_HAS_LOCALE__
-diff --git a/libc/sysdeps/linux/common/bits/errno.h b/libc/sysdeps/linux/common/bits/errno.h
-index 0bf6354..de9688a 100644
---- a/libc/sysdeps/linux/common/bits/errno.h
-+++ b/libc/sysdeps/linux/common/bits/errno.h
-@@ -43,7 +43,6 @@
- # ifndef __ASSEMBLER__
- /* Function to get address of global `errno' variable.  */
- extern int *__errno_location (void) __THROW __attribute__ ((__const__));
--libc_hidden_proto(__errno_location)
- 
- #  ifdef __UCLIBC_HAS_THREADS__
- /* When using threads, errno is a per-thread value.  */
-diff --git a/libc/sysdeps/linux/common/bits/uClibc_errno.h b/libc/sysdeps/linux/common/bits/uClibc_errno.h
-index 9c15618..79eb7e6 100644
---- a/libc/sysdeps/linux/common/bits/uClibc_errno.h
-+++ b/libc/sysdeps/linux/common/bits/uClibc_errno.h
-@@ -33,9 +33,6 @@ extern int *__errno_location (void) __THROW __attribute__ ((__const__))
- ;
- # if defined __UCLIBC_HAS_THREADS__
- #  include <tls.h>
--#  if defined USE___THREAD && USE___THREAD
--libc_hidden_proto(__errno_location)
--#  endif
- # endif
- 
- #endif /* !__ASSEMBLER__ */
--- 
-1.7.1
-
diff --git a/package/uclibc/0.9.31.1/0008-more-workarounds-GCC-PR32219.patch b/package/uclibc/0.9.31.1/0008-more-workarounds-GCC-PR32219.patch
deleted file mode 100644
index 9e6953224c..0000000000
--- a/package/uclibc/0.9.31.1/0008-more-workarounds-GCC-PR32219.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From aa67771881d65373da448ad5f7a8393f3a1d9469 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Timo=20Ter=C3=A4s?= <timo.teras@iki.fi>
-Date: Wed, 30 Jun 2010 14:46:37 +0300
-Subject: [PATCH] more workarounds for GCC PR32219
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Commit 2e53dd645d5348f207cec7f8595969dc566c5a55 workarounds GCC
-bug when accessing _locale_init and _stdio_init. We need the same
-fix for __errno_location and __h_errno_location otherwise we crash
-calling null with static and non-threaded builds.
-
-Signed-off-by: Timo Teräs <timo.teras@iki.fi>
-Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
----
- libc/misc/internals/__uClibc_main.c |    4 ++--
- 1 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/libc/misc/internals/__uClibc_main.c b/libc/misc/internals/__uClibc_main.c
-index 3f09ad2..58f6643 100644
---- a/libc/misc/internals/__uClibc_main.c
-+++ b/libc/misc/internals/__uClibc_main.c
-@@ -447,11 +447,11 @@ void __uClibc_main(int (*main)(int, char **, char **), int argc,
-      * have resulted in errno being set nonzero, so set it to 0 before
-      * we call main.
-      */
--    if (likely(__errno_location!=NULL))
-+    if (likely(not_null_ptr(__errno_location)))
- 	*(__errno_location()) = 0;
- 
-     /* Set h_errno to 0 as well */
--    if (likely(__h_errno_location!=NULL))
-+    if (likely(not_null_ptr(__h_errno_location)))
- 	*(__h_errno_location()) = 0;
- 
- #if defined HAVE_CLEANUP_JMP_BUF && defined __UCLIBC_HAS_THREADS_NATIVE__
--- 
-1.7.1
-
diff --git a/package/uclibc/0.9.31.1/0009-unshare.patch b/package/uclibc/0.9.31.1/0009-unshare.patch
deleted file mode 100644
index ad440d9dc2..0000000000
--- a/package/uclibc/0.9.31.1/0009-unshare.patch
+++ /dev/null
@@ -1,74 +0,0 @@
-Backport of unshare() syscall.
-From uClibc git 19dd090a0f68765db87990ef8eda9bf77bb29581
-
-Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
-
----
-diff -Nura uClibc-0.9.31.1.orig/libc/sysdeps/linux/common/bits/sched.h uClibc-0.9.31.1/libc/sysdeps/linux/common/bits/sched.h
---- uClibc-0.9.31.1.orig/libc/sysdeps/linux/common/bits/sched.h	2011-06-08 15:58:40.000000000 -0300
-+++ uClibc-0.9.31.1/libc/sysdeps/linux/common/bits/sched.h	2011-12-05 08:10:02.491978849 -0300
-@@ -58,7 +58,13 @@
- 				      force CLONE_PTRACE on this clone.  */
- # define CLONE_CHILD_SETTID 0x01000000 /* Store TID in userlevel buffer in
- 					  the child.  */
--# define CLONE_STOPPED	0x02000000 /* Start in stopped state.  */
-+# define CLONE_STOPPED 0x02000000 /* Start in stopped state.  */
-+# define CLONE_NEWUTS  0x04000000      /* New utsname group.  */
-+# define CLONE_NEWIPC  0x08000000      /* New ipcs.  */
-+# define CLONE_NEWUSER 0x10000000      /* New user namespace.  */
-+# define CLONE_NEWPID  0x20000000      /* New pid namespace.  */
-+# define CLONE_NEWNET  0x40000000      /* New network namespace.  */
-+# define CLONE_IO      0x80000000      /* Clone I/O context.  */
- #endif
- 
- /* The official definition.  */
-@@ -74,11 +80,9 @@
- extern int clone (int (*__fn) (void *__arg), void *__child_stack,
- 		  int __flags, void *__arg, ...) __THROW;
- 
--#if 0
- /* Unshare the specified resources.  */
- extern int unshare (int __flags) __THROW;
- #endif
--#endif
- 
- __END_DECLS
- 
-diff -Nura uClibc-0.9.31.1.orig/libc/sysdeps/linux/common/Makefile.in uClibc-0.9.31.1/libc/sysdeps/linux/common/Makefile.in
---- uClibc-0.9.31.1.orig/libc/sysdeps/linux/common/Makefile.in	2011-06-08 15:58:40.000000000 -0300
-+++ uClibc-0.9.31.1/libc/sysdeps/linux/common/Makefile.in	2011-12-05 08:23:28.353757602 -0300
-@@ -31,7 +31,8 @@
- 	remap_file_pages.c sched_getaffinity.c sched_setaffinity.c \
- 	sendfile64.c sendfile.c setfsgid.c setfsuid.c setresuid.c \
- 	splice.c vmsplice.c tee.c signalfd.c swapoff.c swapon.c \
--	sync_file_range.c sysctl.c sysinfo.c timerfd.c uselib.c vhangup.c,$(CSRC))
-+	sync_file_range.c sysctl.c sysinfo.c timerfd.c unshare.c uselib.c \
-+	vhangup.c,$(CSRC))
- endif
- 
- ifneq ($(UCLIBC_BSD_SPECIFIC),y)
-diff -Nura uClibc-0.9.31.1.orig/libc/sysdeps/linux/common/unshare.c uClibc-0.9.31.1/libc/sysdeps/linux/common/unshare.c
---- uClibc-0.9.31.1.orig/libc/sysdeps/linux/common/unshare.c	1969-12-31 21:00:00.000000000 -0300
-+++ uClibc-0.9.31.1/libc/sysdeps/linux/common/unshare.c	2011-12-05 08:22:45.954453512 -0300
-@@ -0,0 +1,21 @@
-+/* vi: set sw=4 ts=4: */
-+/*
-+ * unshare() for uClibc
-+ *
-+ * Copyright (C) 2011 Henning Heinold <heinold@inf.fu-berlin.de>
-+ *
-+ * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-+ */
-+
-+#include <sys/syscall.h>
-+#include <sched.h>
-+
-+#if defined __NR_unshare && defined __UCLIBC_LINUX_SPECIFIC__
-+_syscall1(int, unshare, int, flags)
-+#else
-+int unshare(int flags) 
-+{   
-+    __set_errno(ENOSYS);
-+    return -1;
-+}
-+#endif
diff --git a/package/uclibc/0.9.31.1/0010-workaround-GCC-PR32219.patch b/package/uclibc/0.9.31.1/0010-workaround-GCC-PR32219.patch
deleted file mode 100644
index 242a5264b8..0000000000
--- a/package/uclibc/0.9.31.1/0010-workaround-GCC-PR32219.patch
+++ /dev/null
@@ -1,57 +0,0 @@
-From 2e53dd645d5348f207cec7f8595969dc566c5a55 Mon Sep 17 00:00:00 2001
-From: Denys Vlasenko <vda.linux@googlemail.com>
-Date: Mon, 17 May 2010 15:56:19 +0200
-Subject: [PATCH] workaround GCC PR32219
-
-we ended up calling 0
-Fixes bug #1033
-
-Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
-Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
----
- libc/misc/internals/__uClibc_main.c |   15 +++++++++++++--
- 1 files changed, 13 insertions(+), 2 deletions(-)
-
-diff --git a/libc/misc/internals/__uClibc_main.c b/libc/misc/internals/__uClibc_main.c
-index f9e1244..4ee4443 100644
---- a/libc/misc/internals/__uClibc_main.c
-+++ b/libc/misc/internals/__uClibc_main.c
-@@ -105,6 +105,17 @@ _pthread_cleanup_pop_restore(struct _pthread_cleanup_buffer *__buffer,
- 
- #endif /* !SHARED */
- 
-+/* Defeat compiler optimization which assumes function addresses are never NULL */
-+static __always_inline int not_null_ptr(const void *p)
-+{
-+	const void *q;
-+	__asm__ (""
-+		: "=r" (q) /* output */
-+		: "0" (p) /* input */
-+	);
-+	return q != 0;
-+}
-+
- /*
-  * Prototypes.
-  */
-@@ -254,7 +265,7 @@ void __uClibc_init(void)
- 
- #ifdef __UCLIBC_HAS_LOCALE__
-     /* Initialize the global locale structure. */
--    if (likely(_locale_init!=NULL))
-+    if (likely(not_null_ptr(_locale_init)))
- 	_locale_init();
- #endif
- 
-@@ -264,7 +275,7 @@ void __uClibc_init(void)
-      * Thus we get a nice size savings because the stdio functions
-      * won't be pulled into the final static binary unless used.
-      */
--    if (likely(_stdio_init != NULL))
-+    if (likely(not_null_ptr(_stdio_init)))
- 	_stdio_init();
- 
- }
--- 
-1.7.1
-
diff --git a/package/uclibc/0.9.31.1/0011-startfiles-Make-targets.patch b/package/uclibc/0.9.31.1/0011-startfiles-Make-targets.patch
deleted file mode 100644
index 9a7f3045c5..0000000000
--- a/package/uclibc/0.9.31.1/0011-startfiles-Make-targets.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-Add startfiles and install_startfiles targets to the top-level Makefile, as
-in uClibc 0.9.32 and later.
-
-Signed-off-by: Simon Dawson <spdawson@gmail.com>
-
-diff -Nurp a/Makefile.help b/Makefile.help
---- a/Makefile.help	2011-06-08 19:58:40.000000000 +0100
-+++ b/Makefile.help	2013-08-10 21:17:46.572104259 +0100
-@@ -14,6 +14,7 @@ help:
- 	@echo 'Build:'
- 	@echo '  all			- libraries and generated headers'
- 	@echo '  pregen		- generate headers'
-+	@echo '  startfiles		- build startfiles (crt)'
- 	@echo '  utils			- build target utilities'
- 	@echo '			  (ldd, ldconfig, locale, iconv)'
- 	@echo '  hostutils		- build host utilities (see utils)'
-@@ -32,6 +33,7 @@ help:
- 	@echo '  install		- install both the runtime and the headers'
- 	@echo '  install_runtime	- install the libraries'
- 	@echo '  install_dev		- install all headers and static libs'
-+	@echo '  install_startfiles	- install startfiles (crt)'
- 	@echo '  install_headers	- install headers excluding generated ones'
- 	@echo '  install_utils		- install target utilities'
- 	@echo '  install_hostutils	- install host utilities'
-diff -Nurp a/Makefile.in b/Makefile.in
---- a/Makefile.in	2011-06-08 19:58:40.000000000 +0100
-+++ b/Makefile.in	2013-08-10 21:10:55.248649101 +0100
-@@ -193,6 +193,8 @@ install: install_runtime install_dev
- 
- RUNTIME_PREFIX_LIB_FROM_DEVEL_PREFIX_LIB=$(shell $(top_srcdir)extra/scripts/relative_path.sh $(DEVEL_PREFIX)$(MULTILIB_DIR) $(RUNTIME_PREFIX)$(MULTILIB_DIR))
- 
-+startfiles: $(crt-y)
-+
- $(top_builddir)extra/scripts/unifdef: |$(top_builddir)extra/scripts
- $(top_builddir)extra/scripts/unifdef: $(top_srcdir)extra/scripts/unifdef.c
- 	$(hcompile.u)
-@@ -301,6 +303,10 @@ else
- 	cd $(PREFIX)$(DEVEL_PREFIX)include && $(RM) -f wchar-stub.h
- endif
- 
-+# Installs startfiles
-+install_startfiles: startfiles | $(PREFIX)$(DEVEL_PREFIX)$(MULTILIB_DIR)
-+	-$(INSTALL) -m 644 $(startfiles) $(PREFIX)$(DEVEL_PREFIX)$(MULTILIB_DIR)/
-+
- # Installs development library links.
- install_dev: install_headers install_runtime | $(PREFIX)$(DEVEL_PREFIX)$(MULTILIB_DIR)
- 	-$(INSTALL) -m 644 $(top_builddir)lib/*.[ao] $(PREFIX)$(DEVEL_PREFIX)$(MULTILIB_DIR)/
-diff -Nurp a/Makerules b/Makerules
---- a/Makerules	2011-06-08 19:58:40.000000000 +0100
-+++ b/Makerules	2013-08-10 21:24:21.287583111 +0100
-@@ -406,7 +406,8 @@ endif
- CRTS_COMPAT :=
- #endif
- 
--$(crt-y): $(CRTS) $(CTOR_TARGETS) $(CRTS_COMPAT) $(CRTRELOC)
-+startfiles = $(CRTS) $(CTOR_TARGETS) $(CRTS_COMPAT) $(CRTRELOC)
-+$(crt-y): $(startfiles)
- $(CRTS) $(CTOR_TARGETS) $(CRTS_COMPAT) $(CRTRELOC): | headers
- 
- $(top_builddir)lib/$(NONSHARED_LIBNAME): $(libc-nonshared-y)
diff --git a/package/uclibc/0.9.31.1/0012-netlinkaccess-header-types.patch b/package/uclibc/0.9.31.1/0012-netlinkaccess-header-types.patch
deleted file mode 100644
index bc981a4171..0000000000
--- a/package/uclibc/0.9.31.1/0012-netlinkaccess-header-types.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-Using kernel headers newer than 3.6.x, uclibc 0.9.31.1 fails to build:
-
-  In file included from output/host/usr/avr32-buildroot-linux-uclibc/sysroot/usr/include/linux/rtnetlink.h:6,
-                 from libc/inet/netlinkaccess.h:34,
-                 from libc/inet/if_index.c:36:
-  output/host/usr/avr32-buildroot-linux-uclibc/sysroot/usr/include/linux/if_link.h:314: error: expected specifier-qualifier-list before '__be16'
-  make[1]: *** [libc/inet/if_index.os] Error 1
-  make[1]: Leaving directory `output/build/uclibc-0.9.31.1'
-  make: *** [output/build/uclibc-0.9.31.1/.stamp_built] Error 2
-
-This patch adjusts the system type definitions in the netlinkaccess.h
-header, updating the types to match those used in uClibc 0.9.33.2.
-
-Signed-off-by: Simon Dawson <spdawson@gmail.com>
-
-diff -Nurp a/libc/inet/netlinkaccess.h b/libc/inet/netlinkaccess.h
---- a/libc/inet/netlinkaccess.h	2011-06-08 19:58:40.000000000 +0100
-+++ b/libc/inet/netlinkaccess.h	2012-12-20 12:16:34.251965672 +0000
-@@ -22,15 +22,8 @@
- #include <features.h>
- #include <stdint.h>
- #include <unistd.h>
--#include <sys/types.h>
--
- #if defined __ASSUME_NETLINK_SUPPORT || defined __UCLIBC_USE_NETLINK__
--#define _LINUX_TYPES_H
--typedef uint8_t __u8;
--typedef uint16_t __u16;
--typedef uint32_t __u32;
--typedef uint64_t __u64;
--typedef int32_t __s32;
-+#include <asm/types.h>
- #include <linux/rtnetlink.h>
- #include <linux/netlink.h>
- 
diff --git a/package/uclibc/0.9.31.1/0013-libc-sysdeps-add-__kernel_long-and-__kernel_ulong.patch b/package/uclibc/0.9.31.1/0013-libc-sysdeps-add-__kernel_long-and-__kernel_ulong.patch
deleted file mode 100644
index 55cb0c57b4..0000000000
--- a/package/uclibc/0.9.31.1/0013-libc-sysdeps-add-__kernel_long-and-__kernel_ulong.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-libc/sysdeps: add __kernel_long and __kernel_ulong
-
-Linux 3.4 added __kernel_long_t and __kernel_ulong_t and various
-exported header files were updated to use these new types. Add the
-definitions for __kernel_long_t and __kernel_ulong_t to the relevant
-kernel_types.h headers.
-
-Signed-off-by: Simon Dawson <spdawson@gmail.com>
-
-diff -Nurp a/libc/sysdeps/linux/avr32/bits/kernel_types.h b/libc/sysdeps/linux/avr32/bits/kernel_types.h
---- a/libc/sysdeps/linux/avr32/bits/kernel_types.h	2011-06-08 19:58:40.000000000 +0100
-+++ b/libc/sysdeps/linux/avr32/bits/kernel_types.h	2013-11-15 08:01:09.209037851 +0000
-@@ -39,6 +39,8 @@ typedef unsigned int		__kernel_gid32_t;
- typedef unsigned short		__kernel_old_uid_t;
- typedef unsigned short		__kernel_old_gid_t;
- typedef unsigned short		__kernel_old_dev_t;
-+typedef long			__kernel_long_t;
-+typedef unsigned long		__kernel_ulong_t;
- 
- #ifdef __GNUC__
- typedef long long		__kernel_loff_t;
diff --git a/package/uclibc/0.9.31.1/0014-Do-not-include-__iconv_codesets-into-iconv-utility.patch b/package/uclibc/0.9.31.1/0014-Do-not-include-__iconv_codesets-into-iconv-utility.patch
deleted file mode 100644
index 4b6a701cfb..0000000000
--- a/package/uclibc/0.9.31.1/0014-Do-not-include-__iconv_codesets-into-iconv-utility.patch
+++ /dev/null
@@ -1,79 +0,0 @@
-uclibc: Do not include __iconv_codesets into iconv utility
-
-Backporting an upstream patch to fix a problem in the install step:
-
-make[1]: Entering directory `/br/output/build/uclibc-0.9.31.1'
-make[2]: Nothing to be done for `locale_headers'.
-	CC utils/getconf
-	STRIP -x -R .note -R .comment ../utils/getconf
-	CC utils/iconv
-../lib/libc.a(iconv.os):(.rodata+0x18): multiple definition of
-`__iconv_codesets'
-/tmp/ccVmV8Lq.o:(.rodata+0x18): first defined here
-collect2: error: ld returned 1 exit status
-
-Upstream commit:
-	http://git.uclibc.org/uClibc/commit/?id=d46dc8bc88e38251bfa3712efe7abf62933f5419
-
-Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
-
-From d46dc8bc88e38251bfa3712efe7abf62933f5419 Mon Sep 17 00:00:00 2001
-From: Peter S. Mazinger <ps.m@gmx.net>
-Date: Thu, 24 Mar 2011 00:15:25 +0000
-Subject: iconv: Do not include __iconv_codesets into iconv utility
-
-Host iconv needs only L_iconv_main defined and __iconv_codesets
-has to included, as host system does not provide it.
-Keep __iconv_codesets out of iconv linked against uClibc.
-
-Signed-off-by: Peter S. Mazinger <ps.m@gmx.net>
-Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
----
-diff --git a/libc/misc/wchar/wchar.c b/libc/misc/wchar/wchar.c
-index 412c557..0704096 100644
---- a/libc/misc/wchar/wchar.c
-+++ b/libc/misc/wchar/wchar.c
-@@ -1196,6 +1196,9 @@ libc_hidden_proto(__iconv_codesets)
- #endif
- 
- #if defined L_iconv || defined L_iconv_main
-+# ifdef L_iconv_main
-+static
-+# endif
- const unsigned char __iconv_codesets[] =
- 	"\x0a\xe0""WCHAR_T\x00"		/* superset of UCS-4 but platform-endian */
- #if __BYTE_ORDER == __BIG_ENDIAN
-diff --git a/utils/Makefile.in b/utils/Makefile.in
-index bb85be3..1714d28 100644
---- a/utils/Makefile.in
-+++ b/utils/Makefile.in
-@@ -36,8 +36,7 @@ CFLAGS-ldd := $(CFLAGS-utils-shared) -DBUILDING_LINKAGE
- # Need CFLAGS-utils explicitly, because the source file is not located in utils
- CFLAGS-iconv := $(CFLAGS-utils) \
-     $(CFLAGS-utils-shared) \
--    -I$(top_srcdir)libc/misc/wchar \
--    -DL_iconv_main \
-+    -I$(top_srcdir)libc/misc/wchar
- 
- CFLAGS-locale := $(CFLAGS-utils)
- CFLAGS-getconf :=$(CFLAGS-utils) \
-diff --git a/utils/iconv.c b/utils/iconv.c
-index 04e2c32..a0260df 100644
---- a/utils/iconv.c
-+++ b/utils/iconv.c
-@@ -108,7 +108,12 @@
- #include <wchar.h>
- #include "wchar.c" /* for _UC_iconv_t and __iconv_codesets */
- 
--extern const unsigned char __iconv_codesets[];
-+#ifdef L_iconv_main
-+static
-+#else
-+extern
-+#endif
-+const unsigned char __iconv_codesets[];
- 
- #define IBUF BUFSIZ
- #define OBUF BUFSIZ
---
-cgit v0.9.1
diff --git a/package/uclibc/0.9.33.2/0004-libc-sysdeps-add-__kernel_long-and-__kernel_ulong.patch b/package/uclibc/0.9.33.2/0004-libc-sysdeps-add-__kernel_long-and-__kernel_ulong.patch
index 0381ba8013..edd68f1c68 100644
--- a/package/uclibc/0.9.33.2/0004-libc-sysdeps-add-__kernel_long-and-__kernel_ulong.patch
+++ b/package/uclibc/0.9.33.2/0004-libc-sysdeps-add-__kernel_long-and-__kernel_ulong.patch
@@ -15,9 +15,12 @@ This change was automated with the following scriptlet
   typedef long\t\t__kernel_long_t;\
   typedef unsigned long\t__kernel_ulong_t;'
 
-Whitespace in arm, avr32, hppa, sparc was then manually fixed up.
+Whitespace in arm, hppa, sparc was then manually fixed up.
 
 Signed-off-by: Chris Packham <chris.packham@alliedtelesis.co.nz>
+[yann.morin.1998@free.fr: remove avr32 bits, now Buildroot no longer
+ supports it]
+Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
 --
 Here's a cleaned up patch which should get the whitespace right. I'm a
 bit iffy about the sparc changes they make sense to me but it's not a
@@ -27,7 +30,6 @@ I can break this up per arch or per maintainer if requested.
 
  libc/sysdeps/linux/alpha/bits/kernel_types.h      |    2 ++
  libc/sysdeps/linux/arm/bits/kernel_types.h        |    2 ++
- libc/sysdeps/linux/avr32/bits/kernel_types.h      |    2 ++
  libc/sysdeps/linux/bfin/bits/kernel_types.h       |    2 ++
  libc/sysdeps/linux/c6x/bits/kernel_types.h        |    2 ++
  libc/sysdeps/linux/cris/bits/kernel_types.h       |    2 ++
@@ -54,7 +56,6 @@ Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
 ---
  libc/sysdeps/linux/alpha/bits/kernel_types.h      | 2 ++
  libc/sysdeps/linux/arm/bits/kernel_types.h        | 2 ++
- libc/sysdeps/linux/avr32/bits/kernel_types.h      | 2 ++
  libc/sysdeps/linux/bfin/bits/kernel_types.h       | 2 ++
  libc/sysdeps/linux/c6x/bits/kernel_types.h        | 2 ++
  libc/sysdeps/linux/cris/bits/kernel_types.h       | 2 ++
@@ -102,19 +103,6 @@ index 766a306..6b36f32 100644
  
  typedef struct {
  #ifdef __USE_ALL
-diff --git a/libc/sysdeps/linux/avr32/bits/kernel_types.h b/libc/sysdeps/linux/avr32/bits/kernel_types.h
-index f7d8b52..c551d57 100644
---- a/libc/sysdeps/linux/avr32/bits/kernel_types.h
-+++ b/libc/sysdeps/linux/avr32/bits/kernel_types.h
-@@ -39,6 +39,8 @@ typedef unsigned int		__kernel_gid32_t;
- typedef unsigned short		__kernel_old_uid_t;
- typedef unsigned short		__kernel_old_gid_t;
- typedef unsigned short		__kernel_old_dev_t;
-+typedef long			__kernel_long_t;
-+typedef unsigned long		__kernel_ulong_t;
- 
- #ifdef __GNUC__
- typedef long long		__kernel_loff_t;
 diff --git a/libc/sysdeps/linux/bfin/bits/kernel_types.h b/libc/sysdeps/linux/bfin/bits/kernel_types.h
 index d69a875..9fec595 100644
 --- a/libc/sysdeps/linux/bfin/bits/kernel_types.h
diff --git a/package/uclibc/0.9.33.2/0005-Patch-from-OpenWRT-for-avr32.patch b/package/uclibc/0.9.33.2/0005-Patch-from-OpenWRT-for-avr32.patch
deleted file mode 100644
index 9b6be2b78e..0000000000
--- a/package/uclibc/0.9.33.2/0005-Patch-from-OpenWRT-for-avr32.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From b0bbb35065e1c8fdd308573f38eed35c30760d87 Mon Sep 17 00:00:00 2001
-From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-Date: Sat, 13 Jul 2013 17:14:49 +0200
-Subject: [PATCH 5/8] Patch from OpenWRT for avr32.
-
-https://dev.openwrt.org/browser/trunk/toolchain/uClibc/patches-0.9.32/140-avr32_atomic_fix.patch
-
-Signed-off-by: Simon Dawson <spdawson@gmail.com>
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
----
- libc/sysdeps/linux/avr32/bits/atomic.h | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/libc/sysdeps/linux/avr32/bits/atomic.h b/libc/sysdeps/linux/avr32/bits/atomic.h
-index e6be41f..3bc2aee 100644
---- a/libc/sysdeps/linux/avr32/bits/atomic.h
-+++ b/libc/sysdeps/linux/avr32/bits/atomic.h
-@@ -28,6 +28,7 @@ typedef uintmax_t uatomic_max_t;
- 
- #define __arch_compare_and_exchange_val_32_acq(mem, newval, oldval)	\
- 	({								\
-+		__uint32_t __result;					\
- 		__typeof__(*(mem)) __prev;				\
- 		__asm__ __volatile__(					\
- 			"/* __arch_compare_and_exchange_val_32_acq */\n" \
--- 
-1.8.1.2
-
diff --git a/package/uclibc/Config.in b/package/uclibc/Config.in
index 020c47c26c..3a657526b2 100644
--- a/package/uclibc/Config.in
+++ b/package/uclibc/Config.in
@@ -13,13 +13,16 @@ choice
 	help
 	  Select the version of uClibc you wish to use.
 
-	config BR2_UCLIBC_VERSION_0_9_31
-		bool "uClibc 0.9.31.x"
-		depends on BR2_avr32
-
 	config BR2_UCLIBC_VERSION_0_9_33
 		bool "uClibc 0.9.33.x"
-		depends on !(BR2_arc || BR2_avr32 || BR2_xtensa)
+		depends on !(BR2_arc || BR2_xtensa)
+
+	config BR2_UCLIBC_VERSION_ARC_GIT
+		bool "uClibc Git ARC"
+		depends on BR2_arc
+
+	config BR2_UCLIBC_NG_VERSION_1_0_0
+		bool "uClibc-ng 1.0.0"
 
 	config BR2_UCLIBC_VERSION_XTENSA_GIT
 		bool "uClibc Git Xtensa"
@@ -40,17 +43,17 @@ config BR2_USE_UCLIBC_SNAPSHOT
 
 config BR2_UCLIBC_VERSION_STRING
 	string
-	default 0.9.31.1	if BR2_UCLIBC_VERSION_0_9_31
 	default 0.9.33.2	if BR2_UCLIBC_VERSION_0_9_33
-	default "arc-2014.12" if BR2_arc
+	default "arc-2014.12" if BR2_UCLIBC_VERSION_ARC_GIT
+	default 1.0.0		if BR2_UCLIBC_NG_VERSION_1_0_0
 	default "7bf35c8b7d4a1f97174eb49f47f33946b282114c" if BR2_UCLIBC_VERSION_XTENSA_GIT
 	default BR2_USE_UCLIBC_SNAPSHOT	if BR2_UCLIBC_VERSION_SNAPSHOT
 
 config BR2_UCLIBC_CONFIG
 	string "uClibc configuration file to use?"
-	default "package/uclibc/uClibc-0.9.31.config" if BR2_UCLIBC_VERSION_0_9_31
 	default "package/uclibc/uClibc-0.9.33.config" if BR2_UCLIBC_VERSION_0_9_33
-	default "package/uclibc/uClibc-snapshot.config" if BR2_arc
+	default "package/uclibc/uClibc-ng-1.0.0.config" if BR2_UCLIBC_NG_VERSION_1_0_0
+	default "package/uclibc/uClibc-snapshot.config" if BR2_UCLIBC_VERSION_ARC_GIT
 	default "package/uclibc/uClibc-snapshot.config" if BR2_UCLIBC_VERSION_SNAPSHOT
 	default "package/uclibc/uClibc-snapshot.config" if BR2_UCLIBC_VERSION_XTENSA_GIT
 	help
@@ -98,7 +101,7 @@ config BR2_TOOLCHAIN_BUILDROOT_LOCALE
 
 choice
 	prompt "Thread library implementation"
-	default BR2_PTHREADS_NATIVE if !(BR2_avr32 || BR2_xtensa)
+	default BR2_PTHREADS_NATIVE if !BR2_xtensa
 	default BR2_PTHREADS_OLD
 	help
 	  Use this option to select the thread library implementation
@@ -125,9 +128,10 @@ choice
 		select BR2_TOOLCHAIN_HAS_THREADS
 		select BR2_TOOLCHAIN_HAS_THREADS_NPTL
 		depends on !BR2_arc
-		depends on !BR2_avr32
 		depends on !BR2_bfin
-		depends on !BR2_xtensa
+		# There is NPTL support for Xtensa in uClibc-ng, but
+		# not in the main uClibc repository.
+		depends on !BR2_xtensa || !BR2_UCLIBC_VERSION_XTENSA_GIT
 		depends on !BR2_x86_i386
 endchoice
 
@@ -183,7 +187,6 @@ config BR2_UCLIBC_TARGET_ARCH
 	string
 	default arc	   if BR2_arcle || BR2_arceb
 	default arm	   if BR2_arm	|| BR2_armeb
-	default avr32	   if BR2_avr32
 	default bfin	   if BR2_bfin
 	default m68k	   if BR2_m68k
 	default mips	   if BR2_mips || BR2_mipsel || BR2_mips64 || BR2_mips64el
diff --git a/package/uclibc/uClibc-0.9.31.config b/package/uclibc/uClibc-ng-1.0.0.config
similarity index 87%
rename from package/uclibc/uClibc-0.9.31.config
rename to package/uclibc/uClibc-ng-1.0.0.config
index 83df7d0154..f5456dd0bc 100644
--- a/package/uclibc/uClibc-0.9.31.config
+++ b/package/uclibc/uClibc-ng-1.0.0.config
@@ -1,9 +1,9 @@
 #
 # Automatically generated make config: don't edit
-# Version: 0.9.31
-# Sun Apr  4 10:43:39 2010
+# Version: 1.0.0
 #
 # TARGET_alpha is not set
+# TARGET_arc is not set
 # TARGET_arm is not set
 # TARGET_avr32 is not set
 # TARGET_bfin is not set
@@ -16,6 +16,7 @@
 # TARGET_i960 is not set
 # TARGET_ia64 is not set
 # TARGET_m68k is not set
+# TARGET_metag is not set
 # TARGET_microblaze is not set
 # TARGET_mips is not set
 # TARGET_nios is not set
@@ -28,21 +29,43 @@
 # TARGET_vax is not set
 # TARGET_x86_64 is not set
 # TARGET_xtensa is not set
+# TARGET_c6x is not set
 
+# CONFIG_GENERIC_ARM is not set
+# CONFIG_ARM610 is not set
+# CONFIG_ARM710 is not set
+# CONFIG_ARM7TDMI is not set
+# CONFIG_ARM720T is not set
+# CONFIG_ARM920T is not set
+# CONFIG_ARM922T is not set
+# CONFIG_ARM926T is not set
+# CONFIG_ARM10T is not set
+# CONFIG_ARM1136JF_S is not set
+# CONFIG_ARM1176JZ_S is not set
+# CONFIG_ARM1176JZF_S is not set
+# CONFIG_ARM_CORTEX_M3 is not set
+# CONFIG_ARM_CORTEX_M1 is not set
+# CONFIG_ARM_SA110 is not set
+# CONFIG_ARM_SA1100 is not set
+# CONFIG_ARM_XSCALE is not set
+# CONFIG_ARM_IWMMXT is not set
+
+# COMPILE_IN_THUMB_MODE is not set
+USE_BX=y
+
+TARGET_SUBARCH=""
 #
 # Target Architecture Features and Options
 #
 TARGET_ARCH="none"
 FORCE_OPTIONS_FOR_ARCH=y
+#
+# Using ELF file format
+#
 # ARCH_LITTLE_ENDIAN is not set
 # ARCH_BIG_ENDIAN is not set
 # ARCH_WANTS_LITTLE_ENDIAN is not set
 # ARCH_WANTS_BIG_ENDIAN is not set
-TARGET_SUBARCH=""
-
-#
-# Using Little Endian
-#
 ARCH_HAS_MMU=y
 ARCH_USE_MMU=y
 UCLIBC_HAS_FLOATS=y
@@ -64,15 +87,22 @@ DOPIC=y
 # FORCE_SHAREABLE_TEXT_SEGMENTS is not set
 LDSO_LDD_SUPPORT=y
 # LDSO_CACHE_SUPPORT is not set
+LDSO_PRELOAD_ENV_SUPPORT=y
 # LDSO_PRELOAD_FILE_SUPPORT is not set
+# LDSO_STANDALONE_SUPPORT is not set
+# LDSO_PRELINK_SUPPORT is not set
 # UCLIBC_STATIC_LDCONFIG is not set
 LDSO_RUNPATH=y
+LDSO_SAFE_RUNPATH=y
 LDSO_SEARCH_INTERP_PATH=y
+LDSO_LD_LIBRARY_PATH=y
+# LDSO_NO_CLEANUP is not set
 UCLIBC_CTOR_DTOR=y
 # LDSO_GNU_HASH_SUPPORT is not set
 # HAS_NO_THREADS is not set
 LINUXTHREADS_OLD=y
 # LINUXTHREADS_NEW is not set
+# UCLIBC_HAS_THREADS_NATIVE is not set
 UCLIBC_HAS_THREADS=y
 # PTHREADS_DEBUG_SUPPORT is not set
 UCLIBC_HAS_SYSLOG=y
@@ -81,11 +111,14 @@ UCLIBC_HAS_LFS=y
 # MALLOC_SIMPLE is not set
 MALLOC_STANDARD=y
 MALLOC_GLIBC_COMPAT=y
+UCLIBC_HAS_OBSTACK=y
 UCLIBC_DYNAMIC_ATEXIT=y
 # COMPAT_ATEXIT is not set
+UCLIBC_SUSV2_LEGACY=y
 UCLIBC_SUSV3_LEGACY=y
 # UCLIBC_SUSV3_LEGACY_MACROS is not set
 UCLIBC_SUSV4_LEGACY=y
+# UCLIBC_STRICT_HEADERS is not set
 # UCLIBC_HAS_STUBS is not set
 UCLIBC_HAS_SHADOW=y
 UCLIBC_HAS_PROGRAM_INVOCATION_NAME=y
@@ -100,6 +133,7 @@ UCLIBC_HAS_TZ_CACHING=y
 UCLIBC_HAS_TZ_FILE=y
 UCLIBC_HAS_TZ_FILE_READ_MANY=y
 UCLIBC_TZ_FILE_PATH="/etc/TZ"
+UCLIBC_FALLBACK_TO_ETC_LOCALTIME=y
 
 #
 # Advanced Library Settings
@@ -110,21 +144,24 @@ UCLIBC_GRP_BUFFER_SIZE=256
 #
 # Support various families of functions
 #
-UCLIBC_LINUX_MODULE_24=y
+UCLIBC_LINUX_MODULE_26=y
+# UCLIBC_LINUX_MODULE_24 is not set
 UCLIBC_LINUX_SPECIFIC=y
 UCLIBC_HAS_GNU_ERROR=y
 UCLIBC_BSD_SPECIFIC=y
 UCLIBC_HAS_BSD_ERR=y
-# UCLIBC_HAS_OBSOLETE_BSD_SIGNAL is not set
+UCLIBC_HAS_OBSOLETE_BSD_SIGNAL=y
 # UCLIBC_HAS_OBSOLETE_SYSV_SIGNAL is not set
 # UCLIBC_NTP_LEGACY is not set
-UCLIBC_SV4_DEPRECATED=y
+# UCLIBC_SV4_DEPRECATED is not set
 UCLIBC_HAS_REALTIME=y
 UCLIBC_HAS_ADVANCED_REALTIME=y
 UCLIBC_HAS_EPOLL=y
 UCLIBC_HAS_XATTR=y
 UCLIBC_HAS_PROFILING=y
 UCLIBC_HAS_CRYPT_IMPL=y
+# UCLIBC_HAS_SHA256_CRYPT_IMPL is not set
+# UCLIBC_HAS_SHA512_CRYPT_IMPL is not set
 UCLIBC_HAS_CRYPT=y
 UCLIBC_HAS_NETWORK_SUPPORT=y
 UCLIBC_HAS_SOCKET=y
@@ -138,6 +175,7 @@ UCLIBC_SUPPORT_AI_ADDRCONFIG=y
 # UCLIBC_HAS_BSD_RES_CLOSE is not set
 UCLIBC_HAS_COMPAT_RES_STATE=y
 # UCLIBC_HAS_EXTRA_COMPAT_RES_STATE is not set
+UCLIBC_HAS_RESOLVER_SUPPORT=y
 UCLIBC_HAS_LIBRESOLV_STUB=y
 UCLIBC_HAS_LIBNSL_STUB=y
 
@@ -154,6 +192,7 @@ UCLIBC_HAS_CTYPE_CHECKED=y
 # UCLIBC_HAS_WCHAR is not set
 # UCLIBC_HAS_LOCALE is not set
 UCLIBC_HAS_HEXADECIMAL_FLOATS=y
+# UCLIBC_HAS_GLIBC_DIGIT_GROUPING is not set
 UCLIBC_HAS_GLIBC_CUSTOM_PRINTF=y
 # USE_OLD_VFPRINTF is not set
 UCLIBC_PRINTF_SCANF_POSITIONAL_ARGS=9
@@ -174,6 +213,7 @@ UCLIBC_HAS_STDIO_BUILTIN_BUFFER_NONE=y
 UCLIBC_HAS_STDIO_AUTO_RW_TRANSITION=y
 # UCLIBC_HAS_FOPEN_LARGEFILE_MODE is not set
 UCLIBC_HAS_FOPEN_EXCLUSIVE_MODE=y
+# UCLIBC_HAS_FOPEN_CLOSEEXEC_MODE is not set
 UCLIBC_HAS_GLIBC_CUSTOM_STREAMS=y
 UCLIBC_HAS_PRINTF_M_SPEC=y
 UCLIBC_HAS_ERRNO_MESSAGES=y
@@ -193,8 +233,10 @@ UCLIBC_HAS_FNMATCH=y
 # UCLIBC_HAS_WORDEXP is not set
 UCLIBC_HAS_NFTW=y
 UCLIBC_HAS_FTW=y
+# UCLIBC_HAS_FTS is not set
 UCLIBC_HAS_GLOB=y
 UCLIBC_HAS_GNU_GLOB=y
+UCLIBC_HAS_UTMPX=y
 
 #
 # Library Installation Options
@@ -232,27 +274,7 @@ UCLIBC_EXTRA_CFLAGS=""
 # SUPPORT_LD_DEBUG is not set
 # SUPPORT_LD_DEBUG_EARLY is not set
 # UCLIBC_MALLOC_DEBUGGING is not set
+# UCLIBC_HAS_BACKTRACE is not set
 WARNINGS="-Wall"
 # EXTRA_WARNINGS is not set
 # DOMULTI is not set
-# UCLIBC_MJN3_ONLY is not set
-
-USE_BX=y
-# CONFIG_GENERIC_ARM is not set
-# CONFIG_ARM610 is not set
-# CONFIG_ARM710 is not set
-# CONFIG_ARM7TDMI is not set
-# CONFIG_ARM720T is not set
-# CONFIG_ARM920T is not set
-# CONFIG_ARM922T is not set
-# CONFIG_ARM926T is not set
-# CONFIG_ARM10T is not set
-# CONFIG_ARM1136JF_S is not set
-# CONFIG_ARM1176JZ_S is not set
-# CONFIG_ARM1176JZF_S is not set
-# CONFIG_ARM_CORTEX_M3 is not set
-# CONFIG_ARM_CORTEX_M1 is not set
-# CONFIG_ARM_SA110 is not set
-# CONFIG_ARM_SA1100 is not set
-# CONFIG_ARM_XSCALE is not set
-# CONFIG_ARM_IWMMXT is not set
diff --git a/package/uclibc/uclibc.mk b/package/uclibc/uclibc.mk
index 8654926dbd..7fe50a36f8 100644
--- a/package/uclibc/uclibc.mk
+++ b/package/uclibc/uclibc.mk
@@ -11,7 +11,10 @@ UCLIBC_LICENSE_FILES = COPYING.LIB
 
 ifeq ($(BR2_UCLIBC_VERSION_SNAPSHOT),y)
 UCLIBC_SITE = http://www.uclibc.org/downloads/snapshots
-else ifeq ($(BR2_arc),y)
+else ifeq ($(BR2_UCLIBC_NG_VERSION_1_0_0),y)
+UCLIBC_SITE = http://downloads.uclibc-ng.org/releases/$(UCLIBC_VERSION)/
+UCLIBC_SOURCE = uClibc-ng-$(UCLIBC_VERSION).tar.xz
+else ifeq ($(BR2_UCLIBC_VERSION_ARC_GIT),y)
 UCLIBC_SITE = $(call github,foss-for-synopsys-dwc-arc-processors,uClibc,$(UCLIBC_VERSION))
 UCLIBC_SOURCE = uClibc-$(UCLIBC_VERSION).tar.gz
 else ifeq ($(BR2_UCLIBC_VERSION_XTENSA_GIT),y)
@@ -192,16 +195,6 @@ endef
 endif
 endif # bfin
 
-#
-# AVR32 definitions
-#
-
-ifeq ($(UCLIBC_TARGET_ARCH),avr32)
-define UCLIBC_AVR32_CONFIG
-	$(call KCONFIG_ENABLE_OPT,LINKRELAX,$(@D)/.config)
-endef
-endif # avr32
-
 #
 # x86 definitions
 #
@@ -432,7 +425,6 @@ define UCLIBC_KCONFIG_FIXUP_CMDS
 	$(UCLIBC_SH_TYPE_CONFIG)
 	$(UCLIBC_SPARC_TYPE_CONFIG)
 	$(UCLIBC_POWERPC_TYPE_CONFIG)
-	$(UCLIBC_AVR32_CONFIG)
 	$(UCLIBC_BFIN_CONFIG)
 	$(UCLIBC_X86_TYPE_CONFIG)
 	$(UCLIBC_ENDIAN_CONFIG)
@@ -459,21 +451,9 @@ define UCLIBC_BUILD_TEST_SUITE
 endef
 endif
 
-# In uClibc 0.9.31 parallel building is broken so we have to disable it
-# Fortunately uClibc 0.9.31 is only used by AVR32 and in its turn AVR32 is
-# about to be removed from buildroot.
-#
-# So as soon as AVR32 is removed please revert this patch so instead of
-# UCLIBC_MAKE normal "MAKE" is used in UCLIBC_BUILD_CMDS
-ifeq ($(BR2_UCLIBC_VERSION_0_9_31),y)
-	UCLIBC_MAKE = $(MAKE1)
-else
-	UCLIBC_MAKE = $(MAKE)
-endif
-
 define UCLIBC_BUILD_CMDS
-	$(UCLIBC_MAKE) -C $(@D) $(UCLIBC_MAKE_FLAGS) headers
-	$(UCLIBC_MAKE) -C $(@D) $(UCLIBC_MAKE_FLAGS)
+	$(MAKE) -C $(@D) $(UCLIBC_MAKE_FLAGS) headers
+	$(MAKE) -C $(@D) $(UCLIBC_MAKE_FLAGS)
 	$(MAKE) -C $(@D)/utils \
 		PREFIX=$(HOST_DIR) \
 		HOSTCC="$(HOSTCC)" hostutils
@@ -498,6 +478,21 @@ define UCLIBC_INSTALL_UTILS_TARGET
 endef
 endif
 
+# gcc produces binaries that use ld{64,}-uClibc.so.0 as the program
+# interpreter, but since uClibc-ng version is 1.0.0, it generates
+# ld{64,}-uClibc.so.1. In order to avoid changing gcc, we simply
+# create the necessary symbolic links here.
+ifeq ($(BR2_UCLIBC_NG_VERSION_1_0_0),y)
+define UCLIBC_INSTALL_LDSO_SYMLINKS
+	if [ -e $(TARGET_DIR)/lib/ld64-uClibc.so.1 ]; then \
+		(cd $(TARGET_DIR)/lib;ln -sf ld64-uClibc.so.1 ld64-uClibc.so.0) \
+	fi
+	if [ -e $(TARGET_DIR)/lib/ld-uClibc.so.1 ]; then \
+		(cd $(TARGET_DIR)/lib;ln -sf ld-uClibc.so.1 ld-uClibc.so.0) \
+	fi
+endef
+endif
+
 define UCLIBC_INSTALL_TARGET_CMDS
 	$(MAKE1) -C $(@D) \
 		$(UCLIBC_MAKE_FLAGS) \
@@ -508,6 +503,7 @@ define UCLIBC_INSTALL_TARGET_CMDS
 	$(UCLIBC_INSTALL_UTILS_TARGET)
 	$(UCLIBC_BUILD_TEST_SUITE)
 	$(UCLIBC_INSTALL_TEST_SUITE)
+	$(UCLIBC_INSTALL_LDSO_SYMLINKS)
 endef
 
 # STATIC has no ld* tools, only getconf
diff --git a/package/udisks/Config.in b/package/udisks/Config.in
index 3eb8bf0cf4..a5da2bfba7 100644
--- a/package/udisks/Config.in
+++ b/package/udisks/Config.in
@@ -1,6 +1,5 @@
 config BR2_PACKAGE_UDISKS
 	bool "udisks"
-	depends on !BR2_avr32 # udev
 	depends on BR2_PACKAGE_HAS_UDEV
 	depends on BR2_TOOLCHAIN_HAS_THREADS # dbus-glib -> glib2
 	depends on BR2_USE_MMU # lvm2
@@ -36,12 +35,10 @@ config BR2_PACKAGE_UDISKS_LVM2
 endif
 
 comment "udisks needs udev /dev management"
-	depends on !BR2_avr32
 	depends on BR2_USE_MMU
 	depends on !BR2_PACKAGE_HAS_UDEV
 
 comment "udisks needs a toolchain w/ wchar, threads, dynamic library"
-	depends on !BR2_avr32
 	depends on BR2_USE_MMU
 	depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || \
 		BR2_STATIC_LIBS
diff --git a/package/ussp-push/Config.in b/package/ussp-push/Config.in
index c08acc9339..c3f6b8632a 100644
--- a/package/ussp-push/Config.in
+++ b/package/ussp-push/Config.in
@@ -1,7 +1,6 @@
 config BR2_PACKAGE_USSP_PUSH
 	bool "ussp-push"
 	depends on BR2_INET_IPV6
-	depends on !BR2_avr32
 	depends on !BR2_STATIC_LIBS # bluez_utils
 	depends on BR2_USE_WCHAR # libglib2
 	depends on BR2_TOOLCHAIN_HAS_THREADS # dbus, alsa-lib, libglib2
@@ -16,5 +15,5 @@ config BR2_PACKAGE_USSP_PUSH
 	  http://www.xmailserver.org/ussp-push.html
 
 comment "ussp-push needs a toolchain w/ wchar, IPv6, threads, dynamic library"
-	depends on !BR2_avr32 && BR2_USE_MMU
+	depends on BR2_USE_MMU
 	depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || !BR2_INET_IPV6 || BR2_STATIC_LIBS
diff --git a/package/util-linux/0001-sscanf-no-ms-as.patch b/package/util-linux/0001-sscanf-no-ms-as.patch
index be2b0eb269..81b2be5ea2 100644
--- a/package/util-linux/0001-sscanf-no-ms-as.patch
+++ b/package/util-linux/0001-sscanf-no-ms-as.patch
@@ -3,58 +3,24 @@ Fix libmount build under uClibc
 See https://bugs.gentoo.org/show_bug.cgi?id=406303
 http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/sys-apps/util-linux/files/util-linux-2.21.1-no-printf-alloc.patch?revision=1.2
 
-[Gustavo: Ported to util-linux-2.25.1]
+[Gustavo: Ported to util-linux-2.26]
 
 Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
 
-diff -Nura util-linux-2.25.1.orig/configure.ac util-linux-2.25.1/configure.ac
---- util-linux-2.25.1.orig/configure.ac	2014-09-05 10:44:45.302080174 -0300
-+++ util-linux-2.25.1/configure.ac	2014-09-05 10:45:07.183832640 -0300
-@@ -791,7 +791,6 @@
+diff -Nura util-linux-2.26.orig/configure.ac util-linux-2.26/configure.ac
+--- util-linux-2.26.orig/configure.ac	2015-02-19 09:11:13.146192401 -0300
++++ util-linux-2.26/configure.ac	2015-02-20 08:13:32.740006582 -0300
+@@ -840,7 +840,6 @@
+ )
  UL_BUILD_INIT([libmount])
- UL_REQUIRES_LINUX([libmount])
  UL_REQUIRES_BUILD([libmount], [libblkid])
 -UL_REQUIRES_HAVE([libmount], [scanf_alloc_modifier], [scanf string alloc modifier])
  AM_CONDITIONAL([BUILD_LIBMOUNT], [test "x$build_libmount" = xyes])
  AM_CONDITIONAL([BUILD_LIBMOUNT_TESTS], [test "x$build_libmount" = xyes -a "x$enable_static" = xyes])
  
-diff -Nura util-linux-2.25.1.orig/lib/colors.c util-linux-2.25.1/lib/colors.c
---- util-linux-2.25.1.orig/lib/colors.c	2014-09-05 10:44:45.301080140 -0300
-+++ util-linux-2.25.1/lib/colors.c	2014-09-05 13:12:00.175205476 -0300
-@@ -16,6 +16,10 @@
- #include "pathnames.h"
- #include "strutils.h"
- 
-+#ifndef HAVE_SCANF_MS_MODIFIER
-+# define UL_SCNsA "%s"
-+#endif
-+
- /*
-  * terminal-colors.d file types
-  */
-@@ -577,9 +581,19 @@
- 		if (*p == '\0' || *p == '#')
- 			continue;
- 
-+#ifndef HAVE_SCANF_MS_MODIFIER
-+		size_t len = strlen(p) + 1;
-+		cn = malloc(len);
-+		seq = malloc(len);
-+#endif
-+
- 		rc = sscanf(p,  UL_SCNsA" "	/* name */
- 				UL_SCNsA,	/* color */
-+#ifdef HAVE_SCANF_MS_MODIFIER
- 				&cn, &seq);
-+#else
-+				cn, seq);
-+#endif
- 		if (rc == 2 && cn && seq)
- 			rc = colors_add_scheme(cc, cn, seq);	/* set rc=0 on success */
- 		if (rc) {
-diff -Nura util-linux-2.25.1.orig/libmount/src/tab_parse.c util-linux-2.25.1/libmount/src/tab_parse.c
---- util-linux-2.25.1.orig/libmount/src/tab_parse.c	2014-09-05 10:44:45.276079280 -0300
-+++ util-linux-2.25.1/libmount/src/tab_parse.c	2014-09-05 10:51:22.500738967 -0300
+diff -Nura util-linux-2.26.orig/libmount/src/tab_parse.c util-linux-2.26/libmount/src/tab_parse.c
+--- util-linux-2.26.orig/libmount/src/tab_parse.c	2015-02-16 09:57:34.070017496 -0300
++++ util-linux-2.26/libmount/src/tab_parse.c	2015-02-20 08:13:32.741006617 -0300
 @@ -22,6 +22,10 @@
  #include "pathnames.h"
  #include "strutils.h"
diff --git a/package/util-linux/0004-fix-CVE-2014-9114.patch b/package/util-linux/0004-fix-CVE-2014-9114.patch
deleted file mode 100644
index 95cb1c5e33..0000000000
--- a/package/util-linux/0004-fix-CVE-2014-9114.patch
+++ /dev/null
@@ -1,168 +0,0 @@
-From 89e90ae7b2826110ea28c1c0eb8e7c56c3907bdc Mon Sep 17 00:00:00 2001
-From: Karel Zak <kzak@redhat.com>
-Date: Thu, 27 Nov 2014 13:39:35 +0100
-Subject: [PATCH] libblkid: care about unsafe chars in cache
-
-The high-level libblkid API uses /run/blkid/blkid.tab cache to
-store probing results. The cache format is
-
-   <device NAME="value" ...>devname</device>
-
-and unfortunately the cache code does not escape quotation marks:
-
-   # mkfs.ext4 -L 'AAA"BBB'
-
-   # cat /run/blkid/blkid.tab
-   ...
-   <device ... LABEL="AAA"BBB" ...>/dev/sdb1</device>
-
-such string is later incorrectly parsed and blkid(8) returns
-nonsenses. And for use-cases like
-
-   # eval $(blkid -o export /dev/sdb1)
-
-it's also insecure.
-
-Note that mount, udevd and blkid -p are based on low-level libblkid
-API, it bypass the cache and directly read data from the devices.
-
-The current udevd upstream does not depend on blkid(8) output at all,
-it's directly linked with the library and all unsafe chars are encoded by
-\x<hex> notation.
-
-   # mkfs.ext4 -L 'X"`/tmp/foo` "' /dev/sdb1
-   # udevadm info --export-db | grep LABEL
-   ...
-   E: ID_FS_LABEL=X__/tmp/foo___
-   E: ID_FS_LABEL_ENC=X\x22\x60\x2ftmp\x2ffoo\x60\x20\x22
-
-Signed-off-by: Karel Zak <kzak@redhat.com>
-Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
----
- libblkid/src/read.c | 21 ++++++++++++++++++---
- libblkid/src/save.c | 22 +++++++++++++++++++++-
- misc-utils/blkid.8  |  5 ++++-
- misc-utils/blkid.c  |  4 ++--
- 4 files changed, 45 insertions(+), 7 deletions(-)
-
-diff --git a/libblkid/src/read.c b/libblkid/src/read.c
-index 0e91c9c..81ab0df 100644
---- a/libblkid/src/read.c
-+++ b/libblkid/src/read.c
-@@ -252,15 +252,30 @@ static int parse_token(char **name, char **value, char **cp)
- 	*value = skip_over_blank(*value + 1);
- 
- 	if (**value == '"') {
--		end = strchr(*value + 1, '"');
--		if (!end) {
-+		char *p = end = *value + 1;
-+
-+		/* convert 'foo\"bar'  to 'foo"bar' */
-+		while (*p) {
-+			if (*p == '\\') {
-+				p++;
-+				*end = *p;
-+			} else {
-+				*end = *p;
-+				if (*p == '"')
-+					break;
-+			}
-+			p++;
-+			end++;
-+		}
-+
-+		if (*end != '"') {
- 			DBG(READ, ul_debug("unbalanced quotes at: %s", *value));
- 			*cp = *value;
- 			return -BLKID_ERR_CACHE;
- 		}
- 		(*value)++;
- 		*end = '\0';
--		end++;
-+		end = ++p;
- 	} else {
- 		end = skip_over_word(*value);
- 		if (*end) {
-diff --git a/libblkid/src/save.c b/libblkid/src/save.c
-index 8216f09..5e8bbee 100644
---- a/libblkid/src/save.c
-+++ b/libblkid/src/save.c
-@@ -26,6 +26,21 @@
- 
- #include "blkidP.h"
- 
-+
-+static void save_quoted(const char *data, FILE *file)
-+{
-+	const char *p;
-+
-+	fputc('"', file);
-+	for (p = data; p && *p; p++) {
-+		if ((unsigned char) *p == 0x22 ||		/* " */
-+		    (unsigned char) *p == 0x5c)			/* \ */
-+			fputc('\\', file);
-+
-+		fputc(*p, file);
-+	}
-+	fputc('"', file);
-+}
- static int save_dev(blkid_dev dev, FILE *file)
- {
- 	struct list_head *p;
-@@ -43,9 +58,14 @@ static int save_dev(blkid_dev dev, FILE *file)
- 
- 	if (dev->bid_pri)
- 		fprintf(file, " PRI=\"%d\"", dev->bid_pri);
-+
- 	list_for_each(p, &dev->bid_tags) {
- 		blkid_tag tag = list_entry(p, struct blkid_struct_tag, bit_tags);
--		fprintf(file, " %s=\"%s\"", tag->bit_name,tag->bit_val);
-+
-+		fputc(' ', file);			/* space between tags */
-+		fputs(tag->bit_name, file);		/* tag NAME */
-+		fputc('=', file);			/* separator between NAME and VALUE */
-+		save_quoted(tag->bit_val, file);	/* tag "VALUE" */
- 	}
- 	fprintf(file, ">%s</device>\n", dev->bid_name);
- 
-diff --git a/misc-utils/blkid.8 b/misc-utils/blkid.8
-index 156a14b..c95b833 100644
---- a/misc-utils/blkid.8
-+++ b/misc-utils/blkid.8
-@@ -200,7 +200,10 @@ partitions.  This output format is \fBDEPRECATED\fR.
- .TP
- .B export
- print key=value pairs for easy import into the environment; this output format
--is automatically enabled when I/O Limits (\fB-i\fR option) are requested
-+is automatically enabled when I/O Limits (\fB-i\fR option) are requested.
-+
-+The non-printing characters are encoded by ^ and M- notation and all
-+potentially unsafe characters are escaped.
- .RE
- .TP
- .BI \-O " offset"
-diff --git a/misc-utils/blkid.c b/misc-utils/blkid.c
-index a6ca660..1bd8646 100644
---- a/misc-utils/blkid.c
-+++ b/misc-utils/blkid.c
-@@ -306,7 +306,7 @@ static void print_value(int output, int num, const char *devname,
- 			printf("DEVNAME=%s\n", devname);
- 		fputs(name, stdout);
- 		fputs("=", stdout);
--		safe_print(value, valsz, NULL);
-+		safe_print(value, valsz, " \\\"'$`<>");
- 		fputs("\n", stdout);
- 
- 	} else {
-@@ -315,7 +315,7 @@ static void print_value(int output, int num, const char *devname,
- 		fputs(" ", stdout);
- 		fputs(name, stdout);
- 		fputs("=\"", stdout);
--		safe_print(value, valsz, "\"");
-+		safe_print(value, valsz, "\"\\");
- 		fputs("\"", stdout);
- 	}
- }
--- 
-2.0.4
-
diff --git a/package/util-linux/Config.in b/package/util-linux/Config.in
index bc6c791a36..0c818b9815 100644
--- a/package/util-linux/Config.in
+++ b/package/util-linux/Config.in
@@ -93,7 +93,6 @@ config BR2_PACKAGE_UTIL_LINUX_EJECT
 
 config BR2_PACKAGE_UTIL_LINUX_FALLOCATE
 	bool "fallocate"
-	depends on !BR2_avr32 # fallocate not implemented
 	help
 	  Preallocate space to a file
 
@@ -216,7 +215,6 @@ config BR2_PACKAGE_UTIL_LINUX_SCHEDUTILS
 
 config BR2_PACKAGE_UTIL_LINUX_SETPRIV
 	bool "setpriv"
-	depends on !BR2_avr32 # libcap-ng
 	select BR2_PACKAGE_LIBCAP_NG
 	help
 	  Run a program with different Linux privilege settings
@@ -273,6 +271,11 @@ config BR2_PACKAGE_UTIL_LINUX_WRITE
 	help
 	  Send a message to another user
 
+config BR2_PACKAGE_UTIL_LINUX_ZRAMCTL
+	bool "zramctl"
+	help
+	  Set up and control zram devices
+
 endif
 
 endif
diff --git a/package/util-linux/util-linux.hash b/package/util-linux/util-linux.hash
index b5fc18ea7d..d28d68105e 100644
--- a/package/util-linux/util-linux.hash
+++ b/package/util-linux/util-linux.hash
@@ -1,2 +1,2 @@
-# From https://www.kernel.org/pub/linux/utils/util-linux/v2.25/sha256sums.asc
-sha256	e0457f715b73f4a349e1acb08cb410bf0edc9a74a3f75c357070f31f70e33cd6	util-linux-2.25.2.tar.xz
+# From https://www.kernel.org/pub/linux/utils/util-linux/v2.26/sha256sums.asc
+sha256	a23c6f39dea0ed215ccd589509ffc7bb6f706f6e1a04760f493fb0fd7e93c489	util-linux-2.26.tar.xz
diff --git a/package/util-linux/util-linux.mk b/package/util-linux/util-linux.mk
index 0b99618613..cb4b480f77 100644
--- a/package/util-linux/util-linux.mk
+++ b/package/util-linux/util-linux.mk
@@ -4,8 +4,8 @@
 #
 ################################################################################
 
-UTIL_LINUX_VERSION = $(UTIL_LINUX_VERSION_MAJOR).2
-UTIL_LINUX_VERSION_MAJOR = 2.25
+UTIL_LINUX_VERSION = $(UTIL_LINUX_VERSION_MAJOR)
+UTIL_LINUX_VERSION_MAJOR = 2.26
 UTIL_LINUX_SOURCE = util-linux-$(UTIL_LINUX_VERSION).tar.xz
 UTIL_LINUX_SITE = $(BR2_KERNEL_MIRROR)/linux/utils/util-linux/v$(UTIL_LINUX_VERSION_MAJOR)
 
@@ -17,7 +17,10 @@ UTIL_LINUX_LICENSE_FILES = README.licensing Documentation/licenses/COPYING.GPLv2
 UTIL_LINUX_AUTORECONF = YES
 UTIL_LINUX_INSTALL_STAGING = YES
 UTIL_LINUX_DEPENDENCIES = host-pkgconf
-UTIL_LINUX_CONF_ENV = scanf_cv_type_modifier=no
+# uClibc needs NTP_LEGACY for sys/timex.h -> ntp_gettime() support
+# (used in logger.c), and the common default is N.
+UTIL_LINUX_CONF_ENV = scanf_cv_type_modifier=no \
+	$(if $(BR2_TOOLCHAIN_USES_UCLIBC),ac_cv_header_sys_timex_h=no)
 UTIL_LINUX_CONF_OPTS += \
 	--disable-rpath \
 	--disable-makeinstall-chown \
@@ -107,7 +110,8 @@ UTIL_LINUX_CONF_OPTS += \
 	$(if $(BR2_PACKAGE_UTIL_LINUX_VIPW),--enable-vipw,--disable-vipw) \
 	$(if $(BR2_PACKAGE_UTIL_LINUX_WALL),--enable-wall,--disable-wall) \
 	$(if $(BR2_PACKAGE_UTIL_LINUX_WDCTL),--enable-wdctl,--disable-wdctl) \
-	$(if $(BR2_PACKAGE_UTIL_LINUX_WRITE),--enable-write,--disable-write)
+	$(if $(BR2_PACKAGE_UTIL_LINUX_WRITE),--enable-write,--disable-write) \
+	$(if $(BR2_PACKAGE_UTIL_LINUX_ZRAMCTL),--enable-zramctl,--disable-zramctl)
 
 # In the host version of util-linux, we so far only require libuuid,
 # and none of the util-linux utilities, so we disable all of them, unless
diff --git a/package/wayland/Config.in b/package/wayland/Config.in
index f58a2834dd..857ba73f39 100644
--- a/package/wayland/Config.in
+++ b/package/wayland/Config.in
@@ -1,6 +1,5 @@
 config BR2_PACKAGE_WAYLAND
 	bool "wayland"
-	depends on !BR2_avr32 # no epoll_create1, timerfd_create or timerfd_settime
 	depends on !BR2_STATIC_LIBS # dlfcn.h
 	depends on BR2_TOOLCHAIN_HAS_THREADS
 	select BR2_PACKAGE_LIBFFI
@@ -13,5 +12,4 @@ config BR2_PACKAGE_WAYLAND
 	  http://wayland.freedesktop.org/
 
 comment "wayland needs a toolchain w/ threads, dynamic library"
-	depends on !BR2_avr32
 	depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS
diff --git a/package/wayland/wayland.hash b/package/wayland/wayland.hash
new file mode 100644
index 0000000000..aa9b15d8f0
--- /dev/null
+++ b/package/wayland/wayland.hash
@@ -0,0 +1,2 @@
+# From: http://lists.freedesktop.org/archives/wayland-devel/2015-February/019976.html
+sha256  bdea47a2db96f7e53f1ce0351559c0af5b7f7aae7e95f0a884a78af9f1057c9c  wayland-1.7.0.tar.xz
diff --git a/package/wayland/wayland.mk b/package/wayland/wayland.mk
index 740faed0fc..32869d88a5 100644
--- a/package/wayland/wayland.mk
+++ b/package/wayland/wayland.mk
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-WAYLAND_VERSION = 1.6.0
+WAYLAND_VERSION = 1.7.0
 WAYLAND_SITE = http://wayland.freedesktop.org/releases
 WAYLAND_SOURCE = wayland-$(WAYLAND_VERSION).tar.xz
 WAYLAND_LICENSE = MIT
diff --git a/package/weston/0001-os-compatibility-define-CLOCK_BOOTTIME-when-not-avai.patch b/package/weston/0001-os-compatibility-define-CLOCK_BOOTTIME-when-not-avai.patch
new file mode 100644
index 0000000000..a7f2a34a88
--- /dev/null
+++ b/package/weston/0001-os-compatibility-define-CLOCK_BOOTTIME-when-not-avai.patch
@@ -0,0 +1,41 @@
+From 66b71951f8ce66f02040f8814e1d89db34c34a87 Mon Sep 17 00:00:00 2001
+From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+Date: Sun, 22 Feb 2015 12:36:00 +0100
+Subject: [PATCH] os-compatibility: define CLOCK_BOOTTIME when not available
+
+CLOCK_BOOTTIME is supposed to be provided by the C library headers,
+but uClibc 0.9.33.2 does not provide it. Instead of depending on an
+uClibc patch, let's make Weston define it to the right value when not
+already defined by the C library.
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+---
+ shared/os-compatibility.h | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/shared/os-compatibility.h b/shared/os-compatibility.h
+index 172bb7e..e369899 100644
+--- a/shared/os-compatibility.h
++++ b/shared/os-compatibility.h
+@@ -26,6 +26,7 @@
+ #include "config.h"
+ 
+ #include <sys/types.h>
++#include <time.h>
+ 
+ #ifdef HAVE_EXECINFO_H
+ #include <execinfo.h>
+@@ -37,6 +38,10 @@ backtrace(void **buffer, int size)
+ }
+ #endif
+ 
++#ifndef CLOCK_BOOTTIME
++#define CLOCK_BOOTTIME 7
++#endif
++
+ int
+ os_socketpair_cloexec(int domain, int type, int protocol, int *sv);
+ 
+-- 
+2.1.0
+
diff --git a/package/weston/Config.in b/package/weston/Config.in
index 49130b4f92..dec35839c6 100644
--- a/package/weston/Config.in
+++ b/package/weston/Config.in
@@ -1,5 +1,4 @@
 comment "weston needs udev and a toolchain w/ threads, dynamic library, headers >= 3.0"
-	depends on !BR2_avr32
 	depends on BR2_ARCH_HAS_ATOMICS
 	depends on !BR2_PACKAGE_HAS_UDEV || !BR2_TOOLCHAIN_HAS_THREADS || \
 		!BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0 || BR2_STATIC_LIBS
@@ -13,8 +12,8 @@ config BR2_PACKAGE_WESTON
 	select BR2_PACKAGE_LIBPNG
 	select BR2_PACKAGE_JPEG
 	select BR2_PACKAGE_MTDEV
+	select BR2_PACKAGE_LIBINPUT
 	depends on BR2_PACKAGE_HAS_UDEV
-	depends on !BR2_avr32 # wayland
 	depends on !BR2_STATIC_LIBS # wayland
 	depends on BR2_TOOLCHAIN_HAS_THREADS # wayland
 	depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0
@@ -40,6 +39,27 @@ config BR2_PACKAGE_WESTON_HAS_COMPOSITOR
 config BR2_PACKAGE_WESTON_FBDEV
 	bool "fbdev compositor"
 
+config BR2_PACKAGE_WESTON_RDP
+	bool "RDP compositor"
+	depends on BR2_USE_WCHAR # freerdp
+	select BR2_PACKAGE_FREERDP
+	select BR2_PACKAGE_WESTON_HAS_COMPOSITOR
+	help
+	  This enables the RDP backend, which allows accessing weston
+	  through the network with any RDP-compliant client.
+
+	  Please note that one must pass those options to weston for RDP
+	  to be functional:
+	    --rdp-tls-cert=/path/to/server.crt
+	    --rdp-tls-key=/path/to/server.key
+
+	  By default, Buildroot installs such files in /etc/freerdp/server/
+	  so you may want to change them in a post-build script or a rootfs
+	  overlay.
+
+comment "RDP compositor needs a toolchain w/ wchar"
+	depends on !BR2_USE_WCHAR
+
 # rpi-userland is an EGL/GLES provider, so we can't select it
 config BR2_PACKAGE_WESTON_RPI
 	bool "RPi compositor"
diff --git a/package/weston/weston.hash b/package/weston/weston.hash
new file mode 100644
index 0000000000..8df6f071c8
--- /dev/null
+++ b/package/weston/weston.hash
@@ -0,0 +1,2 @@
+# From http://lists.freedesktop.org/archives/wayland-devel/2015-February/019977.html
+sha256  1c4511945f3f476c24af712e82a7b500ae91a99cbc0fe2e381da1449125166cd  weston-1.7.0.tar.xz
diff --git a/package/weston/weston.mk b/package/weston/weston.mk
index 9964b90848..bf49436fe4 100644
--- a/package/weston/weston.mk
+++ b/package/weston/weston.mk
@@ -4,14 +4,14 @@
 #
 ################################################################################
 
-WESTON_VERSION = 1.6.0
+WESTON_VERSION = 1.7.0
 WESTON_SITE = http://wayland.freedesktop.org/releases
 WESTON_SOURCE = weston-$(WESTON_VERSION).tar.xz
 WESTON_LICENSE = MIT
 WESTON_LICENSE_FILES = COPYING
 
 WESTON_DEPENDENCIES = host-pkgconf wayland libxkbcommon pixman libpng \
-	jpeg mtdev udev cairo
+	jpeg mtdev udev cairo libinput
 
 WESTON_CONF_OPTS = \
 	--with-dtddir=$(STAGING_DIR)/usr/share/wayland \
@@ -25,19 +25,19 @@ WESTON_CONF_OPTS = \
 	--disable-weston-launch \
 	--disable-colord
 
-ifeq ($(BR2_PACKAGE_LIBINPUT),y)
-WESTON_DEPENDENCIES += libinput
-WESTON_CONF_OPTS += --enable-libinput-backend
-else
-WESTON_CONF_OPTS += --disable-libinput-backend
-endif
-
 ifeq ($(BR2_PACKAGE_LIBUNWIND),y)
 WESTON_DEPENDENCIES += libunwind
 else
 WESTON_CONF_OPTS += --disable-libunwind
 endif
 
+ifeq ($(BR2_PACKAGE_WESTON_RDP),y)
+WESTON_DEPENDENCIES += freerdp
+WESTON_CONF_OPTS += --enable-rdp-compositor
+else
+WESTON_CONF_OPTS += --disable-rdp-compositor
+endif
+
 ifeq ($(BR2_PACKAGE_WESTON_FBDEV),y)
 WESTON_CONF_OPTS += --enable-fbdev-compositor
 else
diff --git a/package/wf111/Config.in b/package/wf111/Config.in
new file mode 100644
index 0000000000..d2ba440a90
--- /dev/null
+++ b/package/wf111/Config.in
@@ -0,0 +1,36 @@
+config BR2_PACKAGE_WF111
+	bool "wf111"
+	depends on BR2_LINUX_KERNEL
+	depends on BR2_ARM_CPU_ARMV5 || BR2_ARM_CPU_ARMV7A || BR2_i386
+	# Binary tools are distributed alongside the driver, and are
+	# dynamically linked against the glibc.
+	depends on BR2_TOOLCHAIN_USES_GLIBC
+	help
+	  BlueGiga WF111 WiFi driver and utilities.
+
+	  Warning: CONFIG_WIRELESS_EXT and CONFIG_WEXT_PRIV must be
+	  selected in the Linux kernel configuration. These are blind
+	  options (i.e. not selectable directly) so they cannot be
+	  enabled by a change in linux/linux.mk. There are two choices
+	  to enable these options:
+	  - By making them non blind, with a "WF111 support" configuration
+	    entry that selects them, for example.
+	  - By enabling another random WiFi driver that select them.
+
+	  http://www.bluegiga.com/en-US/products/wifi-modules/wf111-wifi-module/
+
+if BR2_PACKAGE_WF111
+
+config BR2_PACKAGE_WF111_TARBALL_PATH
+	string "Local tarball location"
+	help
+	  The WF111 tarball can be retrieved on the BlueGiga website
+	  after registration. This option specifies the path where the
+	  tarball is locally saved.
+
+endif
+
+comment "wf111 needs an (e)glibc toolchain"
+	depends on BR2_LINUX_KERNEL
+	depends on BR2_ARM_CPU_ARMV5 || BR2_ARM_CPU_ARMV7A || BR2_i386
+	depends on !BR2_TOOLCHAIN_USES_GLIBC
diff --git a/package/wf111/wf111.mk b/package/wf111/wf111.mk
new file mode 100644
index 0000000000..479d665760
--- /dev/null
+++ b/package/wf111/wf111.mk
@@ -0,0 +1,34 @@
+################################################################################
+#
+# wf111
+#
+################################################################################
+
+WF111_VERSION = 5.2.2
+WF111_SITE_METHOD = file
+WF111_SITE = $(call qstrip,$(BR2_PACKAGE_WF111_TARBALL_PATH))
+WF111_DEPENDENCIES = linux
+
+ifeq ($(BR2_PACKAGE_WF111)$(call qstrip,$(BR2_PACKAGE_WF111_TARBALL_PATH)),y)
+$(error No tarball location specified, check BR2_PACKAGE_WF111_TARBALL_PATH)
+endif
+
+ifeq ($(BR2_ARM_CPU_ARMV7A),y)
+WF111_SOURCE = wf111-linux-driver_5.2.2-r1_armv7-a.tar.gz
+else ifeq ($(BR2_ARM_CPU_ARMV5),y)
+WF111_SOURCE = wf111-linux-driver_5.2.2-r1_armv5t.tar.gz
+else ifeq ($(BR2_i386),y)
+WF111_SOURCE = wf111-linux-driver_5.2.2-r1_x86.tar.gz
+endif
+
+define WF111_BUILD_CMDS
+	$(MAKE) -C $(@D) PWD=$(@D) \
+		$(LINUX_MAKE_FLAGS) KDIR=$(LINUX_DIR) \
+		install_static
+endef
+
+define WF111_INSTALL_TARGET_CMDS
+	cp -dpfr $(@D)/output/* $(TARGET_DIR)
+endef
+
+$(eval $(generic-package))
diff --git a/package/wine/Config.in b/package/wine/Config.in
new file mode 100644
index 0000000000..26de143281
--- /dev/null
+++ b/package/wine/Config.in
@@ -0,0 +1,21 @@
+config BR2_PACKAGE_WINE
+	bool "wine"
+	depends on BR2_TOOLCHAIN_USES_GLIBC
+	# Wine only builds on certain architectures
+	depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86"
+	# Wine has much CPU specific code and mostly makes sense on x86
+	depends on BR2_i386
+	help
+	  Wine is a compatibility layer capable of running Windows
+	  applications on Linux. Instead of simulating internal
+	  Windows logic like a virtual machine or emulator, Wine
+	  translates Windows API calls into POSIX calls on-the-fly,
+	  eliminating the performance and memory penalties of other
+	  methods.
+
+	  http://www.winehq.org
+
+comment "wine needs a (e)glibc toolchain"
+	depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86"
+	depends on BR2_i386
+	depends on !BR2_TOOLCHAIN_USES_GLIBC
diff --git a/package/wine/wine.hash b/package/wine/wine.hash
new file mode 100644
index 0000000000..71d633c103
--- /dev/null
+++ b/package/wine/wine.hash
@@ -0,0 +1,3 @@
+# From http://sourceforge.net/projects/wine/files/Source/
+md5	0f6c56f86befe38e219090915f81f48a	wine-1.6.2.tar.bz2
+sha1	574b9ccedbf213622b7ee55f715764673fc27692	wine-1.6.2.tar.bz2
diff --git a/package/wine/wine.mk b/package/wine/wine.mk
new file mode 100644
index 0000000000..926ac99902
--- /dev/null
+++ b/package/wine/wine.mk
@@ -0,0 +1,292 @@
+################################################################################
+#
+# wine
+#
+################################################################################
+
+WINE_VERSION = 1.6.2
+WINE_SOURCE = wine-$(WINE_VERSION).tar.bz2
+WINE_SITE = http://downloads.sourceforge.net/project/wine/Source/
+WINE_LICENSE = LGPLv2.1+
+WINE_LICENSE_FILES = COPYING.LIB LICENSE
+WINE_DEPENDENCIES = host-bison host-flex host-wine
+
+# Wine needs its own directory structure and tools for cross compiling
+WINE_CONF_OPTS = \
+	--with-wine-tools=../host-wine-$(WINE_VERSION) \
+	--disable-tests \
+	--disable-win64 \
+	--without-opengl
+
+# Wine uses a wrapper around gcc, and uses the value of --host to
+# construct the filename of the gcc to call.  But for external
+# toolchains, the GNU_TARGET_NAME tuple that we construct from our
+# internal variables may differ from the actual gcc prefix for the
+# external toolchains. So, we have to override whatever the gcc
+# wrapper believes what the real gcc is named, and force the tuple of
+# the external toolchain, not the one we compute in GNU_TARGET_NAME.
+ifeq ($(BR2_TOOLCHAIN_EXTERNAL),y)
+WINE_CONF_OPTS += TARGETFLAGS="-b $(call qstrip,$(BR2_TOOLCHAIN_EXTERNAL_PREFIX))"
+endif
+
+ifeq ($(BR2_PACKAGE_CUPS),y)
+WINE_CONF_OPTS += --with-cups
+WINE_DEPENDENCIES += cups
+else
+WINE_CONF_OPTS += --without-cups
+endif
+
+ifeq ($(BR2_PACKAGE_DBUS),y)
+WINE_CONF_OPTS += --with-dbus
+WINE_DEPENDENCIES += dbus
+else
+WINE_CONF_OPTS += --without-dbus
+endif
+
+ifeq ($(BR2_PACKAGE_FONTCONFIG),y)
+WINE_CONF_OPTS += --with-fontconfig
+WINE_DEPENDENCIES += fontconfig
+else
+WINE_CONF_OPTS += --without-fontconfig
+endif
+
+# To support freetype in wine we also need freetype in host-wine for the cross compiling tools
+ifeq ($(BR2_PACKAGE_FREETYPE),y)
+WINE_CONF_OPTS += --with-freetype
+HOST_WINE_CONF_OPTS += --with-freetype
+WINE_DEPENDENCIES += freetype
+HOST_WINE_DEPENDENCIES += host-freetype
+else
+WINE_CONF_OPTS += --without-freetype
+HOST_WINE_CONF_OPTS += --without-freetype
+endif
+
+ifeq ($(BR2_PACKAGE_GNUTLS),y)
+WINE_CONF_OPTS += --with-gnutls
+WINE_DEPENDENCIES += gnutls
+else
+WINE_CONF_OPTS += --without-gnutls
+endif
+
+ifeq ($(BR2_PACKAGE_GST_PLUGINS_BASE),y)
+WINE_CONF_OPTS += --with-gstreamer
+WINE_DEPENDENCIES += gst-plugins-base
+else
+WINE_CONF_OPTS += --without-gstreamer
+endif
+
+ifeq ($(BR2_PACKAGE_JPEG),y)
+WINE_CONF_OPTS += --with-jpeg
+WINE_DEPENDENCIES += jpeg
+else
+WINE_CONF_OPTS += --without-jpeg
+endif
+
+ifeq ($(BR2_PACKAGE_LCMS2),y)
+WINE_CONF_OPTS += --with-cms
+WINE_DEPENDENCIES += lcms2
+else
+WINE_CONF_OPTS += --without-cms
+endif
+
+ifeq ($(BR2_PACKAGE_LIBGLU),y)
+WINE_CONF_OPTS += --with-glu
+WINE_DEPENDENCIES += libglu
+else
+WINE_CONF_OPTS += --without-glu
+endif
+
+ifeq ($(BR2_PACKAGE_LIBPNG),y)
+WINE_CONF_OPTS += --with-png
+WINE_DEPENDENCIES += libpng
+else
+WINE_CONF_OPTS += --without-png
+endif
+
+ifeq ($(BR2_PACKAGE_LIBV4L),y)
+WINE_CONF_OPTS += --with-v4l
+WINE_DEPENDENCIES += libv4l
+else
+WINE_CONF_OPTS += --without-v4l
+endif
+
+ifeq ($(BR2_PACKAGE_LIBXML2),y)
+WINE_CONF_OPTS += --with-xml
+WINE_DEPENDENCIES += libxml2
+else
+WINE_CONF_OPTS += --without-xml
+endif
+
+ifeq ($(BR2_PACKAGE_LIBXSLT),y)
+WINE_CONF_OPTS += --with-xslt
+WINE_DEPENDENCIES += libxslt
+else
+WINE_CONF_OPTS += --without-xslt
+endif
+
+ifeq ($(BR2_PACKAGE_MPG123),y)
+WINE_CONF_OPTS += --with-mpg123
+WINE_DEPENDENCIES += mpg123
+else
+WINE_CONF_OPTS += --without-mpg123
+endif
+
+ifeq ($(BR2_PACKAGE_NCURSES),y)
+WINE_CONF_OPTS += --with-curses
+WINE_DEPENDENCIES += ncurses
+else
+WINE_CONF_OPTS += --without-curses
+endif
+
+ifeq ($(BR2_PACKAGE_SANE_BACKENDS),y)
+WINE_CONF_OPTS += --with-sane
+WINE_DEPENDENCIES += sane-backends
+else
+WINE_CONF_OPTS += --without-sane
+endif
+
+ifeq ($(BR2_PACKAGE_TIFF),y)
+WINE_CONF_OPTS += --with-tiff
+WINE_DEPENDENCIES += tiff
+else
+WINE_CONF_OPTS += --without-tiff
+endif
+
+ifeq ($(BR2_PACKAGE_XLIB_LIBX11),y)
+WINE_CONF_OPTS += --with-x
+WINE_DEPENDENCIES += xlib_libX11
+else
+WINE_CONF_OPTS += --without-x
+endif
+
+ifeq ($(BR2_PACKAGE_XLIB_LIBXCOMPOSITE),y)
+WINE_CONF_OPTS += --with-xcomposite
+WINE_DEPENDENCIES += xlib_libXcomposite
+else
+WINE_CONF_OPTS += --without-xcomposite
+endif
+
+ifeq ($(BR2_PACKAGE_XLIB_LIBXCURSOR),y)
+WINE_CONF_OPTS += --with-xcursor
+WINE_DEPENDENCIES += xlib_libXcursor
+else
+WINE_CONF_OPTS += --without-xcursor
+endif
+
+ifeq ($(BR2_PACKAGE_XLIB_LIBXI),y)
+WINE_CONF_OPTS += --with-xinput --with-xinput2
+WINE_DEPENDENCIES += xlib_libXi
+else
+WINE_CONF_OPTS += --without-xinput --without-xinput2
+endif
+
+ifeq ($(BR2_PACKAGE_XLIB_LIBXINERAMA),y)
+WINE_CONF_OPTS += --with-xinerama
+WINE_DEPENDENCIES += xlib_libXinerama
+else
+WINE_CONF_OPTS += --without-xinerama
+endif
+
+ifeq ($(BR2_PACKAGE_XLIB_LIBXRANDR),y)
+WINE_CONF_OPTS += --with-xrandr
+WINE_DEPENDENCIES += xlib_libXrandr
+else
+WINE_CONF_OPTS += --without-xrandr
+endif
+
+ifeq ($(BR2_PACKAGE_XLIB_LIBXRENDER),y)
+WINE_CONF_OPTS += --with-xrender
+WINE_DEPENDENCIES += xlib_libXrender
+else
+WINE_CONF_OPTS += --without-xrender
+endif
+
+ifeq ($(BR2_PACKAGE_XLIB_LIBXXF86VM),y)
+WINE_CONF_OPTS += --with-xxf86vm
+WINE_DEPENDENCIES += xlib_libXxf86vm
+else
+WINE_CONF_OPTS += --without-xxf86vm
+endif
+
+ifeq ($(BR2_PACKAGE_ZLIB),y)
+WINE_CONF_OPTS += --with-zlib
+WINE_DEPENDENCIES += zlib
+else
+WINE_CONF_OPTS += --without-zlib
+endif
+
+# Wine needs to enable 64-bit build tools on 64-bit host
+ifeq ($(HOSTARCH),x86_64)
+HOST_WINE_CONF_OPTS += --enable-win64
+endif
+
+# Wine only needs the host tools to be built, so cut-down the
+# build time by building just what we need.
+define HOST_WINE_BUILD_CMDS
+	$(HOST_MAKE_ENV) $(MAKE) -C $(@D) \
+	  tools \
+	  tools/widl \
+	  tools/winebuild \
+	  tools/winegcc \
+	  tools/wmc \
+	  tools/wrc
+endef
+
+# Wine only needs its host variant to be built, not that it is
+# installed, as it uses the tools from the build directory. But
+# we have no way in Buildroot to state that a host package should
+# not be installed. So, just provide an noop install command.
+define HOST_WINE_INSTALL_CMDS
+	:
+endef
+
+# We are focused on the cross compiling tools, disable everything else
+HOST_WINE_CONF_OPTS += \
+	--disable-tests \
+	--disable-win16 \
+	--without-alsa \
+	--without-capi \
+	--without-cms \
+	--without-coreaudio \
+	--without-cups \
+	--without-curses \
+	--without-dbus \
+	--without-fontconfig \
+	--without-gettext \
+	--without-gettextpo \
+	--without-gphoto \
+	--without-glu \
+	--without-gnutls \
+	--without-gsm \
+	--without-gstreamer \
+	--without-hal \
+	--without-jpeg \
+	--without-ldap \
+	--without-mpg123 \
+	--without-netapi \
+	--without-openal \
+	--without-opencl \
+	--without-opengl \
+	--without-osmesa \
+	--without-oss \
+	--without-png \
+	--without-sane \
+	--without-tiff \
+	--without-v4l \
+	--without-x \
+	--without-xcomposite \
+	--without-xcursor \
+	--without-xinerama \
+	--without-xinput \
+	--without-xinput2 \
+	--without-xml \
+	--without-xrandr \
+	--without-xrender \
+	--without-xshape \
+	--without-xshm \
+	--without-xslt \
+	--without-xxf86vm \
+	--without-zlib
+
+$(eval $(autotools-package))
+$(eval $(host-autotools-package))
diff --git a/package/wireless-regdb/wireless-regdb.hash b/package/wireless-regdb/wireless-regdb.hash
index b9eabf1f5d..c755efdeaa 100644
--- a/package/wireless-regdb/wireless-regdb.hash
+++ b/package/wireless-regdb/wireless-regdb.hash
@@ -1,2 +1,2 @@
 # From https://www.kernel.org/pub/software/network/wireless-regdb/sha256sums.asc
-sha256	eab6b50f30748a8b0065ba38cf3df05aac161a5861ae0a6c3cfd01d38a71c9dd	wireless-regdb-2014.11.18.tar.xz
+sha256	438d7f3d62686bc997098d17fe1aff95c6f6ec061aaab90ab7c2c17e8451ce85	wireless-regdb-2015.01.30.tar.xz
diff --git a/package/wireless-regdb/wireless-regdb.mk b/package/wireless-regdb/wireless-regdb.mk
index 4322fb7d34..a4ca41bcab 100644
--- a/package/wireless-regdb/wireless-regdb.mk
+++ b/package/wireless-regdb/wireless-regdb.mk
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-WIRELESS_REGDB_VERSION = 2014.11.18
+WIRELESS_REGDB_VERSION = 2015.01.30
 WIRELESS_REGDB_SOURCE = wireless-regdb-$(WIRELESS_REGDB_VERSION).tar.xz
 WIRELESS_REGDB_SITE = http://kernel.org/pub/software/network/wireless-regdb
 WIRELESS_REGDB_LICENSE = ISC
@@ -13,8 +13,8 @@ WIRELESS_REGDB_LICENSE_FILES = LICENSE
 define WIRELESS_REGDB_INSTALL_TARGET_CMDS
 	$(INSTALL) -m 644 -D -T $(@D)/regulatory.bin \
 		$(TARGET_DIR)/usr/lib/crda/regulatory.bin
-	$(INSTALL) -m 644 -D -T $(@D)/linville.key.pub.pem \
-		$(TARGET_DIR)/etc/wireless-regdb/pubkeys/linville.key.pub.pem
+	$(INSTALL) -m 644 -D -T $(@D)/sforshee.key.pub.pem \
+		$(TARGET_DIR)/etc/wireless-regdb/pubkeys/sforshee.key.pub.pem
 endef
 
 $(eval $(generic-package))
diff --git a/package/wpa_supplicant/Config.in b/package/wpa_supplicant/Config.in
index 6ebd2fedc1..f32a867489 100644
--- a/package/wpa_supplicant/Config.in
+++ b/package/wpa_supplicant/Config.in
@@ -1,7 +1,6 @@
 config BR2_PACKAGE_WPA_SUPPLICANT
 	bool "wpa_supplicant"
 	depends on BR2_USE_MMU # fork()
-	depends on !BR2_avr32 # no epoll_create1
 	help
 	  WPA supplicant for secure wireless networks
 
diff --git a/package/x11r7/Config.in b/package/x11r7/Config.in
index 2fd1ff062b..f60c752ed9 100644
--- a/package/x11r7/Config.in
+++ b/package/x11r7/Config.in
@@ -15,6 +15,7 @@ if BR2_PACKAGE_XORG7
 	endmenu
 	menu "X11R7 Libraries"
 		source package/x11r7/libxcb/Config.in
+		source package/x11r7/libepoxy/Config.in
 		source package/x11r7/xcb-util/Config.in
 		source package/x11r7/xcb-util-image/Config.in
 		source package/x11r7/xcb-util-keysyms/Config.in
diff --git a/package/x11r7/libepoxy/Config.in b/package/x11r7/libepoxy/Config.in
new file mode 100644
index 0000000000..c4f5794d23
--- /dev/null
+++ b/package/x11r7/libepoxy/Config.in
@@ -0,0 +1,7 @@
+config BR2_PACKAGE_LIBEPOXY
+	bool "epoxy"
+	depends on BR2_PACKAGE_MESA3D
+	help
+	  Epoxy is a library for handling OpenGL function pointer management for you.
+
+	  https://github.com/anholt/libepoxy
diff --git a/package/x11r7/libepoxy/libepoxy.mk b/package/x11r7/libepoxy/libepoxy.mk
new file mode 100644
index 0000000000..9858cfea09
--- /dev/null
+++ b/package/x11r7/libepoxy/libepoxy.mk
@@ -0,0 +1,15 @@
+################################################################################
+#
+# libepoxy
+#
+#################################################################################
+
+LIBEPOXY_VERSION = v1.2
+LIBEPOXY_SITE = $(call github,anholt,libepoxy,$(LIBEPOXY_VERSION))
+LIBEPOXY_INSTALL_STAGING = YES
+LIBEPOXY_AUTORECONF = YES
+LIBEPOXY_DEPENDENCIES = mesa3d
+LIBEPOXY_LICENSE = MIT
+LIBEPOXY_LICENSE_FILES = COPYING
+
+$(eval $(autotools-package))
diff --git a/package/x11r7/xapp_bdftopcf/xapp_bdftopcf.mk b/package/x11r7/xapp_bdftopcf/xapp_bdftopcf.mk
index 64c21037b2..ebdcda5756 100644
--- a/package/x11r7/xapp_bdftopcf/xapp_bdftopcf.mk
+++ b/package/x11r7/xapp_bdftopcf/xapp_bdftopcf.mk
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-XAPP_BDFTOPCF_VERSION = 1.0.4
+XAPP_BDFTOPCF_VERSION = 1.0.5
 XAPP_BDFTOPCF_SOURCE = bdftopcf-$(XAPP_BDFTOPCF_VERSION).tar.bz2
 XAPP_BDFTOPCF_SITE = http://xorg.freedesktop.org/releases/individual/app
 XAPP_BDFTOPCF_LICENSE = MIT
diff --git a/package/x11r7/xapp_bitmap/xapp_bitmap.mk b/package/x11r7/xapp_bitmap/xapp_bitmap.mk
index 5c4dc1cb28..851af31382 100644
--- a/package/x11r7/xapp_bitmap/xapp_bitmap.mk
+++ b/package/x11r7/xapp_bitmap/xapp_bitmap.mk
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-XAPP_BITMAP_VERSION = 1.0.7
+XAPP_BITMAP_VERSION = 1.0.8
 XAPP_BITMAP_SOURCE = bitmap-$(XAPP_BITMAP_VERSION).tar.bz2
 XAPP_BITMAP_SITE = http://xorg.freedesktop.org/releases/individual/app
 XAPP_BITMAP_LICENSE = MIT
diff --git a/package/x11r7/xapp_fslsfonts/xapp_fslsfonts.mk b/package/x11r7/xapp_fslsfonts/xapp_fslsfonts.mk
index 503b55242a..27786a55c1 100644
--- a/package/x11r7/xapp_fslsfonts/xapp_fslsfonts.mk
+++ b/package/x11r7/xapp_fslsfonts/xapp_fslsfonts.mk
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-XAPP_FSLSFONTS_VERSION = 1.0.4
+XAPP_FSLSFONTS_VERSION = 1.0.5
 XAPP_FSLSFONTS_SOURCE = fslsfonts-$(XAPP_FSLSFONTS_VERSION).tar.bz2
 XAPP_FSLSFONTS_SITE = http://xorg.freedesktop.org/releases/individual/app
 XAPP_FSLSFONTS_LICENSE = MIT
diff --git a/package/x11r7/xapp_fstobdf/xapp_fstobdf.mk b/package/x11r7/xapp_fstobdf/xapp_fstobdf.mk
index b57220f5b1..e897514c80 100644
--- a/package/x11r7/xapp_fstobdf/xapp_fstobdf.mk
+++ b/package/x11r7/xapp_fstobdf/xapp_fstobdf.mk
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-XAPP_FSTOBDF_VERSION = 1.0.5
+XAPP_FSTOBDF_VERSION = 1.0.6
 XAPP_FSTOBDF_SOURCE = fstobdf-$(XAPP_FSTOBDF_VERSION).tar.bz2
 XAPP_FSTOBDF_SITE = http://xorg.freedesktop.org/releases/individual/app
 XAPP_FSTOBDF_LICENSE = MIT
diff --git a/package/x11r7/xapp_iceauth/xapp_iceauth.mk b/package/x11r7/xapp_iceauth/xapp_iceauth.mk
index 0f6ef3e86c..d30ff6f786 100644
--- a/package/x11r7/xapp_iceauth/xapp_iceauth.mk
+++ b/package/x11r7/xapp_iceauth/xapp_iceauth.mk
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-XAPP_ICEAUTH_VERSION = 1.0.6
+XAPP_ICEAUTH_VERSION = 1.0.7
 XAPP_ICEAUTH_SOURCE = iceauth-$(XAPP_ICEAUTH_VERSION).tar.bz2
 XAPP_ICEAUTH_SITE = http://xorg.freedesktop.org/releases/individual/app
 XAPP_ICEAUTH_LICENSE = MIT
diff --git a/package/x11r7/xapp_mkfontscale/xapp_mkfontscale.mk b/package/x11r7/xapp_mkfontscale/xapp_mkfontscale.mk
index c50bb0c995..b99a646044 100644
--- a/package/x11r7/xapp_mkfontscale/xapp_mkfontscale.mk
+++ b/package/x11r7/xapp_mkfontscale/xapp_mkfontscale.mk
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-XAPP_MKFONTSCALE_VERSION = 1.1.1
+XAPP_MKFONTSCALE_VERSION = 1.1.2
 XAPP_MKFONTSCALE_SOURCE = mkfontscale-$(XAPP_MKFONTSCALE_VERSION).tar.bz2
 XAPP_MKFONTSCALE_SITE = http://xorg.freedesktop.org/releases/individual/app
 XAPP_MKFONTSCALE_LICENSE = MIT
diff --git a/package/x11r7/xapp_rgb/xapp_rgb.mk b/package/x11r7/xapp_rgb/xapp_rgb.mk
index 7a07614ad3..82878abad0 100644
--- a/package/x11r7/xapp_rgb/xapp_rgb.mk
+++ b/package/x11r7/xapp_rgb/xapp_rgb.mk
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-XAPP_RGB_VERSION = 1.0.5
+XAPP_RGB_VERSION = 1.0.6
 XAPP_RGB_SOURCE = rgb-$(XAPP_RGB_VERSION).tar.bz2
 XAPP_RGB_SITE = http://xorg.freedesktop.org/releases/individual/app
 XAPP_RGB_LICENSE = MIT
diff --git a/package/x11r7/xapp_sessreg/xapp_sessreg.mk b/package/x11r7/xapp_sessreg/xapp_sessreg.mk
index 1b27a7b068..08811c015e 100644
--- a/package/x11r7/xapp_sessreg/xapp_sessreg.mk
+++ b/package/x11r7/xapp_sessreg/xapp_sessreg.mk
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-XAPP_SESSREG_VERSION = 1.0.8
+XAPP_SESSREG_VERSION = 1.1.0
 XAPP_SESSREG_SOURCE = sessreg-$(XAPP_SESSREG_VERSION).tar.bz2
 XAPP_SESSREG_SITE = http://xorg.freedesktop.org/releases/individual/app
 XAPP_SESSREG_LICENSE = MIT
diff --git a/package/x11r7/xapp_showfont/xapp_showfont.mk b/package/x11r7/xapp_showfont/xapp_showfont.mk
index 494e2af892..c0b8c9a3a2 100644
--- a/package/x11r7/xapp_showfont/xapp_showfont.mk
+++ b/package/x11r7/xapp_showfont/xapp_showfont.mk
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-XAPP_SHOWFONT_VERSION = 1.0.4
+XAPP_SHOWFONT_VERSION = 1.0.5
 XAPP_SHOWFONT_SOURCE = showfont-$(XAPP_SHOWFONT_VERSION).tar.bz2
 XAPP_SHOWFONT_SITE = http://xorg.freedesktop.org/releases/individual/app
 XAPP_SHOWFONT_LICENSE = MIT
diff --git a/package/x11r7/xapp_xcalc/xapp_xcalc.mk b/package/x11r7/xapp_xcalc/xapp_xcalc.mk
index 2a1f717cf1..58fbdf5710 100644
--- a/package/x11r7/xapp_xcalc/xapp_xcalc.mk
+++ b/package/x11r7/xapp_xcalc/xapp_xcalc.mk
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-XAPP_XCALC_VERSION = 1.0.5
+XAPP_XCALC_VERSION = 1.0.6
 XAPP_XCALC_SOURCE = xcalc-$(XAPP_XCALC_VERSION).tar.bz2
 XAPP_XCALC_SITE = http://xorg.freedesktop.org/releases/individual/app
 XAPP_XCALC_LICENSE = MIT
diff --git a/package/x11r7/xapp_xfsinfo/xapp_xfsinfo.mk b/package/x11r7/xapp_xfsinfo/xapp_xfsinfo.mk
index 20192874f6..38d01e4949 100644
--- a/package/x11r7/xapp_xfsinfo/xapp_xfsinfo.mk
+++ b/package/x11r7/xapp_xfsinfo/xapp_xfsinfo.mk
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-XAPP_XFSINFO_VERSION = 1.0.4
+XAPP_XFSINFO_VERSION = 1.0.5
 XAPP_XFSINFO_SOURCE = xfsinfo-$(XAPP_XFSINFO_VERSION).tar.bz2
 XAPP_XFSINFO_SITE = http://xorg.freedesktop.org/releases/individual/app
 XAPP_XFSINFO_LICENSE = MIT
diff --git a/package/x11r7/xapp_xkbcomp/xapp_xkbcomp.mk b/package/x11r7/xapp_xkbcomp/xapp_xkbcomp.mk
index 94fbd68de5..0a727426d3 100644
--- a/package/x11r7/xapp_xkbcomp/xapp_xkbcomp.mk
+++ b/package/x11r7/xapp_xkbcomp/xapp_xkbcomp.mk
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-XAPP_XKBCOMP_VERSION = 1.2.4
+XAPP_XKBCOMP_VERSION = 1.3.0
 XAPP_XKBCOMP_SOURCE = xkbcomp-$(XAPP_XKBCOMP_VERSION).tar.bz2
 XAPP_XKBCOMP_SITE = http://xorg.freedesktop.org/releases/individual/app
 XAPP_XKBCOMP_LICENSE = MIT
diff --git a/package/x11r7/xdriver_xf86-input-evdev/Config.in b/package/x11r7/xdriver_xf86-input-evdev/Config.in
index 6ec14bfe8d..f44e79f8b5 100644
--- a/package/x11r7/xdriver_xf86-input-evdev/Config.in
+++ b/package/x11r7/xdriver_xf86-input-evdev/Config.in
@@ -1,6 +1,7 @@
 config BR2_PACKAGE_XDRIVER_XF86_INPUT_EVDEV
 	bool "xf86-input-evdev"
 	depends on BR2_PACKAGE_HAS_UDEV # libudev is configure dependency
+	select BR2_PACKAGE_LIBEVDEV
 	select BR2_PACKAGE_XPROTO_INPUTPROTO
 	select BR2_PACKAGE_XPROTO_RANDRPROTO
 	select BR2_PACKAGE_XPROTO_XPROTO
diff --git a/package/x11r7/xdriver_xf86-input-evdev/xdriver_xf86-input-evdev.hash b/package/x11r7/xdriver_xf86-input-evdev/xdriver_xf86-input-evdev.hash
new file mode 100644
index 0000000000..ea5233e5ff
--- /dev/null
+++ b/package/x11r7/xdriver_xf86-input-evdev/xdriver_xf86-input-evdev.hash
@@ -0,0 +1,2 @@
+# From http://lists.x.org/archives/xorg-announce/2014-November/002499.html
+sha256 0ce30328adfeac90a6f4b508d992fb834d8e50b484b29d3d58cf6683fa8502f9  xf86-input-evdev-2.9.1.tar.bz2
diff --git a/package/x11r7/xdriver_xf86-input-evdev/xdriver_xf86-input-evdev.mk b/package/x11r7/xdriver_xf86-input-evdev/xdriver_xf86-input-evdev.mk
index 46e62c7581..5f029a24df 100644
--- a/package/x11r7/xdriver_xf86-input-evdev/xdriver_xf86-input-evdev.mk
+++ b/package/x11r7/xdriver_xf86-input-evdev/xdriver_xf86-input-evdev.mk
@@ -4,11 +4,19 @@
 #
 ################################################################################
 
-XDRIVER_XF86_INPUT_EVDEV_VERSION = 2.8.2
+XDRIVER_XF86_INPUT_EVDEV_VERSION = 2.9.1
 XDRIVER_XF86_INPUT_EVDEV_SOURCE = xf86-input-evdev-$(XDRIVER_XF86_INPUT_EVDEV_VERSION).tar.bz2
 XDRIVER_XF86_INPUT_EVDEV_SITE = http://xorg.freedesktop.org/releases/individual/driver
 XDRIVER_XF86_INPUT_EVDEV_LICENSE = MIT
 XDRIVER_XF86_INPUT_EVDEV_LICENSE_FILES = COPYING
-XDRIVER_XF86_INPUT_EVDEV_DEPENDENCIES = xproto_inputproto xserver_xorg-server xproto_randrproto xproto_xproto udev
+XDRIVER_XF86_INPUT_EVDEV_DEPENDENCIES = \
+	host-pkgconf \
+	libevdev \
+	xproto_inputproto \
+	xserver_xorg-server \
+	xproto_randrproto \
+	xproto_xproto \
+	udev \
+	$(if $(BR2_PACKAGE_MTDEV),mtdev)
 
 $(eval $(autotools-package))
diff --git a/package/x11r7/xdriver_xf86-input-synaptics/xdriver_xf86-input-synaptics.mk b/package/x11r7/xdriver_xf86-input-synaptics/xdriver_xf86-input-synaptics.mk
index 7553f79e41..1c625eabf1 100644
--- a/package/x11r7/xdriver_xf86-input-synaptics/xdriver_xf86-input-synaptics.mk
+++ b/package/x11r7/xdriver_xf86-input-synaptics/xdriver_xf86-input-synaptics.mk
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-XDRIVER_XF86_INPUT_SYNAPTICS_VERSION = 1.7.4
+XDRIVER_XF86_INPUT_SYNAPTICS_VERSION = 1.7.8
 XDRIVER_XF86_INPUT_SYNAPTICS_SOURCE = xf86-input-synaptics-$(XDRIVER_XF86_INPUT_SYNAPTICS_VERSION).tar.bz2
 XDRIVER_XF86_INPUT_SYNAPTICS_SITE = http://xorg.freedesktop.org/releases/individual/driver
 XDRIVER_XF86_INPUT_SYNAPTICS_LICENSE = MIT
diff --git a/package/x11r7/xdriver_xf86-video-ati/0001-noxaa.patch b/package/x11r7/xdriver_xf86-video-ati/0001-noxaa.patch
deleted file mode 100644
index 4e53ea0f40..0000000000
--- a/package/x11r7/xdriver_xf86-video-ati/0001-noxaa.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-XAA support was removed from xorg xserver
-http://cgit.freedesktop.org/xorg/xserver/commit/?id=e191e296e6e7861978ea4a0ae9aa7b780e52732b
-
-Signed-off-by: Bernd Kuhls <berndkuhls@hotmail.com>
-
-diff -uNr xf86-video-ati-6.14.6.org/configure.ac xf86-video-ati-6.14.6/configure.ac
---- xf86-video-ati-6.14.6.org/configure.ac	2012-06-29 15:46:11.000000000 +0200
-+++ xf86-video-ati-6.14.6/configure.ac	2014-03-29 17:21:35.805208243 +0100
-@@ -163,8 +163,6 @@
- AM_CONDITIONAL(DRM_MODE, test x$DRM_MODE = xyes)
- AM_CONDITIONAL(LIBUDEV, test x$LIBUDEV = xyes)
- 
--AC_DEFINE(USE_XAA, 1, [Build support for XAA])
--
- # Properly handle EXA.
- AC_MSG_CHECKING([whether to enable EXA support])
- if test "x$EXA" = xyes; then
diff --git a/package/x11r7/xdriver_xf86-video-ati/0002-mibstore.patch b/package/x11r7/xdriver_xf86-video-ati/0002-mibstore.patch
deleted file mode 100644
index 28c72aa969..0000000000
--- a/package/x11r7/xdriver_xf86-video-ati/0002-mibstore.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-patch adapted from upstream:
-http://cgit.freedesktop.org/xorg/driver/xf86-video-ati/commit/?id=e8cb0b721e6ea251f85c799ca0563bfa59a2d37c
-
-Signed-off-by: Bernd Kuhls <berndkuhls@hotmail.com>
-
-diff -uNr xf86-video-ati-6.14.6.org/src/radeon_driver.c xf86-video-ati-6.14.6/src/radeon_driver.c
---- xf86-video-ati-6.14.6.org/src/radeon_driver.c	2012-06-25 10:19:41.000000000 +0200
-+++ xf86-video-ati-6.14.6/src/radeon_driver.c	2014-03-29 17:27:54.712440644 +0100
-@@ -3753,10 +3753,6 @@
-     RADEONInitMemMapRegisters(pScrn, info->ModeReg, info);
-     RADEONRestoreMemMapRegisters(pScrn, info->ModeReg);
- 
--    /* Backing store setup */
--    xf86DrvMsgVerb(pScrn->scrnIndex, X_INFO, RADEON_LOGLEVEL_DEBUG,
--		   "Initializing backing store\n");
--    miInitializeBackingStore(pScreen);
-     xf86SetBackingStore(pScreen);
- 
-     /* DRI finalisation */
-diff -uNr xf86-video-ati-6.14.6.org/src/radeon_kms.c xf86-video-ati-6.14.6/src/radeon_kms.c
---- xf86-video-ati-6.14.6.org/src/radeon_kms.c	2012-06-29 15:45:35.000000000 +0200
-+++ xf86-video-ati-6.14.6/src/radeon_kms.c	2014-03-29 17:28:02.328340925 +0100
-@@ -1036,10 +1036,6 @@
- #endif
- 
-     pScrn->vtSema = TRUE;
--    /* Backing store setup */
--    xf86DrvMsgVerb(pScrn->scrnIndex, X_INFO, RADEON_LOGLEVEL_DEBUG,
--		   "Initializing backing store\n");
--    miInitializeBackingStore(pScreen);
-     xf86SetBackingStore(pScreen);
- 
- 
diff --git a/package/x11r7/xdriver_xf86-video-ati/0003-DamageUnregister.patch b/package/x11r7/xdriver_xf86-video-ati/0003-DamageUnregister.patch
deleted file mode 100644
index e866cfda0e..0000000000
--- a/package/x11r7/xdriver_xf86-video-ati/0003-DamageUnregister.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-Fix compile error, inspired by
-http://cgit.freedesktop.org/xorg/driver/xf86-video-vmware/commit/?id=e26dec8f5278df74a102493bf6d2d8444dab5d6d
-
-Signed-off-by: Bernd Kuhls <berndkuhls@hotmail.com>
-
-diff -uNr xf86-video-ati-6.14.6.org/src/radeon_driver.c xf86-video-ati-6.14.6/src/radeon_driver.c
---- xf86-video-ati-6.14.6.org/src/radeon_driver.c	2012-06-25 10:19:41.000000000 +0200
-+++ xf86-video-ati-6.14.6/src/radeon_driver.c	2014-03-29 18:03:47.401381113 +0100
-@@ -99,6 +99,7 @@
- #endif
- #include "xf86cmap.h"
- #include "vbe.h"
-+#include <xorgVersion.h>
- 
- #include "shadow.h"
- 				/* vgaHW definitions */
-@@ -6440,7 +6437,11 @@
-     if (info->dri && info->dri->pDamage) {
- 	PixmapPtr pPix = pScreen->GetScreenPixmap(pScreen);
- 
-+#if XORG_VERSION_CURRENT >= XORG_VERSION_NUMERIC(1,14,99,2,0)
-+	DamageUnregister(info->dri->pDamage);
-+#else
- 	DamageUnregister(&pPix->drawable, info->dri->pDamage);
-+#endif
- 	DamageDestroy(info->dri->pDamage);
- 	info->dri->pDamage = NULL;
-     }
diff --git a/package/x11r7/xdriver_xf86-video-ati/xdriver_xf86-video-ati.mk b/package/x11r7/xdriver_xf86-video-ati/xdriver_xf86-video-ati.mk
index 6d4baa0190..db420ea112 100644
--- a/package/x11r7/xdriver_xf86-video-ati/xdriver_xf86-video-ati.mk
+++ b/package/x11r7/xdriver_xf86-video-ati/xdriver_xf86-video-ati.mk
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-XDRIVER_XF86_VIDEO_ATI_VERSION = 6.14.6
+XDRIVER_XF86_VIDEO_ATI_VERSION = 7.5.0
 XDRIVER_XF86_VIDEO_ATI_SOURCE = xf86-video-ati-$(XDRIVER_XF86_VIDEO_ATI_VERSION).tar.bz2
 XDRIVER_XF86_VIDEO_ATI_SITE = http://xorg.freedesktop.org/releases/individual/driver
 XDRIVER_XF86_VIDEO_ATI_LICENSE = MIT
diff --git a/package/x11r7/xdriver_xf86-video-cirrus/xdriver_xf86-video-cirrus.mk b/package/x11r7/xdriver_xf86-video-cirrus/xdriver_xf86-video-cirrus.mk
index 0bc8c2f912..e68656dc8c 100644
--- a/package/x11r7/xdriver_xf86-video-cirrus/xdriver_xf86-video-cirrus.mk
+++ b/package/x11r7/xdriver_xf86-video-cirrus/xdriver_xf86-video-cirrus.mk
@@ -4,11 +4,11 @@
 #
 ################################################################################
 
-XDRIVER_XF86_VIDEO_CIRRUS_VERSION = 1.5.2
-XDRIVER_XF86_VIDEO_CIRRUS_SOURCE = xf86-video-cirrus-$(XDRIVER_XF86_VIDEO_CIRRUS_VERSION).tar.bz2
-XDRIVER_XF86_VIDEO_CIRRUS_SITE = http://xorg.freedesktop.org/releases/individual/driver
+XDRIVER_XF86_VIDEO_CIRRUS_VERSION = df389885adf71ed3b045c2fde9fd3ba4329e1a58
+XDRIVER_XF86_VIDEO_CIRRUS_SITE = git://anongit.freedesktop.org/xorg/driver/xf86-video-cirrus
 XDRIVER_XF86_VIDEO_CIRRUS_LICENSE = MIT
 XDRIVER_XF86_VIDEO_CIRRUS_LICENSE_FILES = COPYING
+XDRIVER_XF86_VIDEO_CIRRUS_AUTORECONF = YES
 XDRIVER_XF86_VIDEO_CIRRUS_DEPENDENCIES = xserver_xorg-server xproto_fontsproto xproto_randrproto xproto_renderproto xproto_videoproto xproto_xextproto xproto_xproto
 
 $(eval $(autotools-package))
diff --git a/package/x11r7/xdriver_xf86-video-geode/Config.in b/package/x11r7/xdriver_xf86-video-geode/Config.in
index 0b45fb165d..b70e344b26 100644
--- a/package/x11r7/xdriver_xf86-video-geode/Config.in
+++ b/package/x11r7/xdriver_xf86-video-geode/Config.in
@@ -6,5 +6,6 @@ config BR2_PACKAGE_XDRIVER_XF86_VIDEO_GEODE
 	select BR2_PACKAGE_XPROTO_VIDEOPROTO
 	select BR2_PACKAGE_XPROTO_XPROTO
 	depends on BR2_i386
+	depends on BROKEN # Fails to build with xorg xserver >= 1.17
 	help
 	  video driver for geode device
diff --git a/package/x11r7/xdriver_xf86-video-mach64/xdriver_xf86-video-mach64.mk b/package/x11r7/xdriver_xf86-video-mach64/xdriver_xf86-video-mach64.mk
index 60a8a93f40..48199371b3 100644
--- a/package/x11r7/xdriver_xf86-video-mach64/xdriver_xf86-video-mach64.mk
+++ b/package/x11r7/xdriver_xf86-video-mach64/xdriver_xf86-video-mach64.mk
@@ -4,9 +4,8 @@
 #
 ################################################################################
 
-XDRIVER_XF86_VIDEO_MACH64_VERSION = 6.9.4
-XDRIVER_XF86_VIDEO_MACH64_SOURCE = xf86-video-mach64-$(XDRIVER_XF86_VIDEO_MACH64_VERSION).tar.bz2
-XDRIVER_XF86_VIDEO_MACH64_SITE = http://xorg.freedesktop.org/releases/individual/driver
+XDRIVER_XF86_VIDEO_MACH64_VERSION = 810572536e153ac9e4615a35e2ab99dc266806da
+XDRIVER_XF86_VIDEO_MACH64_SITE = git://anongit.freedesktop.org/xorg/driver/xf86-video-mach64
 XDRIVER_XF86_VIDEO_MACH64_LICENSE = MIT
 XDRIVER_XF86_VIDEO_MACH64_LICENSE_FILES = COPYING
 XDRIVER_XF86_VIDEO_MACH64_AUTORECONF = YES
diff --git a/package/x11r7/xdriver_xf86-video-mga/xdriver_xf86-video-mga.mk b/package/x11r7/xdriver_xf86-video-mga/xdriver_xf86-video-mga.mk
index b530394865..b800fcf47b 100644
--- a/package/x11r7/xdriver_xf86-video-mga/xdriver_xf86-video-mga.mk
+++ b/package/x11r7/xdriver_xf86-video-mga/xdriver_xf86-video-mga.mk
@@ -4,9 +4,8 @@
 #
 ################################################################################
 
-XDRIVER_XF86_VIDEO_MGA_VERSION = 1.6.3
-XDRIVER_XF86_VIDEO_MGA_SOURCE = xf86-video-mga-$(XDRIVER_XF86_VIDEO_MGA_VERSION).tar.bz2
-XDRIVER_XF86_VIDEO_MGA_SITE = http://xorg.freedesktop.org/releases/individual/driver
+XDRIVER_XF86_VIDEO_MGA_VERSION = 132dee029e36c9a91a85f178885e94a9f9b5ee37
+XDRIVER_XF86_VIDEO_MGA_SITE = git://anongit.freedesktop.org/xorg/driver/xf86-video-mga
 XDRIVER_XF86_VIDEO_MGA_LICENSE = MIT
 XDRIVER_XF86_VIDEO_MGA_LICENSE_FILES = COPYING
 XDRIVER_XF86_VIDEO_MGA_AUTORECONF = YES
diff --git a/package/x11r7/xdriver_xf86-video-neomagic/xdriver_xf86-video-neomagic.mk b/package/x11r7/xdriver_xf86-video-neomagic/xdriver_xf86-video-neomagic.mk
index 884c24969d..85bcb2a32f 100644
--- a/package/x11r7/xdriver_xf86-video-neomagic/xdriver_xf86-video-neomagic.mk
+++ b/package/x11r7/xdriver_xf86-video-neomagic/xdriver_xf86-video-neomagic.mk
@@ -4,11 +4,11 @@
 #
 ################################################################################
 
-XDRIVER_XF86_VIDEO_NEOMAGIC_VERSION = 1.2.8
-XDRIVER_XF86_VIDEO_NEOMAGIC_SOURCE = xf86-video-neomagic-$(XDRIVER_XF86_VIDEO_NEOMAGIC_VERSION).tar.bz2
-XDRIVER_XF86_VIDEO_NEOMAGIC_SITE = http://xorg.freedesktop.org/releases/individual/driver
+XDRIVER_XF86_VIDEO_NEOMAGIC_VERSION = 6661bdd4551e4e63e983685464a277845aed3012
+XDRIVER_XF86_VIDEO_NEOMAGIC_SITE = git://anongit.freedesktop.org/xorg/driver/xf86-video-neomagic
 XDRIVER_XF86_VIDEO_NEOMAGIC_LICENSE = MIT
 XDRIVER_XF86_VIDEO_NEOMAGIC_LICENSE_FILES = COPYING
+XDRIVER_XF86_VIDEO_NEOMAGIC_AUTORECONF = YES
 XDRIVER_XF86_VIDEO_NEOMAGIC_DEPENDENCIES = xserver_xorg-server xproto_fontsproto xproto_randrproto xproto_renderproto xproto_videoproto xproto_xextproto xproto_xf86dgaproto xproto_xproto
 
 $(eval $(autotools-package))
diff --git a/package/x11r7/xdriver_xf86-video-r128/xdriver_xf86-video-r128.mk b/package/x11r7/xdriver_xf86-video-r128/xdriver_xf86-video-r128.mk
index 027186c641..d4294adcbc 100644
--- a/package/x11r7/xdriver_xf86-video-r128/xdriver_xf86-video-r128.mk
+++ b/package/x11r7/xdriver_xf86-video-r128/xdriver_xf86-video-r128.mk
@@ -4,9 +4,8 @@
 #
 ################################################################################
 
-XDRIVER_XF86_VIDEO_R128_VERSION = 6.9.2
-XDRIVER_XF86_VIDEO_R128_SOURCE = xf86-video-r128-$(XDRIVER_XF86_VIDEO_R128_VERSION).tar.bz2
-XDRIVER_XF86_VIDEO_R128_SITE = http://xorg.freedesktop.org/releases/individual/driver
+XDRIVER_XF86_VIDEO_R128_VERSION = fcee44e469b22934a04bd3ee19ed101aaa176a54
+XDRIVER_XF86_VIDEO_R128_SITE = git://anongit.freedesktop.org/xorg/driver/xf86-video-r128
 XDRIVER_XF86_VIDEO_R128_LICENSE = MIT
 XDRIVER_XF86_VIDEO_R128_LICENSE_FILES = COPYING
 XDRIVER_XF86_VIDEO_R128_AUTORECONF = YES
diff --git a/package/x11r7/xdriver_xf86-video-savage/xdriver_xf86-video-savage.mk b/package/x11r7/xdriver_xf86-video-savage/xdriver_xf86-video-savage.mk
index 2b2ef55174..676ffedf79 100644
--- a/package/x11r7/xdriver_xf86-video-savage/xdriver_xf86-video-savage.mk
+++ b/package/x11r7/xdriver_xf86-video-savage/xdriver_xf86-video-savage.mk
@@ -4,9 +4,8 @@
 #
 ################################################################################
 
-XDRIVER_XF86_VIDEO_SAVAGE_VERSION = 2.3.7
-XDRIVER_XF86_VIDEO_SAVAGE_SOURCE = xf86-video-savage-$(XDRIVER_XF86_VIDEO_SAVAGE_VERSION).tar.bz2
-XDRIVER_XF86_VIDEO_SAVAGE_SITE = http://xorg.freedesktop.org/releases/individual/driver
+XDRIVER_XF86_VIDEO_SAVAGE_VERSION = d28cd83c7b0b4a943efbe5ddf257c8ee2646ea73
+XDRIVER_XF86_VIDEO_SAVAGE_SITE = git://anongit.freedesktop.org/xorg/driver/xf86-video-savage
 XDRIVER_XF86_VIDEO_SAVAGE_LICENSE = MIT
 XDRIVER_XF86_VIDEO_SAVAGE_LICENSE_FILES = COPYING
 XDRIVER_XF86_VIDEO_SAVAGE_AUTORECONF = YES
diff --git a/package/x11r7/xdriver_xf86-video-siliconmotion/0001-smi_driver.patch b/package/x11r7/xdriver_xf86-video-siliconmotion/0001-smi_driver.patch
deleted file mode 100644
index 493edbb8bc..0000000000
--- a/package/x11r7/xdriver_xf86-video-siliconmotion/0001-smi_driver.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From f19d7e463c30f1364e82e8c9f87b8a8407d53680 Mon Sep 17 00:00:00 2001
-From: Adam Jackson <ajax@redhat.com>
-Date: Thu, 10 Jan 2013 03:59:39 +0000
-Subject: Remove miInitializeBackingStore()
-
-Signed-off-by: Adam Jackson <ajax@redhat.com>
----
-Fetch from:
-http://cgit.freedesktop.org/xorg/driver/xf86-video-siliconmotion/commit/?id=f19d7e463c30f1364e82e8c9f87b8a8407d53680
-
-Signed-off-by: Bernd Kuhls <berndkuhls@hotmail.com>
-
-diff --git a/src/smi_driver.c b/src/smi_driver.c
-index 4794571..134db79 100644
---- a/src/smi_driver.c
-+++ b/src/smi_driver.c
-@@ -1750,8 +1750,6 @@ SMI_ScreenInit(SCREEN_INIT_ARGS_DECL)
- 		   "Done writing mode.  Register dump:\n");
-     SMI_PrintRegs(pScrn);
- 
--    miInitializeBackingStore(pScreen);
--
- #ifdef HAVE_XMODES
-     xf86DiDGAInit(pScreen, (unsigned long)(pSmi->FBBase + pScrn->fbOffset));
- #endif
---
-cgit v0.9.0.2-2-gbebe
diff --git a/package/x11r7/xdriver_xf86-video-siliconmotion/xdriver_xf86-video-siliconmotion.mk b/package/x11r7/xdriver_xf86-video-siliconmotion/xdriver_xf86-video-siliconmotion.mk
index 635e9b880f..ef4fc30c72 100644
--- a/package/x11r7/xdriver_xf86-video-siliconmotion/xdriver_xf86-video-siliconmotion.mk
+++ b/package/x11r7/xdriver_xf86-video-siliconmotion/xdriver_xf86-video-siliconmotion.mk
@@ -4,11 +4,11 @@
 #
 ################################################################################
 
-XDRIVER_XF86_VIDEO_SILICONMOTION_VERSION = 1.7.7
-XDRIVER_XF86_VIDEO_SILICONMOTION_SOURCE = xf86-video-siliconmotion-$(XDRIVER_XF86_VIDEO_SILICONMOTION_VERSION).tar.bz2
-XDRIVER_XF86_VIDEO_SILICONMOTION_SITE = http://xorg.freedesktop.org/releases/individual/driver
+XDRIVER_XF86_VIDEO_SILICONMOTION_VERSION = c31d7f853d7469085f96f1e37923c260884c611c
+XDRIVER_XF86_VIDEO_SILICONMOTION_SITE = git://anongit.freedesktop.org/xorg/driver/xf86-video-siliconmotion
 XDRIVER_XF86_VIDEO_SILICONMOTION_LICENSE = MIT
 XDRIVER_XF86_VIDEO_SILICONMOTION_LICENSE_FILES = COPYING
+XDRIVER_XF86_VIDEO_SILICONMOTION_AUTORECONF = YES
 XDRIVER_XF86_VIDEO_SILICONMOTION_DEPENDENCIES = xserver_xorg-server xproto_fontsproto xproto_randrproto xproto_renderproto xproto_videoproto xproto_xextproto xproto_xproto
 
 $(eval $(autotools-package))
diff --git a/package/x11r7/xdriver_xf86-video-sis/0002-mibstore.patch b/package/x11r7/xdriver_xf86-video-sis/0002-mibstore.patch
deleted file mode 100644
index 436e437e0b..0000000000
--- a/package/x11r7/xdriver_xf86-video-sis/0002-mibstore.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 926d4f655c8491b68a338f50c810f6729686ec9f Mon Sep 17 00:00:00 2001
-From: Adam Jackson <ajax@redhat.com>
-Date: Tue, 25 Sep 2012 12:54:51 +0000
-Subject: Remove mibstore.h
-
-Signed-off-by: Adam Jackson <ajax@redhat.com>
----
-Fetch from:
-http://cgit.freedesktop.org/xorg/driver/xf86-video-sis/commit/?id=926d4f655c8491b68a338f50c810f6729686ec9f
-
-Signed-off-by: Bernd Kuhls <berndkuhls@hotmail.com>
-
-diff --git a/src/sis_driver.c b/src/sis_driver.c
-index 4c9b9cb..46cfefd 100644
---- a/src/sis_driver.c
-+++ b/src/sis_driver.c
-@@ -57,7 +57,6 @@
- #include "fb.h"
- #include "micmap.h"
- #include "mipointer.h"
--#include "mibstore.h"
- #include "edid.h"
- 
- #define SIS_NEED_inSISREG
-@@ -8883,7 +8882,6 @@ SISScreenInit(SCREEN_INIT_ARGS_DECL)
-     }
-     pSiS->SiSFastVidCopyDone = TRUE;
- 
--    miInitializeBackingStore(pScreen);
-     xf86SetBackingStore(pScreen);
-     xf86SetSilkenMouse(pScreen);
- 
---
-cgit v0.9.0.2-2-gbebe
diff --git a/package/x11r7/xdriver_xf86-video-sis/0003-xf86UnMapVidMem.patch b/package/x11r7/xdriver_xf86-video-sis/0003-xf86UnMapVidMem.patch
deleted file mode 100644
index 6082fb9f0c..0000000000
--- a/package/x11r7/xdriver_xf86-video-sis/0003-xf86UnMapVidMem.patch
+++ /dev/null
@@ -1,86 +0,0 @@
-From 339fb3bc032b9f35b07b90480ae82a0fd352e078 Mon Sep 17 00:00:00 2001
-From: Jan Lindemann <jan@jannet.de>
-Date: Thu, 30 Aug 2012 18:09:10 +0000
-Subject: Replace xf86UnMapVidMem with pci_device_unmap_range
-
-Mixing pci_device_map_range with xf86UnMapVidMem doesn't work too well.
-
-X.Org bug#18028 <https://bugs.freedesktop.org/show_bug.cgi?id=18028>
-
-Bug found by Bryan Henderson <bryanh@giraffe-data.com>
-
-Signed-off-by: Julien Cristau <jcristau@debian.org>
----
-Fetch from:
-http://cgit.freedesktop.org/xorg/driver/xf86-video-sis/commit/?id=339fb3bc032b9f35b07b90480ae82a0fd352e078
-
-Signed-off-by: Bernd Kuhls <berndkuhls@hotmail.com>
-
-diff --git a/src/sis_driver.c b/src/sis_driver.c
-index 61e8075..4c9b9cb 100644
---- a/src/sis_driver.c
-+++ b/src/sis_driver.c
-@@ -7344,7 +7344,11 @@ SISUnmapMem(ScrnInfoPtr pScrn)
-         if(pSiSEnt->MapCountIOBase) {
- 	    pSiSEnt->MapCountIOBase--;
- 	    if((pSiSEnt->MapCountIOBase == 0) || (pSiSEnt->forceUnmapIOBase)) {
-+#ifndef XSERVER_LIBPCIACCESS
- 		xf86UnMapVidMem(pScrn->scrnIndex, (pointer)pSiSEnt->IOBase, (pSiS->mmioSize * 1024));
-+#else
-+	        pci_device_unmap_range(pSiS->PciInfo, pSiSEnt->IOBase, (pSiS->mmioSize * 1024));
-+#endif
- 		pSiSEnt->IOBase = NULL;
- 		pSiSEnt->MapCountIOBase = 0;
- 		pSiSEnt->forceUnmapIOBase = FALSE;
-@@ -7355,7 +7359,11 @@ SISUnmapMem(ScrnInfoPtr pScrn)
- 	if(pSiSEnt->MapCountIOBaseDense) {
- 	    pSiSEnt->MapCountIOBaseDense--;
- 	    if((pSiSEnt->MapCountIOBaseDense == 0) || (pSiSEnt->forceUnmapIOBaseDense)) {
-+#ifndef XSERVER_LIBPCIACCESS
- 		xf86UnMapVidMem(pScrn->scrnIndex, (pointer)pSiSEnt->IOBaseDense, (pSiS->mmioSize * 1024));
-+#else
-+		pci_device_unmap_range(pSiS->PciInfo, (pointer)pSiSEnt->IOBaseDense, (pSiS->mmioSize * 1024));
-+#endif
- 		pSiSEnt->IOBaseDense = NULL;
- 		pSiSEnt->MapCountIOBaseDense = 0;
- 		pSiSEnt->forceUnmapIOBaseDense = FALSE;
-@@ -7366,7 +7374,11 @@ SISUnmapMem(ScrnInfoPtr pScrn)
- 	if(pSiSEnt->MapCountFbBase) {
- 	    pSiSEnt->MapCountFbBase--;
- 	    if((pSiSEnt->MapCountFbBase == 0) || (pSiSEnt->forceUnmapFbBase)) {
-+#ifndef XSERVER_LIBPCIACCESS
- 		xf86UnMapVidMem(pScrn->scrnIndex, (pointer)pSiSEnt->RealFbBase, pSiS->FbMapSize);
-+#else
-+		pci_device_unmap_range(pSiS->PciInfo, (pointer)pSiSEnt->RealFbBase, pSiS->FbMapSize);
-+#endif
- 		pSiSEnt->FbBase = pSiSEnt->RealFbBase = NULL;
- 		pSiSEnt->MapCountFbBase = 0;
- 		pSiSEnt->forceUnmapFbBase = FALSE;
-@@ -7376,13 +7388,25 @@ SISUnmapMem(ScrnInfoPtr pScrn)
- 	}
-     } else {
- #endif
-+#ifndef XSERVER_LIBPCIACCESS
- 	xf86UnMapVidMem(pScrn->scrnIndex, (pointer)pSiS->IOBase, (pSiS->mmioSize * 1024));
-+#else
-+	pci_device_unmap_range(pSiS->PciInfo, (pointer)pSiS->IOBase, (pSiS->mmioSize * 1024));
-+#endif
- 	pSiS->IOBase = NULL;
- #ifdef __alpha__
-+#ifndef XSERVER_LIBPCIACCESS
- 	xf86UnMapVidMem(pScrn->scrnIndex, (pointer)pSiS->IOBaseDense, (pSiS->mmioSize * 1024));
-+#else
-+	pci_device_unmap_range(pSiS->PciInfo, (pointer)pSiS->IOBaseDense, (pSiS->mmioSize * 1024));
-+#endif
- 	pSiS->IOBaseDense = NULL;
- #endif
-+#ifndef XSERVER_LIBPCIACCESS
- 	xf86UnMapVidMem(pScrn->scrnIndex, (pointer)pSiS->RealFbBase, pSiS->FbMapSize);
-+#else
-+	pci_device_unmap_range(pSiS->PciInfo, (pointer)pSiS->RealFbBase, pSiS->FbMapSize);
-+#endif
- 	pSiS->FbBase = pSiS->RealFbBase = NULL;
- #ifdef SISDUALHEAD
-     }
---
-cgit v0.9.0.2-2-gbebe
diff --git a/package/x11r7/xdriver_xf86-video-sis/0004-xf86Priv.patch b/package/x11r7/xdriver_xf86-video-sis/0004-xf86Priv.patch
deleted file mode 100644
index bf36b0d225..0000000000
--- a/package/x11r7/xdriver_xf86-video-sis/0004-xf86Priv.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From 7d4402786b758de3e6ce2641e15a39d612d5c518 Mon Sep 17 00:00:00 2001
-From: Adam Jackson <ajax@redhat.com>
-Date: Mon, 15 Oct 2012 23:11:30 +0000
-Subject: Stop including xf86Priv.h
-
-As the name might suggest, it's server-private.
-
-Signed-off-by: Adam Jackson <ajax@redhat.com>
----
-Fetch from:
-http://cgit.freedesktop.org/xorg/driver/xf86-video-sis/commit/?id=7d4402786b758de3e6ce2641e15a39d612d5c518
-
-Signed-off-by: Bernd Kuhls <berndkuhls@hotmail.com>
-
-diff --git a/src/sis.h b/src/sis.h
-index 46fca2a..20e6134 100644
---- a/src/sis.h
-+++ b/src/sis.h
-@@ -75,7 +75,6 @@
- 
- #include "compiler.h"
- #include "xf86Pci.h"
--#include "xf86Priv.h"
- #include "xf86_OSproc.h"
- #if GET_ABI_MAJOR(ABI_VIDEODRV_VERSION) < 6
- #include "xf86Resources.h"
-diff --git a/src/sis_driver.c b/src/sis_driver.c
-index 46cfefd..cefe503 100644
---- a/src/sis_driver.c
-+++ b/src/sis_driver.c
-@@ -93,6 +93,10 @@
- #include "dri.h"
- #endif
- 
-+#ifndef DEFAULT_DPI
-+#define DEFAULT_DPI 96
-+#endif
-+
- /*
-  * LookupWindow was removed with video abi 11.
-  */
---
-cgit v0.9.0.2-2-gbebe
diff --git a/package/x11r7/xdriver_xf86-video-sis/0005-hvdisplay.patch b/package/x11r7/xdriver_xf86-video-sis/0005-hvdisplay.patch
deleted file mode 100644
index 584d3f41b9..0000000000
--- a/package/x11r7/xdriver_xf86-video-sis/0005-hvdisplay.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From 0a4336efaafac4c34d4287b5df586bbb418f7f76 Mon Sep 17 00:00:00 2001
-From: Alan Coopersmith <alan.coopersmith@oracle.com>
-Date: Sat, 26 Oct 2013 21:27:17 +0000
-Subject: Fix HDisplay/VDisplay typos
-
-Found by gcc -Wlogicalops:
-
-sis_driver.c: In function 'SiS_CheckModeCRT2':
-sis_driver.c:13754:5: warning: logical 'and' of mutually exclusive tests is always false [-Wlogical-op]
-sis_driver.c:13755:6: warning: logical 'and' of mutually exclusive tests is always false [-Wlogical-op]
-sis_driver.c:13756:6: warning: logical 'and' of mutually exclusive tests is always false [-Wlogical-op]
-sis_driver.c:13758:5: warning: logical 'and' of mutually exclusive tests is always false [-Wlogical-op]
-sis_driver.c:13759:6: warning: logical 'and' of mutually exclusive tests is always false [-Wlogical-op]
-
-Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
-Reviewed-by: Gaetan Nadon <memsize@videotron.ca>
----
-Fetch from:
-http://cgit.freedesktop.org/xorg/driver/xf86-video-sis/commit/?id=0a4336efaafac4c34d4287b5df586bbb418f7f76
-
-Signed-off-by: Bernd Kuhls <berndkuhls@hotmail.com>
-
-diff --git a/src/sis_driver.c b/src/sis_driver.c
-index cefe503..80b8d51 100644
---- a/src/sis_driver.c
-+++ b/src/sis_driver.c
-@@ -13751,12 +13751,12 @@ SiS_CheckModeCRT2(ScrnInfoPtr pScrn, DisplayModePtr mode, unsigned int VBFlags,
-       if( ((mode->HDisplay <= pSiS->LCDwidth) &&
-            (mode->VDisplay <= pSiS->LCDheight)) ||
- 	  ((pSiS->SiS_Pr->SiS_CustomT == CUT_PANEL848) &&
--	   (((mode->HDisplay == 1360) && (mode->HDisplay == 768)) ||
--	    ((mode->HDisplay == 1024) && (mode->HDisplay == 768)) ||
--	    ((mode->HDisplay ==  800) && (mode->HDisplay == 600)))) ||
-+	   (((mode->HDisplay == 1360) && (mode->VDisplay == 768)) ||
-+	    ((mode->HDisplay == 1024) && (mode->VDisplay == 768)) ||
-+	    ((mode->HDisplay ==  800) && (mode->VDisplay == 600)))) ||
- 	  ((pSiS->SiS_Pr->SiS_CustomT == CUT_PANEL856) &&
--	   (((mode->HDisplay == 1024) && (mode->HDisplay == 768)) ||
--	    ((mode->HDisplay ==  800) && (mode->HDisplay == 600)))) ) {
-+	   (((mode->HDisplay == 1024) && (mode->VDisplay == 768)) ||
-+	    ((mode->HDisplay ==  800) && (mode->VDisplay == 600)))) ) {
- 
- 	 ModeIndex = SiS_GetModeID_LCD(pSiS->VGAEngine, VBFlags, mode->HDisplay, mode->VDisplay, i,
- 				pSiS->FSTN, pSiS->SiS_Pr->SiS_CustomT, pSiS->LCDwidth, pSiS->LCDheight,
---
-cgit v0.9.0.2-2-gbebe
diff --git a/package/x11r7/xdriver_xf86-video-sis/0006-fixwarnings.patch b/package/x11r7/xdriver_xf86-video-sis/0006-fixwarnings.patch
deleted file mode 100644
index 3598c9eccf..0000000000
--- a/package/x11r7/xdriver_xf86-video-sis/0006-fixwarnings.patch
+++ /dev/null
@@ -1,67 +0,0 @@
-From 49796d6a3274adc0250ee07faa6bc63e41c98740 Mon Sep 17 00:00:00 2001
-From: Peter Hutterer <peter.hutterer@who-t.net>
-Date: Thu, 21 Nov 2013 22:21:18 +0000
-Subject: Fix format-security warnings
-
-sis_driver.c: In function 'SISErrorLog':
-sis_driver.c:432:5: error: format not a string literal and no format arguments [-Werror=format-security]
-     xf86DrvMsg(pScrn->scrnIndex, X_ERROR, str);
-     ^
-sis_driver.c:439:5: error: format not a string literal and no format arguments [-Werror=format-security]
-     xf86DrvMsg(pScrn->scrnIndex, X_ERROR, str);
-     ^
-sis_driver.c: In function 'SiSUpdateXineramaScreenInfo':
-sis_driver.c:1917:4: error: format not a string literal and no format arguments [-Werror=format-security]
-    xf86DrvMsg(pScrn1->scrnIndex, X_INFO, rectxine);
-    ^
-sis_driver.c:1924:8: error: format not a string literal and no format arguments [-Werror=format-security]
-        xf86DrvMsg(pScrn1->scrnIndex, X_INFO, rectxine);
-
-Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
-Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com>
----
-Fetch from:
-http://cgit.freedesktop.org/xorg/driver/xf86-video-sis/commit/?id=49796d6a3274adc0250ee07faa6bc63e41c98740
-
-Signed-off-by: Bernd Kuhls <berndkuhls@hotmail.com>
-
-diff --git a/src/sis_driver.c b/src/sis_driver.c
-index 80b8d51..bd9c4e1 100644
---- a/src/sis_driver.c
-+++ b/src/sis_driver.c
-@@ -429,14 +429,14 @@ SISErrorLog(ScrnInfoPtr pScrn, const char *format, ...)
-     static const char *str = "**************************************************\n";
- 
-     va_start(ap, format);
--    xf86DrvMsg(pScrn->scrnIndex, X_ERROR, str);
-+    xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "%s", str);
-     xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
- 	"                      ERROR:\n");
-     xf86VDrvMsgVerb(pScrn->scrnIndex, X_ERROR, 1, format, ap);
-     va_end(ap);
-     xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
- 	"                  END OF MESSAGE\n");
--    xf86DrvMsg(pScrn->scrnIndex, X_ERROR, str);
-+    xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "%s", str);
- }
- 
- static void
-@@ -1914,14 +1914,14 @@ SiSUpdateXineramaScreenInfo(ScrnInfoPtr pScrn1)
-        if(infochanged && !usenonrect) {
- 	  xf86DrvMsg(pScrn1->scrnIndex, X_INFO,
- 			"Virtual screen size does not match maximum display modes...\n");
--	  xf86DrvMsg(pScrn1->scrnIndex, X_INFO, rectxine);
-+	  xf86DrvMsg(pScrn1->scrnIndex, X_INFO, "%s", rectxine);
- 
-        }
-     } else if(infochanged && usenonrect) {
-        usenonrect = FALSE;
-        xf86DrvMsg(pScrn1->scrnIndex, X_INFO,
- 		"Only clone modes available for this virtual screen size...\n");
--       xf86DrvMsg(pScrn1->scrnIndex, X_INFO, rectxine);
-+       xf86DrvMsg(pScrn1->scrnIndex, X_INFO, "%s", rectxine);
-     }
- 
-     if(pSiS->maxCRT1_X1) {		/* Means we have at least one non-clone mode */
---
-cgit v0.9.0.2-2-gbebe
diff --git a/package/x11r7/xdriver_xf86-video-sis/xdriver_xf86-video-sis.mk b/package/x11r7/xdriver_xf86-video-sis/xdriver_xf86-video-sis.mk
index 1937c459d4..ee93526100 100644
--- a/package/x11r7/xdriver_xf86-video-sis/xdriver_xf86-video-sis.mk
+++ b/package/x11r7/xdriver_xf86-video-sis/xdriver_xf86-video-sis.mk
@@ -4,9 +4,8 @@
 #
 ################################################################################
 
-XDRIVER_XF86_VIDEO_SIS_VERSION = 0.10.7
-XDRIVER_XF86_VIDEO_SIS_SOURCE = xf86-video-sis-$(XDRIVER_XF86_VIDEO_SIS_VERSION).tar.bz2
-XDRIVER_XF86_VIDEO_SIS_SITE = http://xorg.freedesktop.org/releases/individual/driver
+XDRIVER_XF86_VIDEO_SIS_VERSION = 0f50f8c3db2b9f1c9d4ecab8ad278e9db6418a92
+XDRIVER_XF86_VIDEO_SIS_SITE = git://anongit.freedesktop.org/xorg/driver/xf86-video-sis
 XDRIVER_XF86_VIDEO_SIS_LICENSE = MIT
 XDRIVER_XF86_VIDEO_SIS_LICENSE_FILES = COPYING
 XDRIVER_XF86_VIDEO_SIS_AUTORECONF = YES
diff --git a/package/x11r7/xdriver_xf86-video-tdfx/0002-mibstore.patch b/package/x11r7/xdriver_xf86-video-tdfx/0002-mibstore.patch
deleted file mode 100644
index f156ea7be3..0000000000
--- a/package/x11r7/xdriver_xf86-video-tdfx/0002-mibstore.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From 10498d2730c651eb7a1890eb9e728269732e9dad Mon Sep 17 00:00:00 2001
-From: Adam Jackson <ajax@redhat.com>
-Date: Tue, 25 Sep 2012 12:54:59 +0000
-Subject: Remove mibstore.h
-
-Signed-off-by: Adam Jackson <ajax@redhat.com>
----
-Fetch from:
-http://cgit.freedesktop.org/xorg/driver/xf86-video-tdfx/commit/?id=10498d2730c651eb7a1890eb9e728269732e9dad
-
-Signed-off-by: Bernd Kuhls <berndkuhls@hotmail.com>
-diff --git a/src/tdfx_driver.c b/src/tdfx_driver.c
-index ddd5431..412da07 100644
---- a/src/tdfx_driver.c
-+++ b/src/tdfx_driver.c
-@@ -62,10 +62,6 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- 
- #include "compiler.h"
- 
--/* Drivers using the mi implementation of backing store need: */
--
--#include "mibstore.h"
--
- /* All drivers using the vgahw module need this */
- /* This driver needs to be modified to not use vgaHW for multihead operation */
- #include "vgaHW.h"
-@@ -2373,7 +2369,6 @@ TDFXScreenInit(SCREEN_INIT_ARGS_DECL) {
-     }
-   }
- 
--  miInitializeBackingStore(pScreen);
-   xf86SetBackingStore(pScreen);
-   xf86SetSilkenMouse(pScreen);
- 
---
-cgit v0.9.0.2-2-gbebe
diff --git a/package/x11r7/xdriver_xf86-video-tdfx/xdriver_xf86-video-tdfx.mk b/package/x11r7/xdriver_xf86-video-tdfx/xdriver_xf86-video-tdfx.mk
index c23aa3177f..745fd2da14 100644
--- a/package/x11r7/xdriver_xf86-video-tdfx/xdriver_xf86-video-tdfx.mk
+++ b/package/x11r7/xdriver_xf86-video-tdfx/xdriver_xf86-video-tdfx.mk
@@ -4,9 +4,8 @@
 #
 ################################################################################
 
-XDRIVER_XF86_VIDEO_TDFX_VERSION = 1.4.5
-XDRIVER_XF86_VIDEO_TDFX_SOURCE = xf86-video-tdfx-$(XDRIVER_XF86_VIDEO_TDFX_VERSION).tar.bz2
-XDRIVER_XF86_VIDEO_TDFX_SITE = http://xorg.freedesktop.org/releases/individual/driver
+XDRIVER_XF86_VIDEO_TDFX_VERSION = 2f71b05e29ae13a0fb6fbc74f4f76c78b6ddb0d7
+XDRIVER_XF86_VIDEO_TDFX_SITE = git://anongit.freedesktop.org/xorg/driver/xf86-video-tdfx
 XDRIVER_XF86_VIDEO_TDFX_LICENSE = MIT
 XDRIVER_XF86_VIDEO_TDFX_LICENSE_FILES = COPYING
 XDRIVER_XF86_VIDEO_TDFX_AUTORECONF = YES
diff --git a/package/x11r7/xdriver_xf86-video-v4l/Config.in b/package/x11r7/xdriver_xf86-video-v4l/Config.in
index 6d85c1781e..27ffd87113 100644
--- a/package/x11r7/xdriver_xf86-video-v4l/Config.in
+++ b/package/x11r7/xdriver_xf86-video-v4l/Config.in
@@ -3,5 +3,6 @@ config BR2_PACKAGE_XDRIVER_XF86_VIDEO_V4L
 	select BR2_PACKAGE_XPROTO_RANDRPROTO
 	select BR2_PACKAGE_XPROTO_VIDEOPROTO
 	select BR2_PACKAGE_XPROTO_XPROTO
+	depends on BROKEN # Fails to build with xorg xserver >= 1.17
 	help
 	  video4linux driver
diff --git a/package/x11r7/xdriver_xf86-video-vmware/xdriver_xf86-video-vmware.mk b/package/x11r7/xdriver_xf86-video-vmware/xdriver_xf86-video-vmware.mk
index e77e5b80a8..ea4dd48215 100644
--- a/package/x11r7/xdriver_xf86-video-vmware/xdriver_xf86-video-vmware.mk
+++ b/package/x11r7/xdriver_xf86-video-vmware/xdriver_xf86-video-vmware.mk
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-XDRIVER_XF86_VIDEO_VMWARE_VERSION = 13.0.2
+XDRIVER_XF86_VIDEO_VMWARE_VERSION = 13.1.0
 XDRIVER_XF86_VIDEO_VMWARE_SOURCE = xf86-video-vmware-$(XDRIVER_XF86_VIDEO_VMWARE_VERSION).tar.bz2
 XDRIVER_XF86_VIDEO_VMWARE_SITE = http://xorg.freedesktop.org/releases/individual/driver
 XDRIVER_XF86_VIDEO_VMWARE_LICENSE = MIT
diff --git a/package/x11r7/xdriver_xf86-video-voodoo/xdriver_xf86-video-voodoo.mk b/package/x11r7/xdriver_xf86-video-voodoo/xdriver_xf86-video-voodoo.mk
index 32efabd66d..e1ef0c6ca3 100644
--- a/package/x11r7/xdriver_xf86-video-voodoo/xdriver_xf86-video-voodoo.mk
+++ b/package/x11r7/xdriver_xf86-video-voodoo/xdriver_xf86-video-voodoo.mk
@@ -4,11 +4,11 @@
 #
 ################################################################################
 
-XDRIVER_XF86_VIDEO_VOODOO_VERSION = 1.2.5
-XDRIVER_XF86_VIDEO_VOODOO_SOURCE = xf86-video-voodoo-$(XDRIVER_XF86_VIDEO_VOODOO_VERSION).tar.bz2
-XDRIVER_XF86_VIDEO_VOODOO_SITE = http://xorg.freedesktop.org/releases/individual/driver
+XDRIVER_XF86_VIDEO_VOODOO_VERSION = 9172ae566a0e85313fc80ab62b4455393eefe593
+XDRIVER_XF86_VIDEO_VOODOO_SITE = git://anongit.freedesktop.org/xorg/driver/xf86-video-voodoo
 XDRIVER_XF86_VIDEO_VOODOO_LICENSE = MIT
 XDRIVER_XF86_VIDEO_VOODOO_LICENSE_FILES = COPYING
+XDRIVER_XF86_VIDEO_VOODOO_AUTORECONF = YES
 XDRIVER_XF86_VIDEO_VOODOO_DEPENDENCIES = xserver_xorg-server xproto_fontsproto xproto_randrproto xproto_renderproto xproto_xextproto xproto_xf86dgaproto xproto_xproto
 
 $(eval $(autotools-package))
diff --git a/package/x11r7/xkeyboard-config/xkeyboard-config.mk b/package/x11r7/xkeyboard-config/xkeyboard-config.mk
index 4e3ab92fb6..96a769e316 100644
--- a/package/x11r7/xkeyboard-config/xkeyboard-config.mk
+++ b/package/x11r7/xkeyboard-config/xkeyboard-config.mk
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-XKEYBOARD_CONFIG_VERSION = 2.10.1
+XKEYBOARD_CONFIG_VERSION = 2.14
 XKEYBOARD_CONFIG_SOURCE = xkeyboard-config-$(XKEYBOARD_CONFIG_VERSION).tar.bz2
 XKEYBOARD_CONFIG_SITE = http://www.x.org/releases/individual/data/xkeyboard-config
 XKEYBOARD_CONFIG_LICENSE = MIT
diff --git a/package/x11r7/xlib_libxshmfence/xlib_libxshmfence.mk b/package/x11r7/xlib_libxshmfence/xlib_libxshmfence.mk
index f0fb90fed9..3a2f32623a 100644
--- a/package/x11r7/xlib_libxshmfence/xlib_libxshmfence.mk
+++ b/package/x11r7/xlib_libxshmfence/xlib_libxshmfence.mk
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-XLIB_LIBXSHMFENCE_VERSION = 1.1
+XLIB_LIBXSHMFENCE_VERSION = 1.2
 XLIB_LIBXSHMFENCE_SOURCE = libxshmfence-$(XLIB_LIBXSHMFENCE_VERSION).tar.bz2
 XLIB_LIBXSHMFENCE_SITE = http://xorg.freedesktop.org/releases/individual/lib
 XLIB_LIBXSHMFENCE_LICENSE = MIT
diff --git a/package/x11r7/xlib_xtrans/xlib_xtrans.hash b/package/x11r7/xlib_xtrans/xlib_xtrans.hash
new file mode 100644
index 0000000000..26c69a0c83
--- /dev/null
+++ b/package/x11r7/xlib_xtrans/xlib_xtrans.hash
@@ -0,0 +1,3 @@
+# From http://lists.x.org/archives/xorg-announce/2014-September/002481.html
+sha1	2d3ae1839d841f568bc481c6116af7d2a9f9ba59				xtrans-1.3.5.tar.bz2
+sha256	adbd3b36932ce4c062cd10f57d78a156ba98d618bdb6f50664da327502bc8301	xtrans-1.3.5.tar.bz2
diff --git a/package/x11r7/xlib_xtrans/xlib_xtrans.mk b/package/x11r7/xlib_xtrans/xlib_xtrans.mk
index bc84dfb512..40f613cc35 100644
--- a/package/x11r7/xlib_xtrans/xlib_xtrans.mk
+++ b/package/x11r7/xlib_xtrans/xlib_xtrans.mk
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-XLIB_XTRANS_VERSION = 1.3.4
+XLIB_XTRANS_VERSION = 1.3.5
 XLIB_XTRANS_SOURCE = xtrans-$(XLIB_XTRANS_VERSION).tar.bz2
 XLIB_XTRANS_SITE = http://xorg.freedesktop.org/releases/individual/lib
 XLIB_XTRANS_LICENSE = MIT
diff --git a/package/x11r7/xproto_xproto/xproto_xproto.mk b/package/x11r7/xproto_xproto/xproto_xproto.mk
index 13e6eec8ae..99d63f51bb 100644
--- a/package/x11r7/xproto_xproto/xproto_xproto.mk
+++ b/package/x11r7/xproto_xproto/xproto_xproto.mk
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-XPROTO_XPROTO_VERSION = 7.0.26
+XPROTO_XPROTO_VERSION = 7.0.27
 XPROTO_XPROTO_SOURCE = xproto-$(XPROTO_XPROTO_VERSION).tar.bz2
 XPROTO_XPROTO_SITE = http://xorg.freedesktop.org/releases/individual/proto
 XPROTO_XPROTO_LICENSE = MIT
diff --git a/package/x11r7/xserver_xorg-server/0001-os-log-adjust-gcc-version-conditions-for-pragma.patch b/package/x11r7/xserver_xorg-server/0001-os-log-adjust-gcc-version-conditions-for-pragma.patch
deleted file mode 100644
index 052bf4b085..0000000000
--- a/package/x11r7/xserver_xorg-server/0001-os-log-adjust-gcc-version-conditions-for-pragma.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-From 67c2a89004f867151d0ad6acc5e10dee76be454f Mon Sep 17 00:00:00 2001
-From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-Date: Tue, 2 Sep 2014 21:57:30 +0200
-Subject: [PATCH] os/log: adjust gcc version conditions for #pragma
-
-In commit e67f2d7e0f9189beb2907fa06cff5ecc7f35f922 ("gcc 4.2.1 doesn't
-support #pragma GCC diagnostic ignored"), some compile time
-conditionals were added around the #pragma usage. Those conditionals
-ensure that the #pragma are not used on gcc <= 4.2.
-
-However, the usage of #pragma diagnostic inside functions was only
-added in gcc 4.6, and a build failure is therefore experienced with
-gcc 4.5:
-
-log.c: In function 'LogInit':
-log.c:199:9: error: #pragma GCC diagnostic not allowed inside functions
-log.c:201:9: warning: format not a string literal, argument types not checked
-log.c:212:9: error: #pragma GCC diagnostic not allowed inside functions
-log.c:214:17: warning: format not a string literal, argument types not checked
-
-$ ./host/usr/bin/powerpc-linux-gnu-gcc -v
-[...]
-gcc version 4.5.2 (Sourcery G++ Lite 2011.03-38)
-
-This patch therefore adjusts the compile time conditionals to make
-sure the #pragma is not used on gcc <= 4.5, and only used on gcc >=
-4.6.
-
-Submitted upstream:
-
-  http://lists.x.org/archives/xorg-devel/2014-September/043716.html
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
----
- os/log.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/os/log.c b/os/log.c
-index 2a721b9..629021e 100644
---- a/os/log.c
-+++ b/os/log.c
-@@ -195,7 +195,7 @@ LogInit(const char *fname, const char *backup)
-     char *logFileName = NULL;
- 
-     if (fname && *fname) {
--#if __GNUC__ > 4 || __GNUC__ == 4 && __GNUC_MINOR__ > 2
-+#if __GNUC__ > 4 || __GNUC__ == 4 && __GNUC_MINOR__ > 5
- #pragma GCC diagnostic ignored "-Wformat-nonliteral"
- #endif
-         if (asprintf(&logFileName, fname, display) == -1)
-@@ -208,7 +208,7 @@ LogInit(const char *fname, const char *backup)
-                 char *suffix;
-                 char *oldLog;
- 
--#if __GNUC__ > 4 || __GNUC__ == 4 && __GNUC_MINOR__ > 2
-+#if __GNUC__ > 4 || __GNUC__ == 4 && __GNUC_MINOR__ > 5
- #pragma GCC diagnostic ignored "-Wformat-nonliteral"
- #endif
-                 if ((asprintf(&suffix, backup, display) == -1) ||
--- 
-2.0.0
-
diff --git a/package/x11r7/xserver_xorg-server/0002-glyphpadbytes.patch b/package/x11r7/xserver_xorg-server/0002-glyphpadbytes.patch
deleted file mode 100644
index 3eb75f05c1..0000000000
--- a/package/x11r7/xserver_xorg-server/0002-glyphpadbytes.patch
+++ /dev/null
@@ -1,232 +0,0 @@
-xserver_xorg-server: Fix compile error in microblaze
-
-Ported from upstream commit
-http://cgit.freedesktop.org/xorg/xserver/commit/include/servermd.h?id=17c3347f14822b9f7da4253c71f6ed51be2b38d1
-
-Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
-
-
-From 17c3347f14822b9f7da4253c71f6ed51be2b38d1 Mon Sep 17 00:00:00 2001
-From: Adam Jackson <ajax@redhat.com>
-Date: Mon, 21 Jul 2014 10:06:50 -0400
-Subject: dix: Default GLYPHPADBYTES to 4
-
-This effectively no longer varied across architectures anyway.
-
-Signed-off-by: Adam Jackson <ajax@redhat.com>
-Reviewed-by: Daniel Stone <daniels@collabora.com>
-Signed-off-by: Keith Packard <keithp@keithp.com>
-
-diff -uNr xorg-server-1.16.0.org/include/servermd.h xorg-server-1.16.0/include/servermd.h
---- xorg-server-1.16.0.org/include/servermd.h	2014-06-23 22:57:42.000000000 +0200
-+++ xorg-server-1.16.0/include/servermd.h	2014-09-07 11:21:44.165508641 +0200
-@@ -52,26 +52,10 @@
-  * really be simplified even further.
-  */
- 
--/*
-- * Machine dependent values:
-- * GLYPHPADBYTES should be chosen with consideration for the space-time
-- * trade-off.  Padding to 0 bytes means that there is no wasted space
-- * in the font bitmaps (both on disk and in memory), but that access of
-- * the bitmaps will cause odd-address memory references.  Padding to
-- * 2 bytes would ensure even address memory references and would
-- * be suitable for a 68010-class machine, but at the expense of wasted
-- * space in the font bitmaps.  Padding to 4 bytes would be good
-- * for real 32 bit machines, etc.  Be sure that you tell the font
-- * compiler what kind of padding you want because its defines are
-- * kept separate from this.  See server/include/font.h for how
-- * GLYPHPADBYTES is used.
-- */
--
- #ifdef __avr32__
- 
- #define IMAGE_BYTE_ORDER        MSBFirst
- #define BITMAP_BIT_ORDER        MSBFirst
--#define GLYPHPADBYTES           4
- 
- #endif                          /* __avr32__ */
- 
-@@ -79,7 +63,6 @@
- 
- #define IMAGE_BYTE_ORDER        LSBFirst
- #define BITMAP_BIT_ORDER        LSBFirst
--#define GLYPHPADBYTES           4
- 
- #endif                          /* __arm32__ */
- 
-@@ -97,7 +80,6 @@
- #define BITMAP_SCANLINE_UNIT	8
- #endif
- 
--#define GLYPHPADBYTES		4
- #define GETLEFTBITS_ALIGNMENT	1
- #define LARGE_INSTRUCTION_CACHE
- #define AVOID_MEMORY_READ
-@@ -108,8 +90,6 @@
- 
- #define IMAGE_BYTE_ORDER	MSBFirst
- #define BITMAP_BIT_ORDER	MSBFirst
--#define GLYPHPADBYTES		4       /* to make fb work */
--                                        /* byte boundries */
- #endif                          /* hpux || __hppa__ */
- 
- #if defined(__powerpc__) || defined(__ppc__) || defined(__ppc64__)
-@@ -121,7 +101,6 @@
- #define IMAGE_BYTE_ORDER      MSBFirst
- #define BITMAP_BIT_ORDER      MSBFirst
- #endif
--#define GLYPHPADBYTES           4
- 
- #endif                          /* PowerPC */
- 
-@@ -130,11 +109,9 @@
- #if defined(__BIG_ENDIAN__)
- #define IMAGE_BYTE_ORDER	MSBFirst
- #define BITMAP_BIT_ORDER	MSBFirst
--#define GLYPHPADBYTES		4
- #else
- #define IMAGE_BYTE_ORDER	LSBFirst
- #define BITMAP_BIT_ORDER	LSBFirst
--#define GLYPHPADBYTES		4
- #endif
- 
- #endif                          /* SuperH */
-@@ -144,11 +121,9 @@
- #if defined(__BIG_ENDIAN__)
- #define IMAGE_BYTE_ORDER      MSBFirst
- #define BITMAP_BIT_ORDER      MSBFirst
--#define GLYPHPADBYTES         4
- #else
- #define IMAGE_BYTE_ORDER      LSBFirst
- #define BITMAP_BIT_ORDER      LSBFirst
--#define GLYPHPADBYTES         4
- #endif
- 
- #endif                          /* __m32r__ */
-@@ -170,9 +145,6 @@
- #define IMAGE_BYTE_ORDER	MSBFirst        /* Values for the SUN only */
- #define BITMAP_BIT_ORDER	MSBFirst
- #endif
--
--#define	GLYPHPADBYTES		4
--
- #endif                          /* sun && !(i386 && SVR4) */
- 
- #if defined(ibm032) || defined (ibm)
-@@ -197,11 +169,9 @@
- #if defined(MIPSEL) || defined(__MIPSEL__)
- #define IMAGE_BYTE_ORDER	LSBFirst        /* Values for the PMAX only */
- #define BITMAP_BIT_ORDER	LSBFirst
--#define GLYPHPADBYTES		4
- #else
- #define IMAGE_BYTE_ORDER	MSBFirst        /* Values for the MIPS only */
- #define BITMAP_BIT_ORDER	MSBFirst
--#define GLYPHPADBYTES		4
- #endif
- 
- #endif                          /* mips */
-@@ -209,15 +179,12 @@
- #if defined(__alpha) || defined(__alpha__)
- #define IMAGE_BYTE_ORDER	LSBFirst        /* Values for the Alpha only */
- #define BITMAP_BIT_ORDER       LSBFirst
--#define GLYPHPADBYTES		4
--
- #endif                          /* alpha */
- 
- #if defined (linux) && defined (__s390__)
- 
- #define IMAGE_BYTE_ORDER      	MSBFirst
- #define BITMAP_BIT_ORDER      	MSBFirst
--#define GLYPHPADBYTES         	4
- 
- #define BITMAP_SCANLINE_UNIT	8
- #define FAST_UNALIGNED_READ
-@@ -228,7 +195,6 @@
- 
- #define IMAGE_BYTE_ORDER       MSBFirst
- #define BITMAP_BIT_ORDER       MSBFirst
--#define GLYPHPADBYTES          4
- 
- #define BITMAP_SCANLINE_UNIT	8
- #define FAST_UNALIGNED_READ
-@@ -239,15 +205,12 @@
- 
- #define IMAGE_BYTE_ORDER	LSBFirst
- #define BITMAP_BIT_ORDER       LSBFirst
--#define GLYPHPADBYTES		4
- 
- #endif                          /* ia64 */
- 
- #if defined(__amd64__) || defined(amd64) || defined(__amd64)
- #define IMAGE_BYTE_ORDER	LSBFirst
- #define BITMAP_BIT_ORDER       LSBFirst
--#define GLYPHPADBYTES		4
--/* ???? */
- #endif                          /* AMD64 */
- 
- #if	defined(SVR4) && (defined(__i386__) || defined(__i386) ) ||	\
-@@ -263,17 +226,12 @@
- #define BITMAP_BIT_ORDER      LSBFirst
- #endif
- 
--#ifndef GLYPHPADBYTES
--#define GLYPHPADBYTES           4
--#endif
--
- #endif                          /* SVR4 / BSD / i386 */
- 
- #if defined (linux) && defined (__mc68000__)
- 
- #define IMAGE_BYTE_ORDER       MSBFirst
- #define BITMAP_BIT_ORDER       MSBFirst
--#define GLYPHPADBYTES          4
- 
- #endif                          /* linux/m68k */
- 
-@@ -281,14 +239,12 @@
- #if defined(linux) && defined(__arm__)
- #define IMAGE_BYTE_ORDER	LSBFirst
- #define BITMAP_BIT_ORDER	LSBFirst
--#define GLYPHPADBYTES		4
- #endif
- 
- /* linux on IBM S/390 */
- #if defined (linux) && defined (__s390__)
- #define IMAGE_BYTE_ORDER	MSBFirst
- #define BITMAP_BIT_ORDER	MSBFirst
--#define GLYPHPADBYTES		4
- #endif                          /* linux/s390 */
- 
- #ifdef __aarch64__
-@@ -301,7 +257,6 @@
- #define IMAGE_BYTE_ORDER        MSBFirst
- #define BITMAP_BIT_ORDER        MSBFirst
- #endif
--#define GLYPHPADBYTES           4
- 
- #endif                          /* __aarch64__ */
- 
-@@ -314,7 +269,6 @@
- #define IMAGE_BYTE_ORDER	LSBFirst
- #define BITMAP_BIT_ORDER	LSBFirst
- #endif
--#define GLYPHPADBYTES		4
- 
- #endif                          /* ARC */
- 
-@@ -328,10 +282,13 @@
- #define IMAGE_BYTE_ORDER        MSBFirst
- #define BITMAP_BIT_ORDER        MSBFirst
- #endif
--#define GLYPHPADBYTES           4
- 
- #endif                          /* __xtensa__ */
- 
-+#ifndef GLYPHPADBYTES
-+#define GLYPHPADBYTES           4
-+#endif
-+
- /* size of buffer to use with GetImage, measured in bytes. There's obviously
-  * a trade-off between the amount of heap used and the number of times the
-  * ddx routine has to be called.
diff --git a/package/x11r7/xserver_xorg-server/0003-image-byte-order.patch b/package/x11r7/xserver_xorg-server/0003-image-byte-order.patch
deleted file mode 100644
index b99b669b79..0000000000
--- a/package/x11r7/xserver_xorg-server/0003-image-byte-order.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-xserver_xorg-server: Fix compile error for microblaze
-
-Fixes
-mipushpxl.c: In function 'miPushPixels':
-mipushpxl.c:110:38: error: 'IMAGE_BYTE_ORDER' undeclared (first use in this function)
-     if (screenInfo.bitmapBitOrder == IMAGE_BYTE_ORDER)
-
-Patch submitted upstream: https://bugs.freedesktop.org/show_bug.cgi?id=83582
-
-Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
-
-diff -uNr xorg-server-1.16.0.glyph/include/servermd.h xorg-server-1.16.0/include/servermd.h
---- xorg-server-1.16.0.glyph/include/servermd.h	2014-09-07 11:32:34.297332811 +0200
-+++ xorg-server-1.16.0/include/servermd.h	2014-09-07 11:31:33.470099995 +0200
-@@ -176,6 +176,18 @@
- 
- #endif                          /* mips */
- 
-+#if defined(__microblaze__) || defined(microblaze)
-+
-+#ifdef __BIG_ENDIAN__
-+#define IMAGE_BYTE_ORDER	MSBFirst
-+#define BITMAP_BIT_ORDER	MSBFirst
-+#else
-+#define IMAGE_BYTE_ORDER	LSBFirst
-+#define BITMAP_BIT_ORDER	LSBFirst
-+#endif
-+
-+#endif
-+
- #if defined(__alpha) || defined(__alpha__)
- #define IMAGE_BYTE_ORDER	LSBFirst        /* Values for the Alpha only */
- #define BITMAP_BIT_ORDER       LSBFirst
diff --git a/package/x11r7/xserver_xorg-server/Config.in b/package/x11r7/xserver_xorg-server/Config.in
index 40e3d84bb8..db8a54d81e 100644
--- a/package/x11r7/xserver_xorg-server/Config.in
+++ b/package/x11r7/xserver_xorg-server/Config.in
@@ -1,6 +1,5 @@
 config BR2_PACKAGE_XSERVER_XORG_SERVER
 	bool "xorg-server"
-	select BR2_PACKAGE_LIBDRM if BR2_PACKAGE_XSERVER_XORG_SERVER_MODULAR
 	select BR2_PACKAGE_LIBPCIACCESS if BR2_PACKAGE_XSERVER_XORG_SERVER_MODULAR
 	# We need a SHA1 implementation. If either openssl or
 	# libgcrypt are already part of the build, we'll use one of
@@ -49,16 +48,12 @@ config BR2_PACKAGE_XSERVER_XORG_SERVER
 	select BR2_PACKAGE_XPROTO_XPROTO
 	select BR2_PACKAGE_XUTIL_UTIL_MACROS
 	select BR2_PACKAGE_XKEYBOARD_CONFIG
-	depends on !BR2_avr32
 	depends on BR2_USE_MMU # fork()
 	help
 	  X.Org X server
 
 	  http://xorg.freedesktop.org
 
-comment "xorg-xserver is BROKEN on AVR32"
-	depends on BR2_avr32 && BR2_USE_MMU
-
 if BR2_PACKAGE_XSERVER_XORG_SERVER
 
 choice
diff --git a/package/x11r7/xserver_xorg-server/xserver_xorg-server.hash b/package/x11r7/xserver_xorg-server/xserver_xorg-server.hash
index 5a8f9c319c..2c3cc5b92b 100644
--- a/package/x11r7/xserver_xorg-server/xserver_xorg-server.hash
+++ b/package/x11r7/xserver_xorg-server/xserver_xorg-server.hash
@@ -1,3 +1,3 @@
-# From http://lists.x.org/archives/xorg-announce/2015-February/002532.html
-sha1	b2ccace1316fb94a23514a760227c156bd6116cd  				xorg-server-1.16.4.tar.bz2
-sha256	abb6e1cc9213a9915a121f48576ff6739a0b8cdb3d32796f9a7743c9a6efc871	xorg-server-1.16.4.tar.bz2
+# From http://lists.x.org/archives/xorg-announce/2015-February/002530.html
+sha1	490118810a54e91c8814245c99d6285caf4985dd				xorg-server-1.17.1.tar.bz2
+sha256	2bf8e9f6f0a710dec1d2472467bff1f4e247cb6dcd76eb469aafdc8a2d7db2ab	xorg-server-1.17.1.tar.bz2
diff --git a/package/x11r7/xserver_xorg-server/xserver_xorg-server.mk b/package/x11r7/xserver_xorg-server/xserver_xorg-server.mk
index 35bdd4407f..bb5381c1c6 100644
--- a/package/x11r7/xserver_xorg-server/xserver_xorg-server.mk
+++ b/package/x11r7/xserver_xorg-server/xserver_xorg-server.mk
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-XSERVER_XORG_SERVER_VERSION = 1.16.4
+XSERVER_XORG_SERVER_VERSION = 1.17.1
 XSERVER_XORG_SERVER_SOURCE = xorg-server-$(XSERVER_XORG_SERVER_VERSION).tar.bz2
 XSERVER_XORG_SERVER_SITE = http://xorg.freedesktop.org/releases/individual/xserver
 XSERVER_XORG_SERVER_LICENSE = MIT
@@ -66,7 +66,7 @@ XSERVER_XORG_SERVER_CONF_OPTS = \
 
 ifeq ($(BR2_PACKAGE_XSERVER_XORG_SERVER_MODULAR),y)
 XSERVER_XORG_SERVER_CONF_OPTS += --enable-xorg
-XSERVER_XORG_SERVER_DEPENDENCIES += libpciaccess libdrm
+XSERVER_XORG_SERVER_DEPENDENCIES += libpciaccess
 else
 XSERVER_XORG_SERVER_CONF_OPTS += --disable-xorg
 endif
@@ -106,10 +106,10 @@ XSERVER_XORG_SERVER_CONF_OPTS += --disable-kdrive --disable-xfbdev
 endif
 
 ifeq ($(BR2_PACKAGE_MESA3D_DRI_DRIVER),y)
-XSERVER_XORG_SERVER_CONF_OPTS += --enable-dri --enable-glx
-XSERVER_XORG_SERVER_DEPENDENCIES += mesa3d xproto_xf86driproto
+XSERVER_XORG_SERVER_CONF_OPTS += --enable-dri --enable-libdrm --enable-glx
+XSERVER_XORG_SERVER_DEPENDENCIES += libdrm mesa3d xproto_xf86driproto
 else
-XSERVER_XORG_SERVER_CONF_OPTS += --disable-dri --disable-glx
+XSERVER_XORG_SERVER_CONF_OPTS += --disable-dri --disable-libdrm --disable-glx
 endif
 
 ifeq ($(BR2_PACKAGE_XSERVER_XORG_SERVER_AIGLX),y)
@@ -178,6 +178,10 @@ ifeq ($(BR2_PACKAGE_XPROTO_DRI3PROTO),y)
 XSERVER_XORG_SERVER_DEPENDENCIES += xlib_libxshmfence xproto_dri3proto
 XSERVER_XORG_SERVER_CONF_OPTS += --enable-dri3
 endif
+ifeq ($(BR2_PACKAGE_MESA3D_OPENGL_EGL),y)
+XSERVER_XORG_SERVER_DEPENDENCIES += libepoxy
+XSERVER_XORG_SERVER_CONF_OPTS += --enable-glamor
+endif
 else
 XSERVER_XORG_SERVER_CONF_OPTS += --disable-dri2 --disable-dri3
 endif
diff --git a/package/xterm/xterm.hash b/package/xterm/xterm.hash
new file mode 100644
index 0000000000..d36d1c436f
--- /dev/null
+++ b/package/xterm/xterm.hash
@@ -0,0 +1,2 @@
+# Locally calculated after checking pgp signature
+sha256	1dbf1e93796c1b71b22b84e82eb58bcf20a14a7f365158819f3b4dbb29fe93f0	xterm-314.tgz
diff --git a/package/xterm/xterm.mk b/package/xterm/xterm.mk
index 3f5b978cec..56f692dd21 100644
--- a/package/xterm/xterm.mk
+++ b/package/xterm/xterm.mk
@@ -4,11 +4,10 @@
 #
 ################################################################################
 
-XTERM_VERSION = 306
+XTERM_VERSION = 314
 XTERM_SOURCE = xterm-$(XTERM_VERSION).tgz
 XTERM_SITE = ftp://invisible-island.net/xterm
 XTERM_DEPENDENCIES = ncurses xlib_libXaw
-XTERM_INSTALL_TARGET_OPTS = DESTDIR=$(TARGET_DIR) install
 XTERM_LICENSE = MIT
 XTERM_LICENSE_FILES = version.c
 XTERM_CONF_OPTS = --enable-256-color
diff --git a/package/xz/xz.hash b/package/xz/xz.hash
index 9a5a9ff9ac..da523d9498 100644
--- a/package/xz/xz.hash
+++ b/package/xz/xz.hash
@@ -1,2 +1,2 @@
 # Locally calculated after checking pgp signature
-sha256  f7357d7455a1670229b3cca021da71dd5d13b789db62743c20624bdffc9cc4a5  xz-5.2.0.tar.bz2
+sha256  679148f497e0bff2c1adce42dee5a23f746e71321c33ebb0f641a302e30c2a80  xz-5.2.1.tar.bz2
diff --git a/package/xz/xz.mk b/package/xz/xz.mk
index 413c0205e2..503275c845 100644
--- a/package/xz/xz.mk
+++ b/package/xz/xz.mk
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-XZ_VERSION = 5.2.0
+XZ_VERSION = 5.2.1
 XZ_SOURCE = xz-$(XZ_VERSION).tar.bz2
 XZ_SITE = http://tukaani.org/xz
 XZ_INSTALL_STAGING = YES
diff --git a/package/zeromq/Config.in b/package/zeromq/Config.in
index 778a503e02..a97ba8d319 100644
--- a/package/zeromq/Config.in
+++ b/package/zeromq/Config.in
@@ -31,7 +31,6 @@ if BR2_PACKAGE_ZEROMQ
 
 config BR2_PACKAGE_ZEROMQ_PGM
 	bool "PGM/EPGM support"
-	depends on !BR2_avr32 # openpgm
 	depends on !BR2_TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX_2013R1 # openpgm
 	depends on !BR2_TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX_2012R2 # openpgm
 	select BR2_PACKAGE_OPENPGM
diff --git a/package/zmqpp/Config.in b/package/zmqpp/Config.in
index 2ccaf7e2db..88973dbf96 100644
--- a/package/zmqpp/Config.in
+++ b/package/zmqpp/Config.in
@@ -1,6 +1,5 @@
 config BR2_PACKAGE_ZMQPP
 	bool "zmqpp"
-	depends on !BR2_avr32 # compiler needs c++0x support
 	depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_POWERPC201103 # c++0x support
 	depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_POWERPC201009 # c++0x support
 	depends on BR2_INSTALL_LIBSTDCPP
@@ -18,7 +17,6 @@ config BR2_PACKAGE_ZMQPP
 	  http://github.com/benjamg/zmqpp
 
 comment "zmqpp needs a toolchain w/ C++, IPv6, largefile, wchar, threads"
-	depends on !BR2_avr32
 	depends on !(BR2_INSTALL_LIBSTDCPP && BR2_INET_IPV6 && BR2_LARGEFILE \
 		&& BR2_USE_WCHAR && BR2_TOOLCHAIN_HAS_THREADS)
 
diff --git a/system/Config.in b/system/Config.in
index 95e10ab8e9..4d1c3d2faf 100644
--- a/system/Config.in
+++ b/system/Config.in
@@ -124,7 +124,6 @@ config BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_MDEV
 
 config BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV
 	bool "Dynamic using eudev"
-	depends on !BR2_avr32 # eudev
 	depends on BR2_LARGEFILE
 	depends on BR2_USE_WCHAR
 	depends on !BR2_STATIC_LIBS
@@ -133,7 +132,6 @@ config BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV
 	select BR2_PACKAGE_EUDEV
 
 comment "eudev needs a toolchain w/ largefile, wchar, dynamic library, headers >= 3.9"
-	depends on !BR2_avr32 # eudev
 	depends on BR2_USE_MMU
 	depends on !BR2_LARGEFILE || !BR2_USE_WCHAR || BR2_STATIC_LIBS \
 		|| !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_9
@@ -371,6 +369,7 @@ config BR2_TARGET_TZ_ZONELIST
 
 config BR2_TARGET_LOCALTIME
 	string "default local time"
+	default "Etc/UTC"
 	help
 	  The time zone to install as the default local time, expressed as a
 	  tzdata location, such as:
diff --git a/toolchain/Config.in b/toolchain/Config.in
index 54b5d173a7..b039ee2ff5 100644
--- a/toolchain/Config.in
+++ b/toolchain/Config.in
@@ -43,7 +43,6 @@ choice
 
 config BR2_TOOLCHAIN_BUILDROOT
 	bool "Buildroot toolchain"
-	depends on !BR2_nios2
 	select BR2_TOOLCHAIN_HAS_SHADOW_PASSWORDS
 
 config BR2_TOOLCHAIN_EXTERNAL
diff --git a/toolchain/toolchain-buildroot/Config.in b/toolchain/toolchain-buildroot/Config.in
index 2955b2ed14..1b9f3a3aca 100644
--- a/toolchain/toolchain-buildroot/Config.in
+++ b/toolchain/toolchain-buildroot/Config.in
@@ -29,7 +29,7 @@ config BR2_TOOLCHAIN_BUILDROOT_UCLIBC
 	bool "uClibc"
 	select BR2_TOOLCHAIN_USES_UCLIBC
 	depends on BR2_arcle   || BR2_arceb  || BR2_arm    || BR2_armeb    || \
-		   BR2_avr32   || BR2_bfin   || BR2_i386   || BR2_m68k     || \
+		   BR2_bfin    || BR2_i386   || BR2_m68k   || \
 		   BR2_mips    || BR2_mipsel || BR2_mips64 || BR2_mips64el || \
 		   BR2_powerpc || BR2_sh     || BR2_sparc  || BR2_xtensa   || \
 		   BR2_x86_64
@@ -64,7 +64,7 @@ config BR2_TOOLCHAIN_BUILDROOT_GLIBC
 		   BR2_mips64      || BR2_mips64el || BR2_powerpc || \
 		   BR2_powerpc64   || BR2_powerpc64le || BR2_sh   || \
 		   BR2_sh64        || BR2_sparc    || BR2_x86_64  || \
-		   BR2_microblaze
+		   BR2_microblaze  || BR2_nios2
 	depends on BR2_USE_MMU
 	depends on !BR2_STATIC_LIBS
 	depends on !BR2_powerpc_SPE
diff --git a/toolchain/toolchain-common.in b/toolchain/toolchain-common.in
index 2ee2019ac1..304afe452c 100644
--- a/toolchain/toolchain-common.in
+++ b/toolchain/toolchain-common.in
@@ -221,10 +221,15 @@ config BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_18
 	bool
 	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_17
 
+config BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_19
+	bool
+	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_18
+
 # This order guarantees that the highest version is set, as kconfig
 # stops affecting a value on the first matching default.
 config BR2_TOOLCHAIN_HEADERS_AT_LEAST
 	string
+	default "3.19" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_19
 	default "3.18" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_18
 	default "3.17" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_17
 	default "3.16" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_16
diff --git a/toolchain/toolchain-external/Config.in b/toolchain/toolchain-external/Config.in
index 50daa66ba4..6ab483aff5 100644
--- a/toolchain/toolchain-external/Config.in
+++ b/toolchain/toolchain-external/Config.in
@@ -1038,6 +1038,10 @@ choice
 	    m = ( LINUX_VERSION_CODE >> 8  ) & 0xFF
 	    p = ( LINUX_VERSION_CODE >> 0  ) & 0xFF
 
+config BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_19
+	bool "3.19.x"
+	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_19
+
 config BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_18
 	bool "3.18.x"
 	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_18
diff --git a/toolchain/toolchain-external/toolchain-external.mk b/toolchain/toolchain-external/toolchain-external.mk
index 1a9813e755..ab73f9a073 100644
--- a/toolchain/toolchain-external/toolchain-external.mk
+++ b/toolchain/toolchain-external/toolchain-external.mk
@@ -98,8 +98,8 @@ LIB_EXTERNAL_LIBS += $(call qstrip,$(BR2_TOOLCHAIN_EXTRA_EXTERNAL_LIBS))
 # mangling the path to find the base directory of the sysroot.
 #
 # Note that we do not use the -print-sysroot option, because it is
-# only available since gcc 4.4.x, and we still support 4.2.x (for
-# AVR32) and 4.3.x.
+# only available since gcc 4.4.x, and we only recently dropped support
+# for 4.2.x and 4.3.x.
 #
 # When doing this, we don't pass any option to gcc that could select a
 # multilib variant (such as -march) as we want the "main" sysroot,