X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fgnulinker.cpp;h=ee4f02dd2fd520bd4e05402b596dbcd718601eae;hb=4facd021514ab372c23b1b132d6b4b62baa4efbf;hp=ad9de775f3acecf3534cf61b37b6b630fc2574ab;hpb=dc4b917034c9d3718f07139e2f0f3631a080c6f3;p=builder.git diff --git a/source/gnulinker.cpp b/source/gnulinker.cpp index ad9de77..ee4f02d 100644 --- a/source/gnulinker.cpp +++ b/source/gnulinker.cpp @@ -22,6 +22,19 @@ GnuLinker::GnuLinker(Builder &b): { input_suffixes.push_back(".o"); input_suffixes.push_back(".a"); + + const Architecture &arch = builder.get_current_arch(); + if(arch.is_native()) + { + system_path.push_back("/lib"); + system_path.push_back("/usr/lib"); + if(arch.match_name("pc-32-linux")) + system_path.push_back("/usr/lib/i386-linux-gnu"); + else if(arch.match_name("pc-64-linux")) + system_path.push_back("/usr/lib/x86_64-linux-gnu"); + } + else + system_path.push_back("/usr/"+arch.get_cross_prefix()+"/lib"); } Target *GnuLinker::create_target(const list &sources, const std::string &arg) const @@ -58,7 +71,7 @@ Task *GnuLinker::run(const Target &target) const if(ObjectFile *obj = dynamic_cast(*i)) { const Tool *tool = obj->get_tool(); - if(dynamic_cast(tool)) + if(tool->get_tag()=="CXX") command = "g++"; }