Add precise GCC version and libc hash version

pull/365/head
Dmitry Ilyin 2022-08-17 15:26:45 +03:00
parent 15cfd0442f
commit b62e365543
3 changed files with 36 additions and 7 deletions

View File

@ -80,6 +80,10 @@ jobs:
make prepare
make BOARD=unknown_unknown_${{ matrix.platform }}_openipc br-sdk
SDK_PATH=$(find output/images -name "*_sdk-buildroot.tar.gz")
# Why do we need this crap?
NEW="$(dirname $SDK_PATH)/${TOOLNAME}.tgz"
mv $SDK_PATH $NEW
SDK_PATH=$NEW
echo "SDK_PATH=$SDK_PATH" >> $GITHUB_ENV
- uses: actions/upload-artifact@v3
@ -233,6 +237,8 @@ jobs:
echo "BR2_TOOLCHAIN_EXTERNAL_GCC_${GCC_VER:3}=y" >> $CONF_PATH
echo "BR2_ROOTFS_POST_BUILD_SCRIPT=\"\$(TOPDIR)/../scripts/executing_commands_for_${LIBC}.sh\"" >> $CONF_PATH
mkdir /tmp/extsdk
pwd
ls -l
tar xvf ${TOOLNAME}.tgz --strip-components=1 -C /tmp/extsdk >/dev/null
HAS_NAND=$(make BOARD=${BOARD} has-nand)

View File

@ -72,7 +72,7 @@ has-nand:
@sed -rn "s/^BR2_TARGET_ROOTFS_UBI=(y)/\1/p" $(FULL_PATH)
toolname:
@$(SCRIPTS_DIR)/show_toolchains.sh board $(FULL_PATH)
@$(SCRIPTS_DIR)/show_toolchains.sh $(FULL_PATH) $(BR_VER)
list-configs:
@echo

View File

@ -33,14 +33,37 @@ toolchain_by_config() {
SOC=$(echo $CF | cut -d _ -f 3)
case $FMT in
"list")
list)
echo $ARCH $GCC_VER $LIBC $VER $VENDOR $CF
;;
"uniq")
uniq)
echo $ARCH $GCC_VER $LIBC $VER
;;
"board")
echo ${ARCH}-gcc${GCC_VER}-${LIBC}-${VER}
*)
if [ ! -z "$2" ]; then
BR_DIR=buildroot-$2
GCC_VER=$(sed -rn \
"s/^\s+default\s+\"([0-9.]+)\"\s+if BR2_GCC_VERSION_${GCC_VER}_X/\1/p" \
$BR_DIR/package/gcc/Config.in.host)
case $LIBC in
musl)
VER=$(sed -rn "s/^MUSL_VERSION\s*=\s*([0-9.]+)/\1/p" \
$BR_DIR/package/musl/musl.mk)
;;
uclibc)
VER=$(sed -rn "s/^UCLIBC_VERSION\s*=\s*([0-9.]+)/\1/p" \
$BR_DIR/package/uclibc/uclibc.mk)
;;
glibc)
VER=$(sed -rn "s/^GLIBC_VERSION\s*=\s*([0-9.]+).*/\1/p" \
$BR_DIR/package/glibc/glibc.mk | tail -1)
;;
esac
HASH=$(echo $VER | sha1sum | cut -c 1-8)
echo ${ARCH}-gcc${GCC_VER}-${LIBC}-${VER}-${HASH}
else
echo ${ARCH}-gcc${GCC_VER}-${LIBC}-${VER}
fi
;;
esac
fi
@ -49,8 +72,8 @@ toolchain_by_config() {
if [ $# -eq 0 ]; then
$0 list | sort
else
if [ "$1" == "board" ]; then
toolchain_by_config $2 $1
if [ "$1" != "list" ] && [ "$1" != "uniq" ]; then
toolchain_by_config $1 $2
else
for D in br-ext-chip-*; do
for CF in $D/configs/*; do