This is the mail archive of the libc-hacker@sourceware.org mailing list for the glibc project.

Note that libc-hacker is a closed list. You may look at the archives of this list, but subscription and posting are not open.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH] Fix dl-cache AT_PLATFORM handling


Hi!

If kernel doesn't provide any AT_PLATFORM in auxv on targets which
support it, we should reject any libraries with non-zero
_DL_HWCAP_PLATFORM bits (i.e. any platform optimized libs),
rather than accepting them all.  Otherwise we could say load
power5 optimized lib on power4 when using ld.so.cache (for path
searches for libraries ld.so was doing the right thing already before).

2006-09-19  Jakub Jelinek  <jakub@redhat.com>

	* elf/dl-cache.c (HWCAP_CHECK): If _DL_PLATFORMS_COUNT, but
	platform == -1, reject any libs with non-zero _DL_HWCAP_PLATFORM
	bits.

--- libc/elf/dl-cache.c.jj	2005-12-14 09:34:10.000000000 +0100
+++ libc/elf/dl-cache.c	2006-09-19 18:54:32.000000000 +0200
@@ -1,5 +1,5 @@
 /* Support for reading /etc/ld.so.cache files written by Linux ldconfig.
-   Copyright (C) 1996-2002, 2003, 2004 Free Software Foundation, Inc.
+   Copyright (C) 1996-2002, 2003, 2004, 2006 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -264,7 +264,7 @@ _dl_load_cache_lookup (const char *name)
 #define HWCAP_CHECK \
       if (GLRO(dl_osversion) && lib->osversion > GLRO(dl_osversion))	      \
 	continue;							      \
-      if (_DL_PLATFORMS_COUNT && platform != -1				      \
+      if (_DL_PLATFORMS_COUNT						      \
 	  && (lib->hwcap & _DL_HWCAP_PLATFORM) != 0			      \
 	  && (lib->hwcap & _DL_HWCAP_PLATFORM) != platform)		      \
 	continue;							      \

	Jakub


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]