- binutils 2.15.90.0.3 / gcc 3.4.0 toolchain
authorGerald Britton <gbritton@doomcom.org>
Tue, 27 Apr 2004 02:53:54 +0000 (02:53 +0000)
committerGerald Britton <gbritton@doomcom.org>
Tue, 27 Apr 2004 02:53:54 +0000 (02:53 +0000)
- support in glibc and uclibc for gcc 3.4.0
- new target setup for uclibc, TARGET_OS=linux-uclibc to match the uclibc
  project's setup and modern config.sub already has support for it.

BKrev: 408dcb42JOaGKxGg3PSn6IwU4Kimfw

72 files changed:
autoconf/autoconf-2.59/autoconf259-update-configscripts.patch [new file with mode: 0644]
autoconf/autoconf_2.59.oe
automake/automake_1.8.2.oe
binutils/binutils-2.15.90.0.3/binutils-001_ld_makefile.patch [new file with mode: 0644]
binutils/binutils-2.15.90.0.3/binutils-006_better_file_error.patch [new file with mode: 0644]
binutils/binutils-2.15.90.0.3/binutils-009_signed_char_fix.patch [new file with mode: 0644]
binutils/binutils-2.15.90.0.3/binutils-100_cflags_for_build.patch [new file with mode: 0644]
binutils/binutils-2.15.90.0.3/binutils-2.15.90.0.3-uclibc-100-conf.patch [new file with mode: 0644]
binutils/binutils-2.15.90.0.3/binutils-2.15.90.0.3-uclibc-200-build_modules.patch [new file with mode: 0644]
binutils/binutils-2.15.90.0.3/binutils-2.15.90.0.3-uclibc-210-cflags.patch [new file with mode: 0644]
binutils/binutils-cross_2.14.90.0.6.oe
binutils/binutils-cross_2.14.90.0.7.oe
binutils/binutils-cross_2.14.90.0.8.oe
binutils/binutils-cross_2.15.90.0.1.oe
binutils/binutils-cross_2.15.90.0.3.oe [new file with mode: 0644]
binutils/binutils-uclibc-cross_2.14.90.0.6.oe
binutils/binutils-uclibc-cross_2.14.90.0.7.oe
binutils/binutils-uclibc-cross_2.14.90.0.8.oe
binutils/binutils-uclibc-cross_2.15.90.0.1.oe
binutils/binutils-uclibc-cross_2.15.90.0.3.oe [new file with mode: 0644]
binutils/binutils-uclibc_2.14.90.0.6.oe
binutils/binutils-uclibc_2.14.90.0.7.oe
binutils/binutils-uclibc_2.14.90.0.8.oe
binutils/binutils-uclibc_2.15.90.0.1.oe
binutils/binutils-uclibc_2.15.90.0.3.oe [new file with mode: 0644]
binutils/binutils_2.14.90.0.6.oe
binutils/binutils_2.14.90.0.7.oe
binutils/binutils_2.14.90.0.8.oe
binutils/binutils_2.15.90.0.1.oe
binutils/binutils_2.15.90.0.3.oe [new file with mode: 0644]
conf/local.conf.sample
gcc/gcc-3.4.0/gcc-uclibc-3.4.0-100-conf.patch.orig [new file with mode: 0644]
gcc/gcc-3.4.0/gcc-uclibc-3.4.0-120-softfloat.patch [new file with mode: 0644]
gcc/gcc-3.4.0/gcc-uclibc-3.4.0-200-code.patch [new file with mode: 0644]
gcc/gcc-3.4.0/gcc34-arm-ldm-peephole.patch [new file with mode: 0644]
gcc/gcc-3.4.0/gcc34-arm-ldm.patch [new file with mode: 0644]
gcc/gcc-3.4.0/gcc34-arm-tune.patch [new file with mode: 0644]
gcc/gcc-3.4.0/gcc34-pre-modify.patch [new file with mode: 0644]
gcc/gcc-3.4.0/gcc34-reverse-compare.patch [new file with mode: 0644]
gcc/gcc-cross-initial_3.3.2.oe [new file with mode: 0644]
gcc/gcc-cross-initial_3.3.3.oe [new file with mode: 0644]
gcc/gcc-cross-initial_3.4.0.oe [new file with mode: 0644]
gcc/gcc-cross_3.4.0.oe [new file with mode: 0644]
gcc/gcc-initial-cross_3.3.2.oe [deleted file]
gcc/gcc-initial-cross_3.3.3.oe [deleted file]
gcc/gcc-initial-uclibc-cross_3.3.2.oe [deleted file]
gcc/gcc-initial-uclibc-cross_3.3.3.oe [deleted file]
gcc/gcc-uclibc-cross-initial_3.3.2.oe [new file with mode: 0644]
gcc/gcc-uclibc-cross-initial_3.3.3.oe [new file with mode: 0644]
gcc/gcc-uclibc-cross-initial_3.4.0.oe [new file with mode: 0644]
gcc/gcc-uclibc-cross_3.4.0.oe [new file with mode: 0644]
gcc/gcc-uclibc_3.3.2.oe
gcc/gcc-uclibc_3.3.3.oe
gcc/gcc-uclibc_3.4.0.oe [new file with mode: 0644]
gcc/gcc_3.3.2.oe
gcc/gcc_3.3.3.oe
gcc/gcc_3.4.0.oe [new file with mode: 0644]
glibc/glibc-2.3.2/arm-machine-gmon.patch [new file with mode: 0644]
glibc/glibc-2.3.2/arm-memcpy.patch
glibc/glibc-2.3.2/glibc232-gcc34-i386-fixup-attribute.patch [new file with mode: 0644]
glibc/glibc-2.3.2/glibc232-gcc34-no-unit-at-a-time.patch [new file with mode: 0644]
glibc/glibc-cvs/arm-machine-gmon.patch [new file with mode: 0644]
glibc/glibc-cvs/arm-memcpy.patch
glibc/glibc_2.3.2.oe
glibc/glibc_cvs.oe
libtool/libtool-1.5/libtool15-update-configscripts.patch [new file with mode: 0644]
libtool/libtool-cross_1.5.oe
libtool/libtool_1.5.oe
uclibc/uclibc-0.9.26/uClibc.config.arm
uclibc/uclibc-0.9.26/uClibc.config.i386
uclibc/uclibc-initial_0.9.26.oe
uclibc/uclibc_0.9.26.oe

diff --git a/autoconf/autoconf-2.59/autoconf259-update-configscripts.patch b/autoconf/autoconf-2.59/autoconf259-update-configscripts.patch
new file mode 100644 (file)
index 0000000..e69de29
index b80fe70..0c2ced0 100644 (file)
@@ -1,6 +1,7 @@
 SRC_URI = "${GNU_MIRROR}/autoconf/autoconf-${PV}.tar.bz2 \
           file://${FILESDIR}/program_prefix.patch;patch=1 \
-          file://${FILESDIR}/autoreconf-include.patch;patch=1"
+          file://${FILESDIR}/autoreconf-include.patch;patch=1 \
+          file://${FILESDIR}/autoconf259-update-configscripts.patch;patch=1"
 DESCRIPTION = "A package of M4 macros to produce scripts to \
 automatically configure sourcecode." 
 
index 94d0da7..ae5117d 100644 (file)
@@ -1,6 +1,9 @@
-SRC_URI = "${GNU_MIRROR}/automake/automake-${PV}.tar.bz2"
+SRC_URI = "${GNU_MIRROR}/automake/automake-${PV}.tar.bz2 \
+          file://${FILESDIR}/automake182-update-configscripts.patch;patch=1;pnum=1"
 DESCRIPTION = "A tool for automatically generating Makefiles."
 
