aboutsummaryrefslogtreecommitdiff
path: root/tccelf.c
diff options
context:
space:
mode:
authorgrischka <grischka>2009-12-19 22:08:15 +0100
committergrischka <grischka>2009-12-19 22:16:20 +0100
commite81569bc70697d4380e7456e7938dec29c91af73 (patch)
treeb5bbdff565851065ed68deac7d762347f61b0f25 /tccelf.c
parentdd3d4f7295f0729f36acf9be0d6027d1838b9a9b (diff)
downloadtinycc-e81569bc70697d4380e7456e7938dec29c91af73.tar.gz
tinycc-e81569bc70697d4380e7456e7938dec29c91af73.tar.bz2
tcc: add "-Wl,-rpath=path" option (library search path)
Diffstat (limited to 'tccelf.c')
-rw-r--r--tccelf.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/tccelf.c b/tccelf.c
index dc0c948..7b891cf 100644
--- a/tccelf.c
+++ b/tccelf.c
@@ -1563,6 +1563,10 @@ int elf_output_file(TCCState *s1, const char *filename)
if (dllref->level == 0)
put_dt(dynamic, DT_NEEDED, put_elf_str(dynstr, dllref->name));
}
+
+ if (s1->rpath)
+ put_dt(dynamic, DT_RPATH, put_elf_str(dynstr, s1->rpath));
+
/* XXX: currently, since we do not handle PIC code, we
must relocate the readonly segments */
if (file_type == TCC_OUTPUT_DLL) {
@@ -1570,7 +1574,6 @@ int elf_output_file(TCCState *s1, const char *filename)
put_dt(dynamic, DT_SONAME, put_elf_str(dynstr, s1->soname));
put_dt(dynamic, DT_TEXTREL, 0);
}
-
/* add necessary space for other entries */
saved_dynamic_data_offset = dynamic->data_offset;
dynamic->data_offset += sizeof(ElfW(Dyn)) * EXTRA_RELITEMS;