Changeset 40fd7a0 in rtems-tools for linkers


Ignore:
Timestamp:
Sep 1, 2014, 3:26:47 AM (5 years ago)
Author:
Chris Johns <chrisj@…>
Branches:
4.10, 4.11, master
Children:
2f48445
Parents:
e5165d2
Message:

rld: Split the file into a path module for path specific functions.

This allows resued for other parts of the system not dependent on
objcet files or archives.

Location:
linkers
Files:
2 added
13 edited

Legend:

Unmodified
Added
Removed
  • linkers/rld-cc.cpp

    re5165d2 r40fd7a0  
    11/*
    2  * Copyright (c) 2011-2012, Chris Johns <chrisj@rtems.org>
     2 * Copyright (c) 2011-2014, Chris Johns <chrisj@rtems.org>
    33 *
    44 * Permission to use, copy, modify, and/or distribute this software for any
     
    2828  {
    2929    std::string cc;
     30    std::string cc_name = "gcc";
    3031    std::string exec_prefix;
    31     std::string march;
    32     std::string mcpu;
     32    std::string cppflags;
     33    std::string cflags;
     34    std::string cxxflags;
     35    std::string ldflags;
    3336    std::string install_path;
    3437    std::string programs_path;
     
    4245    static const char* std_lib_cplusplus = "libstdc++.a";
    4346
    44     static void
     47    void
    4548    make_cc_command (rld::process::arg_container& args)
    4649    {
    4750      /*
    48        * Use the absolute path to CC is provided.
     51       * Use the absolute path to CC if provided.
    4952       */
    5053      if (!cc.empty ())
     
    5255      else
    5356      {
    54         std::string cmd = "gcc";
     57        std::string cmd = cc_name;
    5558        if (!exec_prefix.empty ())
    5659          cmd = exec_prefix + "-rtems" + rld::rtems_version () + '-' + cmd;
    5760        args.push_back (cmd);
    5861      }
    59       if (!march.empty ())
    60         args.push_back ("-march=" + march);
    61       if (!mcpu.empty ())
    62         args.push_back ("-mcpu=" + mcpu);
     62    }
     63
     64    void
     65    add_cppflags (rld::process::arg_container& args)
     66    {
     67      if (!cppflags.empty ())
     68        args.push_back (cppflags);
     69    }
     70
     71    void
     72    add_cflags (rld::process::arg_container& args)
     73    {
     74      if (!cflags.empty ())
     75        args.push_back (cflags);
     76    }
     77
     78    void
     79    add_cxxflags (rld::process::arg_container& args)
     80    {
     81      if (!cxxflags.empty ())
     82        args.push_back (cxxflags);
     83    }
     84
     85    void
     86    add_ldflags (rld::process::arg_container& args)
     87    {
     88      if (!ldflags.empty ())
     89        args.push_back (ldflags);
    6390    }
    6491
     
    83110
    84111      make_cc_command (args);
     112      add_cppflags (args);
     113      add_cflags (args);
    85114      args.push_back ("-print-search-dirs");
    86115
     
    89118      rld::process::status   status;
    90119
    91       status = rld::process::execute ("gcc", args, out.name (), err.name ());
     120      status = rld::process::execute (cc_name, args, out.name (), err.name ());
    92121
    93122      if ((status.type == rld::process::status::normal) &&
     
    95124      {
    96125        if (rld::verbose () >= RLD_VERBOSE_DETAILS)
    97           out.output ("gcc", std::cout, true);
     126          out.output (cc_name, std::cout, true);
    98127        out.open ();
    99128        while (true)
     
    120149      else
    121150      {
    122         err.output ("gcc", std::cout);
     151        err.output (cc_name, std::cout);
    123152      }
    124153    }
     
    130159
    131160      make_cc_command (args);
     161      add_cflags (args);
     162      add_ldflags (args);
    132163      args.push_back ("-print-file-name=" + name);
    133164
     
    136167      rld::process::status   status;
    137168
    138       status = rld::process::execute ("gcc", args, out.name (), err.name ());
     169      status = rld::process::execute (cc_name, args, out.name (), err.name ());
    139170
    140171      if ((status.type == rld::process::status::normal) &&
     
    156187
    157188    void
    158     get_standard_libpaths (rld::files::paths& libpaths)
     189    get_standard_libpaths (rld::path::paths& libpaths)
    159190    {
    160191      search_dirs ();
     
    163194
    164195    void
    165     get_standard_libs (rld::files::paths& libs,
    166                        rld::files::paths& libpaths,
    167                        bool               cplusplus)
     196    get_standard_libs (rld::path::paths& libs,
     197                       rld::path::paths& libpaths,
     198                       bool              cplusplus)
    168199    {
    169200      strings libnames;
     
    171202      rld::split (std_lib_c, libnames, RLD_PATHSTR_SEPARATOR);
    172203      if (cplusplus)
    173         rld::files::path_split (std_lib_cplusplus, libnames);
     204        rld::path::path_split (std_lib_cplusplus, libnames);
    174205
    175206      for (strings::iterator lni = libnames.begin ();
     
    182213        std::string path;
    183214
    184         rld::files::find_file (path, *lni, libpaths);
     215        rld::path::find_file (path, *lni, libpaths);
    185216        if (path.empty ())
    186217          throw rld::error ("Library not found: " + *lni, "getting standard libs");
  • linkers/rld-cc.h

    re5165d2 r40fd7a0  
    11/*
    2  * Copyright (c) 2011-2012, Chris Johns <chrisj@rtems.org>
     2 * Copyright (c) 2011-2014, Chris Johns <chrisj@rtems.org>
    33 *
    44 * Permission to use, copy, modify, and/or distribute this software for any
     
    2929
    3030#include <rld-files.h>
     31#include <rld-process.h>
    3132
    3233namespace rld
     
    3435  namespace cc
    3536  {
    36     extern std::string cc;             //< The CC executable.
     37    extern std::string cc;             //< The CC executable as absolute path.
     38    extern std::string cc_name;        //< The CC name, ie gcc, clang.
    3739    extern std::string exec_prefix;    //< The CC executable prefix.
    38     extern std::string march;          //< The CC machine architecture.
    39     extern std::string mcpu;           //< The CC machine CPU.
     40
     41    extern std::string cppflags;       //< The CPP flags.
     42    extern std::string cflags;         //< The CC flags.
     43    extern std::string cxxflags;       //< The CXX flags.
     44    extern std::string ldflags;        //< The LD flags.
    4045
    4146    extern std::string install_path;   //< The CC reported install path.
     
    4449
    4550    /**
     51     * Make a CC command from the set arguments.
     52     */
     53    void make_cc_command (rld::process::arg_container& args);
     54
     55    /**
     56     * If the cppflags has been set append to the arguments.
     57     */
     58    void add_cppflags (rld::process::arg_container& args);
     59
     60    /**
     61     * If the cflags has been set append to the arguments.
     62     */
     63    void add_cflags (rld::process::arg_container& args);
     64
     65    /**
     66     * If the cxxflags has been set append to the arguments.
     67     */
     68    void add_cxxflags (rld::process::arg_container& args);
     69
     70    /**
     71     * If the ldflags has been set append to the arguments.
     72     */
     73    void add_ldflags (rld::process::arg_container& args);
     74
     75    /**
    4676     * Get the standard libraries paths from the compiler.
    4777     */
    48     void get_standard_libpaths (rld::files::paths& libpaths);
     78    void get_standard_libpaths (rld::path::paths& libpaths);
    4979
    5080    /**
    5181     * Get the standard libraries. Optionally add the C++ library.
    5282     */
    53     void get_standard_libs (rld::files::paths& libs,
    54                             rld::files::paths& libpaths,
    55                             bool               cpp = false);
     83    void get_standard_libs (rld::path::paths& libs,
     84                            rld::path::paths& libpaths,
     85                            bool              cpp = false);
    5686
    5787  }
  • linkers/rld-files.cpp

    re5165d2 r40fd7a0  
    7474    }
    7575
    76     std::string
    77     basename (const std::string& name)
    78     {
    79       size_t b = name.find_last_of (RLD_PATH_SEPARATOR);
    80       if (b != std::string::npos)
    81         return name.substr (b + 1);
    82       return name;
    83     }
    84 
    85     std::string
    86     dirname (const std::string& name)
    87     {
    88       size_t b = name.find_last_of (RLD_PATH_SEPARATOR);
    89       if (b != std::string::npos)
    90         return name.substr (0, b - 1);
    91       return name;
    92     }
    93 
    94     std::string
    95     extension (const std::string& name)
    96     {
    97       size_t b = name.find_last_of ('.');
    98       if (b != std::string::npos)
    99         return name.substr (b);
    100       return name;
    101     }
    102 
    103     void
    104     path_split (const std::string& path, rld::files::paths& paths)
    105     {
    106       strings ps;
    107       rld::split (path, ps, RLD_PATHSTR_SEPARATOR);
    108       if (ps.size ())
    109       {
    110         for (strings::iterator psi = ps.begin ();
    111              psi != ps.end ();
    112              ++psi)
    113         {
    114           if (check_directory (*psi))
    115             paths.push_back (*psi);
    116         }
    117       }
    118     }
    119 
    120     void
    121     path_join (const std::string& path_, const std::string& file_, std::string& joined)
    122     {
    123       if ((path_[path_.size () - 1] != RLD_PATH_SEPARATOR) &&
    124           (file_[0] != RLD_PATH_SEPARATOR))
    125         joined = path_ + RLD_PATH_SEPARATOR + file_;
    126       else if ((path_[path_.size () - 1] == RLD_PATH_SEPARATOR) &&
    127                (file_[0] == RLD_PATH_SEPARATOR))
    128         joined = path_ + &file_[1];
    129       else
    130         joined = path_ + file_;
    131     }
    132 
    133     bool
    134     check_file (const std::string& path)
    135     {
    136       struct stat sb;
    137       if (::stat (path.c_str (), &sb) == 0)
    138         if (S_ISREG (sb.st_mode))
    139           return true;
    140       return false;
    141     }
    142 
    143     bool
    144     check_directory (const std::string& path)
    145     {
    146       struct stat sb;
    147       if (::stat (path.c_str (), &sb) == 0)
    148         if (S_ISDIR (sb.st_mode))
    149           return true;
    150       return false;
    151     }
    152 
    153     void
    154     find_file (std::string& path, const std::string& name, paths& search_paths)
    155     {
    156       for (rld::files::paths::iterator pi = search_paths.begin ();
    157            pi != search_paths.end ();
    158            ++pi)
    159       {
    160         path_join (*pi, name, path);
    161         if (check_file (path))
    162           return;
    163       }
    164       path.clear ();
    165     }
    166 
    16776    file::file (const std::string& aname,
    16877                const std::string& oname,
     
    245154    file::is_valid () const
    246155    {
    247       return !aname_.empty () || ~oname_.empty ();
     156      return !aname_.empty () || !oname_.empty ();
    248157    }
    249158
     
    257166      const std::string p = path ();
    258167      if (!p.empty ())
    259         result = check_file (p);
     168        result = path::check_file (p);
    260169      return result;
    261170    }
     
    289198    file::basename () const
    290199    {
    291       return rld::files::basename (full ());
     200      return rld::path::basename (full ());
    292201    }
    293202
     
    844753        {
    845754          object& obj = *(*oi);
    846           const std::string&  oname = basename (obj.name ().oname ());
     755          const std::string&  oname = path::basename (obj.name ().oname ());
    847756          if (oname.length () >= rld_archive_fname_size)
    848757            extended_file_names += oname + '\n';
     
    869778          try
    870779          {
    871             std::string oname = basename (obj.name ().oname ());
     780            std::string oname = path::basename (obj.name ().oname ());
    872781
    873782            /*
     
    13921301
    13931302    void
    1394     cache::add (paths& paths__)
    1395     {
    1396       for (paths::iterator pi = paths__.begin();
     1303    cache::add (path::paths& paths__)
     1304    {
     1305      for (path::paths::iterator pi = paths__.begin();
    13971306           pi != paths__.end();
    13981307           ++pi)
     
    14011310
    14021311    void
    1403     cache::add_libraries (paths& paths__)
    1404     {
    1405       for (paths::iterator pi = paths__.begin();
     1312    cache::add_libraries (path::paths& paths__)
     1313    {
     1314      for (path::paths::iterator pi = paths__.begin();
    14061315           pi != paths__.end();
    14071316           ++pi)
     
    14601369    cache::collect_object_files ()
    14611370    {
    1462       for (paths::iterator ni = paths_.begin (); ni != paths_.end (); ++ni)
     1371      for (path::paths::iterator ni = paths_.begin (); ni != paths_.end (); ++ni)
    14631372        collect_object_files (*ni);
    14641373    }
     
    15661475    {
    15671476      list.clear ();
    1568       for (paths::const_iterator pi = paths_.begin ();
     1477      for (path::paths::const_iterator pi = paths_.begin ();
    15691478           pi != paths_.end ();
    15701479           ++pi)
     
    15771486    }
    15781487
    1579     const paths&
     1488    const path::paths&
    15801489    cache::get_paths () const
    15811490    {
     
    16401549
    16411550    void
    1642     find_libraries (paths& libraries, paths& libpaths, paths& libs)
     1551    find_libraries (path::paths& libraries,
     1552                    path::paths& libpaths,
     1553                    path::paths& libs)
    16431554    {
    16441555      if (rld::verbose () >= RLD_VERBOSE_INFO)
    16451556        std::cout << "Finding libraries:." << std::endl;
    16461557      libraries.clear ();
    1647       for (paths::size_type l = 0; l < libs.size (); ++l)
     1558      for (path::paths::size_type l = 0; l < libs.size (); ++l)
    16481559      {
    16491560        std::string lib = "lib" + libs[l] + ".a";
     
    16511562          std::cout << " searching: " << lib << std::endl;
    16521563        bool found = false;
    1653         for (paths::size_type p = 0; p < libpaths.size (); ++p)
     1564        for (path::paths::size_type p = 0; p < libpaths.size (); ++p)
    16541565        {
    16551566          std::string plib;
    1656           path_join (libpaths[p], lib, plib);
     1567          path::path_join (libpaths[p], lib, plib);
    16571568          if (rld::verbose () >= RLD_VERBOSE_DETAILS)
    16581569              std::cout << " checking: " << plib << std::endl;
    1659           if (check_file (plib))
     1570          if (path::check_file (plib))
    16601571          {
    16611572            if (rld::verbose () >= RLD_VERBOSE_INFO)
  • linkers/rld-files.h

    re5165d2 r40fd7a0  
    3939
    4040#include <rld.h>
     41#include <rld-path.h>
    4142
    4243namespace rld
     
    4546  {
    4647    /**
    47      * Container of file paths.
    48      */
    49     typedef std::vector < std::string > paths;
    50 
    51     /**
    5248     * Container of files.
    5349     */
     
    6864     */
    6965    typedef std::list < object* > object_list;
    70 
    71     /**
    72      * Return the basename of the file name.
    73      *
    74      * @param name The full file name.
    75      * @return std::string The basename of the file.
    76      */
    77     std::string basename (const std::string& name);
    78 
    79     /**
    80      * Return the dirname of the file name.
    81      *
    82      * @param name The full file name.
    83      * @return std::string The dirname of the file.
    84      */
    85     std::string dirname (const std::string& name);
    86 
    87     /**
    88      * Return the extension of the file name.
    89      *
    90      * @param name The full file name.
    91      * @return std::string The extension of the file.
    92      */
    93     std::string extension (const std::string& name);
    94 
    95     /**
    96      * Split a path from a string with a delimiter to the path container. Add
    97      * only the paths that exist and ignore those that do not.
    98      *
    99      * @param path The paths as a single string delimited by the path
    100      *             separator.
    101      * @param paths The split path paths.
    102      */
    103     void path_split (const std::string& path,
    104                      paths&             paths);
    105 
    106     /**
    107      * Make a path by joining the parts with required separator.
    108      *
    109      * @param path_ The path component to be joined.
    110      * @param file_ The file name to add to the path.
    111      * @param joined The joined path and file name with a path separator.
    112      */
    113     void path_join (const std::string& path_,
    114                     const std::string& file_,
    115                     std::string&       joined);
    116 
    117     /**
    118      * Check the path is a file using a stat call.
    119      *
    120      * @param path The path to check.
    121      * @retval true The path is valid.
    122      * @retval false The path is not valid.
    123      */
    124     bool check_file (const std::string& path);
    125 
    126     /**
    127      * Check if the path is a directory.
    128      *
    129      * @param path The path to check.
    130      * @retval false The path is not a directory.
    131      * @retval true The path is a directory.
    132      */
    133     bool check_directory (const std::string& path);
    134 
    135     /**
    136      * Find the file given a container of paths and file names.
    137      *
    138      * @param path The path of the file if found else empty.
    139      * @param name The name of the file to search for.
    140      * @param search_paths The container of paths to search.
    141      */
    142     void find_file (std::string&       path,
    143                     const std::string& name,
    144                     paths&             search_paths);
    14566
    14667    /**
     
    925846       * Add a container of path to the cache.
    926847       */
    927       void add (paths& paths__);
     848      void add (path::paths& paths__);
    928849
    929850      /**
    930851       * Add a container of path to the cache.
    931852       */
    932       void add_libraries (paths& paths__);
     853      void add_libraries (path::paths& paths__);
    933854
    934855      /**
     
    994915       * Get the paths.
    995916       */
    996       const paths& get_paths () const;
     917      const path::paths& get_paths () const;
    997918
    998919      /**
     
    1039960
    1040961    private:
    1041       paths    paths_;    //< The names of the files to process.
    1042       archives archives_; //< The archive files.
    1043       objects  objects_;  //< The object files.
    1044       bool     opened;    //< The cache is open.
     962      path::paths paths_;    //< The names of the files to process.
     963      archives    archives_; //< The archive files.
     964      objects     objects_;  //< The object files.
     965      bool        opened;    //< The cache is open.
    1045966    };
    1046967
     
    1058979     * have 'lib' and '.a' added.
    1059980     */
    1060     void find_libraries (paths& libraries, paths& libpaths, paths& libs);
     981    void find_libraries (path::paths& libraries,
     982                         path::paths& libpaths,
     983                         path::paths& libs);
    1061984
    1062985  }
  • linkers/rld-outputter.cpp

    re5165d2 r40fd7a0  
    189189                  << ", dependents: " << dependents.size () << std::endl;
    190190
    191       std::string ext = files::extension (name);
     191      std::string ext = path::extension (name);
    192192      std::string mdname =
    193193        name.substr (0, name.length () - ext.length ()) + "-metadata.o";
  • linkers/rld-process.cpp

    re5165d2 r40fd7a0  
    161161    tempfile::open (bool writable)
    162162    {
    163       if ((fd < 0) && rld::files::check_file (_name))
     163      if ((fd < 0) && rld::path::check_file (_name))
    164164      {
    165165        level = 0;
  • linkers/rld-resolver.cpp

    re5165d2 r40fd7a0  
    5858                     const std::string&  fullname)
    5959    {
    60       const std::string name = files::basename (fullname);
     60      const std::string name = path::basename (fullname);
    6161
    6262      static int nesting = 0;
  • linkers/rtems-ld.cpp

    re5165d2 r40fd7a0  
    6969  { "cc",          required_argument,      NULL,           'C' },
    7070  { "exec-prefix", required_argument,      NULL,           'E' },
    71   { "march",       required_argument,      NULL,           'a' },
    72   { "mcpu",        required_argument,      NULL,           'c' },
     71  { "cflags",      required_argument,      NULL,           'c' },
    7372  { "rap-strip",   no_argument,            NULL,           'S' },
    7473  { "rpath",       required_argument,      NULL,           'R' },
     
    113112            << " -C file   : execute file as the target C compiler (also --cc)" << std::endl
    114113            << " -E prefix : the RTEMS tool prefix (also --exec-prefix)" << std::endl
    115             << " -a march  : machine architecture (also --march)" << std::endl
    116             << " -c cpu    : machine architecture's CPU (also --mcpu)" << std::endl
     114            << " -c cflags : C compiler flags (also --cflags)" << std::endl
    117115            << " -S        : do not include file details (also --rap-strip)" << std::endl
    118116            << " -R        : include file paths (also --rpath)" << std::endl
     
    174172    rld::files::cache    base;
    175173    rld::files::cache    cachera;
    176     rld::files::paths    libpaths;
    177     rld::files::paths    libs;
    178     rld::files::paths    objects;
    179     rld::files::paths    libraries;
     174    rld::path::paths     libpaths;
     175    rld::path::paths     libs;
     176    rld::path::paths     objects;
     177    rld::path::paths     libraries;
    180178    rld::symbols::bucket defines;
    181179    rld::symbols::bucket undefines;
     
    200198    while (true)
    201199    {
    202       int opt = ::getopt_long (argc, argv, "hvwVMnsSb:E:o:O:L:l:a:c:e:d:u:C:W:R:P:", rld_opts, NULL);
     200      int opt = ::getopt_long (argc, argv, "hvwVMnsSb:E:o:O:L:l:c:e:d:u:C:W:R:P:", rld_opts, NULL);
    203201      if (opt < 0)
    204202        break;
     
    275273          break;
    276274
    277         case 'a':
    278           rld::cc::march = optarg;
    279           break;
    280 
    281275        case 'c':
    282           rld::cc::mcpu = optarg;
     276          rld::cc::cflags = optarg;
    283277          break;
    284278
     
    476470          if (!outra.empty ())
    477471          {
    478             rld::files::paths ra_libs;
     472            rld::path::paths ra_libs;
    479473            bool ra_exist = false;
    480474
  • linkers/rtems-ra.cpp

    re5165d2 r40fd7a0  
    100100            << " -C file   : execute file as the target C compiler (also --cc)" << std::endl
    101101            << " -E prefix : the RTEMS tool prefix (also --exec-prefix)" << std::endl
    102             << " -a march  : machine architecture (also --march)" << std::endl
    103             << " -c cpu    : machine architecture's CPU (also --mcpu)" << std::endl
     102            << " -c cflags : C compiler flags (also --cflags)" << std::endl
    104103            << " -S        : do not include file details (also --rap-strip)" << std::endl
    105104            << " -R        : include file paths (also --rpath)" << std::endl
     
    156155  try
    157156  {
    158     rld::files::paths       libpaths;
    159     rld::files::paths       libs;
    160     rld::files::paths       libraries;
    161     rld::files::paths       outra;
    162     rld::files::paths       raps_add;
    163     rld::files::paths       raps_replace;
    164     rld::files::paths       raps_delete;
     157    rld::path::paths        libpaths;
     158    rld::path::paths        libs;
     159    rld::path::paths        libraries;
     160    rld::path::paths        outra;
     161    rld::path::paths        raps_add;
     162    rld::path::paths        raps_replace;
     163    rld::path::paths        raps_delete;
    165164    std::string             cc_name;
    166165    std::string             entry;
     
    253252          break;
    254253
    255         case 'a':
    256           rld::cc::march = optarg;
    257           break;
    258 
    259254        case 'c':
    260           rld::cc::mcpu = optarg;
     255          rld::cc::cflags = optarg;
    261256          break;
    262257
     
    326321      * Convert ar file to ra file
    327322      */
    328       for (rld::files::paths::iterator p = libraries.begin (); p != libraries.end (); ++p)
     323      for (rld::path::paths::iterator p = libraries.begin (); p != libraries.end (); ++p)
    329324      {
    330         rld::files::paths    library;
    331         rld::symbols::table  symbols;
    332         rld::files::cache*   cache = new rld::files::cache ();
     325        rld::path::paths    library;
     326        rld::symbols::table symbols;
     327        rld::files::cache*  cache = new rld::files::cache ();
    333328
    334329        library.clear ();
     
    351346
    352347          rld::files::objects& objs = cache->get_objects ();
    353           rld::files::paths    raobjects;
     348          rld::path::paths     raobjects;
    354349
    355350          int pos = -1;
     
    385380
    386381          dependents.clear ();
    387           for (rld::files::paths::iterator ni = raobjects.begin (); ni != raobjects.end (); ++ni)
     382          for (rld::path::paths::iterator ni = raobjects.begin (); ni != raobjects.end (); ++ni)
    388383          {
    389384            rld::files::object* obj = new rld::files::object (*ni);
     
    391386          }
    392387
    393           bool ra_rap = true;
    394           bool ra_exist = false;
     388          bool              ra_rap = true;
     389          bool              ra_exist = false;
    395390          rld::files::cache cachera;
    396           std::string raname = *p;
     391          std::string       raname = *p;
    397392
    398393          pos = -1;
     
    441436      * Add, replace, delete files from the ra file.
    442437      */
    443       for (rld::files::paths::iterator pl = libs.begin (); pl != libs.end (); ++pl)
     438      for (rld::path::paths::iterator pl = libs.begin (); pl != libs.end (); ++pl)
    444439      {
    445         rld::files::paths    library;
    446         rld::files::cache*   cache = new rld::files::cache ();
     440        rld::path::paths   library;
     441        rld::files::cache* cache = new rld::files::cache ();
    447442
    448443        library.clear ();
     
    460455
    461456        rld::files::objects& objs = cache->get_objects ();
    462         rld::files::paths    raobjects;
     457        rld::path::paths     raobjects;
    463458
    464459        std::string rap_name;
    465         bool rap_delete = false;
     460        bool        rap_delete = false;
    466461
    467462        dependents.clear ();
     
    478473          rap_delete = false;
    479474
    480           for (rld::files::paths::iterator pa = raps_delete.begin ();
     475          for (rld::path::paths::iterator pa = raps_delete.begin ();
    481476               pa != raps_delete.end ();
    482477               ++pa)
     
    496491         * Add rap files into ra file, add supports replace.
    497492         */
    498         bool rap_exist = false;
    499         rld::files::paths rap_objects;
    500         for (rld::files::paths::iterator pa = raps_add.begin ();
     493        rld::path::paths rap_objects;
     494        bool             rap_exist = false;
     495
     496        for (rld::path::paths::iterator pa = raps_add.begin ();
    501497             pa != raps_add.end ();
    502498             ++pa)
     
    521517        }
    522518
    523         for (rld::files::paths::iterator pa = rap_objects.begin ();
     519        for (rld::path::paths::iterator pa = rap_objects.begin ();
    524520             pa != rap_objects.end ();
    525521             ++pa)
     
    537533         * Replace rap files in ra file
    538534         */
    539         bool rap_replace = false;
    540535        rld::files::cache cachera;
     536        bool              rap_replace = false;
    541537
    542538        rap_objects.clear ();
    543539        cachera.open ();
    544540
    545         for (rld::files::paths::iterator pa = raps_replace.begin ();
     541        for (rld::path::paths::iterator pa = raps_replace.begin ();
    546542             pa != raps_replace.end ();
    547543             ++pa)
     
    567563        }
    568564
    569         for (rld::files::paths::iterator pa = rap_objects.begin ();
     565        for (rld::path::paths::iterator pa = rap_objects.begin ();
    570566             pa != rap_objects.end ();
    571567             ++pa)
  • linkers/rtems-rapper.cpp

    re5165d2 r40fd7a0  
    639639  {
    640640    std::string name = image.name ().full ();
    641     std::string extension = rld::files::extension (image.name ().full ());
     641    std::string extension = rld::path::extension (image.name ().full ());
    642642
    643643    name = name.substr (0, name.size () - extension.size ()) + ".xrap";
     
    704704
    705705void
    706 rap_show (rld::files::paths& raps,
    707           bool               warnings,
    708           bool               show_header,
    709           bool               show_machine,
    710           bool               show_layout,
    711           bool               show_strings,
    712           bool               show_symbols,
    713           bool               show_relocs,
    714           bool               show_details)
     706rap_show (rld::path::paths& raps,
     707          bool              warnings,
     708          bool              show_header,
     709          bool              show_machine,
     710          bool              show_layout,
     711          bool              show_strings,
     712          bool              show_symbols,
     713          bool              show_relocs,
     714          bool              show_details)
    715715{
    716   for (rld::files::paths::iterator pi = raps.begin();
     716  for (rld::path::paths::iterator pi = raps.begin();
    717717       pi != raps.end();
    718718       ++pi)
     
    961961
    962962void
    963 rap_overlay (rld::files::paths& raps, bool warnings)
     963rap_overlay (rld::path::paths& raps, bool warnings)
    964964{
    965965  std::cout << "Overlay .... " << std::endl;
    966   for (rld::files::paths::iterator pi = raps.begin();
     966  for (rld::path::paths::iterator pi = raps.begin();
    967967       pi != raps.end();
    968968       ++pi)
     
    10511051
    10521052void
    1053 rap_expander (rld::files::paths& raps, bool warnings)
     1053rap_expander (rld::path::paths& raps, bool warnings)
    10541054{
    10551055  std::cout << "Expanding .... " << std::endl;
    1056   for (rld::files::paths::iterator pi = raps.begin();
     1056  for (rld::path::paths::iterator pi = raps.begin();
    10571057       pi != raps.end();
    10581058       ++pi)
     
    11501150  try
    11511151  {
    1152     rld::files::paths raps;
    1153     bool              warnings = true;
    1154     bool              show = false;
    1155     bool              show_header = false;
    1156     bool              show_machine = false;
    1157     bool              show_layout = false;
    1158     bool              show_strings = false;
    1159     bool              show_symbols = false;
    1160     bool              show_relocs = false;
    1161     bool              show_details = false;
    1162     bool              overlay = false;
    1163     bool              expand = false;
     1152    rld::path::paths raps;
     1153    bool             warnings = true;
     1154    bool             show = false;
     1155    bool             show_header = false;
     1156    bool             show_machine = false;
     1157    bool             show_layout = false;
     1158    bool             show_strings = false;
     1159    bool             show_symbols = false;
     1160    bool             show_relocs = false;
     1161    bool             show_details = false;
     1162    bool             overlay = false;
     1163    bool             expand = false;
    11641164
    11651165    while (true)
  • linkers/rtems-syms.cpp

    re5165d2 r40fd7a0  
    8383            << " -C file   : execute file as the target C compiler (also --cc)" << std::endl
    8484            << " -E prefix : the RTEMS tool prefix (also --exec-prefix)" << std::endl
    85             << " -a march  : machine architecture (also --march)" << std::endl
    86             << " -c cpu    : machine architecture's CPU (also --mcpu)" << std::endl;
     85            << " -c cflags : C compiler flags (also --cflags)" << std::endl;
    8786  ::exit (exit_code);
    8887}
     
    132131  {
    133132    rld::files::cache   cache;
    134     rld::files::paths   libpaths;
    135     rld::files::paths   libs;
    136     rld::files::paths   objects;
    137     rld::files::paths   libraries;
     133    rld::path::paths    libpaths;
     134    rld::path::paths    libs;
     135    rld::path::paths    objects;
     136    rld::path::paths    libraries;
    138137    rld::symbols::table symbols;
    139138    std::string         base_name;
     
    149148    while (true)
    150149    {
    151       int opt = ::getopt_long (argc, argv, "hvwVSE:L:l:a:c:C:", rld_opts, NULL);
     150      int opt = ::getopt_long (argc, argv, "hvwVSE:L:l:c:C:", rld_opts, NULL);
    152151      if (opt < 0)
    153152        break;
     
    200199          break;
    201200
    202         case 'a':
    203           rld::cc::march = optarg;
    204           break;
    205 
    206201        case 'c':
    207           rld::cc::mcpu = optarg;
     202          rld::cc::cflags = optarg;
    208203          break;
    209204
  • linkers/rtems-tld.cpp

    re5165d2 r40fd7a0  
    756756            << " -k        : keep temporary files (also --keep)" << std::endl
    757757            << " -E prefix : the RTEMS tool prefix (also --exec-prefix)" << std::endl
    758             << " -a march  : machine architecture (also --march)" << std::endl
    759             << " -c cpu    : machine architecture's CPU (also --mcpu)" << std::endl
     758            << " -c cflags : C compiler flags (also --cflags)" << std::endl
    760759            << " -C ini    : user configuration INI file (also --config)" << std::endl;
    761760  ::exit (exit_code);
     
    816815    while (true)
    817816    {
    818       int opt = ::getopt_long (argc, argv, "hvwkVE:a:c:C:", rld_opts, NULL);
     817      int opt = ::getopt_long (argc, argv, "hvwkVE:c:C:", rld_opts, NULL);
    819818      if (opt < 0)
    820819        break;
     
    847846          break;
    848847
    849         case 'a':
    850           rld::cc::march = optarg;
    851           break;
    852 
    853848        case 'c':
    854           rld::cc::mcpu = optarg;
     849          rld::cc::cflags = optarg;
    855850          break;
    856851
  • linkers/wscript

    re5165d2 r40fd7a0  
    101101                  'rld-compression.cpp',
    102102                  'rld-outputter.cpp',
     103                  'rld-path.cpp',
    103104                  'rld-process.cpp',
    104105                  'rld-resolver.cpp',
Note: See TracChangeset for help on using the changeset viewer.