openwrt-Ansuel/scripts
Jo-Philipp Wich ef1cafa736 build: fix invocation of bundled ld.so in SDK and Imagebuilder
Commit 72d751cba9 "build: rework library bundling" introduced a new helper
binary "runas" whose sole purpose was mangling the argv vector passed to
the actual called ELF image so that the renamed executable could obtain the
proper name from argv[0].

This approach, however totally defeated the purpose of calling bundled ELF
executables through the shipped ld.so loader since the execv() invocation
performed by "runas" would cause the kernel the interprete the final program
image through the system ELF loader again.

To solve the problem, use an alternative approach of shipping a shared object
"runas.so" which uses an ELF ".init_array" function pointer to obtain the
argv[] vector of the to-be-executed main() function and mangle it in-place.

The actual argv[0] value to use is communicated out-of-band using an
environment variable "RUNAS_ARG0" by the shell wrapper script. The wrapper
script also takes care of setting LD_PRELOAD to instruct the shipped ELF
loader to preload the actual ELF program image with the "runas.so" helper
library.

Fixes FS#909.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2017-07-21 08:09:45 +02:00
..
config
flashing build: remove absolute path to perl and replace with /usr/bin/env perl 2017-05-02 14:33:58 +02:00
arm-magic.sh
brcmImage.pl
bundle-libraries.sh build: fix invocation of bundled ld.so in SDK and Imagebuilder 2017-07-21 08:09:45 +02:00
checkpatch.pl build: remove absolute path to perl and replace with /usr/bin/env perl 2017-05-02 14:33:58 +02:00
clang-gcc-wrapper
clean-package.sh
cleanfile build: remove absolute path to perl and replace with /usr/bin/env perl 2017-05-02 14:33:58 +02:00
cleanpatch build: remove absolute path to perl and replace with /usr/bin/env perl 2017-05-02 14:33:58 +02:00
combined-ext-image.sh build: use mkhash to replace various quirky md5sum/openssl calls 2017-01-05 11:09:12 +01:00
combined-image.sh scripts: make all scripts executable 2017-07-14 04:09:16 +02:00
config.guess
config.rpath
config.sub
deptest.sh
diffconfig.sh
dl_cleanup.py
download.pl scripts/download.pl: print the command used to download files 2017-05-25 19:01:07 +02:00
env
ext-toolchain.sh scripts: Probe external toolchains for libthread-db 2017-05-11 13:43:01 -07:00
feeds scripts/feeds: Reuse TOPDIR if defined in environment 2017-02-21 13:03:20 +01:00
fixup-makefile.pl build: add FIXUP option for make check 2016-12-17 10:36:45 +01:00
gen_image_generic.sh scripts/gen_image_generic.sh: drop NOGRUB variable 2017-07-14 04:09:16 +02:00
gen-dependencies.sh gen-dependencies.sh: fix handling variations in "file" output 2017-02-19 16:56:18 +01:00
get_source_date_epoch.sh scripts: get_source_date_epoch.sh: fix mercurial support, add mtime fallback 2017-02-02 00:13:50 +01:00
getver.sh scripts/getver.sh: append short git hash based on upstream commit 2017-02-01 17:48:45 +01:00
ipkg-build
ipkg-make-index.sh build: use mkhash to replace various quirky md5sum/openssl calls 2017-01-05 11:09:12 +01:00
kconfig.pl
make-ipkg-dir.sh
md5sum
metadata.pm scripts/package-metadata.pl: parse and validate field Require-User 2017-06-18 10:39:35 +08:00
mkhash.c build: add a small standalone utility for calculating md5/sha256 hash 2017-01-05 11:09:12 +01:00
mkits.sh
om-fwupgradecfg-gen.sh scripts: make all scripts executable 2017-07-14 04:09:16 +02:00
package-metadata.pl scripts/package-metadata.pl: parse and validate field Require-User 2017-06-18 10:39:35 +08:00
pad_image
patch-kernel.sh
patch-specs.sh
portable_date.sh
qemustart scripts/qemustart: initial version 2017-04-23 09:19:34 +08:00
redboot-script.pl
relink-lib.sh
remote-gdb build: remove libc version suffix from build/staging directories 2017-02-07 17:18:15 +01:00
rstrip.sh rstrip.sh: fix handling variations in "file" output 2017-02-19 16:56:17 +01:00
slugimage.pl
srecimage.pl
strip-kmod.sh
symlink-tree.sh docs: remove all refrences in Makefiles/scripts 2016-11-30 10:13:14 +01:00
sysupgrade-tar.sh
target-metadata.pl scripts: only generate config from feature flag if fully match 2017-03-20 22:04:41 +01:00
timestamp.pl
ubinize-image.sh