From 083c4562078ca47be2e423866fe45bc658e51556 Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Wed, 20 Aug 2008 11:48:12 +0000 Subject: glibc: Disable hwcaps for speed git-svn-id: https://svn.o-hand.com/repos/poky/trunk@5087 311d38ba-8fff-0310-9ca6-ca027cbcb966 --- meta/packages/glibc/files/no-hwcaps.patch | 52 +++++++++++++++++++++++++++++++ meta/packages/glibc/glibc_2.6.1.bb | 3 +- 2 files changed, 54 insertions(+), 1 deletion(-) create mode 100644 meta/packages/glibc/files/no-hwcaps.patch diff --git a/meta/packages/glibc/files/no-hwcaps.patch b/meta/packages/glibc/files/no-hwcaps.patch new file mode 100644 index 0000000000..5cc2821c2f --- /dev/null +++ b/meta/packages/glibc/files/no-hwcaps.patch @@ -0,0 +1,52 @@ +Disable the extra hwcaps fields, they cause ld.so to look in many strange paths +before searching for binaries in /lib. We don't install binaries into any other +place so this just wastes time. + +RP - 20/08/2008 + +Index: glibc-2.6.1/elf/dl-sysdep.c +=================================================================== +--- glibc-2.6.1.orig/elf/dl-sysdep.c 2008-08-15 15:54:49.000000000 +0100 ++++ glibc-2.6.1/elf/dl-sysdep.c 2008-08-15 17:45:28.000000000 +0100 +@@ -346,7 +346,7 @@ + { + /* Determine how many important bits are set. */ + uint64_t masked = GLRO(dl_hwcap) & GLRO(dl_hwcap_mask); +- size_t cnt = platform != NULL; ++ size_t cnt = 0; + size_t n, m; + size_t total; + struct r_strlenpair *temp; +@@ -354,11 +354,6 @@ + struct r_strlenpair *rp; + char *cp; + +- /* Count the number of bits set in the masked value. */ +- for (n = 0; (~((1ULL << n) - 1) & masked) != 0; ++n) +- if ((masked & (1ULL << n)) != 0) +- ++cnt; +- + #if (defined NEED_DL_SYSINFO || defined NEED_DL_SYSINFO_DSO) && defined SHARED + /* The system-supplied DSO can contain a note of type 2, vendor "GNU". + This gives us a list of names to treat as fake hwcap bits. */ +@@ -434,20 +429,6 @@ + } + } + #endif +- for (n = 0; masked != 0; ++n) +- if ((masked & (1ULL << n)) != 0) +- { +- temp[m].str = _dl_hwcap_string (n); +- temp[m].len = strlen (temp[m].str); +- masked ^= 1ULL << n; +- ++m; +- } +- if (platform != NULL) +- { +- temp[m].str = platform; +- temp[m].len = platform_len; +- ++m; +- } + + temp[m].str = "tls"; + temp[m].len = 3; diff --git a/meta/packages/glibc/glibc_2.6.1.bb b/meta/packages/glibc/glibc_2.6.1.bb index fc53840176..5a0a72a5ce 100644 --- a/meta/packages/glibc/glibc_2.6.1.bb +++ b/meta/packages/glibc/glibc_2.6.1.bb @@ -1,5 +1,5 @@ require glibc.inc -PR = "r4" +PR = "r5" ARM_INSTRUCTION_SET = "arm" @@ -58,6 +58,7 @@ SRC_URI = "\ file://glibc-2.6.1-RTLD_SINGLE_THREAD_P-1.patch;patch=1 \ file://glibc-2.6.1-use-short-for-fnstsw.patch;patch=1 \ file://glibc-include-fixed.patch;patch=1;pnum=0 \ + file://no-hwcaps.patch;patch=1 \ " # Build fails on sh3 and sh4 without additional patches -- cgit v1.2.3