aboutsummaryrefslogtreecommitdiffstats
path: root/target/sdk
Commit message (Collapse)AuthorAgeFilesLines
* treewide: add ORIG_PATH variableMichael Pratt2023-06-121-0/+2
| | | | | | | | | | | | | | Add a variable that stores the original value of $PATH in the host system's shell, before Make alters it. This can be useful for when it is necessary to ignore symlinks and programs made by the build system. Define this new variable before all instances of 'export PATH:=' or similar. Signed-off-by: Michael Pratt <mcpratt@pm.me> (cherry picked from commit d87a8aa148ddf93b199a759deb088fff73787025)
* sdk: Expose CCACHE_DIR optionJeffery To2023-06-071-0/+7
| | | | | | | | As the CCACHE option is already exposed, it would be helpful to also make the ccache directory easily customizable. Signed-off-by: Jeffery To <jeffery.to@gmail.com> (cherry picked from commit 897691fdce27868aa4c0c68de8b67e8af6f209e1)
* sdk: do not exclude all doc directoriesMichael Pratt2023-05-091-1/+2
| | | | | | | | | | | | | Some packages which are using local gnulib source are expecting files to exist in the directory: staging_dir/host/share/gnulib/doc so delete the other doc directories directly instead of excluding all of them. Fixes: d167adbc4 ("gettext-full: bootstrap to local gnulib source") Signed-off-by: Michael Pratt <mcpratt@pm.me>
* sdk: expose PATENTED an NLS build optionsTomasz Maciej Nowak2023-03-051-0/+17
| | | | | | | | | Some packages offer functionalities guarded by these options and it'll be impossible to reach them without changing Config-build.in. So allow to toggle these in more friendly way, by exposing them in configuration menu. Signed-off-by: Tomasz Maciej Nowak <tmn505@gmail.com>
* toolchain: remove installing twice in the "initial" subdirAndre Heider2023-02-191-1/+0
| | | | | | | | | | | | | | | | This was apparently introduced to recreate the toolchain (wipe staging_dir/toolchain*, but keep build_dir/toolchain*, followed by a `make toolchain/compile`). But it leaves leftovers and causes re-links to happen at src_install phase, because of the changed paths, possibly adding yet another source of issues. With the prior commits removing various hacks related to the "initial" folder we can remove installing it twice altogether. The recreated toolchain is exactly the same as before. Signed-off-by: Andre Heider <a.heider@gmail.com>
* treewide: strip useless `default n` Kconfig linesTony Butler2023-02-031-5/+0
| | | | | | | | | | Kconfig docs say: > The default value deliberately defaults to 'n' in order to avoid > bloating the build. Apply this rule everywhere, to avoid more cloning of bad examples Signed-off-by: Tony Butler <spudz76@gmail.com>
* sdk: use git-src-full to allow Git versioningKuan-Yi Li2022-11-061-2/+2
| | | | | | | | | | | | | $(AUTORELEASE) uses Git log to determine releases and package timestamps. Base feed is shallow cloned by default in generated SDK, resulting in an incomplete Git log and therefore different local package versions than offered upstream. This patch complements commit 7fae1e5677 by setting the base feed to use `src-git-full` to solve that. Signed-off-by: Kuan-Yi Li <kyli@abysm.org>
* build: fix warnings from grepChris Osgood2022-09-281-1/+1
| | | | | | | Fixes build warnings when using newer versions of grep. Signed-off-by: Chris Osgood <chris_github@functionalfuture.com> Tested-by: Georgi Valkov <gvalkov@gmail.com>
* toolchain: Select USE_SSTRIP with external musl toolchainHauke Mehrtens2022-09-121-1/+0
| | | | | | | | | When we use the internal toolchain USE_SSTRIP will be selected by default for musl libc and USE_STRIP when glibc is used. Do the same when an external toolchain is used. USE_GLIBC will also be set for external toolchain builds based on the EXTERNAL_TOOLCHAIN_LIBC_USE_GLIBC setting. Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* Makefile: replace head call with grep's -mRosen Penev2022-09-101-1/+1
| | | | | | head is not necessary here. Signed-off-by: Rosen Penev <rosenp@gmail.com>
* sdk: add spidev-test to the bundle of userspace sourcesChristian Lamparter2022-07-171-2/+13
| | | | | | | | | | | | | moves and extends the current facilities, which have been added some time ago for the the usbip utility, to support more utilites that are shipped with the Linux kernel tree to the SDK. this allows to drop all the hand-waving and code for failed previous attempts to mitigate the SDK build failures. Fixes: bdaaf66e28bd ("utils/spidev_test: build package directly from Linux") Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
* build: scripts/config - update to kconfig-v5.14Eneas U de Queiroz2022-02-191-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | Functional Changes ---------- ------- - make 'imply' not impose any restrictions: allow symbols implied by y to become m - change "modules" from sub-option to first-level attribute Bugfixes -------- - nconf: fix core dump when searching in empty menu - nconf: stop endless search loops - xconfig: fix content of the main widget - xconfig: fix support for the split view mode Other Changes ----- ------- - highlight xconfig 'comment' lines with '***' - xconfig: navigate menus on hyperlinks - xconfig: drop support for Qt4 - improve host ncurses detection Update the 'option modules' usage to just 'modules' in Config.in. Signed-off-by: Eneas U de Queiroz <cotequeiroz@gmail.com>
* sdk: ship llvm toolchainFelix Fietkau2022-01-271-2/+1
| | | | | | This allows ebpf packages like qosify to be built with it Signed-off-by: Felix Fietkau <nbd@nbd.name>
* treewide: drop use of whichAnsuel Smith2022-01-171-1/+1
| | | | | | | | | | | | | | Ubuntu started to flag which as deprecated and it seems which is not really standard and may vary across Distro. Drop the use of which and use the standard 'command -v' for this simple task. Which is still present in the prereq if some package/script still use which. A utility script called command_all.sh is implemented that will just mimic the output of which -a. Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
* llvm-bpf: support creating a tarball in binFelix Fietkau2021-11-042-2/+10
| | | | | | | | This can be used for adding the toolchain to an existing tree without having to build it from scratch. Enable building the toolchain + tarball by default on buildbot Signed-off-by: Felix Fietkau <nbd@nbd.name>
* sdk: unset BINARY_FOLDER and DOWNLOAD_FOLDER in final archivesSven Roederer2021-05-081-1/+7
| | | | | | | | | | | | | | | | Using these config-options to customize the folders used at build-time makes these folder settings appear in generated archive. This causes the SDK to be not portable, as it's going to use the build-time folders on the new systems. The errors vary from passing the build, disk out-of-space to permission denied. The build-time settings of these folders are passed into the archive via Config.build. The expected behavior is that the SDK acts after unpacking like these settings have their defaults, using intree folders. So just filter these folders out when running convert-config.pl to create Config.build. This addresses the same issue that's fixed in the previous commit for the imagebuilder. Signed-off-by: Sven Roederer <devel-sven@geroedel.de>
* sdk: expose binary strip settingsDavid Bauer2021-02-201-0/+46
| | | | | | | Expose the SDK options for binary stripping to the menuconfig. This way, packages can easily be built with debug symbols using the SDK. Signed-off-by: David Bauer <mail@david-bauer.net>
* target: fix copying of licenses for SDK/toolchainAdrian Schmutzler2021-02-141-1/+2
| | | | | | | | | | | | | | | The SDK and target/toolchain copy the license file into their directories. During the rename/move from LICENSE to a LICENSES folder, this has not been updated. Update it now, and include the new COPYING file. While at it, improve formatting/indent. Fixes: 882e3014610b ("LICENSES: include all used licenses in LICENSES directory") Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* sdk: invoke bundle-libraries.sh w/o buildroot dirs in $PATHJo-Philipp Wich2020-12-291-1/+4
| | | | | | | | | | Invoke bundle-libraries.sh with any buildroot related directory entries removed from $PATH to avoid picking up cross versions of utilities like ldd which will not properly work when used against host executables. This should fix executable bundling for glibc-target SDKs. Signed-off-by: Jo-Philipp Wich <jo@mein.io>
* sdk: fix missing include directoriesPetr Štetiar2020-11-021-1/+6
| | | | | | | | | | | | | It's not possible to compile some applications which are using `-Werror=missing-include-dirs` compiler flags with the SDK as some target directories are missing in the SDK tarball: cc1: error: staging_dir/target/usr/include: No such file or directory [-Werror=missing-include-dirs] cc1: error: staging_dir/target/include: No such file or directory [-Werror=missing-include-dirs] Fix this by adding the missing directories in the SDK. Signed-off-by: Petr Štetiar <ynezz@true.cz>
* sdk: keep the linux package in the same subdir as in the main build systemFelix Fietkau2020-10-261-1/+4
| | | | | Fixes: 953435795d17 ("build: always build package/kernel/linux") Signed-off-by: Felix Fietkau <nbd@nbd.name>
* build: SDK/IB reproducible and faster compressionPaul Spooren2020-08-231-1/+2
| | | | | | | | | | Both IB and SDK now use the same logic for packing. This commit add reproducible multithread compression to the SDK and corrects the file mtime for both. Previously all files where just copied over from the build system, generating random mtimes. Signed-off-by: Paul Spooren <mail@aparcar.org>
* build: improve ccache supportRoman Yeryomin2020-07-111-6/+2
| | | | | | | | | | | | | | | | | | Set CCACHE_DIR to $(TOPDIR)/.ccache and CCACHE_BASEDIR to $(TOPDIR). This allows to do clean and dirclean. Cache hit rate for test build after dirclean is ~65%. If CCACHE is enabled stats are printed out at the end of building process. CCACHE_DIR config variable allows to override default, which could be useful when sharing cache with many builds. cacheclean make target allows to clean the cache. Changes from v1: - remove ccache directory using CCACHE_DIR variable - remove ccache leftovers from sdk and toolchain make files - introduce CONFIG_CCACHE_DIR variable - introduce cacheclean make target Signed-off-by: Roman Yeryomin <roman@advem.lv>
* sdk: add OpenWrt branding to menuconfig & .configEneas U de Queiroz2020-05-201-0/+2
| | | | | | | | | Set the mainmenu symbol in SDK Config.in to "OpenWrt Configuration", the same as the main OpenWrt Config.in. This string is is used as the name of the top menu in menuconfig, and at the top of the .config file. If unset, current kconfig will use "Linux Kernel Configuration". Signed-off-by: Eneas U de Queiroz <cotequeiroz@gmail.com>
* sdk: fix host menu config targets using ncursesEneas U de Queiroz2020-05-201-0/+1
| | | | | | | | | | | | | | This applies 965f341aa9 ("build: fix host menu config targets using ncurses") to the SDK top Makefile. If there is a pkg-config in the staging dir, it will try to use it instead of the host system's pkg-config; then it will fail to find the ncurses package. Linux's default will be used, which fails in some cases, such as recent Gentoo systems. Signed-off-by: Eneas U de Queiroz <cotequeiroz@gmail.com> [fixed From: to match SoB] Signed-off-by: Petr Štetiar <ynezz@true.cz>
* sdk: use bundle-libraries.sh to ship kernel objtool toolsJo-Philipp Wich2019-09-031-8/+2
| | | | | | | | | | Ensure that the kernel objtool utilities are processed by the library bundler in order to ensure that they're usable on foreign systems with different libc versions. Fixes: a9f6fceb42 ("sdk: fix building external modules when CONFIG_STACK_VALIDATION=y") Acked-by: Yousong Zhou <yszhou4tech@gmail.com> Signed-off-by: Jo-Philipp Wich <jo@mein.io>
* sdk: fix GCC and Python dangling symlinksPetr Štetiar2019-08-121-1/+2
| | | | | | | | | | | | | Force prereq again in SDK in order to fix GCC and Python dangling symlinks: staging_dir/host/bin/g++ -> /builder/ath79_generic/ccache_cxx.sh staging_dir/host/bin/gcc -> /builder/ath79_generic/ccache_cc.sh staging_dir/host/bin/python -> /usr/bin/python3.5 staging_dir/host/bin/python3 -> /usr/bin/python3.5 Ref: FS#2424 Signed-off-by: Petr Štetiar <ynezz@true.cz>
* sdk: Fix cryptodev-linux build when CONFIG_ARM64_MODULE_PLTS=yJeffery To2019-08-041-1/+2
| | | | | | | | When CONFIG_ARM64_MODULE_PLTS=y, arch/arm64/kernel/module.lds is required to build cryptodev-linux. This updates the sdk to include this file. Signed-off-by: Jeffery To <jeffery.to@gmail.com>
* sdk: fix building external modules when CONFIG_STACK_VALIDATION=yYousong Zhou2019-04-261-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The option is at the moment enabled for x86/64. The selection chain should be config RETPOLINE select STACK_VALIDATION if HAVE_STACK_VALIDATION config x86 select HAVE_STACK_VALIDATION if X86_64 cryptdev-linux: make[4]: Entering directory '/store/buildbot/slave/x86_64/build/sdk/build_dir/target-x86_64_musl/linux-x86_64/cryptodev-linux-cryptodev-linux-1.10' make -C /store/buildbot/slave/x86_64/build/sdk/build_dir/target-x86_64_musl/linux-x86_64/linux-4.14.113 M=/store/buildbot/slave/x86_64/build/sdk/build_dir/target-x86_64_musl/linux-x86_64/cryptodev-linux-cryptodev-linux-1.10 ARCH=x86 CROSS_COMPILE=x86_64-openwrt-linux-musl- modules make[5]: Entering directory '/store/buildbot/slave/x86_64/build/sdk/build_dir/target-x86_64_musl/linux-x86_64/linux-4.14.113' make[6]: *** No rule to make target '/store/buildbot/slave/x86_64/build/sdk/build_dir/target-x86_64_musl/linux-x86_64/cryptodev-linux-cryptodev-linux-1.10/ioctl.o', needed by '/store/buildbot/slave/x86_64/build/sdk/build_dir/target-x86_64_musl/linux-x86_64/cryptodev-linux-cryptodev-linux-1.10/cryptodev.o'. Stop. Makefile:1533: recipe for target '_module_/store/buildbot/slave/x86_64/build/sdk/build_dir/target-x86_64_musl/linux-x86_64/cryptodev-linux-cryptodev-linux-1.10' failed Open vSwitch intree kmods make[7]: Entering directory '/store/buildbot/slave/x86_64/build/sdk/build_dir/target-x86_64_musl/linux-x86_64/openvswitch-2.11.0/datapath/linux' make -C /store/buildbot/slave/x86_64/build/sdk/build_dir/target-x86_64_musl/linux-x86_64/linux-4.14.111 ARCH=x86 M=/store/buildbot/slave/x86_64/build/sdk/build_dir/target-x86_64_musl/linux-x86_64/openvswitch-2.11.0/datapath/linux modules make[8]: Entering directory '/store/buildbot/slave/x86_64/build/sdk/build_dir/target-x86_64_musl/linux-x86_64/linux-4.14.111' make[9]: *** No rule to make target 'tools/objtool/objtool', needed by '/store/buildbot/slave/x86_64/build/sdk/build_dir/target-x86_64_musl/linux-x86_64/openvswitch-2.11.0/datapath/linux/actions.o'. Stop. Makefile:1533: recipe for target '_module_/store/buildbot/slave/x86_64/build/sdk/build_dir/target-x86_64_musl/linux-x86_64/openvswitch-2.11.0/datapath/linux' failed make[8]: *** [_module_/store/buildbot/slave/x86_64/build/sdk/build_dir/target-x86_64_musl/linux-x86_64/openvswitch-2.11.0/datapath/linux] Error 2 make[8]: Leaving directory '/store/buildbot/slave/x86_64/build/sdk/build_dir/target-x86_64_musl/linux-x86_64/linux-4.14.111' Reference: builddeb: include objtool binary in headers package, https://patchwork.kernel.org/patch/9014071/ Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com>
* sdk: find kernel modules when KDIR is a symlinkKarl Vogel2018-11-291-1/+1
| | | | | | | | | | | The find statement would not return any results if the KDIR_BASE pointed to a symlink. Ran into this issue due to a custom Kernel/Prepare that was installing a symlink to the kernel directory. The extra slash at the end fixes this scenario and does no harm for targets that have a proper KDIR. Signed-off-by: Karl Vogel <karl.vogel@gmail.com>
* sdk: expose part of advanced configuration optionsTomasz Maciej Nowak2018-11-261-0/+57
| | | | | | | | These option can be useful in developement/packagig applications for OpenWrt. Instead of searching them by hand in Config-build.in lets expose them for easier access. Signed-off-by: Tomasz Maciej Nowak <tomek_n@o2.pl>
* sdk: include arch/arm/ Linux includes along with arch/arm64/ onesJo-Philipp Wich2018-08-031-1/+7
| | | | | | | | | | | The Linux headers on arm64 architectures contain references to common arch/arm/ headers which were not bundled by the SDK so far. Check if we're packing the SDK for an arm64 target and if we do, also include arch/arm headers as well. Fixes FS#1725. Signed-off-by: Jo-Philipp Wich <jo@mein.io>
* sdk: bundle usbip userspace sourcesJo-Philipp Wich2018-08-011-0/+4
| | | | | | | | Bundle the usbip utility sources shipped with the Linux kernel tree in order to allow the usbip packages from the package feed to build within the OpenWrt SDK. Signed-off-by: Jo-Philipp Wich <jo@mein.io>
* sdk: change base feed fallback to git.openwrt.orgJo-Philipp Wich2018-01-111-1/+2
| | | | | | | Change the hardcoded lede-project.org base feed fallback to $(PROJECT_GIT)/openwrt/openwrt.git instead. Signed-off-by: Jo-Philipp Wich <jo@mein.io>
* sdk: switch base feed url to git.openwrt.orgJo-Philipp Wich2018-01-041-1/+1
| | | | | | | As LEDE is rebranding to OpenWrt now, adjust the base feed Git reference accordingly. Signed-off-by: Jo-Philipp Wich <jo@mein.io>
* merge: targets: update image generation and targetsZoltan HERPAI2017-12-082-4/+4
| | | | Signed-off-by: Zoltan HERPAI <wigyori@uid0.hu>
* sdk: restrict base feed repo to public git for CONFIG_BUILDBOT onlyRafał Miłecki2017-12-051-1/+2
| | | | | | | | This allows people to build SDK from custom repository (git access using ssh) and keep original URL in SDK's feeds.conf.default. Signed-off-by: Rafał Miłecki <rafal@milecki.pl> Acked-by: Jo-Philipp Wich <jo@mein.io>
* build: get rid of host.mkFelix Fietkau2017-02-262-2/+1
| | | | | | Defined required host related variables in toplevel.mk instead Signed-off-by: Felix Fietkau <nbd@nbd.name>
* sdk: emit proper tag references for base URLsJo-Philipp Wich2017-02-191-3/+5
| | | | | | | | | Properly resolve symbolic tag names when constructing the base feed Git url and avoid emitting "HEAD" references when building from detached commits. Fixes #495, #501. Signed-off-by: Jo-Philipp Wich <jo@mein.io>
* build: add buildbot specific config option for setting defaultsFelix Fietkau2017-02-141-0/+1
| | | | | | | | | | This can be used to tweak the buildbot behavior without having to change buildbot's configuration. It will also allow us to add more aggressive clean steps (e.g. on toolchain changes), which would break developers' workflows if enable by default. Signed-off-by: Felix Fietkau <nbd@nbd.name>
* sdk: clean scripts/config before packing tarball (FS#504)Felix Fietkau2017-02-131-0/+1
| | | | | | | Avoids shipping potentially incompatible object files and also reduces the tarball size Signed-off-by: Felix Fietkau <nbd@nbd.name>
* sdk: add missing change from r3328-f55c29e4c7Felix Fietkau2017-02-081-1/+1
| | | | Signed-off-by: Felix Fietkau <nbd@nbd.name>
* sdk: explicitely remove ccache directories when packing SDKJo-Philipp Wich2017-01-241-0/+6
| | | | | | | | | | Upon first invocation, the ccache program will create the required directory hierarchy so there is no point in shipping these empty directories. Removing those paths also avoids shipping dangling symlinks in case the directories got linked elsewhere, e.g. into a shared global cache. Signed-off-by: Jo-Philipp Wich <jo@mein.io>
* sdk: fix Git URL detectionJo-Philipp Wich2017-01-201-2/+5
| | | | | | | Instead of relying on complex sed patterns that trip up make syntax rules, use GNU Makes builtin filter function to match desired URLs. Signed-off-by: Jo-Philipp Wich <jo@mein.io>
* sdk: avoid using private repository clone urls as base repo entryJo-Philipp Wich2017-01-191-1/+1
| | | | | | | Only consider the repository origin url as valid base feed entry if it is a git://, http:// or https:// location. Signed-off-by: Jo-Philipp Wich <jo@mein.io>
* sdk: do not strip static librariesJo-Philipp Wich2017-01-181-1/+1
| | | | | | | | | | | | | Do not strip static libraries shipped with the SDK in order to preserve the archive index. If we strip the index of the shipped libraries, host programs will fail to link these libraries with errors like: libssl.a: error adding symbols: Archive has no index; run ranlib to add one The error was found while investigating a Python host build failure within the SDK environment. Signed-off-by: Jo-Philipp Wich <jo@mein.io>
* sdk: exclude locale files to save some spaceFelix Fietkau2017-01-131-1/+2
| | | | Signed-off-by: Felix Fietkau <nbd@nbd.name>
* build: rework library bundlingJo-Philipp Wich2017-01-101-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* docs: remove all refrences in Makefiles/scriptsMathias Kresin2016-11-301-1/+1
| | | | | | | | | | The SDK Makefile still trys to copy the docs folder which was removed with 882f4d2d63272abce8c1966983aa10178e2e971f. This causes an SDK build error. All other removals are just cleanup. Signed-off-by: Mathias Kresin <dev@kresin.me>
* target/sdk: Switch to xz compression instead of bz2Daniel Engberg2016-11-041-4/+4
| | | | | | 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>