diff options
author | Thomas Kunze <thommycheck@gmx.de> | 2008-03-27 22:52:19 +0000 |
---|---|---|
committer | Thomas Kunze <thommycheck@gmx.de> | 2008-03-27 22:52:19 +0000 |
commit | c387c55213338679b3dee7c4e6c97f01b4806c6a (patch) | |
tree | 8c0f5568e78c373f9000251cd9fcaa7f6e418048 | |
parent | e6dc7f865766178bd2aa9514eac2431d1cc0187a (diff) | |
parent | 6e80b7ada5b0175f0a97a7b3787ce059e8960bbe (diff) |
merge of '42f9a5d8cedd5c5de2a24d72c0f84b019e7a5246'
and 'c474f6f48b0333b791017b2d12c15831e6d2b873'
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 \ |