[oe-commits] org.oe.dev This patch Does following

khem commit oe at amethyst.openembedded.net
Mon Sep 1 18:17:12 UTC 2008


This patch Does following

1. Adds new recipe for uclibc nptl build. (currently only arm is in)
2. Renames uclibc-cvs to uclibc-svn
3. Revs up the sane rev of svn recipes to tested one.
4. Makes arm_fix_alignment.patch in two versions one for svn and one for 0.9.29 unfortunately changes in svn does not let us apply the 0.9.29 patch on svn cleanly.

-Khem

Author: khem at openembedded.org
Branch: org.openembedded.dev
Revision: 569e7d088bd81d3c7c545ac39e6e807ab3b47b36
ViewMTN: http://monotone.openembedded.org/revision/info/569e7d088bd81d3c7c545ac39e6e807ab3b47b36
Files:
1
packages/uclibc/files/arm_fix_alignment.patch
packages/uclibc/uclibc-0.9.29/arm_fix_alignment.patch
packages/uclibc/uclibc-cvs
packages/uclibc/uclibc-svn
packages/uclibc/uclibc-nptl
packages/uclibc/uclibc-initial_nptl.bb
packages/uclibc/uclibc-nptl/arm_fix_alignment.patch
packages/uclibc/uclibc-nptl/uClibc.distro
packages/uclibc/uclibc-nptl/uClibc.machine.armv5te
packages/uclibc/uclibc-svn/arm_fix_alignment.patch
packages/uclibc/uclibc_nptl.bb
conf/distro/include/sane-srcrevs.inc
packages/uclibc/uclibc_0.9.29.bb
packages/uclibc/uclibc_svn.bb
Diffs:

