How to set the dynamic linker path for a shared library?

I want to compile a shared library with an .interp segment.

#include <stdio.h>

int foo(int argc, char** argv) {

    printf("Hello, world!\n");
    return 0;

}

I'm using the following commands.

gcc -c -o test.o test.c
ld --dynamic-linker=blah -shared -o test.so test.o

I end up without an INTERP segment, as if I never passed the --dynamic-linker=blah option. Check with readelf -l test.so. When building an executable, the linker processes the option correctly and puts an INTERP segment in the program header. How to do I make it work for shared libraries too?

5
задан jacwah 30 July 2015 в 12:49
поделиться