[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
glibc problem pinned down
From: |
Marcus Brinkmann |
Subject: |
glibc problem pinned down |
Date: |
Tue, 17 Jul 2001 04:28:30 +0200 |
User-agent: |
Mutt/1.2i |
Hi,
I have pinned down my (and Jeffs) recent problem with glibc.
However, I don't know enough about it to suggest what is actually
wrong or needs fixing.
The problem is in elf/dl-load.c (open_verify), the very last check
before returning: the check for the ABI note in the executable.
The following check is true, causing ENOENT to be returned (this
error value is hard coded there).
if (abi_note[4] != __ABI_TAG_OS
|| (_dl_osversion && _dl_osversion < osversion))
{
close_and_out:
__close (fd);
__set_errno (ENOENT);
fd = -1;
}
I run the following command:
LD_LIBRARY_PATH=/mnt/build:/mnt/build/mach:/mnt/build/hurd:/lib elf/ld.so
/hurd/hello
I inserted a _dl_debug_printf after the if above, which gave me these values
at the time of comparison:
abi_note[4] == 0
__ABI_TAG_OS == 1
_dl_osversion == 0
osversion == 0x2001e
Note that abi_note[4] != __ABI_TAG_OS.
I don't know what this ABI note section is, and how it is set.
Maybe it is wrong because I cross compile the Hurd?
Thanks,
Marcus
- glibc problem pinned down,
Marcus Brinkmann <=