X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;ds=sidebyside;f=source%2Fgnulinker.cpp;h=a8b07f8499bdc8307a8378a93c46147dbb70ad5e;hb=40177b0cfc0d4e67f971941f632e4f1f7e7c3f88;hp=a14dd0bd984f096af2831ce2d6677d0e60b2436d;hpb=4240871c17854e2afccdcc37ce8f3464f8091a3f;p=builder.git diff --git a/source/gnulinker.cpp b/source/gnulinker.cpp index a14dd0b..a8b07f8 100644 --- a/source/gnulinker.cpp +++ b/source/gnulinker.cpp @@ -71,6 +71,7 @@ Task *GnuLinker::run(const Target &target) const if(shlib) { argv.push_back("-shared"); + argv.push_back("-fPIC"); if(!shlib->get_soname().empty()) argv.push_back("-Wl,-soname,"+shlib->get_soname()); } @@ -78,10 +79,12 @@ Task *GnuLinker::run(const Target &target) const argv.push_back("-static"); const BuildInfo &binfo = comp.get_build_info(); - for(list::const_iterator i=binfo.ldflags.begin(); i!=binfo.ldflags.end(); ++i) - argv.push_back(*i); for(list::const_iterator i=binfo.libpath.begin(); i!=binfo.libpath.end(); ++i) argv.push_back("-L"+*i); + if(binfo.strip) + argv.push_back("-s"); + if(binfo.threads) + argv.push_back("-pthread"); const Architecture &arch = builder.get_current_arch(); const Architecture &native_arch = builder.get_native_arch();