Changeset 53ed116 in rtems-tools


Ignore:
Timestamp:
Aug 30, 2013, 1:42:58 PM (6 years ago)
Author:
Peng Fan <van.freenix@…>
Branches:
4.10, 4.11, master
Children:
427acf3
Parents:
64309e0
Message:

Implement a new tool 'rtems-ra'

rtems-ra supports converting an elf archive file into a rap archive file.
It also support add, replace and delete rap files from the rap archive
file.

Location:
linkers
Files:
1 added
4 edited

Legend:

Unmodified
Added
Removed
  • linkers/rld-outputter.cpp

    r64309e0 r53ed116  
    195195               const files::object_list& dependents,
    196196               files::cache&             cache,
    197                bool                      ra_exist)
     197               bool                      ra_exist,
     198               bool                      ra_rap)
    198199    {
    199200      files::object_list dep_copy (dependents);
     
    211212        files::object& object = *(*oli);
    212213
    213         if (object.get_archive ())
    214         {
     214        if (ra_rap)
    215215          objects.push_back (&object);
     216        else
     217        {
     218          if (object.get_archive ())
     219            objects.push_back (&object);
    216220        }
    217221      }
     
    232236         * in collected object files, if exist.
    233237         */
    234         for (oli = objects.begin (); oli != objects.end (); ++oli)
    235         {
    236           files::object& object = *(*oli);
    237           if (obj->name ().oname () == object.name ().oname ())
    238           {
    239             exist = true;
    240             break;
    241           }
    242         }
     238        if (!ra_rap)
     239        {
     240          for (oli = objects.begin (); oli != objects.end (); ++oli)
     241          {
     242            files::object& object = *(*oli);
     243            if (obj->name ().oname () == object.name ().oname ())
     244            {
     245              exist = true;
     246              break;
     247            }
     248          }
     249        }
     250
    243251        if (!exist)
    244252          objects_tmp.push_back (obj);
  • linkers/rld-outputter.h

    r64309e0 r53ed116  
    6666                    const files::object_list& dependents,
    6767                    files::cache&             cache,
    68                     bool                      ra_exist);
     68                    bool                      ra_exist,
     69                    bool                      ra_rap);
    6970
    7071    /**
  • linkers/rtems-ld.cpp

    r64309e0 r53ed116  
    491491
    492492            rld::outputter::archivera (outra, dependents, cachera,
    493                                        !ra_exist);
     493                                       !ra_exist, false);
    494494          }
    495495        }
  • linkers/wscript

    r64309e0 r53ed116  
    120120    bld.program(target = 'rtems-ld',
    121121                source = ['rtems-ld.cpp',
     122                          'pkgconfig.cpp'] + rld_source,
     123                defines = ['HAVE_CONFIG_H=1', 'RTEMS_VERSION=' + bld.env.RTEMS_VERSION],
     124                includes = ['.'] + bld.includes,
     125                cflags = bld.cflags + bld.warningflags,
     126                cxxflags = bld.cxxflags + bld.warningflags,
     127                linkflags = bld.linkflags,
     128                use = modules)
     129
     130    #
     131    # Build the ra linker.
     132    #
     133    bld.program(target = 'rtems-ra',
     134                source = ['rtems-ra.cpp',
    122135                          'pkgconfig.cpp'] + rld_source,
    123136                defines = ['HAVE_CONFIG_H=1', 'RTEMS_VERSION=' + bld.env.RTEMS_VERSION],
Note: See TracChangeset for help on using the changeset viewer.