@@ -2659,6 +2659,58 @@ void gcc::Link::RenderExtraToolArgs(const JobAction &JA,
2659
2659
// The types are (hopefully) good enough.
2660
2660
}
2661
2661
2662
+ // / Bare metal Tools
2663
+
2664
+ void baremetal::Assemble::ConstructJob (Compilation &C, const JobAction &JA,
2665
+ const InputInfo &Output,
2666
+ const InputInfoList &Inputs,
2667
+ const ArgList &Args,
2668
+ const char *LinkingOutput) const {
2669
+ ArgStringList CmdArgs;
2670
+
2671
+ Args.AddAllArgValues (CmdArgs, options::OPT_Wa_COMMA,
2672
+ options::OPT_Xassembler);
2673
+
2674
+ CmdArgs.push_back (" -o" );
2675
+ CmdArgs.push_back (Output.getFilename ());
2676
+
2677
+ for (InputInfoList::const_iterator
2678
+ it = Inputs.begin (), ie = Inputs.end (); it != ie; ++it) {
2679
+ const InputInfo &II = *it;
2680
+ CmdArgs.push_back (II.getFilename ());
2681
+ }
2682
+
2683
+ const char *Exec =
2684
+ Args.MakeArgString (getToolChain ().GetProgramPath (" as" ));
2685
+ C.addCommand (new Command (JA, *this , Exec, CmdArgs));
2686
+ }
2687
+
2688
+ void baremetal::Link::ConstructJob (Compilation &C, const JobAction &JA,
2689
+ const InputInfo &Output,
2690
+ const InputInfoList &Inputs,
2691
+ const ArgList &Args,
2692
+ const char *LinkingOutput) const {
2693
+ ArgStringList CmdArgs;
2694
+
2695
+ if (Output.isFilename ()) {
2696
+ CmdArgs.push_back (" -o" );
2697
+ CmdArgs.push_back (Output.getFilename ());
2698
+ } else {
2699
+ assert (Output.isNothing () && " Invalid output." );
2700
+ }
2701
+
2702
+ Args.AddAllArgs (CmdArgs, options::OPT_L);
2703
+ Args.AddAllArgs (CmdArgs, options::OPT_T_Group);
2704
+ Args.AddAllArgs (CmdArgs, options::OPT_e);
2705
+
2706
+ AddLinkerInputs (getToolChain (), Inputs, Args, CmdArgs);
2707
+
2708
+ addProfileRT (getToolChain (), Args, CmdArgs, getToolChain ().getTriple ());
2709
+
2710
+ const char *Exec = Args.MakeArgString (getToolChain ().GetProgramPath (" ld" ));
2711
+ C.addCommand (new Command (JA, *this , Exec, CmdArgs));
2712
+ }
2713
+
2662
2714
// Hexagon tools start.
2663
2715
void hexagon::Assemble::RenderExtraToolArgs (const JobAction &JA,
2664
2716
ArgStringList &CmdArgs) const {
0 commit comments