Bug #1026
closedcross.sh in app builds has hard coded toolchain prefix
100%
Description
This was discovered in RM #1025
All app's that use cross.sh need this update.
The cross.sh script should identify the toolchain prefix like so:
TCPREFIX=$(cd ${TC}/bin && ls -1 *gcc | sed 's/-gcc//')
Then use that in the configure command.
PKG_CONFIG_PATH="" \
PKG_CONFIG_LIBDIR=${STAGING_DIR}/usr/lib/pkgconfig:${STAGING_DIR}/usr/share/pkgconfig \
PKG_CONFIG_SYSROOT_DIR=$STAGING_DIR \
PATH=$TOOLCHAIN/bin:$PATH \
CFLAGS="-g --sysroot=$STAGING_DIR -I$STAGING_DIR/usr/lib/glib-2.0/include -I$STAGING/usr/lib/gtk-2.0/include" \
LDFLAGS="-L$STAGING_DIR/usr/lib -L$STAGING_DIR/lib --sysroot=$STAGING_DIR/" \
./configure --host="${TCPREFIX}"
Tested this against appmgr and it appears to work for RPi4. Need to verify it works for RPi2 and RPi.
Apps that need this updateappmgrlauncherpiboxdpiclockpipicsvideofemusicfepicampixmpibox-network-configlibpiboxraspi2fbpistorepinetpidialer
After testing the app build manually it should also be tested under the metabuild.
Related issues
Updated by Hammel 9 months ago
- Related to Feature #1025: Test pisentry build on RPi 4 added
Updated by Hammel 9 months ago
- Related to deleted (Feature #1025: Test pisentry build on RPi 4)
Updated by Hammel 9 months ago
- Blocks Feature #1025: Test pisentry build on RPi 4 added
Updated by Hammel 9 months ago
- Description updated (diff)
All cross.sh builds have been updated.
Various GNU Make based builds will need their XCC_PREFIX updated.
- ironman+www
lcdshowmjpg-streamermonkeyomxplayerpiboxwwwpmsuipsplashxeoncfg- not required.
This will be harder since we dynamically set the XCC_PREFIXDIR at build time and need to search that dir AFTER that value is set.
Updated by Hammel 9 months ago
Assuming all GNU Make based builds set XCC_PREFIX in the top level config.mk, the following changes should work.
#---------------------------------------------------------------------
# Macro to find toolchain prefix
define GET_TC_PREFIX
$(shell
basename $(shell ls -1 $1/bin/*gcc | sed 's/-gcc//')
)
endef
...
XCC_PREFIX := $(call GET_TC_PREFIX, $(XCC_PREFIXDIR))
This was tested on lcdshow and seems to work, however lcdshow doesn't actually compile anything. It's a setup-only package. raspi2fb builds a binary.
Updated by Hammel 9 months ago
- % Done changed from 0 to 60
Duh. raspi2fb uses cross.sh, not GNU Make, as the front end.
mjpeg-streamer uses GNU Make and generates binaries. Tested the build with that and it worked fine. The binaries have the same size (for rpi4 vs rpi2 builds) but different sha256 sums, which suggests the binaries are from different compilers. The binaries won't be tested until complete system builds are can be generated.