From 0cc2b212cd673b390fe8783ebdf247380e70b0e9 Mon Sep 17 00:00:00 2001 From: Ray-V Date: Sat, 16 Mar 2019 13:42:30 +0000 Subject: [PATCH] Added aarch64 build Added option to build a 64-bit kernel --- cross-compiling-TDE-for-the-RPi3.html | 939 +++++++++++++++----------- 1 file changed, 550 insertions(+), 389 deletions(-) diff --git a/cross-compiling-TDE-for-the-RPi3.html b/cross-compiling-TDE-for-the-RPi3.html index c4b0970..b21841a 100755 --- a/cross-compiling-TDE-for-the-RPi3.html +++ b/cross-compiling-TDE-for-the-RPi3.html @@ -126,9 +126,11 @@ color:darkred;

This is based on the tde-slackbuilds build scripts which are used for a native RPi3 build.
-It's assumed the RPi3 is running a system based on the SARPi kernel and Slackware arm hard float. +Builds have been done for the RPi3 running systems based on Slackware-arm-current [hard float], and Slarm64, with both systems using a 64-bit kernel built here.
-To date, the packages listed on this page have been built on an x86_64 machine and installed and tested OK on an RPi3. +The packages listed on this page have been built on an x86_64 machine and installed and tested OK on an RPi3. +
+For any problems, questions, etc please open an issue at tde-slackbuilds.

Why cross-compile?

@@ -146,11 +148,13 @@ Compared to a native x86_64 build on my T500, the build times are typically:
     For example, tqmoc is used extensively and as it builds arch independent output, the x86_64 version can be used.

The build order is: -
1] Build the cross compiler with optional packaging -
2] Build qemu -
3] Set up the build environment with tqmoc and meinproc x86 binaries -
4] Build the required TDE packages and install them to / and sysroot -
5] Build other TDE packages +
1] Build the cross compiler +
2] Build 64-bit kernel +
3] Build qemu +
4] Set up the build environment with tqmoc and meinproc x86 binaries +
5] Build the required TDE packages and install them to / and sysroot +
6] Build other TDE packages +
Options include packaging, 64-bit kernel and its components, imlib, …

To aid trouble shooting, this page has been set up so that each build can be run by selecting the contents in part or whole and pasting into a console.

@@ -158,25 +162,25 @@ The build order is: This will be the eventual build setup for the cross-compiler and sysroot.
The intention is that as much as possible that is required for the TDE cross compilation is contained within one directory and can be installed/mounted only when required.
* Only TDE packages required for building other TDE apps will be installed.
-** sysroot can be a permanent setup within the cross-compiler tree or bind mounted to another media or directory. +** sysroot libs and headers can be permanently installed within the cross-compiler tree or bind mounted from another media or directory.

/opt
 ├── cross-pi-gcc
-│   ├── arm-linux-gnueabihf
+│   ├── $TARGET
 │   │   ├── bin
 │   │   │   └── ldd …
 │   │   └── lib
-│   │       └── ld-linux-armhf.so.3 …
+│   │       └── ld-linux-*.so.* …
 │   ├── bin				cross compiler
-│   │   └── arm-linux-gnueabihf-gcc …
+│   │   └── $TARGET-gcc …
 │   └── sysroot				**
-│       ├── lib				host libraries
+│       ├── lib$LIBDIRSUFFIX		target libraries
 │       ├── usr
-│       │   ├── include			host headers
+│       │   ├── include			target headers
 │       │   │   └── linux		kernel headers
-│       │   └── lib			host libraries
+│       │   └── lib$LIBDIRSUFFIX	target libraries
 │       ├── src				source archives
-│       ├── x86				x86 binaries - qemu-arm, meinproc, tqmoc
+│       ├── x86				x86 binaries - qemu-$ARM, meinproc, tqmoc
 │       └── opt
 │           └── trinity			for TDE headers and libraries for pkg-config *
 └── trinity				for TDE executables used during TDE builds *
@@ -184,131 +188,164 @@ The intention is that as much as possible that is required for the TDE cross com Build in a chroot?
Yes if:
▸ the TDE installation directory exists on the build system,
-▸ any of the packages being built exist on the build system,
-because they will be overwritten with arm versions.

-Set up +▸ any of the packages being built exist on the build system, because they will be overwritten with arm versions. +

+Set variables for a 32-bit [armv7] or 64-bit [aarch64] build:
- - +## 32-bit - only tested for a hard float build +
+export ARM=arm +## for kernel headers +export K_ARCH=arm +## Set options for RPi3 +export PiARCH="armv8-a+crc" +export FPU="neon-fp-armv8" +export TUNE="cortex-a53" +export FLOAT="hard" +export MACH_OPTS="--with-arch=$PiARCH --with-tune=$TUNE --with-fpu=$FPU --with-float=$FLOAT" +export glibcMACH_OPTS=$MACH_OPTS +## Set target - building cross compiler to run on x86 to build for target arm +export TARGET="arm-linux-gnueabihf" +## for SYSROOT location - option [2] in setting up the build environment +export SYSROOT_REPO=/path_to_Slackware_arm_current_libs_headers_installation_directory + +
+OR: +
+## 64-bit +
+export ARM=aarch64 +## for kernel headers +export K_ARCH=arm64 +## Set options for RPi3 - the build for aarch64 takes a limited number of options +export PiARCH="armv8-a+crc" +export TUNE="cortex-a53" +export MACH_OPTS="--with-arch=$PiARCH --with-cpu=$TUNE" +export glibcMACH_OPTS="--with-arch=$PiARCH --with-tune=$TUNE" +## Set target - building cross compiler to run on x86 to build for target arm +export TARGET="aarch64-linux-gnu" +## for SYSROOT location - option [2] in setting up the build environment +export SYSROOT_REPO=/path_to_Slarm64_libs_headers_installation_directory +

-… build gcc cross-compiler  Based on - Building GCC as a cross compiler for Raspberry Pi. + + +
+… build gcc cross-compiler  Based on - Building GCC as a cross compiler for Raspberry Pi - and the mentioned article - How to Build a GCC Cross-Compiler.

