[ARM] Update rootfs for Tizen armel (dotnet/coreclr#11202)
authorHyung-Kyu Choi <hqueue@users.noreply.github.com>
Mon, 1 May 2017 19:00:01 +0000 (04:00 +0900)
committerGaurav Khanna <gkhanna@microsoft.com>
Mon, 1 May 2017 19:00:01 +0000 (12:00 -0700)
* [ARM] Update cross rootfs for armel Tizen

Update cross rootfs for armel Tizen

Signed-off-by: Hyung-Kyu Choi <hk0110.choi@samsung.com>
* [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 <hk0110.choi@samsung.com>
Commit migrated from https://github.com/dotnet/coreclr/commit/a23cd5287f9be53f47c78cf99dfc114518a506d0

src/coreclr/cross/armel/tizen-fetch.sh
src/coreclr/cross/armel/tizen/tizen.patch
src/coreclr/cross/armel/toolchain.cmake
src/coreclr/tests/scripts/arm32_ci_script.sh
src/coreclr/tests/scripts/arm32_ci_test.sh

index 1252199..a0fa72b 100755 (executable)
@@ -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
 
 
index c92dc02..d223427 100644 (file)
@@ -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"
index ae3bd7c..86e2306 100644 (file)
@@ -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
index 209ab39..98f3506 100755 (executable)
@@ -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
index 2f0b031..3fb36e1 100755 (executable)
@@ -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