Changeset c4c8218 in rtems-tools


Ignore:
Timestamp:
Sep 6, 2014, 11:59:25 AM (5 years ago)
Author:
Chris Johns <chrisj@…>
Branches:
4.10, 4.11, master
Children:
3f5e31f
Parents:
8807135
Message:

Fix rtems-ld to keep tmep files around while building.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • linkers/rtems-tld.cpp

    r8807135 rc4c8218  
    187187       * Generate the wrapper object file.
    188188       */
    189       const std::string generate ();
     189      void generate (rld::process::tempfile& c);
    190190
    191191      /**
     
    201201    private:
    202202
    203       std::string  name;       /**< The name of the trace. */
    204       std::string  bsp;        /**< The BSP we are linking to. */
    205       rld::strings traces;     /**< The functions to trace. */
    206       functions    functions_; /**< The functions that can be traced. */
    207       generator    generator_; /**< The tracer's generator. */
     203      std::string  name;        /**< The name of the trace. */
     204      std::string  bsp;         /**< The BSP we are linking to. */
     205      rld::strings traces;      /**< The functions to trace. */
     206      functions    functions_;  /**< The functions that can be traced. */
     207      generator    generator_;  /**< The tracer's generator. */
    208208    };
    209209
     
    225225       * Generate the C file.
    226226       */
    227       void generate_wrapper ();
     227      void generate_wrapper (rld::process::tempfile& c);
    228228
    229229      /**
    230230       * Compile the C file.
    231231       */
    232       void compile_wrapper ();
     232      void compile_wrapper (rld::process::tempfile& c,
     233                            rld::process::tempfile& o);
    233234
    234235      /**
     
    239240    private:
    240241
    241       rld::config::config config;     /**< User configuration. */
    242       tracer              tracer_;    /**< The tracer */
    243       std::string         wrapper_c;  /**< Wrapper C source file. */
    244       std::string         wrapper_o;  /**< Wrapper object file. */
     242      rld::config::config    config;     /**< User configuration. */
     243      tracer                 tracer_;    /**< The tracer */
     244      rld::process::tempfile c; /**< The C wrapper file */
     245      rld::process::tempfile o; /**< The wrapper object file */
    245246    };
    246247
     
    544545    }
    545546
    546     const std::string
    547     tracer::generate ()
    548     {
    549       rld::process::tempfile c (".c");
    550 
     547    void
     548    tracer::generate (rld::process::tempfile& c)
     549    {
    551550      c.open (true);
    552551
     
    579578
    580579      c.close ();
    581 
    582       return c.name ();
    583580    }
    584581
     
    714711
    715712    void
    716     linker::generate_wrapper ()
    717     {
    718       wrapper_c = tracer_.generate ();
    719     }
    720 
    721     void
    722     linker::compile_wrapper ()
     713    linker::generate_wrapper (rld::process::tempfile& c)
     714    {
     715      tracer_.generate (c);
     716    }
     717
     718    void
     719    linker::compile_wrapper (rld::process::tempfile& c,
     720                             rld::process::tempfile& o)
    723721    {
    724722     rld::process::arg_container args;
    725 
    726       rld::process::tempfile o (".o");
    727723
    728724      if (rld::verbose ())
     
    735731      args.push_back ("-o ");
    736732      args.push_back (o.name ());
    737       args.push_back (wrapper_c);
     733      args.push_back (c.name ());
    738734
    739735      rld::process::tempfile out;
     
    752748        throw rld::error ("Compiler error", "compiling wrapper");
    753749      }
    754 
    755       wrapper_o = o.name ();
    756750    }
    757751
     
    952946    try
    953947    {
     948      rld::process::tempfile c (".c");
     949      rld::process::tempfile o (".o");
     950
    954951      linker.load_config (configuration, trace);
    955       linker.generate_wrapper ();
    956       linker.compile_wrapper ();
     952      linker.generate_wrapper (c);
     953      linker.compile_wrapper (c, o);
    957954
    958955      if (rld::verbose ())
Note: See TracChangeset for help on using the changeset viewer.