close The cross compiler is built in this tree: /tmp └── xgcc - ├── gcc-8 sources for a gcc-8.2.0/glibc-2.28 build - │ ├── binutils-2.31.1.tar.bz2 - │ ├── gcc-8.2.0.tar.gz - │   ├── glibc-2.28.tar.bz2 + ├── gcc-8 sources for a gcc-8.3.0/glibc-2.29 build + │ ├── binutils-2.32.tar.xz + │ ├── gcc-8.3.0.tar.xz + │   ├── glibc-2.29.tar.xz │ ├── gmp-6.1.2.tar.xz │   ├── isl-0.18.tar.bz2 │   ├── mpc-1.1.0.tar.gz - │ └── mpfr-4.0.1.tar.xz + │ └── mpfr-4.0.2.tar.xz ├── build_all build area - │   ├── linux kernel headers - │   ├── binutils-2.31.1 + │   ├── linux for kernel headers + │   ├── binutils-2.32 │   ├── build-binutils - │   ├── gcc-8.2.0 + │   ├── gcc-8.3.0 │   ├── build-gcc - │   ├── glibc-2.28 + │   ├── glibc-2.29 │   └── build-glibc └── pkg DESTDIR for creating package ## Set installation directories ## for x-compiler -XGCC_DIR=/opt/cross-pi-gcc +export XGCC_DIR=/opt/cross-pi-gcc ## for sysroot -SYSROOT=$XGCC_DIR/sysroot +export SYSROOT=$XGCC_DIR/sysroot mkdir -p /tmp/xgcc/{gcc-8,build_all} cd /tmp/xgcc/gcc-8 -## Get required sources -wget https://ftpmirror.gnu.org/binutils/binutils-2.31.1.tar.bz2 -wget https://ftpmirror.gnu.org/gcc/gcc-8.2.0/gcc-8.2.0.tar.gz -wget https://ftpmirror.gnu.org/glibc/glibc-2.28.tar.bz2 +## Get required sources +wget https://ftpmirror.gnu.org/binutils/binutils-2.32.tar.xz +wget https://ftpmirror.gnu.org/gcc/gcc-8.3.0/gcc-8.3.0.tar.xz +wget https://ftpmirror.gnu.org/glibc/glibc-2.29.tar.xz wget https://gmplib.org/download/gmp/gmp-6.1.2.tar.xz wget https://gcc.gnu.org/pub/gcc/infrastructure/isl-0.18.tar.bz2 wget https://ftpmirror.gnu.org/gnu/mpc/mpc-1.1.0.tar.gz -wget https://ftpmirror.gnu.org/gnu/mpfr/mpfr-4.0.1.tar.xz +wget https://ftpmirror.gnu.org/gnu/mpfr/mpfr-4.0.2.tar.xz ## Install the kernel headers -## SARPi don't provide a headers package for their kernel which is built on the 'Raspberry Pi Foundation GitHub repository sources'. ## Download the kernel source and create a headers package. -## This will probably be a later version than the SARPi kernel, but according to the Glibc Wiki FAQ, that's OK ## This is a 180MB download cd ../build_all -git clone --depth=1 https://github.com/raspberrypi/linux -cd linux -make headers_install ARCH=arm INSTALL_HDR_PATH=/tmp/headers/usr -K_VER=$(make kernelversion) +git clone --depth=1 --no-checkout https://github.com/raspberrypi/linux + +## Save for future use +tar Jcf /tmp/RPi-kernel-git-$(date +%Y%m%d).tar.xz linux/ + +## Check out the master branch +cd linux +git checkout -b master + +## Make headers +## These are different for 32 and 64-bit - not to be confused with the kernel build +make headers_install ARCH=$K_ARCH INSTALL_HDR_PATH=/tmp/headers/usr +export K_VER=$(make kernelversion) (cd /tmp/headers -makepkg -l y -c n /tmp/kernel-headers-$K_VER-RPi3.txz) +makepkg -l y -c n /tmp/kernel-headers-$K_VER-RPi-$K_ARCH.txz) rm -rf /tmp/headers cd .. -rm -rf linux - -ROOT=/opt/cross-pi-gcc/sysroot installpkg /tmp/kernel-headers-$K_VER-RPi3.txz -## Extract the archives -tar xf ../gcc-8/binutils-2.31.1.tar.bz2 -tar xf ../gcc-8/glibc-2.28.tar.bz2 -tar xf ../gcc-8/gcc-8.2.0.tar.gz -cd gcc-8.2.0 +## If building kernel, modules, and dtbs … +mv /tmp/xgcc/build_all/linux /tmp + +ROOT=$SYSROOT installpkg /tmp/kernel-headers-$K_VER-RPi-$K_ARCH.txz + +## Extract the archives +tar xf ../gcc-8/binutils-2.32.tar.xz +tar xf ../gcc-8/glibc-2.29.tar.xz +tar xf ../gcc-8/gcc-8.3.0.tar.xz +cd gcc-8.3.0 ln -s ../../gcc-8/gmp-6.1.2.tar.xz . ln -s ../../gcc-8/mpc-1.1.0.tar.gz . -ln -s ../../gcc-8/mpfr-4.0.1.tar.xz . +ln -s ../../gcc-8/mpfr-4.0.2.tar.xz . ln -s ../../gcc-8/isl-0.18.tar.bz2 . ## Update the prerequisites versions -sed -i 's|6.1.0.tar.bz2|6.1.2.tar.xz|;s|mpfr-3.1.4.tar.bz2|mpfr-4.0.1.tar.xz|;s|0.16.1|0.18|;s|1.0.3|1.1.0|' contrib/download_prerequisites +sed -i 's|6.1.0.tar.bz2|6.1.2.tar.xz|;s|mpfr-3.1.4.tar.bz2|mpfr-4.0.2.tar.xz|;s|0.16.1|0.18|;s|1.0.3|1.1.0|' contrib/download_prerequisites ## Set up the gcc build environment contrib/download_prerequisites --no-verify -## Set options for RPi3 -export ARCH="armv8-a+crc" -export FPU="neon-fp-armv8" -export TUNE="cortex-a53" -export FLOAT="hard" - ## Build Binutils +## The cross compiler toolchain is going to be built with defaults for the RPi3 using machine [arch/tune/fpu/float] options mkdir ../build-binutils cd ../build-binutils -../binutils-2.31.1/configure --prefix=/opt/cross-pi-gcc --with-sysroot=/opt/cross-pi-gcc/sysroot --target=arm-linux-gnueabihf --with-arch=$ARCH --with-tune=$TUNE --with-fpu=$FPU --with-float=$FLOAT --disable-multilib +../binutils-2.32/configure --prefix=$XGCC_DIR --with-sysroot=$SYSROOT --target=$TARGET $MACH_OPTS --disable-multilib make -j4 ## install to '--prefix' for this build make install-strip ## install for packaging DESTDIR=/tmp/xgcc/pkg make install-strip - -rm -rf /tmp/xgcc/build_all/binutils-2.31.1 -rm -rf /tmp/xgcc/build_all/build-binutils ## Start building gcc -## gcc is going to be built specifically for the RPi3 using arch/tune/fpu/float options mkdir ../build-gcc cd ../build-gcc -../gcc-8.2.0/configure --prefix=/opt/cross-pi-gcc --with-sysroot=/opt/cross-pi-gcc/sysroot --target=arm-linux-gnueabihf --enable-languages=c,c++ --with-arch=$ARCH --with-tune=$TUNE --with-fpu=$FPU --with-float=$FLOAT --disable-multilib +../gcc-8.3.0/configure --prefix=$XGCC_DIR --with-sysroot=$SYSROOT --target=$TARGET --enable-languages=c,c++ $MACH_OPTS --disable-multilib make -j4 all-gcc make install-gcc ## Add the cross compiler folder to the path for building glibc ## Prevents "__INT64_C" redefined and "__ARM_ARCH" is not defined errors. -## It also contains arm-linux-gnueabihf-strip which is used to strip the glibc executables and libs. -export PATH=/opt/cross-pi-gcc/bin:$PATH +## It also contains $TARGET-strip which is used to strip the glibc executables and libs. +export PATH=$XGCC_DIR/bin:$PATH ## Start building glibc mkdir ../build-glibc cd ../build-glibc -## shouldn't need --target= here because target=host unless set otherwise - in theory!! -../glibc-2.28/configure --prefix=/opt/cross-pi-gcc/arm-linux-gnueabihf --with-sysroot=/opt/cross-pi-gcc/sysroot --host=arm-linux-gnueabihf --target=arm-linux-gnueabihf --with-arch=$ARCH --with-tune=$TUNE --with-fpu=$FPU --with-float=$FLOAT --disable-multilib libc_cv_forced_unwind=yes +../glibc-2.29/configure --prefix=$XGCC_DIR/$TARGET --with-sysroot=$SYSROOT --build=$MACHTYPE --host=$TARGET --target=$TARGET $glibcMACH_OPTS --disable-multilib libc_cv_forced_unwind=yes make install-bootstrap-headers=yes install-headers make -j4 csu/subdir_lib -install csu/crt1.o csu/crti.o csu/crtn.o /opt/cross-pi-gcc/arm-linux-gnueabihf/lib -arm-linux-gnueabihf-gcc -nostdlib -nostartfiles -shared -x c /dev/null -o /opt/cross-pi-gcc/arm-linux-gnueabihf/lib/libc.so -touch /opt/cross-pi-gcc/arm-linux-gnueabihf/include/gnu/stubs.h +install csu/crt1.o csu/crti.o csu/crtn.o $XGCC_DIR/$TARGET/lib +$TARGET-gcc -nostdlib -nostartfiles -shared -x c /dev/null -o $XGCC_DIR/$TARGET/lib/libc.so +touch $XGCC_DIR/$TARGET/include/gnu/stubs.h ## Back to gcc cd ../build-gcc @@ -322,8 +359,8 @@ make -j4 make install ## install to different DESTDIR for stripping DESTDIR=/tmp/xgcc/pkg-2 make install -find /tmp/xgcc/pkg-2 | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs arm-linux-gnueabihf-strip --strip-debug -find /tmp/xgcc/pkg-2 | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs arm-linux-gnueabihf-strip --strip-debug +find /tmp/xgcc/pkg-2 | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs $TARGET-strip --strip-debug +find /tmp/xgcc/pkg-2 | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs $TARGET-strip --strip-debug ## Finish building gcc cd ../build-gcc @@ -332,43 +369,92 @@ make install-strip DESTDIR=/tmp/xgcc/pkg make install-strip ## Create cross compiler package -## Copy stripped glibc to xgcc -cp -a /tmp/xgcc/pkg-2/* /tmp/xgcc/pkg/ - +## Copy stripped glibc to the cross gcc packaging directory +cp -a /tmp/xgcc/pkg-2/* /tmp/xgcc/pkg/ + ## Create a sysroot directory -mkdir /tmp/xgcc/pkg/opt/cross-pi-gcc/sysroot - +mkdir /tmp/xgcc/pkg$SYSROOT + ## Remove unwanted locales -rm -rf /tmp/xgcc/pkg/opt/cross-pi-gcc/share/locale -mv /tmp/xgcc/pkg/opt/cross-pi-gcc/arm-linux-gnueabihf/share/i18n/locales/en_{GB,US} /tmp -rm -rf /tmp/xgcc/pkg/opt/cross-pi-gcc/arm-linux-gnueabihf/share/i18n/locales/* -mv /tmp/en_{GB,US} /tmp/xgcc/pkg/opt/cross-pi-gcc/arm-linux-gnueabihf/share/i18n/locales/ +rm -rf /tmp/xgcc/pkg$XGCC_DIR/share/locale + +mv /tmp/xgcc/pkg$XGCC_DIR/$TARGET/share/i18n/locales/en_{GB,US} /tmp +rm -rf /tmp/xgcc/pkg$XGCC_DIR/$TARGET/share/i18n/locales/* +mv /tmp/en_{GB,US} /tmp/xgcc/pkg$XGCC_DIR/$TARGET/share/i18n/locales/ + +mv /tmp/xgcc/pkg$XGCC_DIR/$TARGET/share/locale/{en_GB,locale.alias} /tmp +rm -rf /tmp/xgcc/pkg$XGCC_DIR/$TARGET/share/locale/* +mv /tmp/{en_GB,locale.alias} /tmp/xgcc/pkg$XGCC_DIR/$TARGET/share/locale/ -mv /tmp/xgcc/pkg/opt/cross-pi-gcc/arm-linux-gnueabihf/share/locale/{en_GB,locale.alias} /tmp -rm -rf /tmp/xgcc/pkg/opt/cross-pi-gcc/arm-linux-gnueabihf/share/locale/* -mv /tmp/{en_GB,locale.alias} /tmp/xgcc/pkg/opt/cross-pi-gcc/arm-linux-gnueabihf/share/locale/ - ## Create the package -cd /tmp/xgcc/pkg -[[ $FLOAT == hard ]] && float=h -ARCH=$(echo $ARCH | colrm 6) -makepkg -l y -c n /tmp/xgcc820-glibc2.28-${K_VER}_RPi_headers-en_GB-${ARCH}_${float:-s}f.txz +cd /tmp/xgcc/pkg +makepkg -l y -c n /tmp/xgcc830-glibc2.29-${K_VER}_RPi_headers-en_GB-$ARM.txz - -## Remove the build area +## Remove the build area cd / rm -rf /tmp/xgcc close

