summaryrefslogtreecommitdiff
path: root/rld-rap.cpp
diff options
context:
space:
mode:
authorPeng Fan <van.freenix@gmail.com>2013-08-04 22:35:42 +0800
committerPeng Fan <van.freenix@gmail.com>2013-08-04 22:35:42 +0800
commit7f982b32bd276d08c5273353073cc6958aaaecac (patch)
tree9cf9103f590d0466d1ca81e072f5dfa6087f832b /rld-rap.cpp
parent370435add497e97985d184b282a0b60413c3f9ca (diff)
Add rpath support
Diffstat (limited to 'rld-rap.cpp')
-rw-r--r--rld-rap.cpp19
1 files changed, 19 insertions, 0 deletions
diff --git a/rld-rap.cpp b/rld-rap.cpp
index 99bc4a3..f54f7f3 100644
--- a/rld-rap.cpp
+++ b/rld-rap.cpp
@@ -48,6 +48,11 @@ namespace rld
bool add_obj_details = true;
/**
+ * Store the path of object files.
+ */
+ std::string rpath;
+
+ /**
* The names of the RAP sections.
*/
static const char* section_names[rap_secs] =
@@ -1440,6 +1445,7 @@ namespace rld
section_details s_details;
+
if (rld::verbose () >= RLD_VERBOSE_TRACE)
{
std::cout << "rap:file details" << std::endl
@@ -1448,6 +1454,19 @@ namespace rld
comp << (uint32_t)(objs.size ());
+ /* rpath for rap file */
+ if (rld::verbose () >= RLD_VERBOSE_TRACE)
+ {
+ std::cout << "rap:file rpath=" << rld::rap::rpath << std::endl;
+ }
+
+ comp << (uint32_t)rld::rap::rpath.length ();
+
+ if (rld::rap::rpath.length () > 0)
+ {
+ strtable += rld::rap::rpath;
+ }
+
for (objects::iterator oi = objs.begin ();
oi != objs.end ();
++oi)