Simplify build.sh command line arguments for Linux/arm cross build (Part 1) (#20836)
authorEgor Chesakov <Egor.Chesakov@microsoft.com>
Tue, 13 Nov 2018 01:21:06 +0000 (17:21 -0800)
committerGitHub <noreply@github.com>
Tue, 13 Nov 2018 01:21:06 +0000 (17:21 -0800)
* Don't use crosscomponent|-crosscomponent command line args in build.sh
* Don't use CROSSCOMPONENT environment variable in build.sh src/pal/tools/gen-buildsys-clang.sh
* Remove mentioning -crosscomponent from usage() in build-test.sh
* Don't use -crosscomponent in buildpipeline
* Don't use -crosscomponent in Groovy files
* Remove mentioning crosscomponent in Documentation/building/linux-instructions.md
* Stop building Hostx86/armel crossgen in build.sh
* Disable CrossGen-ing of System.Private.CoreLib on Linux/armel

Documentation/building/linux-instructions.md
build-test.sh
build.sh
buildpipeline/DotNet-CoreClr-Trusted-Linux-Crossbuild.json
buildpipeline/pipelines.json
netci.groovy
perf.groovy
src/pal/tools/gen-buildsys-clang.sh

index 7696d37..5f68791 100644 (file)
@@ -122,7 +122,7 @@ The CI system and official builds use Docker to build ARM for Linux (for example
 ```
 ROOT=/Users/me/git/coreclr
 DOCKER_ARGS="run -i --rm -v ${ROOT}:/mnt/coreclr -w /mnt/coreclr -e ROOTFS_DIR=/crossrootfs/arm -e CAC_ROOTFS_DIR=/crossrootfs/x86 microsoft/dotnet-buildtools-prereqs:ubuntu-14.04-cross-e435274-20180426002420"
-docker ${DOCKER_ARGS} /mnt/coreclr/build.sh arm checked cross crosscomponent
+docker ${DOCKER_ARGS} /mnt/coreclr/build.sh arm checked cross
 docker ${DOCKER_ARGS} /mnt/coreclr/build-test.sh arm checked cross generatelayoutonly
 ```
 
index 4ad1245..8a09aef 100755 (executable)
@@ -528,8 +528,6 @@ usage()
     echo "clangx.y - optional argument to build using clang version x.y - supported version 3.5 - 6.0"
     echo "cross - optional argument to signify cross compilation,"
     echo "      - will use ROOTFS_DIR environment variable if set."
-    echo "crosscomponent - optional argument to build cross-architecture component,"
-    echo "               - will use CAC_ROOTFS_DIR environment variable if set."
     echo "portableLinux - build for Portable Linux Distribution"
     echo "portablebuild - Use portable build."
     echo "verbose - optional argument to enable verbose build output."
index 459e527..e9b5d06 100755 (executable)
--- a/build.sh
+++ b/build.sh
@@ -34,8 +34,6 @@ usage()
     echo "-clangx.y - optional argument to build using clang version x.y."
     echo "-cross - optional argument to signify cross compilation,"
     echo "       - will use ROOTFS_DIR environment variable if set."
-    echo "-crosscomponent - optional argument to build cross-architecture component,"
-    echo "                - will use CAC_ROOTFS_DIR environment variable if set."
     echo "-nopgooptimize - do not use profile guided optimizations."
     echo "-pgoinstrument - generate instrumented code for profile guided optimization enabled binaries."
     echo "-ibcinstrument - generate IBC-tuning-enabled native images when invoking crossgen."
@@ -383,14 +381,13 @@ build_cross_architecture_components()
         fi
     fi
 
-    __ExtraCmakeArgs="-DCLR_CMAKE_TARGET_ARCH=$__BuildArch -DCLR_CMAKE_TARGET_OS=$__BuildOS -DCLR_CMAKE_PACKAGES_DIR=$__PackagesDir -DCLR_CMAKE_PGO_INSTRUMENT=$__PgoInstrument -DCLR_CMAKE_OPTDATA_VERSION=$__PgoOptDataVersion -DCLR_CMAKE_PGO_OPTIMIZE=$__PgoOptimize"
+    __ExtraCmakeArgs="-DCLR_CMAKE_TARGET_ARCH=$__BuildArch -DCLR_CMAKE_TARGET_OS=$__BuildOS -DCLR_CMAKE_PACKAGES_DIR=$__PackagesDir -DCLR_CMAKE_PGO_INSTRUMENT=$__PgoInstrument -DCLR_CMAKE_OPTDATA_VERSION=$__PgoOptDataVersion -DCLR_CMAKE_PGO_OPTIMIZE=$__PgoOptimize -DCLR_CROSS_COMPONENTS_BUILD=1"
     build_native $__SkipCrossArchBuild "$crossArch" "$intermediatesForBuild" "$__ExtraCmakeArgs" "cross-architecture components"
 
-    # restore ROOTFS_DIR, CROSSCOMPONENT, and CROSSCOMPILE
+    # restore ROOTFS_DIR and CROSSCOMPILE
     if [ -n "$TARGET_ROOTFS" ]; then
         export ROOTFS_DIR="$TARGET_ROOTFS"
     fi
-    export CROSSCOMPONENT=
     export CROSSCOMPILE=1
 }
 
@@ -511,10 +508,10 @@ build_CoreLib()
        else
            exit 1
        fi
-    elif [ $__DoCrossArchBuild == 1 ]; then
-       if [[ ( "$__CrossArch" == "x86" ) && ( "$__BuildArch" == "arm" || "$__BuildArch" == "armel" ) ]]; then
+    else
+       if [[ ( "$__CrossArch" == "x86" ) && ( "$__BuildArch" == "arm" ) ]]; then
            build_CoreLib_ni "$__CrossComponentBinDir/crossgen"
-       elif [[ ( "$__CrossArch" == "x64" ) && ( "$__BuildArch" == "arm" || "$__BuildArch" == "armel" ) ]]; then
+       elif [[ ( "$__CrossArch" == "x64" ) && ( "$__BuildArch" == "arm" ) ]]; then
            build_CoreLib_ni "$__CrossComponentBinDir/crossgen"
        elif [[ ( "$__HostArch" == "x64" ) && ( "$__BuildArch" == "arm64" ) ]]; then
            build_CoreLib_ni "$__CrossComponentBinDir/crossgen"
@@ -540,7 +537,7 @@ generate_NugetPackages()
     echo "DistroRid is "$__DistroRid
     echo "ROOTFS_DIR is "$ROOTFS_DIR
     # Build the packages
-    $__ProjectRoot/run.sh build -Project=$__SourceDir/.nuget/packages.builds -MsBuildEventLogging="/l:BinClashLogger,Tools/Microsoft.DotNet.Build.Tasks.dll;LogFile=binclash.log" -MsBuildLog="/flp:Verbosity=normal;LogFile=$__LogsDir/Nuget_$__BuildOS__$__BuildArch__$__BuildType.log" -BuildTarget -__IntermediatesDir=$__IntermediatesDir -__RootBinDir=$__RootBinDir -BuildNugetPackage=false -UseSharedCompilation=false -__DoCrossArchBuild=$__DoCrossArchBuild $__RunArgs $__UnprocessedBuildArgs
+    $__ProjectRoot/run.sh build -Project=$__SourceDir/.nuget/packages.builds -MsBuildEventLogging="/l:BinClashLogger,Tools/Microsoft.DotNet.Build.Tasks.dll;LogFile=binclash.log" -MsBuildLog="/flp:Verbosity=normal;LogFile=$__LogsDir/Nuget_$__BuildOS__$__BuildArch__$__BuildType.log" -BuildTarget -__IntermediatesDir=$__IntermediatesDir -__RootBinDir=$__RootBinDir -BuildNugetPackage=false -UseSharedCompilation=false -__DoCrossArchBuild=$__CrossBuild $__RunArgs $__UnprocessedBuildArgs
 
     if [ $? -ne 0 ]; then
         echo "Failed to generate Nuget packages."
@@ -678,7 +675,6 @@ __HostDistroRid=""
 __DistroRid=""
 __cmakeargs=""
 __SkipGenerateVersion=0
-__DoCrossArchBuild=0
 __PortableBuild=1
 __msbuildonunsupportedplatform=0
 __PgoOptDataVersion=""
@@ -845,7 +841,8 @@ while :; do
             ;;
 
         crosscomponent|-crosscomponent)