- + +

- + + +
+… build 64-bit kernel   and modules, and device tree blobs - based on Exaga's article. +

close + +This is not directly related to cross compiling TDE for aarch64, but will be needed for setting up the RPi3 to run a 64-bit system. +The kernel, modules and blobs can be used for a 32-bit system. +This build uses 64-bit options even if this kernel will be used for a 32-bit system. +## Set variables if not continuing from previous section +export XGCC_DIR=${XGCC_DIR:-/opt/cross-pi-gcc} +export SYSROOT=${SYSROOT:-$XGCC_DIR/sysroot} +export PATH=$XGCC_DIR/bin:$PATH + +## To keep track of where stuff is installed use the package management system - delete the cross-compiler build installation directory and re-install from the package created +rm -rf $XGCC_DIR +installpkg /tmp/xgcc830-glibc2.29-*_RPi_headers-en_GB-aarch64.txz + +cd /tmp/linux + +## Create .config +make -j4 ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- bcmrpi3_defconfig + +## Build the kernel +make -j4 Image ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- + +## Tail end of screen output shows: +# SYSMAP System.map +# OBJCOPY arch/arm64/boot/Image + +## Build the device tree blobs +make -j4 dtbs ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- + +## find . -name "*rpi-3-b.dtb" +#./arch/arm64/boot/dts/broadcom/bcm2710-rpi-3-b.dtb +#./arch/arm64/boot/dts/broadcom/bcm2837-rpi-3-b.dtb + +## Build the arm64 modules +make -j4 modules ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- +make -j4 modules_install ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- INSTALL_MOD_PATH=/tmp/modules +(cd /tmp/modules +makepkg -l y -c n /tmp/kernel-modules-$K_VER-RPi-arm64.txz) +rm -rf /tmp/modules + +Installation +As detailed in Exaga's article, install the kernel [Image] as kernel8.img, and dtbs, to the microSD card boot partition; and the modules to the OS partition. + +close +
+
+ + + +

+
… build qemu  Required to run arm binaries used during the cross compilation - for example tquic and tde-config. @@ -390,7 +476,7 @@ cd build export PATH=/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin ../configure \ ---target-list="arm-linux-user" \ +--target-list=$ARM-linux-user \ --audio-drv-list= \ --disable-blobs \ --disable-bluez \ @@ -463,67 +549,98 @@ cd build make -j6 make install DESTDIR=/tmp/qemu-temp -qemu-arm will be copied to sysroot in the next section … +qemu-$ARM will be copied to sysroot in the next section … close
- +

- +
… the build environment  Set the shell variables and install the required arm headers and libraries in SYSROOT.

