Changeset b7ad4a2 in rtems-tools


Ignore:
Timestamp:
Sep 8, 2014, 10:40:13 PM (5 years ago)
Author:
Chris Johns <chrisj@…>
Branches:
4.10, 4.11, master
Children:
30a7f06
Parents:
6fb1409
Message:

linkers: If no RTEMS path is provied see if the prefix can be used.

Location:
linkers
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • linkers/rld.cpp

    r6fb1409 rb7ad4a2  
    4040{
    4141  static int verbose_level = 0;
     42
     43  /**
     44   * The program's command line.
     45   */
     46  static std::string cmdline;
     47
     48  /**
     49   * The program name as set by the caller.
     50   */
    4251  static std::string progname;
    4352
     
    207216
    208217  void
     218  set_cmdline (int argc, char* argv[])
     219  {
     220    cmdline.clear ();
     221    for (int arg = 0; arg < argc; ++arg)
     222    {
     223      std::string a = argv[arg];
     224      cmdline += ' ' + a;
     225    }
     226    cmdline = rld::trim (cmdline);
     227  }
     228
     229  const std::string
     230  get_cmdline ()
     231  {
     232    return cmdline;
     233  }
     234
     235  void
    209236  set_progname (const std::string& progname_)
    210237  {
     
    234261  {
    235262    std::string pp = get_program_path ();
    236     std::cout << "PP=" << pp << std::endl;
    237263    if (rld::path::basename (pp) == "bin")
    238       pp = rld::path::dirname (pp);
    239     return pp;
     264      return rld::path::dirname (pp);
     265    return "";
    240266  }
    241267
  • linkers/rld.h

    r6fb1409 rb7ad4a2  
    201201
    202202  /**
     203   * Set the command line.
     204   */
     205  void set_cmdline (int argc, char* argv[]);
     206
     207  /**
     208   * Get the command line.
     209   */
     210  const std::string get_cmdline ();
     211
     212  /**
    203213   * Set the progname.
    204214   */
  • linkers/rtems-ld.cpp

    r6fb1409 rb7ad4a2  
    199199    bool                 one_file = false;
    200200
     201    rld::set_cmdline (argc, argv);
     202
    201203    libpaths.push_back (".");
    202204
     
    330332    }
    331333
     334    /*
     335     * Set the program name.
     336     */
     337    rld::set_progname (argv[0]);
     338
    332339    argc -= optind;
    333340    argv += optind;
    334341
    335342    if (rld::verbose () || map)
     343    {
    336344      std::cout << "RTEMS Linker " << rld::version () << std::endl;
     345      std::cout << " " << rld::get_cmdline () << std::endl;
     346    }
    337347
    338348    /*
     
    356366    if (!rtems_arch_bsp.empty ())
    357367    {
    358       if (rtems_path.empty ())
     368      const std::string& prefix = rld::get_prefix ();
     369      if (rtems_path.empty () && prefix.empty ())
    359370        throw rld::error ("No RTEMS path provide with arch/bsp", "options");
    360       rld::rtems::set_path (rtems_path);
     371      if (!rtems_path.empty ())
     372        rld::rtems::set_path (rtems_path);
     373      else
     374        rld::rtems::set_path (prefix);
    361375      rld::rtems::set_arch_bsp (rtems_arch_bsp);
    362376    }
  • linkers/rtems-tld.cpp

    r6fb1409 rb7ad4a2  
    973973    std::string        rtems_arch_bsp;
    974974
     975    rld::set_cmdline (argc, argv);
     976
    975977    while (true)
    976978    {
     
    10521054
    10531055    if (rld::verbose ())
     1056    {
    10541057      std::cout << "RTEMS Trace Linker " << rld::version () << std::endl;
     1058      std::cout << " " << rld::get_cmdline () << std::endl;
     1059    }
    10551060
    10561061    /*
     
    10591064    if (!rtems_arch_bsp.empty ())
    10601065    {
    1061       if (rtems_path.empty ())
     1066      const std::string& prefix = rld::get_prefix ();
     1067      if (rtems_path.empty () && prefix.empty ())
    10621068        throw rld::error ("No RTEMS path provide with arch/bsp", "options");
    1063       rld::rtems::set_path (rtems_path);
     1069      if (!rtems_path.empty ())
     1070        rld::rtems::set_path (rtems_path);
     1071      else
     1072        rld::rtems::set_path (prefix);
    10641073      rld::rtems::set_arch_bsp (rtems_arch_bsp);
    10651074    }
Note: See TracChangeset for help on using the changeset viewer.