summaryrefslogtreecommitdiff
path: root/packages/uclibc
diff options
context:
space:
mode:
authorKhem Raj <raj.khem@gmail.com>2008-07-25 01:12:06 +0000
committerKhem Raj <raj.khem@gmail.com>2008-07-25 01:12:06 +0000
commite96e82cd7ee95d712e2c68f2f9540bdfe727645b (patch)
tree39cdeb09343849bef85eba68c048b9f3b670ac9b /packages/uclibc
parenta3e73146adce111fe67af0886a43acbf7a654bd7 (diff)
Change the toolchain build sequence. Helps in reproducable toolchains components when recompiled. Also same sequence for all different combinations (uclibc/nptl/eglibc/glibc/linuxthreads). Also fixes and patches that I worked to get various ancient compilers working.
Diffstat (limited to 'packages/uclibc')
-rw-r--r--packages/uclibc/bfin-uclibc_svn.bb2
-rw-r--r--packages/uclibc/uclibc-0.9.27/uclibc-makevars-in-quotes.patch25
-rw-r--r--packages/uclibc/uclibc-0.9.28/uclibc-libgcc-eh.patch38
-rw-r--r--packages/uclibc/uclibc-initial_0.9.26.bb16
-rw-r--r--packages/uclibc/uclibc-initial_0.9.27.bb17
-rw-r--r--packages/uclibc/uclibc-initial_0.9.28.bb17
-rw-r--r--packages/uclibc/uclibc-initial_0.9.29.bb9
-rw-r--r--packages/uclibc/uclibc-initial_svn.bb10
-rw-r--r--packages/uclibc/uclibc.inc5
-rw-r--r--packages/uclibc/uclibc_0.9.26.bb2
-rw-r--r--packages/uclibc/uclibc_0.9.27.bb3
-rw-r--r--packages/uclibc/uclibc_0.9.28.bb3
-rw-r--r--packages/uclibc/uclibc_0.9.29.bb4
-rw-r--r--packages/uclibc/uclibc_svn.bb2
14 files changed, 129 insertions, 24 deletions
diff --git a/packages/uclibc/bfin-uclibc_svn.bb b/packages/uclibc/bfin-uclibc_svn.bb
index 5e71ddb490..cccb5d6527 100644
--- a/packages/uclibc/bfin-uclibc_svn.bb
+++ b/packages/uclibc/bfin-uclibc_svn.bb
@@ -7,7 +7,7 @@
# on whether the base patches apply to the selected (SRCDATE) svn release.
#
UCLIBC_BASE ?= "0.9.29"
-PR = "r1"
+PR = "r2"
PV = "${UCLIBC_BASE}+svnr${SRCREV}"
require uclibc.inc
diff --git a/packages/uclibc/uclibc-0.9.27/uclibc-makevars-in-quotes.patch b/packages/uclibc/uclibc-0.9.27/uclibc-makevars-in-quotes.patch
new file mode 100644
index 0000000000..ce67e8f764
--- /dev/null
+++ b/packages/uclibc/uclibc-0.9.27/uclibc-makevars-in-quotes.patch
@@ -0,0 +1,25 @@
+---
+ Makefile | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+Index: uClibc-0.9.27/Makefile
+===================================================================
+--- uClibc-0.9.27.orig/Makefile 2008-07-23 20:05:34.000000000 -0700
++++ uClibc-0.9.27/Makefile 2008-07-23 20:06:27.000000000 -0700
+@@ -243,14 +243,14 @@ endif
+ .PHONY: utils
+ ifeq ($(strip $(HAVE_SHARED)),y)
+ utils:
+- $(MAKE) CROSS=$(CROSS) CC=$(CC) -C utils
++ $(MAKE) CROSS="$(CROSS)" CC="$(CC)" -C utils
+ else
+ utils: dummy
+ endif
+
+ # Installs helper applications, such as 'ldd' and 'ldconfig'
+ install_utils: utils
+- $(MAKE) CROSS=$(CROSS) CC=$(CC) -C utils install
++ $(MAKE) CROSS="$(CROSS)" CC="$(CC)" -C utils install
+ #ifeq ($(strip $(UCLIBC_HAS_LOCALE)),y)
+ # @$(MAKE) -C libc/misc/wchar iconv.target
+ # $(INSTALL) -d $(PREFIX)$(RUNTIME_PREFIX)/usr/bin;
diff --git a/packages/uclibc/uclibc-0.9.28/uclibc-libgcc-eh.patch b/packages/uclibc/uclibc-0.9.28/uclibc-libgcc-eh.patch
new file mode 100644
index 0000000000..0f66c1526f
--- /dev/null
+++ b/packages/uclibc/uclibc-0.9.28/uclibc-libgcc-eh.patch
@@ -0,0 +1,38 @@
+---
+ Rules.mak | 9 +++++++--
+ 1 file changed, 7 insertions(+), 2 deletions(-)
+
+Index: uClibc-0.9.28/Rules.mak
+===================================================================
+--- uClibc-0.9.28.orig/Rules.mak 2005-08-17 15:49:49.000000000 -0700
++++ uClibc-0.9.28/Rules.mak 2008-07-22 23:35:10.000000000 -0700
+@@ -37,7 +37,8 @@
+ # will build uClibc for 'arm'.
+
+ ifndef CROSS
+-CROSS=
++TARGET_ARCH=arm
++CROSS=arm-angstrom-linux-uclibcgnueabi-
+ endif
+ CC = $(CROSS)gcc
+ AR = $(CROSS)ar
+@@ -85,7 +86,8 @@ ifeq ($(filter $(noconfig_targets),$(MAK
+ endif
+
+ ifndef CROSS
+-CROSS=$(subst ",, $(strip $(CROSS_COMPILER_PREFIX)))
++TARGET_ARCH=arm
++CROSS=arm-angstrom-linux-uclibcgnueabi-
+ endif
+
+ # A nifty macro to make testing gcc features easier
+@@ -337,6 +339,9 @@ ASFLAGS += $(ASFLAGS_NOEXEC)
+ LIBGCC_CFLAGS ?= $(CFLAGS) $(CPU_CFLAGS-y)
+ LIBGCC:=$(shell $(CC) $(LIBGCC_CFLAGS) -print-libgcc-file-name)
+ LIBGCC_DIR:=$(dir $(LIBGCC))
++ifneq ($(shell $(CC) $(LIBGCC_CFLAGS) -print-file-name=libgcc_eh.a),libgcc_eh.a)
++ LIBGCC += $(shell $(CC) $(LIBGCC_CFLAGS) -print-file-name=libgcc_eh.a)
++endif
+
+ ########################################
+ #
diff --git a/packages/uclibc/uclibc-initial_0.9.26.bb b/packages/uclibc/uclibc-initial_0.9.26.bb
index c29a498a96..a6a83bdce9 100644
--- a/packages/uclibc/uclibc-initial_0.9.26.bb
+++ b/packages/uclibc/uclibc-initial_0.9.26.bb
@@ -3,20 +3,28 @@ require uclibc_${PV}.bb
FILESPATH = "${@base_set_filespath([ '${FILE_DIRNAME}/uclibc-${PV}', '${FILE_DIRNAME}/uclibc', '${FILE_DIRNAME}/files', '${FILE_DIRNAME}' ], d)}"
-DEPENDS = "linux-libc-headers"
+DEPENDS = "linux-libc-headers virtual/${TARGET_PREFIX}gcc-initial"
PROVIDES = "virtual/${TARGET_PREFIX}libc-initial"
PACKAGES = ""
do_stage() {
# Install initial headers into the cross dir
- make PREFIX= DEVEL_PREFIX=${UCLIBC_STAGING_PREFIX}/ \
- RUNTIME_PREFIX=${UCLIBC_STAGING_PREFIX}/ \
+ make PREFIX= DEVEL_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
+ RUNTIME_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
pregen install_dev
+ make PREFIX= DEVEL_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
+ RUNTIME_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
+ libc/sysdeps/linux/${TARGET_ARCH}/crt0.o \
+ libc/sysdeps/linux/${TARGET_ARCH}/crti.o \
+ libc/sysdeps/linux/${TARGET_ARCH}/crtn.o
ln -sf include ${CROSS_DIR}/${TARGET_SYS}/sys-include
# This conflicts with the c++ version of this header
- rm -f ${UCLIBC_STAGING_PREFIX}/include/bits/atomicity.h
+ rm -f ${UCLIBC_STAGE_PREFIX}/include/bits/atomicity.h
+ install -m 644 libc/sysdeps/linux/${TARGET_ARCH}/crt[0in].o ${UCLIBC_STAGE_PREFIX}/lib
+ ${CC} -nostdlib -nostartfiles -shared -x c /dev/null \
+ -o ${UCLIBC_STAGE_PREFIX}/lib/libc.so
}
do_install() {
diff --git a/packages/uclibc/uclibc-initial_0.9.27.bb b/packages/uclibc/uclibc-initial_0.9.27.bb
index c29a498a96..3aecd802af 100644
--- a/packages/uclibc/uclibc-initial_0.9.27.bb
+++ b/packages/uclibc/uclibc-initial_0.9.27.bb
@@ -3,20 +3,29 @@ require uclibc_${PV}.bb
FILESPATH = "${@base_set_filespath([ '${FILE_DIRNAME}/uclibc-${PV}', '${FILE_DIRNAME}/uclibc', '${FILE_DIRNAME}/files', '${FILE_DIRNAME}' ], d)}"
-DEPENDS = "linux-libc-headers"
+DEPENDS = "linux-libc-headers virtual/${TARGET_PREFIX}gcc-initial"
PROVIDES = "virtual/${TARGET_PREFIX}libc-initial"
PACKAGES = ""
do_stage() {
# Install initial headers into the cross dir
- make PREFIX= DEVEL_PREFIX=${UCLIBC_STAGING_PREFIX}/ \
- RUNTIME_PREFIX=${UCLIBC_STAGING_PREFIX}/ \
+ make PREFIX= DEVEL_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
+ RUNTIME_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
pregen install_dev
+ make PREFIX= DEVEL_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
+ RUNTIME_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
+ libc/sysdeps/linux/${TARGET_ARCH}/crt0.o \
+ libc/sysdeps/linux/${TARGET_ARCH}/crti.o \
+ libc/sysdeps/linux/${TARGET_ARCH}/crtn.o
ln -sf include ${CROSS_DIR}/${TARGET_SYS}/sys-include
# This conflicts with the c++ version of this header
- rm -f ${UCLIBC_STAGING_PREFIX}/include/bits/atomicity.h
+ rm -f ${UCLIBC_STAGE_PREFIX}/include/bits/atomicity.h
+ install -m 644 libc/sysdeps/linux/${TARGET_ARCH}/crt[0in].o ${UCLIBC_STAGE_PREFIX}/lib
+ ${CC} -nostdlib -nostartfiles -shared -x c /dev/null \
+ -o ${UCLIBC_STAGE_PREFIX}/lib/libc.so
+
}
do_install() {
diff --git a/packages/uclibc/uclibc-initial_0.9.28.bb b/packages/uclibc/uclibc-initial_0.9.28.bb
index c29a498a96..4bfbdb6d16 100644
--- a/packages/uclibc/uclibc-initial_0.9.28.bb
+++ b/packages/uclibc/uclibc-initial_0.9.28.bb
@@ -3,20 +3,29 @@ require uclibc_${PV}.bb
FILESPATH = "${@base_set_filespath([ '${FILE_DIRNAME}/uclibc-${PV}', '${FILE_DIRNAME}/uclibc', '${FILE_DIRNAME}/files', '${FILE_DIRNAME}' ], d)}"
-DEPENDS = "linux-libc-headers"
+DEPENDS = "linux-libc-headers virtual/${TARGET_PREFIX}gcc-initial"
PROVIDES = "virtual/${TARGET_PREFIX}libc-initial"
PACKAGES = ""
do_stage() {
# Install initial headers into the cross dir
- make PREFIX= DEVEL_PREFIX=${UCLIBC_STAGING_PREFIX}/ \
- RUNTIME_PREFIX=${UCLIBC_STAGING_PREFIX}/ \
+ make PREFIX= DEVEL_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
+ RUNTIME_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
pregen install_dev
+ make PREFIX= DEVEL_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
+ RUNTIME_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
+ libc/sysdeps/linux/${TARGET_ARCH}/crt1.o \
+ libc/sysdeps/linux/${TARGET_ARCH}/crti.o \
+ libc/sysdeps/linux/${TARGET_ARCH}/crtn.o
ln -sf include ${CROSS_DIR}/${TARGET_SYS}/sys-include
# This conflicts with the c++ version of this header
- rm -f ${UCLIBC_STAGING_PREFIX}/include/bits/atomicity.h
+ rm -f ${UCLIBC_STAGE_PREFIX}/include/bits/atomicity.h
+ install -m 644 libc/sysdeps/linux/${TARGET_ARCH}/crt[1in].o ${UCLIBC_STAGE_PREFIX}/lib
+ ${CC} -nostdlib -nostartfiles -shared -x c /dev/null \
+ -o ${UCLIBC_STAGE_PREFIX}/lib/libc.so
+
}
do_install() {
diff --git a/packages/uclibc/uclibc-initial_0.9.29.bb b/packages/uclibc/uclibc-initial_0.9.29.bb
index e75f612b88..c56e5fb2f5 100644
--- a/packages/uclibc/uclibc-initial_0.9.29.bb
+++ b/packages/uclibc/uclibc-initial_0.9.29.bb
@@ -3,7 +3,7 @@ require uclibc_${PV}.bb
FILESPATH = "${@base_set_filespath([ '${FILE_DIRNAME}/uclibc-${PV}', '${FILE_DIRNAME}/uclibc', '${FILE_DIRNAME}/files', '${FILE_DIRNAME}' ], d)}"
-DEPENDS = "linux-libc-headers ncurses-native"
+DEPENDS = "linux-libc-headers ncurses-native virtual/${TARGET_PREFIX}gcc-initial"
PROVIDES = "virtual/${TARGET_PREFIX}libc-initial"
PACKAGES = ""
@@ -12,12 +12,19 @@ do_stage() {
make PREFIX= DEVEL_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
RUNTIME_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
pregen install_dev
+ make PREFIX= DEVEL_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
+ RUNTIME_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
+ lib/crt1.o lib/crti.o lib/crtn.o
install -d ${CROSS_DIR}/${TARGET_SYS}
ln -sf include ${CROSS_DIR}/${TARGET_SYS}/sys-include
# This conflicts with the c++ version of this header
rm -f ${UCLIBC_STAGE_PREFIX}/include/bits/atomicity.h
+ install -m 644 lib/crt[1in].o ${UCLIBC_STAGE_PREFIX}/lib
+ ${CC} -nostdlib -nostartfiles -shared -x c /dev/null \
+ -o ${UCLIBC_STAGE_PREFIX}/lib/libc.so
+
}
do_install() {
diff --git a/packages/uclibc/uclibc-initial_svn.bb b/packages/uclibc/uclibc-initial_svn.bb
index f3496839ff..9dad654ca4 100644
--- a/packages/uclibc/uclibc-initial_svn.bb
+++ b/packages/uclibc/uclibc-initial_svn.bb
@@ -3,7 +3,7 @@ require uclibc_svn.bb
FILESPATH = "${@base_set_filespath([ '${FILE_DIRNAME}/uclibc-cvs', '${FILE_DIRNAME}/uclibc', '${FILE_DIRNAME}/files', '${FILE_DIRNAME}' ], d)}"
-DEPENDS = "linux-libc-headers ncurses-native"
+DEPENDS = "linux-libc-headers ncurses-native virtual/${TARGET_PREFIX}gcc-initial"
PROVIDES = "virtual/${TARGET_PREFIX}libc-initial"
PACKAGES = ""
@@ -11,12 +11,18 @@ do_stage() {
# Install initial headers into the cross dir
make PREFIX= DEVEL_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
RUNTIME_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
- pregen install_dev
+ install_headers
+ make PREFIX= DEVEL_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
+ RUNTIME_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
+ lib/crt1.o lib/crti.o lib/crtn.o
ln -sf include ${CROSS_DIR}/${TARGET_SYS}/sys-include
# This conflicts with the c++ version of this header
rm -f ${UCLIBC_STAGE_PREFIX}/include/bits/atomicity.h
+ install -m 644 lib/crt[1in].o ${UCLIBC_STAGE_PREFIX}/lib
+ ${CC} -nostdlib -nostartfiles -shared -x c /dev/null \
+ -o ${UCLIBC_STAGE_PREFIX}/lib/libc.so
}
do_install() {
diff --git a/packages/uclibc/uclibc.inc b/packages/uclibc/uclibc.inc
index 861568c06e..544d760e99 100644
--- a/packages/uclibc/uclibc.inc
+++ b/packages/uclibc/uclibc.inc
@@ -22,7 +22,7 @@ python __anonymous () {
PROVIDES += "virtual/libc virtual/${TARGET_PREFIX}libc-for-gcc"
PROVIDES += "${@['virtual/libiconv', ''][bb.data.getVar('USE_NLS', d, 1) != 'yes']}"
DEPENDS = "virtual/${TARGET_PREFIX}binutils \
- virtual/${TARGET_PREFIX}gcc-initial linux-libc-headers ncurses-native"
+ virtual/${TARGET_PREFIX}gcc-intermediate linux-libc-headers ncurses-native pax-utils-native"
RDEPENDS_${PN}-dev = "linux-libc-headers-dev"
# Blackfin needs a wrapper around ld
@@ -73,7 +73,8 @@ UCLIBC_STAGE_PREFIX = "${STAGING_DIR_HOST}${layout_prefix}"
# the CFLAGS (for when building the utils).
OEMAKE_NO_CC = "'STRIPTOOL=true' 'LD=${LD}' \
'LOCALE_DATA_FILENAME=${UCLIBC_LOCALE_FILE}'"
-EXTRA_OEMAKE = "${OEMAKE_NO_CC} 'CC=${CC}' HOSTCFLAGS='-I${STAGING_INCDIR_NATIVE}'"
+EXTRA_OEMAKE = "${OEMAKE_NO_CC} 'CC=${CC}' \
+ 'HOSTCFLAGS=-I${STAGING_INCDIR_NATIVE}'"
EXTRA_OEMAKE_task_do_populate_staging = "${OEMAKE_NO_CC}"
EXTRA_OEMAKE_task_do_package = "${OEMAKE_NO_CC}"
diff --git a/packages/uclibc/uclibc_0.9.26.bb b/packages/uclibc/uclibc_0.9.26.bb
index 865d373a43..1c52500ee6 100644
--- a/packages/uclibc/uclibc_0.9.26.bb
+++ b/packages/uclibc/uclibc_0.9.26.bb
@@ -1,4 +1,4 @@
-PR = "r9"
+PR = "r10"
require uclibc.inc
diff --git a/packages/uclibc/uclibc_0.9.27.bb b/packages/uclibc/uclibc_0.9.27.bb
index d1686f5772..f730ad8a27 100644
--- a/packages/uclibc/uclibc_0.9.27.bb
+++ b/packages/uclibc/uclibc_0.9.27.bb
@@ -1,5 +1,5 @@
DEFAULT_PREFERENCE = "1"
-PR = "r9"
+PR = "r10"
require uclibc.inc
@@ -19,6 +19,7 @@ SRC_URI += "${PATCH_ipc_h}"
SRC_URI += " file://thumb-swi.patch;patch=1"
SRC_URI += " file://thumb-swp.patch;patch=1"
SRC_URI += " file://arm-thumb-defined.patch;patch=1"
+SRC_URI += " file://uclibc-makevars-in-quotes.patch;patch=1"
# ARM thumb interworking - these changes fix various bugs in the
# uclibc implementation of thumb interwork support, but they are
diff --git a/packages/uclibc/uclibc_0.9.28.bb b/packages/uclibc/uclibc_0.9.28.bb
index eb3bb50083..1b2fc325d5 100644
--- a/packages/uclibc/uclibc_0.9.28.bb
+++ b/packages/uclibc/uclibc_0.9.28.bb
@@ -1,5 +1,5 @@
DEFAULT_PREFERENCE = "1"
-PR = "r13"
+PR = "r14"
require uclibc.inc
@@ -34,6 +34,7 @@ THUMBSTUFF = " \
file://dl-startup.h.patch;patch=1 \
file://dl-string.h.patch;patch=1 \
file://dl-sysdep.h.patch;patch=1 \
+ file://uclibc-libgcc-eh.patch;patch=1 \
"
SRC_URI_append_arm = " ${THUMBSTUFF} "
diff --git a/packages/uclibc/uclibc_0.9.29.bb b/packages/uclibc/uclibc_0.9.29.bb
index 4565f7dbb4..8368903277 100644
--- a/packages/uclibc/uclibc_0.9.29.bb
+++ b/packages/uclibc/uclibc_0.9.29.bb
@@ -7,8 +7,8 @@
# on whether the base patches apply to the selected (SRCDATE) svn release.
#
UCLIBC_BASE ?= "0.9.29"
-PR = "r19"
-DEFAULT_PREFERENCE = "3"
+PR = "r20"
+DEFAULT_PREFERENCE = "1"
require uclibc.inc
diff --git a/packages/uclibc/uclibc_svn.bb b/packages/uclibc/uclibc_svn.bb
index a357808745..f774fd90ee 100644
--- a/packages/uclibc/uclibc_svn.bb
+++ b/packages/uclibc/uclibc_svn.bb
@@ -8,7 +8,7 @@
#
UCLIBC_BASE ?= "0.9.29"
PV = "${UCLIBC_BASE}+svnr${SRCREV}"
-PR = "r10"
+PR = "r11"
#DEFAULT_PREFERENCE is 0 (empty), releases have a preference of 1 so take
# precedence.