close Install the cross-compiler -rm -rf /opt/cross-pi-gcc -installpkg /tmp/xgcc820-glibc2.28-${K_VER}_RPi_headers-en_GB-${ARCH}_${float:-s}f.txz - +To keep track of where stuff is installed use the package management system - delete the cross-compiler build installation directory and re-install from the package created: +rm -rf $XGCC_DIR +installpkg /tmp/xgcc830-glibc2.29-${K_VER}_RPi_headers-en_GB-$ARM.txz + ## Set variables -## this is where the x-compiler package has been built to install to -XGCC_DIR=${XGCC_DIR:-/opt/cross-pi-gcc} -## this is where the sysroot has been set in the x-compiler tree -SYSROOT=${SYSROOT:-$XGCC_DIR/sysroot} +## where the x-compiler package has been built to install to +export XGCC_DIR=${XGCC_DIR:-/opt/cross-pi-gcc} +## where the sysroot has been set in the x-compiler tree +export SYSROOT=${SYSROOT:-$XGCC_DIR/sysroot} +## and the triple for the host system - RPi3 - for the builds that use the original differentiation between host and target +export HOST=$TARGET + +## Set the variables for the TDE packages builds +export SLKLDFLAGS="" +export SLKCFLAGS=-O2 +export INSTALL_TDE="/opt/trinity" +export COMPILER="$HOST-gcc" +export COMPILER_CXX="$HOST-g++" +export CC=$COMPILER +export CXX=$COMPILER_CXX +[[ $ARM == aarch64 ]] && export LIBDIRSUFFIX="64" +export TQTDIR=$INSTALL_TDE/lib$LIBDIRSUFFIX/tqt3 +export NUMJOBS=-j6 +export SYS_CNF_DIR="/etc/trinity" +export TDE_VERSION=R14.0.5 +export BUILD=1 +export I18N=en_GB +## Source directories +export R1405_SRC=/path/to/R14.0.5/source/archives +export MISC_SRC=/path/to/misc/source/archives + +## Slack_base = where the Slackware packages a-y directories are: +export Slack_base=/path/to/Sla... + +## ldconfig is not going to be used during arm packages installaion because it's an x86 binary, +## nor is /etc/ld.so.conf going to be updated, +## so use LD_LIBRARY_PATH to find libtqt-mt.so.3 during the build. +## And add the location of the libstdc++, libssp etc. libs from the cross compiler. +export LD_LIBRARY_PATH=$SYSROOT$TQTDIR/lib:$XGCC_DIR/$HOST/lib$LIBDIRSUFFIX ## The arm libs and headers needed for cross compiling need to be installed in SYSROOT. -## They can be [1] directly installed to $SYSROOT if the cross compiler is to be a permanent addition to the system, otherwise [2] installed to a directory [/path_to_arm_current_sysroot_directory] on a storage medium through bind-mounting it to $SYSROOT for the actual build process: -## [2]: -mkdir -p /path_to_arm_current_sysroot_directory -mount -B /path_to_arm_current_sysroot_directory $SYSROOT - +## I've used packages from Slarm64 for the 64-bit build. +## They can be [1] directly installed to $SYSROOT if the cross compiler is to be a permanent addition to the system, otherwise [2] installed to a directory [$SYSROOT_REPO] which is bind-mounted to $SYSROOT: +## [2]: +mkdir -p $SYSROOT_REPO +mount -B $SYSROOT_REPO $SYSROOT + ## Create a source directory and place or sym-link all the source archives there mkdir -p $SYSROOT/src +ln -sf $MISC_SRC/* $SYSROOT/src/ +ln -sf $R1405_SRC/* $SYSROOT/src/ -## only need qemu-arm - just place it somewhere the kernel can find it +## only need qemu-$ARM from the qemu installation - just place it somewhere the kernel can find it mkdir -p $SYSROOT/x86 -cp /tmp/qemu-temp/usr/local/bin/qemu-arm $SYSROOT/x86 +cp /tmp/qemu-temp/usr/local/bin/qemu-$ARM $SYSROOT/x86 rm -rf /tmp/qemu* ## Load the arm interpreter modprobe binfmt_misc mount binfmt_misc -t binfmt_misc /proc/sys/fs/binfmt_misc -echo ":arm:M::\x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:$SYSROOT/x86/qemu-arm:" > /proc/sys/fs/binfmt_misc/register + +[[ $ARM == aarch64 ]] && \ +echo ":arm:M::\x7fELF\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\xb7\x00:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:$SYSROOT/x86/qemu-$ARM:" > /proc/sys/fs/binfmt_misc/register || \ +echo ":arm:M::\x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:$SYSROOT/x86/qemu-$ARM:" > /proc/sys/fs/binfmt_misc/register -## enable ld-linux-armhf.so.3 to be found +## let qemu know where the target libraries are export QEMU_LD_PREFIX=$SYSROOT ## Install all packages needed to build the required TDE packages. ## SYSROOT is not a functioning system, it's just a repository for arm libs and headers required for cross compiling. -( -## get ldconfig out of the way - links will be set up by doinst.sh +## move ldconfig out of the way - links will be set up by doinst.sh mv /sbin/ldconfig /sbin/ldconfig-bak -## Slack_base = where the Slackware packages a-y directories are: -Slack_base=/path_to_Slackware_arm_current export ROOT=$SYSROOT -cd $Slack_base -installpkg /tmp/kernel-headers-*-RPi3.txz -installpkg l/glibc-2.28-*.txz +installpkg /tmp/kernel-headers-*-RPi-*.txz +cd $Slack_base +## glibc must be the same version as for the cross-compiler to prevent 'undefined reference to …' errors +installpkg l/glibc-2.29-*.txz installpkg */dbus-*.txz installpkg a/eudev-*.txz installpkg x/fontconfig-*.txz @@ -547,6 +664,7 @@ installpkg x/mesa-*.txz installpkg a/util-linux-*.txz installpkg l/zlib-*.txz installpkg l/harfbuzz-*.txz +installpkg l/graphite2-*.txz installpkg l/lcms2-*.txz installpkg x/libXau-*.txz installpkg x/libXdamage-*.txz @@ -580,7 +698,6 @@ installpkg a/xz-*.txz installpkg l/openexr-*.txz installpkg l/ilmbase-*.txz installpkg l/expat-*.txz -installpkg x/libXcomposite-*.txz installpkg n/gnutls-*.txz installpkg n/p11-kit-*.txz installpkg l/libunistring-*.txz @@ -592,8 +709,6 @@ installpkg a/attr-*.txz installpkg x/libpthread-stubs-*.txz installpkg n/libtirpc-*.txz installpkg x/libfontenc-*.txz -installpkg x/libXinerama-*.txz -installpkg x/libXdamage-*.txz installpkg x/libXtst-*.txz installpkg n/htdig-*.txz installpkg x/libxkbfile-*.txz @@ -601,51 +716,40 @@ installpkg x/xorgproto-*.txz ## + for tdeutils installpkg l/gmp-*.txz installpkg d/python-*.txz +installpkg d/python3-*.txz ## + for imlib installpkg l/libtiff-*.txz installpkg l/giflib-*.txz ## + for tdegraphics installpkg l/poppler-*.txz -## remove .la files and any links to them - they can cause a problem because the paths are hard-coded to /usr/... and so pick up the build libs rather than the host libs in SYSROOT -find $SYSROOT/usr/lib -type l -name \*.la -exec rename .la .la-bak {} \; -find $SYSROOT/usr/lib -type f -name \*.la -exec rename .la .la-bak {} \; + +## + for imlib - Slarm64 deps +installpkg l/libwebp-*.txz +installpkg l/zstd-*.txz + +## remove .la files and any links to them - they can cause a problem because the paths are hard-coded to /usr/... and so pick up the build machine libs rather than the libs in SYSROOT +find $SYSROOT/usr/lib$LIBDIRSUFFIX -type l -name \*.la -exec rename .la .la-bak {} \; +find $SYSROOT/usr/lib$LIBDIRSUFFIX -type f -name \*.la -exec rename .la .la-bak {} \; ## restore ldconfig mv /sbin/ldconfig-bak /sbin/ldconfig -) - -## From the cross compiler, add any additional libs that might be needed -(cd $SYSROOT/lib -ln -s $XGCC_DIR/arm-linux-gnueabihf/lib/*.so* .) +unset ROOT +cd / + +## This link is in the wrong place +[[ $ARM == aarch64 ]] && mv $SYSROOT/ld-linux-aarch64.so.1 $SYSROOT/lib/ld-linux-aarch64.so.1 ## Set the PATH for this shell -## Add $XGCC_DIR/bin for arm-linux-gnueabihf-gcc etc; $XGCC_DIR/arm-linux-gnueabihf/bin for strip etc. -export PATH=$XGCC_DIR/bin:$XGCC_DIR/arm-linux-gnueabihf/bin:/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin - -## Set the variables for the TDE packages builds -export SLKLDFLAGS="" -export SLKCFLAGS=-O2 -export INSTALL_TDE="/opt/trinity" -export COMPILER="arm-linux-gnueabihf-gcc" -export COMPILER_CXX="arm-linux-gnueabihf-g++" -export CC=$COMPILER \ -export CXX=$COMPILER_CXX \ -export HOST=arm-linux-gnueabihf -export LIBDIRSUFFIX="" -export TQTDIR=$INSTALL_TDE/lib$LIBDIRSUFFIX/tqt3 -export NUMJOBS=-j6 -export SYS_CNF_DIR="/etc/trinity" -export TDE_VERSION=R14.0.5 -export BUILD=1 -export I18N=en_GB +## Add $XGCC_DIR/bin for $HOST-gcc etc; $XGCC_DIR/$HOST/bin for strip etc. +export PATH=$XGCC_DIR/bin:$XGCC_DIR/$HOST/bin:/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin ## Set up pkg-config to prefix -I and -L paths in *.pc files with $SYSROOT. ## This works where the host libs and headers are in $SYSROOT … -## But TDE doesn't install to SYSROOT, its .pc files might be in, say, /opt/trinity/lib/pkgconfig, and pkg-config will prefix the -I and -L paths with $SYSROOT - with the result that TDE includes and libs can't be found. +## But TDE doesn't install to SYSROOT, its .pc files might be in, say, /opt/trinity/lib/pkgconfig, with the result that TDE includes and libs can't be found. ## If INSTALL_TDE=/usr, TDE would also have to be *installed* to SYSROOT - linking wouldn't work because that would pull the build system libs and headers into SYSROOT, as would bind mounting it. -## So my work-around for this is to install TDE to both / and $SYSROOT so that the TDE binaries will be found in $INSTALL_TDE and pkg-config prefixed paths will locate the headers and libs in $SYSROOT$INSTALL_TDE. +## So my work-around for this is to install TDE to both / and $SYSROOT so that the TDE binaries will be found in $INSTALL_TDE and pkg-config will locate the headers and libs in $SYSROOT$INSTALL_TDE. export PKG_CONFIG_PATH= export PKG_CONFIG_SYSROOT_DIR=$SYSROOT -export PKG_CONFIG_LIBDIR=$SYSROOT/usr/lib/pkgconfig:$SYSROOT/usr/share/pkgconfig:$SYSROOT$INSTALL_TDE/lib/pkgconfig +export PKG_CONFIG_LIBDIR=$SYSROOT/usr/lib$LIBDIRSUFFIX/pkgconfig:$SYSROOT/usr/share/pkgconfig:$SYSROOT$INSTALL_TDE/lib$LIBDIRSUFFIX/pkgconfig ## Functions - common to each build untar_fn () @@ -681,14 +785,14 @@ mkdir -p $PKG/install makepkg_fn () { cd $PKG -makepkg --linkadd y --chown n $OUTPUT/$PRGNAM-$VERSION-arm_hf-$BUILD.txz +makepkg --linkadd y --chown n $OUTPUT/$PRGNAM-$VERSION-$ARM-$BUILD.txz } ltoolupdate_fn () { ## look in SYSROOT for headers and libs sed -i "s|/usr/include|$SYSROOT&|g" admin/acinclude.m4.in -sed -i "s|/usr/lib|$SYSROOT&|g" admin/acinclude.m4.in +sed -i "s|/usr/lib|$SYSROOT/usr/lib$LIBDIRSUFFIX|g" admin/acinclude.m4.in ## correct the variable name in error message sed -i "s|variable UIC to|variable UIC_PATH to|" admin/acinclude.m4.in @@ -720,7 +824,7 @@ echo " set(CMAKE_SYSTEM_NAME Linux) set(CMAKE_SYSTEM_PROCESSOR arm) set(CMAKE_SYSROOT $SYSROOT) ## maybe try this later -## set(CMAKE_CROSSCOMPILING_EMULATOR $XGCC_DIR/bin/arm-linux-gnueabihf-gcc) +## set(CMAKE_CROSSCOMPILING_EMULATOR $XGCC_DIR/bin/$HOST-gcc) ## these don't seem to have any affect: set(PKG_CONFIG_USE_CMAKE_PREFIX_PATH $SYSROOT) set(CMAKE_FIND_ROOT_PATH $SYSROOT) @@ -732,14 +836,10 @@ echo " set(CMAKE_SYSTEM_NAME Linux) close

- +

