Skip to content

Commit dca19fd

Browse files
committed
Make objcopy calls work when cross-compiling
1 parent 63b820d commit dca19fd

File tree

1 file changed

+10
-2
lines changed

1 file changed

+10
-2
lines changed

src/goto-cc/gcc_mode.cpp

+10-2
Original file line numberDiff line numberDiff line change
@@ -726,6 +726,14 @@ int gcc_modet::gcc_hybrid_binary()
726726
rename(it->c_str(), (*it+".goto-cc-saved").c_str());
727727
}
728728

729+
std::string objcopy_cmd;
730+
if(has_suffix(linker_name(cmdline, base_name), "-ld"))
731+
{
732+
objcopy_cmd=linker_name(cmdline, base_name);
733+
objcopy_cmd.erase(objcopy_cmd.size()-2);
734+
}
735+
objcopy_cmd+="objcopy";
736+
729737
int result=run_gcc();
730738

731739
// merge output from gcc with goto-binaries
@@ -744,7 +752,7 @@ int gcc_modet::gcc_hybrid_binary()
744752
// remove any existing goto-cc section
745753
std::vector<std::string> objcopy_argv;
746754

747-
objcopy_argv.push_back("objcopy");
755+
objcopy_argv.push_back(objcopy_cmd);
748756
objcopy_argv.push_back("--remove-section=goto-cc");
749757
objcopy_argv.push_back(*it);
750758

@@ -756,7 +764,7 @@ int gcc_modet::gcc_hybrid_binary()
756764
// now add goto-binary as goto-cc section
757765
std::vector<std::string> objcopy_argv;
758766

759-
objcopy_argv.push_back("objcopy");
767+
objcopy_argv.push_back(objcopy_cmd);
760768
objcopy_argv.push_back("--add-section");
761769
objcopy_argv.push_back("goto-cc="+saved);
762770
objcopy_argv.push_back(*it);

0 commit comments

Comments
 (0)