[PATCH] Fix dl-cache AT_PLATFORM handling

Jakub Jelinek jakub@redhat.com
Tue Sep 19 16:59:00 GMT 2006


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



More information about the Libc-hacker mailing list