- +
… tqmoc and meinproc x86 binaries  The cross compiling build time can be reduced by using x86 versions of tqmoc and meinproc which produce ARCH independent ouput. The figures for the tdebase build demonstrate how much quicker a build can be. @@ -748,22 +848,22 @@ M_proc - start tqmoc is taken from a pre-built tqt3 x86 package. meinproc with its associated x86 TDE libs is set up from pre-built x86 packages. -Variables for pre-built x86 packages +Variables for pre-built x86 packages - these were built to install to /opt/tde on a 64-bit system INSTALL_TDE_x86="/opt/tde" LIBDIRSUFFIX_x86="64" ## Install x86 packages to temporary location on BUILD system -(cd /location_of_packages -ROOT=/tmp/x86/ installpkg tqt3-R14.0.5-x86_64-*.txz tqtinterface-R14.0.5-x86_64-*.txz dbus-1-tqt-R14.0.5-x86_64-*.txz tdelibs-R14.0.5-x86_64-*.txz libart_lgpl-R14.0.5-x86_64-*.txz) +cd /location_of_packages +ROOT=/tmp/x86/ installpkg tqt3-R14.0.5-x86_64-*.txz tqtinterface-R14.0.5-x86_64-*.txz dbus-1-tqt-R14.0.5-x86_64-*.txz tdelibs-R14.0.5-x86_64-*.txz libart_lgpl-R14.0.5-x86_64-*.txz ## Copy tqmoc, and meinproc and its dependent libraries, to a convenient location, $SYSROOT/x86 -(cd $SYSROOT/x86 +cd $SYSROOT/x86 cp -a /tmp/x86$INSTALL_TDE_x86/lib$LIBDIRSUFFIX_x86/tqt3-R14.0.5/bin/tqmoc . cp -a /tmp/x86$INSTALL_TDE_x86/bin/meinproc . cp -a /tmp/x86$INSTALL_TDE_x86/lib$LIBDIRSUFFIX_x86/lib{DCOP,dbus-1-tqt,tde{core,fx,io,su,ui,walletclient}}.so* . cp -a /tmp/x86$INSTALL_TDE_x86/lib$LIBDIRSUFFIX_x86/tqt3-R14.0.5/lib/libtqt-mt.so* . cp -a /tmp/x86/usr/lib$LIBDIRSUFFIX_x86/lib{tqt,art_lgpl_2}.so* . -) + rm -rf /tmp/x86* ## Add an RPATH so meinproc will use these libraries @@ -773,16 +873,12 @@ patchelf --force-rpath --set-rpath $SYSROOT/x86 $SYSROOT/x86/libtdecore.so.14.0. close
- +
Builds
- +
… tqt3   @@ -804,27 +900,25 @@ SUB_DIR=dependencies/ untar_fn
-## Build everything=arm for RPi3 installation -## Remove some stuff that's not needed for TDE build and run-time support +## Build 'everything = arm' for RPi3 installation +## Remove some stuff that's not needed for TDE build and run-time support ## html docs occupy ~21M -sed -i '/htmldocs/d' src/qt_install.pri +sed -i '/htmldocs/d' src/qt_install.pri sed -i '/translations/d' src/qt_install.pri sed -i '/assistanttranslations/d' tools/assistant/assistant.pro sed -i '/phrasebooks/d' tools/linguist/linguist/linguist.pro sed -i '/templates/d' tools/designer/designer/designer.pro - + ## only need linux-g++ -mv mkspecs/linux-g++ ../ +mv mkspecs/linux-g++ ../ rm -rf mkspecs/* mv ../linux-g++ mkspecs/ - -## RPATH is to be set as $ORIGIN/../lib, so don't need absolute libs directory built in: -sed -i "s|QMAKE_RPATH.*$|QMAKE_RPATH =|" mkspecs/linux-g++/qmake.conf +## RPATH is to be set as $ORIGIN/../lib$LIBDIRSUFFIX, so don't need absolute libs directory built in: ## Allow setting CC/CXX for linux-g++/qmake.conf -[[ ! $(grep COMPILER mkspecs/linux-g++/qmake.conf) ]] && { -echo $'--- mkspecs/linux-g++/qmake.conf +## Set correct paths for includes and libs +echo $'--- mkspecs/linux-g++/qmake.conf +++ mkspecs/linux-g++/qmake.conf @@ -11 +11 @@ -QMAKE_CC\t\t= gcc @@ -832,29 +926,58 @@ echo $'--- mkspecs/linux-g++/qmake.conf @@ -29 +29 @@ -QMAKE_CXX\t\t= g++ +QMAKE_CXX\t\t= $(COMPILER_CXX) +@@ -42,2 +42,2 @@ +-QMAKE_INCDIR_X11\t= /usr/X11R6/include +-QMAKE_LIBDIR_X11\t= /usr/X11R6/lib ++QMAKE_INCDIR_X11\t= /usr/include/X11 ++QMAKE_LIBDIR_X11\t= /usr/lib$(LIBDIRSUFFIX) +@@ -45,3 +45,3 @@ +-QMAKE_LIBDIR_QT\t\t= $(QTDIR)/lib +-QMAKE_INCDIR_OPENGL\t= /usr/X11R6/include +-QMAKE_LIBDIR_OPENGL\t= /usr/X11R6/lib ++QMAKE_LIBDIR_QT\t\t= $(QTDIR)/lib$(LIBDIRSUFFIX) ++QMAKE_INCDIR_OPENGL\t= /usr/include/GL ++QMAKE_LIBDIR_OPENGL\t= /usr/lib$(LIBDIRSUFFIX) @@ -49,2 +49,2 @@ -QMAKE_LINK\t\t= g++ -QMAKE_LINK_SHLIB\t= g++ +QMAKE_LINK\t\t= $(COMPILER_CXX) -+QMAKE_LINK_SHLIB\t= $(COMPILER_CXX)' | while read line ++QMAKE_LINK_SHLIB\t= $(COMPILER_CXX) +@@ -58 +58 @@ +-QMAKE_RPATH\t\t= -Wl,-rpath, ++QMAKE_RPATH =' | while read line do patch -p0 done -} chown_fn ## only look in sysroot for includes and libs sed -i "s|/usr/include|$SYSROOT&|" config.tests/{unix,x11}/*.test sed -i "s| /include| $SYSROOT/include|" config.tests/{unix,x11}/*.test -sed -i "s| /lib| $SYSROOT/lib|" config.tests/{unix,x11}/*.test -sed -i "s| /usr/lib| $SYSROOT/usr/lib|" config.tests/{unix,x11}/*.test -sed -i "s|\"/lib|\"$SYSROOT/lib|" config.tests/unix/checkavail +sed -i "s| /lib| $SYSROOT/lib$LIBDIRSUFFIX|" config.tests/{unix,x11}/*.test +sed -i "s| /usr/lib| $SYSROOT/usr/lib$LIBDIRSUFFIX|" config.tests/{unix,x11}/*.test +sed -i "s|\"/lib|\"$SYSROOT/lib$LIBDIRSUFFIX|" config.tests/unix/checkavail sed -i "s|/usr|$SYSROOT&|" config.tests/unix/checkavail -## Set up an arm mkspecs -cp -a $TMP/tmp-tqt3/dependencies/tqt3/mkspecs/linux-g++ $TMP/tmp-tqt3/dependencies/tqt3/mkspecs/linux-arm-g++ -sed -i "s|/usr|$SYSROOT&|" mkspecs/linux-arm-g++/qmake.conf +## Set up an arm mkspecs to use for this build where includes and libs paths are set to SYSROOT +cp -a mkspecs/linux-g++ mkspecs/linux-arm-g++ + +echo $'--- mkspecs/linux-arm-g++/qmake.conf ++++ mkspecs/linux-arm-g++/qmake.conf +@@ -42,2 +42,2 @@ +-QMAKE_INCDIR_X11\t= /usr/include/X11 +-QMAKE_LIBDIR_X11\t= /usr/lib$(LIBDIRSUFFIX) ++QMAKE_INCDIR_X11\t= $(SYSROOT)/usr/include/X11 ++QMAKE_LIBDIR_X11\t= $(SYSROOT)/usr/lib$(LIBDIRSUFFIX) +@@ -46,2 +46,2 @@ +-QMAKE_INCDIR_OPENGL\t= /usr/include/GL +-QMAKE_LIBDIR_OPENGL\t= /usr/lib$(LIBDIRSUFFIX) ++QMAKE_INCDIR_OPENGL\t= $(SYSROOT)/usr/include/GL ++QMAKE_LIBDIR_OPENGL\t= $(SYSROOT)/usr/lib$(LIBDIRSUFFIX)' | while read line +do +patch -p0 +done ## Set -platform to arm so that tqmoc is built as an arm binary for installation on RPi3. echo "yes" | CFLAGS="$SLKCFLAGS" CXXFLAGS="$SLKCFLAGS" \ @@ -890,41 +1013,43 @@ sed -i "s|/usr|$SYSROOT&|" mkspecs/linux-arm-g++/qmake.conf -plugin-style-sgi \ -plugin-style-windows \ -fast \ - -R-Wl,-rpath,\'\\\$\$ORIGIN/../lib\' + -R-Wl,-rpath,\'\\\$\$ORIGIN/../lib$LIBDIRSUFFIX\' ## Don't build tutorial and examples which won't be installed because the release version is being built -make $NUMJOBS symlinks src-qmake src-moc sub-src sub-tools +## Build in a sub-shell to temporarily add the path to libtqt-mt.so.3 required only for this build +(LD_LIBRARY_PATH=$TMP/tmp-$PRGNAM/dependencies/tqt3/lib:$LD_LIBRARY_PATH \ +make $NUMJOBS symlinks src-qmake src-moc sub-src sub-tools) make install INSTALL_ROOT=$PKG ## Remove some more stuff that's not needed for TDE build and run-time support ## which I haven't yet figured out how to avoid building in the first place ## binaries -rm $PKG$INSTALL_TDE/lib/tqt3-$VERSION/bin/tqtmergetr -rm $PKG$INSTALL_TDE/lib/tqt3-$VERSION/bin/tqtcreatecw -rm $PKG$INSTALL_TDE/lib/tqt3-$VERSION/bin/tqtconfig -rm $PKG$INSTALL_TDE/lib/tqt3-$VERSION/bin/tqm2ts -rm $PKG$INSTALL_TDE/lib/tqt3-$VERSION/bin/tqlupdate -rm $PKG$INSTALL_TDE/lib/tqt3-$VERSION/bin/tqlrelease -rm $PKG$INSTALL_TDE/lib/tqt3-$VERSION/bin/tqlinguist -rm $PKG$INSTALL_TDE/lib/tqt3-$VERSION/bin/tqembed -rm $PKG$INSTALL_TDE/lib/tqt3-$VERSION/bin/tqdesigner -rm $PKG$INSTALL_TDE/lib/tqt3-$VERSION/bin/tqassistant -rm $PKG$INSTALL_TDE/lib/tqt3-$VERSION/bin/msg2tqm -rm $PKG$INSTALL_TDE/lib/tqt3-$VERSION/bin/maketqpf - +rm $PKG$INSTALL_TDE/lib$LIBDIRSUFFIX/tqt3-$VERSION/bin/tqtmergetr +rm $PKG$INSTALL_TDE/lib$LIBDIRSUFFIX/tqt3-$VERSION/bin/tqtcreatecw +rm $PKG$INSTALL_TDE/lib$LIBDIRSUFFIX/tqt3-$VERSION/bin/tqtconfig +rm $PKG$INSTALL_TDE/lib$LIBDIRSUFFIX/tqt3-$VERSION/bin/tqm2ts +rm $PKG$INSTALL_TDE/lib$LIBDIRSUFFIX/tqt3-$VERSION/bin/tqlupdate +rm $PKG$INSTALL_TDE/lib$LIBDIRSUFFIX/tqt3-$VERSION/bin/tqlrelease +rm $PKG$INSTALL_TDE/lib$LIBDIRSUFFIX/tqt3-$VERSION/bin/tqlinguist +rm $PKG$INSTALL_TDE/lib$LIBDIRSUFFIX/tqt3-$VERSION/bin/tqembed +rm $PKG$INSTALL_TDE/lib$LIBDIRSUFFIX/tqt3-$VERSION/bin/tqdesigner +rm $PKG$INSTALL_TDE/lib$LIBDIRSUFFIX/tqt3-$VERSION/bin/tqassistant +rm $PKG$INSTALL_TDE/lib$LIBDIRSUFFIX/tqt3-$VERSION/bin/msg2tqm +rm $PKG$INSTALL_TDE/lib$LIBDIRSUFFIX/tqt3-$VERSION/bin/maketqpf + ## libraries -rm $PKG$INSTALL_TDE/lib/tqt3-$VERSION/lib/libtqteditor* -rm $PKG$INSTALL_TDE/lib/tqt3-$VERSION/lib/libtqtdesignercore* - +rm $PKG$INSTALL_TDE/lib$LIBDIRSUFFIX/tqt3-$VERSION/lib/libtqteditor* +rm $PKG$INSTALL_TDE/lib$LIBDIRSUFFIX/tqt3-$VERSION/lib/libtqtdesignercore* + ## remove sysroot path from RPi3 package -sed -i "s|$SYSROOT||g" $PKG$INSTALL_TDE/lib/tqt3-$VERSION/lib/libtqt-mt.la -sed -i "s|$SYSROOT||g" $PKG$INSTALL_TDE/lib/tqt3-$VERSION/lib/pkgconfig/tqt-mt.pc +sed -i "s|-L\$(S.*X)||g;s|$SYSROOT||g" $PKG$INSTALL_TDE/lib$LIBDIRSUFFIX/tqt3-$VERSION/lib/libtqt-mt.la +sed -i "s|-L\$(S.*X)||g;s|$SYSROOT||g" $PKG$INSTALL_TDE/lib$LIBDIRSUFFIX/tqt3-$VERSION/lib/pkgconfig/tqt-mt.pc ## move mkspecs/linux-arm-g++ to the TDE installation directory - it isn't needed for the RPi3 package, but is needed for building tqca-tls -(cd $PKG$INSTALL_TDE/lib/tqt3-$VERSION/mkspecs/ -mkdir -p $INSTALL_TDE/lib/tqt3-$VERSION/mkspecs -mv linux-arm-g++ $INSTALL_TDE/lib/tqt3-$VERSION/mkspecs +(cd $PKG$INSTALL_TDE/lib$LIBDIRSUFFIX/tqt3-$VERSION/mkspecs/ +mkdir -p $INSTALL_TDE/lib$LIBDIRSUFFIX/tqt3-$VERSION/mkspecs +mv linux-arm-g++ $INSTALL_TDE/lib$LIBDIRSUFFIX/tqt3-$VERSION/mkspecs ln -sf linux-g++ default) ## Link the shared libraries @@ -935,6 +1060,7 @@ ln -sf linux-g++ default) ) mkdir -p $PKG/etc/profile.d + echo $"#!""/bin/sh # Environment variables for the Qt package. # @@ -1025,23 +1151,21 @@ EOINS makepkg_fn +## move ldconfig out of the way - links will be set up by doinst.sh +mv /sbin/ldconfig /sbin/ldconfig-bak ## install to '/' for TDE binaries -installpkg /tmp/$PRGNAM-$VERSION-arm_hf-$BUILD.txz +installpkg $OUTPUT/$PRGNAM-$VERSION-$ARM-$BUILD.txz ## and install to SYSROOT for TDE headers and libs -ROOT=$SYSROOT installpkg /tmp/$PRGNAM-$VERSION-arm_hf-$BUILD.txz +ROOT=$SYSROOT installpkg $OUTPUT/$PRGNAM-$VERSION-$ARM-$BUILD.txz close
- +

