Apologies if not the correct zone to put this question.

I'm trying to load libc/ld much lower in the process address space...

I'm trying to mmap (MAP_FIXED) for a address range which is currently overlapping with the address range used by libc and ld shared libs.

below is a sample map of my system,
08048000-08053000 r-xp 00000000 08:01 2228263 /bin/cat
08053000-08054000 r--p 0000a000 08:01 2228263 /bin/cat
08054000-08055000 rw-p 0000b000 08:01 2228263 /bin/cat
0828f000-082b0000 rw-p 00000000 00:00 0 [heap]
47bb9000-47bda000 r-xp 00000000 08:01 2364214 /lib/ld-2.14.90.so
47bda000-47bdb000 r--p 00020000 08:01 2364214 /lib/ld-2.14.90.so
47bdb000-47bdc000 rw-p 00021000 08:01 2364214 /lib/ld-2.14.90.so
47bde000-47d83000 r-xp 00000000 08:01 2364619 /lib/libc-2.14.90.so
47d83000-47d85000 r--p 001a5000 08:01 2364619 /lib/libc-2.14.90.so
47d85000-47d86000 rw-p 001a7000 08:01 2364619 /lib/libc-2.14.90.so
47d86000-47d89000 rw-p 00000000 00:00 0
b757c000-b777c000 r--p 00000000 08:01 790986 /usr/lib/locale/locale-archive
b777c000-b777d000 rw-p 00000000 00:00 0
b7792000-b7793000 rw-p 00000000 00:00 0
b7793000-b7794000 r-xp 00000000 00:00 0 [vdso]
bfa90000-bfab1000 rw-p 00000000 00:00 0 [stack]

I however tried changing TASK_UNMAPPED_BASE in kernel, which has no effect in this case.

I tried understanding elf loading in kernel, but I think I'm looking at wrong place.

Can anyone point me direction, in which I should search?