This is the mail archive of the
libc-alpha@sourceware.cygnus.com
mailing list for the glibc project.
Problem with new ld.so.cache format on 64-bit machines
- To: libc-alpha at sourceware dot cygnus dot com
- Subject: Problem with new ld.so.cache format on 64-bit machines
- From: David Huggins-Daines <dhd at linuxcare dot com>
- Date: 11 May 2000 19:18:04 -0400
There's a design flaw in the way ld.so in glibc 2.2 handles the
transition between the old ld.so.cache format and the new one.
Specifically, the new style cache is placed immediately following the
old style cache in /etc/ld.so.cache.
This is wrong because it means that, if there are an odd number of
libraries in the old style cache, it will not be aligned on an 8-byte
boundary, since struct file_entry is 12 bytes.
Since struct file_entry_new contains a field of type unsigned long,
every single time a dynamic executable is loaded on Alpha with glibc
2.2, at least one unaligned exception occurs (and a message is printed
to the console).
I suggest that the new style cache always be aligned to
sizeof(unsigned long) in the file.
--
David Huggins-Daines, Senior GNU/Linux Consultant, Linuxcare, Inc.
613.562.1239 desk, 613.223.0225 mobile
dhd@linuxcare.com, http://www.linuxcare.com/
Linuxcare. Support for the revolution.