- +
… tqtinterface   @@ -1089,7 +1213,7 @@ make $NUMJOBS make DESTDIR=$PKG install ## edit tqmoc path from package so that when installed on RPi3, the tqmoc path is correct -sed -i "s|$SYSROOT/x86/tqmoc|$INSTALL_TDE/bin/tqmoc|" $PKG/usr/lib/pkgconfig/tqt.pc +sed -i "s|$SYSROOT/x86/tqmoc|$INSTALL_TDE/bin/tqmoc|" $PKG/usr/lib$LIBDIRSUFFIX/pkgconfig/tqt.pc sed -i "s|$SYSROOT/x86/tqmoc|$INSTALL_TDE/bin/tqmoc|" $PKG/usr/bin/tmoc strip_fn @@ -1098,24 +1222,20 @@ mkdir_install_fn makepkg_fn -installpkg /tmp/$PRGNAM-$VERSION-arm_hf-$BUILD.txz -ROOT=$SYSROOT installpkg /tmp/$PRGNAM-$VERSION-arm_hf-$BUILD.txz +installpkg $OUTPUT/$PRGNAM-$VERSION-$ARM-$BUILD.txz +ROOT=$SYSROOT installpkg $OUTPUT/$PRGNAM-$VERSION-$ARM-$BUILD.txz -## revert tqmoc path in tmoc for cross compiling +## revert tqmoc path in tmoc for cross compiling on the BUILD system sed -i "s|$INSTALL_TDE/bin/tqmoc|$SYSROOT/x86/tqmoc|" {,$SYSROOT}/usr/bin/tmoc
close
- +

- +
… arts   @@ -1163,7 +1283,7 @@ make $NUMJOBS make DESTDIR=$PKG install ## remove sysroot path from package -sed -i "s|$SYSROOT||g" $PKG$INSTALL_TDE/lib/pkgconfig/artsc.pc +sed -i "s|$SYSROOT||g" $PKG$INSTALL_TDE/lib$LIBDIRSUFFIX/pkgconfig/artsc.pc strip_fn @@ -1171,21 +1291,17 @@ mkdir_install_fn makepkg_fn -installpkg /tmp/$PRGNAM-$VERSION-arm_hf-$BUILD.txz -ROOT=$SYSROOT installpkg /tmp/$PRGNAM-$VERSION-arm_hf-$BUILD.txz +installpkg $OUTPUT/$PRGNAM-$VERSION-$ARM-$BUILD.txz +ROOT=$SYSROOT installpkg $OUTPUT/$PRGNAM-$VERSION-$ARM-$BUILD.txz
close
- +

- +
… dbus-tqt   @@ -1235,21 +1351,17 @@ mkdir_install_fn makepkg_fn -installpkg /tmp/$PRGNAM-$VERSION-arm_hf-$BUILD.txz -ROOT=$SYSROOT installpkg /tmp/$PRGNAM-$VERSION-arm_hf-$BUILD.txz +installpkg $OUTPUT/$PRGNAM-$VERSION-$ARM-$BUILD.txz +ROOT=$SYSROOT installpkg $OUTPUT/$PRGNAM-$VERSION-$ARM-$BUILD.txz close
- +

- +
… dbus-1-tqt   @@ -1299,21 +1411,17 @@ mkdir_install_fn makepkg_fn -installpkg /tmp/$PRGNAM-$VERSION-arm_hf-$BUILD.txz -ROOT=$SYSROOT installpkg /tmp/$PRGNAM-$VERSION-arm_hf-$BUILD.txz +installpkg $OUTPUT/$PRGNAM-$VERSION-$ARM-$BUILD.txz +ROOT=$SYSROOT installpkg $OUTPUT/$PRGNAM-$VERSION-$ARM-$BUILD.txz close
- +

- +
… libart_lgpl   @@ -1333,6 +1441,26 @@ mkdir $TMP/tmp-$PRGNAM SUB_DIR=dependencies/ untar_fn +## configure error: +## checking host system type... Invalid configuration `aarch64-linux-gnu': machine `aarch64' not recognized +## Use a work-around - remove the test and force 'aarch64' recognition: +[[ $ARM == aarch64 ]] && { +echo $"--- configure ++++ configure +@@ -3996 +3996 @@ +- ++<<'comment' +@@ -4010 +4009,0 @@ +- +@@ -4011,0 +4011,3 @@ ++comment ++ac_cv_host=aarch64-linux-gnu ++" | while read line +do +patch -p0 +done +} + chown_fn cd_builddir_fn @@ -1355,20 +1483,16 @@ mkdir_install_fn makepkg_fn -installpkg /tmp/$PRGNAM-$VERSION-arm_hf-$BUILD.txz -ROOT=$SYSROOT installpkg /tmp/$PRGNAM-$VERSION-arm_hf-$BUILD.txz +installpkg $OUTPUT/$PRGNAM-$VERSION-$ARM-$BUILD.txz +ROOT=$SYSROOT installpkg $OUTPUT/$PRGNAM-$VERSION-$ARM-$BUILD.txz close
- +

