summaryrefslogtreecommitdiff
path: root/packaging
diff options
context:
space:
mode:
authorjang <jiseob.jang@samsung.com>2017-06-22 11:17:43 +0900
committerjang <jiseob.jang@samsung.com>2017-06-22 11:17:43 +0900
commitfaa6c135955ef2234957fb29db492968bd3704eb (patch)
tree920053877854429d6333a5dc7521e4c615f8d750 /packaging
parent1b0a538f540a15579c5891c07f8741e86d65a190 (diff)
downloadcoreclr-faa6c135955ef2234957fb29db492968bd3704eb.tar.gz
coreclr-faa6c135955ef2234957fb29db492968bd3704eb.tar.bz2
coreclr-faa6c135955ef2234957fb29db492968bd3704eb.zip
Change-Id: If0c3413f59a8b6a7586575b44ef1f31deb05b005 Signed-off-by: jang <jiseob.jang@samsung.com>
Diffstat (limited to 'packaging')
-rw-r--r--packaging/ARM-Linux-Support-unaligned-struct-read-write-11290.patch83
-rw-r--r--packaging/ARM-Linux-Validate-memory-using-ldrb-instead-of-ldr.patch27
-rw-r--r--packaging/Add-skipped-testcase-on-TM1.patch33
-rw-r--r--packaging/Enable-pow-for-arm-armel-in-tryrun-11703.patch40
-rw-r--r--packaging/Revert-unnecessary-changes.patch34
-rw-r--r--packaging/Set-local-variables-as-addr-exposed-if-it-appears-in.patch49
-rw-r--r--packaging/coreclr.spec20
-rw-r--r--packaging/x86-Linux-Thread-safe-UMThunkMarshInfo-RunTimeInit-1.patch41
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
+