-            __DoCrossArchBuild=1
+            # Accept "crosscomponent" for backward-compatibility but ignore it.
+            echo "WARNING: 'crosscomponent' is obsolete and should not be used"
             ;;
 
         skipmanaged|-skipmanaged)
@@ -1051,11 +1048,11 @@ fi
 build_native $__SkipCoreCLR "$__BuildArch" "$__IntermediatesDir" "$__ExtraCmakeArgs" "CoreCLR component"
 
 # Build cross-architecture components
-if [[ $__CrossBuild == 1 && $__DoCrossArchBuild == 1 ]]; then
+if [[ $__CrossBuild == 1 ]]; then
     build_cross_architecture_components "$__CrossArch"
 
     # For now, continue building Hostx86/arm crossgen
-    if [[ "$__HostArch" == "x64" && ("$__BuildArch" == "arm" || "$__BuildArch" == "armel") ]]; then
+    if [[ "$__HostArch" == "x64" && "$__BuildArch" == "arm" ]]; then
         build_cross_architecture_components "x86"
     fi
 fi
index ef671ff..4538fb5 100644 (file)
       },
       "inputs": {
         "filename": "docker",
-        "arguments": "run --rm -e ROOTFS_DIR=$(ROOTFS_DIR) -e CAC_ROOTFS_DIR=$(CAC_ROOTFS_DIR) $(DockerCommonRunArgs) ./build.sh $(PB_BuildType) $(Architecture) skipnuget cross $(CrossArchBuildArgs) -skiprestore stripSymbols -OfficialBuildId=$(OfficialBuildId) -- /flp:\"v=diag\"",
+        "arguments": "run --rm -e ROOTFS_DIR=$(ROOTFS_DIR) -e CAC_ROOTFS_DIR=$(CAC_ROOTFS_DIR) $(DockerCommonRunArgs) ./build.sh $(PB_BuildType) $(Architecture) skipnuget cross -skiprestore stripSymbols -OfficialBuildId=$(OfficialBuildId) -- /flp:\"v=diag\"",
         "workingFolder": "",
         "failOnStandardError": "false"
       }
     "Architecture": {
       "value": "arm"
     },
