Commit Graph

130 Commits

Author SHA1 Message Date
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
Mathias Kresin
59261cbf38 docs: remove all refrences in Makefiles/scripts
The SDK Makefile still trys to copy the docs folder which was removed
with 882f4d2d63. This causes an SDK build
error.

All other removals are just cleanup.

Signed-off-by: Mathias Kresin <dev@kresin.me>
2016-11-30 10:13:14 +01:00
Daniel Engberg
9f61ccd9e3 target/sdk: Switch to xz compression instead of bz2
Switch to xz compression instead of using bz2.
This makes a considerable difference in size, ar71xx SDK from 60M to 35M.

Signed-off-by: Daniel Engberg <daniel.engberg.lists@pyret.net>
2016-11-04 11:38:19 +01:00
Jo-Philipp Wich
8cc9224115 sdk: predefine SOURCE_DATE_EPOCH
When building packages within the SDK, there is no Git revision history
available so prepopulate SOURCE_DATE_EPOCH in version.mk, similar to
how we handle REVISION already.

Acked-by: Felix Fietkau <nbd@nbd.name>
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2016-10-21 12:43:45 +02:00
Daniel Dickinson
71370d2c55 target/{sdk,imagebuild}: Fix for symlink-tree
With symlink tree some directories are just symlinked which
means IB and SDK end up with a symlink instead of an actual
directory; this fixes the missing files by dereferencesing
the directories instead of copying the symlinks.

Signed-off-by: Daniel Dickinson <lede@cshore.thecshore.com>
2016-09-30 00:39:25 +02:00
Felix Fietkau
d4abe72cce target/sdk: update README.SDK to explain dependency handling
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2016-08-01 12:00:27 +02:00
Felix Fietkau
847cb10f47 target/sdk: ship toolchain and kernel module package
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2016-08-01 12:00:25 +02:00
Felix Fietkau
12703d5b29 sdk: provide a config symbol for detecting builds within the SDK
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2016-07-31 12:25:25 +02:00
Daniel Dickinson
3c6b091b65 sdk: Allow to configure signed pacakge lists
Add option to enable signing packages lists in SDK.

Signed-off-by: Daniel Dickinson <lede@daniel.thecshore.com>
2016-07-13 20:03:10 +02:00
Daniel Dickinson
9da1bf58b6 sdk: Fix keeping unset as unset
The configuration preservation mechanism fails to keep items was are unset
as unset.  For busybox this causes issues when building with custom
settings in the SDK.  Therefore preserve busybox unset settings.
In addition we preserve non-package selection unset settings because
they may be important for making sure we compile and identical
package for packages that are recompiled in the SDK.

Now that SDK not longer ships .config this becomes relevant for
any use of the SDK.

Signed-off-by: Daniel Dickinson <lede@daniel.thecshore.com>
2016-06-21 13:36:23 +02:00
Alexander Couzens
2e980479c1 IB/SDK/toolchain: use lower cases filenames
Signed-off-by: Alexander Couzens <lynxis@fe80.eu>
2016-06-01 17:54:36 +02:00
Alexander Couzens
4a7c653400 IB/SDK/toolchain: use VERSION_DIST_SANITIZED instead of VERSION_DIST
VERSION_DIST can contains spaces which produces problems when used as file name

Signed-off-by: Alexander Couzens <lynxis@fe80.eu>
2016-06-01 17:54:36 +02:00
Jo-Philipp Wich
4ed8e57fd9 sdk: remove redundant symbol declaration
Commit d79f8909c1 introduced CONFIG_ALL,
CONFIG_ALL_KMODS and CONFIG_ALL_NONSHARED as menuconfig choices to the SDK,
therefor we can drop the hardcoded CONFIG_ALL symbol declaration now.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2016-05-24 23:40:50 +02:00
Jo-Philipp Wich
9eeb267c06 sdk: stop shipping a .config
Now that the most important options are exposed via menuconfig in the SDK we
can stop shipping a (possibly outdated) copy of .config from the emitting
buildroot.

Leaving out .config has two positive side effects:

 - A simple "make" run without any prior config will launch menuconfig, forcing
   interactive users to make appropriate choices

 - Buildbot systems (e.g. our phase2 builder) can issue a "make defconfig" to
   obtain a .config enabling all packages by default

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2016-05-24 23:40:34 +02:00
Daniel Dickinson
d79f8909c1 sdk: Allow to change ALL* package settings in SDK
It is desirable to be able to use ./scripts/feeds install -a
when in the SDK without being forced to build a great number
of packages that are not actually wanted.

We therefore add the option of changing the various ALL package
build options so that we can default to packages not being built
unless we select them.

