Commit Graph

372 Commits

Author SHA1 Message Date
mglae 99cf8bb62c linux: initramfs: use initramfs config file(s) and directory structure
Cpio file is generated as part of the kernel build process. No need
to force fakeroot cpio build any more.
2020-02-26 06:42:44 +01:00
MilhouseVH 653298b18a buildsystem: allow onexit trap to be selectively ignored 2020-02-19 10:24:15 +00:00
MilhouseVH a1e700fd87 buildsystem: log pkg_call that failed 2020-02-19 07:49:35 +00:00
MilhouseVH 70b69ebffa Merge pull request #4191 from HiassofT/le10-fix-obj-remove
allow packages to install *.o files into the image
2020-02-13 17:26:09 +00:00
MilhouseVH a11e063083 build: auto remove build dirs 2020-02-10 08:53:39 +01:00
Andre Heider a6991f0aba pkg-config: add support for multiple sysroots 2020-02-10 08:53:39 +01:00
Andre Heider a98010df72 build: automatically add dependencies for kernel packages
And add the missing "linux" to PKG_DEPENDS_UNPACK while at it, the tree
is required for building kernel modules.
2020-02-10 08:53:39 +01:00
Matthias Reichl e96a892a10 config/functions: fix safe_remove of multiple files
Several packages call safe_remove with a wildcard to remove
multiple files but safe_remove only deleted the first one.

Fix this by iterating over all arguments passed into safe_remove
so unwanted files don't end up in the image.

Signed-off-by: Matthias Reichl <hias@horus.com>
2020-02-09 12:00:24 +01:00
MilhouseVH 5e44eafa55 config/functions: drop unecessary / escaping 2020-02-02 21:11:54 +00:00
Matthias Reichl 2cb65bbaa2 Merge pull request #4094 from dhewg/pull/load
build: add load average limit to reduce CPU overcommitment
2020-01-21 00:14:18 +01:00
Matthias Reichl 80f1b14da0 Merge pull request #4092 from MilhouseVH/le10_generator
buildsystem: switch to dynamic scheduler
2020-01-21 00:13:51 +01:00
Andre Heider 2d12b7ebe8 build: add load average limit to reduce CPU overcommitment
For make and ninja based build systems, no new jobs are started if the load
average is greater than number_of_cores * 1.5.
2020-01-17 09:16:37 +01:00
MilhouseVH fe1dd1e8ac buildsystem: use an update lock when updating image and sysroot
cp (and potentially mkdir -p) are not atomic, and we have seen situations where two packages
concurrently copying the same file (eg. the udev rule for xf86-video-nvidia and
xf86-video-nvidia-legacy) will succeed for one package but the other package fails with
a "file exists" error (as the file didn't exist when it checked, but does exist when it
actually copies the file). Not even cp -f will avoid this issue.

There are several workarounds, but the most practical (and general) solution is to ensure
sequential updates of the image and shared sysroot directories.
2020-01-15 18:49:15 +00:00
MilhouseVH f173e38e54 buildsystem: dynamic schedule requires fewer locks; pkgbuilder.py now handles failed jobs 2020-01-15 18:49:15 +00:00
MilhouseVH 96c510394d buildsystem: add is_sequential_build() helper 2020-01-15 18:49:14 +00:00
MilhouseVH 439f38bcff config/functions: store config info in history 2020-01-15 18:49:14 +00:00
MilhouseVH 00faa81294 scripts/pkgbuilder.py: replace parallel with something smarter 2020-01-15 18:49:11 +00:00
MilhouseVH da94ecfb2f config/functions: major/minor version helper 2020-01-13 21:18:40 +00:00
Andre Heider 8e4663912a build: move install dirs out of the build dir
Instead of cluttering $BUILD we now have
- $BUILD/build         sources and builds of packages
- $BUILD/install_pkg   installed packages
- $BUILD/install_init  installed packages for initramfs
2019-12-31 11:26:49 +01:00
Andre Heider ae663c98e9 build: fix calculate_stamp() for multiple corner cases
- follow symlinks (as used by RPi/Slice)
- don't include hidden files like vi swap files (lol)
- remove duplicates (like $LINUX_DEPENDS for linux itself)
- sort by filename, not by hash
- don't use one sha256sum process per file, use xargs to pass all files to
  one process.
2019-12-31 11:26:49 +01:00
Andre Heider b56c0f0619 build: add missing build stamp input data
Always include project specific package files
(e.g. projects/Amlogic/packages/systemd).
2019-12-31 11:26:49 +01:00
Andre Heider 3c8862a701 build: add and use get_install_dir()
Don't hardcode get_build_dir()/.install_pkg in multiple places.
2019-12-31 11:26:49 +01:00
Andre Heider 267d57d7f3 build: add and use PKG_INSTALL
Set it depending on the target, so there's no need to hardcode
$PKG_BUILD/.install_[pkg|init] in multiple places.
2019-12-31 11:26:49 +01:00
Andre Heider 882ecdecc9 llvm: fix cross compilation issues
llvm-config is a compiled host binary used to get infos about the
target installation (sic). It currently lives in the target sysroot,
which may not be usable because now we're mixing build host and
target libraries:

toolchain/x86_64-libreelec-linux-gnu/sysroot/usr/bin/llvm-config-host:
  relocation error: /lib/x86_64-linux-gnu/libpthread.so.0: symbol
                    __libc_vfork version GLIBC_PRIVATE not defined in file
                    libc.so.6 with link time reference

Move it to $TOOLCHAIN/bin where host binaries belong. But llvm-config
doesn't support spitting out a library path from a different prefix than
its own (which explains the placement in sysroot). Patch that in to
prevail sanity.

Then disable the z3 solver so the target doesn't use build host libraries.
But that's broken too, use debian's patch to fix it up (with the
addition to default to "OFF" instead on "ON").

Finally, disable new options and use the build type "MinSizeRel" for the
host as well, courtesy if @MilhouseVH.
2019-12-16 17:54:26 +01:00
Sascha Kühndel ebaff1375f Merge pull request #4054 from MilhouseVH/le10_fix_flag_enabled_var
flag_enabled(): declare is local by default - remove it
2019-12-13 13:50:28 +01:00