diff options
author | Paul Pluzhnikov <ppluzhnikov@google.com> | 2013-11-18 15:11:55 -0800 |
---|---|---|
committer | Paul Pluzhnikov <ppluzhnikov@google.com> | 2013-11-18 15:11:55 -0800 |
commit | 5c3499508eca3929635ddce90749bfc8ca7d0763 (patch) | |
tree | 2efd7d960dc7dcedcd1245a861475b8bf95c65fb | |
parent | 038b56f3dac74dcd8988e00092a21315a6b66c41 (diff) | |
download | glibc-5c3499508eca3929635ddce90749bfc8ca7d0763.tar.gz glibc-5c3499508eca3929635ddce90749bfc8ca7d0763.tar.xz glibc-5c3499508eca3929635ddce90749bfc8ca7d0763.zip |
Adjust AT_EXECFN when using explicit loader invocation.
2013-11-18 Paul Pluzhnikov <ppluzhnikov@google.com> * elf/Makefile (tst-auxv): New test. * elf/tst-auxv.c: New * elf/rtld.c (dl_main): Adjust AT_EXECFN
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | elf/Makefile | 3 | ||||
-rw-r--r-- | elf/rtld.c | 3 |
3 files changed, 11 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog index a37896c23c..4042e3b017 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2013-11-18 Paul Pluzhnikov <ppluzhnikov@google.com> + + * elf/Makefile (tst-auxv): New test. + * elf/tst-auxv.c: New + * elf/rtld.c (dl_main): Adjust AT_EXECFN + 2013-11-18 Joseph Myers <joseph@codesourcery.com> * include/libc-symbols.h (__hidden_proto): Add argument "thread". diff --git a/elf/Makefile b/elf/Makefile index 27d249b2ff..c6626e14bf 100644 --- a/elf/Makefile +++ b/elf/Makefile @@ -119,7 +119,8 @@ $(inst_auditdir)/sotruss-lib.so: $(objpfx)sotruss-lib.so $(+force) endif tests = tst-tls1 tst-tls2 tst-tls9 tst-leaks1 \ - tst-array1 tst-array2 tst-array3 tst-array4 tst-array5 + tst-array1 tst-array2 tst-array3 tst-array4 tst-array5 \ + tst-auxv tests-static = tst-tls1-static tst-tls2-static tst-stackguard1-static \ tst-leaks1-static tst-array1-static tst-array5-static \ tst-ptrguard1-static diff --git a/elf/rtld.c b/elf/rtld.c index c5a6538628..3d207a3fa0 100644 --- a/elf/rtld.c +++ b/elf/rtld.c @@ -1118,6 +1118,9 @@ of this helper program; chances are you did not intend to run this program.\n\ case AT_ENTRY: av->a_un.a_val = *user_entry; break; + case AT_EXECFN: + av->a_un.a_val = (uintptr_t) _dl_argv[0]; + break; } #endif } |