Signed-off-by: Daniel Dickinson <lede@daniel.thecshore.com>
2016-05-24 13:30:58 +02:00
Alexander Couzens
173ac3b7cb sdk: rename OpenWrt into LEDE
Signed-off-by: Alexander Couzens <lynxis@fe80.eu>
2016-05-05 19:10:20 +01:00
Jo-Philipp Wich
484cb91ad5 sdk: bundle required firmware files
Bundle all firmware files which have been built along with the kernel to fix
packaging of kmods in the SDK environment that rely on in-tree firmwares,
specifically kmod-e100.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2016-04-21 16:34:39 +02:00
Jo-Philipp Wich
f8ce7e028d sdk: do not exclude ccache executable
Change tar exclude pattern to skip ccache directory contents but not the
ccache executable itself.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2016-04-18 12:28:16 +02:00
Jo-Philipp Wich
0f6f518e7a sdk: fix generation of base feed url
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2016-04-17 21:50:31 +02:00
Jo-Philipp Wich
2224dbdb9d sdk: add base repository fallback
When the build system cannot infer its own repository url then let it fall
back to http://git.openwrt.org/ for the base feed.

The path to openwrt.git is guessed from the VERSION_NUMBER variable:

 "unknown" or "r12345" -> http://git.openwrt.org/openwrt.git
 "15.05.1"             -> http://git.openwrt.org/15.05/openwrt.git

Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>

SVN-Revision: 48212
2016-01-12 09:25:45 +00:00
Felix Fietkau
6318ff744d target/sdk: include modules.builtin, it is necessary for packaging kernel modules
Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 48206
2016-01-11 23:11:09 +00:00
Felix Fietkau
7dfbac8073 target/sdk: do not include the target staging dir anymore, it is unnecessary now
Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 48157
2016-01-08 23:18:18 +00:00
Felix Fietkau
4a7340d8c6 target/sdk: ship .ko files to allow rebuild of the base kmod-* packages
Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 48156
2016-01-08 23:18:14 +00:00
Felix Fietkau
def6be413c target/sdk: Fix filename with external toolchain
When building SDK with external toolchain, don't
include _gcc in the filename

Signed-off-by: Daniel Dickinson <openwrt@daniel.thecshore.com>

SVN-Revision: 48084
2016-01-03 14:45:18 +00:00
Felix Fietkau
d69efa4e15 targets: Use configured distribution name for SDK, IB, and Toolchain tarball names
We allow to configure the version distribution name;
let's also use it for the tarballs (SDK, ImageBuilder,
and SDK).

Signed-off-by: Daniel Dickinson <openwrt@daniel.thecshore.com>

SVN-Revision: 48081
2016-01-03 14:44:42 +00:00
Jo-Philipp Wich
81a35d669a sdk: provide explicit CONFIG_MODULES kconfig symbol
Extend the SDK Config.in file to explicitely declare a MODULES symbol with
the "option modules" flag set in order to prevent a kconfig segmentation fault
whenever a "depends m" dependency is encountered.

Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>

SVN-Revision: 46514
2015-07-27 23:45:15 +00:00
Felix Fietkau
d2e02d6377 sdk: filter out CONFIG_SIGNED_PACKAGES for generated config
Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 45581
2015-04-25 12:39:02 +00:00
Jo-Philipp Wich
49fda5e4d9 sdk: use prepare target to initialize git snapshot
The new approach is less prone to race conditions and will properly
snapshot the symlinks prepared by the prereq-build target.

Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>

SVN-Revision: 44330
2015-02-08 22:54:27 +00:00
Jo-Philipp Wich
f52a62d600 sdk: rename file to mention target/subtarget and move host system to suffix
Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>

SVN-Revision: 44312
2015-02-07 21:01:43 +00:00
Jo-Philipp Wich
4685e4f273 sdk: track files with git and use it to implement proper clean targets
Initialize a Git repository in the SDK and use git reset / git clean
to rollback any SDK changes with "make clean" or "make dirclean".

This approach is more robust than nuking entire directory trees because
some parts of them might have been shipped with the original archive.

Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>

SVN-Revision: 43904
2015-01-10 11:17:02 +00:00
Jo-Philipp Wich
15d8db1f8c build: add version number to filenames
This commit introduces a new option CONFIG_VERSION_FILENAMES which causes
OpenWrt to embed the version number in generated image files, SDK- and
ImageBuilder archives.

The option is enabled by default if CONFIG_VERSIONOPT is set.

Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>

