From: Bruce Forstall Date: Wed, 8 Mar 2017 17:44:38 +0000 (-0800) Subject: Stop building x86 LEGACY_BACKEND X-Git-Tag: submit/tizen/20210909.063632~11030^2~7797^2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=d6d451c9b7f5101c23d9fa6bd87e24288721fb01;p=platform%2Fupstream%2Fdotnet%2Fruntime.git Stop building x86 LEGACY_BACKEND Since we require a compatjit.dll to be built so the JIT NuGet package can be built, even if JIT32 isn't being built, change the compatjit.dll build (when JIT32 isn't being built) to just a normal JIT build. Commit migrated from https://github.com/dotnet/coreclr/commit/a191501c8229869f4e4308e83a99fccb6a77ab74 --- diff --git a/src/coreclr/build.cmd b/src/coreclr/build.cmd index 685e84c..a1babd0 100644 --- a/src/coreclr/build.cmd +++ b/src/coreclr/build.cmd @@ -113,7 +113,6 @@ if /i "%1" == "buildjit32" (set __BuildJit32="-DBUILD_JIT32=1"&set proc if /i "%1" == "pgoinstrument" (set __PgoInstrument=1&set processedArgs=!processedArgs! %1&shift&goto Arg_Loop) if /i "%1" == "toolset_dir" (set __ToolsetDir=%2&set __PassThroughArgs=%__PassThroughArgs% %2&set processedArgs=!processedArgs! %1 %2&shift&shift&goto Arg_Loop) if /i "%1" == "compatjitcrossgen" (set __CompatJitCrossgen=1&set processedArgs=!processedArgs! %1&shift&goto Arg_Loop) -if /i "%1" == "legacyjitcrossgen" (set __LegacyJitCrossgen=1&set processedArgs=!processedArgs! %1&shift&goto Arg_Loop) if /i "%1" == "buildstandalonegc" (set __BuildStandaloneGC="-DFEATURE_STANDALONE_GC=1"&set processedArgs=!processedArgs! %1&shift&goto Arg_Loop) @REM The following can be deleted once the CI system that passes it is updated to not pass it. @@ -408,12 +407,6 @@ if %__BuildNativeCoreLib% EQU 1 ( set COMPlus_UseWindowsX86CoreLegacyJit=1 ) - if "%__LegacyJitCrossgen%"=="1" ( - set COMPlus_AltJit=* - set COMPlus_AltJitNgen=* - set COMPlus_AltJitName=legacyjit.dll - ) - echo "%__CrossgenExe%" /Platform_Assemblies_Paths "%__BinDir%" /out "%__BinDir%\System.Private.CoreLib.ni.dll" "%__BinDir%\System.Private.CoreLib.dll" "%__CrossgenExe%" /Platform_Assemblies_Paths "%__BinDir%" /out "%__BinDir%\System.Private.CoreLib.ni.dll" "%__BinDir%\System.Private.CoreLib.dll" > "%__CrossGenCoreLibLog%" 2>&1 if NOT !errorlevel! == 0 ( @@ -442,12 +435,6 @@ if %__BuildNativeCoreLib% EQU 1 ( set COMPlus_UseWindowsX86CoreLegacyJit= ) - if "%__LegacyJitCrossgen%"=="1" ( - set COMPlus_AltJit= - set COMPlus_AltJitNgen= - set COMPlus_AltJitName= - ) - if NOT !err! == 0 ( echo %__MsgPrefix%Error: CrossGen mscorlib facade build failed. Refer to !__CrossGenCoreLibLog! :: Put it in the same log, helpful for Jenkins diff --git a/src/coreclr/netci.groovy b/src/coreclr/netci.groovy index 02ab148..a383263 100755 --- a/src/coreclr/netci.groovy +++ b/src/coreclr/netci.groovy @@ -136,7 +136,7 @@ class Constants { def static configurationList = ['Debug', 'Checked', 'Release'] // This is the set of architectures - def static architectureList = ['arm', 'arm64', 'x64', 'x86', 'x86compatjit', 'x86lb'] + def static architectureList = ['arm', 'arm64', 'x64', 'x86', 'x86compatjit'] } def static setMachineAffinity(def job, def os, def architecture) { @@ -327,9 +327,6 @@ def static getJobName(def configuration, def architecture, def os, def scenario, case 'x86compatjit': baseName = 'x86_compatjit_' + configuration.toLowerCase() + '_' + os.toLowerCase() break - case 'x86lb': - baseName = 'x86_lb_' + configuration.toLowerCase() + '_' + os.toLowerCase() - break default: println("Unknown architecture: ${architecture}"); assert false @@ -347,7 +344,6 @@ def static addNonPRTriggers(def job, def branch, def isPR, def architecture, def case 'x64': case 'x86': case 'x86compatjit': - case 'x86lb': if (isFlowJob || os == 'Windows_NT' || !(os in Constants.crossList)) { Utilities.addGithubPushTrigger(job) } @@ -407,7 +403,7 @@ def static addNonPRTriggers(def job, def branch, def isPR, def architecture, def } } // For x86, only add per-commit jobs for Windows - else if (architecture == 'x86' || architecture == 'x86compatjit' || architecture == 'x86lb') { + else if (architecture == 'x86' || architecture == 'x86compatjit') { if (os == 'Windows_NT') { Utilities.addGithubPushTrigger(job) } @@ -453,7 +449,7 @@ def static addNonPRTriggers(def job, def branch, def isPR, def architecture, def } } // For x86, only add per-commit jobs for Windows - else if (architecture == 'x86' || architecture == 'x86compatjit' || architecture == 'x86lb') { + else if (architecture == 'x86' || architecture == 'x86compatjit') { if (os == 'Windows_NT') { Utilities.addPeriodicTrigger(job, 'H H * * 3,6') // some time every Wednesday and Saturday } @@ -1344,85 +1340,6 @@ def static addTriggers(def job, def branch, def isPR, def architecture, def os, } break // editor brace matching: } - case 'x86lb': // editor brace matching: { - assert (os == 'Windows_NT') - assert (scenario == 'default' || - scenario == 'r2r' || - scenario == 'pri1r2r' || - scenario == 'gcstress15_pri1r2r' || - scenario == 'longgc' || - scenario == 'gcsimulator' || - Constants.r2rJitStressScenarios.indexOf(scenario) != -1) - - def arch = 'x86' - def jit = 'legacy_backend' - switch (scenario) { - case 'default': - if (configuration == 'Checked') { - Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${arch} ${jit} ${configuration} Build and Test", - "(?i).*test\\W+${os}\\W+${arch}\\W+${jit}\\W+${configuration}.*") - } - break - case 'r2r': - if (configuration == 'Release') { - Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${arch} ${jit} ${configuration} R2R pri0 Build & Test", - "(?i).*test\\W+${os}\\W+${arch}\\W+${jit}\\W+${configuration}\\W+${scenario}.*") - } - break - case 'pri1r2r': - if (configuration == 'Release') { - Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${arch} ${jit} ${configuration} R2R pri1 Build & Test", - "(?i).*test\\W+${os}\\W+${arch}\\W+${jit}\\W+${configuration}\\W+${scenario}.*") - } - break - case 'gcstress15_pri1r2r': - if (configuration == 'Release') { - Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${arch} ${jit} ${configuration} GCStress 15 R2R pri1 Build & Test", - "(?i).*test\\W+${os}\\W+${arch}\\W+${jit}\\W+${configuration}\\W+${scenario}.*") - } - break - case 'r2r_jitstress1': - case 'r2r_jitstress2': - case 'r2r_jitstressregs1': - case 'r2r_jitstressregs2': - case 'r2r_jitstressregs3': - case 'r2r_jitstressregs4': - case 'r2r_jitstressregs8': - case 'r2r_jitstressregs0x10': - case 'r2r_jitstressregs0x80': - case 'r2r_jitstressregs0x1000': - case 'r2r_jitminopts': - case 'r2r_jitforcerelocs': - if (configuration == 'Release' || configuration == 'Checked') { - def displayStr = getR2RStressModeDisplayName(scenario) - Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${arch} ${jit} ${configuration} ${displayStr} R2R Build & Test", - "(?i).*test\\W+${os}\\W+${arch}\\W+${jit}\\W+${configuration}\\W+${scenario}.*") - } - break - case 'longgc': - if (configuration == 'Release') { - Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${arch} ${jit} ${configuration} Long-Running GC Build & Test", - "(?i).*test\\W+${os}\\W+${arch}\\W+${jit}\\W+${configuration}\\W+${scenario}.*") - } - break - case 'gcsimulator': - if (configuration == 'Release') { - Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${arch} ${jit} ${configuration} GC Simulator", - "(?i).*test\\W+${os}\\W+${arch}\\W+${jit}\\W+${configuration}\\W+${scenario}.*") - } - break - case 'standalone_gc': - if (configuration == 'Release' || configuration == 'Checked') { - Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${architecture} ${configuration} Standalone GC", "(?i).*test\\W+${os}\\W+${configuration}\\W+${scenario}.*") - } - break - default: - println("Unknown scenario: ${os} ${arch} ${jit} ${scenario}"); - assert false - break - } - break - // editor brace matching: } default: println("Unknown architecture: ${architecture}"); assert false @@ -1442,19 +1359,14 @@ def static calculateBuildCommands(def newJob, def scenario, def branch, def isPR case 'x64': case 'x86': case 'x86compatjit': - case 'x86lb': def arch = architecture def buildOpts = '' - // We need to explicitly run build-test.cmd with Exclude for x86compatjit and x86lb, so skip tests. + // We need to explicitly run build-test.cmd with Exclude for x86compatjit, so skip tests. if (architecture == 'x86compatjit') { arch = 'x86' buildOpts = 'compatjitcrossgen skiptests' } - else if (architecture == 'x86lb') { - arch = 'x86' - buildOpts = 'legacyjitcrossgen skiptests' - } if (Constants.jitStressModeScenarios.containsKey(scenario) || scenario == 'default' || @@ -1597,14 +1509,7 @@ def static calculateBuildCommands(def newJob, def scenario, def branch, def isPR } else if (architecture == 'x86compatjit') { def testEnvLocation = "%WORKSPACE%\\tests\\x86\\compatjit_x86_testenv.cmd" - def excludeLocation = "%WORKSPACE%\\tests\\x86_legacy_backend_issues.targets" - buildCommands += "build-test.cmd ${runtestArguments} Exclude ${excludeLocation}" - buildCommands += "tests\\runtest.cmd ${runtestArguments} TestEnv ${testEnvLocation}" - } - else if (architecture == 'x86lb') { - def testEnvLocation = "%WORKSPACE%\\tests\\x86\\legacyjit_x86_testenv.cmd" - def excludeLocation = "%WORKSPACE%\\tests\\x86_legacy_backend_issues.targets" - buildCommands += "build-test.cmd ${runtestArguments} Exclude ${excludeLocation}" + buildCommands += "build-test.cmd ${runtestArguments}" buildCommands += "tests\\runtest.cmd ${runtestArguments} TestEnv ${testEnvLocation}" } } @@ -1706,9 +1611,8 @@ def static calculateBuildCommands(def newJob, def scenario, def branch, def isPR case 'x64': case 'x86': case 'x86compatjit': - case 'x86lb': def arch = architecture - if (architecture == 'x86compatjit' || architecture == 'x86lb') { + if (architecture == 'x86compatjit') { arch = 'x86' } @@ -1895,7 +1799,6 @@ combinedScenarios.each { scenario -> break case 'x86': case 'x86compatjit': - case 'x86lb': // Skip non-windows if (os != 'Windows_NT') { return @@ -1938,8 +1841,7 @@ combinedScenarios.each { scenario -> // Everything implemented break case 'x86compatjit': - case 'x86lb': - // No stress modes for compatjit.dll, legacyjit.dll. + // No stress modes for compatjit.dll. // (There's no technical reason we couldn't allow these.) return default: diff --git a/src/coreclr/src/jit/CMakeLists.txt b/src/coreclr/src/jit/CMakeLists.txt index c7c4f41..ea7de57 100644 --- a/src/coreclr/src/jit/CMakeLists.txt +++ b/src/coreclr/src/jit/CMakeLists.txt @@ -228,7 +228,6 @@ if ((CLR_CMAKE_PLATFORM_ARCH_I386 OR CLR_CMAKE_PLATFORM_ARCH_AMD64) AND WIN32) endif () if (CLR_CMAKE_PLATFORM_ARCH_I386 AND WIN32) - add_subdirectory(legacyjit) if (NOT CLR_BUILD_JIT32) add_subdirectory(compatjit) endif () diff --git a/src/coreclr/src/jit/compatjit/CMakeLists.txt b/src/coreclr/src/jit/compatjit/CMakeLists.txt index d70e61a..71b8dae3 100644 --- a/src/coreclr/src/jit/compatjit/CMakeLists.txt +++ b/src/coreclr/src/jit/compatjit/CMakeLists.txt @@ -1,20 +1,14 @@ project(compatjit) # This compatjit.dll is only built if we are not building JIT32 as compatjit.dll. -# It is the same build as legacyjit.dll, just with a different name, and not -# built as an altjit. - -add_definitions(-DLEGACY_BACKEND) +# It is a normal JIT build, and only exists so the JIT nuget package can build, +# with both clrjit.dll and compatjit.dll, if JIT32 is not being built. add_definitions(-DFEATURE_NO_HOST) add_definitions(-DSELF_NO_HOST) add_definitions(-DFEATURE_READYTORUN_COMPILER) remove_definitions(-DFEATURE_MERGE_JIT_AND_ENGINE) -# No SIMD in legacy back-end. -remove_definitions(-DFEATURE_SIMD) -remove_definitions(-DFEATURE_AVX_SUPPORT) - if(WIN32) add_definitions(-DFX_VER_INTERNALNAME_STR=compatjit.dll) endif(WIN32) diff --git a/src/coreclr/src/jit/legacyjit/CMakeLists.txt b/src/coreclr/src/jit/legacyjit/CMakeLists.txt deleted file mode 100644 index b5a44f6..0000000 --- a/src/coreclr/src/jit/legacyjit/CMakeLists.txt +++ /dev/null @@ -1,63 +0,0 @@ -project(legacyjit) - -add_definitions(-DLEGACY_BACKEND) -add_definitions(-DALT_JIT) -add_definitions(-DFEATURE_NO_HOST) -add_definitions(-DSELF_NO_HOST) -add_definitions(-DFEATURE_READYTORUN_COMPILER) -remove_definitions(-DFEATURE_MERGE_JIT_AND_ENGINE) - -# No SIMD in legacy back-end. -remove_definitions(-DFEATURE_SIMD) -remove_definitions(-DFEATURE_AVX_SUPPORT) - -if(WIN32) - add_definitions(-DFX_VER_INTERNALNAME_STR=legacyjit.dll) -endif(WIN32) - -add_library_clr(legacyjit - SHARED - ${SHARED_LIB_SOURCES} - ${JIT_ARCH_SOURCES} -) - -add_dependencies(legacyjit jit_exports) - -set_property(TARGET legacyjit APPEND_STRING PROPERTY LINK_FLAGS ${JIT_EXPORTS_LINKER_OPTION}) -set_property(TARGET legacyjit APPEND_STRING PROPERTY LINK_DEPENDS ${JIT_EXPORTS_FILE}) - -set(RYUJIT_LINK_LIBRARIES - utilcodestaticnohost - gcinfo -) - -if(CLR_CMAKE_PLATFORM_UNIX) - list(APPEND RYUJIT_LINK_LIBRARIES - mscorrc_debug - coreclrpal - palrt - ) -else() - list(APPEND RYUJIT_LINK_LIBRARIES - ${STATIC_MT_CRT_LIB} - ${STATIC_MT_VCRT_LIB} - kernel32.lib - advapi32.lib - ole32.lib - oleaut32.lib - uuid.lib - user32.lib - version.lib - shlwapi.lib - bcrypt.lib - crypt32.lib - RuntimeObject.lib - ) -endif(CLR_CMAKE_PLATFORM_UNIX) - -target_link_libraries(legacyjit - ${RYUJIT_LINK_LIBRARIES} -) - -# add the install targets -install_clr(legacyjit) diff --git a/src/coreclr/tests/x86_legacy_backend_issues.targets b/src/coreclr/tests/x86_legacy_backend_issues.targets deleted file mode 100644 index 0c294ef..0000000 --- a/src/coreclr/tests/x86_legacy_backend_issues.targets +++ /dev/null @@ -1,446 +0,0 @@ - - - - - 3392 - - - 3392 - - - 3392 - - - 3392 - - - 3392 - - - 3392 - - - 3392 - - - 3392 - - - 3392 - - - 3392 - - - 3392 - - - 3392 - - - 3392 - - - 3392 - - - 3392 - - - timed out - - - needs triage - - - 2414 - - - 2414 - - - needs triage - - - needs triage - - - 4851 - - - 4851 - - - 4851 - - - 4851 - - - needs triage - - - needs triage - - - needs triage - - - 2451 - - - 2451 - - - 2451 - - - 2451 - - - 2434 - - - 2451 - - - 2451 - - - 2451 - - - 2451 - - - 2451 - - - 2451 - - - 2451 - - - 2441 - - - 2441 - - - 2414 - - - 2414 - - - 2414 - - - 2408 - - - 2414 - - - 2451 - - - 2451 - - - 2444 - - - 2444 - - - 2451 - - - 2451 - - - 2451 - - - 2451 - - - 2444 - - - 2444 - - - 2441 - - - 2451 - - - 2451 - - - 2441 - - - 2414 - - - 2445 - - - 2451 - - - 6707 - - - 6707 - - - 6707 - - - 6707 - - - 6707 - - - 6707 - - - - - - - - 3392 - - - 3392 - - - 3392 - - - 3392 - - - 2413 - - - 2413 - - - 2412 - - - 2412 - - - tail. call pop ret is only supported on amd64 - - - needs triage - - - needs triage - - - needs triage - - - 2420. x86 JIT doesn't support implicit tail call optimization or tail. call pop ret sequence - - - 6844 - - - 7163 - - - needs triage - - - The test is too large for x86 and causes OutOfMemory exception. - - - The superpmi test depends on setting COMPlus_AltJit, so doesn't work with either the legacy jit test run, which also sets COMPlus_AltJit, or the compatjit test run, which sets COMPlus_UseWindowsX86CoreLegacyJit - - - - - - - needs triage - - - needs triage - - - needs triage - - - needs triage - - - needs triage - - - needs triage - - - needs triage - - - needs triage - - - needs triage - - - needs triage - - - needs triage - - - needs triage - - - needs triage - - - needs triage - - - needs triage - - - needs triage - - - needs triage - - - needs triage - - - needs triage - - - needs triage - - - needs triage - - - needs triage - - - needs triage - - - needs triage - - - needs triage - - - needs triage - - - needs triage - - - needs triage - - - needs triage - - - needs triage - - - needs triage - - - needs triage - - - needs triage - - - needs triage - - - needs triage - - - needs triage - - - needs triage - - - needs triage - - - needs triage - - - needs triage - - - needs triage - - - needs triage - - - needs triage - - - needs triage - - - needs triage - - - needs triage - - - needs triage - - - needs triage - - - needs triage - - - needs triage - - - needs triage - - - needs triage - - - needs triage - - - needs triage - - - needs triage - - - needs triage - - -