@@ -726,6 +726,14 @@ int gcc_modet::gcc_hybrid_binary()
726
726
rename (it->c_str (), (*it+" .goto-cc-saved" ).c_str ());
727
727
}
728
728
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
+
729
737
int result=run_gcc ();
730
738
731
739
// merge output from gcc with goto-binaries
@@ -744,7 +752,7 @@ int gcc_modet::gcc_hybrid_binary()
744
752
// remove any existing goto-cc section
745
753
std::vector<std::string> objcopy_argv;
746
754
747
- objcopy_argv.push_back (" objcopy " );
755
+ objcopy_argv.push_back (objcopy_cmd );
748
756
objcopy_argv.push_back (" --remove-section=goto-cc" );
749
757
objcopy_argv.push_back (*it);
750
758
@@ -756,7 +764,7 @@ int gcc_modet::gcc_hybrid_binary()
756
764
// now add goto-binary as goto-cc section
757
765
std::vector<std::string> objcopy_argv;
758
766
759
- objcopy_argv.push_back (" objcopy " );
767
+ objcopy_argv.push_back (objcopy_cmd );
760
768
objcopy_argv.push_back (" --add-section" );
761
769
objcopy_argv.push_back (" goto-cc=" +saved);
762
770
objcopy_argv.push_back (*it);
0 commit comments