SVN-Revision: 43869
2015-01-08 11:02:00 +00:00
Felix Fietkau
db9f9a6407 sdk: add missing kernel include files
Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 43621
2014-12-11 17:03:04 +00:00
Jo-Philipp Wich
cc97eaff10 sdk: improve feed setup
- Add current buildroot scm url as base feed to feeds.conf
 - Prefer feeds.conf over feeds.conf.default when generating the SDK feeds.conf.default

Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>

SVN-Revision: 42935
2014-10-16 16:28:12 +00:00
Jo-Philipp Wich
057e518224 sdk: predefine kernel version magic
Kernel modules which are built using the SDK do not have access
to the .vermagic file in the Linux build dir, therefore the
generated .ipk metadata depends on kernel versions like
'3.10.49-1-unknown' which are not satisfiable by the kernel
meta package in the image.

Fix this problem by substituting 'unknown' with the current
version magic in include/kernel.mk when packing the SDK.

Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>

SVN-Revision: 42590
2014-09-17 10:25:47 +00:00
Felix Fietkau
734f7609b9 sdk: keep $(STAGING_DIR)/usr/bin, at least curl needs it
Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 42397
2014-09-01 22:34:37 +00:00
Felix Fietkau
2a5f6cadd1 target/sdk: strip host binaries before packing
Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 39915
2014-03-13 14:14:00 +00:00
Felix Fietkau
8c9fed34e4 target/sdk: leave out some unnecessary directories
Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 39914
2014-03-13 14:13:57 +00:00
Felix Fietkau
ee4110aff0 target/sdk: use .config instead of unconditionally enabling all build dirs
Call make defconfig on every build to catch newly added packages

Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 39913
2014-03-13 12:12:58 +00:00
Felix Fietkau
fd27fb770d target/sdk: fix parallel build calls
Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 39912
2014-03-13 12:12:50 +00:00
Felix Fietkau
2d52430c25 target/sdk: remove obsolete make calls for the ancient package directory format
Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 39911
2014-03-13 12:12:46 +00:00
Felix Fietkau
cedfe135ab target/sdk: generate a Config.in file with the settings of the build that the SDK was generated from
This allows make oldconfig/menuconfig to run

Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 39864
2014-03-10 18:58:49 +00:00
Felix Fietkau
23df56c490 target/sdk: remove obsolete compatibility makefiles
Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 39863
2014-03-10 18:58:44 +00:00
Felix Fietkau
5ef90f6540 target/sdk: remove obsolete exclude line
Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 39861
2014-03-10 18:58:34 +00:00
Felix Fietkau
d76f2d4d1c target/sdk: remove some unnecessary files
Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 39859
2014-03-10 11:12:41 +00:00
Felix Fietkau
ba3b720fe6 target/sdk: add support for building kernel module packages
Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 39858
2014-03-10 11:12:37 +00:00
Felix Fietkau
96bb7c123b build: consistently use 'depends on' instead of 'depends'
make the syntax more compatible with kernel menuconfig

Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 36351
2013-04-17 15:36:41 +00:00
Daniel Dickinson
7e0f8049fa Fix feeds.conf.default when no SVN info present
SVN-Revision: 34051
2012-11-01 07:15:49 +00:00
John Crispin
3686b8d279 derive system from hostcc to allow building inside a chroot
SVN-Revision: 33228
2012-08-22 15:07:32 +00:00
Jo-Philipp Wich
93b8648b15 don't overwrite version.mk, substitute REVISION instead
SVN-Revision: 31271
2012-04-13 10:47:45 +00:00
Jo-Philipp Wich
cb6f860b8f make sure .config gets copied as file When using scripts/env, .config is most likely a symbolic link pointing to env/.config. Previously the symbolic link got copied as-is into the SDK tarball, leading to a dangling .config symlink on the target system which prevented the SDK from working.
SVN-Revision: 29927
2012-01-28 03:30:30 +00:00
Jo-Philipp Wich
34f2cfc657 fix generation for arm platforms Based on patch by Roman Yeryomin <roman@advem.lv>
SVN-Revision: 28225
2011-09-13 07:39:14 +00:00
Felix Fietkau
b3d364b922 sdk: fix up paths for $(ARCH_SUFFIX)
SVN-Revision: 20254
2010-03-17 16:03:08 +00:00
Nicolas Thill
ac695f35fa disable IB & SDK when using an external toolchain (closes: #6001)
SVN-Revision: 18837
2009-12-18 18:55:03 +00:00
Florian Fainelli
40d5dafdd2 do not exclude the share directory for bison and other programs to work (#5629)
SVN-Revision: 17198
2009-08-09 11:11:11 +00:00
Florian Fainelli
88fd55fb5c now that we support multiple libc, include the gcc version, libc type and libc version in the SDK filename
SVN-Revision: 16508
2009-06-18 15:34:37 +00:00
Florian Fainelli
4f52961c56 do not copy all the staging_dir/ directories, only the right toolchain and target directories
SVN-Revision: 16507
2009-06-18 15:32:37 +00:00
Felix Fietkau
34939cad39 get rid of $Id$ - it has never helped us and it has broken too many patches ;)
SVN-Revision: 15242
2009-04-17 14:09:46 +00:00
Nicolas Thill
1990fc90fd allow SDK to install trunk packages with scripts/feeds & build them, instead of trying to embed precompiled ones (closes: #3097)
SVN-Revision: 12689
2008-09-24 17:11:41 +00:00
Nicolas Thill
fe47c70496 add LICENSE & minimal Config.in files (closes: #3710)
SVN-Revision: 12367
2008-08-22 04:20:40 +00:00
Nicolas Thill
42cf7602f4 add feeds config file to SDK
SVN-Revision: 12365
2008-08-22 02:52:19 +00:00
Felix Fietkau
bdb9c7351c some more build system cleanup
SVN-Revision: 12329
2008-08-17 11:14:13 +00:00
Felix Fietkau
44db3f4117 Detach the building of sdk and imagebuilder from "Select all packages by default", since those really represent two distinct build operations from normal package selection.
Signed-off-by: Robert P. J. Day <rpjday@crashcourse.ca>

SVN-Revision: 10621
2008-03-19 08:16:02 +00:00
Felix Fietkau
2da3f6a256 fix the sdk
SVN-Revision: 9747
2007-12-14 00:33:25 +00:00
Felix Fietkau
b81933c951 strip -$(KERNEL) from sdk/imagebuilder names
SVN-Revision: 9742
2007-12-13 22:31:56 +00:00
Felix Fietkau
882f3e78ca suppress bug after compiling last package in kamikaze SDK.
This patch corrects https://dev.openwrt.org/ticket/2508
An error was raised when no Config.in file was found in package/
Signed-off-by: Julien Pinon <julien.pinon@luceor.com>

SVN-Revision: 9692
2007-12-09 18:52:52 +00:00
Florian Fainelli
aa5fa29235 Fix the sdk generation with the new staging_dir layout
SVN-Revision: 8503
2007-08-27 10:31:12 +00:00
Felix Fietkau
9a1350fdc1 fix sdk build
SVN-Revision: 7855
2007-07-02 18:36:31 +00:00
Felix Fietkau
d3dea9d2c6 add portability fixes from #1720
SVN-Revision: 7791
2007-06-30 12:21:58 +00:00
Felix Fietkau
874f03ea00 fixes for a few build errors on osx without fink
SVN-Revision: 7065
2007-04-29 01:30:48 +00:00
Felix Fietkau
3e91dd1bd5 revert find | xargs => find | exec changes - this is completely unnecessary and introduces additional dependencies that we do not need
SVN-Revision: 6942
2007-04-12 19:18:38 +00:00
Mike Baker
8101912ed6 Accidentially broke sdk and imagebuilder in [6857]
SVN-Revision: 6858
2007-04-03 23:29:02 +00:00
Mike Baker
3295536b02 more [6849]
SVN-Revision: 6850
2007-04-03 13:59:07 +00:00
Florian Fainelli
6cd84c6838 Use find -exec instead of xargs
SVN-Revision: 6837
2007-04-02 16:09:15 +00:00
Mike Baker
3debff019c Remove extra -
SVN-Revision: 6763
2007-03-30 10:23:15 +00:00
Felix Fietkau
4113d5a46d fix the sdk
SVN-Revision: 6718
2007-03-26 20:17:28 +00:00
Felix Fietkau
2c62bddcfe Add an 'Image Configuration' menu to menuconfig Packages can export a list of config options with labels and data types through the metadata. The selected config values will be exported to the target filesystem in /etc/uci-defaults and applied on the first boot.
SVN-Revision: 6572
2007-03-16 03:02:31 +00:00
Felix Fietkau
351d0d4b07 Fix config checks for Image Builder and SDK - only build them when requested. Clear all packages from bin/packages at the beginning of package/compile when the Image Builder is selected, because the Image Builder can't handle multiple versions of the same package.
SVN-Revision: 6102
2007-01-14 23:37:40 +00:00
Felix Fietkau
927fb16abb don't mess with the staging dir too much when building the sdk
SVN-Revision: 6070
2007-01-10 21:21:59 +00:00
Felix Fietkau
f1d6fb4be1 leave out the ccache directory when copying the staging dir into the sdk (#843)
SVN-Revision: 5081
2006-10-14 14:16:26 +00:00
Felix Fietkau
60c1f0f64d finally move buildroot-ng to trunk 2016-03-20 17:29:15 +01:00