From 3e4b1ad3a3f9bd5bca5a246772c27acf31c83622 Mon Sep 17 00:00:00 2001 From: Hyung-Kyu Choi Date: Tue, 2 May 2017 04:00:01 +0900 Subject: [PATCH] [ARM] Update rootfs for Tizen armel (dotnet/coreclr#11202) * [ARM] Update cross rootfs for armel Tizen Update cross rootfs for armel Tizen Signed-off-by: Hyung-Kyu Choi * [ARM] Update cmake file and CI for armel Tizen Update CI and cmake file for armel Tizen, because rootfs for Tizen is updated. And rootfs for Tizen is embedded in Docker image for CI as Ubuntu for arm does. Signed-off-by: Hyung-Kyu Choi Commit migrated from https://github.com/dotnet/coreclr/commit/a23cd5287f9be53f47c78cf99dfc114518a506d0 --- src/coreclr/cross/armel/tizen-fetch.sh | 46 +++++++++++++++------------- src/coreclr/cross/armel/tizen/tizen.patch | 15 --------- src/coreclr/cross/armel/toolchain.cmake | 2 +- src/coreclr/tests/scripts/arm32_ci_script.sh | 8 +++-- src/coreclr/tests/scripts/arm32_ci_test.sh | 16 +--------- 5 files changed, 32 insertions(+), 55 deletions(-) diff --git a/src/coreclr/cross/armel/tizen-fetch.sh b/src/coreclr/cross/armel/tizen-fetch.sh index 1252199..a0fa72b 100755 --- a/src/coreclr/cross/armel/tizen-fetch.sh +++ b/src/coreclr/cross/armel/tizen-fetch.sh @@ -51,7 +51,7 @@ if [ ! -d $TMPDIR ]; then mkdir -p $TMPDIR fi -TIZEN_URL=http://download.tizen.org/releases/weekly/tizen +TIZEN_URL=http://download.tizen.org/releases/daily/tizen BUILD_XML=build.xml REPOMD_XML=repomd.xml PRIMARY_XML=primary.xml @@ -120,19 +120,21 @@ fetch_tizen_pkgs_init() fetch_tizen_pkgs() { - PROFILE=$1 - PACKAGE_XPATH_TPL='string(//*[local-name()="metadata"]/*[local-name()="package"][*[local-name()="name"][text()="_PKG_"]]/*[local-name()="location"]/@href)' + ARCH=$1 + PACKAGE_XPATH_TPL='string(//*[local-name()="metadata"]/*[local-name()="package"][*[local-name()="name"][text()="_PKG_"]][*[local-name()="arch"][text()="_ARCH_"]]/*[local-name()="location"]/@href)' - PACKAGE_CHECKSUM_XPATH_TPL='string(//*[local-name()="metadata"]/*[local-name()="package"][*[local-name()="name"][text()="_PKG_"]]/*[local-name()="checksum"]/text())' + PACKAGE_CHECKSUM_XPATH_TPL='string(//*[local-name()="metadata"]/*[local-name()="package"][*[local-name()="name"][text()="_PKG_"]][*[local-name()="arch"][text()="_ARCH_"]]/*[local-name()="checksum"]/text())' for pkg in ${@:2} do Inform "Fetching... $pkg" XPATH=${PACKAGE_XPATH_TPL/_PKG_/$pkg} + XPATH=${XPATH/_ARCH_/$ARCH} Xpath_get $XPATH $TMP_PRIMARY PKG_PATH=$XPATH_RESULT XPATH=${PACKAGE_CHECKSUM_XPATH_TPL/_PKG_/$pkg} + XPATH=${XPATH/_ARCH_/$ARCH} Xpath_get $XPATH $TMP_PRIMARY CHECKSUM=$XPATH_RESULT @@ -142,33 +144,33 @@ fetch_tizen_pkgs() Debug "Download $PKG_URL to $PKG_PATH" Fetch $PKG_URL $PKG_PATH true - + echo "$CHECKSUM $PKG_PATH" | sha256sum -c - > /dev/null if [ $? -ne 0 ]; then Error "Fail to fetch $PKG_URL to $PKG_PATH" Debug "Checksum = $CHECKSUM" exit 1 fi - done } -Inform "Initialize arm base" +Inform "Initialize base" fetch_tizen_pkgs_init arm base -Inform "fetch base common packages" -fetch_tizen_pkgs base gcc glibc glibc-devel linux-glibc-devel -Inform "fetch base coreclr packages" -fetch_tizen_pkgs base lldb lldb-devel libuuid libuuid-devel libgcc libstdc++ libstdc++-devel -Inform "fetch base corefx packages" -fetch_tizen_pkgs base libcom_err libcom_err-devel zlib zlib-devel libopenssl libopenssl-devel - -Inform "initialize arm mobile" -fetch_tizen_pkgs_init arm-wayland mobile -Inform "fetch mobile common packages" -fetch_tizen_pkgs mobile libicu-devel -Inform "fetch mobile coreclr packages" -fetch_tizen_pkgs mobile libunwind libunwind-devel tizen-release -Inform "fetch mobile corefx packages" -fetch_tizen_pkgs mobile gssdp gssdp-devel krb5 krb5-devel libcurl libcurl-devel +Inform "fetch common packages" +fetch_tizen_pkgs armv7l gcc glibc glibc-devel +fetch_tizen_pkgs noarch linux-glibc-devel +Inform "fetch coreclr packages" +fetch_tizen_pkgs armv7l lldb lldb-devel libuuid libuuid-devel libgcc libstdc++ libstdc++-devel libunwind libunwind-devel +Inform "fetch corefx packages" +fetch_tizen_pkgs armv7l libcom_err libcom_err-devel zlib zlib-devel libopenssl libopenssl-devel + +Inform "Initialize unified" +fetch_tizen_pkgs_init standard unified +Inform "fetch common packages" +fetch_tizen_pkgs armv7l libicu-devel +Inform "fetch coreclr packages" +fetch_tizen_pkgs armv7l tizen-release +Inform "fetch corefx packages" +fetch_tizen_pkgs armv7l gssdp gssdp-devel krb5 krb5-devel libcurl libcurl-devel diff --git a/src/coreclr/cross/armel/tizen/tizen.patch b/src/coreclr/cross/armel/tizen/tizen.patch index c92dc02..d223427 100644 --- a/src/coreclr/cross/armel/tizen/tizen.patch +++ b/src/coreclr/cross/armel/tizen/tizen.patch @@ -16,18 +16,3 @@ diff -u -r a/usr/lib/libpthread.so b/usr/lib/libpthread.so OUTPUT_FORMAT(elf32-littlearm) -GROUP ( /lib/libpthread.so.0 /usr/lib/libpthread_nonshared.a ) +GROUP ( libpthread.so.0 libpthread_nonshared.a ) -diff -u -r a/usr/lib/libpthread.so b/usr/lib/libpthread.so ---- a/etc/os-release 2016-10-17 23:39:36.000000000 +0900 -+++ b/etc/os-release 2017-01-05 14:34:39.099867682 +0900 -@@ -1,7 +1,7 @@ - NAME=Tizen --VERSION="3.0.0 (Tizen3/Mobile)" -+VERSION="4.0.0 (Tizen4/Mobile)" - ID=tizen --VERSION_ID=3.0.0 --PRETTY_NAME="Tizen 3.0.0 (Tizen3/Mobile)" -+VERSION_ID=4.0.0 -+PRETTY_NAME="Tizen 4.0.0 (Tizen4/Mobile)" - ANSI_COLOR="0;36" --CPE_NAME="cpe:/o:tizen:tizen:3.0.0" -+CPE_NAME="cpe:/o:tizen:tizen:4.0.0" diff --git a/src/coreclr/cross/armel/toolchain.cmake b/src/coreclr/cross/armel/toolchain.cmake index ae3bd7c..86e2306 100644 --- a/src/coreclr/cross/armel/toolchain.cmake +++ b/src/coreclr/cross/armel/toolchain.cmake @@ -16,7 +16,7 @@ set(CROSS_LINK_FLAGS "${CROSS_LINK_FLAGS} -target ${TOOLCHAIN}") set(CROSS_LINK_FLAGS "${CROSS_LINK_FLAGS} --sysroot=${CROSS_ROOTFS}") if("$ENV{__DistroRid}" MATCHES "tizen.*") - set(TIZEN_TOOLCHAIN "armv7l-tizen-linux-gnueabi/4.9.2") + set(TIZEN_TOOLCHAIN "armv7l-tizen-linux-gnueabi/6.2.1") include_directories(SYSTEM ${CROSS_ROOTFS}/usr/lib/gcc/${TIZEN_TOOLCHAIN}/include/c++/) include_directories(SYSTEM ${CROSS_ROOTFS}/usr/lib/gcc/${TIZEN_TOOLCHAIN}/include/c++/armv7l-tizen-linux-gnueabi) add_compile_options(-Wno-deprecated-declarations) # compile-time option diff --git a/src/coreclr/tests/scripts/arm32_ci_script.sh b/src/coreclr/tests/scripts/arm32_ci_script.sh index 209ab39..98f3506 100755 --- a/src/coreclr/tests/scripts/arm32_ci_script.sh +++ b/src/coreclr/tests/scripts/arm32_ci_script.sh @@ -265,7 +265,9 @@ function cross_build_coreclr_with_docker { # For armel Tizen, we are going to construct RootFS on the fly. case $__linuxCodeName in tizen) - __dockerImage=" t2wish/dotnetcore:ubuntu1404_cross_prereqs_v4" + __dockerImage=" hqueue/dotnetcore:ubuntu1404_cross_prereqs_v4-tizen_rootfs" + __skipRootFS=1 + __dockerEnvironmentVariables+=" -e ROOTFS_DIR=/crossrootfs/armel.tizen.build" __runtimeOS="tizen.4.0.0" ;; *) @@ -381,7 +383,9 @@ function run_tests_using_docker { elif [ "$__buildArch" == "armel" ]; then case $__linuxCodeName in tizen) - __dockerImage=" t2wish/dotnetcore:ubuntu1404_cross_prereqs_v3" + __dockerImage=" hqueue/dotnetcore:ubuntu1404_cross_prereqs_v4-tizen_rootfs" + __skipRootFS=1 + __dockerEnvironmentVariables=" -e ROOTFS_DIR=/crossrootfs/armel.tizen.test" ;; *) exit_with_error "ERROR: $__linuxCodeName is not a supported linux name for $__buildArch" false diff --git a/src/coreclr/tests/scripts/arm32_ci_test.sh b/src/coreclr/tests/scripts/arm32_ci_test.sh index 2f0b031..3fb36e1 100755 --- a/src/coreclr/tests/scripts/arm32_ci_test.sh +++ b/src/coreclr/tests/scripts/arm32_ci_test.sh @@ -81,25 +81,11 @@ else fi if [ "$__abi" == "armel" ]; then - # TODO: Make use of a single Tizen rootfs for build and test - - # TODO-cleanup: the latest docker image already has mic installed. - # Prepare Tizen (armel) environment - #echo "deb http://download.tizen.org/tools/latest-release/Ubuntu_14.04 /" >> /etc/apt/sources.list - #apt-get update - #apt-get -y -qq --force-yes install mic - + # Prepare armel emulation environment pushd ${CORECLR_DIR}/cross/armel/tizen - mic --non-interactive create fs --pack-to=tizen.tar.gz tizen-dotnet.ks - if [ -d ${__ROOTFS_DIR} ]; then - mv ${__ROOTFS_DIR} ${__ROOTFS_DIR}_build - fi - mkdir -p ${__ROOTFS_DIR} - tar -zxf mic-output/tizen.tar.gz -C ${__ROOTFS_DIR} apt-get update apt-get -y -qq --force-yes --reinstall install qemu binfmt-support qemu-user-static __qemuARM=$(which qemu-arm-static) - cp $__qemuARM ${CORECLR_DIR}/cross/rootfs/armel/usr/bin/ cp $__qemuARM ${__ROOTFS_DIR}/usr/bin/ popd fi -- 2.7.4