-    "CrossArchBuildArgs": {
-      "value": "",
-      "allowOverride": true
-    },
     "CrossArchBuildPackagesArgs": {
        "value": "",
        "allowOverride": true
index 0cc485a..6f6e076 100644 (file)
             "Architecture": "arm",
             "Rid": "linux",
             "CrossArchitecture": "x86",
-            "CrossArchBuildArgs": "crosscomponent",
             "CrossArchBuildPackagesArgs": "-__DoCrossArchBuild=1",
             "CAC_ROOTFS_DIR": "/crossrootfs/$(CrossArchitecture)"
           },
             "DockerTag": "ubuntu-16.04-cross-arm64-a3ae44b-20180315221921",
             "Architecture": "arm64",
             "Rid": "linux",
-            "CrossArchBuildArgs": "crosscomponent",
             "CrossArchBuildPackagesArgs": "-__DoCrossArchBuild=1"
           },
           "ReportingParameters": {
index c94cd67..cf230b6 100755 (executable)
@@ -2530,7 +2530,7 @@ def static calculateBuildCommands(def newJob, def scenario, def branch, def isPR
                     def dockerImage = getDockerImageName(architecture, os, true)
                     def dockerCmd = "docker run -i --rm -v \${WORKSPACE}:\${WORKSPACE} -w \${WORKSPACE} -e ROOTFS_DIR=/crossrootfs/${architecture} ${additionalOpts} ${dockerImage} "
 
-                    buildCommands += "${dockerCmd}\${WORKSPACE}/build.sh ${lowerConfiguration} ${architecture} cross crosscomponent"
+                    buildCommands += "${dockerCmd}\${WORKSPACE}/build.sh ${lowerConfiguration} ${architecture} cross"
 
                     if (doCoreFxTesting) {
                         def scriptFileName = "\$WORKSPACE/set_stress_test_env.sh"
index 8509d46..d01c9d9 100644 (file)
@@ -466,7 +466,7 @@ def static getFullThroughputJobName(def project, def os, def arch, def isPR) {
                 def dockerImage = getDockerImageName(architecture, 'Ubuntu', true)
                 def dockerCmd = "docker run -i --rm -v \${WORKSPACE}:\${WORKSPACE} -w \${WORKSPACE} -e ROOTFS_DIR=/crossrootfs/${architecture} ${additionalOpts} ${dockerImage} "
 
-                buildCommands += "${dockerCmd}\${WORKSPACE}/build.sh release ${architecture} cross crosscomponent"
+                buildCommands += "${dockerCmd}\${WORKSPACE}/build.sh release ${architecture} cross"
 
                 steps {
                     buildCommands.each { buildCommand ->
index a644653..597ae5d 100755 (executable)
@@ -112,9 +112,6 @@ fi
 if [[ -n "$LLDB_INCLUDE_DIR" ]]; then
     cmake_extra_defines="$cmake_extra_defines -DWITH_LLDB_INCLUDES=$LLDB_INCLUDE_DIR"
 fi
-if [[ -n "$CROSSCOMPONENT" ]]; then
-    cmake_extra_defines="$cmake_extra_defines -DCLR_CROSS_COMPONENTS_BUILD=1"
-fi
 if [ "$CROSSCOMPILE" == "1" ]; then
     if ! [[ -n "$ROOTFS_DIR" ]]; then
         echo "ROOTFS_DIR not set for crosscompile"