From 2d0a1c8ea07d1f9d90ba42d4af0d625b8bb07ccf Mon Sep 17 00:00:00 2001
From: Waldemar Brodkorb <wbx@openadk.org>
Date: Fri, 28 Jun 2013 18:46:28 +0200
Subject: need BLOCK for filesystems

---
 target/arm/kernel.config         | 11 +----------
 target/linux/config/Config.in.fs |  9 +++++++++
 2 files changed, 10 insertions(+), 10 deletions(-)

diff --git a/target/arm/kernel.config b/target/arm/kernel.config
index 87aa9b170..bcd334bcf 100644
--- a/target/arm/kernel.config
+++ b/target/arm/kernel.config
@@ -1,6 +1,6 @@
 #
 # Automatically generated file; DO NOT EDIT.
-# Linux/arm 3.8.8 Kernel Configuration
+# Linux/arm 3.8.10 Kernel Configuration
 #
 CONFIG_ARM=y
 CONFIG_SYS_SUPPORTS_APM_EMULATION=y
@@ -215,15 +215,6 @@ CONFIG_ARCH_BCM2835=y
 # CONFIG_ARCH_OMAP is not set
 # CONFIG_ARCH_BCM2708 is not set
 # CONFIG_ARCH_VT8500_SINGLE is not set
-# CONFIG_ARCH_AT91_NONE is not set
-# CONFIG_ARCH_AT91RM9200 is not set
-# CONFIG_ARCH_AT91SAM9260 is not set
-# CONFIG_ARCH_AT91SAM9261 is not set
-# CONFIG_ARCH_AT91SAM9G10 is not set
-# CONFIG_ARCH_AT91SAM9263 is not set
-# CONFIG_ARCH_AT91SAM9RL is not set
-# CONFIG_ARCH_AT91SAM9G20 is not set
-# CONFIG_ARCH_AT91SAM9G45 is not set
 # CONFIG_ARCH_VT8500 is not set
 CONFIG_ARM_TIMER_SP804=y
 
diff --git a/target/linux/config/Config.in.fs b/target/linux/config/Config.in.fs
index 21df70a54..47723651b 100644
--- a/target/linux/config/Config.in.fs
+++ b/target/linux/config/Config.in.fs
@@ -61,6 +61,7 @@ config ADK_KPACKAGE_KMOD_EXT2_FS
 	tristate
 	default n
 	depends on !ADK_KERNEL_EXT2_FS
+	select ADK_KERNEL_BLOCK
 	help
 	  Ext2 is a standard Linux file system for hard disks.
 
@@ -78,6 +79,7 @@ config ADK_KPACKAGE_KMOD_EXT3_FS
 	tristate
 	select ADK_KPACKAGE_KMOD_FS_MBCACHE if !ADK_KERNEL_EXT4_FS
 	depends on !ADK_KERNEL_EXT3_FS
+	select ADK_KERNEL_BLOCK
 	default n
 	help
 	  This is the journalling version of the Second extended file system
@@ -115,6 +117,7 @@ config ADK_KPACKAGE_KMOD_EXT4_FS
 	select ADK_KPACKAGE_KMOD_FS_MBCACHE
 	select ADK_KPACKAGE_KMOD_CRC16
 	depends on !ADK_KERNEL_EXT4_FS 
+	select ADK_KERNEL_BLOCK
 	default n
 	help
 	  Ext4 filesystem.
@@ -125,6 +128,7 @@ config ADK_KPACKAGE_KMOD_HFSPLUS_FS
 	select ADK_KPACKAGE_KMOD_NLS if !ADK_KERNEL_NLS
 	select ADK_KPACKAGE_KMOD_NLS_UTF8
 	select ADK_KERNEL_MISC_FILESYSTEMS
+	select ADK_KERNEL_BLOCK
 	default n
 	help
 	  If you say Y here, you will be able to mount extended format
@@ -139,6 +143,7 @@ config ADK_KPACKAGE_KMOD_NTFS_FS
 	prompt "kmod-fs-ntfs...................... NTFS file system support"
 	tristate
 	select ADK_KPACKAGE_KMOD_NLS if !ADK_KERNEL_NLS
+	select ADK_KERNEL_BLOCK
 	default n
 	help
 	  NTFS is the file system of Microsoft Windows NT, 2000, XP and 2003.
@@ -169,6 +174,7 @@ config ADK_KPACKAGE_KMOD_VFAT_FS
 	select ADK_KPACKAGE_KMOD_NLS if !ADK_KERNEL_NLS
 	select ADK_KPACKAGE_KMOD_NLS_CODEPAGE_850
 	select ADK_KPACKAGE_KMOD_NLS_ISO8859_1
+	select ADK_KERNEL_BLOCK
 	default y if ADK_TARGET_WITH_MMC
 	default n
 	help
@@ -193,6 +199,7 @@ config ADK_KPACKAGE_KMOD_XFS_FS
 	tristate
 	select ADK_KERNEL_EXPORTFS
 	select ADK_KPACKAGE_KMOD_CRYPTO_CRC32C
+	select ADK_KERNEL_BLOCK
 	depends on !ADK_KERNEL_XFS_FS
 	depends on !ADK_TARGET_SYSTEM_FOXBOARD_LX && !ADK_LINUX_AVR32
 	default n
@@ -228,6 +235,7 @@ config ADK_KPACKAGE_KMOD_ISO9660_FS
 	prompt "kmod-fs-iso9660................... ISO 9660 CDROM file system support"
 	tristate
 	select ADK_KERNEL_JOLIET
+	select ADK_KERNEL_BLOCK
 	default n
 	help
 	  This is the standard file system used on CD-ROMs.  It was previously
@@ -244,6 +252,7 @@ config ADK_KPACKAGE_KMOD_UDF_FS
 	prompt "kmod-fs-udf....................... UDF file system support"
 	tristate
 	select ADK_KPACKAGE_KMOD_CRC_ITU_T
+	select ADK_KERNEL_BLOCK
 	default n
 	help
 	  This is the new file system used on some CD-ROMs and DVDs. Say Y if
-- 
cgit v1.2.3


From 23c858c8d403289b762fdf26a77c79b583ec78de Mon Sep 17 00:00:00 2001
From: Waldemar Brodkorb <wbx@openadk.org>
Date: Tue, 2 Jul 2013 14:18:26 +0000
Subject: script for raspberry pi installation

---
 scripts/install-rpi.sh | 118 +++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 118 insertions(+)
 create mode 100755 scripts/install-rpi.sh

diff --git a/scripts/install-rpi.sh b/scripts/install-rpi.sh
new file mode 100755
index 000000000..a8aa22f2d
--- /dev/null
+++ b/scripts/install-rpi.sh
@@ -0,0 +1,118 @@
+#!/usr/bin/env bash
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+if [ $(id -u) -ne 0 ];then
+	printf "Installation is only possible as root\n"
+	exit 1
+fi
+
+printf "Checking if parted is installed"
+parted=$(which parted)
+
+if [ ! -z $parted -a -x $parted ];then
+	printf "...okay\n"
+else
+	printf "...failed\n"
+	exit 1
+fi
+
+printf "Checking if mke2fs is installed"
+mke2fs=$(which mke2fs)
+
+if [ ! -z $mke2fs -a -x $mke2fs ];then
+	printf "...okay\n"
+else
+	printf "...failed\n"
+	exit 1
+fi
+
+if [ -z $1 ];then
+	printf "Please give your SD card device as first parameter\n"
+	exit 1
+else
+	if [ -z $2 ];then
+		printf "Please give your install tar archive as second parameter\n"
+		exit 2
+	fi
+	if [ -f $2 ];then
+		printf "Installing $2 on $1\n"
+	else
+		printf "$2 is not a file, Exiting\n"
+		exit 1
+	fi
+	if [ -b $1 ];then
+		printf "Using $1 as SD card disk for installation\n"
+		printf "This will destroy all data on $1, are you sure?\n"
+		printf "Type "y" to continue\n"
+		read y
+		if [ "$y" = "y" ];then
+			$sfdisk -l $1 2>&1 |grep 'No medium'
+			if [ $? -eq 0 ];then
+				exit 1
+			else
+				printf "Starting with installation\n"
+			fi
+		else
+			printf "Exiting.\n"
+			exit 1
+		fi
+	else
+		printf "Sorry $1 is not a block device\n"
+		exit 1
+	fi
+fi
+	
+
+if [ $(mount | grep $1| wc -l) -ne 0 ];then
+	printf "Block device $1 is in use, please umount first.\n"
+	exit 1
+fi
+
+
+if [ $($sfdisk -l $1 2>/dev/null|grep Empty|wc -l) -ne 4 ];then
+	printf "Partitions already exist, should I wipe them?\n"
+	printf "Type y to continue\n"
+	read y
+	if [ $y = "y" ];then
+		printf "Wiping existing partitions\n"
+		dd if=/dev/zero of=$1 bs=512 count=1 >/dev/null 2>&1
+	else
+		printf "Exiting.\n"
+		exit 1
+	fi
+fi
+
+printf "Create partition and filesystem for raspberry pi\n"
+rootpart=${1}2
+$parted -s $1 mklabel msdos
+sleep 2
+maxsize=$(env LC_ALL=C $parted $1 -s unit cyl print |awk '/^Disk/ { print $3 }'|sed -e 's/cyl//')
+rootsize=$(($maxsize-2))
+
+$parted -s $1 unit cyl mkpart primary fat32 -- 0 16
+$parted -s $1 unit cyl mkpart primary ext2 -- 16 -2
+#$parted -s $1 unit cyl mkpart primary fat32 $rootsize $maxsize
+$parted -s $1 set 1 boot on
+#$sfdisk --change-id $1 1 27
+#$sfdisk --change-id $1 3 88
+sleep 2
+mkfs.vfat ${1}1
+$mke2fs ${1}2
+sync
+sleep 2
+
+tmp=$(mktemp -d)
+mount -t ext2 ${rootpart} $tmp
+mkdir $tmp/boot
+mount -t vfat ${1}1 $tmp/boot
+sleep 2
+printf "Extracting install archive\n"
+tar -C $tmp -xzpf $2 
+printf "Fixing permissions\n"
+chmod 1777 $tmp/tmp
+chmod 4755 $tmp/bin/busybox
+umount $tmp/boot
+umount $tmp
+printf "Successfully installed.\n"
+exit 0
-- 
cgit v1.2.3


From 7cabb5806f0289965e3afbd1c4db091d6b422523 Mon Sep 17 00:00:00 2001
From: Waldemar Brodkorb <wbx@openadk.org>
Date: Tue, 2 Jul 2013 16:30:27 +0200
Subject: add firmware for bcm2835

---
 package/bcm2835-firmware/Makefile     | 26 ++++++++++++++++++++++++++
 target/arm/sys-available/raspberry-pi |  1 +
 target/config/Config.in.runtime       |  1 +
 3 files changed, 28 insertions(+)
 create mode 100644 package/bcm2835-firmware/Makefile

