diff options
author | jang <jiseob.jang@samsung.com> | 2017-06-22 11:17:43 +0900 |
---|---|---|
committer | jang <jiseob.jang@samsung.com> | 2017-06-22 11:17:43 +0900 |
commit | faa6c135955ef2234957fb29db492968bd3704eb (patch) | |
tree | 920053877854429d6333a5dc7521e4c615f8d750 /packaging | |
parent | 1b0a538f540a15579c5891c07f8741e86d65a190 (diff) | |
download | coreclr-faa6c135955ef2234957fb29db492968bd3704eb.tar.gz coreclr-faa6c135955ef2234957fb29db492968bd3704eb.tar.bz2 coreclr-faa6c135955ef2234957fb29db492968bd3704eb.zip |
add patches for fixing unit test fails.submit/tizen/20170622.022656accepted/tizen/unified/20170626.105010
Change-Id: If0c3413f59a8b6a7586575b44ef1f31deb05b005
Signed-off-by: jang <jiseob.jang@samsung.com>
Diffstat (limited to 'packaging')
8 files changed, 324 insertions, 3 deletions
diff --git a/packaging/ARM-Linux-Support-unaligned-struct-read-write-11290.patch b/packaging/ARM-Linux-Support-unaligned-struct-read-write-11290.patch new file mode 100644 index 0000000000..70e0f99bd6 --- /dev/null +++ b/packaging/ARM-Linux-Support-unaligned-struct-read-write-11290.patch @@ -0,0 +1,83 @@ +From ab35c9d7fc2504b4633495168536bda4f1d4ce45 Mon Sep 17 00:00:00 2001 +From: Jonghyun Park <parjong@gmail.com> +Date: Sat, 20 May 2017 06:26:27 +0900 +Subject: [PATCH] [ARM/Linux] Support unaligned struct read/write (#11290) + +* [ARM/Linux] Support unaligned struct read + +* Fix format error + +* Support unaligned struct write +--- + src/jit/importer.cpp | 15 ++++++++++----- + src/jit/morph.cpp | 14 ++++++++++++++ + 2 files changed, 24 insertions(+), 5 deletions(-) + +diff --git a/src/jit/importer.cpp b/src/jit/importer.cpp +index 74018c4..2d50741 100644 +--- a/src/jit/importer.cpp ++++ b/src/jit/importer.cpp +@@ -14710,6 +14710,11 @@ void Compiler::impImportBlockCode(BasicBlock* block) + assertImp(varTypeIsStruct(op2)); + + op1 = impAssignStructPtr(op1, op2, resolvedToken.hClass, (unsigned)CHECK_SPILL_ALL); ++ ++ if (op1->OperIsBlkOp() && (prefixFlags & PREFIX_UNALIGNED)) ++ { ++ op1->gtFlags |= GTF_BLK_UNALIGNED; ++ } + goto SPILL_APPEND; + } + +@@ -14822,11 +14827,6 @@ void Compiler::impImportBlockCode(BasicBlock* block) + // Could point anywhere, example a boxed class static int + op1->gtFlags |= GTF_IND_TGTANYWHERE | GTF_GLOB_REF; + assertImp(varTypeIsArithmetic(op1->gtType)); +- +- if (prefixFlags & PREFIX_UNALIGNED) +- { +- op1->gtFlags |= GTF_IND_UNALIGNED; +- } + } + else + { +@@ -14836,6 +14836,11 @@ void Compiler::impImportBlockCode(BasicBlock* block) + } + op1->gtFlags |= GTF_EXCEPT; + ++ if (prefixFlags & PREFIX_UNALIGNED) ++ { ++ op1->gtFlags |= GTF_IND_UNALIGNED; ++ } ++ + impPushOnStack(op1, tiRetVal); + break; + } +diff --git a/src/jit/morph.cpp b/src/jit/morph.cpp +index 6928c3c..215b45f 100644 +--- a/src/jit/morph.cpp ++++ b/src/jit/morph.cpp +@@ -9927,6 +9927,20 @@ GenTreePtr Compiler::fgMorphCopyBlock(GenTreePtr tree) + requiresCopyBlock = true; + } + ++#if defined(_TARGET_ARM_) ++ if ((rhs->OperIsIndir()) && (rhs->gtFlags & GTF_IND_UNALIGNED)) ++ { ++ JITDUMP(" rhs is unaligned"); ++ requiresCopyBlock = true; ++ } ++ ++ if (asg->gtFlags & GTF_BLK_UNALIGNED) ++ { ++ JITDUMP(" asg is unaligned"); ++ requiresCopyBlock = true; ++ } ++#endif // _TARGET_ARM_ ++ + if (dest->OperGet() == GT_OBJ && dest->AsBlk()->gtBlkOpGcUnsafe) + { + requiresCopyBlock = true; +-- +2.7.4 + diff --git a/packaging/ARM-Linux-Validate-memory-using-ldrb-instead-of-ldr.patch b/packaging/ARM-Linux-Validate-memory-using-ldrb-instead-of-ldr.patch new file mode 100644 index 0000000000..05d8e24629 --- /dev/null +++ b/packaging/ARM-Linux-Validate-memory-using-ldrb-instead-of-ldr.patch @@ -0,0 +1,27 @@ +From 888fab68a07bec8d0d4a4700226bf517d1ffe0a0 Mon Sep 17 00:00:00 2001 +From: Jonghyun Park <parjong@gmail.com> +Date: Fri, 9 Jun 2017 09:52:53 +0900 +Subject: [PATCH] [ARM/Linux] Validate memory using ldrb instead of ldr + +--- + src/vm/arm/memcpy.S | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/vm/arm/memcpy.S b/src/vm/arm/memcpy.S +index b978860..0c2c26e 100644 +--- a/src/vm/arm/memcpy.S ++++ b/src/vm/arm/memcpy.S +@@ -22,8 +22,8 @@ + PROLOG_PUSH "{r7, lr}" + PROLOG_STACK_SAVE r7 + +- ldr r3, [r0] +- ldr r3, [r1] ++ ldrb r3, [r0] ++ ldrb r3, [r1] + + blx C_FUNC(memcpy) + +-- +2.7.4 + diff --git a/packaging/Add-skipped-testcase-on-TM1.patch b/packaging/Add-skipped-testcase-on-TM1.patch new file mode 100644 index 0000000000..c9bba71dfa --- /dev/null +++ b/packaging/Add-skipped-testcase-on-TM1.patch @@ -0,0 +1,33 @@ +From 4754e882650d6e61d70713631a2a4990afbdc33e Mon Sep 17 00:00:00 2001 +From: Jiyoung Yun <jy910.yun@samsung.com> +Date: Tue, 20 Jun 2017 15:09:10 +0900 +Subject: [PATCH] Add skipped testcase on TM1 + +Lists: +JIT.jit64.opt.cse.hugeSimpleExpr1.hugeSimpleExpr1 +GC.Regressions.v2.0-rtm.494226.494226.494226 +GC.Scenarios.ServerModel.servermodel.servermodel +JIT.jit64.opt.cse.HugeField1.HugeField1 +JIT.jit64.opt.cse.HugeField2.HugeField2 +JIT.jit64.opt.cse.hugeexpr1.hugeexpr1 +--- + tests/testsUnsupportedOnARM32.txt | 6 ++++++ + 1 file changed, 6 insertions(+) + +diff --git a/tests/testsUnsupportedOnARM32.txt b/tests/testsUnsupportedOnARM32.txt +index d889b57..82cc41d 100644 +--- a/tests/testsUnsupportedOnARM32.txt ++++ b/tests/testsUnsupportedOnARM32.txt +@@ -10,3 +10,9 @@ JIT/Methodical/xxobj/sizeof/_il_relsizeof32/_il_relsizeof32.sh + JIT/Methodical/xxobj/sizeof/_il_relsizeof64/_il_relsizeof64.sh + JIT/Regression/JitBlue/devdiv_902271/DevDiv_902271/DevDiv_902271.sh + JIT/jit64/opt/cse/HugeArray1/HugeArray1.sh ++JIT/jit64/opt/cse/hugeSimpleExpr1/hugeSimpleExpr1.sh ++GC/Regressions/v2.0-rtm/494226/494226/494226.sh ++GC/Scenarios/ServerModel/servermodel/servermodel.sh ++JIT/jit64/opt/cse/HugeField1/HugeField1.sh ++JIT/jit64/opt/cse/HugeField2/HugeField2.sh ++JIT/jit64/opt/cse/hugeexpr1/hugeexpr1.sh +-- +2.7.4 + diff --git a/packaging/Enable-pow-for-arm-armel-in-tryrun-11703.patch b/packaging/Enable-pow-for-arm-armel-in-tryrun-11703.patch new file mode 100644 index 0000000000..e8094594b4 --- /dev/null +++ b/packaging/Enable-pow-for-arm-armel-in-tryrun-11703.patch @@ -0,0 +1,40 @@ +From de45f513ba4865d5dcab3b98262aa9908bc7567e Mon Sep 17 00:00:00 2001 +From: SaeHie Park <saehie.park@gmail.com> +Date: Fri, 19 May 2017 00:20:57 +0900 +Subject: [PATCH] Enable pow for arm/armel in tryrun (#11703) + +This will fix CoreFX System.Tests.MathFTests.Pow() failures +--- + cross/arm/tryrun.cmake | 2 +- + cross/armel/tryrun.cmake | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/cross/arm/tryrun.cmake b/cross/arm/tryrun.cmake +index 26a30e5..55265b4 100644 +--- a/cross/arm/tryrun.cmake ++++ b/cross/arm/tryrun.cmake +@@ -55,7 +55,7 @@ SET( HAVE_COMPATIBLE_ASIN_EXITCODE + CACHE STRING "Result from TRY_RUN" FORCE) + + SET( HAVE_COMPATIBLE_POW_EXITCODE +- 1 ++ 0 + CACHE STRING "Result from TRY_RUN" FORCE) + + SET( HAVE_VALID_NEGATIVE_INF_POW_EXITCODE +diff --git a/cross/armel/tryrun.cmake b/cross/armel/tryrun.cmake +index 26a30e5..55265b4 100644 +--- a/cross/armel/tryrun.cmake ++++ b/cross/armel/tryrun.cmake +@@ -55,7 +55,7 @@ SET( HAVE_COMPATIBLE_ASIN_EXITCODE + CACHE STRING "Result from TRY_RUN" FORCE) + + SET( HAVE_COMPATIBLE_POW_EXITCODE +- 1 ++ 0 + CACHE STRING "Result from TRY_RUN" FORCE) + + SET( HAVE_VALID_NEGATIVE_INF_POW_EXITCODE +-- +2.7.4 + diff --git a/packaging/Revert-unnecessary-changes.patch b/packaging/Revert-unnecessary-changes.patch new file mode 100644 index 0000000000..bc441a5ab4 --- /dev/null +++ b/packaging/Revert-unnecessary-changes.patch @@ -0,0 +1,34 @@ +From df6f9ec3fcf0530537c7d5875fc95da7d5410606 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?=EC=98=A4=ED=98=95=EC=84=9D/Developer=20Experience=20Lab?= + =?UTF-8?q?=28S/W=EC=84=BC=ED=84=B0=29/Senior=20Engineer/=EC=82=BC?= + =?UTF-8?q?=EC=84=B1=EC=A0=84=EC=9E=90?= <hseok82.oh@samsung.com> +Date: Tue, 20 Jun 2017 12:20:44 +0900 +Subject: [PATCH] Revert unnecessary changes + +--- + src/jit/morph.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/jit/morph.cpp b/src/jit/morph.cpp +index 92d2f6e..287731c 100644 +--- a/src/jit/morph.cpp ++++ b/src/jit/morph.cpp +@@ -8888,6 +8888,7 @@ GenTreePtr Compiler::fgMorphOneAsgBlockOp(GenTreePtr tree) + } + else + { ++#ifndef LEGACY_BACKEND + + // The source argument of the copyblk can potentially + // be accessed only through indir(addr(lclVar)) +@@ -8897,7 +8898,6 @@ GenTreePtr Compiler::fgMorphOneAsgBlockOp(GenTreePtr tree) + // we don't delete it as a dead store later on. + unsigned lclVarNum = lclVarTree->gtLclVarCommon.gtLclNum; + lvaTable[lclVarNum].lvAddrExposed = true; +-#ifndef LEGACY_BACKEND + lvaSetVarDoNotEnregister(lclVarNum DEBUGARG(DNER_AddrExposed)); + + #else // LEGACY_BACKEND +-- +2.7.4 + diff --git a/packaging/Set-local-variables-as-addr-exposed-if-it-appears-in.patch b/packaging/Set-local-variables-as-addr-exposed-if-it-appears-in.patch new file mode 100644 index 0000000000..e97ed4c139 --- /dev/null +++ b/packaging/Set-local-variables-as-addr-exposed-if-it-appears-in.patch @@ -0,0 +1,49 @@ +From fe2fa78459ee56163e78ac5a854b85d50de2f83c Mon Sep 17 00:00:00 2001 +From: Jonghyun Park <parjong@gmail.com> +Date: Wed, 14 Jun 2017 07:05:12 +0900 +Subject: [PATCH] Set local variables as addr-exposed if it appears in ADDR + expression + +--- + src/jit/morph.cpp | 4 +--- + 1 file changed, 1 insertion(+), 3 deletions(-) + +diff --git a/src/jit/morph.cpp b/src/jit/morph.cpp +index 215b45f..92d2f6e 100644 +--- a/src/jit/morph.cpp ++++ b/src/jit/morph.cpp +@@ -8888,7 +8888,6 @@ GenTreePtr Compiler::fgMorphOneAsgBlockOp(GenTreePtr tree) + } + else + { +-#ifndef LEGACY_BACKEND + + // The source argument of the copyblk can potentially + // be accessed only through indir(addr(lclVar)) +@@ -8898,6 +8897,7 @@ GenTreePtr Compiler::fgMorphOneAsgBlockOp(GenTreePtr tree) + // we don't delete it as a dead store later on. + unsigned lclVarNum = lclVarTree->gtLclVarCommon.gtLclNum; + lvaTable[lclVarNum].lvAddrExposed = true; ++#ifndef LEGACY_BACKEND + lvaSetVarDoNotEnregister(lclVarNum DEBUGARG(DNER_AddrExposed)); + + #else // LEGACY_BACKEND +@@ -10268,7 +10268,6 @@ GenTreePtr Compiler::fgMorphCopyBlock(GenTreePtr tree) + + tree = gtNewAssignNode(gtNewLclvNode(addrSpillTemp, TYP_BYREF), addrSpill); + +-#ifndef LEGACY_BACKEND + // If we are assigning the address of a LclVar here + // liveness does not account for this kind of address taken use. + // +@@ -10286,7 +10285,6 @@ GenTreePtr Compiler::fgMorphCopyBlock(GenTreePtr tree) + lvaSetVarDoNotEnregister(lclVarNum DEBUGARG(DNER_AddrExposed)); + } + } +-#endif // !LEGACY_BACKEND + } + + _AssignFields: +-- +2.7.4 + diff --git a/packaging/coreclr.spec b/packaging/coreclr.spec index 226893a216..05a961b697 100644 --- a/packaging/coreclr.spec +++ b/packaging/coreclr.spec @@ -23,11 +23,18 @@ Source1000: downloaded_files.tar.gz Source1001: %{name}.manifest Source1002: libicu.tar.gz Source1003: dep_libs.tar.gz -# Gbp-Ignore-Patches: 0 1 2 3 +# Gbp-Ignore-Patches: 0 1 2 3 4 5 6 7 8 9 10 Patch0: Add-project.assets.json-files.patch Patch1: Add-Tizen-RuntimeID-case.patch Patch2: Change-O3-build-in-clang3.8.patch Patch3: Fix-build-breakage-on-high-processsor-machines-12114.patch +Patch4: ARM-Linux-Support-unaligned-struct-read-write-11290.patch +Patch5: x86-Linux-Thread-safe-UMThunkMarshInfo-RunTimeInit-1.patch +Patch6: Enable-pow-for-arm-armel-in-tryrun-11703.patch +Patch7: ARM-Linux-Validate-memory-using-ldrb-instead-of-ldr.patch +Patch8: Add-skipped-testcase-on-TM1.patch +Patch9: Set-local-variables-as-addr-exposed-if-it-appears-in.patch +Patch10: Revert-unnecessary-changes.patch ExcludeArch: aarch64 @@ -109,13 +116,20 @@ The MSCORLIB.DLL for .NET Core Runtime (coreclr) %prep %setup -q -n %{name}-%{version} cp %{SOURCE1001} . -%if 0%{skipmscorlib} -%else # Gbp-Patch-Macros %patch0 -p1 %patch1 -p1 %patch2 -p1 %patch3 -p1 +%patch4 -p1 +%patch5 -p1 +%patch6 -p1 +%patch7 -p1 +%patch8 -p1 +%patch9 -p1 +%patch10 -p1 +%if 0%{skipmscorlib} +%else cp %{SOURCE1000} ./ tar xf %{SOURCE1000} %ifarch %{arm} %{ix86} diff --git a/packaging/x86-Linux-Thread-safe-UMThunkMarshInfo-RunTimeInit-1.patch b/packaging/x86-Linux-Thread-safe-UMThunkMarshInfo-RunTimeInit-1.patch new file mode 100644 index 0000000000..c597dd3da6 --- /dev/null +++ b/packaging/x86-Linux-Thread-safe-UMThunkMarshInfo-RunTimeInit-1.patch @@ -0,0 +1,41 @@ +From 864b7408a60a72ac2ab6aef8b3d425544327f624 Mon Sep 17 00:00:00 2001 +From: Jonghyun Park <parjong@gmail.com> +Date: Thu, 25 May 2017 02:34:59 +0900 +Subject: [PATCH] [x86/Linux] Thread-safe UMThunkMarshInfo::RunTimeInit + (#11864) + +--- + src/vm/dllimportcallback.cpp | 7 ++++--- + 1 file changed, 4 insertions(+), 3 deletions(-) + +diff --git a/src/vm/dllimportcallback.cpp b/src/vm/dllimportcallback.cpp +index c70d52d..90c01a4 100644 +--- a/src/vm/dllimportcallback.cpp ++++ b/src/vm/dllimportcallback.cpp +@@ -1382,9 +1382,9 @@ VOID UMThunkMarshInfo::RunTimeInit() + UINT16 cbRetPop = 0; + + // +- // m_cbStackArgSize represents the number of arg bytes for the MANAGED signature ++ // cbStackArgSize represents the number of arg bytes for the MANAGED signature + // +- m_cbStackArgSize = 0; ++ UINT32 cbStackArgSize = 0; + + int offs = 0; + +@@ -1410,9 +1410,10 @@ VOID UMThunkMarshInfo::RunTimeInit() + else + { + offs += StackElemSize(cbSize); +- m_cbStackArgSize += StackElemSize(cbSize); ++ cbStackArgSize += StackElemSize(cbSize); + } + } ++ m_cbStackArgSize = cbStackArgSize; + m_cbActualArgSize = (pStubMD != NULL) ? pStubMD->AsDynamicMethodDesc()->GetNativeStackArgSize() : offs; + + PInvokeStaticSigInfo sigInfo; +-- +2.7.4 + |