+FILESDIR = "${@os.path.dirname(oe.data.getVar('FILE',d,1))}/automake-${PV}"
+
 inherit autotools
 
 do_install () {
diff --git a/binutils/binutils-2.15.90.0.3/binutils-001_ld_makefile.patch b/binutils/binutils-2.15.90.0.3/binutils-001_ld_makefile.patch
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/binutils/binutils-2.15.90.0.3/binutils-006_better_file_error.patch b/binutils/binutils-2.15.90.0.3/binutils-006_better_file_error.patch
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/binutils/binutils-2.15.90.0.3/binutils-009_signed_char_fix.patch b/binutils/binutils-2.15.90.0.3/binutils-009_signed_char_fix.patch
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/binutils/binutils-2.15.90.0.3/binutils-100_cflags_for_build.patch b/binutils/binutils-2.15.90.0.3/binutils-100_cflags_for_build.patch
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/binutils/binutils-2.15.90.0.3/binutils-2.15.90.0.3-uclibc-100-conf.patch b/binutils/binutils-2.15.90.0.3/binutils-2.15.90.0.3-uclibc-100-conf.patch
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/binutils/binutils-2.15.90.0.3/binutils-2.15.90.0.3-uclibc-200-build_modules.patch b/binutils/binutils-2.15.90.0.3/binutils-2.15.90.0.3-uclibc-200-build_modules.patch
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/binutils/binutils-2.15.90.0.3/binutils-2.15.90.0.3-uclibc-210-cflags.patch b/binutils/binutils-2.15.90.0.3/binutils-2.15.90.0.3-uclibc-210-cflags.patch
new file mode 100644 (file)
index 0000000..e69de29
index c6daeb4..bcd0501 100644 (file)
@@ -1,7 +1,6 @@
 include binutils_${PV}.oe
 inherit cross
 PROVIDES = "virtual/${TARGET_PREFIX}binutils"
-DEPENDS = "patcher-native"
 FILESDIR = "${@os.path.dirname(oe.data.getVar('FILE',d,1))}/binutils-${PV}"
 PACKAGES = ""
 EXTRA_OECONF = "--with-sysroot=${CROSS_DIR}/${TARGET_SYS} \
index c6daeb4..bcd0501 100644 (file)
@@ -1,7 +1,6 @@
 include binutils_${PV}.oe
 inherit cross
 PROVIDES = "virtual/${TARGET_PREFIX}binutils"
-DEPENDS = "patcher-native"
 FILESDIR = "${@os.path.dirname(oe.data.getVar('FILE',d,1))}/binutils-${PV}"
 PACKAGES = ""
 EXTRA_OECONF = "--with-sysroot=${CROSS_DIR}/${TARGET_SYS} \
index c6daeb4..bcd0501 100644 (file)
@@ -1,7 +1,6 @@
 include binutils_${PV}.oe
 inherit cross
 PROVIDES = "virtual/${TARGET_PREFIX}binutils"
-DEPENDS = "patcher-native"
 FILESDIR = "${@os.path.dirname(oe.data.getVar('FILE',d,1))}/binutils-${PV}"
 PACKAGES = ""
 EXTRA_OECONF = "--with-sysroot=${CROSS_DIR}/${TARGET_SYS} \
index c6daeb4..bcd0501 100644 (file)
@@ -1,7 +1,6 @@
 include binutils_${PV}.oe
 inherit cross
 PROVIDES = "virtual/${TARGET_PREFIX}binutils"
-DEPENDS = "patcher-native"
 FILESDIR = "${@os.path.dirname(oe.data.getVar('FILE',d,1))}/binutils-${PV}"
 PACKAGES = ""
 EXTRA_OECONF = "--with-sysroot=${CROSS_DIR}/${TARGET_SYS} \
diff --git a/binutils/binutils-cross_2.15.90.0.3.oe b/binutils/binutils-cross_2.15.90.0.3.oe
new file mode 100644 (file)
index 0000000..e69de29
index 31626ec..6cf8228 100644 (file)
@@ -1,7 +1,6 @@
 include binutils-uclibc_${PV}.oe
 inherit cross
 PROVIDES = "virtual/${TARGET_PREFIX}binutils"
-DEPENDS = "patcher-native"
 FILESDIR = "${@os.path.dirname(oe.data.getVar('FILE',d,1))}/binutils-${PV}"
 PACKAGES = ""
 EXTRA_OECONF = "--with-sysroot=${CROSS_DIR}/${TARGET_SYS} \
index 31626ec..6cf8228 100644 (file)
@@ -1,7 +1,6 @@
 include binutils-uclibc_${PV}.oe
 inherit cross
 PROVIDES = "virtual/${TARGET_PREFIX}binutils"
-DEPENDS = "patcher-native"
 FILESDIR = "${@os.path.dirname(oe.data.getVar('FILE',d,1))}/binutils-${PV}"
 PACKAGES = ""
 EXTRA_OECONF = "--with-sysroot=${CROSS_DIR}/${TARGET_SYS} \
index 31626ec..6cf8228 100644 (file)
@@ -1,7 +1,6 @@
 include binutils-uclibc_${PV}.oe
 inherit cross
 PROVIDES = "virtual/${TARGET_PREFIX}binutils"
-DEPENDS = "patcher-native"
 FILESDIR = "${@os.path.dirname(oe.data.getVar('FILE',d,1))}/binutils-${PV}"
 PACKAGES = ""
 EXTRA_OECONF = "--with-sysroot=${CROSS_DIR}/${TARGET_SYS} \
index 31626ec..6cf8228 100644 (file)
@@ -1,7 +1,6 @@
 include binutils-uclibc_${PV}.oe
 inherit cross
 PROVIDES = "virtual/${TARGET_PREFIX}binutils"
-DEPENDS = "patcher-native"
 FILESDIR = "${@os.path.dirname(oe.data.getVar('FILE',d,1))}/binutils-${PV}"
 PACKAGES = ""
 EXTRA_OECONF = "--with-sysroot=${CROSS_DIR}/${TARGET_SYS} \
diff --git a/binutils/binutils-uclibc-cross_2.15.90.0.3.oe b/binutils/binutils-uclibc-cross_2.15.90.0.3.oe
new file mode 100644 (file)
index 0000000..e69de29
index 9b98293..ffe7748 100644 (file)
@@ -1,11 +1,6 @@
 include binutils_${PV}.oe
 FILESDIR = "${@os.path.dirname(oe.data.getVar('FILE',d,1))}/binutils-${PV}"
 
-# This will ONLY build to this target
-TARGET_VENDOR = "-uclibc"
-TARGET_SYS = "${TARGET_ARCH}${TARGET_VENDOR}-${TARGET_OS}"
-TARGET_PREFIX = "${TARGET_SYS}-"
-
 binutilsbuild_do_patch () {
        oenote IN binutils patch
        perl -i -p -e 's,#.*define.*ELF_DYNAMIC_INTERPRETER.*".*",#define ELF_DYNAMIC_INTERPRETER "/lib/ld-uClibc.so.0",;' `grep -lr ELF_DYNAMIC_INTERPRETER *`
index dc68bfd..ffe7748 100644 (file)
@@ -1,11 +1,6 @@
 include binutils_${PV}.oe
 FILESDIR = "${@os.path.dirname(oe.data.getVar('FILE',d,1))}/binutils-${PV}"
 
-# This will ONLY build to this target
-TARGET_VENDOR := "-uclibc"
-TARGET_SYS := "${TARGET_ARCH}${TARGET_VENDOR}-${TARGET_OS}"
-TARGET_PREFIX := "${TARGET_SYS}-"
-
 binutilsbuild_do_patch () {
        oenote IN binutils patch
        perl -i -p -e 's,#.*define.*ELF_DYNAMIC_INTERPRETER.*".*",#define ELF_DYNAMIC_INTERPRETER "/lib/ld-uClibc.so.0",;' `grep -lr ELF_DYNAMIC_INTERPRETER *`
index dc68bfd..ffe7748 100644 (file)
@@ -1,11 +1,6 @@
 include binutils_${PV}.oe
 FILESDIR = "${@os.path.dirname(oe.data.getVar('FILE',d,1))}/binutils-${PV}"
 
-# This will ONLY build to this target
-TARGET_VENDOR := "-uclibc"
-TARGET_SYS := "${TARGET_ARCH}${TARGET_VENDOR}-${TARGET_OS}"
-TARGET_PREFIX := "${TARGET_SYS}-"
-
 binutilsbuild_do_patch () {
        oenote IN binutils patch
        perl -i -p -e 's,#.*define.*ELF_DYNAMIC_INTERPRETER.*".*",#define ELF_DYNAMIC_INTERPRETER "/lib/ld-uClibc.so.0",;' `grep -lr ELF_DYNAMIC_INTERPRETER *`
index dc68bfd..ffe7748 100644 (file)
@@ -1,11 +1,6 @@
 include binutils_${PV}.oe
 FILESDIR = "${@os.path.dirname(oe.data.getVar('FILE',d,1))}/binutils-${PV}"
 
-# This will ONLY build to this target
-TARGET_VENDOR := "-uclibc"
-TARGET_SYS := "${TARGET_ARCH}${TARGET_VENDOR}-${TARGET_OS}"
-TARGET_PREFIX := "${TARGET_SYS}-"
-
 binutilsbuild_do_patch () {
        oenote IN binutils patch
        perl -i -p -e 's,#.*define.*ELF_DYNAMIC_INTERPRETER.*".*",#define ELF_DYNAMIC_INTERPRETER "/lib/ld-uClibc.so.0",;' `grep -lr ELF_DYNAMIC_INTERPRETER *`
diff --git a/binutils/binutils-uclibc_2.15.90.0.3.oe b/binutils/binutils-uclibc_2.15.90.0.3.oe
new file mode 100644 (file)
index 0000000..e69de29
index 3f2faa7..9d25471 100644 (file)
@@ -4,13 +4,22 @@ DESCRIPTION = "A GNU collection of binary utilities"
 LICENSE = "GPL"
 MAINTAINER = "Gerald Britton <gbritton@doomcom.org>"
 
-# This will ONLY build to this target
-TARGET_VENDOR := ""
-TARGET_SYS := "${TARGET_ARCH}${TARGET_VENDOR}-${TARGET_OS}"
-TARGET_PREFIX := "${TARGET_SYS}-"
-
-DEPENDS = "virtual/${TARGET_PREFIX}binutils virtual/${TARGET_PREFIX}gcc \
-           virtual/libc patcher-native"
+#
+# For now, we will skip building of a gcc package if it is a uclibc one
+# and our build is not a uclibc one, and we skip a glibc one if our build
+# is a uclibc build.
+#
+# See the note in gcc/gcc_3.4.0.oe
+#
+
+python __anonymous () {
+    import oe, re
+    uc_pkg = (re.search('uclibc', oe.data.getVar('PN', d, 1)) != None)
+    uc_os = (re.match('.*uclibc$', oe.data.getVar('TARGET_OS', d, 1)) != None)
+    if uc_pkg != uc_os:
+        raise oe.parse.SkipPackage("incompatible with target %s" %
+                                   oe.data.getVar('TARGET_OS', d, 1))
+}
 
 PACKAGES = "${PN} ${PN}-dev ${PN}-doc ${PN}-symlinks"
 
index 3f2faa7..9d25471 100644 (file)
@@ -4,13 +4,22 @@ DESCRIPTION = "A GNU collection of binary utilities"
 LICENSE = "GPL"
 MAINTAINER = "Gerald Britton <gbritton@doomcom.org>"
 
-# This will ONLY build to this target
-TARGET_VENDOR := ""
-TARGET_SYS := "${TARGET_ARCH}${TARGET_VENDOR}-${TARGET_OS}"
-TARGET_PREFIX := "${TARGET_SYS}-"
-
-DEPENDS = "virtual/${TARGET_PREFIX}binutils virtual/${TARGET_PREFIX}gcc \
-           virtual/libc patcher-native"
+#
+# For now, we will skip building of a gcc package if it is a uclibc one
+# and our build is not a uclibc one, and we skip a glibc one if our build
+# is a uclibc build.
+#
+# See the note in gcc/gcc_3.4.0.oe
+#
+
+python __anonymous () {
+    import oe, re
+    uc_pkg = (re.search('uclibc', oe.data.getVar('PN', d, 1)) != None)
+    uc_os = (re.match('.*uclibc$', oe.data.getVar('TARGET_OS', d, 1)) != None)
+    if uc_pkg != uc_os:
+        raise oe.parse.SkipPackage("incompatible with target %s" %
+                                   oe.data.getVar('TARGET_OS', d, 1))
+}
 
 PACKAGES = "${PN} ${PN}-dev ${PN}-doc ${PN}-symlinks"
 
index 9c5b489..1489ea1 100644 (file)
@@ -4,13 +4,22 @@ DESCRIPTION = "A GNU collection of binary utilities"
 LICENSE = "GPL"
 MAINTAINER = "Gerald Britton <gbritton@doomcom.org>"
 
-# This will ONLY build to this target
-TARGET_VENDOR := ""
-TARGET_SYS := "${TARGET_ARCH}${TARGET_VENDOR}-${TARGET_OS}"
-TARGET_PREFIX := "${TARGET_SYS}-"
-
-DEPENDS = "virtual/${TARGET_PREFIX}binutils virtual/${TARGET_PREFIX}gcc \
-           virtual/libc patcher-native"
+#
+# For now, we will skip building of a gcc package if it is a uclibc one
+# and our build is not a uclibc one, and we skip a glibc one if our build
+# is a uclibc build.
+#
+# See the note in gcc/gcc_3.4.0.oe
+#
+
+python __anonymous () {
+    import oe, re
+    uc_pkg = (re.search('uclibc', oe.data.getVar('PN', d, 1)) != None)
+    uc_os = (re.match('.*uclibc$', oe.data.getVar('TARGET_OS', d, 1)) != None)
+    if uc_pkg != uc_os:
+        raise oe.parse.SkipPackage("incompatible with target %s" %
+                                   oe.data.getVar('TARGET_OS', d, 1))
+}
 
 PACKAGES = "${PN} ${PN}-dev ${PN}-doc ${PN}-symlinks"
 
index 9c5b489..1489ea1 100644 (file)
@@ -4,13 +4,22 @@ DESCRIPTION = "A GNU collection of binary utilities"
 LICENSE = "GPL"
 MAINTAINER = "Gerald Britton <gbritton@doomcom.org>"
 
-# This will ONLY build to this target
-TARGET_VENDOR := ""
-TARGET_SYS := "${TARGET_ARCH}${TARGET_VENDOR}-${TARGET_OS}"
-TARGET_PREFIX := "${TARGET_SYS}-"
-
-DEPENDS = "virtual/${TARGET_PREFIX}binutils virtual/${TARGET_PREFIX}gcc \
-           virtual/libc patcher-native"
+#
+# For now, we will skip building of a gcc package if it is a uclibc one
+# and our build is not a uclibc one, and we skip a glibc one if our build
+# is a uclibc build.
+#
+# See the note in gcc/gcc_3.4.0.oe
+#
+
+python __anonymous () {
+    import oe, re
+    uc_pkg = (re.search('uclibc', oe.data.getVar('PN', d, 1)) != None)
+    uc_os = (re.match('.*uclibc$', oe.data.getVar('TARGET_OS', d, 1)) != None)
+    if uc_pkg != uc_os:
+        raise oe.parse.SkipPackage("incompatible with target %s" %
+                                   oe.data.getVar('TARGET_OS', d, 1))
+}
 
 PACKAGES = "${PN} ${PN}-dev ${PN}-doc ${PN}-symlinks"
 
diff --git a/binutils/binutils_2.15.90.0.3.oe b/binutils/binutils_2.15.90.0.3.oe
new file mode 100644 (file)
index 0000000..e69de29
index 2599e7d..8ee6887 100644 (file)
@@ -33,6 +33,12 @@ PREFERRED_PROVIDERS = "virtual/libc:glibc virtual/qte:qte-for-opie virtual/libqp
 # for a machine not known to OpenEmbedded. Better use the MACHINE attribute (see above)
 TARGET_ARCH = "arm"
 
+# Use this to specify the target operating system.  This is "linux" for a normal
+# linux system with glibc.  Set this to "linux-uclibc" if you want to build a
+# uclibc based system.
+#TARGET_OS = "linux"
+#TARGET_OS = "linux-uclibc"
+
 # Uncomment this to select a distribution policy.
 #DISTRO = "familiar"
 
diff --git a/gcc/gcc-3.4.0/gcc-uclibc-3.4.0-100-conf.patch.orig b/gcc/gcc-3.4.0/gcc-uclibc-3.4.0-100-conf.patch.orig
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/gcc/gcc-3.4.0/gcc-uclibc-3.4.0-120-softfloat.patch b/gcc/gcc-3.4.0/gcc-uclibc-3.4.0-120-softfloat.patch
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/gcc/gcc-3.4.0/gcc-uclibc-3.4.0-200-code.patch b/gcc/gcc-3.4.0/gcc-uclibc-3.4.0-200-code.patch
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/gcc/gcc-3.4.0/gcc34-arm-ldm-peephole.patch b/gcc/gcc-3.4.0/gcc34-arm-ldm-peephole.patch
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/gcc/gcc-3.4.0/gcc34-arm-ldm.patch b/gcc/gcc-3.4.0/gcc34-arm-ldm.patch
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/gcc/gcc-3.4.0/gcc34-arm-tune.patch b/gcc/gcc-3.4.0/gcc34-arm-tune.patch
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/gcc/gcc-3.4.0/gcc34-pre-modify.patch b/gcc/gcc-3.4.0/gcc34-pre-modify.patch
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/gcc/gcc-3.4.0/gcc34-reverse-compare.patch b/gcc/gcc-3.4.0/gcc34-reverse-compare.patch
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/gcc/gcc-cross-initial_3.3.2.oe b/gcc/gcc-cross-initial_3.3.2.oe
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/gcc/gcc-cross-initial_3.3.3.oe b/gcc/gcc-cross-initial_3.3.3.oe
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/gcc/gcc-cross-initial_3.4.0.oe b/gcc/gcc-cross-initial_3.4.0.oe
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/gcc/gcc-cross_3.4.0.oe b/gcc/gcc-cross_3.4.0.oe
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/gcc/gcc-initial-cross_3.3.2.oe b/gcc/gcc-initial-cross_3.3.2.oe
deleted file mode 100644 (file)
index 4f9cb6d..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-include gcc-cross_${PV}.oe
-
-DEPENDS = "virtual/${TARGET_PREFIX}binutils glibc-initial patcher-native"
-PROVIDES = "virtual/${TARGET_PREFIX}gcc-initial"
-
-EXTRA_OECONF = "--with-local-prefix=${CROSS_DIR}/${TARGET_SYS} \
-               --disable-multilib \
-               --with-newlib \
-               --without-headers \
-               --disable-nls \
-               --enable-threads=no \
-               --enable-symvers=gnu \
-               --enable-__cxa_atexit \
-               --enable-languages=c \
-               --disable-shared \
-               --program-prefix=${TARGET_PREFIX}"
-
-do_stage_prepend () {
-       mkdir -p ${CROSS_DIR}/lib/gcc-lib/${TARGET_SYS}/${PV}
-       ln -sf libgcc.a ${CROSS_DIR}/lib/gcc-lib/${TARGET_SYS}/${PV}/libgcc_eh.a
-}
diff --git a/gcc/gcc-initial-cross_3.3.3.oe b/gcc/gcc-initial-cross_3.3.3.oe
deleted file mode 100644 (file)
index 804e709..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-include gcc-cross_${PV}.oe
-
-DEPENDS = "virtual/${TARGET_PREFIX}binutils glibc-initial patcher-native"
-PROVIDES = "virtual/${TARGET_PREFIX}gcc-initial"
-
-EXTRA_OECONF = "--with-local-prefix=${CROSS_DIR}/${TARGET_SYS} \
-               --disable-multilib \
-               --with-newlib \
-               --without-headers \
-               --disable-nls \
-               --enable-threads=no \
-               --enable-symvers=gnu \
-               --enable-__cxa_atexit \
-               --enable-languages=c \
-               --disable-shared \
-               --program-prefix=${TARGET_PREFIX}"
-
-do_stage_prepend () {
-       mkdir -p ${CROSS_DIR}/lib/gcc-lib/${TARGET_SYS}/${PV}
-       ln -sf libgcc.a ${CROSS_DIR}/lib/gcc-lib/${TARGET_SYS}/${PV}/libgcc_eh.a
-}
-
-# Override the method from gcc-cross so we don't try to install libgcc
-do_install () {
-       oe_runmake 'DESTDIR=${D}' install
-}
diff --git a/gcc/gcc-initial-uclibc-cross_3.3.2.oe b/gcc/gcc-initial-uclibc-cross_3.3.2.oe
deleted file mode 100644 (file)
index ea0b0f1..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-include gcc-uclibc-cross_${PV}.oe
-
-DEPENDS = "virtual/${TARGET_PREFIX}binutils uclibc-initial patcher-native"
-PROVIDES = "virtual/${TARGET_PREFIX}gcc-initial"
-
-EXTRA_OECONF = "--with-local-prefix=${CROSS_DIR}/local \
-                --with-gxx-include-dir=${CROSS_DIR}/${TARGET_SYS}/include/c++ \
-                --enable-target-optspace \
-                --disable-nls \
-                --with-gnu-ld \
-                --disable-__cxa_atexit \
-                --enable-languages=c \
-                --disable-shared \
-               --disable-threads \
-                --enable-multilib \
-                --program-prefix=${TARGET_PREFIX}"
diff --git a/gcc/gcc-initial-uclibc-cross_3.3.3.oe b/gcc/gcc-initial-uclibc-cross_3.3.3.oe
deleted file mode 100644 (file)
index ea0b0f1..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-include gcc-uclibc-cross_${PV}.oe
-
-DEPENDS = "virtual/${TARGET_PREFIX}binutils uclibc-initial patcher-native"
-PROVIDES = "virtual/${TARGET_PREFIX}gcc-initial"
-
-EXTRA_OECONF = "--with-local-prefix=${CROSS_DIR}/local \
-                --with-gxx-include-dir=${CROSS_DIR}/${TARGET_SYS}/include/c++ \
-                --enable-target-optspace \
-                --disable-nls \
-                --with-gnu-ld \
-                --disable-__cxa_atexit \
-                --enable-languages=c \
-                --disable-shared \
-               --disable-threads \
-                --enable-multilib \
-                --program-prefix=${TARGET_PREFIX}"
diff --git a/gcc/gcc-uclibc-cross-initial_3.3.2.oe b/gcc/gcc-uclibc-cross-initial_3.3.2.oe
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/gcc/gcc-uclibc-cross-initial_3.3.3.oe b/gcc/gcc-uclibc-cross-initial_3.3.3.oe
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/gcc/gcc-uclibc-cross-initial_3.4.0.oe b/gcc/gcc-uclibc-cross-initial_3.4.0.oe
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/gcc/gcc-uclibc-cross_3.4.0.oe b/gcc/gcc-uclibc-cross_3.4.0.oe
new file mode 100644 (file)
index 0000000..e69de29
index cdcfed7..3cb6cb0 100644 (file)
@@ -5,13 +5,7 @@ DESCRIPTION = "The GNU cc and gcc C compilers (uclibc)."
 LICENSE = "GPL"
 MAINTAINER = "Gerald Britton <gbritton@doomcom.org>"
 
-# This will ONLY build to this target
-TARGET_VENDOR = "-uclibc"
-TARGET_SYS = "${TARGET_ARCH}${TARGET_VENDOR}-${TARGET_OS}"
-TARGET_PREFIX = "${TARGET_SYS}-"
-
-DEPENDS = "virtual/${HOST_PREFIX}binutils virtual/${HOST_PREFIX}gcc \
-           uclibc patcher"
+DEPENDS = "uclibc"
 
 PACKAGES = "${PN} ${PN}-symlinks \
            ${PN}-c++ ${PN}-c++-symlinks \
index 390a0a2..10e4bdb 100644 (file)
@@ -5,13 +5,7 @@ DESCRIPTION = "The GNU cc and gcc C compilers (uclibc)."
 LICENSE = "GPL"
 MAINTAINER = "Gerald Britton <gbritton@doomcom.org>"
 
-# This will ONLY build to this target
-TARGET_VENDOR = "-uclibc"
-TARGET_SYS = "${TARGET_ARCH}${TARGET_VENDOR}-${TARGET_OS}"
-TARGET_PREFIX = "${TARGET_SYS}-"
-
-DEPENDS = "virtual/${HOST_PREFIX}binutils virtual/${HOST_PREFIX}gcc \
-           uclibc patcher"
+DEPENDS = "uclibc"
 
 PACKAGES = "${PN} ${PN}-symlinks \
            ${PN}-c++ ${PN}-c++-symlinks \
diff --git a/gcc/gcc-uclibc_3.4.0.oe b/gcc/gcc-uclibc_3.4.0.oe
new file mode 100644 (file)
index 0000000..e69de29
index f1ebfa7..ca6f239 100644 (file)
@@ -4,13 +4,24 @@ DESCRIPTION = "The GNU cc and gcc C compilers."
 LICENSE = "GPL"
 MAINTAINER = "Gerald Britton <gbritton@doomcom.org>"
 
-# This will ONLY build to this target
-TARGET_VENDOR = ""
-TARGET_SYS = "${TARGET_ARCH}${TARGET_VENDOR}-${TARGET_OS}"
-TARGET_PREFIX = "${TARGET_SYS}-"
+#
+# For now, we will skip building of a gcc package if it is a uclibc one
+# and our build is not a uclibc one, and we skip a glibc one if our build
+# is a uclibc build.
+#
+# See the note in gcc/gcc_3.4.0.oe
+#
+
+python __anonymous () {
+    import oe, re
+    uc_pkg = (re.search('uclibc', oe.data.getVar('PN', d, 1)) != None)
+    uc_os = (re.match('.*uclibc$', oe.data.getVar('TARGET_OS', d, 1)) != None)
+    if uc_pkg != uc_os:
+        raise oe.parse.SkipPackage("incompatible with target %s" %
+                                   oe.data.getVar('TARGET_OS', d, 1))
+}
 
-DEPENDS = "virtual/${HOST_PREFIX}binutils virtual/${HOST_PREFIX}gcc \
-           glibc patcher"
+DEPENDS = "glibc"
 
 PACKAGES = "${PN} ${PN}-symlinks \
             ${PN}-c++ ${PN}-c++-symlinks \
index 91985c4..48358f4 100644 (file)
@@ -4,13 +4,24 @@ DESCRIPTION = "The GNU cc and gcc C compilers."
 LICENSE = "GPL"
 MAINTAINER = "Gerald Britton <gbritton@doomcom.org>"
 
-# This will ONLY build to this target
-TARGET_VENDOR = ""
-TARGET_SYS = "${TARGET_ARCH}${TARGET_VENDOR}-${TARGET_OS}"
-TARGET_PREFIX = "${TARGET_SYS}-"
+#
+# For now, we will skip building of a gcc package if it is a uclibc one
+# and our build is not a uclibc one, and we skip a glibc one if our build
+# is a uclibc build.
+#
+# See the note in gcc/gcc_3.4.0.oe
+#
+
+python __anonymous () {
+    import oe, re
+    uc_pkg = (re.search('uclibc', oe.data.getVar('PN', d, 1)) != None)
+    uc_os = (re.match('.*uclibc$', oe.data.getVar('TARGET_OS', d, 1)) != None)
+    if uc_pkg != uc_os:
+        raise oe.parse.SkipPackage("incompatible with target %s" %
+                                   oe.data.getVar('TARGET_OS', d, 1))
+}
 
-DEPENDS = "virtual/${HOST_PREFIX}binutils virtual/${HOST_PREFIX}gcc \
-           glibc patcher"
+DEPENDS = "glibc"
 
 PACKAGES = "${PN} ${PN}-symlinks \
             ${PN}-c++ ${PN}-c++-symlinks \
diff --git a/gcc/gcc_3.4.0.oe b/gcc/gcc_3.4.0.oe
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/glibc/glibc-2.3.2/arm-machine-gmon.patch b/glibc/glibc-2.3.2/arm-machine-gmon.patch
new file mode 100644 (file)
index 0000000..e69de29
index e69de29..7fe0040 100644 (file)
@@ -0,0 +1,756 @@
+--- /dev/null  2004-02-02 20:32:13.000000000 +0000
++++ sysdeps/arm/memcpy.S       2004-03-20 13:25:27.000000000 +0000
+@@ -0,0 +1,241 @@
++/*
++ *   Optimized memcpy implementation for ARM processors
++ *
++ *    Author:         Nicolas Pitre
++ *    Created:        Dec 23, 2003
++ *    Copyright:      (C) MontaVista Software, Inc.
++ *
++ *   This file 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.
++ *
++ *   This file 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.
++ */
++
++#include <sysdep.h>
++
++
++/*
++ * Endian independent macros for shifting bytes within registers.
++ */
++#ifndef __ARMEB__
++#define pull            lsr
++#define push            lsl
++#else
++#define pull            lsl
++#define push            lsr
++#endif
++
++/*
++ * Enable data preload for architectures that support it (ARMv5 and above)
++ */
++#if defined(__ARM_ARCH_5__) || \
++    defined(__ARM_ARCH_5T__) || \
++    defined(__ARM_ARCH_5TE__)
++#define PLD(code...)  code
++#else
++#define PLD(code...)
++#endif
++
++
++/* char * memcpy (char *dst, const char *src) */
++
++ENTRY(memcpy)
++              subs    r2, r2, #4
++              stmfd   sp!, {r0, r4, lr}
++              blt     7f
++              ands    ip, r0, #3
++      PLD(    pld     [r1, #0]                )
++              bne     8f
++              ands    ip, r1, #3
++              bne     9f
++
++1:            subs    r2, r2, #4
++              blt     6f
++              subs    r2, r2, #8
++              blt     5f
++              subs    r2, r2, #16
++              blt     4f
++
++      PLD(    subs    r2, r2, #65             )
++              stmfd   sp!, {r5 - r8}
++      PLD(    blt     3f                      )
++      PLD(    pld     [r1, #32]               )
++
++      PLD(    @ cache alignment               )
++      PLD(    ands    ip, r1, #31             )
++      PLD(    pld     [r1, #64]               )
++      PLD(    beq     2f                      )
++      PLD(    rsb     ip, ip, #32             )
++      PLD(    cmp     r2, ip                  )
++      PLD(    pld     [r1, #96]               )
++      PLD(    blt     2f                      )
++      PLD(    cmp     ip, #16                 )
++      PLD(    sub     r2, r2, ip              )
++      PLD(    ldmgeia r1!, {r3 - r6}          )
++      PLD(    stmgeia r0!, {r3 - r6}          )
++      PLD(    beq     2f                      )
++      PLD(    and     ip, ip, #15             )
++      PLD(    cmp     ip, #8                  )
++      PLD(    ldr     r3, [r1], #4            )
++      PLD(    ldrge   r4, [r1], #4            )
++      PLD(    ldrgt   r5, [r1], #4            )
++      PLD(    str     r3, [r0], #4            )
++      PLD(    strge   r4, [r0], #4            )
++      PLD(    strgt   r5, [r0], #4            )
++
++2:    PLD(    pld     [r1, #96]               )
++3:            ldmia   r1!, {r3 - r8, ip, lr}
++              subs    r2, r2, #32
++              stmia   r0!, {r3 - r8, ip, lr}
++              bge     2b
++      PLD(    cmn     r2, #65                 )
++      PLD(    bge     3b                      )
++      PLD(    add     r2, r2, #65             )
++              tst     r2, #31
++              ldmfd   sp!, {r5 - r8}
++              ldmeqfd sp!, {r0, r4, pc}
++
++              tst     r2, #16
++4:            ldmneia r1!, {r3, r4, ip, lr}
++              stmneia r0!, {r3, r4, ip, lr}
++
++              tst     r2, #8
++5:            ldmneia r1!, {r3, r4}
++              stmneia r0!, {r3, r4}
++
++              tst     r2, #4
++6:            ldrne   r3, [r1], #4
++              strne   r3, [r0], #4
++
++7:            ands    r2, r2, #3
++              ldmeqfd sp!, {r0, r4, pc}
++
++              cmp     r2, #2
++              ldrb    r3, [r1], #1
++              ldrgeb  r4, [r1], #1
++              ldrgtb  ip, [r1]
++              strb    r3, [r0], #1
++              strgeb  r4, [r0], #1
++              strgtb  ip, [r0]
++              ldmfd   sp!, {r0, r4, pc}
++
++8:            rsb     ip, ip, #4
++              cmp     ip, #2
++              ldrb    r3, [r1], #1
++              ldrgeb  r4, [r1], #1
++              ldrgtb  lr, [r1], #1
++              strb    r3, [r0], #1
++              strgeb  r4, [r0], #1
++              strgtb  lr, [r0], #1
++              subs    r2, r2, ip
++              blt     7b
++              ands    ip, r1, #3
++              beq     1b
++
++9:            bic     r1, r1, #3
++              cmp     ip, #2
++              ldr     lr, [r1], #4
++              beq     17f
++              bgt     18f
++
++
++              .macro  forward_copy_shift pull push
++
++              cmp     r2, #12
++      PLD(    pld     [r1, #0]                )
++              blt     15f
++              subs    r2, r2, #28
++              stmfd   sp!, {r5 - r9}
++              blt     13f
++
++      PLD(    subs    r2, r2, #97             )
++      PLD(    blt     12f                     )
++      PLD(    pld     [r1, #32]               )
++
++      PLD(    @ cache alignment               )
++      PLD(    rsb     ip, r1, #36             )
++      PLD(    pld     [r1, #64]               )
++      PLD(    ands    ip, ip, #31             )
++      PLD(    pld     [r1, #96]               )
++      PLD(    beq     11f                     )
++      PLD(    cmp     r2, ip                  )
++      PLD(    pld     [r1, #128]              )
++      PLD(    blt     11f                     )
++      PLD(    sub     r2, r2, ip              )
++10:   PLD(    mov     r3, lr, pull #\pull     )
++      PLD(    ldr     lr, [r1], #4            )
++      PLD(    subs    ip, ip, #4              )
++      PLD(    orr     r3, r3, lr, push #\push )
++      PLD(    str     r3, [r0], #4            )
++      PLD(    bgt     10b                     )
++
++11:   PLD(    pld     [r1, #128]              )
++12:           mov     r3, lr, pull #\pull
++              ldmia   r1!, {r4 - r9, ip, lr}
++              subs    r2, r2, #32
++              orr     r3, r3, r4, push #\push
++              mov     r4, r4, pull #\pull
++              orr     r4, r4, r5, push #\push
++              mov     r5, r5, pull #\pull
++              orr     r5, r5, r6, push #\push
++              mov     r6, r6, pull #\pull
++              orr     r6, r6, r7, push #\push
++              mov     r7, r7, pull #\pull
++              orr     r7, r7, r8, push #\push
++              mov     r8, r8, pull #\pull
++              orr     r8, r8, r9, push #\push
++              mov     r9, r9, pull #\pull
++              orr     r9, r9, ip, push #\push
++              mov     ip, ip, pull #\pull
++              orr     ip, ip, lr, push #\push
++              stmia   r0!, {r3 - r9, ip}
++              bge     11b
++      PLD(    cmn     r2, #97                 )
++      PLD(    bge     12b                     )
++      PLD(    add     r2, r2, #97             )
++              cmn     r2, #16
++              blt     14f
++13:           mov     r3, lr, pull #\pull
++              ldmia   r1!, {r4 - r6, lr}
++              sub     r2, r2, #16
++              orr     r3, r3, r4, push #\push
++              mov     r4, r4, pull #\pull
++              orr     r4, r4, r5, push #\push
++              mov     r5, r5, pull #\pull
++              orr     r5, r5, r6, push #\push
++              mov     r6, r6, pull #\pull
++              orr     r6, r6, lr, push #\push
++              stmia   r0!, {r3 - r6}
++14:           adds    r2, r2, #28
++              ldmfd   sp!, {r5 - r9}
++              blt     16f
++15:           mov     r3, lr, pull #\pull
++              ldr     lr, [r1], #4
++              subs    r2, r2, #4
++              orr     r3, r3, lr, push #\push
++              str     r3, [r0], #4
++              bge     15b
++16:
++              .endm
++
++
++              forward_copy_shift      pull=8  push=24
++              sub     r1, r1, #3
++              b       7b
++
++17:           forward_copy_shift      pull=16 push=16
++              sub     r1, r1, #2
++              b       7b
++
++18:           forward_copy_shift      pull=24 push=8
++              sub     r1, r1, #1
++              b       7b
++
++              .size   memcpy, . - memcpy
++END(memcpy)
++libc_hidden_builtin_def (memcpy)
+--- /dev/null  2004-02-02 20:32:13.000000000 +0000
++++ sysdeps/arm/memmove.S      2004-03-20 18:37:23.000000000 +0000
+@@ -0,0 +1,251 @@
++/*
++ *   Optimized memmove implementation for ARM processors
++ *
++ *    Author:         Nicolas Pitre
++ *    Created:        Dec 23, 2003
++ *    Copyright:      (C) MontaVista Software, Inc.
++ *
++ *   This file 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.
++ *
++ *   This file 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.
++ */
++
++#include <sysdep.h>
++
++
++/*
++ * Endian independent macros for shifting bytes within registers.
++ */
++#ifndef __ARMEB__
++#define pull            lsr
++#define push            lsl
++#else
++#define pull            lsl
++#define push            lsr
++#endif
++
++/*
++ * Enable data preload for architectures that support it (ARMv5 and above)
++ */
++#if defined(__ARM_ARCH_5__) || \
++    defined(__ARM_ARCH_5T__) || \
++    defined(__ARM_ARCH_5TE__)
++#define PLD(code...)  code
++#else
++#define PLD(code...)
++#endif
++
++
++/* char * memmove (char *dst, const char *src) */
++ENTRY(memmove)
++              subs    ip, r0, r1
++              cmphi   r2, ip
++              bls     memcpy(PLT)
++
++              stmfd   sp!, {r0, r4, lr}
++              add     r1, r1, r2
++              add     r0, r0, r2
++              subs    r2, r2, #4
++              blt     25f
++              ands    ip, r0, #3
++      PLD(    pld     [r1, #-4]               )
++              bne     26f
++              ands    ip, r1, #3
++              bne     27f
++
++19:           subs    r2, r2, #4
++              blt     24f
++              subs    r2, r2, #8
++              blt     23f
++              subs    r2, r2, #16
++              blt     22f
++
++      PLD(    pld     [r1, #-32]              )
++      PLD(    subs    r2, r2, #96             )
++              stmfd   sp!, {r5 - r8}
++      PLD(    blt     21f                     )
++
++      PLD(    @ cache alignment               )
++      PLD(    ands    ip, r1, #31             )
++      PLD(    pld     [r1, #-64]              )
++      PLD(    beq     20f                     )
++      PLD(    cmp     r2, ip                  )
++      PLD(    pld     [r1, #-96]              )
++      PLD(    blt     20f                     )
++      PLD(    cmp     ip, #16                 )
++      PLD(    sub     r2, r2, ip              )
++      PLD(    ldmgedb r1!, {r3 - r6}          )
++      PLD(    stmgedb r0!, {r3 - r6}          )
++      PLD(    beq     20f                     )
++      PLD(    and     ip, ip, #15             )
++      PLD(    cmp     ip, #8                  )
++      PLD(    ldr     r3, [r1, #-4]!          )
++      PLD(    ldrge   r4, [r1, #-4]!          )
++      PLD(    ldrgt   r5, [r1, #-4]!          )
++      PLD(    str     r3, [r0, #-4]!          )
++      PLD(    strge   r4, [r0, #-4]!          )
++      PLD(    strgt   r5, [r0, #-4]!          )
++
++20:   PLD(    pld     [r1, #-96]              )
++      PLD(    pld     [r1, #-128]             )
++21:           ldmdb   r1!, {r3, r4, ip, lr}
++              subs    r2, r2, #32
++              stmdb   r0!, {r3, r4, ip, lr}
++              ldmdb   r1!, {r3, r4, ip, lr}
++              stmgedb r0!, {r3, r4, ip, lr}
++              ldmgedb r1!, {r3, r4, ip, lr}
++              stmgedb r0!, {r3, r4, ip, lr}
++              ldmgedb r1!, {r3, r4, ip, lr}
++              subges  r2, r2, #32
++              stmdb   r0!, {r3, r4, ip, lr}
++              bge     20b
++      PLD(    cmn     r2, #96                 )
++      PLD(    bge     21b                     )
++      PLD(    add     r2, r2, #96             )
++              tst     r2, #31
++              ldmfd   sp!, {r5 - r8}
++              ldmeqfd sp!, {r0, r4, pc}
++
++              tst     r2, #16
++22:           ldmnedb r1!, {r3, r4, ip, lr}
++              stmnedb r0!, {r3, r4, ip, lr}
++
++              tst     r2, #8
++23:           ldmnedb r1!, {r3, r4}
++              stmnedb r0!, {r3, r4}
++
++              tst     r2, #4
++24:           ldrne   r3, [r1, #-4]!
++              strne   r3, [r0, #-4]!
++
++25:           ands    r2, r2, #3
++              ldmeqfd sp!, {r0, r4, pc}
++
++              cmp     r2, #2
++              ldrb    r3, [r1, #-1]
++              ldrgeb  r4, [r1, #-2]
++              ldrgtb  ip, [r1, #-3]
++              strb    r3, [r0, #-1]
++              strgeb  r4, [r0, #-2]
++              strgtb  ip, [r0, #-3]
++              ldmfd   sp!, {r0, r4, pc}
++
++26:           cmp     ip, #2
++              ldrb    r3, [r1, #-1]!
++              ldrgeb  r4, [r1, #-1]!
++              ldrgtb  lr, [r1, #-1]!
++              strb    r3, [r0, #-1]!
++              strgeb  r4, [r0, #-1]!
++              strgtb  lr, [r0, #-1]!
++              subs    r2, r2, ip
++              blt     25b
++              ands    ip, r1, #3
++              beq     19b
++
++27:           bic     r1, r1, #3
++              cmp     ip, #2
++              ldr     r3, [r1]
++              beq     35f
++              blt     36f
++
++
++              .macro  backward_copy_shift push pull
++
++              cmp     r2, #12
++      PLD(    pld     [r1, #-4]               )
++              blt     33f
++              subs    r2, r2, #28
++              stmfd   sp!, {r5 - r9}
++              blt     31f
++
++      PLD(    subs    r2, r2, #96             )
++      PLD(    pld     [r1, #-32]              )
++      PLD(    blt     30f                     )
++      PLD(    pld     [r1, #-64]              )
++
++      PLD(    @ cache alignment               )
++      PLD(    ands    ip, r1, #31             )
++      PLD(    pld     [r1, #-96]              )
++      PLD(    beq     29f                     )
++      PLD(    cmp     r2, ip                  )
++      PLD(    pld     [r1, #-128]             )
++      PLD(    blt     29f                     )
++      PLD(    sub     r2, r2, ip              )
++28:   PLD(    mov     r4, r3, push #\push     )
++      PLD(    ldr     r3, [r1, #-4]!          )
++      PLD(    subs    ip, ip, #4              )
++      PLD(    orr     r4, r4, r3, pull #\pull )
++      PLD(    str     r4, [r0, #-4]!          )
++      PLD(    bgt     28b                     )
++
++29:   PLD(    pld     [r1, #-128]             )
++30:           mov     lr, r3, push #\push
++              ldmdb   r1!, {r3 - r9, ip}
++              subs    r2, r2, #32
++              orr     lr, lr, ip, pull #\pull
++              mov     ip, ip, push #\push
++              orr     ip, ip, r9, pull #\pull
++              mov     r9, r9, push #\push
++              orr     r9, r9, r8, pull #\pull
++              mov     r8, r8, push #\push
++              orr     r8, r8, r7, pull #\pull
++              mov     r7, r7, push #\push
++              orr     r7, r7, r6, pull #\pull
++              mov     r6, r6, push #\push
++              orr     r6, r6, r5, pull #\pull
++              mov     r5, r5, push #\push
++              orr     r5, r5, r4, pull #\pull
++              mov     r4, r4, push #\push
++              orr     r4, r4, r3, pull #\pull
++              stmdb   r0!, {r4 - r9, ip, lr}
++              bge     29b
++      PLD(    cmn     r2, #96                 )
++      PLD(    bge     30b                     )
++      PLD(    add     r2, r2, #96             )
++              cmn     r2, #16
++              blt     32f
++31:           mov     r7, r3, push #\push
++              ldmdb   r1!, {r3 - r6}
++              sub     r2, r2, #16
++              orr     r7, r7, r6, pull #\pull
++              mov     r6, r6, push #\push
++              orr     r6, r6, r5, pull #\pull
++              mov     r5, r5, push #\push
++              orr     r5, r5, r4, pull #\pull
++              mov     r4, r4, push #\push
++              orr     r4, r4, r3, pull #\pull
++              stmdb   r0!, {r4 - r7}
++32:           adds    r2, r2, #28
++              ldmfd   sp!, {r5 - r9}
++              blt     34f
++33:           mov     r4, r3, push #\push
++              ldr     r3, [r1, #-4]!
++              subs    r2, r2, #4
++              orr     r4, r4, r3, pull #\pull
++              str     r4, [r0, #-4]!
++              bge     33b
++34:
++              .endm
++
++
++              backward_copy_shift     push=8  pull=24
++              add     r1, r1, #3
++              b       25b
++
++35:           backward_copy_shift     push=16 pull=16
++              add     r1, r1, #2
++              b       25b
++
++36:           backward_copy_shift     push=24 pull=8
++              add     r1, r1, #1
++              b       25b
++
++              .size   memmove, . - memmove
++END(memmove)
++libc_hidden_builtin_def (memmove)
+--- /dev/null  2004-02-02 20:32:13.000000000 +0000
++++ sysdeps/arm/bcopy.S        2004-03-20 18:37:48.000000000 +0000
+@@ -0,0 +1,255 @@
++/*
++ *   Optimized memmove implementation for ARM processors
++ *
++ *    Author:         Nicolas Pitre
++ *    Created:        Dec 23, 2003
++ *    Copyright:      (C) MontaVista Software, Inc.
++ *
++ *   This file 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.
++ *
++ *   This file 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.
++ */
++
++#include <sysdep.h>
++
++
++/*
++ * Endian independent macros for shifting bytes within registers.
++ */
++#ifndef __ARMEB__
++#define pull            lsr
++#define push            lsl
++#else
++#define pull            lsl
++#define push            lsr
++#endif
++
++/*
++ * Enable data preload for architectures that support it (ARMv5 and above)
++ */
++#if defined(__ARM_ARCH_5__) || \
++    defined(__ARM_ARCH_5T__) || \
++    defined(__ARM_ARCH_5TE__)
++#define PLD(code...)  code
++#else
++#define PLD(code...)
++#endif
++
++dst           .req    r1
++src           .req    r0
++
++/* void *bcopy (const char *src, char *dst, size_t size) */
++ENTRY(bcopy)
++              subs    ip, dst, src
++              cmphi   r2, ip
++              movls   r3, r0
++              movls   r0, r1
++              movls   r1, r3
++              bls     memcpy(PLT)
++
++              stmfd   sp!, {r4, lr}
++              add     src, src, r2
++              add     dst, dst, r2
++              subs    r2, r2, #4
++              blt     25f
++              ands    ip, dst, #3
++      PLD(    pld     [src, #-4]              )
++              bne     26f
++              ands    ip, src, #3
++              bne     27f
++
++19:           subs    r2, r2, #4
++              blt     24f
++              subs    r2, r2, #8
++              blt     23f
++              subs    r2, r2, #16
++              blt     22f
++
++      PLD(    pld     [src, #-32]             )
++      PLD(    subs    r2, r2, #96             )
++              stmfd   sp!, {r5 - r8}
++      PLD(    blt     21f                     )
++
++      PLD(    @ cache alignment               )
++      PLD(    ands    ip, src, #31            )
++      PLD(    pld     [src, #-64]             )
++      PLD(    beq     20f                     )
++      PLD(    cmp     r2, ip                  )
++      PLD(    pld     [src, #-96]             )
++      PLD(    blt     20f                     )
++      PLD(    cmp     ip, #16                 )
++      PLD(    sub     r2, r2, ip              )
++      PLD(    ldmgedb src!, {r3 - r6}         )
++      PLD(    stmgedb dst!, {r3 - r6}         )
++      PLD(    beq     20f                     )
++      PLD(    and     ip, ip, #15             )
++      PLD(    cmp     ip, #8                  )
++      PLD(    ldr     r3, [src, #-4]!         )
++      PLD(    ldrge   r4, [src, #-4]!         )
++      PLD(    ldrgt   r5, [src, #-4]!         )
++      PLD(    str     r3, [dst, #-4]!         )
++      PLD(    strge   r4, [dst, #-4]!         )
++      PLD(    strgt   r5, [dst, #-4]!         )
++
++20:   PLD(    pld     [src, #-96]             )
++      PLD(    pld     [src, #-128]            )
++21:           ldmdb   src!, {r3, r4, ip, lr}
++              subs    r2, r2, #32
++              stmdb   dst!, {r3, r4, ip, lr}
++              ldmdb   src!, {r3, r4, ip, lr}
++              stmgedb dst!, {r3, r4, ip, lr}
++              ldmgedb src!, {r3, r4, ip, lr}
++              stmgedb dst!, {r3, r4, ip, lr}
++              ldmgedb src!, {r3, r4, ip, lr}
++              subges  r2, r2, #32
++              stmdb   dst!, {r3, r4, ip, lr}
++              bge     20b
++      PLD(    cmn     r2, #96                 )
++      PLD(    bge     21b                     )
++      PLD(    add     r2, r2, #96             )
++              tst     r2, #31
++              ldmfd   sp!, {r5 - r8}
++              ldmeqfd sp!, {r4, pc}
++
++              tst     r2, #16
++22:           ldmnedb src!, {r3, r4, ip, lr}
++              stmnedb dst!, {r3, r4, ip, lr}
++
++              tst     r2, #8
++23:           ldmnedb src!, {r3, r4}
++              stmnedb dst!, {r3, r4}
++
++              tst     r2, #4
++24:           ldrne   r3, [src, #-4]!
++              strne   r3, [dst, #-4]!
++
++25:           ands    r2, r2, #3
++              ldmeqfd sp!, {dst, r4, pc}
++
++              cmp     r2, #2
++              ldrb    r3, [src, #-1]
++              ldrgeb  r4, [src, #-2]
++              ldrgtb  ip, [src, #-3]
++              strb    r3, [dst, #-1]
++              strgeb  r4, [dst, #-2]
++              strgtb  ip, [dst, #-3]
++              ldmfd   sp!, {dst, r4, pc}
++
++26:           cmp     ip, #2
++              ldrb    r3, [src, #-1]!
++              ldrgeb  r4, [src, #-1]!
++              ldrgtb  lr, [src, #-1]!
++              strb    r3, [dst, #-1]!
++              strgeb  r4, [dst, #-1]!
++              strgtb  lr, [dst, #-1]!
++              subs    r2, r2, ip
++              blt     25b
++              ands    ip, src, #3
++              beq     19b
++
++27:           bic     src, src, #3
++              cmp     ip, #2
++              ldr     r3, [src]
++              beq     35f
++              blt     36f
++
++
++              .macro  backward_copy_shift push pull
++
++              cmp     r2, #12
++      PLD(    pld     [src, #-4]              )
++              blt     33f
++              subs    r2, r2, #28
++              stmfd   sp!, {r5 - r9}
++              blt     31f
++
++      PLD(    subs    r2, r2, #96             )
++      PLD(    pld     [src, #-32]             )
++      PLD(    blt     30f                     )
++      PLD(    pld     [src, #-64]             )
++
++      PLD(    @ cache alignment               )
++      PLD(    ands    ip, src, #31            )
++      PLD(    pld     [src, #-96]             )
++      PLD(    beq     29f                     )
++      PLD(    cmp     r2, ip                  )
++      PLD(    pld     [src, #-128]            )
++      PLD(    blt     29f                     )
++      PLD(    sub     r2, r2, ip              )
++28:   PLD(    mov     r4, r3, push #\push     )
++      PLD(    ldr     r3, [src, #-4]!         )
++      PLD(    subs    ip, ip, #4              )
++      PLD(    orr     r4, r4, r3, pull #\pull )
++      PLD(    str     r4, [dst, #-4]!         )
++      PLD(    bgt     28b                     )
++
++29:   PLD(    pld     [src, #-128]            )
++30:           mov     lr, r3, push #\push
++              ldmdb   src!, {r3 - r9, ip}
++              subs    r2, r2, #32
++              orr     lr, lr, ip, pull #\pull
++              mov     ip, ip, push #\push
++              orr     ip, ip, r9, pull #\pull
++              mov     r9, r9, push #\push
++              orr     r9, r9, r8, pull #\pull
++              mov     r8, r8, push #\push
++              orr     r8, r8, r7, pull #\pull
++              mov     r7, r7, push #\push
++              orr     r7, r7, r6, pull #\pull
++              mov     r6, r6, push #\push
++              orr     r6, r6, r5, pull #\pull
++              mov     r5, r5, push #\push
++              orr     r5, r5, r4, pull #\pull
++              mov     r4, r4, push #\push
++              orr     r4, r4, r3, pull #\pull
++              stmdb   dst!, {r4 - r9, ip, lr}
++              bge     29b
++      PLD(    cmn     r2, #96                 )
++      PLD(    bge     30b                     )
++      PLD(    add     r2, r2, #96             )
++              cmn     r2, #16
++              blt     32f
++31:           mov     r7, r3, push #\push
++              ldmdb   src!, {r3 - r6}
++              sub     r2, r2, #16
++              orr     r7, r7, r6, pull #\pull
++              mov     r6, r6, push #\push
++              orr     r6, r6, r5, pull #\pull
++              mov     r5, r5, push #\push
++              orr     r5, r5, r4, pull #\pull
++              mov     r4, r4, push #\push
++              orr     r4, r4, r3, pull #\pull
++              stmdb   dst!, {r4 - r7}
++32:           adds    r2, r2, #28
++              ldmfd   sp!, {r5 - r9}
++              blt     34f
++33:           mov     r4, r3, push #\push
++              ldr     r3, [src, #-4]!
++              subs    r2, r2, #4
++              orr     r4, r4, r3, pull #\pull
++              str     r4, [dst, #-4]!
++              bge     33b
++34:
++              .endm
++
++
++              backward_copy_shift     push=8  pull=24
++              add     src, src, #3
++              b       25b
++
++35:           backward_copy_shift     push=16 pull=16
++              add     src, src, #2
++              b       25b
++
++36:           backward_copy_shift     push=24 pull=8
++              add     src, src, #1
++              b       25b
++
++              .size   bcopy, . - bcopy
++END(bcopy)
diff --git a/glibc/glibc-2.3.2/glibc232-gcc34-i386-fixup-attribute.patch b/glibc/glibc-2.3.2/glibc232-gcc34-i386-fixup-attribute.patch
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/glibc/glibc-2.3.2/glibc232-gcc34-no-unit-at-a-time.patch b/glibc/glibc-2.3.2/glibc232-gcc34-no-unit-at-a-time.patch
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/glibc/glibc-cvs/arm-machine-gmon.patch b/glibc/glibc-cvs/arm-machine-gmon.patch
new file mode 100644 (file)
index 0000000..e69de29
index e69de29..7fe0040 100644 (file)
@@ -0,0 +1,756 @@
+--- /dev/null  2004-02-02 20:32:13.000000000 +0000
++++ sysdeps/arm/memcpy.S       2004-03-20 13:25:27.000000000 +0000
+@@ -0,0 +1,241 @@
++/*
++ *   Optimized memcpy implementation for ARM processors
++ *
++ *    Author:         Nicolas Pitre
++ *    Created:        Dec 23, 2003
++ *    Copyright:      (C) MontaVista Software, Inc.
++ *
++ *   This file 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.
++ *
++ *   This file 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.
++ */
++
++#include <sysdep.h>
++
++
++/*
++ * Endian independent macros for shifting bytes within registers.
++ */
++#ifndef __ARMEB__
++#define pull            lsr
++#define push            lsl
++#else
++#define pull            lsl
++#define push            lsr
++#endif
++
++/*
++ * Enable data preload for architectures that support it (ARMv5 and above)
++ */
++#if defined(__ARM_ARCH_5__) || \
++    defined(__ARM_ARCH_5T__) || \
++    defined(__ARM_ARCH_5TE__)
++#define PLD(code...)  code
++#else
++#define PLD(code...)
++#endif
++
++
++/* char * memcpy (char *dst, const char *src) */
++
++ENTRY(memcpy)
++              subs    r2, r2, #4
++              stmfd   sp!, {r0, r4, lr}
++              blt     7f
++              ands    ip, r0, #3
++      PLD(    pld     [r1, #0]                )
++              bne     8f
++              ands    ip, r1, #3
++              bne     9f
++
++1:            subs    r2, r2, #4
++              blt     6f
++              subs    r2, r2, #8
++              blt     5f
++              subs    r2, r2, #16
++              blt     4f
++
++      PLD(    subs    r2, r2, #65             )
++              stmfd   sp!, {r5 - r8}
++      PLD(    blt     3f                      )
++      PLD(    pld     [r1, #32]               )
++
++      PLD(    @ cache alignment               )
++      PLD(    ands    ip, r1, #31             )
++      PLD(    pld     [r1, #64]               )
++      PLD(    beq     2f                      )
++      PLD(    rsb     ip, ip, #32             )
++      PLD(    cmp     r2, ip                  )
++      PLD(    pld     [r1, #96]               )
++      PLD(    blt     2f                      )
++      PLD(    cmp     ip, #16                 )
++      PLD(    sub     r2, r2, ip              )
++      PLD(    ldmgeia r1!, {r3 - r6}          )
++      PLD(    stmgeia r0!, {r3 - r6}          )
++      PLD(    beq     2f                      )
++      PLD(    and     ip, ip, #15             )
++      PLD(    cmp     ip, #8                  )
++      PLD(    ldr     r3, [r1], #4            )
++      PLD(    ldrge   r4, [r1], #4            )
++      PLD(    ldrgt   r5, [r1], #4            )
++      PLD(    str     r3, [r0], #4            )
++      PLD(    strge   r4, [r0], #4            )
++      PLD(    strgt   r5, [r0], #4            )
++
++2:    PLD(    pld     [r1, #96]               )
++3:            ldmia   r1!, {r3 - r8, ip, lr}
++              subs    r2, r2, #32
++              stmia   r0!, {r3 - r8, ip, lr}
++              bge     2b
++      PLD(    cmn     r2, #65                 )
++      PLD(    bge     3b                      )
++      PLD(    add     r2, r2, #65             )
++              tst     r2, #31
++              ldmfd   sp!, {r5 - r8}
++              ldmeqfd sp!, {r0, r4, pc}
++
++              tst     r2, #16
++4:            ldmneia r1!, {r3, r4, ip, lr}
++              stmneia r0!, {r3, r4, ip, lr}
++
++              tst     r2, #8
++5:            ldmneia r1!, {r3, r4}
++              stmneia r0!, {r3, r4}
++
++              tst     r2, #4
++6:            ldrne   r3, [r1], #4
++              strne   r3, [r0], #4
++
++7:            ands    r2, r2, #3
++              ldmeqfd sp!, {r0, r4, pc}
++
++              cmp     r2, #2
++              ldrb    r3, [r1], #1
++              ldrgeb  r4, [r1], #1
++              ldrgtb  ip, [r1]
++              strb    r3, [r0], #1
++              strgeb  r4, [r0], #1
++              strgtb  ip, [r0]
++              ldmfd   sp!, {r0, r4, pc}
++
++8:            rsb     ip, ip, #4
++              cmp     ip, #2
++              ldrb    r3, [r1], #1
++              ldrgeb  r4, [r1], #1
++              ldrgtb  lr, [r1], #1
++              strb    r3, [r0], #1
++              strgeb  r4, [r0], #1
++              strgtb  lr, [r0], #1
++              subs    r2, r2, ip
++              blt     7b
++              ands    ip, r1, #3
++              beq     1b
++
++9:            bic     r1, r1, #3
++              cmp     ip, #2
++              ldr     lr, [r1], #4
++              beq     17f
++              bgt     18f
++
++
++              .macro  forward_copy_shift pull push
++
++              cmp     r2, #12
++      PLD(    pld     [r1, #0]                )
++              blt     15f
++              subs    r2, r2, #28
++              stmfd   sp!, {r5 - r9}
++              blt     13f
++
++      PLD(    subs    r2, r2, #97             )
++      PLD(    blt     12f                     )
++      PLD(    pld     [r1, #32]               )
++
++      PLD(    @ cache alignment               )
++      PLD(    rsb     ip, r1, #36             )
++      PLD(    pld     [r1, #64]               )
++      PLD(    ands    ip, ip, #31             )
++      PLD(    pld     [r1, #96]               )
++      PLD(    beq     11f                     )
++      PLD(    cmp     r2, ip                  )
++      PLD(    pld     [r1, #128]              )
++      PLD(    blt     11f                     )
++      PLD(    sub     r2, r2, ip              )
++10:   PLD(    mov     r3, lr, pull #\pull     )
++      PLD(    ldr     lr, [r1], #4            )
++      PLD(    subs    ip, ip, #4              )
++      PLD(    orr     r3, r3, lr, push #\push )
++      PLD(    str     r3, [r0], #4            )
++      PLD(    bgt     10b                     )
++
++11:   PLD(    pld     [r1, #128]              )
++12:           mov     r3, lr, pull #\pull
++              ldmia   r1!, {r4 - r9, ip, lr}
++              subs    r2, r2, #32
++              orr     r3, r3, r4, push #\push
++              mov     r4, r4, pull #\pull
++              orr     r4, r4, r5, push #\push
++              mov     r5, r5, pull #\pull
++              orr     r5, r5, r6, push #\push
++              mov     r6, r6, pull #\pull
++              orr     r6, r6, r7, push #\push
++              mov     r7, r7, pull #\pull
++              orr     r7, r7, r8, push #\push
++              mov     r8, r8, pull #\pull
++              orr     r8, r8, r9, push #\push
++              mov     r9, r9, pull #\pull
++              orr     r9, r9, ip, push #\push
++              mov     ip, ip, pull #\pull
++              orr     ip, ip, lr, push #\push
++              stmia   r0!, {r3 - r9, ip}
++              bge     11b
++      PLD(    cmn     r2, #97                 )
++      PLD(    bge     12b                     )
++      PLD(    add     r2, r2, #97             )
++              cmn     r2, #16
++              blt     14f
++13:           mov     r3, lr, pull #\pull
++              ldmia   r1!, {r4 - r6, lr}
++              sub     r2, r2, #16
++              orr     r3, r3, r4, push #\push
++              mov     r4, r4, pull #\pull
++              orr     r4, r4, r5, push #\push
++              mov     r5, r5, pull #\pull
++              orr     r5, r5, r6, push #\push
++              mov     r6, r6, pull #\pull
++              orr     r6, r6, lr, push #\push
++              stmia   r0!, {r3 - r6}
++14:           adds    r2, r2, #28
++              ldmfd   sp!, {r5 - r9}
++              blt     16f
++15:           mov     r3, lr, pull #\pull
++              ldr     lr, [r1], #4
++              subs    r2, r2, #4
++              orr     r3, r3, lr, push #\push
++              str     r3, [r0], #4
++              bge     15b
++16:
++              .endm
++
++
++              forward_copy_shift      pull=8  push=24
++              sub     r1, r1, #3
++              b       7b
++
++17:           forward_copy_shift      pull=16 push=16
++              sub     r1, r1, #2
++              b       7b
++
++18:           forward_copy_shift      pull=24 push=8
++              sub     r1, r1, #1
++              b       7b
++
++              .size   memcpy, . - memcpy
++END(memcpy)
++libc_hidden_builtin_def (memcpy)
+--- /dev/null  2004-02-02 20:32:13.000000000 +0000
++++ sysdeps/arm/memmove.S      2004-03-20 18:37:23.000000000 +0000
+@@ -0,0 +1,251 @@
++/*
++ *   Optimized memmove implementation for ARM processors
++ *
++ *    Author:         Nicolas Pitre
++ *    Created:        Dec 23, 2003
++ *    Copyright:      (C) MontaVista Software, Inc.
++ *
++ *   This file 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.
++ *
++ *   This file 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.
++ */
++
++#include <sysdep.h>
++
++
++/*
++ * Endian independent macros for shifting bytes within registers.
++ */
++#ifndef __ARMEB__
++#define pull            lsr
++#define push            lsl
++#else
++#define pull            lsl
++#define push            lsr
++#endif
++
++/*
++ * Enable data preload for architectures that support it (ARMv5 and above)
++ */
++#if defined(__ARM_ARCH_5__) || \
++    defined(__ARM_ARCH_5T__) || \
++    defined(__ARM_ARCH_5TE__)
++#define PLD(code...)  code
++#else
++#define PLD(code...)
++#endif
++
++
++/* char * memmove (char *dst, const char *src) */
++ENTRY(memmove)
++              subs    ip, r0, r1
++              cmphi   r2, ip
++              bls     memcpy(PLT)
++
++              stmfd   sp!, {r0, r4, lr}
++              add     r1, r1, r2
++              add     r0, r0, r2
++              subs    r2, r2, #4
++              blt     25f
++              ands    ip, r0, #3
++      PLD(    pld     [r1, #-4]               )
++              bne     26f
++              ands    ip, r1, #3
++              bne     27f
++
++19:           subs    r2, r2, #4
++              blt     24f
++              subs    r2, r2, #8
++              blt     23f
++              subs    r2, r2, #16
++              blt     22f
++
++      PLD(    pld     [r1, #-32]              )
++      PLD(    subs    r2, r2, #96             )
++              stmfd   sp!, {r5 - r8}
++      PLD(    blt     21f                     )
++
++      PLD(    @ cache alignment               )
++      PLD(    ands    ip, r1, #31             )
++      PLD(    pld     [r1, #-64]              )
++      PLD(    beq     20f                     )
++      PLD(    cmp     r2, ip                  )
++      PLD(    pld     [r1, #-96]              )
++      PLD(    blt     20f                     )
++      PLD(    cmp     ip, #16                 )
++      PLD(    sub     r2, r2, ip              )
++      PLD(    ldmgedb r1!, {r3 - r6}          )
++      PLD(    stmgedb r0!, {r3 - r6}          )
++      PLD(    beq     20f                     )
++      PLD(    and     ip, ip, #15             )
++      PLD(    cmp     ip, #8                  )
++      PLD(    ldr     r3, [r1, #-4]!          )
++      PLD(    ldrge   r4, [r1, #-4]!          )
++      PLD(    ldrgt   r5, [r1, #-4]!          )
++      PLD(    str     r3, [r0, #-4]!          )
++      PLD(    strge   r4, [r0, #-4]!          )
++      PLD(    strgt   r5, [r0, #-4]!          )
++
++20:   PLD(    pld     [r1, #-96]              )
++      PLD(    pld     [r1, #-128]             )
++21:           ldmdb   r1!, {r3, r4, ip, lr}
++              subs    r2, r2, #32
++              stmdb   r0!, {r3, r4, ip, lr}
++              ldmdb   r1!, {r3, r4, ip, lr}
++              stmgedb r0!, {r3, r4, ip, lr}
++              ldmgedb r1!, {r3, r4, ip, lr}
++              stmgedb r0!, {r3, r4, ip, lr}
++              ldmgedb r1!, {r3, r4, ip, lr}
++              subges  r2, r2, #32
++              stmdb   r0!, {r3, r4, ip, lr}
++              bge     20b
++      PLD(    cmn     r2, #96                 )
++      PLD(    bge     21b                     )
++      PLD(    add     r2, r2, #96             )
++              tst     r2, #31
++              ldmfd   sp!, {r5 - r8}
++              ldmeqfd sp!, {r0, r4, pc}
++
++              tst     r2, #16
++22:           ldmnedb r1!, {r3, r4, ip, lr}
++              stmnedb r0!, {r3, r4, ip, lr}
++
++              tst     r2, #8
++23:           ldmnedb r1!, {r3, r4}
++              stmnedb r0!, {r3, r4}
++
++              tst     r2, #4
++24:           ldrne   r3, [r1, #-4]!
++              strne   r3, [r0, #-4]!
++
++25:           ands    r2, r2, #3
++              ldmeqfd sp!, {r0, r4, pc}
++
++              cmp     r2, #2
++              ldrb    r3, [r1, #-1]
++              ldrgeb  r4, [r1, #-2]
++              ldrgtb  ip, [r1, #-3]
++              strb    r3, [r0, #-1]
++              strgeb  r4, [r0, #-2]
++              strgtb  ip, [r0, #-3]
++              ldmfd   sp!, {r0, r4, pc}
++
++26:           cmp     ip, #2
++              ldrb    r3, [r1, #-1]!
++              ldrgeb  r4, [r1, #-1]!
++              ldrgtb  lr, [r1, #-1]!
++              strb    r3, [r0, #-1]!
++              strgeb  r4, [r0, #-1]!
++              strgtb  lr, [r0, #-1]!
++              subs    r2, r2, ip
++              blt     25b
++              ands    ip, r1, #3
++              beq     19b
++
++27:           bic     r1, r1, #3
++              cmp     ip, #2
++              ldr     r3, [r1]
++              beq     35f
++              blt     36f
++
++
++              .macro  backward_copy_shift push pull
++
++              cmp     r2, #12
++      PLD(    pld     [r1, #-4]               )
++              blt     33f
++              subs    r2, r2, #28
++              stmfd   sp!, {r5 - r9}
++              blt     31f
++
++      PLD(    subs    r2, r2, #96             )
++      PLD(    pld     [r1, #-32]              )
++      PLD(    blt     30f                     )
++      PLD(    pld     [r1, #-64]              )
++
++      PLD(    @ cache alignment               )
++      PLD(    ands    ip, r1, #31             )
++      PLD(    pld     [r1, #-96]              )
++      PLD(    beq     29f                     )
++      PLD(    cmp     r2, ip                  )
++      PLD(    pld     [r1, #-128]             )
++      PLD(    blt     29f                     )
++      PLD(    sub     r2, r2, ip              )
++28:   PLD(    mov     r4, r3, push #\push     )
++      PLD(    ldr     r3, [r1, #-4]!          )
++      PLD(    subs    ip, ip, #4              )
++      PLD(    orr     r4, r4, r3, pull #\pull )
++      PLD(    str     r4, [r0, #-4]!          )
++      PLD(    bgt     28b                     )
++
++29:   PLD(    pld     [r1, #-128]             )
++30:           mov     lr, r3, push #\push
++              ldmdb   r1!, {r3 - r9, ip}
++              subs    r2, r2, #32
++              orr     lr, lr, ip, pull #\pull
++              mov     ip, ip, push #\push
++              orr     ip, ip, r9, pull #\pull
++              mov     r9, r9, push #\push
++              orr     r9, r9, r8, pull #\pull
++              mov     r8, r8, push #\push
++              orr     r8, r8, r7, pull #\pull
++              mov     r7, r7, push #\push
++              orr     r7, r7, r6, pull #\pull
++              mov     r6, r6, push #\push
++              orr     r6, r6, r5, pull #\pull
++              mov     r5, r5, push #\push
++              orr     r5, r5, r4, pull #\pull
++              mov     r4, r4, push #\push
++              orr     r4, r4, r3, pull #\pull
++              stmdb   r0!, {r4 - r9, ip, lr}
++              bge     29b
++      PLD(    cmn     r2, #96                 )
++      PLD(    bge     30b                     )
++      PLD(    add     r2, r2, #96             )
++              cmn     r2, #16
++              blt     32f
++31:           mov     r7, r3, push #\push
++              ldmdb   r1!, {r3 - r6}
++              sub     r2, r2, #16
++              orr     r7, r7, r6, pull #\pull
++              mov     r6, r6, push #\push
++              orr     r6, r6, r5, pull #\pull
++              mov     r5, r5, push #\push
++              orr     r5, r5, r4, pull #\pull
++              mov     r4, r4, push #\push
++              orr     r4, r4, r3, pull #\pull
++              stmdb   r0!, {r4 - r7}
++32:           adds    r2, r2, #28
++              ldmfd   sp!, {r5 - r9}
++              blt     34f
++33:           mov     r4, r3, push #\push
++              ldr     r3, [r1, #-4]!
++              subs    r2, r2, #4
++              orr     r4, r4, r3, pull #\pull
++              str     r4, [r0, #-4]!
++              bge     33b
++34:
++              .endm
++
++
++              backward_copy_shift     push=8  pull=24
++              add     r1, r1, #3
++              b       25b
++
++35:           backward_copy_shift     push=16 pull=16
++              add     r1, r1, #2
++              b       25b
++
++36:           backward_copy_shift     push=24 pull=8
++              add     r1, r1, #1
++              b       25b
++
++              .size   memmove, . - memmove
++END(memmove)
++libc_hidden_builtin_def (memmove)
+--- /dev/null  2004-02-02 20:32:13.000000000 +0000
++++ sysdeps/arm/bcopy.S        2004-03-20 18:37:48.000000000 +0000
+@@ -0,0 +1,255 @@
++/*
++ *   Optimized memmove implementation for ARM processors
++ *
++ *    Author:         Nicolas Pitre
++ *    Created:        Dec 23, 2003
++ *    Copyright:      (C) MontaVista Software, Inc.
++ *
++ *   This file 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.
++ *
++ *   This file 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.
++ */
++
++#include <sysdep.h>
++
++
++/*
++ * Endian independent macros for shifting bytes within registers.
++ */
++#ifndef __ARMEB__
++#define pull            lsr
++#define push            lsl
++#else
++#define pull            lsl
++#define push            lsr
++#endif
++
++/*
++ * Enable data preload for architectures that support it (ARMv5 and above)
++ */
++#if defined(__ARM_ARCH_5__) || \
++    defined(__ARM_ARCH_5T__) || \
++    defined(__ARM_ARCH_5TE__)
++#define PLD(code...)  code
++#else
++#define PLD(code...)
++#endif
++
++dst           .req    r1
++src           .req    r0
++
++/* void *bcopy (const char *src, char *dst, size_t size) */
++ENTRY(bcopy)
++              subs    ip, dst, src
++              cmphi   r2, ip
++              movls   r3, r0
++              movls   r0, r1
++              movls   r1, r3
++              bls     memcpy(PLT)
++
++              stmfd   sp!, {r4, lr}
++              add     src, src, r2
++              add     dst, dst, r2
++              subs    r2, r2, #4
++              blt     25f
++              ands    ip, dst, #3
++      PLD(    pld     [src, #-4]              )
++              bne     26f
++              ands    ip, src, #3
++              bne     27f
++
++19:           subs    r2, r2, #4
++              blt     24f
++              subs    r2, r2, #8
++              blt     23f
++              subs    r2, r2, #16
++              blt     22f
++
++      PLD(    pld     [src, #-32]             )
++      PLD(    subs    r2, r2, #96             )
++              stmfd   sp!, {r5 - r8}
++      PLD(    blt     21f                     )
++
++      PLD(    @ cache alignment               )
++      PLD(    ands    ip, src, #31            )
++      PLD(    pld     [src, #-64]             )
++      PLD(    beq     20f                     )
++      PLD(    cmp     r2, ip                  )
++      PLD(    pld     [src, #-96]             )
++      PLD(    blt     20f                     )
++      PLD(    cmp     ip, #16                 )
++      PLD(    sub     r2, r2, ip              )
++      PLD(    ldmgedb src!, {r3 - r6}         )
++      PLD(    stmgedb dst!, {r3 - r6}         )
++      PLD(    beq     20f                     )
++      PLD(    and     ip, ip, #15             )
++      PLD(    cmp     ip, #8                  )
++      PLD(    ldr     r3, [src, #-4]!         )
++      PLD(    ldrge   r4, [src, #-4]!         )
++      PLD(    ldrgt   r5, [src, #-4]!         )
++      PLD(    str     r3, [dst, #-4]!         )
++      PLD(    strge   r4, [dst, #-4]!         )
++      PLD(    strgt   r5, [dst, #-4]!         )
++
++20:   PLD(    pld     [src, #-96]             )
++      PLD(    pld     [src, #-128]            )
++21:           ldmdb   src!, {r3, r4, ip, lr}
++              subs    r2, r2, #32
++              stmdb   dst!, {r3, r4, ip, lr}
++              ldmdb   src!, {r3, r4, ip, lr}
++              stmgedb dst!, {r3, r4, ip, lr}
++              ldmgedb src!, {r3, r4, ip, lr}
++              stmgedb dst!, {r3, r4, ip, lr}
++              ldmgedb src!, {r3, r4, ip, lr}
++              subges  r2, r2, #32
++              stmdb   dst!, {r3, r4, ip, lr}
++              bge     20b
++      PLD(    cmn     r2, #96                 )
++      PLD(    bge     21b                     )
++      PLD(    add     r2, r2, #96             )
++              tst     r2, #31
++              ldmfd   sp!, {r5 - r8}
++              ldmeqfd sp!, {r4, pc}
++
++              tst     r2, #16
++22:           ldmnedb src!, {r3, r4, ip, lr}
++              stmnedb dst!, {r3, r4, ip, lr}
++
++              tst     r2, #8
++23:           ldmnedb src!, {r3, r4}
++              stmnedb dst!, {r3, r4}
++
++              tst     r2, #4
++24:           ldrne   r3, [src, #-4]!
++              strne   r3, [dst, #-4]!
++
++25:           ands    r2, r2, #3
++              ldmeqfd sp!, {dst, r4, pc}
++
++              cmp     r2, #2
++              ldrb    r3, [src, #-1]
++              ldrgeb  r4, [src, #-2]
++              ldrgtb  ip, [src, #-3]
++              strb    r3, [dst, #-1]
++              strgeb  r4, [dst, #-2]
++              strgtb  ip, [dst, #-3]
++              ldmfd   sp!, {dst, r4, pc}
++
++26:           cmp     ip, #2
++              ldrb    r3, [src, #-1]!
++              ldrgeb  r4, [src, #-1]!
++              ldrgtb  lr, [src, #-1]!
++              strb    r3, [dst, #-1]!
++              strgeb  r4, [dst, #-1]!
++              strgtb  lr, [dst, #-1]!
++              subs    r2, r2, ip
++              blt     25b
++              ands    ip, src, #3
++              beq     19b
++
++27:           bic     src, src, #3
++              cmp     ip, #2
++              ldr     r3, [src]
++              beq     35f
++              blt     36f
++
++
++              .macro  backward_copy_shift push pull
++
++              cmp     r2, #12
++      PLD(    pld     [src, #-4]              )
++              blt     33f
++              subs    r2, r2, #28
++              stmfd   sp!, {r5 - r9}
++              blt     31f
++
++      PLD(    subs    r2, r2, #96             )
++      PLD(    pld     [src, #-32]             )
++      PLD(    blt     30f                     )
++      PLD(    pld     [src, #-64]             )
++
++      PLD(    @ cache alignment               )
++      PLD(    ands    ip, src, #31            )
++      PLD(    pld     [src, #-96]             )
++      PLD(    beq     29f                     )
++      PLD(    cmp     r2, ip                  )
++      PLD(    pld     [src, #-128]            )
++      PLD(    blt     29f                     )
++      PLD(    sub     r2, r2, ip              )
++28:   PLD(    mov     r4, r3, push #\push     )
++      PLD(    ldr     r3, [src, #-4]!         )
++      PLD(    subs    ip, ip, #4              )
++      PLD(    orr     r4, r4, r3, pull #\pull )
++      PLD(    str     r4, [dst, #-4]!         )
++      PLD(    bgt     28b                     )
++
++29:   PLD(    pld     [src, #-128]            )
++30:           mov     lr, r3, push #\push
++              ldmdb   src!, {r3 - r9, ip}
++              subs    r2, r2, #32
++              orr     lr, lr, ip, pull #\pull
++              mov     ip, ip, push #\push
++              orr     ip, ip, r9, pull #\pull
++              mov     r9, r9, push #\push
++              orr     r9, r9, r8, pull #\pull
++              mov     r8, r8, push #\push
++              orr     r8, r8, r7, pull #\pull
++              mov     r7, r7, push #\push
++              orr     r7, r7, r6, pull #\pull
++              mov     r6, r6, push #\push
++              orr     r6, r6, r5, pull #\pull
++              mov     r5, r5, push #\push
++              orr     r5, r5, r4, pull #\pull
++              mov     r4, r4, push #\push
++              orr     r4, r4, r3, pull #\pull
++              stmdb   dst!, {r4 - r9, ip, lr}
++              bge     29b
++      PLD(    cmn     r2, #96                 )
++      PLD(    bge     30b                     )
++      PLD(    add     r2, r2, #96             )
++              cmn     r2, #16
++              blt     32f
++31:           mov     r7, r3, push #\push
++              ldmdb   src!, {r3 - r6}
++              sub     r2, r2, #16
++              orr     r7, r7, r6, pull #\pull
++              mov     r6, r6, push #\push
++              orr     r6, r6, r5, pull #\pull
++              mov     r5, r5, push #\push
++              orr     r5, r5, r4, pull #\pull
++              mov     r4, r4, push #\push
++              orr     r4, r4, r3, pull #\pull
++              stmdb   dst!, {r4 - r7}
++32:           adds    r2, r2, #28
++              ldmfd   sp!, {r5 - r9}
++              blt     34f
++33:           mov     r4, r3, push #\push
++              ldr     r3, [src, #-4]!
++              subs    r2, r2, #4
++              orr     r4, r4, r3, pull #\pull
++              str     r4, [dst, #-4]!
++              bge     33b
++34:
++              .endm
++
++
++              backward_copy_shift     push=8  pull=24
++              add     src, src, #3
++              b       25b
++
++35:           backward_copy_shift     push=16 pull=16
++              add     src, src, #2
++              b       25b
++
++36:           backward_copy_shift     push=24 pull=8
++              add     src, src, #1
++              b       25b
++
++              .size   bcopy, . - bcopy
++END(bcopy)
index 5e72341..0374d4e 100644 (file)
@@ -4,37 +4,24 @@ SECTION = "libs"
 PRIORITY = "required"
 MAINTAINER = "Chris Larson <kergoth@handhelds.org>"
 
-# We want to select whether we're building a uclibc or glibc system and
-# perform provides accordingly.  We want to trigger on the original
-# TARGET_VENDOR setting, so we must do this before changing it.
-def target_is_uclibc(d):
-    import oe
-    if (oe.data.getVar('TARGET_VENDOR', d, 1) == '-uclibc'):
-        return 1
-    return 0
-def cond_provides(d):
-    import oe
-    if not target_is_uclibc(d):
-        return 'virtual/libc'
-    return ''
-def cond_packages(d):
-    import oe
-    if not target_is_uclibc(d):
-        return 'glibc glibc-dev glibc-doc glibc-i18n glibc-locale'
-    oe.data.setVar('PACKAGE_NO_LOCALE', '1', d)
-    oe.data.setVar('PACKAGE_NO_GCONV', '1', d)
-    return 'glibc-compat'
-PROVIDES := "${@cond_provides(d)}"
-PACKAGES := "${@cond_packages(d)}"
-
-# When target is not a uclibc system, do a compat-only package
-FILES_${PN}-compat = "${libdir}/lib*.so.* /lib/*.so*"
-
-# This will ONLY build to this target (we override it incase we're buliding
-# the world for a uclibc system)
-TARGET_VENDOR = ""
-TARGET_SYS = "${TARGET_ARCH}${TARGET_VENDOR}-${TARGET_OS}"
-TARGET_PREFIX = "${TARGET_SYS}-"
+#
+# For now, we will skip building of a gcc package if it is a uclibc one
+# and our build is not a uclibc one, and we skip a glibc one if our build
+# is a uclibc build.
+#
+# See the note in gcc/gcc_3.4.0.oe
+#
+
+python __anonymous () {
+    import oe, re
+    uc_os = (re.match('.*uclibc$', oe.data.getVar('TARGET_OS', d, 1)) != None)
+    if uc_os:
+        raise oe.parse.SkipPackage("incompatible with target %s" %
+                                   oe.data.getVar('TARGET_OS', d, 1))
+}
+
+PROVIDES = "virtual/libc"
+PACKAGES = "glibc glibc-dev glibc-doc glibc-i18n glibc-locale"
 
 DEPENDS = "virtual/${TARGET_PREFIX}gcc-initial"
 
@@ -106,7 +93,10 @@ SRC_URI = "ftp://ftp.gnu.org/gnu/glibc/glibc-${PV}.tar.gz \
           file://${FILESDIR}/90_glibc232-statvfs.patch;patch=1;pnum=0 \
           file://${FILESDIR}/90_glibc232-timezones.patch;patch=1;pnum=0 \
           file://${FILESDIR}/arm-memcpy.patch;patch=1;pnum=0 \
-          file://${FILESDIR}/arm-longlong.patch;patch=1;pnum=0"
+          file://${FILESDIR}/arm-longlong.patch;patch=1;pnum=0 \
+          file://${FILESDIR}/arm-machine-gmon.patch;patch=1;pnum=0 \
+          file://${FILESDIR}/glibc232-gcc34-i386-fixup-attribute.patch;patch=1;pnum=1 \
+          file://${FILESDIR}/glibc232-gcc34-no-unit-at-a-time.patch;patch=1;pnum=1"
 
 S = "${WORKDIR}/glibc-${PV}"
 B = "${WORKDIR}/build-${TARGET_SYS}"
index 97bcd98..9399895 100644 (file)
@@ -6,37 +6,24 @@ SECTION = "libs"
 PRIORITY = "required"
 MAINTAINER = "Phil Blundell <pb@handhelds.org>"
 
-# We want to select whether we're building a uclibc or glibc system and
-# perform provides accordingly.  We want to trigger on the original
-# TARGET_VENDOR setting, so we must do this before changing it.
-def target_is_uclibc(d):
-    import oe
-    if (oe.data.getVar('TARGET_VENDOR', d, 1) == '-uclibc'):
-        return 1
-    return 0
-def cond_provides(d):
-    import oe
-    if not target_is_uclibc(d):
-        return 'virtual/libc'
-    return ''
-def cond_packages(d):
-    import oe
-    if not target_is_uclibc(d):
-        return 'glibc glibc-dev glibc-doc glibc-i18n glibc-locale'
-    oe.data.setVar('PACKAGE_NO_LOCALE', '1', d)
-    oe.data.setVar('PACKAGE_NO_GCONV', '1', d)
-    return 'glibc-compat'
-PROVIDES := "${@cond_provides(d)}"
-PACKAGES := "${@cond_packages(d)}"
-
-# When target is not a uclibc system, do a compat-only package
-FILES_${PN}-compat = "${libdir}/lib*.so.* /lib/*.so*"
-
-# This will ONLY build to this target (we override it incase we're buliding
-# the world for a uclibc system)
-TARGET_VENDOR = ""
-TARGET_SYS = "${TARGET_ARCH}${TARGET_VENDOR}-${TARGET_OS}"
-TARGET_PREFIX = "${TARGET_SYS}-"
+#
+# For now, we will skip building of a gcc package if it is a uclibc one
+# and our build is not a uclibc one, and we skip a glibc one if our build
+# is a uclibc build.
+#
+# See the note in gcc/gcc_3.4.0.oe
+#
+
+python __anonymous () {
+    import oe, re
+    uc_os = (re.match('.*uclibc$', oe.data.getVar('TARGET_OS', d, 1)) != None)
+    if uc_os:
+        raise oe.parse.SkipPackage("incompatible with target %s" %
+                                   oe.data.getVar('TARGET_OS', d, 1))
+}
+
+PROVIDES = "virtual/libc"
+PACKAGES = "glibc glibc-dev glibc-doc glibc-i18n glibc-locale"
 
 DEPENDS = "virtual/${TARGET_PREFIX}gcc-initial"
 
@@ -56,7 +43,8 @@ SRC_URI = "cvs://anoncvs@sources.redhat.com/cvs/glibc;module=libc \
           file://${FILESDIR}/fhs-linux-paths.patch;patch=1;pnum=1 \
           file://${FILESDIR}/arm-no-hwcap.patch;patch=1;pnum=0 \
           file://${FILESDIR}/arm-memcpy.patch;patch=1;pnum=0 \
-          file://${FILESDIR}/arm-longlong.patch;patch=1;pnum=0"
+          file://${FILESDIR}/arm-longlong.patch;patch=1;pnum=0 \
+          file://${FILESDIR}/arm-machine-gmon.patch;patch=1;pnum=0"
 
 S = "${WORKDIR}/libc"
 B = "${WORKDIR}/build-${TARGET_SYS}"
diff --git a/libtool/libtool-1.5/libtool15-update-configscripts.patch b/libtool/libtool-1.5/libtool15-update-configscripts.patch
new file mode 100644 (file)
index 0000000..e69de29
index 20084a7..d9004eb 100644 (file)
@@ -1,5 +1,6 @@
 include libtool_${PV}.oe
-#inherit cross
+# This is a cross tool, but doesn't really fit in with the cross
+# build system, so we don't actually "inherit cross" here.
 SRC_URI_append = " file://${FILESDIR}/libdir-la.patch;patch=1 \
                   file://${FILESDIR}/sedvar.patch;patch=1 \
                   file://${FILESDIR}/tag.patch;patch=1 \
index 2c36f5b..33cfbbb 100644 (file)
@@ -3,7 +3,8 @@ This is GNU libtool, a generic library support script.  Libtool hides \
 the complexity of generating special library types (such as shared \
 libraries) behind a consistent interface."
 
-SRC_URI = "http://ftp.club.cc.cmu.edu/pub/gnu/libtool/libtool-${PV}.tar.gz"
+SRC_URI = "http://ftp.club.cc.cmu.edu/pub/gnu/libtool/libtool-${PV}.tar.gz \
+          file://${FILESDIR}/libtool15-update-configscripts.patch;patch=1;pnum=1"
 S = "${WORKDIR}/libtool-${PV}"
 
 inherit autotools
index cfc53bf..ca67c55 100644 (file)
@@ -31,20 +31,6 @@ TARGET_ARCH="arm"
 # CONFIG_ARM_SA110 is not set
 # CONFIG_ARM_SA1100 is not set
 CONFIG_ARM_XSCALE=y
-# CONFIG_GENERIC_386 is not set
-# CONFIG_386 is not set
-# CONFIG_486 is not set
-# CONFIG_586 is not set
-# CONFIG_586MMX is not set
-# CONFIG_686 is not set
-# CONFIG_PENTIUMIII is not set
-# CONFIG_PENTIUM4 is not set
-# CONFIG_K6 is not set
-# CONFIG_K7 is not set
-# CONFIG_CRUSOE is not set
-# CONFIG_WINCHIPC6 is not set
-# CONFIG_WINCHIP2 is not set
-# CONFIG_CYRIXIII is not set
 ARCH_LITTLE_ENDIAN=y
 # ARCH_BIG_ENDIAN is not set
 # ARCH_HAS_NO_MMU is not set
@@ -105,8 +91,13 @@ UCLIBC_HAS_CTYPE_SIGNED=y
 UCLIBC_HAS_CTYPE_CHECKED=y
 # UCLIBC_HAS_CTYPE_ENFORCED is not set
 UCLIBC_HAS_WCHAR=y
-# UCLIBC_HAS_LOCALE is not set
+UCLIBC_HAS_LOCALE=y
+UCLIBC_PREGENERATED_LOCALE_DATA=y
+# UCLIBC_DOWNLOAD_PREGENERATED_LOCALE_DATA is not set
+UCLIBC_HAS_XLOCALE=y
 UCLIBC_HAS_HEXADECIMAL_FLOATS=y
+UCLIBC_HAS_GLIBC_DIGIT_GROUPING=y
+UCLIBC_HAS_SCANF_LENIENT_DIGIT_GROUPING=y
 UCLIBC_HAS_GLIBC_CUSTOM_PRINTF=y
 UCLIBC_PRINTF_SCANF_POSITIONAL_ARGS=9
 UCLIBC_HAS_SCANF_GLIBC_A_FLAG=y
@@ -131,22 +122,23 @@ UCLIBC_HAS_ERRNO_MESSAGES=y
 # UCLIBC_HAS_SYS_ERRLIST is not set
 UCLIBC_HAS_SIGNUM_MESSAGES=y
 # UCLIBC_HAS_SYS_SIGLIST is not set
+UCLIBC_HAS_GETTEXT_AWARENESS=y
 UCLIBC_HAS_GNU_GETOPT=y
 
 #
 # Big and Tall
 #
 UCLIBC_HAS_REGEX=y
-# UCLIBC_HAS_WORDEXP is not set
-# UCLIBC_HAS_FTW is not set
+UCLIBC_HAS_WORDEXP=y
+UCLIBC_HAS_FTW=y
 UCLIBC_HAS_GLOB=y
 
 #
 # Library Installation Options
 #
 SHARED_LIB_LOADER_PREFIX="$(DEVEL_PREFIX)/lib"
-RUNTIME_PREFIX="/usr/$(TARGET_ARCH)-linux-uclibc/"
-DEVEL_PREFIX="/home/gbritton/devel/OE/build/tmp/staging/cross/i386-uclibc-linux"
+RUNTIME_PREFIX="/"
+DEVEL_PREFIX="//usr"
 
 #
 # uClibc development/debugging options
index e69de29..3b35693 100644 (file)
@@ -0,0 +1,154 @@
+#
+# Automatically generated make config: don't edit
+#
+# TARGET_alpha is not set
+# TARGET_arm is not set
+# TARGET_cris is not set
+# TARGET_e1 is not set
+# TARGET_h8300 is not set
+TARGET_i386=y
+# TARGET_i960 is not set
+# TARGET_m68k is not set
+# TARGET_microblaze is not set
+# TARGET_mips is not set
+# TARGET_powerpc is not set
+# TARGET_sh is not set
+# TARGET_sparc is not set
+# TARGET_v850 is not set
+
+#
+# Target Architecture Features and Options
+#
+HAVE_ELF=y
+TARGET_ARCH="i386"
+CONFIG_GENERIC_386=y
+# CONFIG_386 is not set
+# CONFIG_486 is not set
+# CONFIG_586 is not set
+# CONFIG_586MMX is not set
+# CONFIG_686 is not set
+# CONFIG_PENTIUMIII is not set
+# CONFIG_PENTIUM4 is not set
+# CONFIG_K6 is not set
+# CONFIG_K7 is not set
+# CONFIG_CRUSOE is not set
+# CONFIG_WINCHIPC6 is not set
+# CONFIG_WINCHIP2 is not set
+# CONFIG_CYRIXIII is not set
+ARCH_LITTLE_ENDIAN=y
+# ARCH_BIG_ENDIAN is not set
+# ARCH_HAS_NO_MMU is not set
+UCLIBC_HAS_MMU=y
+UCLIBC_HAS_FLOATS=y
+HAS_FPU=y
+DO_C99_MATH=y
+WARNINGS="-Wall"
+KERNEL_SOURCE="/usr/src/linux"
+C_SYMBOL_PREFIX=""
+HAVE_DOT_CONFIG=y
+
+#
+# General Library Settings
+#
+# HAVE_NO_PIC is not set
+DOPIC=y
+# HAVE_NO_SHARED is not set
+HAVE_SHARED=y
+# ARCH_HAS_NO_LDSO is not set
+BUILD_UCLIBC_LDSO=y
+# UCLIBC_PIE_SUPPORT is not set
+LDSO_LDD_SUPPORT=y
+UCLIBC_CTOR_DTOR=y
+# UCLIBC_PROPOLICE is not set
+# UCLIBC_PROFILING is not set
+# HAS_NO_THREADS is not set
+UCLIBC_HAS_THREADS=y
+PTHREADS_DEBUG_SUPPORT=y
+UCLIBC_HAS_LFS=y
+# MALLOC is not set
+# MALLOC_SIMPLE is not set
+MALLOC_STANDARD=y
+MALLOC_GLIBC_COMPAT=y
+UCLIBC_DYNAMIC_ATEXIT=y
+HAS_SHADOW=y
+UNIX98PTY_ONLY=y
+ASSUME_DEVPTS=y
+UCLIBC_HAS_TM_EXTENSIONS=y
+UCLIBC_HAS_TZ_CACHING=y
+UCLIBC_HAS_TZ_FILE=y
+UCLIBC_HAS_TZ_FILE_READ_MANY=y
+UCLIBC_TZ_FILE_PATH="/etc/TZ"
+
+#
+# Networking Support
+#
+# UCLIBC_HAS_IPV6 is not set
+UCLIBC_HAS_RPC=y
+# UCLIBC_HAS_FULL_RPC is not set
+
+#
+# String and Stdio Support
+#
+UCLIBC_HAS_CTYPE_TABLES=y
+UCLIBC_HAS_CTYPE_SIGNED=y
+# UCLIBC_HAS_CTYPE_UNSAFE is not set
+UCLIBC_HAS_CTYPE_CHECKED=y
+# UCLIBC_HAS_CTYPE_ENFORCED is not set
+UCLIBC_HAS_WCHAR=y
+UCLIBC_HAS_LOCALE=y
+UCLIBC_PREGENERATED_LOCALE_DATA=y
+# UCLIBC_DOWNLOAD_PREGENERATED_LOCALE_DATA is not set
+UCLIBC_HAS_XLOCALE=y
+UCLIBC_HAS_HEXADECIMAL_FLOATS=y
+UCLIBC_HAS_GLIBC_DIGIT_GROUPING=y
+UCLIBC_HAS_SCANF_LENIENT_DIGIT_GROUPING=y
+UCLIBC_HAS_GLIBC_CUSTOM_PRINTF=y
+UCLIBC_PRINTF_SCANF_POSITIONAL_ARGS=9
+UCLIBC_HAS_SCANF_GLIBC_A_FLAG=y
+# UCLIBC_HAS_STDIO_BUFSIZ_NONE is not set
+UCLIBC_HAS_STDIO_BUFSIZ_256=y
+# UCLIBC_HAS_STDIO_BUFSIZ_512 is not set
+# UCLIBC_HAS_STDIO_BUFSIZ_1024 is not set
+# UCLIBC_HAS_STDIO_BUFSIZ_2048 is not set
+# UCLIBC_HAS_STDIO_BUFSIZ_4096 is not set
+# UCLIBC_HAS_STDIO_BUFSIZ_8192 is not set
+UCLIBC_HAS_STDIO_BUILTIN_BUFFER_NONE=y
+# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_4 is not set
+# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_8 is not set
+UCLIBC_HAS_STDIO_GETC_MACRO=y
+UCLIBC_HAS_STDIO_PUTC_MACRO=y
+UCLIBC_HAS_STDIO_AUTO_RW_TRANSITION=y
+# UCLIBC_HAS_FOPEN_LARGEFILE_MODE is not set
+UCLIBC_HAS_FOPEN_EXCLUSIVE_MODE=y
+UCLIBC_HAS_GLIBC_CUSTOM_STREAMS=y
+UCLIBC_HAS_PRINTF_M_SPEC=y
+UCLIBC_HAS_ERRNO_MESSAGES=y
+# UCLIBC_HAS_SYS_ERRLIST is not set
+UCLIBC_HAS_SIGNUM_MESSAGES=y
+# UCLIBC_HAS_SYS_SIGLIST is not set
+UCLIBC_HAS_GETTEXT_AWARENESS=y
+UCLIBC_HAS_GNU_GETOPT=y
+
+#
+# Big and Tall
+#
+UCLIBC_HAS_REGEX=y
+UCLIBC_HAS_WORDEXP=y
+UCLIBC_HAS_FTW=y
+UCLIBC_HAS_GLOB=y
+
+#
+# Library Installation Options
+#
+SHARED_LIB_LOADER_PREFIX="$(DEVEL_PREFIX)/lib"
+RUNTIME_PREFIX="/"
+DEVEL_PREFIX="//usr"
+
+#
+# uClibc development/debugging options
+#
+# DODEBUG is not set
+# DOASSERTS is not set
+# SUPPORT_LD_DEBUG is not set
+# SUPPORT_LD_DEBUG_EARLY is not set
+# UCLIBC_MJN3_ONLY is not set
index 57fa385..daa4cb0 100644 (file)
@@ -2,11 +2,6 @@ include uclibc_${PV}.oe
 
 FILESDIR = "${@os.path.dirname(oe.data.getVar('FILE',d,1))}/uclibc-${PV}"
 
-# This will ONLY build to this target
-TARGET_VENDOR = "-uclibc"
-TARGET_SYS = "${TARGET_ARCH}${TARGET_VENDOR}-${TARGET_OS}"
-TARGET_PREFIX = "${TARGET_SYS}-"
-
 DEPENDS = ""
 PACKAGES = ""
 
index d723217..8008b5c 100644 (file)
@@ -4,41 +4,49 @@ SECTION = "libs"
 PRIORITY = "required"
 MAINTAINER = "Gerald Britton <gbritton@doomcom.org>"
 
-# We want to select whether we're building a uclibc or glibc system and
-# perform provides accordingly.  We want to trigger on the original
-# TARGET_VENDOR setting, so we must do this before changing it.
-def target_is_uclibc(d):
-    import oe
-    if (oe.data.getVar('TARGET_VENDOR', d, 1) == '-uclibc'):
-        return 1
-    return 0
-def cond_provides(d):
-    import oe
-    if target_is_uclibc(d):
-        return 'virtual/libc'
-    return ''
-def cond_packages(d):
-    import oe
-    if target_is_uclibc(d):
-        return '${PN} ${PN}-doc ${PN}-dev ${PN}-locale'
-    return '${PN}-compat'
-PROVIDES := "${@cond_provides(d)}"
-PACKAGES := "${@cond_packages(d)}"
-
-# When target is not a uclibc system, do a compat-only package
-FILES_${PN}-compat = "${libdir}/lib*.so.* /lib/*.so*"
-
-# This will ONLY build to this target (we override it incase we're buliding
-# the world for a glibc system)
-TARGET_VENDOR = "-uclibc"
-TARGET_SYS = "${TARGET_ARCH}${TARGET_VENDOR}-${TARGET_OS}"
-TARGET_PREFIX = "${TARGET_SYS}-"
+#
+# For now, we will skip building of a gcc package if it is a uclibc one
+# and our build is not a uclibc one, and we skip a glibc one if our build
+# is a uclibc build.
+#
+# See the note in gcc/gcc_3.4.0.oe
+#
+
+python __anonymous () {
+    import oe, re
+    uc_os = (re.match('.*uclibc$', oe.data.getVar('TARGET_OS', d, 1)) != None)
+    if not uc_os:
+        raise oe.parse.SkipPackage("incompatible with target %s" %
+                                   oe.data.getVar('TARGET_OS', d, 1))
+}
 
-FILESDIR = "${@os.path.dirname(oe.data.getVar('FILE',d,1))}/uclibc-${PV}"
+#
+# We can only work currently with a predefined .config, this ensures we have
+# one.  In the future, this may want to respect ${MACHINE} as well.
+#
+
+python __anonymous () {
+    import oe, os;
+    conf = (oe.data.getVar('FILESDIR', d, 1) + "/uClibc.config." +
+            oe.data.getVar('TARGET_ARCH', d, 1))
+    if not os.access(conf, os.R_OK):
+        raise oe.parse.SkipPackage("no available .config for target %s" %
+                                   oe.data.getVar('TARGET_OS', d, 1))
+}
 
-DEPENDS = "virtual/${TARGET_PREFIX}binutils virtual/${TARGET_PREFIX}gcc-initial"
+PROVIDES = "virtual/libc"
+DEPENDS = "virtual/${TARGET_PREFIX}binutils \
+          virtual/${TARGET_PREFIX}gcc-initial"
 
+#
+# This locale file gets copied into uClibc-${PV}/extra/locale/ prior to
+# build, it does not need to be unpacked, but we can't inhibit the unpacking
+# in the current build system.
+#
+UCLIBC_LOCALE_FILE = "uClibc-locale-030818.tgz"
+FILESDIR = "${@os.path.dirname(oe.data.getVar('FILE',d,1))}/uclibc-${PV}"
 SRC_URI = "http://www.uclibc.org/downloads/uClibc-${PV}.tar.bz2 \
+           http://www.uclibc.org/downloads/${UCLIBC_LOCALE_FILE} \
            http://www.uclibc.org/downloads/toolchain/kernel-headers-2.4.21.tar.bz2"
 
 S = "${WORKDIR}/uClibc-${PV}"
@@ -63,6 +71,7 @@ uclibcbuild_do_patch() {
                cp ${FILESDIR}/uClibc.config.${TARGET_ARCH} ${S}/.config
        else
                echo ERROR: No target specific config for ${TARGET_ARCH}
+               return 1
        fi
 
        perl -i -p -e 's,^CROSS=.*,TARGET_ARCH=${TARGET_ARCH}\nCROSS=${TARGET_PREFIX},g' ${S}/Rules.mak
@@ -72,6 +81,8 @@ uclibcbuild_do_patch() {
        perl -i -p -e 's,^SHARED_LIB_LOADER_PATH=.*,SHARED_LIB_LOADER_PATH=\"/lib\",g' ${S}/.config
        perl -i -p -e 's,.*UCLIBC_HAS_WCHAR.*,UCLIBC_HAS_WCHAR=y\nUCLIBC_HAS_LOCALE=n,g' ${S}/.config
 
+       cp ${DL_DIR}/${UCLIBC_LOCALE_FILE} extra/locale
+
        make oldconfig
 }