author | Michael Krelin <hacker@klever.net> | 2005-03-31 14:16:18 (UTC) |
---|---|---|
committer | Michael Krelin <hacker@klever.net> | 2005-03-31 14:16:18 (UTC) |
commit | 333ec38b9a3a5a9d0f0fb03a97c004710ef525de (patch) (side-by-side diff) | |
tree | e0a1e5b458ede7ca1b14cd6fb45d1ec648156494 /lib | |
parent | ef14961fe10614eb15c71dd5b0b83f292bd7a5b0 (diff) | |
download | sitecing-333ec38b9a3a5a9d0f0fb03a97c004710ef525de.zip sitecing-333ec38b9a3a5a9d0f0fb03a97c004710ef525de.tar.gz sitecing-333ec38b9a3a5a9d0f0fb03a97c004710ef525de.tar.bz2 |
link_error exception introduced
-rw-r--r-- | lib/component_factory.cc | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/lib/component_factory.cc b/lib/component_factory.cc index a5ced6b..2a2eefe 100644 --- a/lib/component_factory.cc +++ b/lib/component_factory.cc @@ -151,50 +151,49 @@ namespace sitecing { throw konforka::exception(CODEPOINT,"failed to open/create linker stdout"); int stdE = open((root_intermediate+noro+".ld.stderr").c_str(),O_CREAT|O_TRUNC|O_WRONLY,0664); if(stdE<0) { close(stdO); throw konforka::exception(CODEPOINT,"failed to open/create linker stderr"); } list<string> args; config_options *co_ld_flags = config.lookup_config(noro,config_options::flag_ld_flags); if(co_ld_flags) { args.insert(args.end(),co_ld_flags->ld_flags.begin(),co_ld_flags->ld_flags.end()); } args.push_back("-shared"); args.push_back(o); file_list_t ancestors; get_ancestors(noro,ancestors); for(file_list_t::const_iterator i=ancestors.begin();i!=ancestors.end();++i) { string aso=root_so+*i+".so"; make(aso); args.push_back(aso); } args.push_back("-o"); args.push_back(dp); // TODO: "g++" configurable int rv = execute("g++",args,stdO,stdE); if(! (WIFEXITED(rv) && !WEXITSTATUS(rv)) ) - // TODO:TODO: linker_error - throw compile_error(CODEPOINT,"failed to link component",noro); + throw link_error(CODEPOINT,"failed to link component",noro); return; }catch(utility_no_prefix& unp) { throw konforka::exception(CODEPOINT,"component is outside of component root"); }catch(utility_no_suffix& uns) { } try { string noro = strip_prefix(dp,root_intermediate); // compiler targets for(int cct=0;cct<sizeof(cc_targets)/sizeof(*cc_targets);cct++) { try { string nos = strip_suffix(noro,cc_targets[cct]); string cc = root_intermediate+nos+".cc"; string o = root_intermediate+nos+".o"; if(access(cc.c_str(),R_OK)) throw konforka::exception(CODEPOINT,string("can't access preprocessed component code (")+cc+")"); make_path(dir_name(cc),0755); string pwd = dir_name(root_source+nos); auto_chdir dir_changer(pwd); file_lock lock_source(root_intermediate+nos+".lock"); file_lock lock_cc(root_intermediate+nos+".o.lock"); int stdO = open((root_intermediate+nos+".stdout").c_str(),O_CREAT|O_TRUNC|O_WRONLY,0664); if(stdO<0) throw konforka::exception(CODEPOINT,"failed to open/create compiler stdout"); int stdE = open((root_intermediate+nos+".stderr").c_str(),O_CREAT|O_TRUNC|O_WRONLY,0664); if(stdE<0) { |