1eb8dc403SDave CobbleyUpstream-Status: Inappropriate [embedded specific] 2eb8dc403SDave Cobbley 3eb8dc403SDave Cobbleyenable standalone building of ldconfig 4eb8dc403SDave Cobbley 5eb8dc403SDave Cobbley--- 6eb8dc403SDave Cobbley cache.c | 11 +- 7eb8dc403SDave Cobbley chroot_canon.c | 7 + 8eb8dc403SDave Cobbley dl-cache.c | 235 --------------------------------------------------------- 9eb8dc403SDave Cobbley dl-cache.h | 3 10eb8dc403SDave Cobbley ldconfig.c | 27 ++++-- 11eb8dc403SDave Cobbley readlib.c | 7 + 12eb8dc403SDave Cobbley xstrdup.c | 11 -- 13eb8dc403SDave Cobbley 7 files changed, 45 insertions(+), 256 deletions(-) 14eb8dc403SDave Cobbley 15eb8dc403SDave CobbleyIndex: ldconfig-native-2.12.1/cache.c 16eb8dc403SDave Cobbley=================================================================== 17eb8dc403SDave Cobbley--- ldconfig-native-2.12.1.orig/cache.c 18eb8dc403SDave Cobbley+++ ldconfig-native-2.12.1/cache.c 19eb8dc403SDave Cobbley@@ -16,6 +16,9 @@ 20eb8dc403SDave Cobbley along with this program; if not, write to the Free Software Foundation, 21eb8dc403SDave Cobbley Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ 22eb8dc403SDave Cobbley 23eb8dc403SDave Cobbley+#define _LARGEFILE64_SOURCE 24eb8dc403SDave Cobbley+#define _GNU_SOURCE 25eb8dc403SDave Cobbley+ 26eb8dc403SDave Cobbley #include <errno.h> 27eb8dc403SDave Cobbley #include <error.h> 28eb8dc403SDave Cobbley #include <dirent.h> 29eb8dc403SDave Cobbley@@ -31,8 +34,10 @@ 30eb8dc403SDave Cobbley #include <sys/stat.h> 31eb8dc403SDave Cobbley #include <sys/types.h> 32eb8dc403SDave Cobbley 33eb8dc403SDave Cobbley-#include <ldconfig.h> 34eb8dc403SDave Cobbley-#include <dl-cache.h> 35eb8dc403SDave Cobbley+#include "ldconfig.h" 36eb8dc403SDave Cobbley+#include "dl-cache.h" 37eb8dc403SDave Cobbley+# define N_(msgid) msgid 38eb8dc403SDave Cobbley+#define _(msg) msg 39eb8dc403SDave Cobbley 40eb8dc403SDave Cobbley struct cache_entry 41eb8dc403SDave Cobbley { 42eb8dc403SDave CobbleyIndex: ldconfig-native-2.12.1/chroot_canon.c 43eb8dc403SDave Cobbley=================================================================== 44eb8dc403SDave Cobbley--- ldconfig-native-2.12.1.orig/chroot_canon.c 45eb8dc403SDave Cobbley+++ ldconfig-native-2.12.1/chroot_canon.c 46eb8dc403SDave Cobbley@@ -17,6 +17,9 @@ 47eb8dc403SDave Cobbley along with this program; if not, write to the Free Software Foundation, 48eb8dc403SDave Cobbley Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ 49eb8dc403SDave Cobbley 50eb8dc403SDave Cobbley+#define _LARGEFILE64_SOURCE 51eb8dc403SDave Cobbley+#define _GNU_SOURCE 52eb8dc403SDave Cobbley+ 53eb8dc403SDave Cobbley #include <stdlib.h> 54eb8dc403SDave Cobbley #include <string.h> 55eb8dc403SDave Cobbley #include <unistd.h> 56eb8dc403SDave Cobbley@@ -27,7 +30,9 @@ 57eb8dc403SDave Cobbley #include <stddef.h> 58eb8dc403SDave Cobbley #include <stdint.h> 59eb8dc403SDave Cobbley 60eb8dc403SDave Cobbley-#include <ldconfig.h> 61eb8dc403SDave Cobbley+#include "ldconfig.h" 62eb8dc403SDave Cobbley+ 63eb8dc403SDave Cobbley+#define __set_errno(Val) errno = (Val) 64eb8dc403SDave Cobbley 65eb8dc403SDave Cobbley #ifndef PATH_MAX 66eb8dc403SDave Cobbley #define PATH_MAX 1024 67eb8dc403SDave CobbleyIndex: ldconfig-native-2.12.1/dl-cache.c 68eb8dc403SDave Cobbley=================================================================== 69eb8dc403SDave Cobbley--- ldconfig-native-2.12.1.orig/dl-cache.c 70eb8dc403SDave Cobbley+++ ldconfig-native-2.12.1/dl-cache.c 71eb8dc403SDave Cobbley@@ -20,12 +20,12 @@ 72eb8dc403SDave Cobbley 73eb8dc403SDave Cobbley #include <assert.h> 74eb8dc403SDave Cobbley #include <unistd.h> 75eb8dc403SDave Cobbley-#include <ldsodefs.h> 76eb8dc403SDave Cobbley+//#include "ldsodefs.h" 77eb8dc403SDave Cobbley #include <sys/mman.h> 78eb8dc403SDave Cobbley #include <dl-cache.h> 79eb8dc403SDave Cobbley #include <dl-procinfo.h> 80eb8dc403SDave Cobbley 81eb8dc403SDave Cobbley-#include <stdio-common/_itoa.h> 82eb8dc403SDave Cobbley+//#include "_itoa.h" 83eb8dc403SDave Cobbley 84eb8dc403SDave Cobbley #ifndef _DL_PLATFORMS_COUNT 85eb8dc403SDave Cobbley # define _DL_PLATFORMS_COUNT 0 86eb8dc403SDave Cobbley@@ -39,103 +39,7 @@ static size_t cachesize; 87eb8dc403SDave Cobbley /* 1 if cache_data + PTR points into the cache. */ 88eb8dc403SDave Cobbley #define _dl_cache_verify_ptr(ptr) (ptr < cache_data_size) 89eb8dc403SDave Cobbley 90eb8dc403SDave Cobbley-#define SEARCH_CACHE(cache) \ 91eb8dc403SDave Cobbley-/* We use binary search since the table is sorted in the cache file. \ 92eb8dc403SDave Cobbley- The first matching entry in the table is returned. \ 93eb8dc403SDave Cobbley- It is important to use the same algorithm as used while generating \ 94eb8dc403SDave Cobbley- the cache file. */ \ 95eb8dc403SDave Cobbley-do \ 96eb8dc403SDave Cobbley- { \ 97eb8dc403SDave Cobbley- left = 0; \ 98eb8dc403SDave Cobbley- right = cache->nlibs - 1; \ 99eb8dc403SDave Cobbley- \ 100eb8dc403SDave Cobbley- while (left <= right) \ 101eb8dc403SDave Cobbley- { \ 102eb8dc403SDave Cobbley- __typeof__ (cache->libs[0].key) key; \ 103eb8dc403SDave Cobbley- \ 104eb8dc403SDave Cobbley- middle = (left + right) / 2; \ 105eb8dc403SDave Cobbley- \ 106eb8dc403SDave Cobbley- key = cache->libs[middle].key; \ 107eb8dc403SDave Cobbley- \ 108eb8dc403SDave Cobbley- /* Make sure string table indices are not bogus before using \ 109eb8dc403SDave Cobbley- them. */ \ 110eb8dc403SDave Cobbley- if (! _dl_cache_verify_ptr (key)) \ 111eb8dc403SDave Cobbley- { \ 112eb8dc403SDave Cobbley- cmpres = 1; \ 113eb8dc403SDave Cobbley- break; \ 114eb8dc403SDave Cobbley- } \ 115eb8dc403SDave Cobbley- \ 116eb8dc403SDave Cobbley- /* Actually compare the entry with the key. */ \ 117eb8dc403SDave Cobbley- cmpres = _dl_cache_libcmp (name, cache_data + key); \ 118eb8dc403SDave Cobbley- if (__builtin_expect (cmpres == 0, 0)) \ 119eb8dc403SDave Cobbley- { \ 120eb8dc403SDave Cobbley- /* Found it. LEFT now marks the last entry for which we \ 121eb8dc403SDave Cobbley- know the name is correct. */ \ 122eb8dc403SDave Cobbley- left = middle; \ 123eb8dc403SDave Cobbley- \ 124eb8dc403SDave Cobbley- /* There might be entries with this name before the one we \ 125eb8dc403SDave Cobbley- found. So we have to find the beginning. */ \ 126eb8dc403SDave Cobbley- while (middle > 0) \ 127eb8dc403SDave Cobbley- { \ 128eb8dc403SDave Cobbley- __typeof__ (cache->libs[0].key) key; \ 129eb8dc403SDave Cobbley- \ 130eb8dc403SDave Cobbley- key = cache->libs[middle - 1].key; \ 131eb8dc403SDave Cobbley- /* Make sure string table indices are not bogus before \ 132eb8dc403SDave Cobbley- using them. */ \ 133eb8dc403SDave Cobbley- if (! _dl_cache_verify_ptr (key) \ 134eb8dc403SDave Cobbley- /* Actually compare the entry. */ \ 135eb8dc403SDave Cobbley- || _dl_cache_libcmp (name, cache_data + key) != 0) \ 136eb8dc403SDave Cobbley- break; \ 137eb8dc403SDave Cobbley- --middle; \ 138eb8dc403SDave Cobbley- } \ 139eb8dc403SDave Cobbley- \ 140eb8dc403SDave Cobbley- do \ 141eb8dc403SDave Cobbley- { \ 142eb8dc403SDave Cobbley- int flags; \ 143eb8dc403SDave Cobbley- __typeof__ (cache->libs[0]) *lib = &cache->libs[middle]; \ 144eb8dc403SDave Cobbley- \ 145eb8dc403SDave Cobbley- /* Only perform the name test if necessary. */ \ 146eb8dc403SDave Cobbley- if (middle > left \ 147eb8dc403SDave Cobbley- /* We haven't seen this string so far. Test whether the \ 148eb8dc403SDave Cobbley- index is ok and whether the name matches. Otherwise \ 149eb8dc403SDave Cobbley- we are done. */ \ 150eb8dc403SDave Cobbley- && (! _dl_cache_verify_ptr (lib->key) \ 151eb8dc403SDave Cobbley- || (_dl_cache_libcmp (name, cache_data + lib->key) \ 152eb8dc403SDave Cobbley- != 0))) \ 153eb8dc403SDave Cobbley- break; \ 154eb8dc403SDave Cobbley- \ 155eb8dc403SDave Cobbley- flags = lib->flags; \ 156eb8dc403SDave Cobbley- if (_dl_cache_check_flags (flags) \ 157eb8dc403SDave Cobbley- && _dl_cache_verify_ptr (lib->value)) \ 158eb8dc403SDave Cobbley- { \ 159eb8dc403SDave Cobbley- if (best == NULL || flags == GLRO(dl_correct_cache_id)) \ 160eb8dc403SDave Cobbley- { \ 161eb8dc403SDave Cobbley- HWCAP_CHECK; \ 162eb8dc403SDave Cobbley- best = cache_data + lib->value; \ 163eb8dc403SDave Cobbley- \ 164eb8dc403SDave Cobbley- if (flags == GLRO(dl_correct_cache_id)) \ 165eb8dc403SDave Cobbley- /* We've found an exact match for the shared \ 166eb8dc403SDave Cobbley- object and no general `ELF' release. Stop \ 167eb8dc403SDave Cobbley- searching. */ \ 168eb8dc403SDave Cobbley- break; \ 169eb8dc403SDave Cobbley- } \ 170eb8dc403SDave Cobbley- } \ 171eb8dc403SDave Cobbley- } \ 172eb8dc403SDave Cobbley- while (++middle <= right); \ 173eb8dc403SDave Cobbley- break; \ 174eb8dc403SDave Cobbley- } \ 175eb8dc403SDave Cobbley- \ 176eb8dc403SDave Cobbley- if (cmpres < 0) \ 177eb8dc403SDave Cobbley- left = middle + 1; \ 178eb8dc403SDave Cobbley- else \ 179eb8dc403SDave Cobbley- right = middle - 1; \ 180eb8dc403SDave Cobbley- } \ 181eb8dc403SDave Cobbley- } \ 182eb8dc403SDave Cobbley-while (0) 183eb8dc403SDave Cobbley- 184eb8dc403SDave Cobbley- 185eb8dc403SDave Cobbley int 186eb8dc403SDave Cobbley-internal_function 187eb8dc403SDave Cobbley _dl_cache_libcmp (const char *p1, const char *p2) 188eb8dc403SDave Cobbley { 189eb8dc403SDave Cobbley while (*p1 != '\0') 190eb8dc403SDave Cobbley@@ -172,139 +76,3 @@ _dl_cache_libcmp (const char *p1, const 191eb8dc403SDave Cobbley } 192eb8dc403SDave Cobbley return *p1 - *p2; 193eb8dc403SDave Cobbley } 194eb8dc403SDave Cobbley- 195eb8dc403SDave Cobbley- 196eb8dc403SDave Cobbley-/* Look up NAME in ld.so.cache and return the file name stored there, 197eb8dc403SDave Cobbley- or null if none is found. */ 198eb8dc403SDave Cobbley- 199eb8dc403SDave Cobbley-const char * 200eb8dc403SDave Cobbley-internal_function 201eb8dc403SDave Cobbley-_dl_load_cache_lookup (const char *name) 202eb8dc403SDave Cobbley-{ 203eb8dc403SDave Cobbley- int left, right, middle; 204eb8dc403SDave Cobbley- int cmpres; 205eb8dc403SDave Cobbley- const char *cache_data; 206eb8dc403SDave Cobbley- uint32_t cache_data_size; 207eb8dc403SDave Cobbley- const char *best; 208eb8dc403SDave Cobbley- 209eb8dc403SDave Cobbley- /* Print a message if the loading of libs is traced. */ 210eb8dc403SDave Cobbley- if (__builtin_expect (GLRO_dl_debug_mask & DL_DEBUG_LIBS, 0)) 211eb8dc403SDave Cobbley- _dl_debug_printf (" search cache=%s\n", LD_SO_CACHE); 212eb8dc403SDave Cobbley- 213eb8dc403SDave Cobbley- if (cache == NULL) 214eb8dc403SDave Cobbley- { 215eb8dc403SDave Cobbley- /* Read the contents of the file. */ 216eb8dc403SDave Cobbley- void *file = _dl_sysdep_read_whole_file (LD_SO_CACHE, &cachesize, 217eb8dc403SDave Cobbley- PROT_READ); 218eb8dc403SDave Cobbley- 219eb8dc403SDave Cobbley- /* We can handle three different cache file formats here: 220eb8dc403SDave Cobbley- - the old libc5/glibc2.0/2.1 format 221eb8dc403SDave Cobbley- - the old format with the new format in it 222eb8dc403SDave Cobbley- - only the new format 223eb8dc403SDave Cobbley- The following checks if the cache contains any of these formats. */ 224eb8dc403SDave Cobbley- if (file != MAP_FAILED && cachesize > sizeof *cache 225eb8dc403SDave Cobbley- && memcmp (file, CACHEMAGIC, sizeof CACHEMAGIC - 1) == 0) 226eb8dc403SDave Cobbley- { 227eb8dc403SDave Cobbley- size_t offset; 228eb8dc403SDave Cobbley- /* Looks ok. */ 229eb8dc403SDave Cobbley- cache = file; 230eb8dc403SDave Cobbley- 231eb8dc403SDave Cobbley- /* Check for new version. */ 232eb8dc403SDave Cobbley- offset = ALIGN_CACHE (sizeof (struct cache_file) 233eb8dc403SDave Cobbley- + cache->nlibs * sizeof (struct file_entry)); 234eb8dc403SDave Cobbley- 235eb8dc403SDave Cobbley- cache_new = (struct cache_file_new *) ((void *) cache + offset); 236eb8dc403SDave Cobbley- if (cachesize < (offset + sizeof (struct cache_file_new)) 237eb8dc403SDave Cobbley- || memcmp (cache_new->magic, CACHEMAGIC_VERSION_NEW, 238eb8dc403SDave Cobbley- sizeof CACHEMAGIC_VERSION_NEW - 1) != 0) 239eb8dc403SDave Cobbley- cache_new = (void *) -1; 240eb8dc403SDave Cobbley- } 241eb8dc403SDave Cobbley- else if (file != MAP_FAILED && cachesize > sizeof *cache_new 242eb8dc403SDave Cobbley- && memcmp (file, CACHEMAGIC_VERSION_NEW, 243eb8dc403SDave Cobbley- sizeof CACHEMAGIC_VERSION_NEW - 1) == 0) 244eb8dc403SDave Cobbley- { 245eb8dc403SDave Cobbley- cache_new = file; 246eb8dc403SDave Cobbley- cache = file; 247eb8dc403SDave Cobbley- } 248eb8dc403SDave Cobbley- else 249eb8dc403SDave Cobbley- { 250eb8dc403SDave Cobbley- if (file != MAP_FAILED) 251eb8dc403SDave Cobbley- __munmap (file, cachesize); 252eb8dc403SDave Cobbley- cache = (void *) -1; 253eb8dc403SDave Cobbley- } 254eb8dc403SDave Cobbley- 255eb8dc403SDave Cobbley- assert (cache != NULL); 256eb8dc403SDave Cobbley- } 257eb8dc403SDave Cobbley- 258eb8dc403SDave Cobbley- if (cache == (void *) -1) 259eb8dc403SDave Cobbley- /* Previously looked for the cache file and didn't find it. */ 260eb8dc403SDave Cobbley- return NULL; 261eb8dc403SDave Cobbley- 262eb8dc403SDave Cobbley- best = NULL; 263eb8dc403SDave Cobbley- 264eb8dc403SDave Cobbley- if (cache_new != (void *) -1) 265eb8dc403SDave Cobbley- { 266eb8dc403SDave Cobbley- uint64_t platform; 267eb8dc403SDave Cobbley- 268eb8dc403SDave Cobbley- /* This is where the strings start. */ 269eb8dc403SDave Cobbley- cache_data = (const char *) cache_new; 270eb8dc403SDave Cobbley- 271eb8dc403SDave Cobbley- /* Now we can compute how large the string table is. */ 272eb8dc403SDave Cobbley- cache_data_size = (const char *) cache + cachesize - cache_data; 273eb8dc403SDave Cobbley- 274eb8dc403SDave Cobbley- platform = _dl_string_platform (GLRO(dl_platform)); 275eb8dc403SDave Cobbley- if (platform != (uint64_t) -1) 276eb8dc403SDave Cobbley- platform = 1ULL << platform; 277eb8dc403SDave Cobbley- 278eb8dc403SDave Cobbley-#define _DL_HWCAP_TLS_MASK (1LL << 63) 279eb8dc403SDave Cobbley- uint64_t hwcap_exclude = ~((GLRO(dl_hwcap) & GLRO(dl_hwcap_mask)) 280eb8dc403SDave Cobbley- | _DL_HWCAP_PLATFORM | _DL_HWCAP_TLS_MASK); 281eb8dc403SDave Cobbley- 282eb8dc403SDave Cobbley- /* Only accept hwcap if it's for the right platform. */ 283eb8dc403SDave Cobbley-#define HWCAP_CHECK \ 284eb8dc403SDave Cobbley- if (lib->hwcap & hwcap_exclude) \ 285eb8dc403SDave Cobbley- continue; \ 286eb8dc403SDave Cobbley- if (GLRO(dl_osversion) && lib->osversion > GLRO(dl_osversion)) \ 287eb8dc403SDave Cobbley- continue; \ 288eb8dc403SDave Cobbley- if (_DL_PLATFORMS_COUNT \ 289eb8dc403SDave Cobbley- && (lib->hwcap & _DL_HWCAP_PLATFORM) != 0 \ 290eb8dc403SDave Cobbley- && (lib->hwcap & _DL_HWCAP_PLATFORM) != platform) \ 291eb8dc403SDave Cobbley- continue 292eb8dc403SDave Cobbley- SEARCH_CACHE (cache_new); 293eb8dc403SDave Cobbley- } 294eb8dc403SDave Cobbley- else 295eb8dc403SDave Cobbley- { 296eb8dc403SDave Cobbley- /* This is where the strings start. */ 297eb8dc403SDave Cobbley- cache_data = (const char *) &cache->libs[cache->nlibs]; 298eb8dc403SDave Cobbley- 299eb8dc403SDave Cobbley- /* Now we can compute how large the string table is. */ 300eb8dc403SDave Cobbley- cache_data_size = (const char *) cache + cachesize - cache_data; 301eb8dc403SDave Cobbley- 302eb8dc403SDave Cobbley-#undef HWCAP_CHECK 303eb8dc403SDave Cobbley-#define HWCAP_CHECK do {} while (0) 304eb8dc403SDave Cobbley- SEARCH_CACHE (cache); 305eb8dc403SDave Cobbley- } 306eb8dc403SDave Cobbley- 307eb8dc403SDave Cobbley- /* Print our result if wanted. */ 308eb8dc403SDave Cobbley- if (__builtin_expect (GLRO_dl_debug_mask & DL_DEBUG_LIBS, 0) 309eb8dc403SDave Cobbley- && best != NULL) 310eb8dc403SDave Cobbley- _dl_debug_printf (" trying file=%s\n", best); 311eb8dc403SDave Cobbley- 312eb8dc403SDave Cobbley- return best; 313eb8dc403SDave Cobbley-} 314eb8dc403SDave Cobbley- 315eb8dc403SDave Cobbley-#ifndef MAP_COPY 316eb8dc403SDave Cobbley-/* If the system does not support MAP_COPY we cannot leave the file open 317eb8dc403SDave Cobbley- all the time since this would create problems when the file is replaced. 318eb8dc403SDave Cobbley- Therefore we provide this function to close the file and open it again 319eb8dc403SDave Cobbley- once needed. */ 320eb8dc403SDave Cobbley-void 321eb8dc403SDave Cobbley-_dl_unload_cache (void) 322eb8dc403SDave Cobbley-{ 323eb8dc403SDave Cobbley- if (cache != NULL && cache != (struct cache_file *) -1) 324eb8dc403SDave Cobbley- { 325eb8dc403SDave Cobbley- __munmap (cache, cachesize); 326eb8dc403SDave Cobbley- cache = NULL; 327eb8dc403SDave Cobbley- } 328eb8dc403SDave Cobbley-} 329eb8dc403SDave Cobbley-#endif 330eb8dc403SDave CobbleyIndex: ldconfig-native-2.12.1/dl-cache.h 331eb8dc403SDave Cobbley=================================================================== 332eb8dc403SDave Cobbley--- ldconfig-native-2.12.1.orig/dl-cache.h 333eb8dc403SDave Cobbley+++ ldconfig-native-2.12.1/dl-cache.h 334eb8dc403SDave Cobbley@@ -101,5 +101,4 @@ struct cache_file_new 335eb8dc403SDave Cobbley (((addr) + __alignof__ (struct cache_file_new) -1) \ 336eb8dc403SDave Cobbley & (~(__alignof__ (struct cache_file_new) - 1))) 337eb8dc403SDave Cobbley 338eb8dc403SDave Cobbley-extern int _dl_cache_libcmp (const char *p1, const char *p2) 339eb8dc403SDave Cobbley- internal_function; 340eb8dc403SDave Cobbley+extern int _dl_cache_libcmp (const char *p1, const char *p2); 341eb8dc403SDave CobbleyIndex: ldconfig-native-2.12.1/ldconfig.c 342eb8dc403SDave Cobbley=================================================================== 343eb8dc403SDave Cobbley--- ldconfig-native-2.12.1.orig/ldconfig.c 344eb8dc403SDave Cobbley+++ ldconfig-native-2.12.1/ldconfig.c 345eb8dc403SDave Cobbley@@ -16,6 +16,9 @@ 346eb8dc403SDave Cobbley along with this program; if not, write to the Free Software Foundation, 347eb8dc403SDave Cobbley Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ 348eb8dc403SDave Cobbley 349eb8dc403SDave Cobbley+#define _LARGEFILE64_SOURCE 350eb8dc403SDave Cobbley+#define _GNU_SOURCE 351eb8dc403SDave Cobbley+ 352eb8dc403SDave Cobbley #define PROCINFO_CLASS static 353eb8dc403SDave Cobbley #include <alloca.h> 354eb8dc403SDave Cobbley #include <argp.h> 355eb8dc403SDave Cobbley@@ -39,10 +42,20 @@ 356eb8dc403SDave Cobbley #include <glob.h> 357eb8dc403SDave Cobbley #include <libgen.h> 358eb8dc403SDave Cobbley 359eb8dc403SDave Cobbley-#include <ldconfig.h> 360eb8dc403SDave Cobbley-#include <dl-cache.h> 361eb8dc403SDave Cobbley+#include "ldconfig.h" 362eb8dc403SDave Cobbley+#include "dl-cache.h" 363eb8dc403SDave Cobbley+ 364eb8dc403SDave Cobbley+#include "dl-procinfo.h" 365eb8dc403SDave Cobbley+ 366eb8dc403SDave Cobbley+#include "argp.h" 367eb8dc403SDave Cobbley+ 368eb8dc403SDave Cobbley+ 369eb8dc403SDave Cobbley+#define SYSCONFDIR "/etc" 370eb8dc403SDave Cobbley+#define LIBDIR "/usr/lib" 371eb8dc403SDave Cobbley+#define SLIBDIR "/lib" 372eb8dc403SDave Cobbley+# define N_(msgid) msgid 373eb8dc403SDave Cobbley+#define _(msg) msg 374eb8dc403SDave Cobbley 375eb8dc403SDave Cobbley-#include <dl-procinfo.h> 376eb8dc403SDave Cobbley 377eb8dc403SDave Cobbley #ifdef _DL_FIRST_PLATFORM 378eb8dc403SDave Cobbley # define _DL_FIRST_EXTRA (_DL_FIRST_PLATFORM + _DL_PLATFORMS_COUNT) 379eb8dc403SDave Cobbley@@ -55,7 +68,7 @@ 380eb8dc403SDave Cobbley #endif 381eb8dc403SDave Cobbley 382eb8dc403SDave Cobbley /* Get libc version number. */ 383eb8dc403SDave Cobbley-#include <version.h> 384eb8dc403SDave Cobbley+#include "version.h" 385eb8dc403SDave Cobbley 386eb8dc403SDave Cobbley #define PACKAGE _libc_intl_domainname 387eb8dc403SDave Cobbley 388eb8dc403SDave Cobbley@@ -152,8 +165,8 @@ static const struct argp_option options[ 389eb8dc403SDave Cobbley { NULL, 0, NULL, 0, NULL, 0 } 390eb8dc403SDave Cobbley }; 391eb8dc403SDave Cobbley 392eb8dc403SDave Cobbley-#define PROCINFO_CLASS static 393eb8dc403SDave Cobbley-#include <dl-procinfo.c> 394eb8dc403SDave Cobbley+//#define PROCINFO_CLASS static 395eb8dc403SDave Cobbley+//#include <dl-procinfo.c> 396eb8dc403SDave Cobbley 397eb8dc403SDave Cobbley /* Short description of program. */ 398eb8dc403SDave Cobbley static const char doc[] = N_("Configure Dynamic Linker Run Time Bindings."); 399eb8dc403SDave Cobbley@@ -291,6 +304,7 @@ parse_opt (int key, char *arg, struct ar 400eb8dc403SDave Cobbley return 0; 401eb8dc403SDave Cobbley } 402eb8dc403SDave Cobbley 403*5199d831SAndrew Geissler+#define REPORT_BUGS_TO "mailing list : poky@lists.yoctoproject.org" 404eb8dc403SDave Cobbley /* Print bug-reporting information in the help message. */ 405eb8dc403SDave Cobbley static char * 406eb8dc403SDave Cobbley more_help (int key, const char *text, void *input) 407eb8dc403SDave Cobbley@@ -315,7 +329,7 @@ For bug reporting instructions, please s 408eb8dc403SDave Cobbley static void 409eb8dc403SDave Cobbley print_version (FILE *stream, struct argp_state *state) 410eb8dc403SDave Cobbley { 411eb8dc403SDave Cobbley- fprintf (stream, "ldconfig %s%s\n", PKGVERSION, VERSION); 412eb8dc403SDave Cobbley+ fprintf (stream, "ldconfig (Hacked Poky Version)\n"); 413eb8dc403SDave Cobbley fprintf (stream, gettext ("\ 414eb8dc403SDave Cobbley Copyright (C) %s Free Software Foundation, Inc.\n\ 415eb8dc403SDave Cobbley This is free software; see the source for copying conditions. There is NO\n\ 416eb8dc403SDave Cobbley@@ -1233,6 +1247,7 @@ set_hwcap (void) 417eb8dc403SDave Cobbley hwcap_mask = strtoul (mask, NULL, 0); 418eb8dc403SDave Cobbley } 419eb8dc403SDave Cobbley 420eb8dc403SDave Cobbley+const char _libc_intl_domainname[] = "libc"; 421eb8dc403SDave Cobbley 422eb8dc403SDave Cobbley int 423eb8dc403SDave Cobbley main (int argc, char **argv) 424eb8dc403SDave CobbleyIndex: ldconfig-native-2.12.1/readlib.c 425eb8dc403SDave Cobbley=================================================================== 426eb8dc403SDave Cobbley--- ldconfig-native-2.12.1.orig/readlib.c 427eb8dc403SDave Cobbley+++ ldconfig-native-2.12.1/readlib.c 428eb8dc403SDave Cobbley@@ -22,6 +22,9 @@ 429eb8dc403SDave Cobbley development version. Besides the simplification, it has also been 430eb8dc403SDave Cobbley modified to read some other file formats. */ 431eb8dc403SDave Cobbley 432eb8dc403SDave Cobbley+#define _LARGEFILE64_SOURCE 433eb8dc403SDave Cobbley+#define _GNU_SOURCE 434eb8dc403SDave Cobbley+ 435eb8dc403SDave Cobbley #include <a.out.h> 436eb8dc403SDave Cobbley #include <elf.h> 437eb8dc403SDave Cobbley #include <error.h> 438eb8dc403SDave Cobbley@@ -35,7 +38,9 @@ 439eb8dc403SDave Cobbley #include <sys/stat.h> 440eb8dc403SDave Cobbley #include <gnu/lib-names.h> 441eb8dc403SDave Cobbley 442eb8dc403SDave Cobbley-#include <ldconfig.h> 443eb8dc403SDave Cobbley+#include "ldconfig.h" 444eb8dc403SDave Cobbley+ 445eb8dc403SDave Cobbley+#define _(msg) msg 446eb8dc403SDave Cobbley 447eb8dc403SDave Cobbley #define Elf32_CLASS ELFCLASS32 448eb8dc403SDave Cobbley #define Elf64_CLASS ELFCLASS64 449eb8dc403SDave CobbleyIndex: ldconfig-native-2.12.1/xstrdup.c 450eb8dc403SDave Cobbley=================================================================== 451eb8dc403SDave Cobbley--- ldconfig-native-2.12.1.orig/xstrdup.c 452eb8dc403SDave Cobbley+++ ldconfig-native-2.12.1/xstrdup.c 453eb8dc403SDave Cobbley@@ -16,15 +16,10 @@ 454eb8dc403SDave Cobbley along with this program; if not, write to the Free Software Foundation, 455eb8dc403SDave Cobbley Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ 456eb8dc403SDave Cobbley 457eb8dc403SDave Cobbley-#ifdef HAVE_CONFIG_H 458eb8dc403SDave Cobbley-# include <config.h> 459eb8dc403SDave Cobbley-#endif 460eb8dc403SDave Cobbley+#define _GNU_SOURCE 461eb8dc403SDave Cobbley+ 462eb8dc403SDave Cobbley+#include <string.h> 463eb8dc403SDave Cobbley 464eb8dc403SDave Cobbley-#if defined STDC_HEADERS || defined HAVE_STRING_H || _LIBC 465eb8dc403SDave Cobbley-# include <string.h> 466eb8dc403SDave Cobbley-#else 467eb8dc403SDave Cobbley-# include <strings.h> 468eb8dc403SDave Cobbley-#endif 469eb8dc403SDave Cobbley void *xmalloc (size_t n) __THROW; 470eb8dc403SDave Cobbley char *xstrdup (char *string) __THROW; 471eb8dc403SDave Cobbley 472