- +
… tqca-tls   @@ -1396,16 +1520,14 @@ sed -i 's|flags;|flags + " -lssl -lcrypto ";|' configure sed -i 's|if(ret == 0)|// &|' configure ## add tqt3 headers path -sed -i "s|^INCLUDEPATH += .*$|&\nINCLUDEPATH += $INSTALL_TDE/lib/tqt3-$VERSION/include|" configure +sed -i "s|^INCLUDEPATH += .*$|&\nINCLUDEPATH += $INSTALL_TDE/lib$LIBDIRSUFFIX/tqt3-$VERSION/include|" configure -## add LD_LIBRARY_PATH for configure to find libtqt-mt.so.3 -LD_LIBRARY_PATH=$SYSROOT$TQTDIR/lib \ QMAKESPEC=linux-arm-g++ \ QTDIR=$INSTALL_TDE \ ./configure ## add tqt3 headers path -sed -i "s|INCPATH =.*$|& -I$INSTALL_TDE/lib/tqt3-$VERSION/include|" Makefile +sed -i "s|INCPATH =.*$|& -I$INSTALL_TDE/lib$LIBDIRSUFFIX/tqt3-$VERSION/include|" Makefile make $NUMJOBS @@ -1418,21 +1540,17 @@ mkdir_install_fn makepkg_fn -installpkg /tmp/$PRGNAM-$VERSION-arm_hf-$BUILD.txz -ROOT=$SYSROOT installpkg /tmp/$PRGNAM-$VERSION-arm_hf-$BUILD.txz +installpkg $OUTPUT/$PRGNAM-$VERSION-$ARM-$BUILD.txz +ROOT=$SYSROOT installpkg $OUTPUT/$PRGNAM-$VERSION-$ARM-$BUILD.txz close
- +

- +
… tdelibs   @@ -1488,7 +1606,7 @@ done || true FindTQt-patch_fn ## Check for avahi-tqt -[[ $(ls $SYSROOT/$INSTALL_TDE/lib/libavahi-tqt.so.*) ]] && AVAHI="ON" +[[ $(ls $SYSROOT/$INSTALL_TDE/lib$LIBDIRSUFFIX/libavahi-tqt.so.*) ]] && AVAHI="ON" cd_builddir_fn @@ -1535,17 +1653,15 @@ cmake-toolchain_fn .. ## error: /usr/include/gnu/stubs.h:7:11: fatal error: gnu/stubs-32.h: No such file or directory -## Modify paths so that SYSROOT headers and libs are used: +## Modify paths so that SYSROOT headers and libs are used ## The alternative is to modify FindPkgConfig.cmake to prefix the INCLUDEDIR and LIBDIR results with ${CMAKE_SYSROOT}, but as this issue only surfaces here, that's probably not worth doing. sed -i "s|=/usr/include|=$SYSROOT/usr/include|" CMakeCache.txt -sed -i "s|=/usr/lib|=$SYSROOT/usr/lib|" CMakeCache.txt +sed -i "s|=/usr/lib$LIBDIRSUFFIX|=$SYSROOT/usr/lib$LIBDIRSUFFIX|" CMakeCache.txt -## add LD_LIBRARY_PATH for dbusxml2qt3 can't find libtqt-mt.so.3 error -LD_LIBRARY_PATH=$SYSROOT$TQTDIR/lib \ make $NUMJOBS make DESTDIR=$PKG install -## remove sysroot path from package +## remove sysroot paths to libz.so, libjpeg.so, and libasound.so from package sed -i "s|$SYSROOT||g" $PKG$INSTALL_TDE/share/cmake/tdelibs.cmake strip_fn @@ -1573,8 +1689,8 @@ EOINS makepkg_fn -installpkg /tmp/$PRGNAM-$VERSION-arm_hf-$BUILD.txz -ROOT=$SYSROOT installpkg /tmp/$PRGNAM-$VERSION-arm_hf-$BUILD.txz +installpkg $OUTPUT/$PRGNAM-$VERSION-$ARM-$BUILD.txz +ROOT=$SYSROOT installpkg $OUTPUT/$PRGNAM-$VERSION-$ARM-$BUILD.txz ## prefix paths with SYSROOT for build.make => link.txt dependencies for cmake builds for consistency with pkg-config paths sed -i "s|\"$INSTALL_TDE|\"$SYSROOT$INSTALL_TDE|" {,$SYSROOT}$INSTALL_TDE/share/cmake/tdelibs.cmake @@ -1584,22 +1700,18 @@ sed -i "s|;/usr|;$SYSROOT/usr|" {,$SYSROOT}$INSTALL_TDE/share/cmake/tdelibs.cmak close
- +

- +
… tdebase  

close -## copy meinproc to TDE installation directory, setting its location to avoid parsing errors. +## copy the x86 meinproc to TDE installation directory - it's fussy about its location, producing parsing errors otherwise. cp $SYSROOT/x86/meinproc $INSTALL_TDE/bin/meinproc-x86 cd / @@ -1687,7 +1799,7 @@ patch -p0 done ## linux/stat.h:56:8: error: redefinition of struct statx_timestamp -## glibc-2.28 issue - commit de4afaaf00 +## glibc-2.28+ issue - commit de4afaaf00 echo $'--- kdesktop/lock/lockprocess.cc +++ kdesktop/lock/lockprocess.cc @@ -82,3 +81,0 @@ @@ -1757,7 +1869,7 @@ cmake-toolchain_fn .. ## The linker has decided it can't find some libs to build kicker even though they've been built. -## Until the problem is fixed, this works: +## Until the problem is fixed, editing kicker.dir/link.txt and rerunning make works: make $NUMJOBS || \ [[ ! -e ./kicker/kicker/kicker ]] && { sed -i 's|^.*$|& ../../libkonq/libkonq.so.4 ./interfaces/libkickoffsearch_interfaces.so.0|' ./kicker/kicker/CMakeFiles/kicker.dir/link.txt && \ @@ -2021,8 +2133,8 @@ sed -i 's|id:[1-5]|id:4|' etc/inittab makepkg_fn -installpkg /tmp/$PRGNAM-$VERSION-arm_hf-$BUILD.txz -ROOT=$SYSROOT installpkg /tmp/$PRGNAM-$VERSION-arm_hf-$BUILD.txz +installpkg $OUTPUT/$PRGNAM-$VERSION-$ARM-$BUILD.txz +ROOT=$SYSROOT installpkg $OUTPUT/$PRGNAM-$VERSION-$ARM-$BUILD.txz ## prefix paths with SYSROOT for build.make => link.txt dependencies for cmake builds for consistency with pkg-config paths sed -i "s|\"$INSTALL_TDE|\"$SYSROOT$INSTALL_TDE|g" {,$SYSROOT}$INSTALL_TDE/share/cmake/*.cmake @@ -2037,15 +2149,11 @@ Build times close

- +

- +
… tdeaddons   @@ -2069,13 +2177,13 @@ chown_fn FindTQt-patch_fn -# check for libatlantic [tdegames] -[[ $(ls $SYSROOT$INSTALL_TDE/lib/libatlantic.so.*) ]] && ATLANTIKDESIGNER="ON" +## check for libatlantic [tdegames] +[[ $(ls $SYSROOT$INSTALL_TDE/lib$LIBDIRSUFFIX/libatlantic.so.*) ]] && ATLANTIKDESIGNER="ON" -# check for kaddressbook in tdepim +## check for kaddressbook in tdepim [[ $(ls $SYSROOT$INSTALL_TDE/share/cmake/kaddressbook.cmake) ]] && KADDRESSBOOK_PLUGINS="ON" -# check for tdemultimedia +## check for tdemultimedia [[ $(ls $SYSROOT$INSTALL_TDE/include/arts/artsmodules.h) ]] && NOATUN_PLUGINS="ON" cd_builddir_fn @@ -2134,21 +2242,17 @@ EOINS makepkg_fn ## don't need to install this -## installpkg /tmp/$PRGNAM-$VERSION-arm_hf-$BUILD.txz -## ROOT=$SYSROOT installpkg /tmp/$PRGNAM-$VERSION-arm_hf-$BUILD.txz +## installpkg $OUTPUT/$PRGNAM-$VERSION-$ARM-$BUILD.txz +## ROOT=$SYSROOT installpkg $OUTPUT/$PRGNAM-$VERSION-$ARM-$BUILD.txz
close
- +

- +
… tdeutils   @@ -2229,22 +2333,18 @@ EOINS makepkg_fn ## don't need to install this -## installpkg /tmp/$PRGNAM-$VERSION-arm_hf-$BUILD.txz -## ROOT=$SYSROOT installpkg /tmp/$PRGNAM-$VERSION-arm_hf-$BUILD.txz +## installpkg $OUTPUT/$PRGNAM-$VERSION-$ARM-$BUILD.txz +## ROOT=$SYSROOT installpkg $OUTPUT/$PRGNAM-$VERSION-$ARM-$BUILD.txz
close
- +

