diff options
Diffstat (limited to 'src/cmd/5l')
-rw-r--r-- | src/cmd/5l/asm.c | 2 | ||||
-rw-r--r-- | src/cmd/5l/doc.go | 2 | ||||
-rw-r--r-- | src/cmd/5l/l.h | 1 | ||||
-rw-r--r-- | src/cmd/5l/obj.c | 5 |
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 */ |