summaryrefslogtreecommitdiff
path: root/src/cmd/5l
diff options
context:
space:
mode:
Diffstat (limited to 'src/cmd/5l')
-rw-r--r--src/cmd/5l/asm.c2
-rw-r--r--src/cmd/5l/doc.go2
-rw-r--r--src/cmd/5l/l.h1
-rw-r--r--src/cmd/5l/obj.c5
4 files changed, 9 insertions, 1 deletions
diff --git a/src/cmd/5l/asm.c b/src/cmd/5l/asm.c
index 143a4076d..2a9265a88 100644
--- a/src/cmd/5l/asm.c
+++ b/src/cmd/5l/asm.c
@@ -322,6 +322,8 @@ doelf(void)
elfwritedynentsym(s, DT_REL, lookup(".rel", 0));
elfwritedynentsymsize(s, DT_RELSZ, lookup(".rel", 0));
elfwritedynent(s, DT_RELENT, ELF32RELSIZE);
+ if(rpath)
+ elfwritedynent(s, DT_RUNPATH, addstring(dynstr, rpath));
elfwritedynent(s, DT_NULL, 0);
}
}
diff --git a/src/cmd/5l/doc.go b/src/cmd/5l/doc.go
index b724e7012..b09995d71 100644
--- a/src/cmd/5l/doc.go
+++ b/src/cmd/5l/doc.go
@@ -23,6 +23,8 @@ Options new in this version:
-L dir1,dir2,..
Search for libraries (package files) in the comma-separated list of directories.
The default is the single location $GOROOT/pkg/$GOOS_arm.
+-r dir1:dir2:...
+ Set the dynamic linker search path when using ELF.
-V
Print the linker version.
diff --git a/src/cmd/5l/l.h b/src/cmd/5l/l.h
index 9a54122a7..ac627e456 100644
--- a/src/cmd/5l/l.h
+++ b/src/cmd/5l/l.h
@@ -333,6 +333,7 @@ EXTERN Oprang thumboprange[ALAST];
EXTERN char* outfile;
EXTERN int32 pc;
EXTERN uchar repop[ALAST];
+EXTERN char* rpath;
EXTERN uint32 stroffset;
EXTERN int32 symsize;
EXTERN Prog* textp;
diff --git a/src/cmd/5l/obj.c b/src/cmd/5l/obj.c
index 9f7aa19c3..06a84eeac 100644
--- a/src/cmd/5l/obj.c
+++ b/src/cmd/5l/obj.c
@@ -81,7 +81,7 @@ linkername[] =
void
usage(void)
{
- fprint(2, "usage: 5l [-E entry] [-H head] [-L dir] [-T text] [-D data] [-R rnd] [-o out] main.5\n");
+ fprint(2, "usage: 5l [-E entry] [-H head] [-L dir] [-T text] [-D data] [-R rnd] [-r path] [-o out] main.5\n");
errorexit();
}
@@ -128,6 +128,9 @@ main(int argc, char *argv[])
case 'R':
INITRND = atolwhex(EARGF(usage()));
break;
+ case 'r':
+ rpath = EARGF(usage());
+ break;
case 'H':
HEADTYPE = atolwhex(EARGF(usage()));
/* do something about setting INITTEXT */