Skip to content
This repository was archived by the owner on Jan 23, 2023. It is now read-only.

Commit cf27269

Browse files
authored
Generate native image for System.Private.CoreLib.dll during Linux/arm build.sh (#17157)
* Add generating native image for System.Private.CoreLib.dll during Linux/arm cross build when __CrossArch/__BuildArch is x86/arm
1 parent a879b01 commit cf27269

File tree

1 file changed

+30
-22
lines changed

1 file changed

+30
-22
lines changed

build.sh

Lines changed: 30 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -394,34 +394,29 @@ isMSBuildOnNETCoreSupported()
394394

395395
build_CoreLib_ni()
396396
{
397-
if [ $__SkipCrossgen == 1 ]; then
398-
echo "Skipping generating native image"
399-
return
397+
local __CrossGenExec=$1
398+
399+
echo "Generating native image for System.Private.CoreLib.dll"
400+
echo "$__CrossGenExec /Platform_Assemblies_Paths $__BinDir/IL $__IbcTuning /out $__BinDir/System.Private.CoreLib.dll $__BinDir/IL/System.Private.CoreLib.dll"
401+
$__CrossGenExec /Platform_Assemblies_Paths $__BinDir/IL $__IbcTuning /out $__BinDir/System.Private.CoreLib.dll $__BinDir/IL/System.Private.CoreLib.dll
402+
if [ $? -ne 0 ]; then
403+
echo "Failed to generate native image for System.Private.CoreLib."
404+
exit 1
400405
fi
401406

402-
if [ $__SkipCoreCLR == 0 -a -e $__BinDir/crossgen ]; then
403-
echo "Generating native image for System.Private.CoreLib."
404-
echo "$__BinDir/crossgen /Platform_Assemblies_Paths $__BinDir/IL $__IbcTuning /out $__BinDir/System.Private.CoreLib.dll $__BinDir/IL/System.Private.CoreLib.dll"
405-
$__BinDir/crossgen /Platform_Assemblies_Paths $__BinDir/IL $__IbcTuning /out $__BinDir/System.Private.CoreLib.dll $__BinDir/IL/System.Private.CoreLib.dll
407+
if [ "$__BuildOS" == "Linux" ]; then
408+
echo "Generating symbol file for System.Private.CoreLib.dll"
409+
echo "$__CrossGenExec /Platform_Assemblies_Paths $__BinDir /CreatePerfMap $__BinDir $__BinDir/System.Private.CoreLib.dll"
410+
$__CrossGenExec /Platform_Assemblies_Paths $__BinDir /CreatePerfMap $__BinDir $__BinDir/System.Private.CoreLib.dll
406411
if [ $? -ne 0 ]; then
407-
echo "Failed to generate native image for System.Private.CoreLib."
412+
echo "Failed to generate symbol file for System.Private.CoreLib."
408413
exit 1
409414
fi
410-
411-
if [ "$__BuildOS" == "Linux" ]; then
412-
echo "Generating symbol file for System.Private.CoreLib."
413-
$__BinDir/crossgen /CreatePerfMap $__BinDir $__BinDir/System.Private.CoreLib.dll
414-
if [ $? -ne 0 ]; then
415-
echo "Failed to generate symbol file for System.Private.CoreLib."
416-
exit 1
417-
fi
418-
fi
419415
fi
420416
}
421417

422418
build_CoreLib()
423419
{
424-
425420
if [ $__isMSBuildOnNETCoreSupported == 0 ]; then
426421
echo "System.Private.CoreLib.dll build unsupported."
427422
return
@@ -447,18 +442,31 @@ build_CoreLib()
447442
exit 1
448443
fi
449444

445+
if [ $__SkipCrossgen == 1 ]; then
446+
echo "Skipping generating native image"
447+
return
448+
fi
449+
450450
# The cross build generates a crossgen with the target architecture.
451-
if [ $__CrossBuild != 1 ]; then
451+
if [ $__CrossBuild == 0 ]; then
452+
if [ $__SkipCoreCLR == 1 ]; then
453+
return
454+
fi
455+
452456
# The architecture of host pc must be same architecture with target.
453457
if [[ ( "$__HostArch" == "$__BuildArch" ) ]]; then
454-
build_CoreLib_ni
458+
build_CoreLib_ni "$__BinDir/crossgen"
455459
elif [[ ( "$__HostArch" == "x64" ) && ( "$__BuildArch" == "x86" ) ]]; then
456-
build_CoreLib_ni
460+
build_CoreLib_ni "$__BinDir/crossgen"
457461
elif [[ ( "$__HostArch" == "arm64" ) && ( "$__BuildArch" == "arm" ) ]]; then
458-
build_CoreLib_ni
462+
build_CoreLib_ni "$__BinDir/crossgen"
459463
else
460464
exit 1
461465
fi
466+
elif [ $__DoCrossArchBuild == 1 ]; then
467+
if [[ ( "$__CrossArch" == "x86" ) && ( "$__BuildArch" == "arm" ) ]]; then
468+
build_CoreLib_ni "$__CrossComponentBinDir/crossgen"
469+
fi
462470
fi
463471
}
464472

0 commit comments

Comments
 (0)