diff --git a/package/bcm2835-firmware/Makefile b/package/bcm2835-firmware/Makefile
new file mode 100644
index 000000000..0f9e9f2a6
--- /dev/null
+++ b/package/bcm2835-firmware/Makefile
@@ -0,0 +1,26 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+include ${TOPDIR}/rules.mk
+
+PKG_NAME:=		bcm2835-firmware
+PKG_VERSION:=		0.2
+PKG_RELEASE:=		1
+PKG_MD5SUM:=		fecab45f97a44babaf618523852bbb9b
+PKG_DESCR:=		firmware for raspberry pi (bcm2835)
+PKG_SECTION:=		base
+PKG_SITES:=		http://openadk.org/distfiles/
+
+include ${TOPDIR}/mk/package.mk
+
+$(eval $(call PKG_template,BCM2835_FIRMWARE,bcm2835-firmware,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
+
+CONFIG_STYLE:=          manual
+BUILD_STYLE:=           manual
+INSTALL_STYLE:=         manual
+
+do-install:
+	${INSTALL_DIR} ${IDIR_BCM2835_FIRMWARE}/boot
+	${CP} ${WRKBUILD}/boot/* ${IDIR_BCM2835_FIRMWARE}/boot/
+
+include ${TOPDIR}/mk/pkg-bottom.mk
diff --git a/target/arm/sys-available/raspberry-pi b/target/arm/sys-available/raspberry-pi
index 1b235989e..c77f1fb42 100644
--- a/target/arm/sys-available/raspberry-pi
+++ b/target/arm/sys-available/raspberry-pi
@@ -8,6 +8,7 @@ config ADK_TARGET_SYSTEM_RASPBERRY_PI
 	select ADK_EABIHF
 	select ADK_TARGET_WITH_MMC
 	select ADK_CPU_RASPBERRY_PI
+	select ADK_PACKAGE_BCM2835_FIRMWARE
 	help
 	  Raspberry PI
 
diff --git a/target/config/Config.in.runtime b/target/config/Config.in.runtime
index 2c1ccb1d1..f6fd11a26 100644
--- a/target/config/Config.in.runtime
+++ b/target/config/Config.in.runtime
@@ -36,6 +36,7 @@ config ADK_RUNTIME_TIMEZONE
 choice
 prompt "Console output on embedded system"
 default ADK_RUNTIME_CONSOLE_BOTH if ADK_TARGET_WITH_VGA
+default ADK_RUNTIME_CONSOLE_VGA if ADK_TARGET_SYSTEM_RASPBERRY_PI
 default ADK_RUNTIME_CONSOLE_SERIAL
 
 config ADK_RUNTIME_CONSOLE_VGA
-- 
cgit v1.2.3


From e327b2365a9b1c11e77c537ce7a89c81c2f1cd4a Mon Sep 17 00:00:00 2001
From: Waldemar Brodkorb <wbx@openadk.org>
Date: Mon, 8 Jul 2013 15:30:08 +0200
Subject: update kernels

---
 Config.in                                          |     14 +-
 mk/build.mk                                        |      1 +
 mk/kernel-ver.mk                                   |     16 +-
 mk/modules.mk                                      |     14 +-
 target/linux/config/Config.in.netdevice            |      4 +
 target/linux/config/Config.in.usb                  |      1 +
 .../linux/patches/3.4.42/bsd-compatibility.patch   |   2512 -
 target/linux/patches/3.4.42/cris-etrax.patch       |     12 -
 target/linux/patches/3.4.42/defaults.patch         |     22 -
 target/linux/patches/3.4.42/gemalto.patch          |     11 -
 target/linux/patches/3.4.42/lemote-rfkill.patch    |     21 -
 target/linux/patches/3.4.42/mmc-host.patch         |     36 -
 .../patches/3.4.42/module-alloc-size-check.patch   |     21 -
 target/linux/patches/3.4.42/non-static.patch       |     33 -
 target/linux/patches/3.4.42/sparc-include.patch    |     11 -
 target/linux/patches/3.4.42/startup.patch          |     20 -
 target/linux/patches/3.4.42/usb-defaults-off.patch |     32 -
 target/linux/patches/3.4.42/uuid.patch             |    263 -
 .../patches/3.4.42/vga-cons-default-off.patch      |     12 -
 target/linux/patches/3.4.42/wlan-cf.patch          |     11 -
 target/linux/patches/3.4.42/zlib-inflate.patch     |     12 -
 .../linux/patches/3.4.51/bsd-compatibility.patch   |   2512 +
 target/linux/patches/3.4.51/cris-etrax.patch       |     12 +
 target/linux/patches/3.4.51/defaults.patch         |     22 +
 target/linux/patches/3.4.51/gemalto.patch          |     11 +
 target/linux/patches/3.4.51/lemote-rfkill.patch    |     21 +
 .../patches/3.4.51/module-alloc-size-check.patch   |     21 +
 target/linux/patches/3.4.51/non-static.patch       |     33 +
 target/linux/patches/3.4.51/sparc-include.patch    |     11 +
 target/linux/patches/3.4.51/startup.patch          |     20 +
 target/linux/patches/3.4.51/usb-defaults-off.patch |     32 +
 target/linux/patches/3.4.51/uuid.patch             |    263 +
 .../patches/3.4.51/vga-cons-default-off.patch      |     12 +
 target/linux/patches/3.4.51/wlan-cf.patch          |     11 +
 target/linux/patches/3.4.51/zlib-inflate.patch     |     12 +
 .../linux/patches/3.8.10/bsd-compatibility.patch   |   2568 -
 target/linux/patches/3.8.10/cris-etrax.patch       |     12 -
 target/linux/patches/3.8.10/defaults.patch         |     22 -
 .../linux/patches/3.8.10/disable-netfilter.patch   |    160 -
 target/linux/patches/3.8.10/gemalto.patch          |     11 -
 target/linux/patches/3.8.10/lemote-rfkill.patch    |     21 -
 target/linux/patches/3.8.10/mtd-rootfs.patch       |     26 -
 target/linux/patches/3.8.10/non-static.patch       |     33 -
 target/linux/patches/3.8.10/raspberry.patch        | 275887 ------------------
 target/linux/patches/3.8.10/startup.patch          |     22 -
 target/linux/patches/3.8.10/usb-defaults-off.patch |     20 -
 target/linux/patches/3.8.10/uuid.patch             |    263 -
 .../patches/3.8.10/vga-cons-default-off.patch      |     12 -
 target/linux/patches/3.8.10/wlan-cf.patch          |     11 -
 target/linux/patches/3.8.10/zlib-inflate.patch     |     12 -
 target/linux/patches/3.9.8/bsd-compatibility.patch |   2568 +
 target/linux/patches/3.9.8/cris-etrax.patch        |     12 +
 target/linux/patches/3.9.8/defaults.patch          |     22 +
 target/linux/patches/3.9.8/disable-netfilter.patch |    160 +
 target/linux/patches/3.9.8/gemalto.patch           |     11 +
 target/linux/patches/3.9.8/lemote-rfkill.patch     |     21 +
 target/linux/patches/3.9.8/mtd-rootfs.patch        |     26 +
 target/linux/patches/3.9.8/non-static.patch        |     33 +
 target/linux/patches/3.9.8/raspberry.patch         | 275887 ++++++++++++++++++
 target/linux/patches/3.9.8/startup.patch           |     22 +
 target/linux/patches/3.9.8/usb-defaults-off.patch  |     20 +
 target/linux/patches/3.9.8/uuid.patch              |    263 +
 .../linux/patches/3.9.8/vga-cons-default-off.patch |     12 +
 target/linux/patches/3.9.8/wlan-cf.patch           |     11 +
 target/linux/patches/3.9.8/zlib-inflate.patch      |     12 +
 target/x86/kernel.config                           |     68 +-
 .../kernel-headers/patches/3.4.42/aufs2.patch      |    238 -
 .../patches/3.4.42/cleankernel.patch               |     11 -
 .../patches/3.4.42/etrax-header.patch              |     95 -
 .../patches/3.4.42/linux-gcc-check.patch           |     18 -
 .../kernel-headers/patches/3.4.42/microperl.patch  |     24 -
 .../kernel-headers/patches/3.4.42/mkpiggy.patch    |     28 -
 .../kernel-headers/patches/3.4.42/relocs.patch     |   3131 -
 .../kernel-headers/patches/3.4.51/aufs2.patch      |    238 +
 .../patches/3.4.51/cleankernel.patch               |     11 +
 .../patches/3.4.51/etrax-header.patch              |     95 +
 .../patches/3.4.51/linux-gcc-check.patch           |     18 +
 .../kernel-headers/patches/3.4.51/microperl.patch  |     24 +
 .../kernel-headers/patches/3.4.51/mkpiggy.patch    |     28 +
 .../kernel-headers/patches/3.4.51/relocs.patch     |   3131 +
 .../patches/3.8.10/cleankernel.patch               |     11 -
 .../kernel-headers/patches/3.8.10/microperl.patch  |     24 -
 .../kernel-headers/patches/3.8.10/mkpiggy.patch    |     28 -
 .../kernel-headers/patches/3.8.10/relocs.patch     |   3131 -
 .../kernel-headers/patches/3.8.10/sortext.patch    |     22 -
 .../kernel-headers/patches/3.9.8/cleankernel.patch |     11 +
 .../kernel-headers/patches/3.9.8/microperl.patch   |     24 +
 .../kernel-headers/patches/3.9.8/mkpiggy.patch     |     28 +
 .../kernel-headers/patches/3.9.8/relocs.patch      |   3131 +
 .../kernel-headers/patches/3.9.8/sortext.patch     |     22 +
 90 files changed, 288905 insertions(+), 288917 deletions(-)
 delete mode 100644 target/linux/patches/3.4.42/bsd-compatibility.patch
 delete mode 100644 target/linux/patches/3.4.42/cris-etrax.patch
 delete mode 100644 target/linux/patches/3.4.42/defaults.patch
 delete mode 100644 target/linux/patches/3.4.42/gemalto.patch
 delete mode 100644 target/linux/patches/3.4.42/lemote-rfkill.patch
 delete mode 100644 target/linux/patches/3.4.42/mmc-host.patch
 delete mode 100644 target/linux/patches/3.4.42/module-alloc-size-check.patch
 delete mode 100644 target/linux/patches/3.4.42/non-static.patch
 delete mode 100644 target/linux/patches/3.4.42/sparc-include.patch
 delete mode 100644 target/linux/patches/3.4.42/startup.patch
 delete mode 100644 target/linux/patches/3.4.42/usb-defaults-off.patch
 delete mode 100644 target/linux/patches/3.4.42/uuid.patch
 delete mode 100644 target/linux/patches/3.4.42/vga-cons-default-off.patch
 delete mode 100644 target/linux/patches/3.4.42/wlan-cf.patch
 delete mode 100644 target/linux/patches/3.4.42/zlib-inflate.patch
 create mode 100644 target/linux/patches/3.4.51/bsd-compatibility.patch
 create mode 100644 target/linux/patches/3.4.51/cris-etrax.patch
 create mode 100644 target/linux/patches/3.4.51/defaults.patch
 create mode 100644 target/linux/patches/3.4.51/gemalto.patch
 create mode 100644 target/linux/patches/3.4.51/lemote-rfkill.patch
 create mode 100644 target/linux/patches/3.4.51/module-alloc-size-check.patch
 create mode 100644 target/linux/patches/3.4.51/non-static.patch
 create mode 100644 target/linux/patches/3.4.51/sparc-include.patch
 create mode 100644 target/linux/patches/3.4.51/startup.patch
 create mode 100644 target/linux/patches/3.4.51/usb-defaults-off.patch
 create mode 100644 target/linux/patches/3.4.51/uuid.patch
 create mode 100644 target/linux/patches/3.4.51/vga-cons-default-off.patch
 create mode 100644 target/linux/patches/3.4.51/wlan-cf.patch
 create mode 100644 target/linux/patches/3.4.51/zlib-inflate.patch
 delete mode 100644 target/linux/patches/3.8.10/bsd-compatibility.patch
 delete mode 100644 target/linux/patches/3.8.10/cris-etrax.patch
 delete mode 100644 target/linux/patches/3.8.10/defaults.patch
 delete mode 100644 target/linux/patches/3.8.10/disable-netfilter.patch
 delete mode 100644 target/linux/patches/3.8.10/gemalto.patch
 delete mode 100644 target/linux/patches/3.8.10/lemote-rfkill.patch
 delete mode 100644 target/linux/patches/3.8.10/mtd-rootfs.patch
 delete mode 100644 target/linux/patches/3.8.10/non-static.patch
 delete mode 100644 target/linux/patches/3.8.10/raspberry.patch
 delete mode 100644 target/linux/patches/3.8.10/startup.patch
 delete mode 100644 target/linux/patches/3.8.10/usb-defaults-off.patch
 delete mode 100644 target/linux/patches/3.8.10/uuid.patch
 delete mode 100644 target/linux/patches/3.8.10/vga-cons-default-off.patch
 delete mode 100644 target/linux/patches/3.8.10/wlan-cf.patch
 delete mode 100644 target/linux/patches/3.8.10/zlib-inflate.patch
 create mode 100644 target/linux/patches/3.9.8/bsd-compatibility.patch
 create mode 100644 target/linux/patches/3.9.8/cris-etrax.patch
 create mode 100644 target/linux/patches/3.9.8/defaults.patch
 create mode 100644 target/linux/patches/3.9.8/disable-netfilter.patch
 create mode 100644 target/linux/patches/3.9.8/gemalto.patch
 create mode 100644 target/linux/patches/3.9.8/lemote-rfkill.patch
 create mode 100644 target/linux/patches/3.9.8/mtd-rootfs.patch
 create mode 100644 target/linux/patches/3.9.8/non-static.patch
 create mode 100644 target/linux/patches/3.9.8/raspberry.patch
 create mode 100644 target/linux/patches/3.9.8/startup.patch
 create mode 100644 target/linux/patches/3.9.8/usb-defaults-off.patch
 create mode 100644 target/linux/patches/3.9.8/uuid.patch
 create mode 100644 target/linux/patches/3.9.8/vga-cons-default-off.patch
 create mode 100644 target/linux/patches/3.9.8/wlan-cf.patch
 create mode 100644 target/linux/patches/3.9.8/zlib-inflate.patch
 delete mode 100644 toolchain/kernel-headers/patches/3.4.42/aufs2.patch
 delete mode 100644 toolchain/kernel-headers/patches/3.4.42/cleankernel.patch
 delete mode 100644 toolchain/kernel-headers/patches/3.4.42/etrax-header.patch
 delete mode 100644 toolchain/kernel-headers/patches/3.4.42/linux-gcc-check.patch
 delete mode 100644 toolchain/kernel-headers/patches/3.4.42/microperl.patch
 delete mode 100644 toolchain/kernel-headers/patches/3.4.42/mkpiggy.patch
 delete mode 100644 toolchain/kernel-headers/patches/3.4.42/relocs.patch
 create mode 100644 toolchain/kernel-headers/patches/3.4.51/aufs2.patch
 create mode 100644 toolchain/kernel-headers/patches/3.4.51/cleankernel.patch
 create mode 100644 toolchain/kernel-headers/patches/3.4.51/etrax-header.patch
 create mode 100644 toolchain/kernel-headers/patches/3.4.51/linux-gcc-check.patch
 create mode 100644 toolchain/kernel-headers/patches/3.4.51/microperl.patch
 create mode 100644 toolchain/kernel-headers/patches/3.4.51/mkpiggy.patch
 create mode 100644 toolchain/kernel-headers/patches/3.4.51/relocs.patch
 delete mode 100644 toolchain/kernel-headers/patches/3.8.10/cleankernel.patch
 delete mode 100644 toolchain/kernel-headers/patches/3.8.10/microperl.patch
 delete mode 100644 toolchain/kernel-headers/patches/3.8.10/mkpiggy.patch
 delete mode 100644 toolchain/kernel-headers/patches/3.8.10/relocs.patch
 delete mode 100644 toolchain/kernel-headers/patches/3.8.10/sortext.patch
 create mode 100644 toolchain/kernel-headers/patches/3.9.8/cleankernel.patch
 create mode 100644 toolchain/kernel-headers/patches/3.9.8/microperl.patch
 create mode 100644 toolchain/kernel-headers/patches/3.9.8/mkpiggy.patch
 create mode 100644 toolchain/kernel-headers/patches/3.9.8/relocs.patch
 create mode 100644 toolchain/kernel-headers/patches/3.9.8/sortext.patch

diff --git a/Config.in b/Config.in
index 6670f8965..9a9ea5901 100644
--- a/Config.in
+++ b/Config.in
@@ -95,7 +95,7 @@ prompt "Kernel Version"
 depends on ADK_TOOLCHAIN_ONLY
 
 config ADK_KERNEL_VERSION_TOOLCHAIN
-	prompt "3.8.10"
+	prompt "3.9.8"
 	boolean
 	depends on ADK_TOOLCHAIN_ONLY
 
@@ -106,20 +106,20 @@ depends on !ADK_TOOLCHAIN_ONLY && !ADK_CHOOSE_TARGET_ARCH && !ADK_CHOOSE_TARGET_
 
 choice
 prompt "Kernel Version"
-config ADK_KERNEL_VERSION_3_8_10
-	prompt "3.8.10"
+config ADK_KERNEL_VERSION_3_9_8
+	prompt "3.9.8"
 	boolean
 
-config ADK_KERNEL_VERSION_3_4_42
-	prompt "3.4.42"
+config ADK_KERNEL_VERSION_3_4_51
+	prompt "3.4.51"
 	boolean
 
 endchoice
 
 config ADK_KERNEL_VERSION
 	string
-	default "3.8.10" if ADK_KERNEL_VERSION_3_8_10
-	default "3.4.42" if ADK_KERNEL_VERSION_3_4_42
+	default "3.9.8" if ADK_KERNEL_VERSION_3_9_8
+	default "3.4.51" if ADK_KERNEL_VERSION_3_4_51
 	help
 
 choice
diff --git a/mk/build.mk b/mk/build.mk
index fa2e21fd5..ffafca786 100644
--- a/mk/build.mk
+++ b/mk/build.mk
@@ -47,6 +47,7 @@ DEFCONFIG=		ADK_DEBUG=n \
 			ADK_PACKAGE_URLGRABBER=n \
 			ADK_PACKAGE_PERL=n \
 			ADK_PKG_LAPTOP=n \
+			ADK_PKG_MPDBOX=n \
 			ADK_PKG_DEVELOPMENT=n \
 			ADK_PKG_VPN_CLIENT=n \
 			ADK_PKG_VPN_SERVER=n \
diff --git a/mk/kernel-ver.mk b/mk/kernel-ver.mk
index a7932a76e..57e971817 100644
--- a/mk/kernel-ver.mk
+++ b/mk/kernel-ver.mk
@@ -1,18 +1,18 @@
 ifeq ($(ADK_KERNEL_VERSION_TOOLCHAIN),y)
-KERNEL_VERSION:=	3.8.10
+KERNEL_VERSION:=	3.9.8
 KERNEL_MOD_VERSION:=	$(KERNEL_VERSION)
 KERNEL_RELEASE:=	1
-KERNEL_MD5SUM:=		3d5fb6d9add9cce7725bbe9b139c8d6e
+KERNEL_MD5SUM:=		04d74575ef1c484ad00be61f32bb4557
 endif
-ifeq ($(ADK_KERNEL_VERSION_3_8_10),y)
-KERNEL_VERSION:=	3.8.10
+ifeq ($(ADK_KERNEL_VERSION_3_9_8),y)
+KERNEL_VERSION:=	3.9.8
 KERNEL_MOD_VERSION:=	$(KERNEL_VERSION)
 KERNEL_RELEASE:=	1
-KERNEL_MD5SUM:=		3d5fb6d9add9cce7725bbe9b139c8d6e
+KERNEL_MD5SUM:=		04d74575ef1c484ad00be61f32bb4557
 endif
-ifeq ($(ADK_KERNEL_VERSION_3_4_42),y)
-KERNEL_VERSION:=	3.4.42
+ifeq ($(ADK_KERNEL_VERSION_3_4_51),y)
+KERNEL_VERSION:=	3.4.51
 KERNEL_MOD_VERSION:=	$(KERNEL_VERSION)
 KERNEL_RELEASE:=	1
-KERNEL_MD5SUM:=		1d802f8c5b881186d74e087aced2d553
+KERNEL_MD5SUM:=		f028dc67e2e8a782debc3207d47b33a0
 endif
diff --git a/mk/modules.mk b/mk/modules.mk
index 3a0466061..4e247d98d 100644
--- a/mk/modules.mk
+++ b/mk/modules.mk
@@ -994,10 +994,10 @@ $(eval $(call KMOD_template,CRYPTO_MICHAEL_MIC,crypto-michael-mic,\
     $(MODULES_DIR)/kernel/crypto/michael_mic \
 ,11))
 
-$(eval $(call KMOD_template,CRYPTO_CRC32C,crypto-crc32c,\
-    $(MODULES_DIR)/kernel/lib/libcrc32c \
-    $(MODULES_DIR)/kernel/crypto/crc32c \
-,11))
+#$(eval $(call KMOD_template,CRYPTO_CRC32C,crypto-crc32c,\
+#    $(MODULES_DIR)/kernel/lib/libcrc32c \
+#    $(MODULES_DIR)/kernel/crypto/crc32c \
+#,11))
 
 $(eval $(call KMOD_template,OCF_CRYPTOSOFT,ocf-cryptosoft,\
     ${MODULES_DIR}/kernel/crypto/ocf/cryptosoft \
@@ -1658,9 +1658,9 @@ $(eval $(call KMOD_template,CRC32,crc32, \
 	$(MODULES_DIR)/kernel/lib/crc32 \
 ,01))
 
-$(eval $(call KMOD_template,LIBCRC32C,libcrc32c, \
-	$(MODULES_DIR)/kernel/lib/libcrc32c \
-,10))
+#$(eval $(call KMOD_template,LIBCRC32C,libcrc32c, \
+#	$(MODULES_DIR)/kernel/lib/libcrc32c \
+#,10))
 
 #
 # parallel port support
diff --git a/target/linux/config/Config.in.netdevice b/target/linux/config/Config.in.netdevice
index 8d4183f1f..026d8602d 100644
--- a/target/linux/config/Config.in.netdevice
+++ b/target/linux/config/Config.in.netdevice
@@ -22,6 +22,9 @@ config ADK_KERNEL_NETDEV_1000
 config ADK_KERNEL_VIA_RHINE_MMIO
 	boolean
 
+config ADK_KERNEL_ATH_CARDS
+	boolean
+
 config ADK_KERNEL_SMC91X
 	boolean
 	select ADK_KERNEL_NETDEVICES
@@ -366,6 +369,7 @@ config ADK_KPACKAGE_KMOD_ATH5K
 	prompt "kmod-ath5k................... Atheros 5xxx wireless cards"
 	tristate
 	select ADK_KERNEL_MAC80211_LEDS
+	select ADK_KERNEL_ATH_CARDS
 	select ADK_KERNEL_ATH_COMMON
 	select ADK_KPACKAGE_KMOD_MAC80211
 	depends on ADK_TARGET_WITH_MINIPCI || ADK_TARGET_WITH_PCI || ADK_TARGET_WITH_AHB
diff --git a/target/linux/config/Config.in.usb b/target/linux/config/Config.in.usb
index 16db312c0..56dce1271 100644
--- a/target/linux/config/Config.in.usb
+++ b/target/linux/config/Config.in.usb
@@ -30,6 +30,7 @@ config ADK_KPACKAGE_KMOD_USB
 	tristate
 	select ADK_KERNEL_NLS
 	depends on !ADK_KERNEL_USB
+	default y if ADK_TARGET_SYSTEM_QEMU_I686
 	default y if ADK_TARGET_SYSTEM_QEMU_X86_64
 	default y if ADK_TARGET_SYSTEM_PCENGINES_ALIX1C
 	default y if ADK_TARGET_SYSTEM_PCENGINES_ALIX2D2
diff --git a/target/linux/patches/3.4.42/bsd-compatibility.patch b/target/linux/patches/3.4.42/bsd-compatibility.patch
deleted file mode 100644
index 9e91a62de..000000000
--- a/target/linux/patches/3.4.42/bsd-compatibility.patch
+++ /dev/null
@@ -1,2512 +0,0 @@
-diff -Nur linux-2.6.36.orig/scripts/Makefile.lib linux-2.6.36/scripts/Makefile.lib
---- linux-2.6.36.orig/scripts/Makefile.lib	2010-10-20 22:30:22.000000000 +0200
-+++ linux-2.6.36/scripts/Makefile.lib	2010-11-28 18:34:22.000000000 +0100
-@@ -216,7 +216,12 @@
- size_append = printf $(shell						\
- dec_size=0;								\
- for F in $1; do								\
--	fsize=$$(stat -c "%s" $$F);					\
-+	if stat -qs .>/dev/null 2>&1; then				\
-+		statcmd='stat -f %z';					\
-+	else								\
-+		statcmd='stat -c %s';					\
-+	fi;								\
-+	fsize=$$($$statcmd $$F);					\
- 	dec_size=$$(expr $$dec_size + $$fsize);				\
- done;									\
- printf "%08x\n" $$dec_size |						\
-diff -Nur linux-2.6.36.orig/scripts/mod/mk_elfconfig.c linux-2.6.36/scripts/mod/mk_elfconfig.c
---- linux-2.6.36.orig/scripts/mod/mk_elfconfig.c	2010-10-20 22:30:22.000000000 +0200
-+++ linux-2.6.36/scripts/mod/mk_elfconfig.c	2010-11-28 18:33:24.000000000 +0100
-@@ -1,7 +1,18 @@
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
--#include <elf.h>
-+
-+#define EI_NIDENT (16)
-+#define ELFMAG          "\177ELF"
-+
-+#define SELFMAG         4
-+#define EI_CLASS        4
-+#define ELFCLASS32      1               /* 32-bit objects */
-+#define ELFCLASS64      2               /* 64-bit objects */
-+
-+#define EI_DATA         5               /* Data encoding byte index */
-+#define ELFDATA2LSB     1               /* 2's complement, little endian */
-+#define ELFDATA2MSB     2               /* 2's complement, big endian */
- 
- int
- main(int argc, char **argv)
-diff -Nur linux-2.6.36.orig/scripts/mod/modpost.h linux-2.6.36/scripts/mod/modpost.h
---- linux-2.6.36.orig/scripts/mod/modpost.h	2010-10-20 22:30:22.000000000 +0200
-+++ linux-2.6.36/scripts/mod/modpost.h	2010-11-28 18:33:24.000000000 +0100
-@@ -7,7 +7,2453 @@
- #include <sys/mman.h>
- #include <fcntl.h>
- #include <unistd.h>
--#include <elf.h>
-+
-+
-+/* This file defines standard ELF types, structures, and macros.
-+   Copyright (C) 1995-1999,2000,2001,2002,2003 Free Software Foundation, Inc.
-+   This file is part of the GNU C Library.
-+
-+   The GNU C Library is free software; you can redistribute it and/or
-+   modify it under the terms of the GNU Lesser General Public
-+   License as published by the Free Software Foundation; either
-+   version 2.1 of the License, or (at your option) any later version.
-+
-+   The GNU C Library 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
-+   Lesser General Public License for more details.
-+
-+   You should have received a copy of the GNU Lesser General Public
-+   License along with the GNU C Library; if not, write to the Free
-+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-+   02111-1307 USA.  */
-+
-+#ifndef _ELF_H
-+#define	_ELF_H 1
-+
-+__BEGIN_DECLS
-+
-+/* Standard ELF types.  */
-+
-+#include <stdint.h>
-+
-+/* Type for a 16-bit quantity.  */
-+typedef uint16_t Elf32_Half;
-+typedef uint16_t Elf64_Half;
-+
-+/* Types for signed and unsigned 32-bit quantities.  */
-+typedef uint32_t Elf32_Word;
-+typedef	int32_t  Elf32_Sword;
-+typedef uint32_t Elf64_Word;
-+typedef	int32_t  Elf64_Sword;
-+
-+/* Types for signed and unsigned 64-bit quantities.  */
-+typedef uint64_t Elf32_Xword;
-+typedef	int64_t  Elf32_Sxword;
-+typedef uint64_t Elf64_Xword;
-+typedef	int64_t  Elf64_Sxword;
-+
-+/* Type of addresses.  */
-+typedef uint32_t Elf32_Addr;
-+typedef uint64_t Elf64_Addr;
-+
-+/* Type of file offsets.  */
-+typedef uint32_t Elf32_Off;
-+typedef uint64_t Elf64_Off;
-+
-+/* Type for section indices, which are 16-bit quantities.  */
-+typedef uint16_t Elf32_Section;
-+typedef uint16_t Elf64_Section;
-+
-+/* Type for version symbol information.  */
-+typedef Elf32_Half Elf32_Versym;
-+typedef Elf64_Half Elf64_Versym;
-+
-+
-+/* The ELF file header.  This appears at the start of every ELF file.  */
-+
-+#define EI_NIDENT (16)
-+
-+typedef struct
-+{
-+  unsigned char	e_ident[EI_NIDENT];	/* Magic number and other info */
-+  Elf32_Half	e_type;			/* Object file type */
-+  Elf32_Half	e_machine;		/* Architecture */
-+  Elf32_Word	e_version;		/* Object file version */
-+  Elf32_Addr	e_entry;		/* Entry point virtual address */
-+  Elf32_Off	e_phoff;		/* Program header table file offset */
-+  Elf32_Off	e_shoff;		/* Section header table file offset */
-+  Elf32_Word	e_flags;		/* Processor-specific flags */
-+  Elf32_Half	e_ehsize;		/* ELF header size in bytes */
-+  Elf32_Half	e_phentsize;		/* Program header table entry size */
-+  Elf32_Half	e_phnum;		/* Program header table entry count */
-+  Elf32_Half	e_shentsize;		/* Section header table entry size */
-+  Elf32_Half	e_shnum;		/* Section header table entry count */
-+  Elf32_Half	e_shstrndx;		/* Section header string table index */
-+} Elf32_Ehdr;
-+
-+typedef struct
-+{
-+  unsigned char	e_ident[EI_NIDENT];	/* Magic number and other info */
-+  Elf64_Half	e_type;			/* Object file type */
-+  Elf64_Half	e_machine;		/* Architecture */
-+  Elf64_Word	e_version;		/* Object file version */
-+  Elf64_Addr	e_entry;		/* Entry point virtual address */
-+  Elf64_Off	e_phoff;		/* Program header table file offset */
-+  Elf64_Off	e_shoff;		/* Section header table file offset */
-+  Elf64_Word	e_flags;		/* Processor-specific flags */
-+  Elf64_Half	e_ehsize;		/* ELF header size in bytes */
-+  Elf64_Half	e_phentsize;		/* Program header table entry size */
-+  Elf64_Half	e_phnum;		/* Program header table entry count */
-+  Elf64_Half	e_shentsize;		/* Section header table entry size */
-+  Elf64_Half	e_shnum;		/* Section header table entry count */
-+  Elf64_Half	e_shstrndx;		/* Section header string table index */
-+} Elf64_Ehdr;
-+
-+/* Fields in the e_ident array.  The EI_* macros are indices into the
-+   array.  The macros under each EI_* macro are the values the byte
-+   may have.  */
-+
-+#define EI_MAG0		0		/* File identification byte 0 index */
-+#define ELFMAG0		0x7f		/* Magic number byte 0 */
-+
-+#define EI_MAG1		1		/* File identification byte 1 index */
-+#define ELFMAG1		'E'		/* Magic number byte 1 */
-+
-+#define EI_MAG2		2		/* File identification byte 2 index */
-+#define ELFMAG2		'L'		/* Magic number byte 2 */
-+
-+#define EI_MAG3		3		/* File identification byte 3 index */
-+#define ELFMAG3		'F'		/* Magic number byte 3 */
-+
-+/* Conglomeration of the identification bytes, for easy testing as a word.  */
-+#define	ELFMAG		"\177ELF"
-+#define	SELFMAG		4
-+
-+#define EI_CLASS	4		/* File class byte index */
-+#define ELFCLASSNONE	0		/* Invalid class */
-+#define ELFCLASS32	1		/* 32-bit objects */
-+#define ELFCLASS64	2		/* 64-bit objects */
-+#define ELFCLASSNUM	3
-+
-+#define EI_DATA		5		/* Data encoding byte index */
-+#define ELFDATANONE	0		/* Invalid data encoding */
-+#define ELFDATA2LSB	1		/* 2's complement, little endian */
-+#define ELFDATA2MSB	2		/* 2's complement, big endian */
-+#define ELFDATANUM	3
-+
-+#define EI_VERSION	6		/* File version byte index */
-+					/* Value must be EV_CURRENT */
-+
-+#define EI_OSABI	7		/* OS ABI identification */
-+#define ELFOSABI_NONE		0	/* UNIX System V ABI */
-+#define ELFOSABI_SYSV		0	/* Alias.  */
-+#define ELFOSABI_HPUX		1	/* HP-UX */
-+#define ELFOSABI_NETBSD		2	/* NetBSD.  */
-+#define ELFOSABI_LINUX		3	/* Linux.  */
-+#define ELFOSABI_SOLARIS	6	/* Sun Solaris.  */
-+#define ELFOSABI_AIX		7	/* IBM AIX.  */
-+#define ELFOSABI_IRIX		8	/* SGI Irix.  */
-+#define ELFOSABI_FREEBSD	9	/* FreeBSD.  */
-+#define ELFOSABI_TRU64		10	/* Compaq TRU64 UNIX.  */
-+#define ELFOSABI_MODESTO	11	/* Novell Modesto.  */
-+#define ELFOSABI_OPENBSD	12	/* OpenBSD.  */
-+#define ELFOSABI_ARM		97	/* ARM */
-+#define ELFOSABI_STANDALONE	255	/* Standalone (embedded) application */
-+
-+#define EI_ABIVERSION	8		/* ABI version */
-+
-+#define EI_PAD		9		/* Byte index of padding bytes */
-+
-+/* Legal values for e_type (object file type).  */
-+
-+#define ET_NONE		0		/* No file type */
-+#define ET_REL		1		/* Relocatable file */
-+#define ET_EXEC		2		/* Executable file */
-+#define ET_DYN		3		/* Shared object file */
-+#define ET_CORE		4		/* Core file */
-+#define	ET_NUM		5		/* Number of defined types */
-+#define ET_LOOS		0xfe00		/* OS-specific range start */
-+#define ET_HIOS		0xfeff		/* OS-specific range end */
-+#define ET_LOPROC	0xff00		/* Processor-specific range start */
-+#define ET_HIPROC	0xffff		/* Processor-specific range end */
-+
-+/* Legal values for e_machine (architecture).  */
-+
-+#define EM_NONE		 0		/* No machine */
-+#define EM_M32		 1		/* AT&T WE 32100 */
-+#define EM_SPARC	 2		/* SUN SPARC */
-+#define EM_386		 3		/* Intel 80386 */
-+#define EM_68K		 4		/* Motorola m68k family */
-+#define EM_88K		 5		/* Motorola m88k family */
-+#define EM_860		 7		/* Intel 80860 */
-+#define EM_MIPS		 8		/* MIPS R3000 big-endian */
-+#define EM_S370		 9		/* IBM System/370 */
-+#define EM_MIPS_RS3_LE	10		/* MIPS R3000 little-endian */
-+
-+#define EM_PARISC	15		/* HPPA */
-+#define EM_VPP500	17		/* Fujitsu VPP500 */
-+#define EM_SPARC32PLUS	18		/* Sun's "v8plus" */
-+#define EM_960		19		/* Intel 80960 */
-+#define EM_PPC		20		/* PowerPC */
-+#define EM_PPC64	21		/* PowerPC 64-bit */
-+#define EM_S390		22		/* IBM S390 */
-+
-+#define EM_V800		36		/* NEC V800 series */
-+#define EM_FR20		37		/* Fujitsu FR20 */
-+#define EM_RH32		38		/* TRW RH-32 */
-+#define EM_RCE		39		/* Motorola RCE */
-+#define EM_ARM		40		/* ARM */
-+#define EM_FAKE_ALPHA	41		/* Digital Alpha */
-+#define EM_SH		42		/* Hitachi SH */
-+#define EM_SPARCV9	43		/* SPARC v9 64-bit */
-+#define EM_TRICORE	44		/* Siemens Tricore */
-+#define EM_ARC		45		/* Argonaut RISC Core */
-+#define EM_H8_300	46		/* Hitachi H8/300 */
-+#define EM_H8_300H	47		/* Hitachi H8/300H */
-+#define EM_H8S		48		/* Hitachi H8S */
-+#define EM_H8_500	49		/* Hitachi H8/500 */
-+#define EM_IA_64	50		/* Intel Merced */
-+#define EM_MIPS_X	51		/* Stanford MIPS-X */
-+#define EM_COLDFIRE	52		/* Motorola Coldfire */
-+#define EM_68HC12	53		/* Motorola M68HC12 */
-+#define EM_MMA		54		/* Fujitsu MMA Multimedia Accelerator*/
-+#define EM_PCP		55		/* Siemens PCP */
-+#define EM_NCPU		56		/* Sony nCPU embeeded RISC */
-+#define EM_NDR1		57		/* Denso NDR1 microprocessor */
-+#define EM_STARCORE	58		/* Motorola Start*Core processor */
-+#define EM_ME16		59		/* Toyota ME16 processor */
-+#define EM_ST100	60		/* STMicroelectronic ST100 processor */
-+#define EM_TINYJ	61		/* Advanced Logic Corp. Tinyj emb.fam*/
-+#define EM_X86_64	62		/* AMD x86-64 architecture */
-+#define EM_PDSP		63		/* Sony DSP Processor */
-+
-+#define EM_FX66		66		/* Siemens FX66 microcontroller */
-+#define EM_ST9PLUS	67		/* STMicroelectronics ST9+ 8/16 mc */
-+#define EM_ST7		68		/* STmicroelectronics ST7 8 bit mc */
-+#define EM_68HC16	69		/* Motorola MC68HC16 microcontroller */
-+#define EM_68HC11	70		/* Motorola MC68HC11 microcontroller */
-+#define EM_68HC08	71		/* Motorola MC68HC08 microcontroller */
-+#define EM_68HC05	72		/* Motorola MC68HC05 microcontroller */
-+#define EM_SVX		73		/* Silicon Graphics SVx */
-+#define EM_ST19		74		/* STMicroelectronics ST19 8 bit mc */
-+#define EM_VAX		75		/* Digital VAX */
-+#define EM_CRIS		76		/* Axis Communications 32-bit embedded processor */
-+#define EM_JAVELIN	77		/* Infineon Technologies 32-bit embedded processor */
-+#define EM_FIREPATH	78		/* Element 14 64-bit DSP Processor */
-+#define EM_ZSP		79		/* LSI Logic 16-bit DSP Processor */
-+#define EM_MMIX		80		/* Donald Knuth's educational 64-bit processor */
-+#define EM_HUANY	81		/* Harvard University machine-independent object files */
-+#define EM_PRISM	82		/* SiTera Prism */
-+#define EM_AVR		83		/* Atmel AVR 8-bit microcontroller */
-+#define EM_FR30		84		/* Fujitsu FR30 */
-+#define EM_D10V		85		/* Mitsubishi D10V */
-+#define EM_D30V		86		/* Mitsubishi D30V */
-+#define EM_V850		87		/* NEC v850 */
-+#define EM_M32R		88		/* Mitsubishi M32R */
-+#define EM_MN10300	89		/* Matsushita MN10300 */
-+#define EM_MN10200	90		/* Matsushita MN10200 */
-+#define EM_PJ		91		/* picoJava */
-+#define EM_OPENRISC	92		/* OpenRISC 32-bit embedded processor */
-+#define EM_ARC_A5	93		/* ARC Cores Tangent-A5 */
-+#define EM_XTENSA	94		/* Tensilica Xtensa Architecture */
-+#define EM_NUM		95
-+
-+/* If it is necessary to assign new unofficial EM_* values, please
-+   pick large random numbers (0x8523, 0xa7f2, etc.) to minimize the
-+   chances of collision with official or non-GNU unofficial values.  */
-+
-+#define EM_ALPHA	0x9026
-+
-+/* Legal values for e_version (version).  */
-+
-+#define EV_NONE		0		/* Invalid ELF version */
-+#define EV_CURRENT	1		/* Current version */
-+#define EV_NUM		2
-+
-+/* Section header.  */
-+
-+typedef struct
-+{
-+  Elf32_Word	sh_name;		/* Section name (string tbl index) */
-+  Elf32_Word	sh_type;		/* Section type */
-+  Elf32_Word	sh_flags;		/* Section flags */
-+  Elf32_Addr	sh_addr;		/* Section virtual addr at execution */
-+  Elf32_Off	sh_offset;		/* Section file offset */
-+  Elf32_Word	sh_size;		/* Section size in bytes */
-+  Elf32_Word	sh_link;		/* Link to another section */
-+  Elf32_Word	sh_info;		/* Additional section information */
-+  Elf32_Word	sh_addralign;		/* Section alignment */
-+  Elf32_Word	sh_entsize;		/* Entry size if section holds table */
-+} Elf32_Shdr;
-+
-+typedef struct
-+{
-+  Elf64_Word	sh_name;		/* Section name (string tbl index) */
-+  Elf64_Word	sh_type;		/* Section type */
-+  Elf64_Xword	sh_flags;		/* Section flags */
-+  Elf64_Addr	sh_addr;		/* Section virtual addr at execution */
-+  Elf64_Off	sh_offset;		/* Section file offset */
-+  Elf64_Xword	sh_size;		/* Section size in bytes */
-+  Elf64_Word	sh_link;		/* Link to another section */
-+  Elf64_Word	sh_info;		/* Additional section information */
-+  Elf64_Xword	sh_addralign;		/* Section alignment */
-+  Elf64_Xword	sh_entsize;		/* Entry size if section holds table */
-+} Elf64_Shdr;
-+
-+/* Special section indices.  */
-+
-+#define SHN_UNDEF	0		/* Undefined section */
-+#define SHN_LORESERVE	0xff00		/* Start of reserved indices */
-+#define SHN_LOPROC	0xff00		/* Start of processor-specific */
-+#define SHN_HIPROC	0xff1f		/* End of processor-specific */
-+#define SHN_LOOS	0xff20		/* Start of OS-specific */
-+#define SHN_HIOS	0xff3f		/* End of OS-specific */
-+#define SHN_ABS		0xfff1		/* Associated symbol is absolute */
-+#define SHN_COMMON	0xfff2		/* Associated symbol is common */
-+#define SHN_XINDEX	0xffff		/* Index is in extra table.  */
-+#define SHN_HIRESERVE	0xffff		/* End of reserved indices */
-+
-+/* Legal values for sh_type (section type).  */
-+
-+#define SHT_NULL	  0		/* Section header table entry unused */
-+#define SHT_PROGBITS	  1		/* Program data */
-+#define SHT_SYMTAB	  2		/* Symbol table */
-+#define SHT_STRTAB	  3		/* String table */
-+#define SHT_RELA	  4		/* Relocation entries with addends */
-+#define SHT_HASH	  5		/* Symbol hash table */
-+#define SHT_DYNAMIC	  6		/* Dynamic linking information */
-+#define SHT_NOTE	  7		/* Notes */
-+#define SHT_NOBITS	  8		/* Program space with no data (bss) */
-+#define SHT_REL		  9		/* Relocation entries, no addends */
-+#define SHT_SHLIB	  10		/* Reserved */
-+#define SHT_DYNSYM	  11		/* Dynamic linker symbol table */
-+#define SHT_INIT_ARRAY	  14		/* Array of constructors */
-+#define SHT_FINI_ARRAY	  15		/* Array of destructors */
-+#define SHT_PREINIT_ARRAY 16		/* Array of pre-constructors */
-+#define SHT_GROUP	  17		/* Section group */
-+#define SHT_SYMTAB_SHNDX  18		/* Extended section indeces */
-+#define	SHT_NUM		  19		/* Number of defined types.  */
-+#define SHT_LOOS	  0x60000000	/* Start OS-specific */
-+#define SHT_GNU_LIBLIST	  0x6ffffff7	/* Prelink library list */
-+#define SHT_CHECKSUM	  0x6ffffff8	/* Checksum for DSO content.  */
-+#define SHT_LOSUNW	  0x6ffffffa	/* Sun-specific low bound.  */
-+#define SHT_SUNW_move	  0x6ffffffa
-+#define SHT_SUNW_COMDAT   0x6ffffffb
-+#define SHT_SUNW_syminfo  0x6ffffffc
-+#define SHT_GNU_verdef	  0x6ffffffd	/* Version definition section.  */
-+#define SHT_GNU_verneed	  0x6ffffffe	/* Version needs section.  */
-+#define SHT_GNU_versym	  0x6fffffff	/* Version symbol table.  */
-+#define SHT_HISUNW	  0x6fffffff	/* Sun-specific high bound.  */
-+#define SHT_HIOS	  0x6fffffff	/* End OS-specific type */
-+#define SHT_LOPROC	  0x70000000	/* Start of processor-specific */
-+#define SHT_HIPROC	  0x7fffffff	/* End of processor-specific */
-+#define SHT_LOUSER	  0x80000000	/* Start of application-specific */
-+#define SHT_HIUSER	  0x8fffffff	/* End of application-specific */
-+
-+/* Legal values for sh_flags (section flags).  */
-+
-+#define SHF_WRITE	     (1 << 0)	/* Writable */
-+#define SHF_ALLOC	     (1 << 1)	/* Occupies memory during execution */
-+#define SHF_EXECINSTR	     (1 << 2)	/* Executable */
-+#define SHF_MERGE	     (1 << 4)	/* Might be merged */
-+#define SHF_STRINGS	     (1 << 5)	/* Contains nul-terminated strings */
-+#define SHF_INFO_LINK	     (1 << 6)	/* `sh_info' contains SHT index */
-+#define SHF_LINK_ORDER	     (1 << 7)	/* Preserve order after combining */
-+#define SHF_OS_NONCONFORMING (1 << 8)	/* Non-standard OS specific handling
-+					   required */
-+#define SHF_GROUP	     (1 << 9)	/* Section is member of a group.  */
-+#define SHF_TLS		     (1 << 10)	/* Section hold thread-local data.  */
-+#define SHF_MASKOS	     0x0ff00000	/* OS-specific.  */
-+#define SHF_MASKPROC	     0xf0000000	/* Processor-specific */
-+
-+/* Section group handling.  */
-+#define GRP_COMDAT	0x1		/* Mark group as COMDAT.  */
-+
-+/* Symbol table entry.  */
-+
-+typedef struct
-+{
-+  Elf32_Word	st_name;		/* Symbol name (string tbl index) */
-+  Elf32_Addr	st_value;		/* Symbol value */
-+  Elf32_Word	st_size;		/* Symbol size */
-+  unsigned char	st_info;		/* Symbol type and binding */
-+  unsigned char	st_other;		/* Symbol visibility */
-+  Elf32_Section	st_shndx;		/* Section index */
-+} Elf32_Sym;
-+
-+typedef struct
-+{
-+  Elf64_Word	st_name;		/* Symbol name (string tbl index) */
-+  unsigned char	st_info;		/* Symbol type and binding */
-+  unsigned char st_other;		/* Symbol visibility */
-+  Elf64_Section	st_shndx;		/* Section index */
-+  Elf64_Addr	st_value;		/* Symbol value */
-+  Elf64_Xword	st_size;		/* Symbol size */
-+} Elf64_Sym;
-+
-+/* The syminfo section if available contains additional information about
-+   every dynamic symbol.  */
-+
-+typedef struct
-+{
-+  Elf32_Half si_boundto;		/* Direct bindings, symbol bound to */
-+  Elf32_Half si_flags;			/* Per symbol flags */
-+} Elf32_Syminfo;
-+
-+typedef struct
-+{
-+  Elf64_Half si_boundto;		/* Direct bindings, symbol bound to */
-+  Elf64_Half si_flags;			/* Per symbol flags */
-+} Elf64_Syminfo;
-+
-+/* Possible values for si_boundto.  */
-+#define SYMINFO_BT_SELF		0xffff	/* Symbol bound to self */
-+#define SYMINFO_BT_PARENT	0xfffe	/* Symbol bound to parent */
-+#define SYMINFO_BT_LOWRESERVE	0xff00	/* Beginning of reserved entries */
-+
-+/* Possible bitmasks for si_flags.  */
-+#define SYMINFO_FLG_DIRECT	0x0001	/* Direct bound symbol */
-+#define SYMINFO_FLG_PASSTHRU	0x0002	/* Pass-thru symbol for translator */
-+#define SYMINFO_FLG_COPY	0x0004	/* Symbol is a copy-reloc */
-+#define SYMINFO_FLG_LAZYLOAD	0x0008	/* Symbol bound to object to be lazy
-+					   loaded */
-+/* Syminfo version values.  */
-+#define SYMINFO_NONE		0
-+#define SYMINFO_CURRENT		1
-+#define SYMINFO_NUM		2
-+
-+
-+/* How to extract and insert information held in the st_info field.  */
-+
-+#define ELF32_ST_BIND(val)		(((unsigned char) (val)) >> 4)
-+#define ELF32_ST_TYPE(val)		((val) & 0xf)
-+#define ELF32_ST_INFO(bind, type)	(((bind) << 4) + ((type) & 0xf))
-+
-+/* Both Elf32_Sym and Elf64_Sym use the same one-byte st_info field.  */
-+#define ELF64_ST_BIND(val)		ELF32_ST_BIND (val)
-+#define ELF64_ST_TYPE(val)		ELF32_ST_TYPE (val)
-+#define ELF64_ST_INFO(bind, type)	ELF32_ST_INFO ((bind), (type))
-+
-+/* Legal values for ST_BIND subfield of st_info (symbol binding).  */
-+
-+#define STB_LOCAL	0		/* Local symbol */
-+#define STB_GLOBAL	1		/* Global symbol */
-+#define STB_WEAK	2		/* Weak symbol */
-+#define	STB_NUM		3		/* Number of defined types.  */
-+#define STB_LOOS	10		/* Start of OS-specific */
-+#define STB_HIOS	12		/* End of OS-specific */
-+#define STB_LOPROC	13		/* Start of processor-specific */
-+#define STB_HIPROC	15		/* End of processor-specific */
-+
-+/* Legal values for ST_TYPE subfield of st_info (symbol type).  */
-+
-+#define STT_NOTYPE	0		/* Symbol type is unspecified */
-+#define STT_OBJECT	1		/* Symbol is a data object */
-+#define STT_FUNC	2		/* Symbol is a code object */
-+#define STT_SECTION	3		/* Symbol associated with a section */
-+#define STT_FILE	4		/* Symbol's name is file name */
-+#define STT_COMMON	5		/* Symbol is a common data object */
-+#define STT_TLS		6		/* Symbol is thread-local data object*/
-+#define	STT_NUM		7		/* Number of defined types.  */
-+#define STT_LOOS	10		/* Start of OS-specific */
-+#define STT_HIOS	12		/* End of OS-specific */
-+#define STT_LOPROC	13		/* Start of processor-specific */
-+#define STT_HIPROC	15		/* End of processor-specific */
-+
-+
-+/* Symbol table indices are found in the hash buckets and chain table
-+   of a symbol hash table section.  This special index value indicates
-+   the end of a chain, meaning no further symbols are found in that bucket.  */
-+
-+#define STN_UNDEF	0		/* End of a chain.  */
-+
-+
-+/* How to extract and insert information held in the st_other field.  */
-+
-+#define ELF32_ST_VISIBILITY(o)	((o) & 0x03)
-+
-+/* For ELF64 the definitions are the same.  */
-+#define ELF64_ST_VISIBILITY(o)	ELF32_ST_VISIBILITY (o)
-+
-+/* Symbol visibility specification encoded in the st_other field.  */
-+#define STV_DEFAULT	0		/* Default symbol visibility rules */
-+#define STV_INTERNAL	1		/* Processor specific hidden class */
-+#define STV_HIDDEN	2		/* Sym unavailable in other modules */
-+#define STV_PROTECTED	3		/* Not preemptible, not exported */
-+
-+
-+/* Relocation table entry without addend (in section of type SHT_REL).  */
-+
-+typedef struct
-+{
-+  Elf32_Addr	r_offset;		/* Address */
-+  Elf32_Word	r_info;			/* Relocation type and symbol index */
-+} Elf32_Rel;
-+
-+/* I have seen two different definitions of the Elf64_Rel and
-+   Elf64_Rela structures, so we'll leave them out until Novell (or
-+   whoever) gets their act together.  */
-+/* The following, at least, is used on Sparc v9, MIPS, and Alpha.  */
-+
-+typedef struct
-+{
-+  Elf64_Addr	r_offset;		/* Address */
-+  Elf64_Xword	r_info;			/* Relocation type and symbol index */
-+} Elf64_Rel;
-+
-+/* Relocation table entry with addend (in section of type SHT_RELA).  */
-+
-+typedef struct
-+{
-+  Elf32_Addr	r_offset;		/* Address */
-+  Elf32_Word	r_info;			/* Relocation type and symbol index */
-+  Elf32_Sword	r_addend;		/* Addend */
-+} Elf32_Rela;
-+
-+typedef struct
-+{
-+  Elf64_Addr	r_offset;		/* Address */
-+  Elf64_Xword	r_info;			/* Relocation type and symbol index */
-+  Elf64_Sxword	r_addend;		/* Addend */
-+} Elf64_Rela;
-+
-+/* How to extract and insert information held in the r_info field.  */
-+
-+#define ELF32_R_SYM(val)		((val) >> 8)
-+#define ELF32_R_TYPE(val)		((val) & 0xff)
-+#define ELF32_R_INFO(sym, type)		(((sym) << 8) + ((type) & 0xff))
-+
-+#define ELF64_R_SYM(i)			((i) >> 32)
-+#define ELF64_R_TYPE(i)			((i) & 0xffffffff)
-+#define ELF64_R_INFO(sym,type)		((((Elf64_Xword) (sym)) << 32) + (type))
-+
-+/* Program segment header.  */
-+
-+typedef struct
-+{
-+  Elf32_Word	p_type;			/* Segment type */
-+  Elf32_Off	p_offset;		/* Segment file offset */
-+  Elf32_Addr	p_vaddr;		/* Segment virtual address */
-+  Elf32_Addr	p_paddr;		/* Segment physical address */
-+  Elf32_Word	p_filesz;		/* Segment size in file */
-+  Elf32_Word	p_memsz;		/* Segment size in memory */
-+  Elf32_Word	p_flags;		/* Segment flags */
-+  Elf32_Word	p_align;		/* Segment alignment */
-+} Elf32_Phdr;
-+
-+typedef struct
-+{
-+  Elf64_Word	p_type;			/* Segment type */
-+  Elf64_Word	p_flags;		/* Segment flags */
-+  Elf64_Off	p_offset;		/* Segment file offset */
-+  Elf64_Addr	p_vaddr;		/* Segment virtual address */
-+  Elf64_Addr	p_paddr;		/* Segment physical address */
-+  Elf64_Xword	p_filesz;		/* Segment size in file */
-+  Elf64_Xword	p_memsz;		/* Segment size in memory */
-+  Elf64_Xword	p_align;		/* Segment alignment */
-+} Elf64_Phdr;
-+
-+/* Legal values for p_type (segment type).  */
-+
-+#define	PT_NULL		0		/* Program header table entry unused */
-+#define PT_LOAD		1		/* Loadable program segment */
-+#define PT_DYNAMIC	2		/* Dynamic linking information */
-+#define PT_INTERP	3		/* Program interpreter */
-+#define PT_NOTE		4		/* Auxiliary information */
-+#define PT_SHLIB	5		/* Reserved */
-+#define PT_PHDR		6		/* Entry for header table itself */
-+#define PT_TLS		7		/* Thread-local storage segment */
-+#define	PT_NUM		8		/* Number of defined types */
-+#define PT_LOOS		0x60000000	/* Start of OS-specific */
-+#define PT_GNU_EH_FRAME	0x6474e550	/* GCC .eh_frame_hdr segment */
-+#define PT_GNU_STACK	0x6474e551	/* Indicates stack executability */
-+#define PT_LOSUNW	0x6ffffffa
-+#define PT_SUNWBSS	0x6ffffffa	/* Sun Specific segment */
-+#define PT_SUNWSTACK	0x6ffffffb	/* Stack segment */
-+#define PT_HISUNW	0x6fffffff
-+#define PT_HIOS		0x6fffffff	/* End of OS-specific */
-+#define PT_LOPROC	0x70000000	/* Start of processor-specific */
-+#define PT_HIPROC	0x7fffffff	/* End of processor-specific */
-+
-+/* Legal values for p_flags (segment flags).  */
-+
-+#define PF_X		(1 << 0)	/* Segment is executable */
-+#define PF_W		(1 << 1)	/* Segment is writable */
-+#define PF_R		(1 << 2)	/* Segment is readable */
-+#define PF_MASKOS	0x0ff00000	/* OS-specific */
-+#define PF_MASKPROC	0xf0000000	/* Processor-specific */
-+
-+/* Legal values for note segment descriptor types for core files. */
-+
-+#define NT_PRSTATUS	1		/* Contains copy of prstatus struct */
-+#define NT_FPREGSET	2		/* Contains copy of fpregset struct */
-+#define NT_PRPSINFO	3		/* Contains copy of prpsinfo struct */
-+#define NT_PRXREG	4		/* Contains copy of prxregset struct */
-+#define NT_TASKSTRUCT	4		/* Contains copy of task structure */
-+#define NT_PLATFORM	5		/* String from sysinfo(SI_PLATFORM) */
-+#define NT_AUXV		6		/* Contains copy of auxv array */
-+#define NT_GWINDOWS	7		/* Contains copy of gwindows struct */
-+#define NT_ASRS		8		/* Contains copy of asrset struct */
-+#define NT_PSTATUS	10		/* Contains copy of pstatus struct */
-+#define NT_PSINFO	13		/* Contains copy of psinfo struct */
-+#define NT_PRCRED	14		/* Contains copy of prcred struct */
-+#define NT_UTSNAME	15		/* Contains copy of utsname struct */
-+#define NT_LWPSTATUS	16		/* Contains copy of lwpstatus struct */
-+#define NT_LWPSINFO	17		/* Contains copy of lwpinfo struct */
-+#define NT_PRFPXREG	20		/* Contains copy of fprxregset struct*/
-+
-+/* Legal values for the note segment descriptor types for object files.  */
-+
-+#define NT_VERSION	1		/* Contains a version string.  */
-+
-+
-+/* Dynamic section entry.  */
-+
-+typedef struct
-+{
-+  Elf32_Sword	d_tag;			/* Dynamic entry type */
-+  union
-+    {
-+      Elf32_Word d_val;			/* Integer value */
-+      Elf32_Addr d_ptr;			/* Address value */
-+    } d_un;
-+} Elf32_Dyn;
-+
-+typedef struct
-+{
-+  Elf64_Sxword	d_tag;			/* Dynamic entry type */
-+  union
-+    {
-+      Elf64_Xword d_val;		/* Integer value */
-+      Elf64_Addr d_ptr;			/* Address value */
-+    } d_un;
-+} Elf64_Dyn;
-+
-+/* Legal values for d_tag (dynamic entry type).  */
-+
-+#define DT_NULL		0		/* Marks end of dynamic section */
-+#define DT_NEEDED	1		/* Name of needed library */
-+#define DT_PLTRELSZ	2		/* Size in bytes of PLT relocs */
-+#define DT_PLTGOT	3		/* Processor defined value */
-+#define DT_HASH		4		/* Address of symbol hash table */
-+#define DT_STRTAB	5		/* Address of string table */
-+#define DT_SYMTAB	6		/* Address of symbol table */
-+#define DT_RELA		7		/* Address of Rela relocs */
-+#define DT_RELASZ	8		/* Total size of Rela relocs */
-+#define DT_RELAENT	9		/* Size of one Rela reloc */
-+#define DT_STRSZ	10		/* Size of string table */
-+#define DT_SYMENT	11		/* Size of one symbol table entry */
-+#define DT_INIT		12		/* Address of init function */
-+#define DT_FINI		13		/* Address of termination function */
-+#define DT_SONAME	14		/* Name of shared object */
-+#define DT_RPATH	15		/* Library search path (deprecated) */
-+#define DT_SYMBOLIC	16		/* Start symbol search here */
-+#define DT_REL		17		/* Address of Rel relocs */
-+#define DT_RELSZ	18		/* Total size of Rel relocs */
-+#define DT_RELENT	19		/* Size of one Rel reloc */
-+#define DT_PLTREL	20		/* Type of reloc in PLT */
-+#define DT_DEBUG	21		/* For debugging; unspecified */
-+#define DT_TEXTREL	22		/* Reloc might modify .text */
-+#define DT_JMPREL	23		/* Address of PLT relocs */
-+#define	DT_BIND_NOW	24		/* Process relocations of object */
-+#define	DT_INIT_ARRAY	25		/* Array with addresses of init fct */
-+#define	DT_FINI_ARRAY	26		/* Array with addresses of fini fct */
-+#define	DT_INIT_ARRAYSZ	27		/* Size in bytes of DT_INIT_ARRAY */
-+#define	DT_FINI_ARRAYSZ	28		/* Size in bytes of DT_FINI_ARRAY */
-+#define DT_RUNPATH	29		/* Library search path */
-+#define DT_FLAGS	30		/* Flags for the object being loaded */
-+#define DT_ENCODING	32		/* Start of encoded range */
-+#define DT_PREINIT_ARRAY 32		/* Array with addresses of preinit fct*/
-+#define DT_PREINIT_ARRAYSZ 33		/* size in bytes of DT_PREINIT_ARRAY */
-+#define	DT_NUM		34		/* Number used */
-+#define DT_LOOS		0x6000000d	/* Start of OS-specific */
-+#define DT_HIOS		0x6ffff000	/* End of OS-specific */
-+#define DT_LOPROC	0x70000000	/* Start of processor-specific */
-+#define DT_HIPROC	0x7fffffff	/* End of processor-specific */
-+#define	DT_PROCNUM	DT_MIPS_NUM	/* Most used by any processor */
-+
-+/* DT_* entries which fall between DT_VALRNGHI & DT_VALRNGLO use the
-+   Dyn.d_un.d_val field of the Elf*_Dyn structure.  This follows Sun's
-+   approach.  */
-+#define DT_VALRNGLO	0x6ffffd00
-+#define DT_GNU_PRELINKED 0x6ffffdf5	/* Prelinking timestamp */
-+#define DT_GNU_CONFLICTSZ 0x6ffffdf6	/* Size of conflict section */
-+#define DT_GNU_LIBLISTSZ 0x6ffffdf7	/* Size of library list */
-+#define DT_CHECKSUM	0x6ffffdf8
-+#define DT_PLTPADSZ	0x6ffffdf9
-+#define DT_MOVEENT	0x6ffffdfa
-+#define DT_MOVESZ	0x6ffffdfb
-+#define DT_FEATURE_1	0x6ffffdfc	/* Feature selection (DTF_*).  */
-+#define DT_POSFLAG_1	0x6ffffdfd	/* Flags for DT_* entries, effecting
-+					   the following DT_* entry.  */
-+#define DT_SYMINSZ	0x6ffffdfe	/* Size of syminfo table (in bytes) */
-+#define DT_SYMINENT	0x6ffffdff	/* Entry size of syminfo */
-+#define DT_VALRNGHI	0x6ffffdff
-+#define DT_VALTAGIDX(tag)	(DT_VALRNGHI - (tag))	/* Reverse order! */
-+#define DT_VALNUM 12
-+
-+/* DT_* entries which fall between DT_ADDRRNGHI & DT_ADDRRNGLO use the
-+   Dyn.d_un.d_ptr field of the Elf*_Dyn structure.
-+
-+   If any adjustment is made to the ELF object after it has been
-+   built these entries will need to be adjusted.  */
-+#define DT_ADDRRNGLO	0x6ffffe00
-+#define DT_GNU_CONFLICT	0x6ffffef8	/* Start of conflict section */
-+#define DT_GNU_LIBLIST	0x6ffffef9	/* Library list */
-+#define DT_CONFIG	0x6ffffefa	/* Configuration information.  */
-+#define DT_DEPAUDIT	0x6ffffefb	/* Dependency auditing.  */
-+#define DT_AUDIT	0x6ffffefc	/* Object auditing.  */
-+#define	DT_PLTPAD	0x6ffffefd	/* PLT padding.  */
-+#define	DT_MOVETAB	0x6ffffefe	/* Move table.  */
-+#define DT_SYMINFO	0x6ffffeff	/* Syminfo table.  */
-+#define DT_ADDRRNGHI	0x6ffffeff
-+#define DT_ADDRTAGIDX(tag)	(DT_ADDRRNGHI - (tag))	/* Reverse order! */
-+#define DT_ADDRNUM 10
-+
-+/* The versioning entry types.  The next are defined as part of the
-+   GNU extension.  */
-+#define DT_VERSYM	0x6ffffff0
-+
-+#define DT_RELACOUNT	0x6ffffff9
-+#define DT_RELCOUNT	0x6ffffffa
-+
-+/* These were chosen by Sun.  */
-+#define DT_FLAGS_1	0x6ffffffb	/* State flags, see DF_1_* below.  */
-+#define	DT_VERDEF	0x6ffffffc	/* Address of version definition
-+					   table */
-+#define	DT_VERDEFNUM	0x6ffffffd	/* Number of version definitions */
-+#define	DT_VERNEED	0x6ffffffe	/* Address of table with needed
-+					   versions */
-+#define	DT_VERNEEDNUM	0x6fffffff	/* Number of needed versions */
-+#define DT_VERSIONTAGIDX(tag)	(DT_VERNEEDNUM - (tag))	/* Reverse order! */
-+#define DT_VERSIONTAGNUM 16
-+
-+/* Sun added these machine-independent extensions in the "processor-specific"
-+   range.  Be compatible.  */
-+#define DT_AUXILIARY    0x7ffffffd      /* Shared object to load before self */
-+#define DT_FILTER       0x7fffffff      /* Shared object to get values from */
-+#define DT_EXTRATAGIDX(tag)	((Elf32_Word)-((Elf32_Sword) (tag) <<1>>1)-1)
-+#define DT_EXTRANUM	3
-+
-+/* Values of `d_un.d_val' in the DT_FLAGS entry.  */
-+#define DF_ORIGIN	0x00000001	/* Object may use DF_ORIGIN */
-+#define DF_SYMBOLIC	0x00000002	/* Symbol resolutions starts here */
-+#define DF_TEXTREL	0x00000004	/* Object contains text relocations */
-+#define DF_BIND_NOW	0x00000008	/* No lazy binding for this object */
-+#define DF_STATIC_TLS	0x00000010	/* Module uses the static TLS model */
-+
-+/* State flags selectable in the `d_un.d_val' element of the DT_FLAGS_1
-+   entry in the dynamic section.  */
-+#define DF_1_NOW	0x00000001	/* Set RTLD_NOW for this object.  */
-+#define DF_1_GLOBAL	0x00000002	/* Set RTLD_GLOBAL for this object.  */
-+#define DF_1_GROUP	0x00000004	/* Set RTLD_GROUP for this object.  */
-+#define DF_1_NODELETE	0x00000008	/* Set RTLD_NODELETE for this object.*/
-+#define DF_1_LOADFLTR	0x00000010	/* Trigger filtee loading at runtime.*/
-+#define DF_1_INITFIRST	0x00000020	/* Set RTLD_INITFIRST for this object*/
-+#define DF_1_NOOPEN	0x00000040	/* Set RTLD_NOOPEN for this object.  */
-+#define DF_1_ORIGIN	0x00000080	/* $ORIGIN must be handled.  */
-+#define DF_1_DIRECT	0x00000100	/* Direct binding enabled.  */
-+#define DF_1_TRANS	0x00000200
-+#define DF_1_INTERPOSE	0x00000400	/* Object is used to interpose.  */
-+#define DF_1_NODEFLIB	0x00000800	/* Ignore default lib search path.  */
-+#define DF_1_NODUMP	0x00001000	/* Object can't be dldump'ed.  */
-+#define DF_1_CONFALT	0x00002000	/* Configuration alternative created.*/
-+#define DF_1_ENDFILTEE	0x00004000	/* Filtee terminates filters search. */
-+#define	DF_1_DISPRELDNE	0x00008000	/* Disp reloc applied at build time. */
-+#define	DF_1_DISPRELPND	0x00010000	/* Disp reloc applied at run-time.  */
-+
-+/* Flags for the feature selection in DT_FEATURE_1.  */
-+#define DTF_1_PARINIT	0x00000001
-+#define DTF_1_CONFEXP	0x00000002
-+
-+/* Flags in the DT_POSFLAG_1 entry effecting only the next DT_* entry.  */
-+#define DF_P1_LAZYLOAD	0x00000001	/* Lazyload following object.  */
-+#define DF_P1_GROUPPERM	0x00000002	/* Symbols from next object are not
-+					   generally available.  */
-+
-+/* Version definition sections.  */
-+
-+typedef struct
-+{
-+  Elf32_Half	vd_version;		/* Version revision */
-+  Elf32_Half	vd_flags;		/* Version information */
-+  Elf32_Half	vd_ndx;			/* Version Index */
-+  Elf32_Half	vd_cnt;			/* Number of associated aux entries */
-+  Elf32_Word	vd_hash;		/* Version name hash value */
-+  Elf32_Word	vd_aux;			/* Offset in bytes to verdaux array */
-+  Elf32_Word	vd_next;		/* Offset in bytes to next verdef
-+					   entry */
-+} Elf32_Verdef;
-+
-+typedef struct
-+{
-+  Elf64_Half	vd_version;		/* Version revision */
-+  Elf64_Half	vd_flags;		/* Version information */
-+  Elf64_Half	vd_ndx;			/* Version Index */
-+  Elf64_Half	vd_cnt;			/* Number of associated aux entries */
-+  Elf64_Word	vd_hash;		/* Version name hash value */
-+  Elf64_Word	vd_aux;			/* Offset in bytes to verdaux array */
-+  Elf64_Word	vd_next;		/* Offset in bytes to next verdef
-+					   entry */
-+} Elf64_Verdef;
-+
-+
-+/* Legal values for vd_version (version revision).  */
-+#define VER_DEF_NONE	0		/* No version */
-+#define VER_DEF_CURRENT	1		/* Current version */
-+#define VER_DEF_NUM	2		/* Given version number */
-+
-+/* Legal values for vd_flags (version information flags).  */
-+#define VER_FLG_BASE	0x1		/* Version definition of file itself */
-+#define VER_FLG_WEAK	0x2		/* Weak version identifier */
-+
-+/* Versym symbol index values.  */
-+#define	VER_NDX_LOCAL		0	/* Symbol is local.  */
-+#define	VER_NDX_GLOBAL		1	/* Symbol is global.  */
-+#define	VER_NDX_LORESERVE	0xff00	/* Beginning of reserved entries.  */
-+#define	VER_NDX_ELIMINATE	0xff01	/* Symbol is to be eliminated.  */
-+
-+/* Auxialiary version information.  */
-+
-+typedef struct
-+{
-+  Elf32_Word	vda_name;		/* Version or dependency names */
-+  Elf32_Word	vda_next;		/* Offset in bytes to next verdaux
-+					   entry */
-+} Elf32_Verdaux;
-+
-+typedef struct
-+{
-+  Elf64_Word	vda_name;		/* Version or dependency names */
-+  Elf64_Word	vda_next;		/* Offset in bytes to next verdaux
-+					   entry */
-+} Elf64_Verdaux;
-+
-+
-+/* Version dependency section.  */
-+
-+typedef struct
-+{
-+  Elf32_Half	vn_version;		/* Version of structure */
-+  Elf32_Half	vn_cnt;			/* Number of associated aux entries */
-+  Elf32_Word	vn_file;		/* Offset of filename for this
-+					   dependency */
-+  Elf32_Word	vn_aux;			/* Offset in bytes to vernaux array */
-+  Elf32_Word	vn_next;		/* Offset in bytes to next verneed
-+					   entry */
-+} Elf32_Verneed;
-+
-+typedef struct
-+{
-+  Elf64_Half	vn_version;		/* Version of structure */
-+  Elf64_Half	vn_cnt;			/* Number of associated aux entries */
-+  Elf64_Word	vn_file;		/* Offset of filename for this
-+					   dependency */
-+  Elf64_Word	vn_aux;			/* Offset in bytes to vernaux array */
-+  Elf64_Word	vn_next;		/* Offset in bytes to next verneed
-+					   entry */
-+} Elf64_Verneed;
-+
-+
-+/* Legal values for vn_version (version revision).  */
-+#define VER_NEED_NONE	 0		/* No version */
-+#define VER_NEED_CURRENT 1		/* Current version */
-+#define VER_NEED_NUM	 2		/* Given version number */
-+
-+/* Auxiliary needed version information.  */
-+
-+typedef struct
-+{
-+  Elf32_Word	vna_hash;		/* Hash value of dependency name */
-+  Elf32_Half	vna_flags;		/* Dependency specific information */
-+  Elf32_Half	vna_other;		/* Unused */
-+  Elf32_Word	vna_name;		/* Dependency name string offset */
-+  Elf32_Word	vna_next;		/* Offset in bytes to next vernaux
-+					   entry */
-+} Elf32_Vernaux;
-+
-+typedef struct
-+{
-+  Elf64_Word	vna_hash;		/* Hash value of dependency name */
-+  Elf64_Half	vna_flags;		/* Dependency specific information */
-+  Elf64_Half	vna_other;		/* Unused */
-+  Elf64_Word	vna_name;		/* Dependency name string offset */
-+  Elf64_Word	vna_next;		/* Offset in bytes to next vernaux
-+					   entry */
-+} Elf64_Vernaux;
-+
-+
-+/* Legal values for vna_flags.  */
-+#define VER_FLG_WEAK	0x2		/* Weak version identifier */
-+
-+
-+/* Auxiliary vector.  */
-+
-+/* This vector is normally only used by the program interpreter.  The
-+   usual definition in an ABI supplement uses the name auxv_t.  The
-+   vector is not usually defined in a standard <elf.h> file, but it
-+   can't hurt.  We rename it to avoid conflicts.  The sizes of these
-+   types are an arrangement between the exec server and the pro