If LOCAL_CCACHE is set to the full path of ccache on the build host
it will be used for early stage host package builds, eg make and ccache
at the moment.
By default it uses a separate cache dir (.ccache-local) so that it
doesn't interfere with our ccache (which is typically a different
version). The location can be changed by setting LOCAL_CCACHE_DIR
Signed-off-by: Matthias Reichl <hias@horus.com>
This is needed for host packages built in very early stages,
before host-cc (which typically uses ccache) is available.
Set CC/CXX to LOCAL_CC/CXX in this case.
Signed-off-by: Matthias Reichl <hias@horus.com>
python's crypt module is deprecated in 3.11 and to be removed in 3.13.
Replace its usage with openssl's passwd.
Signed-off-by: Ian Leonard <antonlacon@gmail.com>
Default linker can be set with DEFAULT_LINKER in options.
Packages can influence linker selection both by positive and/or
negative PKG_BUILD_FLAGS, eg +bfd or -gold.
Positive build flags take priority over the default linker so eg
DEFAULT_LINKER="gold" and PKG_BUILD_FLAGS="+bfd" will select bfd.
Negative flags mean a specific linker should not be used, eg -gold
prevents using gold.
If the default linker is disabled via a build flag then any other
available linker will be used.
Optional linkers like gold have to be enabled with eg GOLD_SUPPORT="yes"
in options. If an optional linker is not enabled it won't be a candidate
for linker selection. So eg "+mold" will have no effect if MOLD_SUPPORT
isn't set to "yes".
Signed-off-by: Matthias Reichl <hias@horus.com>
Timing detail reporting can be enabled by setting
TRACE_BUILD_TIMING=1
This enables timestamping collecting at various build stages so we
can easily analyze how long eg configure, make/build, install etc
steps take.
Signed-off-by: Matthias Reichl <hias@horus.com>
This function can be used on "autotools" and "configure" packages.
Use libtool_remove_rpath() to remove hardcode rpath when --disable-rpath
is not supported by "configure".
usage: `libtool_remove_rpath libtool`
If there are multiple libtool scripts or they are in subdirectories,
then you may need to run this function using the path to libtool or run
the function multiple times.
If binaries and shared objects installed by the package to target have
incorrect or system libraries then this function can be used. After
using the function, these example command below should NOT have a
RPATH/RUNPATH.
e.g. (before using the fucntion)
$ readelf --dynamic ${filename} | grep PATH
RPATH Library runpath: [.....]
RUNPATH Library runpath: [.....]
Before using this function; check if the package supports
--disable-rpath (and that it works.) Work with upstream and have a
working --disable-rpath added to the package.
Currently building a package with
GET_HANDLER_SUPPORT="file"
PKG_URL="file:///some_path_to_file_with_sources"
throws an error
ERROR: using manual toolchain but PKG_TAR_COPY_OPTS is configured.
Using -DCMAKE_BUILD_TYPE=MinSizeRel result in finally building with -Os. Our default
optimization or '+speed' are ignored, behavior is like always using '+size'.
Changing to default -DCMAKE_BUILD_TYPE="" is not allowed by to many packages including
Kodi, they are forcing a default option (in worst case "Debug", e.g. llvm)
Redefine the cmake parameters to not include any options and do the same for host choosing
"Release" as build type.
This needs to be done even on target=host due to libraries of the host
being newer than the target. This fixes tests where target glibc is
different from host glibc and meson tries to check existance of 2
functions which are in GLIBC_2.34 in this example. It is also correct
functionality, as we will never be building for the host the compile is
on.
`Program stderr:
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-10.0-devel/build/glib-37e5dfd3a2ced10c395b38702ae15e0e128e457b/.x86_64-libreelec-linux-gnu/meson-private/tmpg908xy4s/output.exe:
/lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found
(required by
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-10.0-devel/build/glib-37e5dfd3a2ced10c395b38702ae15e0e128e457b/.x86_64-libreelec-linux-gnu/meson-private/tmpg908xy4s/output.exe)`
Python3's crypt module is capable of generating password hashes. Use that
instead of busybox:host's cryptpw function.
Move password hashing into config/function's add_user(), so one need not
remember to generate the hash and then pass it into add_user().
Signed-off-by: Ian Leonard <antonlacon@gmail.com>
Add SPLIT_DEBUG_INFO option, when it's set to yes the debug info is
stored in separate .dwo files.
This is mainly useful for remote debugging and reduces image size a lot.
See also https://gcc.gnu.org/wiki/DebugFission
Signed-off-by: Matthias Reichl <hias@horus.com>