openwrtv4/scripts
Jo-Philipp Wich 72d751cba9 build: rework library bundling
Rework the bundle-libraries.sh implementation to use a more robust approach
for executing host binaries through the shipped ELF loader and libraries.

The previous approach relied on symlinks pointing to a wrapper script which
caused various issues, especially with multicall binaries as the original
argv[0] name was not preserved through the ld.so invocation. Another down-
side was the fact that the actual binaries got moved into another directory
which caused executables to fail looking up resources with paths relative
to the executable location.

The new library wrapper implements the following improvements:

 - Instead of symlinks pointing to a common wrapper, each ELF executable
   is now replaced by a unqiue shell script which retains the original
   program name getting called

 - Instead of letting ld.so invoke the ELF executable directly, launch
   the final ELF binary through a helper program which fixes up the argv[0]
   argument for the target program

 - Support sharing a common location for the bundled libraries instead of
   having one copy in each directory containing wrapped binaries

Finally modify the SDK build to wrap the staging_dir and toolchain binaries
which allows to use the SDK on systems with a different glibc version.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2017-01-10 12:27:28 +01:00
..
config scripts/config: properly handle select on symbols with unmet direct dependencies 2016-08-03 20:03:36 +02:00
flashing scripts: fix wrong usage of '==' operator 2014-10-14 12:21:11 +00:00
arm-magic.sh scripts/arm-magic.sh: make the generated kernels also include $IMG_PREFIX 2015-05-28 10:48:23 +00:00
brcmImage.pl scripts: avoid hard-coded paths in scripts 2016-04-28 16:43:28 +02:00
bundle-libraries.sh build: rework library bundling 2017-01-10 12:27:28 +01:00
checkpatch.pl docs: remove all refrences in Makefiles/scripts 2016-11-30 10:13:14 +01:00
clang-gcc-wrapper build: fix build on Mac OS X 10.9 2013-10-28 15:15:09 +00:00
clean-package.sh build: clean up stale files from a previous build when installing a package build to the staging dir 2013-05-29 10:31:45 +00:00
cleanfile scripts/{cleanfile,cleanpatch}: Add scripts for cleaning up file and patch whitespaces 2013-08-31 11:16:44 +00:00
cleanpatch scripts/{cleanfile,cleanpatch}: Add scripts for cleaning up file and patch whitespaces 2013-08-31 11:16:44 +00: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 build: use mkhash to replace various quirky md5sum/openssl calls 2017-01-05 11:09:12 +01:00
config.guess update config.guess & config.sub 2015-11-02 18:12:45 +00:00
config.rpath add config.rpath and link it in autotools.mk if missing, some packages might need it, especially users of lib-link.m4 or iconv.m4 2011-02-27 15:39:27 +00:00
config.sub update config.guess & config.sub 2015-11-02 18:12:45 +00:00
deptest.sh scripts: avoid hard-coded paths in scripts 2016-04-28 16:43:28 +02:00
diffconfig.sh scripts/diffconfig.sh: fix output if TARGET_PER_DEVICE_ROOTFS is set 2016-10-06 22:00:10 +02:00
dl_cleanup.py dl_cleanup: Fix linux blacklist 2015-10-07 10:51:18 +00:00
download.pl build: use mkhash to replace various quirky md5sum/openssl calls 2017-01-05 11:09:12 +01:00
env env: allow passing a commit message on save 2015-05-01 17:23:15 +00:00
ext-toolchain.sh treewide: replace jow@openwrt.org with jo@mein.io 2016-06-07 11:42:52 +02:00
feeds scripts/feeds: use git rev-parse for getting revision 2016-11-08 11:17:11 +01:00
fixup-makefile.pl build: add FIXUP option for make check 2016-12-17 10:36:45 +01:00
gen-dependencies.sh scripts: avoid outputting empty lines in gen-dependencies.sh 2015-01-29 22:05:31 +00:00
get_source_date_epoch.sh branding: add LEDE branding 2016-03-24 22:40:13 +01:00
getver.sh scripts: getver.sh: append Git short hash to revision 2016-12-02 16:38:55 +01:00
ipkg-build scripts: ipkg-build: do not require git or svn 2016-08-15 13:33:32 +02:00
ipkg-make-index.sh build: use mkhash to replace various quirky md5sum/openssl calls 2017-01-05 11:09:12 +01:00
kconfig.pl treewide: replace nbd@openwrt.org with nbd@nbd.name 2016-06-07 08:58:42 +02:00
make-ipkg-dir.sh branding: add LEDE branding 2016-03-24 22:40:13 +01:00
md5sum improve support for building on mac os x by improving detection of missing components 2009-01-25 19:00:43 +00:00
metadata.pm scripts/package-metadata.pl: fix kmod pakage dependencies within the SDK 2016-07-07 12:47:04 +02:00
mkhash.c build: add a small standalone utility for calculating md5/sha256 hash 2017-01-05 11:09:12 +01:00
mkits.sh scripts: avoid hard-coded paths in scripts 2016-04-28 16:43:28 +02:00
om-fwupgradecfg-gen.sh build: use mkhash to replace various quirky md5sum/openssl calls 2017-01-05 11:09:12 +01:00
openbsd.sh branding: add LEDE branding 2016-03-24 22:40:13 +01:00
package-metadata.pl scripts/package-metadata.pl: honour DEFAULT_VARIANT 2016-11-02 02:02:44 +01:00
pad_image scripts: avoid hard-coded paths in scripts 2016-04-28 16:43:28 +02:00
patch-kernel.sh scripts/patch-kernel.sh: remove -E flag to preserve empty files touched by patches 2015-08-25 07:46:32 +00:00
patch-specs.sh patch-specs.sh: gcc 3.4.6 has an additional "(OpenWrt-2.0)" after the version tag, cope with that 2012-01-29 20:19:06 +00:00
portable_date.sh scripts: fix GNU data invocation 2016-02-01 10:43:27 +00:00
redboot-script.pl scripts: avoid hard-coded paths in scripts 2016-04-28 16:43:28 +02:00
relink-lib.sh base-files: relink uclibc and libgcc libraries to remove leftovers of the statically linked initial libgcc saves a few kb and gets rid of unused not exported functions as well should also improve the reliability of mklibs 2011-03-01 05:40:38 +00:00
remote-gdb scripts: fix remote-gdb with CONFIG_BUILD_SUFFIX 2016-08-01 22:02:49 +02:00
rstrip.sh scripts: extend rstrip.sh to remove bad rpaths 2015-02-10 15:48:48 +00:00
slugimage.pl use #!/usr/bin/env perl instead of #!/usr/bin/perl in openwrt scripts (fixes #2998) 2008-09-23 18:29:44 +00:00
srecimage.pl treewide: replace jow@openwrt.org with jo@mein.io 2016-06-07 11:42:52 +02:00
strip-kmod.sh scripts/strip-kmod.sh: remove a few extra sections to slightly reduce kernel module size 2016-02-01 13:33:33 +00:00
symlink-tree.sh docs: remove all refrences in Makefiles/scripts 2016-11-30 10:13:14 +01:00
sysupgrade-tar.sh build: rename sysupgrade-nand to sysupgrade-tar 2016-07-29 16:53:03 +02:00
target-metadata.pl scripts: case insensitive sort device names 2016-10-15 11:36:51 +02:00
timestamp.pl fix timestamp checks for build system paths which have '.svn' in their directory name 2010-04-14 22:21:15 +00:00
ubinize-image.sh scripts/ubinize-image.sh: add support for adding custom partitions 2016-08-31 13:05:19 +02:00