This is the mail archive of the
mailing list for the glibc project.
Regarding "Inconsistency detected by ld.so" 32 Bit Elf
- From: Karthikeyan Shanmugam <karthikeyan24s at hotmail dot com>
- To: "libc-help at sourceware dot org" <libc-help at sourceware dot org>
- Date: Tue, 7 May 2013 01:14:18 +0530
- Subject: Regarding "Inconsistency detected by ld.so" 32 Bit Elf
I'm working custom 32 Bit PPC linker script in order to tweak the user level process memory allocation/reservation:
I've one standalone application (32 - Bit) for which need contiguous memory layout. Due to the shared libraries falling in a place (libc @0fe40000 and ld @0ffc0000) which is blocking us from using contiguous memory (lower part).
I tried certain things with prelink tool to relocate those libraries and able to successfully to relocate in expected place. But, I like to achieve the same thing using linker script tweak.
I believe during process instantiation, When the dynamic loader seeks for the unmapped region there is no mmap in area 0x0f... which resulted in placing the shared libraries @0x0f...
By default PPC linker is using "-z combreloc" script. I've created one custom linker script on top of comroloc after adding a fack section @0x0f... which resulted in "Inconsistency error"
Without fake section, custom linker script is working fine. ASLR - PAX and all other randomization are disabled in my system.
Below is an attempt to create a fake block between (00020000 - 0fffffff) with custom linker section included which resulted libdl to fall @0fe20000 and executable loading is failing with error message "Inconsistency detected by ld.so".
TSTSTART PT_LOAD FLAGS (0);
.TSTSTART 0x00020000: ALIGN (0x10000)
. = 0x0FFDFFFF;
Could anyone please share any pointers on this?
Thanks in Advance.