aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Kunze <thommycheck@gmx.de>2008-03-27 22:52:19 +0000
committerThomas Kunze <thommycheck@gmx.de>2008-03-27 22:52:19 +0000
commitc387c55213338679b3dee7c4e6c97f01b4806c6a (patch)
tree8c0f5568e78c373f9000251cd9fcaa7f6e418048
parente6dc7f865766178bd2aa9514eac2431d1cc0187a (diff)
parent6e80b7ada5b0175f0a97a7b3787ce059e8960bbe (diff)
downloadopenembedded-c387c55213338679b3dee7c4e6c97f01b4806c6a.tar.gz
merge of '42f9a5d8cedd5c5de2a24d72c0f84b019e7a5246'
and 'c474f6f48b0333b791017b2d12c15831e6d2b873'
-rw-r--r--classes/kernel.bbclass11
-rw-r--r--conf/distro/mamona.conf42
-rw-r--r--packages/binutils/binutils-2.16.1/.mtn2git_empty0
-rw-r--r--packages/binutils/binutils-2.16.1/binutils-2.16.91.0.6-objcopy-rename-errorcode.patch31
-rw-r--r--packages/binutils/binutils-cross_2.16.1.bb3
-rw-r--r--packages/binutils/binutils_2.16.1.bb14
-rw-r--r--packages/glibc/glibc-2.3.6/.mtn2git_empty0
-rw-r--r--packages/glibc/glibc-2.3.6/glibc-2.3.6-allow-gcc-4.1-powerpc32-initfini.s.patch28
-rw-r--r--packages/glibc/glibc-2.3.6/glibc-2.3.6-bind-already-defined-on-powerpc.patch65
-rw-r--r--packages/glibc/glibc-2.3.6/glibc-2.3.6-linuxthreads-allow-gcc-4.1-powerpc32-initfini.s.patch28
-rw-r--r--packages/glibc/glibc-2.3.6/late-install-loop-break.patch29
-rw-r--r--packages/glibc/glibc-initial_2.3.6.bb4
-rw-r--r--packages/glibc/glibc-intermediate_2.3.6.bb2
-rw-r--r--packages/glibc/glibc_2.3.6.bb89
-rw-r--r--packages/linux/linux-rp-2.6.24/sharpsl-rc-r1.patch10
-rw-r--r--packages/linux/linux-rp-2.6.24/sharpsl-rc-r2.patch180
-rw-r--r--packages/linux/linux-rp_2.6.24.bb9
-rw-r--r--packages/linux/linux.inc14
-rw-r--r--packages/meta/slugos-packages.bb1
19 files changed, 513 insertions, 47 deletions
diff --git a/classes/kernel.bbclass b/classes/kernel.bbclass
index a936e4deff..06ae2466ea 100644
--- a/classes/kernel.bbclass
+++ b/classes/kernel.bbclass
@@ -5,6 +5,8 @@ DEPENDS += "virtual/${TARGET_PREFIX}depmod-${@get_kernelmajorversion('${PV}')} v
KERNEL_IMAGETYPE ?= "zImage"
+# Add dependency on mkimage for kernels that build a uImage
+
python __anonymous () {
import bb
@@ -12,7 +14,7 @@ python __anonymous () {
kerneltype = bb.data.getVar('KERNEL_IMAGETYPE', d, 1) or ''
if kerneltype == 'uImage':
depends = bb.data.getVar("DEPENDS", d, 1)
- depends = "%s u-boot-mkimage-native" % depends
+ depends = "%s u-boot-mkimage-openmoko-native" % depends
bb.data.setVar("DEPENDS", depends, d)
}
@@ -61,6 +63,7 @@ PACKAGE_ARCH = "${MACHINE_ARCH}"
# U-Boot support
UBOOT_ENTRYPOINT ?= "20008000"
+UBOOT_LOADADDRESS ?= "${UBOOT_ENTRYPOINT}"
kernel_do_compile() {
unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS MACHINE
@@ -472,16 +475,16 @@ do_deploy() {
if test "x${KERNEL_IMAGETYPE}" = "xuImage" ; then
if test -e arch/${ARCH}/boot/compressed/vmlinux ; then
${OBJCOPY} -O binary -R .note -R .comment -S arch/${ARCH}/boot/compressed/vmlinux linux.bin
- uboot-mkimage -A ${ARCH} -O linux -T kernel -C none -a ${UBOOT_ENTRYPOINT} -e ${UBOOT_ENTRYPOINT} -n "${DISTRO_NAME}/${PV}/${MACHINE}" -d linux.bin ${DEPLOY_DIR_IMAGE}/uImage-${PV}-${PR}-${MACHINE}-${DATETIME}.bin
+ uboot-mkimage -A ${ARCH} -O linux -T kernel -C none -a ${UBOOT_LOADADDRESS} -e ${UBOOT_ENTRYPOINT} -n "${DISTRO_NAME}/${PV}/${MACHINE}" -d linux.bin ${DEPLOY_DIR_IMAGE}/uImage-${PV}-${PR}-${MACHINE}.bin
rm -f linux.bin
else
${OBJCOPY} -O binary -R .note -R .comment -S vmlinux linux.bin
rm -f linux.bin.gz
gzip -9 linux.bin
- uboot-mkimage -A ${ARCH} -O linux -T kernel -C gzip -a ${UBOOT_ENTRYPOINT} -e ${UBOOT_ENTRYPOINT} -n "${DISTRO_NAME}/${PV}/${MACHINE}" -d linux.bin.gz ${DEPLOY_DIR_IMAGE}/uImage-${PV}-${PR}-${MACHINE}-${DATETIME}.bin
+ uboot-mkimage -A ${ARCH} -O linux -T kernel -C gzip -a ${UBOOT_LOADADDRESS} -e ${UBOOT_ENTRYPOINT} -n "${DISTRO_NAME}/${PV}/${MACHINE}" -d linux.bin.gz ${DEPLOY_DIR_IMAGE}/uImage-${PV}-${PR}-${MACHINE}.bin
rm -f linux.bin.gz
fi
- package_stagefile_shell ${DEPLOY_DIR_IMAGE}/uImage-${PV}-${PR}-${MACHINE}-${DATETIME}.bin
+ package_stagefile_shell ${DEPLOY_DIR_IMAGE}/uImage-${PV}-${PR}-${MACHINE}.bin
fi
cd ${DEPLOY_DIR_IMAGE}
diff --git a/conf/distro/mamona.conf b/conf/distro/mamona.conf
index 43de9eb20e..fd4dba600a 100644
--- a/conf/distro/mamona.conf
+++ b/conf/distro/mamona.conf
@@ -21,7 +21,7 @@ CXXFLAGS += "-fvisibility-inlines-hidden"
# Kernel
# ======
-#
+
KERNEL = "kernel26"
MACHINE_KERNEL_VERSION = "2.6"
PREFERRED_VERSION_linux-omap1 ?= "2.6.22-omap1"
@@ -31,15 +31,12 @@ PREFERRED_VERSION_linux-libc-headers_nokia770 = "2.6.16.osso7"
# Toolchain
# =========
-#
-# gcc
-PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc-initial:gcc-cross-initial"
-PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc:gcc-cross"
-PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}g++:gcc-cross"
-
-PREFERRED_PROVIDER_virtual/i586-mamona-linux-libc-for-gcc = "glibc-intermediate"
# gcc
+PREFERRED_PROVIDERS_virtual/${TARGET_PREFIX}gcc-initial = "gcc-cross-initial"
+PREFERRED_PROVIDERS_virtual/${TARGET_PREFIX}gcc = "gcc-cross"
+PREFERRED_PROVIDERS_virtual/${TARGET_PREFIX}g++ = "gcc-cross"
+
PREFERRED_VERSION_gcc ?= "4.1.2"
PREFERRED_VERSION_gcc-cross ?= "4.1.2"
PREFERRED_VERSION_gcc-cross-sdk ?= "4.1.2"
@@ -51,40 +48,28 @@ PREFERRED_VERSION_binutils-cross ?= "2.18"
PREFERRED_VERSION_binutils-cross-sdk ?= "2.18"
# *libc
-# M_* set in conf/local.conf
TARGET_OS = "linux-gnueabi"
PREFERRED_PROVIDER_virtual/libiconv = "glibc"
PREFERRED_PROVIDER_virtual/libintl = "glibc"
PREFERRED_PROVIDER_virtual/libc = "glibc"
PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-initial ?= "glibc-initial"
-#FULL_OPTIMIZATION = "-fexpensive-optimizations -fomit-frame-pointer -frename-registers -Os"
-#BUILD_OPTIMIZATION = "-Os"
+PREFERRED_VERSION_glibc ?= "2.5"
+PREFERRED_VERSION_glibc-intermediate_i686 ?= "2.4"
+PREFERRED_VERSION_glibc-intermediate ?= "2.5"
+PREFERRED_VERSION_glibc-initial ?= "2.5"
+PREFERRED_VERSION_uclibc ?= "0.9.29"
# NPTL stuff
PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-for-gcc = "glibc-intermediate"
-PREFERRED_PROVIDER_virtual/arm-angstrom-linux-gnueabi-libc-for-gcc = "glibc-intermediate"
-PREFERRED_PROVIDER_virtual/arm-mamona-linux-gnueabi-libc-for-gcc = "glibc-intermediate"
-PREFERRED_PROVIDER_virtual/arm-linux-libc-for-gcc = "glibc-intermediate"
-
-PREFERRED_PROVIDER_virtual/arm-angstrom-linux-gnueabi-libc-for-gcc = "glibc-intermediate"
-PREFERRED_PROVIDER_virtual/armeb-angstrom-linux-gnueabi-libc-for-gcc = "glibc-intermediate"
-PREFERRED_PROVIDER_virtual/arm-angstrom-linux-libc-for-gcc = "glibc-intermediate"
-
PREFERRED_PROVIDER_virtual/arm-mamona-linux-gnueabi-libc-for-gcc = "glibc-intermediate"
PREFERRED_PROVIDER_virtual/armeb-mamona-linux-gnueabi-libc-for-gcc = "glibc-intermediate"
PREFERRED_PROVIDER_virtual/arm-mamona-linux-libc-for-gcc = "glibc-intermediate"
-# /NPTL
-
-PREFERRED_VERSION_glibc ?= "2.5"
-PREFERRED_VERSION_glibc-intermediate_i686 ?= "2.4"
-PREFERRED_VERSION_glibc-intermediate ?= "2.5"
-PREFERRED_VERSION_glibc-initial ?= "2.5"
-PREFERRED_VERSION_uclibc ?= "0.9.29"
+PREFERRED_PROVIDER_virtual/i586-mamona-linux-libc-for-gcc = "glibc-intermediate"
# Other Packages
# ==============
-#
+
PREFERRED_PROVIDER_virtual/update-alternatives-native ?= "update-alternatives-dpkg-native"
PREFERRED_PROVIDER_virtual/update-alternatives ?= "update-alternatives-dpkg"
PREFERRED_PROVIDER_virtual/ecore ?= "ecore-x11"
@@ -94,6 +79,7 @@ PREFERRED_PROVIDER_virtual/db ?= "db"
PREFERRED_PROVIDER_virtual/db-native ?= "db-native"
PREFERRED_PROVIDER_avahi = "avahi"
PREFERRED_PROVIDER_gconf = "gconf-dbus"
-PREFERRED_VERSION_hal_nokia770 = "0.5.7"
+PREFERRED_VERSION_apt = "0.7.6"
PREFERRED_VERSION_gpsd ?= "2.33"
+PREFERRED_VERSION_hal_nokia770 = "0.5.7" \ No newline at end of file
diff --git a/packages/binutils/binutils-2.16.1/.mtn2git_empty b/packages/binutils/binutils-2.16.1/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/binutils/binutils-2.16.1/.mtn2git_empty
diff --git a/packages/binutils/binutils-2.16.1/binutils-2.16.91.0.6-objcopy-rename-errorcode.patch b/packages/binutils/binutils-2.16.1/binutils-2.16.91.0.6-objcopy-rename-errorcode.patch
new file mode 100644
index 0000000000..4461bedd4e
--- /dev/null
+++ b/packages/binutils/binutils-2.16.1/binutils-2.16.91.0.6-objcopy-rename-errorcode.patch
@@ -0,0 +1,31 @@
+# strip (and objcopy) fail to set the error code if there is no
+# output file name and the rename of the stripped (or copied) file
+# fails, yet the command fails to do anything. This fixes both
+# objcopy and strip.
+#
+# modification by bero: Ported to 2.16.91.0.6
+#
+#Signed-off-by: John Bowler <jbowler@acm.org>
+#Signed-off-by: Bernhard Rosenkraenzer <bero@arklinux.org>
+--- binutils-2.16.91.0.6/binutils/objcopy.c.ark 2006-03-11 15:59:07.000000000 +0100
++++ binutils-2.16.91.0.6/binutils/objcopy.c 2006-03-11 15:59:45.000000000 +0100
+@@ -2593,7 +2593,8 @@
+ if (preserve_dates)
+ set_times (tmpname, &statbuf);
+ if (output_file == NULL)
+- smart_rename (tmpname, argv[i], preserve_dates);
++ if(smart_rename (tmpname, argv[i], preserve_dates))
++ hold_status = 1;
+ status = hold_status;
+ }
+ else
+@@ -3184,7 +3185,8 @@
+ {
+ if (preserve_dates)
+ set_times (tmpname, &statbuf);
+- smart_rename (tmpname, input_filename, preserve_dates);
++ if (smart_rename (tmpname, input_filename, preserve_dates))
++ status = 1;
+ }
+ else
+ unlink (tmpname);
diff --git a/packages/binutils/binutils-cross_2.16.1.bb b/packages/binutils/binutils-cross_2.16.1.bb
new file mode 100644
index 0000000000..d245f7d11a
--- /dev/null
+++ b/packages/binutils/binutils-cross_2.16.1.bb
@@ -0,0 +1,3 @@
+FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/binutils-${PV}"
+require binutils_${PV}.bb
+require binutils-cross.inc
diff --git a/packages/binutils/binutils_2.16.1.bb b/packages/binutils/binutils_2.16.1.bb
new file mode 100644
index 0000000000..cc92da3e35
--- /dev/null
+++ b/packages/binutils/binutils_2.16.1.bb
@@ -0,0 +1,14 @@
+
+CROSSTOOL_PATCH_URL = "http://www.kegel.com/crosstool/crosstool-0.43/patches/binutils-2.16.1/"
+SRC_URI = \
+ "${GNU_MIRROR}/binutils/binutils-${PV}.tar.bz2 \
+ ${CROSSTOOL_PATCH_URL}bfd-hash-tweak.patch;patch=1 \
+ ${CROSSTOOL_PATCH_URL}binutils-2.15-psignal.patch;patch=1 \
+ ${CROSSTOOL_PATCH_URL}binutils-skip-comments.patch;patch=1 \
+ ${CROSSTOOL_PATCH_URL}callahan.patch;patch=1 \
+ ${CROSSTOOL_PATCH_URL}cross-gprof.patch;patch=1 \
+ ${CROSSTOOL_PATCH_URL}stabs-tweak.patch;patch=1 \
+ file://binutils-2.16.91.0.6-objcopy-rename-errorcode.patch;patch=1"
+
+
+require binutils.inc
diff --git a/packages/glibc/glibc-2.3.6/.mtn2git_empty b/packages/glibc/glibc-2.3.6/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/glibc/glibc-2.3.6/.mtn2git_empty
diff --git a/packages/glibc/glibc-2.3.6/glibc-2.3.6-allow-gcc-4.1-powerpc32-initfini.s.patch b/packages/glibc/glibc-2.3.6/glibc-2.3.6-allow-gcc-4.1-powerpc32-initfini.s.patch
new file mode 100644
index 0000000000..4348d6f5d0
--- /dev/null
+++ b/packages/glibc/glibc-2.3.6/glibc-2.3.6-allow-gcc-4.1-powerpc32-initfini.s.patch
@@ -0,0 +1,28 @@
+fixes
+
+{BUILD_DIR}/build-glibc/csu/crtn.o: In function "dummy":
+{BUILD_DIR}/build-glibc/csu/crtn.S:14: multiple definition of "dummy"
+{BUILD_DIR}/build-glibc/csu/crti.o:{BUILD_DIR}/build-glibc/csu/crti.S:33: first defined here
+{BUILD_DIR}/build-glibc/csu/crtn.o: In function "_init":
+{BUILD_DIR}/build-glibc/csu/crtn.S:30: multiple definition of "_init"
+{BUILD_DIR}/build-glibc/csu/crti.o:{BUILD_DIR}/build-glibc/csu/crti.S:65: first defined here
+{BUILD_DIR}/build-glibc/csu/crtn.o: In function "_fini":
+{BUILD_DIR}/build-glibc/csu/crtn.S:25: multiple definition of "_fini"
+{BUILD_DIR}/build-glibc/csu/crti.o:{BUILD_DIR}/build-glibc/csu/crti.S:38: first defined here
+{BUILD_DIR}/build-glibc/csu/crti.o: In function "_fini":
+{BUILD_DIR}/build-glibc/csu/crti.S:(.init+0x20): undefined reference to "i_am_not_a_leaf"
+{BUILD_DIR}/build-glibc/csu/crtn.o: In function "_fini":
+{BUILD_DIR}/build-glibc/csu/crtn.S:(.init+0x40): undefined reference to "i_am_not_a_leaf"
+{BUILD_DIR}/build-glibc/csu/crtn.S:(.init+0x44): undefined reference to "i_am_not_a_leaf"
+
+--- glibc-2.3.6/sysdeps/powerpc/powerpc32/Makefile.org 2006-08-21 19:03:01.000000000 -0700
++++ glibc-2.3.6/sysdeps/powerpc/powerpc32/Makefile 2006-08-21 19:03:19.000000000 -0700
+@@ -21,7 +21,7 @@
+ ifneq ($(elf),no)
+ # The initfini generation code doesn't work in the presence of -fPIC, so
+ # we use -fpic instead which is much better.
+-CFLAGS-initfini.s = -g0 -fpic -O1
++CFLAGS-initfini.s = -g0 -fpic -O1 $(fno-unit-at-a-time)
+
+ # There is no benefit to using sdata for these objects, and the user
+ # of the library should be able to control what goes into sdata.
diff --git a/packages/glibc/glibc-2.3.6/glibc-2.3.6-bind-already-defined-on-powerpc.patch b/packages/glibc/glibc-2.3.6/glibc-2.3.6-bind-already-defined-on-powerpc.patch
new file mode 100644
index 0000000000..9938ef6973
--- /dev/null
+++ b/packages/glibc/glibc-2.3.6/glibc-2.3.6-bind-already-defined-on-powerpc.patch
@@ -0,0 +1,65 @@
+Fixes "Error: symbol `__bind' is already defined" error when building for PowerPC
+
+Patch taken from http://bugs.debian.org/343571
+
+
+--- x/sysdeps/powerpc/powerpc32/fpu/s_lround.S 2004-06-30 17:29:12.000000000 -0500
++++ x/sysdeps/powerpc/powerpc32/fpu/s_lround.S 2005-11-18 16:48:11.000000000 -0600
+@@ -88,7 +79,6 @@
+ b .L9
+ END (__lround)
+
+-strong_alias (__lround, __lround)
+ weak_alias (__lround, lround)
+
+ strong_alias (__lround, __lroundf)
+--- x/sysdeps/unix/sysv/linux/powerpc/powerpc32/socket.S 2005-12-16 01:04:21.000000000 -0600
++++ x/sysdeps/unix/sysv/linux/powerpc/powerpc32/socket.S 2005-12-16 01:06:26.000000000 -0600
+@@ -42,7 +42,11 @@
+ #define stackblock 20
+
+ #ifndef __socket
+-#define __socket P(__,socket)
++# ifndef NO_WEAK_ALIAS
++# define __socket P(__,socket)
++# else
++# define __socket socket
++# endif
+ #endif
+
+ .text
+@@ -116,4 +120,6 @@
+
+ PSEUDO_END (__socket)
+
++#ifndef NO_WEAK_ALIAS
+ weak_alias (__socket, socket)
++#endif
+--- x/sysdeps/unix/sysv/linux/powerpc/powerpc64/socket.S 2005-12-16 01:08:45.000000000 -0600
++++ x/sysdeps/unix/sysv/linux/powerpc/powerpc64/socket.S 2005-12-16 01:09:32.000000000 -0600
+@@ -41,12 +41,12 @@
+
+ #define stackblock 80 /* offset to socket parm area. */
+
+-#ifndef socket
+-/* If this is just socket.S leave it alone! */
+-#else
+ #ifndef __socket
+-#define __socket P(__,socket)
+-#endif
++# ifndef NO_WEAK_ALIAS
++# define __socket P(__,socket)
++# else
++# define __socket socket
++# endif
+ #endif
+
+ .text
+@@ -120,4 +120,6 @@
+ cfi_endproc
+ PSEUDO_END (__socket)
+
++#ifndef NO_WEAK_ALIAS
+ weak_alias (__socket, socket)
++#endif
+
diff --git a/packages/glibc/glibc-2.3.6/glibc-2.3.6-linuxthreads-allow-gcc-4.1-powerpc32-initfini.s.patch b/packages/glibc/glibc-2.3.6/glibc-2.3.6-linuxthreads-allow-gcc-4.1-powerpc32-initfini.s.patch
new file mode 100644
index 0000000000..9976eccef9
--- /dev/null
+++ b/packages/glibc/glibc-2.3.6/glibc-2.3.6-linuxthreads-allow-gcc-4.1-powerpc32-initfini.s.patch
@@ -0,0 +1,28 @@
+fixes
+
+{BUILD_DIR}/build-glibc/linuxthreads/crtn.o: In function "dummy":
+{BUILD_DIR}/build-glibc/linuxthreads/crtn.S:14: multiple definition of "dummy"
+{BUILD_DIR}/build-glibc/linuxthreads/crti.o:{BUILD_DIR}/build-glibc/linuxthreads/crti.S:33: first defined here
+{BUILD_DIR}/build-glibc/linuxthreads/crtn.o: In function "_fini":
+{BUILD_DIR}/build-glibc/linuxthreads/crtn.S:30: multiple definition of "_fini"
+{BUILD_DIR}/build-glibc/linuxthreads/crti.o:{BUILD_DIR}/build-glibc/linuxthreads/crti.S:65: first defined here
+{BUILD_DIR}/build-glibc/linuxthreads/crtn.o: In function "_init":
+{BUILD_DIR}/build-glibc/linuxthreads/crtn.S:23: multiple definition of "_init"
+{BUILD_DIR}/build-glibc/linuxthreads/crti.o:{BUILD_DIR}/build-glibc/linuxthreads/crti.S:37: first defined here
+{BUILD_DIR}/build-glibc/linuxthreads/crti.o: In function "_fini":
+{BUILD_DIR}/build-glibc/linuxthreads/crti.S:(.text+0x70): undefined reference to "i_am_not_a_leaf"
+{BUILD_DIR}/build-glibc/linuxthreads/crtn.o: In function "_fini":
+{BUILD_DIR}/build-glibc/linuxthreads/crtn.S:(.text+0x38): undefined reference to "i_am_not_a_leaf"
+collect2: ld returned 1 exit status
+
+--- glibc-2.3.6/linuxthreads/sysdeps/powerpc/Makefile.org 2003-02-17 20:33:17.000000000 +0000
++++ glibc-2.3.6/linuxthreads/sysdeps/powerpc/Makefile 2007-04-04 16:26:01.969067632 +0100
+@@ -1,6 +1,6 @@
+ ifeq ($(subdir):$(elf),linuxthreads:yes)
+ # See CFLAGS-initfini.s above; this is the same code.
+-CFLAGS-pt-initfini.s = -g0 -fpic -O1
++CFLAGS-pt-initfini.s = -g0 -fpic -O1 $(fno-unit-at-a-time)
+ endif
+ ifeq ($(subdir),csu)
+ gen-as-const-headers += tcb-offsets.sym
+
diff --git a/packages/glibc/glibc-2.3.6/late-install-loop-break.patch b/packages/glibc/glibc-2.3.6/late-install-loop-break.patch
new file mode 100644
index 0000000000..fc7d8b31e6
--- /dev/null
+++ b/packages/glibc/glibc-2.3.6/late-install-loop-break.patch
@@ -0,0 +1,29 @@
+--- glibc-2.3.6/Makerules Sat Sep 8 22:59:54 2007
++++ glibc-2.3.6/Makerules Sun Sep 9 01:04:29 2007
+@@ -154,26 +154,6 @@
+ common-before-compile = $(before-compile)
+ endif
+
+-ifndef subdir
+-# If a makefile needs to do something conditional on something that
+-# can only be figured out from headers, write a FOO.make.c input
+-# file that uses cpp contructs and contains @@@ LINE @@@ for each LINE
+-# to emit in the generated makefile, and use -include $(common-objpfx)FOO.make.
+-#
+-# We only generate these in the top-level makefile, to avoid any weirdness
+-# from subdir-specific makefile tweaks creeping in on an update.
+-$(common-objpfx)%.make: $(..)%.make.c $(..)Makerules $(common-before-compile)
+- rm -f $@T $@.dT
+- (echo '# Generated from $*.make.c by Makerules.'; \
+- $(CC) $(CFLAGS) $(CPPFLAGS) -E $< \
+- -MD -MP -MT '$$(common-objpfx)$*.make' -MF $@.dT \
+- | sed -n '/@@@/{s/@@@[ ]*\(.*\)@@@/\1/;s/[ ]*$$//p;}'; \
+- echo 'common-generated += $(@F)'; \
+- sed $(sed-remove-objpfx) $(sed-remove-dotdot) $@.dT; \
+- rm -f $@.dT) > $@T
+- mv -f $@T $@
+-endif
+-
+ ifdef subdir
+ sed-remove-dotdot := -e 's@ *\.\.\/\([^ \]*\)@ $$(..)\1@g' \
+ -e 's@^\.\.\/\([^ \]*\)@$$(..)\1@g'
diff --git a/packages/glibc/glibc-initial_2.3.6.bb b/packages/glibc/glibc-initial_2.3.6.bb
new file mode 100644
index 0000000000..8249cd696d
--- /dev/null
+++ b/packages/glibc/glibc-initial_2.3.6.bb
@@ -0,0 +1,4 @@
+require glibc_${PV}.bb
+require glibc-initial.inc
+
+FILESPATH = "${@base_set_filespath([ '${FILE_DIRNAME}/glibc-${PV}', '${FILE_DIRNAME}/glibc', '${FILE_DIRNAME}/files', '${FILE_DIRNAME}' ], d)}"
diff --git a/packages/glibc/glibc-intermediate_2.3.6.bb b/packages/glibc/glibc-intermediate_2.3.6.bb
new file mode 100644
index 0000000000..f7113ba04c
--- /dev/null
+++ b/packages/glibc/glibc-intermediate_2.3.6.bb
@@ -0,0 +1,2 @@
+require glibc_${PV}.bb
+require glibc-intermediate.inc
diff --git a/packages/glibc/glibc_2.3.6.bb b/packages/glibc/glibc_2.3.6.bb
new file mode 100644
index 0000000000..bebc48dfa5
--- /dev/null
+++ b/packages/glibc/glibc_2.3.6.bb
@@ -0,0 +1,89 @@
+require glibc.inc
+
+#FILESPATH = "${@base_set_filespath([ '${FILE_DIRNAME}/glibc-2.3.6', '${FILE_DIRNAME}/orig/glibc', '${FILE_DIRNAME}/orig/files', '${FILE_DIRNAME}/orig' ], d)}"
+
+GLIBC_ADDONS ?= "linuxthreads"
+
+# ${CROSSTOOL_PATCH_URL}glibc-2.3.5-cygwin.patch;patch=1
+
+CROSSTOOL_PATCH_URL = "http://www.kegel.com/crosstool/crosstool-0.43/patches/glibc-2.3.6/"
+SRC_URI = "ftp://ftp.gnu.org/pub/gnu/glibc/glibc-${PV}.tar.bz2 \
+ ftp://ftp.gnu.org/pub/gnu/glibc/glibc-linuxthreads-${PV}.tar.bz2 \
+ ${CROSSTOOL_PATCH_URL}glibc-2.3.5-sh-lowlevellock.patch;patch=1 \
+ ${CROSSTOOL_PATCH_URL}glibc-2.3.5-sh-memset.patch;patch=1 \
+ ${CROSSTOOL_PATCH_URL}glibc-2.3.6-allow-gcc-4.0-arm.patch;patch=1 \
+ ${CROSSTOOL_PATCH_URL}glibc-2.3.6-allow-gcc-4.0-elf.patch;patch=1 \
+ ${CROSSTOOL_PATCH_URL}glibc-2.3.6-configure-apple-as.patch;patch=1 \
+ ${CROSSTOOL_PATCH_URL}glibc-2.3.6-fix-pr631.patch;patch=1 \
+ ${CROSSTOOL_PATCH_URL}glibc-fp-byteorder.patch;patch=1 \
+ ${CROSSTOOL_PATCH_URL}glibc-mips-bootstrap-gcc-header-install.patch;patch=1 \
+ ${CROSSTOOL_PATCH_URL}make-install-lib-all.patch;patch=1 \
+ ${CROSSTOOL_PATCH_URL}maybe/glibc-2.3.6-allow-gcc-4.0-powerpc32.patch;patch=1 \
+ file://glibc-2.3.6-bind-already-defined-on-powerpc.patch;patch=1 \
+ file://glibc-2.3.6-allow-gcc-4.1-powerpc32-initfini.s.patch;patch=1 \
+ file://glibc-2.3.6-linuxthreads-allow-gcc-4.1-powerpc32-initfini.s.patch;patch=1 \
+ file://late-install-loop-break.patch \
+ \
+ file://etc/ld.so.conf \
+ file://generate-supported.mk"
+
+S = "${WORKDIR}/glibc-${PV}"
+B = "${WORKDIR}/build-${TARGET_SYS}"
+
+EXTRA_OECONF = "--enable-kernel=${OLDEST_KERNEL} \
+ --without-cvs --disable-profile --disable-debug --without-gd \
+ --enable-clocale=gnu \
+ --enable-add-ons=${GLIBC_ADDONS} \
+ --with-headers=${STAGING_INCDIR} \
+ ${GLIBC_EXTRA_OECONF}"
+
+EXTRA_OECONF += "${@get_glibc_fpu_setting(bb, d)}"
+
+glibc_do_unpack () {
+ mv "${WORKDIR}/linuxthreads" "${WORKDIR}/linuxthreads_db" "${S}/"
+}
+
+python do_unpack () {
+ bb.build.exec_func('base_do_unpack', d)
+ bb.build.exec_func('glibc_do_unpack', d)
+}
+
+do_configure () {
+# override this function to avoid the autoconf/automake/aclocal/autoheader
+# calls for now
+# don't pass CPPFLAGS into configure, since it upsets the kernel-headers
+# version check and doesn't really help with anything
+ if [ -z "`which rpcgen`" ]; then
+ echo "rpcgen not found. Install glibc-devel."
+ exit 1
+ fi
+ (cd ${S} && gnu-configize) || die "failure in running gnu-configize"
+ CPPFLAGS="" oe_runconf
+}
+
+rpcsvc = "bootparam_prot.x nlm_prot.x rstat.x \
+ yppasswd.x klm_prot.x rex.x sm_inter.x mount.x \
+ rusers.x spray.x nfs_prot.x rquota.x key_prot.x"
+
+do_compile () {
+ # this really is arm specific
+ touch ${S}/sysdeps/arm/framestate.c
+ # -Wl,-rpath-link <staging>/lib in LDFLAGS can cause breakage if another glibc is in staging
+ unset LDFLAGS
+ base_do_compile
+ (
+ cd ${S}/sunrpc/rpcsvc
+ for r in ${rpcsvc}; do
+ h=`echo $r|sed -e's,\.x$,.h,'`
+ rpcgen -h $r -o $h || oewarn "unable to generate header for $r"
+ done
+ )
+}
+
+do_stage_prepend() {
+ ( cd ${S} ; patch -p1 < ${WORKDIR}/late-install-loop-break.patch )
+}
+
+require glibc-stage.inc
+
+require glibc-package.bbclass
diff --git a/packages/linux/linux-rp-2.6.24/sharpsl-rc-r1.patch b/packages/linux/linux-rp-2.6.24/sharpsl-rc-r1.patch
index 32a94c7cea..bed41c55d5 100644
--- a/packages/linux/linux-rp-2.6.24/sharpsl-rc-r1.patch
+++ b/packages/linux/linux-rp-2.6.24/sharpsl-rc-r1.patch
@@ -1,3 +1,13 @@
+This patch adds support for Sharp CE-RH2 on Spitz.
+
+It is not clean enough to be upstreamed:
+- It is a bit syslog-noisy.
+- Does not support other Zaurus models.
+- Maybe split to more parts:
+ * MAX1111 driver
+ * linear input device
+ * virtual keyboard on top of linear input device
+
Index: linux-2.6.24/arch/arm/mach-pxa/spitz.c
===================================================================
--- linux-2.6.24.orig/arch/arm/mach-pxa/spitz.c 2008-03-10 17:05:37.000000000 +0000
diff --git a/packages/linux/linux-rp-2.6.24/sharpsl-rc-r2.patch b/packages/linux/linux-rp-2.6.24/sharpsl-rc-r2.patch
new file mode 100644
index 0000000000..3927ffeccf
--- /dev/null
+++ b/packages/linux/linux-rp-2.6.24/sharpsl-rc-r2.patch
@@ -0,0 +1,180 @@
+This patch adds support for Sharp CE-RH2 on Akita and CE-RH1 on C7x0.
+
+This patch is a bit ugly:
+- Device specific functions should be moved to platform infrastructure.
+- Maybe define generic *_scoopexp functions handling Akita x Spitz differences.
+
+Index: linux-2.6.24/drivers/input/keyboard/sharpsl_rc.c
+===================================================================
+--- linux-2.6.24.orig/drivers/input/keyboard/sharpsl_rc.c 2008-03-07 20:47:28.000000000 +0000
++++ linux-2.6.24/drivers/input/keyboard/sharpsl_rc.c 2008-03-07 22:36:40.000000000 +0000
+@@ -21,12 +21,10 @@
+ #include <linux/module.h>
+ #include <linux/slab.h>
+
+-#ifdef CONFIG_MACH_SPITZ
++#include <asm/mach-types.h>
+ #include <asm/arch/spitz.h>
+-#endif
+-#ifdef CONFIG_MACH_CORGI
++#include <asm/arch/akita.h>
+ #include <asm/arch/corgi.h>
+-#endif
+
+ #include <asm/arch/hardware.h>
+ #include <asm/arch/pxa-regs.h>
+@@ -42,12 +40,8 @@
+ unsigned char key;
+ };
+
+-#ifdef CONFIG_MACH_SPITZ
+-#define REMOTE_AKIN_PULLUP SPITZ_SCP2_AKIN_PULLUP
+-#define REMOTE_SCOOP_DEVICE spitzscoop2_device
+-#define REMOTE_GPIO_INT SPITZ_GPIO_AK_INT
+-#define REMOTE_IRQ_INT SPITZ_IRQ_GPIO_AK_INT
+-static struct remote_control_key remote_keys[] = {
++static struct remote_control_key remote_keys_spitz[] = {
++ /* CE-RH2 values */
+ { 25, 35, KEY_STOPCD},
+ { 55, 65, KEY_PLAYPAUSE},
+ { 85, 95, KEY_NEXTSONG},
+@@ -56,23 +50,15 @@
+ { 180, 190, KEY_MUTE},
+ { 215, 225, KEY_VOLUMEDOWN},
+ };
+-#endif
+-#ifdef CONFIG_MACH_CORGI
+-#define REMOTE_AKIN_PULLUP CORGI_SCP_AKIN_PULLUP
+-#define REMOTE_SCOOP_DEVICE corgiscoop_device
+-#define REMOTE_GPIO_INT CORGI_GPIO_AK_INT
+-#define REMOTE_IRQ_INT CORGI_IRQ_GPIO_AK_INT
+-static struct remote_control_key remote_keys[] = {
+- //These need to be fixed for the CE-RH1's values
+- { 25, 35, KEY_STOPCD},
+- { 55, 65, KEY_PLAYPAUSE},
+- { 85, 95, KEY_NEXTSONG},
+- { 115, 125, KEY_VOLUMEUP},
+- { 145, 155, KEY_PREVIOUSSONG},
+- { 180, 190, KEY_MUTE},
+- { 215, 225, KEY_VOLUMEDOWN},
++static struct remote_control_key remote_keys_corgi[] = {
++ /* CE-RH1 values */
++ { 27, 35, KEY_STOPCD},
++ { 7, 13, KEY_PLAYPAUSE},
++ { 77, 93, KEY_NEXTSONG},
++ { 115, 132, KEY_VOLUMEUP},
++ { 46, 58, KEY_PREVIOUSSONG},
++ { 170, 186, KEY_VOLUMEDOWN},
+ };
+-#endif
+
+ #define RELEASE_HI 230
+ #define MAX_EARPHONE 6
+@@ -98,9 +84,17 @@
+ static int get_remocon_raw(void)
+ {
+ int i, val;
++ struct remote_control_key *remote_keys;
++
++ if (machine_is_borzoi() || machine_is_spitz() || machine_is_akita())
++ remote_keys = remote_keys_spitz;
++ else
++ remote_keys = remote_keys_corgi;
+
+ val = sharpsl_pm_pxa_read_max1111(MAX1111_REMCOM);
+- for (i = 0; i < ARRAY_SIZE(remote_keys); ++i) {
++ for (i = 0; i < (machine_is_borzoi() || machine_is_spitz() || machine_is_akita() ?
++ ARRAY_SIZE(remote_keys_spitz) : ARRAY_SIZE(remote_keys_corgi));
++ ++i) {
+ if (val >= remote_keys[i].min
+ && val <= remote_keys[i].max) {
+ printk("get_remocon_raw: VAL=%i, KEY=%i\n", val, remote_keys[i].key);
+@@ -121,8 +115,12 @@
+ data->state = 0;
+ data->last_key = 0;
+
+- reset_scoop_gpio(&REMOTE_SCOOP_DEVICE.dev, REMOTE_AKIN_PULLUP);
+-
++ if (machine_is_borzoi() || machine_is_spitz())
++ reset_scoop_gpio(&platform_scoop_config->devs[1].dev, SPITZ_SCP2_AKIN_PULLUP);
++ else if (machine_is_akita())
++ akita_reset_ioexp(&akitaioexp_device.dev, AKITA_IOEXP_AKIN_PULLUP);
++ else
++ reset_scoop_gpio(&platform_scoop_config->devs[0].dev, CORGI_SCP_AKIN_PULLUP);
+ mod_timer(&data->rctimer, jiffies + msecs_to_jiffies(RC_POLL_MS));
+ }
+ return IRQ_HANDLED;
+@@ -182,7 +180,12 @@
+ if (timer) {
+ mod_timer(&data->rctimer, jiffies + msecs_to_jiffies(RC_POLL_MS));
+ } else {
+- set_scoop_gpio(&REMOTE_SCOOP_DEVICE.dev, REMOTE_AKIN_PULLUP);
++ if (machine_is_borzoi() || machine_is_spitz())
++ set_scoop_gpio(&platform_scoop_config->devs[1].dev, SPITZ_SCP2_AKIN_PULLUP);
++ else if (machine_is_akita())
++ akita_set_ioexp(&akitaioexp_device.dev, AKITA_IOEXP_AKIN_PULLUP);
++ else
++ set_scoop_gpio(&platform_scoop_config->devs[0].dev, CORGI_SCP_AKIN_PULLUP);
+ data->handling_press = 0;
+ }
+ }
+@@ -192,6 +195,7 @@
+ struct sharpsl_rc *sharpsl_rc;
+ struct input_dev *input_dev;
+ int i, ret;
++ struct remote_control_key *remote_keys;
+
+ dev_dbg(&pdev->dev, "sharpsl_rc_probe\n");
+
+@@ -225,17 +229,32 @@
+
+ input_dev->evbit[0] = BIT(EV_KEY);
+
+- for (i = 0; i <= ARRAY_SIZE(remote_keys); i++)
++ if (machine_is_borzoi() || machine_is_spitz() || machine_is_akita())
++ remote_keys = remote_keys_spitz;
++ else
++ remote_keys = remote_keys_corgi;
++ for (i = 0; i < (machine_is_borzoi() || machine_is_spitz() || machine_is_akita() ?
++ ARRAY_SIZE(remote_keys_spitz) : ARRAY_SIZE(remote_keys_corgi));
++ ++i)
+ set_bit(remote_keys[i].key, input_dev->keybit);
+
+ input_register_device(sharpsl_rc->input);
+
+- pxa_gpio_mode(REMOTE_GPIO_INT | GPIO_IN);
+- ret = request_irq(REMOTE_IRQ_INT,
+- sharpsl_rc_interrupt,
+- IRQF_DISABLED | IRQF_TRIGGER_RISING | IRQF_TRIGGER_FALLING | IRQF_SHARED,
+- "sharpsl_rc",
+- sharpsl_rc);
++ if (machine_is_borzoi() || machine_is_spitz() || machine_is_akita()) {
++ pxa_gpio_mode(SPITZ_GPIO_AK_INT | GPIO_IN);
++ ret = request_irq(SPITZ_IRQ_GPIO_AK_INT,
++ sharpsl_rc_interrupt,
++ IRQF_DISABLED | IRQF_TRIGGER_RISING | IRQF_TRIGGER_FALLING | IRQF_SHARED,
++ "sharpsl_rc",
++ sharpsl_rc);
++ } else {
++ pxa_gpio_mode(CORGI_GPIO_AK_INT | GPIO_IN);
++ ret = request_irq(CORGI_IRQ_GPIO_AK_INT,
++ sharpsl_rc_interrupt,
++ IRQF_DISABLED | IRQF_TRIGGER_RISING | IRQF_TRIGGER_FALLING | IRQF_SHARED,
++ "sharpsl_rc",
++ sharpsl_rc);
++ }
+ if (ret < 0) {
+ dev_dbg(&pdev->dev, "Can't get IRQ: %d!\n", i);
+ kfree(sharpsl_rc);
+@@ -252,7 +271,10 @@
+
+ dev_dbg(&pdev->dev, "sharpsl_rc_remove\n");
+
+- free_irq(REMOTE_IRQ_INT, sharpsl_rc);
++ if (machine_is_borzoi() || machine_is_spitz() || machine_is_akita())
++ free_irq(SPITZ_IRQ_GPIO_AK_INT, sharpsl_rc);
++ else
++ free_irq(CORGI_IRQ_GPIO_AK_INT, sharpsl_rc);
+ del_timer_sync(&sharpsl_rc->rctimer);
+ input_unregister_device(sharpsl_rc->input);
+ kfree(sharpsl_rc);
diff --git a/packages/linux/linux-rp_2.6.24.bb b/packages/linux/linux-rp_2.6.24.bb
index 41f804337f..32a3b0544e 100644
--- a/packages/linux/linux-rp_2.6.24.bb
+++ b/packages/linux/linux-rp_2.6.24.bb
@@ -1,6 +1,6 @@
require linux-rp.inc
-PR = "r5"
+PR = "r6"
DEFAULT_PREFERENCE = "-1"
DEFAULT_PREFERENCE_collie = "1"
@@ -183,6 +183,7 @@ SRC_URI_append_akita = "\
file://mtd-module.patch;patch=1;status=external \
file://wm8750-treble.patch;patch=1;status=external \
file://sharpsl-rc-r1.patch;patch=1 \
+ file://sharpsl-rc-r2.patch;patch=1 \
"
SRC_URI_append_spitz = "\
@@ -190,6 +191,12 @@ SRC_URI_append_spitz = "\
file://wm8750-treble.patch;patch=1;status=external \
file://spitz_h_rewrite.patch;patch=1;status=external \
file://sharpsl-rc-r1.patch;patch=1 \
+ file://sharpsl-rc-r2.patch;patch=1 \
+ "
+
+SRC_URI_append_c7x0 = "\
+ file://sharpsl-rc-r1.patch;patch=1 \
+ file://sharpsl-rc-r2.patch;patch=1 \
"
SRC_URI_append_htcuniversal ="\
diff --git a/packages/linux/linux.inc b/packages/linux/linux.inc
index 66636ba50e..e46061610d 100644
--- a/packages/linux/linux.inc
+++ b/packages/linux/linux.inc
@@ -4,20 +4,6 @@ LICENSE = "GPL"
inherit kernel
-# Add dependency on mkimage for kernels that build a uImage
-
-python __anonymous () {
-
- import bb
-
- kerneltype = bb.data.getVar('KERNEL_IMAGETYPE', d, 1) or ''
- if kerneltype == 'uImage':
- depends = bb.data.getVar("DEPENDS", d, 1)
- depends = "%s u-boot-mkimage-openmoko-native" % depends
- bb.data.setVar("DEPENDS", depends, d)
-}
-
-
RPSRC = "http://www.rpsys.net/openzaurus/patches/archive"
# Specify the commandline for your device
diff --git a/packages/meta/slugos-packages.bb b/packages/meta/slugos-packages.bb
index af1b875cdd..c0e274e289 100644
--- a/packages/meta/slugos-packages.bb
+++ b/packages/meta/slugos-packages.bb
@@ -206,6 +206,7 @@ SLUGOS_PACKAGES = "\
sipsak \
slugimage \
smartmontools \
+ spandsp \
sqlite \
ssmtp \
strace \