#
# mt diff -rd670acfebd36b4f7067852d29acf1f129c3deb6e -r569e7d088bd81d3c7c545ac39e6e807ab3b47b36
#
#
#
# rename "packages/uclibc/files/arm_fix_alignment.patch"
#     to "packages/uclibc/uclibc-0.9.29/arm_fix_alignment.patch"
# 
# rename "packages/uclibc/uclibc-cvs"
#     to "packages/uclibc/uclibc-svn"
# 
# add_dir "packages/uclibc/uclibc-nptl"
# 
# add_file "packages/uclibc/uclibc-initial_nptl.bb"
#  content [6872f3dbf713d969e837fff3267dfe6c79cc7aa2]
# 
# add_file "packages/uclibc/uclibc-nptl/arm_fix_alignment.patch"
#  content [101a4d8c3d97cb09d2dd7737af4cf7fce15ea767]
# 
# add_file "packages/uclibc/uclibc-nptl/uClibc.distro"
#  content [c21a277aac0650ca6c77cd0851d7e2be0165c376]
# 
# add_file "packages/uclibc/uclibc-nptl/uClibc.machine.armv5te"
#  content [55b4a5c7c3dcf81fc96e330e74fc84374f0bc276]
# 
# add_file "packages/uclibc/uclibc-svn/arm_fix_alignment.patch"
#  content [101a4d8c3d97cb09d2dd7737af4cf7fce15ea767]
# 
# add_file "packages/uclibc/uclibc_nptl.bb"
#  content [4999fa82e8cb40cbff3508bf2427ca942ce9fc73]
# 
# patch "conf/distro/include/sane-srcrevs.inc"
#  from [647a26cd30973ca6a2a668fa840c7bff50c53ae3]
#    to [1d1167f51c5546bba85239ea51b825be54cde78c]
# 
# patch "packages/uclibc/uclibc_0.9.29.bb"
#  from [2c4d925cc550f5ad6ccbee1fa5ad94b62db7b58c]
#    to [8b02df79e5136a8b2833ea26f26f95484bc814ec]
# 
# patch "packages/uclibc/uclibc_svn.bb"
#  from [88b7021e9c8e55186b7a8a8fe49a21da5aa94bac]
#    to [eaf1abec09168bb845c5cc7719513cfa957f0072]
#
============================================================
--- packages/uclibc/uclibc-initial_nptl.bb	6872f3dbf713d969e837fff3267dfe6c79cc7aa2
+++ packages/uclibc/uclibc-initial_nptl.bb	6872f3dbf713d969e837fff3267dfe6c79cc7aa2
@@ -0,0 +1,35 @@
+SECTION = "base"
+require uclibc_nptl.bb
+
+DEPENDS = "linux-libc-headers ncurses-native 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_STAGE_PREFIX}/ \
+		RUNTIME_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
+		install_headers V=1
+
+	ln -sf include ${CROSS_DIR}/${TARGET_SYS}/sys-include
+
+	# This conflicts with the c++ version of this header
+	make PREFIX= DEVEL_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
+		RUNTIME_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
+		lib/crt1.o lib/crti.o lib/crtn.o V=1
+
+	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() {
+	:
+}
+
+do_compile () {
+	:
+}
============================================================
--- packages/uclibc/uclibc-nptl/arm_fix_alignment.patch	101a4d8c3d97cb09d2dd7737af4cf7fce15ea767
+++ packages/uclibc/uclibc-nptl/arm_fix_alignment.patch	101a4d8c3d97cb09d2dd7737af4cf7fce15ea767
@@ -0,0 +1,19 @@
+ARMV5 can use STRD and LDRD access instructions but these accesses need to be 
+8 byte aligned. The dynamic linker's malloc needs to match this so structures
+become 8 byte aligned to void unaligned accesses.
+
+RP - 14/02/2008
+
+Index: uClibc-nptl/ldso/ldso/arm/dl-sysdep.h
+===================================================================
+--- uClibc-nptl.orig/ldso/ldso/arm/dl-sysdep.h	2008-08-08 16:52:28.000000000 -0700
++++ uClibc-nptl/ldso/ldso/arm/dl-sysdep.h	2008-08-08 23:51:39.000000000 -0700
+@@ -18,6 +18,8 @@
+   GOT_BASE[1] = (unsigned long) MODULE; \
+ }
+ 
++#define DL_MALLOC_ALIGN 8  /* EABI needs 8 byte alignment for STRD LDRD*/
++
+ static __inline__ unsigned long arm_modulus(unsigned long m, unsigned long p)
+ {
+ 	unsigned long i,t,inc;
============================================================
--- packages/uclibc/uclibc-nptl/uClibc.distro	c21a277aac0650ca6c77cd0851d7e2be0165c376
+++ packages/uclibc/uclibc-nptl/uClibc.distro	c21a277aac0650ca6c77cd0851d7e2be0165c376
@@ -0,0 +1,147 @@
+#
+# General Library Settings
+#
+# HAVE_NO_PIC is not set
+# DOPIC is not set
+# HAVE_NO_SHARED is not set
+# ARCH_HAS_NO_LDSO is not set
+HAVE_SHARED=y
+# FORCE_SHAREABLE_TEXT_SEGMENTS is not set
+LDSO_LDD_SUPPORT=y
+LDSO_CACHE_SUPPORT=y
+# LDSO_PRELOAD_FILE_SUPPORT is not set
+LDSO_BASE_FILENAME="ld.so"
+# UCLIBC_STATIC_LDCONFIG is not set
+LDSO_RUNPATH=y
+UCLIBC_CTOR_DTOR=y
+# HAS_NO_THREADS is not set
+UCLIBC_HAS_THREADS=y
+UCLIBC_HAS_THREADS_NATIVE=y
+# PTHREADS_DEBUG_SUPPORT is not set
+# LINUXTHREADS_OLD is not set
+UCLIBC_HAS_LFS=y
+# MALLOC is not set
+# MALLOC_SIMPLE is not set
+MALLOC_STANDARD=y
+MALLOC_GLIBC_COMPAT=y
+UCLIBC_DYNAMIC_ATEXIT=y
+COMPAT_ATEXIT=y
+UCLIBC_SUSV3_LEGACY=y
+UCLIBC_SUSV3_LEGACY_MACROS=y
+UCLIBC_HAS_SHADOW=y
+UCLIBC_HAS_PROGRAM_INVOCATION_NAME=y
+UCLIBC_HAS___PROGNAME=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"
+
+#
+# Advanced Library Settings
+#
+UCLIBC_PWD_BUFFER_SIZE=256
+UCLIBC_GRP_BUFFER_SIZE=256
+
+#
+# Networking Support
+#
+UCLIBC_HAS_IPV6=y
+UCLIBC_HAS_RPC=y
+UCLIBC_HAS_FULL_RPC=y
+# UCLIBC_HAS_REENTRANT_RPC is not set
+# UCLIBC_USE_NETLINK is not set
+# UCLIBC_HAS_BSD_RES_CLOSE is not set
+
+#
+# String and Stdio Support
+#
+UCLIBC_HAS_STRING_GENERIC_OPT=y
+UCLIBC_HAS_STRING_ARCH_OPT=y
+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 is not set
+UCLIBC_HAS_HEXADECIMAL_FLOATS=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_SHUTDOWN_ON_ABORT 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_GNU_GETOPT=y
+UCLIBC_HAS_GNU_GETSUBOPT=y
+
+#
+# Big and Tall
+#
+UCLIBC_HAS_REGEX=y
+# UCLIBC_HAS_REGEX_OLD is not set
+UCLIBC_HAS_FNMATCH=y
+# UCLIBC_HAS_FNMATCH_OLD is not set
+UCLIBC_HAS_WORDEXP=y
+UCLIBC_HAS_FTW=y
+UCLIBC_HAS_GLOB=y
+UCLIBC_HAS_GNU_GLOB=y
+
+#
+# Library Installation Options
+#
+SHARED_LIB_LOADER_PREFIX="/lib"
+RUNTIME_PREFIX="/"
+DEVEL_PREFIX="//usr"
+
+#
+# Security options
+#
+# UCLIBC_BUILD_PIE is not set
+# UCLIBC_HAS_ARC4RANDOM is not set
+# HAVE_NO_SSP is not set
+# UCLIBC_HAS_SSP is not set
+UCLIBC_BUILD_RELRO=y
+UCLIBC_BUILD_NOW=y
+UCLIBC_BUILD_NOEXECSTACK=y
+
+#
+# uClibc development/debugging options
+#
+CROSS_COMPILER_PREFIX=""
+UCLIBC_EXTRA_CFLAGS=""
+# DODEBUG is not set
+# DODEBUG_PT is not set
+DOSTRIP=y
+# DOASSERTS is not set
+# SUPPORT_LD_DEBUG is not set
+# SUPPORT_LD_DEBUG_EARLY is not set
+# UCLIBC_MALLOC_DEBUGGING is not set
+WARNINGS="-Wall"
+# EXTRA_WARNINGS is not set
+# DOMULTI is not set
+# UCLIBC_MJN3_ONLY is not set
+
+# math stuff for perl
+DO_C99_MATH=y
============================================================
--- packages/uclibc/uclibc-nptl/uClibc.machine.armv5te	55b4a5c7c3dcf81fc96e330e74fc84374f0bc276
+++ packages/uclibc/uclibc-nptl/uClibc.machine.armv5te	55b4a5c7c3dcf81fc96e330e74fc84374f0bc276
@@ -0,0 +1,70 @@
+#
+# Automatically generated make config: don't edit
+# Sun May 13 11:16:02 2007
+#
+# TARGET_alpha is not set
+TARGET_arm=y
+# TARGET_bfin is not set
+# TARGET_cris is not set
+# TARGET_e1 is not set
+# TARGET_frv is not set
+# TARGET_h8300 is not set
+# TARGET_hppa is not set
+# TARGET_i386 is not set
+# TARGET_i960 is not set
+# TARGET_ia64 is not set
+# TARGET_m68k is not set
+# TARGET_microblaze is not set
+# TARGET_mips is not set
+# TARGET_nios is not set
+# TARGET_nios2 is not set
+# TARGET_powerpc is not set
+# TARGET_sh is not set
+# TARGET_sh64 is not set
+# TARGET_sparc is not set
+# TARGET_v850 is not set
+# TARGET_vax is not set
+# TARGET_x86_64 is not set
+
+#
+# Target Architecture Features and Options
+#
+TARGET_ARCH="arm"
+FORCE_OPTIONS_FOR_ARCH=y
+# CONFIG_ARM_OABI is not set
+CONFIG_ARM_EABI=y
+USE_BX=y
+# CONFIG_GENERIC_ARM is not set
+# CONFIG_ARM610 is not set
+# CONFIG_ARM710 is not set
+# CONFIG_ARM7TDMI is not set
+# CONFIG_ARM720T is not set
+# CONFIG_ARM920T is not set
+# CONFIG_ARM922T is not set
+# CONFIG_ARM926T is not set
+# CONFIG_ARM10T is not set
+# CONFIG_ARM1136JF_S is not set
+# CONFIG_ARM1176JZ_S is not set
+# CONFIG_ARM1176JZF_S is not set
+# CONFIG_ARM_SA110 is not set
+# CONFIG_ARM_SA1100 is not set
+CONFIG_ARM_XSCALE=y
+# CONFIG_ARM_IWMMXT is not set
+TARGET_SUBARCH=""
+
+#
+# Using ELF file format
+#
+ARCH_ANY_ENDIAN=y
+ARCH_LITTLE_ENDIAN=y
+# ARCH_WANTS_BIG_ENDIAN is not set
+ARCH_WANTS_LITTLE_ENDIAN=y
+ARCH_HAS_MMU=y
+ARCH_USE_MMU=y
+UCLIBC_HAS_FLOATS=y
+# UCLIBC_HAS_FPU is not set
+UCLIBC_HAS_SOFT_FLOAT=y
+DO_C99_MATH=y
+KERNEL_HEADERS="/data/build/koen/OE/build/tmp/angstrom/cross/arm-angstrom-linux-uclibcgnueabi/include"
+HAVE_DOT_CONFIG=y
+
============================================================
--- packages/uclibc/uclibc-svn/arm_fix_alignment.patch	101a4d8c3d97cb09d2dd7737af4cf7fce15ea767
+++ packages/uclibc/uclibc-svn/arm_fix_alignment.patch	101a4d8c3d97cb09d2dd7737af4cf7fce15ea767
@@ -0,0 +1,19 @@
+ARMV5 can use STRD and LDRD access instructions but these accesses need to be 
+8 byte aligned. The dynamic linker's malloc needs to match this so structures
+become 8 byte aligned to void unaligned accesses.
+
+RP - 14/02/2008
+
+Index: uClibc-nptl/ldso/ldso/arm/dl-sysdep.h
+===================================================================
+--- uClibc-nptl.orig/ldso/ldso/arm/dl-sysdep.h	2008-08-08 16:52:28.000000000 -0700
++++ uClibc-nptl/ldso/ldso/arm/dl-sysdep.h	2008-08-08 23:51:39.000000000 -0700
+@@ -18,6 +18,8 @@
+   GOT_BASE[1] = (unsigned long) MODULE; \
+ }
+ 
++#define DL_MALLOC_ALIGN 8  /* EABI needs 8 byte alignment for STRD LDRD*/
++
+ static __inline__ unsigned long arm_modulus(unsigned long m, unsigned long p)
+ {
+ 	unsigned long i,t,inc;
============================================================
--- packages/uclibc/uclibc_nptl.bb	4999fa82e8cb40cbff3508bf2427ca942ce9fc73
+++ packages/uclibc/uclibc_nptl.bb	4999fa82e8cb40cbff3508bf2427ca942ce9fc73
@@ -0,0 +1,35 @@
+# UCLIBC_BASE should be the latest released revision of uclibc (that way
+# the config files will typically be correct!)  uclibc-svn takes precedence
+# over uclibc-${UCLIBC_BASE}, if a config file in uclibc-svn is out of date
+# try removing it
+#
+# UCLIBC_BASE can be set in a distro file, but whether this works depends
+# on whether the base patches apply to the selected (SRCDATE) svn release.
+#
+UCLIBC_BASE ?= "0.9.29"
+PV = "${UCLIBC_BASE}+svnr${SRCREV}"
+PR = "r0"
+#DEFAULT_PREFERENCE = "2"
+#DEFAULT_PREFERENCE is 0 (empty), releases have a preference of 1 so take
+# precedence.
+
+require uclibc.inc
+
+PROVIDES += "virtual/${TARGET_PREFIX}libc-for-gcc"
+
+#recent versions uclibc require real kernel headers
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+FILESPATH = "${@base_set_filespath([ '${FILE_DIRNAME}/uclibc-nptl', '${FILE_DIRNAME}/uclibc-${UCLIBC_BASE}', '${FILE_DIRNAME}/files', '${FILE_DIRNAME}' ], d)}"
+
+#as stated above, uclibc needs real kernel-headers
+#however: we can't depend on virtual/kernel when nptl hits due to depends deadlocking ....
+KERNEL_SOURCE = "${CROSS_DIR}/${TARGET_SYS}"
+
+SRC_URI += "svn://uclibc.org/branches/;module=uClibc-nptl \
+            file://uClibc.machine \
+            file://uClibc.distro \
+	    file://uclibc-arm-ftruncate64.patch;patch=1 \
+            file://arm_fix_alignment.patch;patch=1 \
+            "
+
+S = "${WORKDIR}/uClibc-nptl"
============================================================
--- conf/distro/include/sane-srcrevs.inc	647a26cd30973ca6a2a668fa840c7bff50c53ae3
+++ conf/distro/include/sane-srcrevs.inc	1d1167f51c5546bba85239ea51b825be54cde78c
@@ -15,8 +15,8 @@ SRCREV_pn-bfin-uclibc ?= "1857"
 SRCREV_pn-alsa-scenario ?= "633aaccc37f845146e490090dbd2a1ebb8064fd6"
 SRCREV_pn-assassin ?= "93"
 SRCREV_pn-bfin-uclibc ?= "1857"
-SRCREV_pn-uclibc ?= "21996"
-SRCREV_pn-uclibc-initial ?= "21996"
+SRCREV_pn-uclibc ?= "23129"
+SRCREV_pn-uclibc-initial ?= "23129"
 SRCREV_pn-contact ?= "1410"
 SRCREV_pn-dasher-gpe ?= "1251"
 SRCREV_pn-dbus-c++-native ?= "13131"
============================================================
--- packages/uclibc/uclibc_0.9.29.bb	2c4d925cc550f5ad6ccbee1fa5ad94b62db7b58c
+++ packages/uclibc/uclibc_0.9.29.bb	8b02df79e5136a8b2833ea26f26f95484bc814ec
@@ -7,7 +7,7 @@ UCLIBC_BASE ?= "0.9.29"
 # on whether the base patches apply to the selected (SRCDATE) svn release.
 #
 UCLIBC_BASE ?= "0.9.29"
-PR = "r23"
+PR = "r24"
 DEFAULT_PREFERENCE = "1"
 
 require uclibc.inc
============================================================
--- packages/uclibc/uclibc_svn.bb	88b7021e9c8e55186b7a8a8fe49a21da5aa94bac
+++ packages/uclibc/uclibc_svn.bb	eaf1abec09168bb845c5cc7719513cfa957f0072
@@ -1,6 +1,6 @@
 # UCLIBC_BASE should be the latest released revision of uclibc (that way
-# the config files will typically be correct!)  uclibc-cvs takes precedence
-# over uclibc-${UCLIBC_BASE}, if a config file in uclibc-cvs is out of date
+# the config files will typically be correct!)  uclibc-svn takes precedence
+# over uclibc-${UCLIBC_BASE}, if a config file in uclibc-snv is out of date
 # try removing it
 #
 # UCLIBC_BASE can be set in a distro file, but whether this works depends
@@ -8,7 +8,7 @@ PV = "${UCLIBC_BASE}+svnr${SRCREV}"
 #
 UCLIBC_BASE ?= "0.9.29"
 PV = "${UCLIBC_BASE}+svnr${SRCREV}"
-PR = "r12"
+PR = "r13"
 #DEFAULT_PREFERENCE is 0 (empty), releases have a preference of 1 so take
 # precedence.
 
@@ -18,7 +18,7 @@ PACKAGE_ARCH = "${MACHINE_ARCH}"
 
 #recent versions uclibc require real kernel headers
 PACKAGE_ARCH = "${MACHINE_ARCH}"
-FILESPATH = "${@base_set_filespath([ '${FILE_DIRNAME}/uclibc-cvs', '${FILE_DIRNAME}/uclibc-${UCLIBC_BASE}', '${FILE_DIRNAME}/files', '${FILE_DIRNAME}' ], d)}"
+FILESPATH = "${@base_set_filespath([ '${FILE_DIRNAME}/uclibc-svn', '${FILE_DIRNAME}/uclibc-${UCLIBC_BASE}', '${FILE_DIRNAME}/files', '${FILE_DIRNAME}' ], d)}"
 
 #as stated above, uclibc needs real kernel-headers
 #however: we can't depend on virtual/kernel when nptl hits due to depends deadlocking ....






More information about the Openembedded-commits mailing list