- +
… imlib  Required for kuickshow - part of tdegraphics. @@ -2721,6 +2821,24 @@ do patch -p0 done + +## configure error: +## checking host system type... Invalid configuration `aarch64-linux-gnu': machine `aarch64' not recognized +## Use a work-around - remove the test and force 'aarch64' recognition: +[[ $ARM == aarch64 ]] && { +echo $"--- configure ++++ configure +@@ -3113,0 +3114 @@ ++<<'comment' +@@ -3127,0 +3129,2 @@ ++comment ++ac_cv_host=aarch64-linux-gnu" | while read line +do +patch -p0 +done +} + + chown_fn cd_builddir_fn @@ -2742,23 +2860,19 @@ mkdir_install_fn makepkg_fn -## only need to install to $SYSROOT -## installpkg /tmp/$PRGNAM-$VERSION-arm_hf-$BUILD.txz -ROOT=$SYSROOT installpkg /tmp/$PRGNAM-$VERSION-arm_hf-$BUILD.txz +## only need to install to $SYSROOT for the tdegraphics build +## installpkg $OUTPUT/$PRGNAM-$VERSION-$ARM-$BUILD.txz +ROOT=$SYSROOT installpkg $OUTPUT/$PRGNAM-$VERSION-$ARM-$BUILD.txz close
- +

- +
… tdegraphics   @@ -2945,7 +3059,7 @@ cd_builddir_fn ## rm -rf $TMP/tmp-$PRGNAM/$SUB_DIR$PRGNAM/build-$PRGNAM/* ## If imlib is installed, include kuickshow: -[[ $(ls $SYSROOT/usr/lib/libImlib.so.*) ]] && KUICKSHOW=ON +[[ $(ls $SYSROOT/usr/lib$LIBDIRSUFFIX/libImlib.so.*) ]] && KUICKSHOW=ON cmake-toolchain_fn cmake \ -D CMAKE_TOOLCHAIN_FILE=./cmake-toolchain.cmake \ @@ -3000,21 +3114,17 @@ EOINS makepkg_fn ## don't need to install this -## installpkg /tmp/$PRGNAM-$VERSION-arm_hf-$BUILD.txz -## ROOT=$SYSROOT installpkg /tmp/$PRGNAM-$VERSION-arm_hf-$BUILD.txz +## installpkg $OUTPUT/$PRGNAM-$VERSION-$ARM-$BUILD.txz +## ROOT=$SYSROOT installpkg $OUTPUT/$PRGNAM-$VERSION-$ARM-$BUILD.txz close
- +

- +
… tdeadmin   @@ -3037,6 +3147,22 @@ untar_fn ltoolupdate_fn +## configure error: +## checking host system type... Invalid configuration `aarch64-linux-gnu': machine `aarch64' not recognized +## Use a work-around - remove the test and force 'aarch64' recognition: +[[ $ARM == aarch64 ]] && { +echo $"--- configure ++++ configure +@@ -2944,0 +2945 @@ ++<<'comment' +@@ -2961,0 +2963,2 @@ ++comment ++ac_cv_host=aarch64-linux-gnu" | while read line +do +patch -p0 +done +} + chown_fn cd_builddir_fn @@ -3062,7 +3188,7 @@ make $NUMJOBS make DESTDIR=$PKG install ## remove xgcc paths in package -sed -i "s|$XGCC_DIR/arm-linux-gnueabihf|/usr|g" $PKG$INSTALL_TDE/lib/trinity/*.la +sed -i "s|$XGCC_DIR/$HOST|/usr|g" $PKG$INSTALL_TDE/lib$LIBDIRSUFFIX/trinity/*.la strip_fn @@ -3085,22 +3211,18 @@ EOINS makepkg_fn ## don't need to install this -## installpkg /tmp/$PRGNAM-$VERSION-arm_hf-$BUILD.txz -## ROOT=$SYSROOT installpkg /tmp/$PRGNAM-$VERSION-arm_hf-$BUILD.txz +## installpkg $OUTPUT/$PRGNAM-$VERSION-$ARM-$BUILD.txz +## ROOT=$SYSROOT installpkg $OUTPUT/$PRGNAM-$VERSION-$ARM-$BUILD.txz close
- +

- +
… tdmtheme   @@ -3123,6 +3245,22 @@ untar_fn ltoolupdate_fn +## configure error: +## checking host system type... Invalid configuration `aarch64-linux-gnu': machine `aarch64' not recognized +## Use a work-around - remove the test and force 'aarch64' recognition: +[[ $ARM == aarch64 ]] && { +echo $"--- configure ++++ configure +@@ -2809,0 +2810 @@ ++<<'comment' +@@ -2826,0 +2828,2 @@ ++comment ++ac_cv_host=aarch64-linux-gnu" | while read line +do +patch -p0 +done +} + chown_fn cd_builddir_fn @@ -3147,7 +3285,7 @@ make $NUMJOBS make DESTDIR=$PKG install ## remove xgcc paths in package -sed -i "s|$XGCC_DIR/arm-linux-gnueabihf|/usr|g" $PKG$INSTALL_TDE/lib/trinity/*.la +sed -i "s|$XGCC_DIR/$HOST|/usr|g" $PKG$INSTALL_TDE/lib$LIBDIRSUFFIX/trinity/*.la strip_fn @@ -3163,22 +3301,18 @@ EOINS makepkg_fn ## don't need to install this -## installpkg /tmp/$PRGNAM-$VERSION-arm_hf-$BUILD.txz -## ROOT=$SYSROOT installpkg /tmp/$PRGNAM-$VERSION-arm_hf-$BUILD.txz +## installpkg $OUTPUT/$PRGNAM-$VERSION-$ARM-$BUILD.txz +## ROOT=$SYSROOT installpkg $OUTPUT/$PRGNAM-$VERSION-$ARM-$BUILD.txz close
- +

- +
… knemo   @@ -3214,6 +3348,22 @@ sed -i "s|SUBDIRS=.*$|SUBDIRS=$langs|" translations/Makefile.am ltoolupdate_fn +## configure error: +## checking host system type... Invalid configuration `aarch64-linux-gnu': machine `aarch64' not recognized +## Use a work-around - remove the test and force 'aarch64' recognition: +[[ $ARM == aarch64 ]] && { +echo $"--- configure ++++ configure +@@ -2825,0 +2826 @@ ++<<'comment' +@@ -2842,0 +2844,2 @@ ++comment ++ac_cv_host=aarch64-linux-gnu" | while read line +do +patch -p0 +done +} + chown_fn cd_builddir_fn @@ -3238,7 +3388,7 @@ make $NUMJOBS make DESTDIR=$PKG install ## remove xgcc paths in package -sed -i "s|$XGCC_DIR/arm-linux-gnueabihf|/usr|g" $PKG$INSTALL_TDE/lib/trinity/*.la +sed -i "s|$XGCC_DIR/$HOST|/usr|g" $PKG$INSTALL_TDE/lib$LIBDIRSUFFIX/trinity/*.la strip_fn @@ -3247,22 +3397,18 @@ mkdir_install_fn makepkg_fn ## don't need to install this -## installpkg /tmp/$PRGNAM-$VERSION-arm_hf-$BUILD.txz -## ROOT=$SYSROOT installpkg /tmp/$PRGNAM-$VERSION-arm_hf-$BUILD.txz +## installpkg $OUTPUT/$PRGNAM-$VERSION-$ARM-$BUILD.txz +## ROOT=$SYSROOT installpkg $OUTPUT/$PRGNAM-$VERSION-$ARM-$BUILD.txz close
- +

- +
… krusader   @@ -3284,17 +3430,33 @@ mkdir $TMP/tmp-$PRGNAM SUB_DIR=applications/ untar_fn -# set support for additional language(s) as per I18N variable -# but only for languages available with this package +## set support for additional language(s) as per I18N variable +## but only for languages available with this package langs="";for Lang in $I18N;do [[ -e po/$Lang".po" ]] && langs="$langs $Lang"".po";done sed -i "s|POFILES =.*$|POFILES =$langs|" po/Makefile.am langs=$(echo $langs | sed 's|.po||g') -# + [[ $I18N != *ru* ]] && \ sed -i 's| ru||' doc/Makefile.am ltoolupdate_fn +## configure error: +## checking host system type... Invalid configuration `aarch64-linux-gnu': machine `aarch64' not recognized +## Use a work-around - remove the test and force 'aarch64' recognition: +[[ $ARM == aarch64 ]] && { +echo $"--- configure ++++ configure +@@ -2918,0 +2919 @@ ++<<'comment' +@@ -2935,0 +2937,2 @@ ++comment ++ac_cv_host=aarch64-linux-gnu" | while read line +do +patch -p0 +done +} + chown_fn cd_builddir_fn @@ -3319,7 +3481,7 @@ make $NUMJOBS make DESTDIR=$PKG install ## remove xgcc paths in package -sed -i "s|$XGCC_DIR/arm-linux-gnueabihf|/usr|g" $PKG$INSTALL_TDE/lib/trinity/*.la +sed -i "s|$XGCC_DIR/$HOST|/usr|g" $PKG$INSTALL_TDE/lib$LIBDIRSUFFIX/trinity/*.la strip_fn @@ -3337,16 +3499,14 @@ EOINS makepkg_fn ## don't need to install this -## installpkg /tmp/$PRGNAM-$VERSION-arm_hf-$BUILD.txz -## ROOT=$SYSROOT installpkg /tmp/$PRGNAM-$VERSION-arm_hf-$BUILD.txz +## installpkg $OUTPUT/$PRGNAM-$VERSION-$ARM-$BUILD.txz +## ROOT=$SYSROOT installpkg $OUTPUT/$PRGNAM-$VERSION-$ARM-$BUILD.txz close
- + @@ -3357,6 +3517,7 @@ krusader - end

Set up

gcc cross-compiler +

kernel

qemu

build environment

tqmoc and meinproc