|
Message-ID: <20140210140721.GK1685@port70.net> Date: Mon, 10 Feb 2014 15:07:21 +0100 From: Szabolcs Nagy <nsz@...t70.net> To: musl@...ts.openwall.com Subject: Re: How to build libc.a with -fPIC for all archive members? * Oliver Schneider <musl-mailinglist@...rot.com> [2014-02-10 12:35:14 +0000]: > how can I build the static library from the musl source, but compiling > with -fPIC? > > I tried the obvious: > > CFLAGS=-fPIC ./configure --enable-gcc-wrapper --disable-shared this should work > and then built. But I am getting the following linker error still > (albeit for a different member function and object file than before): > > /usr/local/musl/lib/libc.a(memmove.o): relocation R_X86_64_PC32 against > symbol `memcpy' can not be used when making a shared object; recompile > with -fPIC > final link failed: Bad value i think you miss -Bsymbolic-functions linker flags when you link the .so this avoids relocations of all .so internal function calls (which should be always on when building any library unless you explicitly document that a sepecific function may be hijacked (interposed) through ldpreloading otherwise the mismatch between the library internal and library external abi can break semantics) > The reason I want to do this, is to have a statically linked .so. I.e. > an .so that has no external dependency other than the system calls. Or > is this known to conflict with the ever-present glibc in some way? how would you use that? somehow it will need to be loaded but the loader must not interfere with the static linked libc or would you use the .so as the loader? (klibc does something like that: they put all libc code in a .so, they don't use -fPIC because they load the .so at fixed address and all binaries that are dynlinked to it are compiled against a fixed .so that has its sha1 checksum in its name, that way you can have something that looks like dynamic linking but actually it's more like a set of split static binaries that happens to share one half of their code that contains all of libc)
Powered by blists - more mailing lists
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.