import dotnet-2.1.507-4.el8
This commit is contained in:
commit
f6aec540e0
1
.dotnet.metadata
Normal file
1
.dotnet.metadata
Normal file
@ -0,0 +1 @@
|
|||||||
|
2d247ba0f76d57d380473afeb0d7fb83c5fef1b9 SOURCES/dotnet-v2.1.11.tar.gz
|
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
SOURCES/dotnet-v2.1.11.tar.gz
|
136
SOURCES/check-debug-symbols.py
Executable file
136
SOURCES/check-debug-symbols.py
Executable file
@ -0,0 +1,136 @@
|
|||||||
|
#!/usr/bin/python3
|
||||||
|
|
||||||
|
"""
|
||||||
|
Check debug symbols are present in shared object and can identify
|
||||||
|
code.
|
||||||
|
|
||||||
|
It starts scanning from a directory and recursively scans all ELF
|
||||||
|
files found in it for various symbols to ensure all debuginfo is
|
||||||
|
present and nothing has been stripped.
|
||||||
|
|
||||||
|
Usage:
|
||||||
|
|
||||||
|
./check-debug-symbols /path/of/dir/to/scan/
|
||||||
|
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
./check-debug-symbols /usr/lib64
|
||||||
|
"""
|
||||||
|
|
||||||
|
# This technique was explained to me by Mark Wielaard (mjw).
|
||||||
|
|
||||||
|
import collections
|
||||||
|
import os
|
||||||
|
import re
|
||||||
|
import subprocess
|
||||||
|
import sys
|
||||||
|
|
||||||
|
ScanResult = collections.namedtuple('ScanResult',
|
||||||
|
'file_name debug_info debug_abbrev file_symbols gnu_debuglink')
|
||||||
|
|
||||||
|
|
||||||
|
def scan_file(file):
|
||||||
|
"Scan the provided file and return a ScanResult containing results of the scan."
|
||||||
|
|
||||||
|
# Test for .debug_* sections in the shared object. This is the main test.
|
||||||
|
# Stripped objects will not contain these.
|
||||||
|
readelf_S_result = subprocess.run(['eu-readelf', '-S', file],
|
||||||
|
stdout=subprocess.PIPE, encoding='utf-8', check=True)
|
||||||
|
has_debug_info = any(line for line in readelf_S_result.stdout.split('\n') if '] .debug_info' in line)
|
||||||
|
|
||||||
|
has_debug_abbrev = any(line for line in readelf_S_result.stdout.split('\n') if '] .debug_abbrev' in line)
|
||||||
|
|
||||||
|
# Test FILE symbols. These will most likely be removed by anyting that
|
||||||
|
# manipulates symbol tables because it's generally useless. So a nice test
|
||||||
|
# that nothing has messed with symbols.
|
||||||
|
def contains_file_symbols(line):
|
||||||
|
parts = line.split()
|
||||||
|
if len(parts) < 8:
|
||||||
|
return False
|
||||||
|
return \
|
||||||
|
parts[2] == '0' and parts[3] == 'FILE' and parts[4] == 'LOCAL' and parts[5] == 'DEFAULT' and \
|
||||||
|
parts[6] == 'ABS' and re.match(r'((.*/)?[-_a-zA-Z0-9]+\.(c|cc|cpp|cxx))?', parts[7])
|
||||||
|
|
||||||
|
readelf_s_result = subprocess.run(["eu-readelf", '-s', file],
|
||||||
|
stdout=subprocess.PIPE, encoding='utf-8', check=True)
|
||||||
|
has_file_symbols = any(line for line in readelf_s_result.stdout.split('\n') if contains_file_symbols(line))
|
||||||
|
|
||||||
|
# Test that there are no .gnu_debuglink sections pointing to another
|
||||||
|
# debuginfo file. There shouldn't be any debuginfo files, so the link makes
|
||||||
|
# no sense either.
|
||||||
|
has_gnu_debuglink = any(line for line in readelf_s_result.stdout.split('\n') if '] .gnu_debuglink' in line)
|
||||||
|
|
||||||
|
return ScanResult(file, has_debug_info, has_debug_abbrev, has_file_symbols, has_gnu_debuglink)
|
||||||
|
|
||||||
|
def is_elf(file):
|
||||||
|
result = subprocess.run(['file', file], stdout=subprocess.PIPE, encoding='utf-8', check=True)
|
||||||
|
return re.search('ELF 64-bit LSB (?:executable|shared object)', result.stdout)
|
||||||
|
|
||||||
|
def scan_file_if_sensible(file):
|
||||||
|
if is_elf(file):
|
||||||
|
# print(file)
|
||||||
|
return scan_file(file)
|
||||||
|
return None
|
||||||
|
|
||||||
|
def scan_dir(dir):
|
||||||
|
results = []
|
||||||
|
for root, _, files in os.walk(dir):
|
||||||
|
for name in files:
|
||||||
|
result = scan_file_if_sensible(os.path.join(root, name))
|
||||||
|
if result:
|
||||||
|
results.append(result)
|
||||||
|
return results
|
||||||
|
|
||||||
|
def scan(file):
|
||||||
|
file = os.path.abspath(file)
|
||||||
|
if os.path.isdir(file):
|
||||||
|
return scan_dir(file)
|
||||||
|
elif os.path.isfile(file):
|
||||||
|
return scan_file_if_sensible(file)
|
||||||
|
|
||||||
|
def is_bad_result(result):
|
||||||
|
return not result.debug_info or not result.debug_abbrev or not result.file_symbols or result.gnu_debuglink
|
||||||
|
|
||||||
|
def print_scan_results(results, verbose):
|
||||||
|
# print(results)
|
||||||
|
for result in results:
|
||||||
|
file_name = result.file_name
|
||||||
|
found_issue = False
|
||||||
|
if not result.debug_info:
|
||||||
|
found_issue = True
|
||||||
|
print('error: missing .debug_info section in', file_name)
|
||||||
|
if not result.debug_abbrev:
|
||||||
|
found_issue = True
|
||||||
|
print('error: missing .debug_abbrev section in', file_name)
|
||||||
|
if not result.file_symbols:
|
||||||
|
found_issue = True
|
||||||
|
print('error: missing FILE symbols in', file_name)
|
||||||
|
if result.gnu_debuglink:
|
||||||
|
found_issue = True
|
||||||
|
print('error: unexpected .gnu_debuglink section in', file_name)
|
||||||
|
if verbose and not found_issue:
|
||||||
|
print('OK: ', file_name)
|
||||||
|
|
||||||
|
def main(args):
|
||||||
|
verbose = False
|
||||||
|
files = []
|
||||||
|
for arg in args:
|
||||||
|
if arg == '--verbose' or arg == '-v':
|
||||||
|
verbose = True
|
||||||
|
else:
|
||||||
|
files.append(arg)
|
||||||
|
|
||||||
|
results = []
|
||||||
|
for file in files:
|
||||||
|
results.extend(scan(file))
|
||||||
|
|
||||||
|
print_scan_results(results, verbose)
|
||||||
|
|
||||||
|
if any(is_bad_result(result) for result in results):
|
||||||
|
return 1
|
||||||
|
return 0
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
sys.exit(main(sys.argv[1:]))
|
18
SOURCES/cli-telemetry-optout.patch
Normal file
18
SOURCES/cli-telemetry-optout.patch
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
diff --git a/src/dotnet/Program.cs b/src/dotnet/Program.cs
|
||||||
|
index de1ebb9e6..6bbf479de 100644
|
||||||
|
--- a/src/dotnet/Program.cs
|
||||||
|
+++ b/src/dotnet/Program.cs
|
||||||
|
@@ -28,6 +28,13 @@ public class Program
|
||||||
|
|
||||||
|
public static int Main(string[] args)
|
||||||
|
{
|
||||||
|
+ // opt out of telemetry by default if the env var is unset
|
||||||
|
+ string telemetryValue = Environment.GetEnvironmentVariable("DOTNET_CLI_TELEMETRY_OPTOUT");
|
||||||
|
+ if (String.IsNullOrEmpty(telemetryValue))
|
||||||
|
+ {
|
||||||
|
+ Environment.SetEnvironmentVariable("DOTNET_CLI_TELEMETRY_OPTOUT", "1");
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
DebugHelper.HandleDebugSwitch(ref args);
|
||||||
|
|
||||||
|
new MulticoreJitActivator().TryActivateMulticoreJit();
|
48
SOURCES/core-setup-4510-commit-id.patch
Normal file
48
SOURCES/core-setup-4510-commit-id.patch
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
From e02ee86364b9db3edc298a6a081004aa07473d09 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Omair Majid <omajid@redhat.com>
|
||||||
|
Date: Wed, 29 Aug 2018 17:03:25 -0400
|
||||||
|
Subject: [PATCH] Allow setting the commit id using /p:LatestCommit
|
||||||
|
|
||||||
|
This is similar to how CommitCount is already supported.
|
||||||
|
|
||||||
|
This lets consumers who are building outside a git repo, such as
|
||||||
|
source-build, set a commit id which is displayed by `dotnet --info`
|
||||||
|
and `strings dotnet | grep '@(#)'`.
|
||||||
|
|
||||||
|
See: https://github.com/dotnet/source-build/issues/651
|
||||||
|
See: https://github.com/dotnet/cli/pull/5945
|
||||||
|
---
|
||||||
|
dir.targets | 9 +++++----
|
||||||
|
1 file changed, 5 insertions(+), 4 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/dir.targets b/dir.targets
|
||||||
|
index 8d34872c6..59dc1ebde 100644
|
||||||
|
--- a/dir.targets
|
||||||
|
+++ b/dir.targets
|
||||||
|
@@ -17,7 +17,8 @@
|
||||||
|
<Exec Command="$(DotnetToolCommand) build $(MSBuildThisFileDirectory)tools-local/tasks/core-setup.tasks.csproj" />
|
||||||
|
</Target>
|
||||||
|
|
||||||
|
- <Target Name="GetLatestCommitHash">
|
||||||
|
+ <Target Name="GetLatestCommitHash"
|
||||||
|
+ Condition="'$(LatestCommit)' == ''">
|
||||||
|
<!-- Get the latest commit hash -->
|
||||||
|
<Exec Command="git rev-parse HEAD 2>&1" StandardOutputImportance="Low" IgnoreExitCode="true" IgnoreStandardErrorWarningFormat="true" ConsoleToMSBuild="true">
|
||||||
|
<Output TaskParameter="ConsoleOutput" PropertyName="LatestCommit" />
|
||||||
|
@@ -29,13 +30,13 @@
|
||||||
|
</PropertyGroup>
|
||||||
|
</Target>
|
||||||
|
|
||||||
|
- <Target Name="GetCommitCount">
|
||||||
|
+ <Target Name="GetCommitCount"
|
||||||
|
+ Condition="'$(CommitCount)' == ''">
|
||||||
|
<Exec Command="git rev-list --count HEAD"
|
||||||
|
StandardOutputImportance="Low"
|
||||||
|
IgnoreExitCode="true"
|
||||||
|
IgnoreStandardErrorWarningFormat="true"
|
||||||
|
- ConsoleToMSBuild="true"
|
||||||
|
- Condition="'$(CommitCount)' == ''">
|
||||||
|
+ ConsoleToMSBuild="true">
|
||||||
|
<Output TaskParameter="ConsoleOutput" PropertyName="CommitCount" />
|
||||||
|
<Output TaskParameter="ExitCode" PropertyName="CommitCountExitCode" />
|
||||||
|
</Exec>
|
11
SOURCES/core-setup-pie.patch
Normal file
11
SOURCES/core-setup-pie.patch
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
--- a/src/corehost/cli/exe/exe.cmake
|
||||||
|
+++ b/src/corehost/cli/exe/exe.cmake
|
||||||
|
@@ -44,6 +44,8 @@
|
||||||
|
|
||||||
|
add_executable(${DOTNET_HOST_EXE_NAME} ${SOURCES} ${RESOURCES})
|
||||||
|
|
||||||
|
+SET_TARGET_PROPERTIES(${DOTNET_HOST_EXE_NAME} PROPERTIES LINK_FLAGS -pie)
|
||||||
|
+
|
||||||
|
if(NOT WIN32)
|
||||||
|
disable_pax_mprotect(${DOTNET_HOST_EXE_NAME})
|
||||||
|
endif()
|
584
SOURCES/coreclr-assembly-hex-constants.patch
Normal file
584
SOURCES/coreclr-assembly-hex-constants.patch
Normal file
@ -0,0 +1,584 @@
|
|||||||
|
diff --git a/src/debug/ee/amd64/dbghelpers.S b/src/debug/ee/amd64/dbghelpers.S
|
||||||
|
index 85ec80c701..864c4dc943 100644
|
||||||
|
--- a/src/debug/ee/amd64/dbghelpers.S
|
||||||
|
+++ b/src/debug/ee/amd64/dbghelpers.S
|
||||||
|
@@ -29,7 +29,7 @@ NESTED_ENTRY FuncEvalHijack, _TEXT, UnhandledExceptionHandlerUnix
|
||||||
|
//
|
||||||
|
// epilogue
|
||||||
|
//
|
||||||
|
- add rsp, 20h
|
||||||
|
+ add rsp, 0x20
|
||||||
|
TAILJMP_RAX
|
||||||
|
NESTED_END FuncEvalHijack, _TEXT
|
||||||
|
|
||||||
|
@@ -65,14 +65,14 @@ NESTED_ENTRY ExceptionHijack, _TEXT, UnhandledExceptionHandlerUnix
|
||||||
|
// its arguments on the stack. In x64, it gets its arguments in
|
||||||
|
// registers (set up for us by DacDbiInterfaceImpl::Hijack),
|
||||||
|
// and this stack space may be reused.
|
||||||
|
- mov rax, [rsp + 20h]
|
||||||
|
+ mov rax, [rsp + 0x20]
|
||||||
|
mov [rsp], rax
|
||||||
|
- mov rax, [rsp + 28h]
|
||||||
|
- mov [rsp + 8h], rax
|
||||||
|
- mov rax, [rsp + 30h]
|
||||||
|
- mov [rsp + 10h], rax
|
||||||
|
- mov rax, [rsp + 38h]
|
||||||
|
- mov [rsp + 18h], rax
|
||||||
|
+ mov rax, [rsp + 0x28]
|
||||||
|
+ mov [rsp + 0x8], rax
|
||||||
|
+ mov rax, [rsp + 0x30]
|
||||||
|
+ mov [rsp + 0x10], rax
|
||||||
|
+ mov rax, [rsp + 0x38]
|
||||||
|
+ mov [rsp + 0x18], rax
|
||||||
|
|
||||||
|
// DD Hijack primitive already set the stack. So just make the call now.
|
||||||
|
call C_FUNC(ExceptionHijackWorker)
|
||||||
|
@@ -93,7 +93,7 @@ NESTED_ENTRY ExceptionHijack, _TEXT, UnhandledExceptionHandlerUnix
|
||||||
|
//
|
||||||
|
// epilogue
|
||||||
|
//
|
||||||
|
- add rsp, 20h
|
||||||
|
+ add rsp, 0x20
|
||||||
|
TAILJMP_RAX
|
||||||
|
|
||||||
|
// Put a label here to tell the debugger where the end of this function is.
|
||||||
|
diff --git a/src/pal/inc/unixasmmacros.inc b/src/pal/inc/unixasmmacros.inc
|
||||||
|
index e7a5eba898..8a74e3f266 100644
|
||||||
|
--- a/src/pal/inc/unixasmmacros.inc
|
||||||
|
+++ b/src/pal/inc/unixasmmacros.inc
|
||||||
|
@@ -2,7 +2,7 @@
|
||||||
|
// The .NET Foundation licenses this file to you under the MIT license.
|
||||||
|
// See the LICENSE file in the project root for more information.
|
||||||
|
|
||||||
|
-#define INVALIDGCVALUE 0CCCCCCCDh
|
||||||
|
+#define INVALIDGCVALUE 0xCCCCCCCD
|
||||||
|
|
||||||
|
#if defined(__APPLE__)
|
||||||
|
#define C_FUNC(name) _##name
|
||||||
|
diff --git a/src/vm/amd64/JitHelpers_Fast.asm b/src/vm/amd64/JitHelpers_Fast.asm
|
||||||
|
index 83f7132688..5251387408 100644
|
||||||
|
--- a/src/vm/amd64/JitHelpers_Fast.asm
|
||||||
|
+++ b/src/vm/amd64/JitHelpers_Fast.asm
|
||||||
|
@@ -40,7 +40,7 @@ EXTERN g_GCShadow:QWORD
|
||||||
|
EXTERN g_GCShadowEnd:QWORD
|
||||||
|
endif
|
||||||
|
|
||||||
|
-INVALIDGCVALUE equ 0CCCCCCCDh
|
||||||
|
+INVALIDGCVALUE equ 0xCCCCCCCD
|
||||||
|
|
||||||
|
ifdef _DEBUG
|
||||||
|
extern JIT_WriteBarrier_Debug:proc
|
||||||
|
diff --git a/src/vm/amd64/JitHelpers_Slow.asm b/src/vm/amd64/JitHelpers_Slow.asm
|
||||||
|
index 0e26ae6dfd..80b7453d4f 100644
|
||||||
|
--- a/src/vm/amd64/JitHelpers_Slow.asm
|
||||||
|
+++ b/src/vm/amd64/JitHelpers_Slow.asm
|
||||||
|
@@ -48,7 +48,7 @@ g_pStringClass equ ?g_pStringClass@@3PEAVMethodTable@@EA
|
||||||
|
FramedAllocateString equ ?FramedAllocateString@@YAPEAVStringObject@@K@Z
|
||||||
|
JIT_NewArr1 equ ?JIT_NewArr1@@YAPEAVObject@@PEAUCORINFO_CLASS_STRUCT_@@_J@Z
|
||||||
|
|
||||||
|
-INVALIDGCVALUE equ 0CCCCCCCDh
|
||||||
|
+INVALIDGCVALUE equ 0xCCCCCCCD
|
||||||
|
|
||||||
|
extern JIT_NEW:proc
|
||||||
|
extern CopyValueClassUnchecked:proc
|
||||||
|
diff --git a/src/vm/amd64/jithelpers_fast.S b/src/vm/amd64/jithelpers_fast.S
|
||||||
|
index 6f955b0bee..5f68fc0ebf 100644
|
||||||
|
--- a/src/vm/amd64/jithelpers_fast.S
|
||||||
|
+++ b/src/vm/amd64/jithelpers_fast.S
|
||||||
|
@@ -81,14 +81,14 @@ LEAF_ENTRY JIT_WriteBarrier, _TEXT
|
||||||
|
// Update the write watch table if necessary
|
||||||
|
mov rax, rdi
|
||||||
|
movabs r10, 0xF0F0F0F0F0F0F0F0
|
||||||
|
- shr rax, 0Ch // SoftwareWriteWatch::AddressToTableByteIndexShift
|
||||||
|
+ shr rax, 0xC // SoftwareWriteWatch::AddressToTableByteIndexShift
|
||||||
|
NOP_2_BYTE // padding for alignment of constant
|
||||||
|
movabs r11, 0xF0F0F0F0F0F0F0F0
|
||||||
|
add rax, r10
|
||||||
|
- cmp byte ptr [rax], 0h
|
||||||
|
+ cmp byte ptr [rax], 0x0
|
||||||
|
.byte 0x75, 0x06
|
||||||
|
// jne CheckCardTable
|
||||||
|
- mov byte ptr [rax], 0FFh
|
||||||
|
+ mov byte ptr [rax], 0xFF
|
||||||
|
|
||||||
|
NOP_3_BYTE // padding for alignment of constant
|
||||||
|
|
||||||
|
@@ -112,27 +112,27 @@ LEAF_ENTRY JIT_WriteBarrier, _TEXT
|
||||||
|
|
||||||
|
// Touch the card table entry, if not already dirty.
|
||||||
|
shr rdi, 0x0B
|
||||||
|
- cmp byte ptr [rdi + rax], 0FFh
|
||||||
|
+ cmp byte ptr [rdi + rax], 0xFF
|
||||||
|
.byte 0x75, 0x02
|
||||||
|
// jne UpdateCardTable
|
||||||
|
REPRET
|
||||||
|
|
||||||
|
UpdateCardTable:
|
||||||
|
- mov byte ptr [rdi + rax], 0FFh
|
||||||
|
+ mov byte ptr [rdi + rax], 0xFF
|
||||||
|
|
||||||
|
#ifdef FEATURE_MANUALLY_MANAGED_CARD_BUNDLES
|
||||||
|
NOP_2_BYTE // padding for alignment of constant
|
||||||
|
shr rdi, 0x0A
|
||||||
|
|
||||||
|
movabs rax, 0xF0F0F0F0F0F0F0F0
|
||||||
|
- cmp byte ptr [rdi + rax], 0FFh
|
||||||
|
+ cmp byte ptr [rdi + rax], 0xFF
|
||||||
|
|
||||||
|
.byte 0x75, 0x02
|
||||||
|
// jne UpdateCardBundle_WriteWatch_PostGrow64
|
||||||
|
REPRET
|
||||||
|
|
||||||
|
UpdateCardBundle_WriteWatch_PostGrow64:
|
||||||
|
- mov byte ptr [rdi + rax], 0FFh
|
||||||
|
+ mov byte ptr [rdi + rax], 0xFF
|
||||||
|
#endif
|
||||||
|
|
||||||
|
ret
|
||||||
|
@@ -177,14 +177,14 @@ LEAF_ENTRY JIT_WriteBarrier, _TEXT
|
||||||
|
movabs rax, 0xF0F0F0F0F0F0F0F0
|
||||||
|
|
||||||
|
// Touch the card table entry, if not already dirty.
|
||||||
|
- shr rdi, 0Bh
|
||||||
|
- cmp byte ptr [rdi + rax], 0FFh
|
||||||
|
+ shr rdi, 0x0B
|
||||||
|
+ cmp byte ptr [rdi + rax], 0xFF
|
||||||
|
.byte 0x75, 0x02
|
||||||
|
// jne UpdateCardTable
|
||||||
|
REPRET
|
||||||
|
|
||||||
|
UpdateCardTable:
|
||||||
|
- mov byte ptr [rdi + rax], 0FFh
|
||||||
|
+ mov byte ptr [rdi + rax], 0x0xFF
|
||||||
|
|
||||||
|
#ifdef FEATURE_MANUALLY_MANAGED_CARD_BUNDLES
|
||||||
|
NOP_6_BYTE // padding for alignment of constant
|
||||||
|
@@ -194,14 +194,14 @@ LEAF_ENTRY JIT_WriteBarrier, _TEXT
|
||||||
|
// Touch the card bundle, if not already dirty.
|
||||||
|
// rdi is already shifted by 0xB, so shift by 0xA more
|
||||||
|
shr rdi, 0x0A
|
||||||
|
- cmp byte ptr [rdi + rax], 0FFh
|
||||||
|
+ cmp byte ptr [rdi + rax], 0xFF
|
||||||
|
|
||||||
|
.byte 0x75, 0x02
|
||||||
|
// jne UpdateCardBundle
|
||||||
|
REPRET
|
||||||
|
|
||||||
|
UpdateCardBundle:
|
||||||
|
- mov byte ptr [rdi + rax], 0FFh
|
||||||
|
+ mov byte ptr [rdi + rax], 0xFF
|
||||||
|
#endif
|
||||||
|
|
||||||
|
ret
|
||||||
|
@@ -312,15 +312,15 @@ LEAF_ENTRY JIT_ByRefWriteBarrier, _TEXT
|
||||||
|
#ifdef FEATURE_USE_SOFTWARE_WRITE_WATCH_FOR_GC_HEAP
|
||||||
|
// Update the write watch table if necessary
|
||||||
|
PREPARE_EXTERNAL_VAR g_sw_ww_enabled_for_gc_heap, rax
|
||||||
|
- cmp byte ptr [rax], 0h
|
||||||
|
+ cmp byte ptr [rax], 0x0
|
||||||
|
je CheckCardTable_ByRefWriteBarrier
|
||||||
|
mov rax, rdi
|
||||||
|
- shr rax, 0Ch // SoftwareWriteWatch::AddressToTableByteIndexShift
|
||||||
|
+ shr rax, 0xC // SoftwareWriteWatch::AddressToTableByteIndexShift
|
||||||
|
PREPARE_EXTERNAL_VAR g_sw_ww_table, r10
|
||||||
|
add rax, qword ptr [r10]
|
||||||
|
- cmp byte ptr [rax], 0h
|
||||||
|
+ cmp byte ptr [rax], 0x0
|
||||||
|
jne CheckCardTable_ByRefWriteBarrier
|
||||||
|
- mov byte ptr [rax], 0FFh
|
||||||
|
+ mov byte ptr [rax], 0xFF
|
||||||
|
#endif
|
||||||
|
|
||||||
|
CheckCardTable_ByRefWriteBarrier:
|
||||||
|
@@ -334,8 +334,8 @@ LEAF_ENTRY JIT_ByRefWriteBarrier, _TEXT
|
||||||
|
|
||||||
|
// move current rdi value into rcx and then increment the pointers
|
||||||
|
mov rcx, rdi
|
||||||
|
- add rsi, 8h
|
||||||
|
- add rdi, 8h
|
||||||
|
+ add rsi, 0x8
|
||||||
|
+ add rdi, 0x8
|
||||||
|
|
||||||
|
// Check if we need to update the card table
|
||||||
|
// Calc pCardByte
|
||||||
|
@@ -345,13 +345,13 @@ LEAF_ENTRY JIT_ByRefWriteBarrier, _TEXT
|
||||||
|
mov rax, [rax]
|
||||||
|
|
||||||
|
// Check if this card is dirty
|
||||||
|
- cmp byte ptr [rcx + rax], 0FFh
|
||||||
|
+ cmp byte ptr [rcx + rax], 0xFF
|
||||||
|
|
||||||
|
jne UpdateCardTable_ByRefWriteBarrier
|
||||||
|
REPRET
|
||||||
|
|
||||||
|
UpdateCardTable_ByRefWriteBarrier:
|
||||||
|
- mov byte ptr [rcx + rax], 0FFh
|
||||||
|
+ mov byte ptr [rcx + rax], 0xFF
|
||||||
|
|
||||||
|
#ifdef FEATURE_MANUALLY_MANAGED_CARD_BUNDLES
|
||||||
|
// Shift rcx by 0x0A more to get the card bundle byte (we shifted by 0x0B already)
|
||||||
|
@@ -361,13 +361,13 @@ LEAF_ENTRY JIT_ByRefWriteBarrier, _TEXT
|
||||||
|
add rcx, [rax]
|
||||||
|
|
||||||
|
// Check if this bundle byte is dirty
|
||||||
|
- cmp byte ptr [rcx], 0FFh
|
||||||
|
+ cmp byte ptr [rcx], 0xFF
|
||||||
|
|
||||||
|
jne UpdateCardBundle_ByRefWriteBarrier
|
||||||
|
REPRET
|
||||||
|
|
||||||
|
UpdateCardBundle_ByRefWriteBarrier:
|
||||||
|
- mov byte ptr [rcx], 0FFh
|
||||||
|
+ mov byte ptr [rcx], 0xFF
|
||||||
|
#endif
|
||||||
|
|
||||||
|
ret
|
||||||
|
@@ -383,8 +383,8 @@ LEAF_ENTRY JIT_ByRefWriteBarrier, _TEXT
|
||||||
|
#endif
|
||||||
|
Exit_ByRefWriteBarrier:
|
||||||
|
// Increment the pointers before leaving
|
||||||
|
- add rdi, 8h
|
||||||
|
- add rsi, 8h
|
||||||
|
+ add rdi, 0x8
|
||||||
|
+ add rsi, 0x8
|
||||||
|
ret
|
||||||
|
LEAF_END JIT_ByRefWriteBarrier, _TEXT
|
||||||
|
|
||||||
|
diff --git a/src/vm/amd64/jithelpers_fastwritebarriers.S b/src/vm/amd64/jithelpers_fastwritebarriers.S
|
||||||
|
index 23c1115165..0fe0e57472 100644
|
||||||
|
--- a/src/vm/amd64/jithelpers_fastwritebarriers.S
|
||||||
|
+++ b/src/vm/amd64/jithelpers_fastwritebarriers.S
|
||||||
|
@@ -38,13 +38,13 @@ PATCH_LABEL JIT_WriteBarrier_PreGrow64_Patch_Label_CardTable
|
||||||
|
|
||||||
|
// Touch the card table entry, if not already dirty.
|
||||||
|
shr rdi, 0x0B
|
||||||
|
- cmp byte ptr [rdi + rax], 0FFh
|
||||||
|
+ cmp byte ptr [rdi + rax], 0xFF
|
||||||
|
.byte 0x75, 0x02
|
||||||
|
// jne UpdateCardTable_PreGrow64
|
||||||
|
REPRET
|
||||||
|
|
||||||
|
UpdateCardTable_PreGrow64:
|
||||||
|
- mov byte ptr [rdi + rax], 0FFh
|
||||||
|
+ mov byte ptr [rdi + rax], 0xFF
|
||||||
|
|
||||||
|
#ifdef FEATURE_MANUALLY_MANAGED_CARD_BUNDLES
|
||||||
|
NOP_6_BYTE // padding for alignment of constant
|
||||||
|
@@ -55,14 +55,14 @@ PATCH_LABEL JIT_WriteBarrier_PreGrow64_Patch_Label_CardBundleTable
|
||||||
|
// Touch the card bundle, if not already dirty.
|
||||||
|
// rdi is already shifted by 0xB, so shift by 0xA more
|
||||||
|
shr rdi, 0x0A
|
||||||
|
- cmp byte ptr [rdi + rax], 0FFh
|
||||||
|
+ cmp byte ptr [rdi + rax], 0xFF
|
||||||
|
|
||||||
|
.byte 0x75, 0x02
|
||||||
|
// jne UpdateCardBundle_PreGrow64
|
||||||
|
REPRET
|
||||||
|
|
||||||
|
UpdateCardBundle_PreGrow64:
|
||||||
|
- mov byte ptr [rdi + rax], 0FFh
|
||||||
|
+ mov byte ptr [rdi + rax], 0xFF
|
||||||
|
#endif
|
||||||
|
|
||||||
|
ret
|
||||||
|
@@ -123,13 +123,13 @@ PATCH_LABEL JIT_WriteBarrier_PostGrow64_Patch_Label_CardTable
|
||||||
|
|
||||||
|
// Touch the card table entry, if not already dirty.
|
||||||
|
shr rdi, 0x0B
|
||||||
|
- cmp byte ptr [rdi + rax], 0FFh
|
||||||
|
+ cmp byte ptr [rdi + rax], 0xFF
|
||||||
|
.byte 0x75, 0x02
|
||||||
|
// jne UpdateCardTable_PostGrow64
|
||||||
|
REPRET
|
||||||
|
|
||||||
|
UpdateCardTable_PostGrow64:
|
||||||
|
- mov byte ptr [rdi + rax], 0FFh
|
||||||
|
+ mov byte ptr [rdi + rax], 0xFF
|
||||||
|
|
||||||
|
#ifdef FEATURE_MANUALLY_MANAGED_CARD_BUNDLES
|
||||||
|
NOP_6_BYTE // padding for alignment of constant
|
||||||
|
@@ -140,14 +140,14 @@ PATCH_LABEL JIT_WriteBarrier_PostGrow64_Patch_Label_CardBundleTable
|
||||||
|
// Touch the card bundle, if not already dirty.
|
||||||
|
// rdi is already shifted by 0xB, so shift by 0xA more
|
||||||
|
shr rdi, 0x0A
|
||||||
|
- cmp byte ptr [rdi + rax], 0FFh
|
||||||
|
+ cmp byte ptr [rdi + rax], 0xFF
|
||||||
|
|
||||||
|
.byte 0x75, 0x02
|
||||||
|
// jne UpdateCardBundle_PostGrow64
|
||||||
|
REPRET
|
||||||
|
|
||||||
|
UpdateCardBundle_PostGrow64:
|
||||||
|
- mov byte ptr [rdi + rax], 0FFh
|
||||||
|
+ mov byte ptr [rdi + rax], 0xFF
|
||||||
|
#endif
|
||||||
|
|
||||||
|
ret
|
||||||
|
@@ -182,13 +182,13 @@ PATCH_LABEL JIT_WriteBarrier_SVR64_PatchLabel_CardTable
|
||||||
|
|
||||||
|
shr rdi, 0x0B
|
||||||
|
|
||||||
|
- cmp byte ptr [rdi + rax], 0FFh
|
||||||
|
+ cmp byte ptr [rdi + rax], 0xFF
|
||||||
|
.byte 0x75, 0x02
|
||||||
|
// jne UpdateCardTable_SVR64
|
||||||
|
REPRET
|
||||||
|
|
||||||
|
UpdateCardTable_SVR64:
|
||||||
|
- mov byte ptr [rdi + rax], 0FFh
|
||||||
|
+ mov byte ptr [rdi + rax], 0xFF
|
||||||
|
|
||||||
|
#ifdef FEATURE_MANUALLY_MANAGED_CARD_BUNDLES
|
||||||
|
NOP_6_BYTE // padding for alignment of constant
|
||||||
|
@@ -198,14 +198,14 @@ PATCH_LABEL JIT_WriteBarrier_SVR64_PatchLabel_CardBundleTable
|
||||||
|
|
||||||
|
// Shift the address by 0xA more since already shifted by 0xB
|
||||||
|
shr rdi, 0x0A
|
||||||
|
- cmp byte ptr [rdi + rax], 0FFh
|
||||||
|
+ cmp byte ptr [rdi + rax], 0xFF
|
||||||
|
|
||||||
|
.byte 0x75, 0x02
|
||||||
|
// jne UpdateCardBundle_SVR64
|
||||||
|
REPRET
|
||||||
|
|
||||||
|
UpdateCardBundle_SVR64:
|
||||||
|
- mov byte ptr [rdi + rax], 0FFh
|
||||||
|
+ mov byte ptr [rdi + rax], 0xFF
|
||||||
|
#endif
|
||||||
|
|
||||||
|
ret
|
||||||
|
@@ -236,15 +236,15 @@ LEAF_ENTRY JIT_WriteBarrier_WriteWatch_PreGrow64, _TEXT
|
||||||
|
mov rax, rdi
|
||||||
|
PATCH_LABEL JIT_WriteBarrier_WriteWatch_PreGrow64_Patch_Label_WriteWatchTable
|
||||||
|
movabs r10, 0xF0F0F0F0F0F0F0F0
|
||||||
|
- shr rax, 0Ch // SoftwareWriteWatch::AddressToTableByteIndexShift
|
||||||
|
+ shr rax, 0xC // SoftwareWriteWatch::AddressToTableByteIndexShift
|
||||||
|
NOP_2_BYTE // padding for alignment of constant
|
||||||
|
PATCH_LABEL JIT_WriteBarrier_WriteWatch_PreGrow64_Patch_Label_Lower
|
||||||
|
movabs r11, 0xF0F0F0F0F0F0F0F0
|
||||||
|
add rax, r10
|
||||||
|
- cmp byte ptr [rax], 0h
|
||||||
|
+ cmp byte ptr [rax], 0x0
|
||||||
|
.byte 0x75, 0x03
|
||||||
|
// jne CheckCardTable_WriteWatch_PreGrow64
|
||||||
|
- mov byte ptr [rax], 0FFh
|
||||||
|
+ mov byte ptr [rax], 0xFF
|
||||||
|
|
||||||
|
CheckCardTable_WriteWatch_PreGrow64:
|
||||||
|
// Check the lower ephemeral region bound.
|
||||||
|
@@ -263,13 +263,13 @@ PATCH_LABEL JIT_WriteBarrier_WriteWatch_PreGrow64_Patch_Label_Lower
|
||||||
|
NOP_2_BYTE // padding for alignment of constant
|
||||||
|
PATCH_LABEL JIT_WriteBarrier_WriteWatch_PreGrow64_Patch_Label_CardTable
|
||||||
|
movabs rax, 0xF0F0F0F0F0F0F0F0
|
||||||
|
- cmp byte ptr [rdi + rax], 0FFh
|
||||||
|
+ cmp byte ptr [rdi + rax], 0xFF
|
||||||
|
.byte 0x75, 0x02
|
||||||
|
// jne UpdateCardTable_WriteWatch_PreGrow64
|
||||||
|
REPRET
|
||||||
|
|
||||||
|
UpdateCardTable_WriteWatch_PreGrow64:
|
||||||
|
- mov byte ptr [rdi + rax], 0FFh
|
||||||
|
+ mov byte ptr [rdi + rax], 0xFF
|
||||||
|
|
||||||
|
#ifdef FEATURE_MANUALLY_MANAGED_CARD_BUNDLES
|
||||||
|
NOP_2_BYTE // padding for alignment of constant
|
||||||
|
@@ -277,14 +277,14 @@ PATCH_LABEL JIT_WriteBarrier_WriteWatch_PreGrow64_Patch_Label_CardBundleTable
|
||||||
|
movabs rax, 0xF0F0F0F0F0F0F0F0
|
||||||
|
|
||||||
|
shr rdi, 0x0A
|
||||||
|
- cmp byte ptr [rdi + rax], 0FFh
|
||||||
|
+ cmp byte ptr [rdi + rax], 0xFF
|
||||||
|
|
||||||
|
.byte 0x75, 0x02
|
||||||
|
// jne UpdateCardBundle_WriteWatch_PreGrow64
|
||||||
|
REPRET
|
||||||
|
|
||||||
|
UpdateCardBundle_WriteWatch_PreGrow64:
|
||||||
|
- mov byte ptr [rdi + rax], 0FFh
|
||||||
|
+ mov byte ptr [rdi + rax], 0xFF
|
||||||
|
#endif
|
||||||
|
|
||||||
|
ret
|
||||||
|
@@ -314,15 +314,15 @@ LEAF_ENTRY JIT_WriteBarrier_WriteWatch_PostGrow64, _TEXT
|
||||||
|
mov rax, rdi
|
||||||
|
PATCH_LABEL JIT_WriteBarrier_WriteWatch_PostGrow64_Patch_Label_WriteWatchTable
|
||||||
|
movabs r10, 0xF0F0F0F0F0F0F0F0
|
||||||
|
- shr rax, 0Ch // SoftwareWriteWatch::AddressToTableByteIndexShift
|
||||||
|
+ shr rax, 0xC // SoftwareWriteWatch::AddressToTableByteIndexShift
|
||||||
|
NOP_2_BYTE // padding for alignment of constant
|
||||||
|
PATCH_LABEL JIT_WriteBarrier_WriteWatch_PostGrow64_Patch_Label_Lower
|
||||||
|
movabs r11, 0xF0F0F0F0F0F0F0F0
|
||||||
|
add rax, r10
|
||||||
|
- cmp byte ptr [rax], 0h
|
||||||
|
+ cmp byte ptr [rax], 0x0
|
||||||
|
.byte 0x75, 0x06
|
||||||
|
// jne CheckCardTable_WriteWatch_PostGrow64
|
||||||
|
- mov byte ptr [rax], 0FFh
|
||||||
|
+ mov byte ptr [rax], 0xFF
|
||||||
|
|
||||||
|
NOP_3_BYTE // padding for alignment of constant
|
||||||
|
|
||||||
|
@@ -358,13 +358,13 @@ PATCH_LABEL JIT_WriteBarrier_WriteWatch_PostGrow64_Patch_Label_CardTable
|
||||||
|
|
||||||
|
// Touch the card table entry, if not already dirty.
|
||||||
|
shr rdi, 0x0B
|
||||||
|
- cmp byte ptr [rdi + rax], 0FFh
|
||||||
|
+ cmp byte ptr [rdi + rax], 0xFF
|
||||||
|
.byte 0x75, 0x02
|
||||||
|
// jne UpdateCardTable_WriteWatch_PostGrow64
|
||||||
|
REPRET
|
||||||
|
|
||||||
|
UpdateCardTable_WriteWatch_PostGrow64:
|
||||||
|
- mov byte ptr [rdi + rax], 0FFh
|
||||||
|
+ mov byte ptr [rdi + rax], 0xFF
|
||||||
|
|
||||||
|
#ifdef FEATURE_MANUALLY_MANAGED_CARD_BUNDLES
|
||||||
|
NOP_2_BYTE // padding for alignment of constant
|
||||||
|
@@ -372,14 +372,14 @@ PATCH_LABEL JIT_WriteBarrier_WriteWatch_PostGrow64_Patch_Label_CardTable
|
||||||
|
|
||||||
|
PATCH_LABEL JIT_WriteBarrier_WriteWatch_PostGrow64_Patch_Label_CardBundleTable
|
||||||
|
movabs rax, 0xF0F0F0F0F0F0F0F0
|
||||||
|
- cmp byte ptr [rdi + rax], 0FFh
|
||||||
|
+ cmp byte ptr [rdi + rax], 0xFF
|
||||||
|
|
||||||
|
.byte 0x75, 0x02
|
||||||
|
// jne UpdateCardBundle_WriteWatch_PostGrow64
|
||||||
|
REPRET
|
||||||
|
|
||||||
|
UpdateCardBundle_WriteWatch_PostGrow64:
|
||||||
|
- mov byte ptr [rdi + rax], 0FFh
|
||||||
|
+ mov byte ptr [rdi + rax], 0xFF
|
||||||
|
#endif
|
||||||
|
|
||||||
|
ret
|
||||||
|
@@ -417,25 +417,25 @@ LEAF_ENTRY JIT_WriteBarrier_WriteWatch_SVR64, _TEXT
|
||||||
|
mov rax, rdi
|
||||||
|
PATCH_LABEL JIT_WriteBarrier_WriteWatch_SVR64_PatchLabel_WriteWatchTable
|
||||||
|
movabs r10, 0xF0F0F0F0F0F0F0F0
|
||||||
|
- shr rax, 0Ch // SoftwareWriteWatch::AddressToTableByteIndexShift
|
||||||
|
+ shr rax, 0xC // SoftwareWriteWatch::AddressToTableByteIndexShift
|
||||||
|
NOP_2_BYTE // padding for alignment of constant
|
||||||
|
PATCH_LABEL JIT_WriteBarrier_WriteWatch_SVR64_PatchLabel_CardTable
|
||||||
|
movabs r11, 0xF0F0F0F0F0F0F0F0
|
||||||
|
add rax, r10
|
||||||
|
- cmp byte ptr [rax], 0h
|
||||||
|
+ cmp byte ptr [rax], 0x0
|
||||||
|
.byte 0x75, 0x03
|
||||||
|
// jne CheckCardTable_WriteWatch_SVR64
|
||||||
|
- mov byte ptr [rax], 0FFh
|
||||||
|
+ mov byte ptr [rax], 0xFF
|
||||||
|
|
||||||
|
CheckCardTable_WriteWatch_SVR64:
|
||||||
|
shr rdi, 0x0B
|
||||||
|
- cmp byte ptr [rdi + r11], 0FFh
|
||||||
|
+ cmp byte ptr [rdi + r11], 0xFF
|
||||||
|
.byte 0x75, 0x02
|
||||||
|
// jne UpdateCardTable_WriteWatch_SVR64
|
||||||
|
REPRET
|
||||||
|
|
||||||
|
UpdateCardTable_WriteWatch_SVR64:
|
||||||
|
- mov byte ptr [rdi + r11], 0FFh
|
||||||
|
+ mov byte ptr [rdi + r11], 0xFF
|
||||||
|
|
||||||
|
#ifdef FEATURE_MANUALLY_MANAGED_CARD_BUNDLES
|
||||||
|
NOP // padding for alignment of constant
|
||||||
|
@@ -444,13 +444,13 @@ PATCH_LABEL JIT_WriteBarrier_WriteWatch_SVR64_PatchLabel_CardBundleTable
|
||||||
|
movabs r11, 0xF0F0F0F0F0F0F0F0
|
||||||
|
|
||||||
|
shr rdi, 0x0A
|
||||||
|
- cmp byte ptr [rdi + r11], 0FFh
|
||||||
|
+ cmp byte ptr [rdi + r11], 0xFF
|
||||||
|
.byte 0x75, 0x02
|
||||||
|
// jne UpdateCardBundle_WriteWatch_SVR64
|
||||||
|
REPRET
|
||||||
|
|
||||||
|
UpdateCardBundle_WriteWatch_SVR64:
|
||||||
|
- mov byte ptr [rdi + r11], 0FFh
|
||||||
|
+ mov byte ptr [rdi + r11], 0xFF
|
||||||
|
#endif
|
||||||
|
|
||||||
|
ret
|
||||||
|
diff --git a/src/vm/amd64/jithelpers_slow.S b/src/vm/amd64/jithelpers_slow.S
|
||||||
|
index f61b42afc7..aa2e8cc064 100644
|
||||||
|
--- a/src/vm/amd64/jithelpers_slow.S
|
||||||
|
+++ b/src/vm/amd64/jithelpers_slow.S
|
||||||
|
@@ -71,15 +71,15 @@ LEAF_ENTRY JIT_WriteBarrier_Debug, _TEXT
|
||||||
|
#ifdef FEATURE_USE_SOFTWARE_WRITE_WATCH_FOR_GC_HEAP
|
||||||
|
// Update the write watch table if necessary
|
||||||
|
PREPARE_EXTERNAL_VAR g_sw_ww_enabled_for_gc_heap, r10
|
||||||
|
- cmp byte ptr [r10], 0h
|
||||||
|
+ cmp byte ptr [r10], 0x0
|
||||||
|
je CheckCardTable_Debug
|
||||||
|
mov r10, rdi
|
||||||
|
- shr r10, 0Ch // SoftwareWriteWatch::AddressToTableByteIndexShift
|
||||||
|
+ shr r10, 0xC // SoftwareWriteWatch::AddressToTableByteIndexShift
|
||||||
|
PREPARE_EXTERNAL_VAR g_sw_ww_table, r11
|
||||||
|
add r10, qword ptr [r11]
|
||||||
|
- cmp byte ptr [r10], 0h
|
||||||
|
+ cmp byte ptr [r10], 0x0
|
||||||
|
jne CheckCardTable_Debug
|
||||||
|
- mov byte ptr [r10], 0FFh
|
||||||
|
+ mov byte ptr [r10], 0xFF
|
||||||
|
#endif
|
||||||
|
|
||||||
|
CheckCardTable_Debug:
|
||||||
|
@@ -99,13 +99,13 @@ LEAF_ENTRY JIT_WriteBarrier_Debug, _TEXT
|
||||||
|
mov r10, [r10]
|
||||||
|
|
||||||
|
// Check if this card is dirty
|
||||||
|
- cmp byte ptr [rdi + r10], 0FFh
|
||||||
|
+ cmp byte ptr [rdi + r10], 0xFF
|
||||||
|
|
||||||
|
jne UpdateCardTable_Debug
|
||||||
|
REPRET
|
||||||
|
|
||||||
|
UpdateCardTable_Debug:
|
||||||
|
- mov byte ptr [rdi + r10], 0FFh
|
||||||
|
+ mov byte ptr [rdi + r10], 0xFF
|
||||||
|
|
||||||
|
#ifdef FEATURE_MANUALLY_MANAGED_CARD_BUNDLES
|
||||||
|
// Shift rdi by 0x0A more to get the card bundle byte (we shifted by 0x0B already)
|
||||||
|
@@ -115,13 +115,13 @@ LEAF_ENTRY JIT_WriteBarrier_Debug, _TEXT
|
||||||
|
add rdi, [r10]
|
||||||
|
|
||||||
|
// Check if this bundle byte is dirty
|
||||||
|
- cmp byte ptr [rdi], 0FFh
|
||||||
|
+ cmp byte ptr [rdi], 0xFF
|
||||||
|
|
||||||
|
jne UpdateCardBundle_Debug
|
||||||
|
REPRET
|
||||||
|
|
||||||
|
UpdateCardBundle_Debug:
|
||||||
|
- mov byte ptr [rdi], 0FFh
|
||||||
|
+ mov byte ptr [rdi], 0xFF
|
||||||
|
#endif
|
||||||
|
|
||||||
|
ret
|
||||||
|
diff --git a/src/vm/amd64/virtualcallstubamd64.S b/src/vm/amd64/virtualcallstubamd64.S
|
||||||
|
index 59b5b77dba..38c33d498e 100644
|
||||||
|
--- a/src/vm/amd64/virtualcallstubamd64.S
|
||||||
|
+++ b/src/vm/amd64/virtualcallstubamd64.S
|
||||||
|
@@ -59,19 +59,19 @@ LEAF_ENTRY ResolveWorkerChainLookupAsmStub, _TEXT
|
||||||
|
jnz Fail_RWCLAS // If the BACKPATCH_FLAGS is set we will go directly to the ResolveWorkerAsmStub
|
||||||
|
|
||||||
|
MainLoop_RWCLAS:
|
||||||
|
- mov rax, [rax+18h] // get the next entry in the chain (don't bother checking the first entry again)
|
||||||
|
+ mov rax, [rax+0x18] // get the next entry in the chain (don't bother checking the first entry again)
|
||||||
|
test rax,rax // test if we hit a terminating NULL
|
||||||
|
jz Fail_RWCLAS
|
||||||
|
|
||||||
|
- cmp rdx, [rax+00h] // compare our MT with the one in the ResolveCacheElem
|
||||||
|
+ cmp rdx, [rax+0x0] // compare our MT with the one in the ResolveCacheElem
|
||||||
|
jne MainLoop_RWCLAS
|
||||||
|
- cmp r10, [rax+08h] // compare our DispatchToken with one in the ResolveCacheElem
|
||||||
|
+ cmp r10, [rax+0x8] // compare our DispatchToken with one in the ResolveCacheElem
|
||||||
|
jne MainLoop_RWCLAS
|
||||||
|
Success_RWCLAS:
|
||||||
|
PREPARE_EXTERNAL_VAR CHAIN_SUCCESS_COUNTER, rdx
|
||||||
|
sub qword ptr [rdx],1 // decrement success counter
|
||||||
|
jl Promote_RWCLAS
|
||||||
|
- mov rax, [rax+10h] // get the ImplTarget
|
||||||
|
+ mov rax, [rax+0x10] // get the ImplTarget
|
||||||
|
pop rdx
|
||||||
|
jmp rax
|
||||||
|
|
38
SOURCES/coreclr-build-python3.patch
Normal file
38
SOURCES/coreclr-build-python3.patch
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
From 7e0608fee5cacbf5bf7d0c3886e2fcb1a9d10754 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Omair Majid <omajid@redhat.com>
|
||||||
|
Date: Wed, 9 Jan 2019 12:28:48 -0500
|
||||||
|
Subject: [PATCH] Support building with python3 on unix (#19356)
|
||||||
|
|
||||||
|
The windows build scripts try finding python in order of python3,
|
||||||
|
python2 and then python. The unix build scripts dont. They just try
|
||||||
|
python2 variants and then fail. This change makes brings them closer
|
||||||
|
together by letting users build using only python3.
|
||||||
|
---
|
||||||
|
build.sh | 6 +++---
|
||||||
|
1 file changed, 3 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/build.sh b/build.sh
|
||||||
|
index a0b1742effb..14452ad5ac5 100755
|
||||||
|
--- a/build.sh
|
||||||
|
+++ b/build.sh
|
||||||
|
@@ -7,9 +7,9 @@ export ghprbCommentBody=
|
||||||
|
|
||||||
|
# resolve python-version to use
|
||||||
|
if [ "$PYTHON" == "" ] ; then
|
||||||
|
- if ! PYTHON=$(command -v python2.7 || command -v python2 || command -v python)
|
||||||
|
+ if ! PYTHON=$(command -v python3 || command -v python2 || command -v python)
|
||||||
|
then
|
||||||
|
- echo "Unable to locate build-dependency python2.x!" 1>&2
|
||||||
|
+ echo "Unable to locate build-dependency python!" 1>&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
@@ -17,7 +17,7 @@ fi
|
||||||
|
# useful in case of explicitly set option.
|
||||||
|
if ! command -v $PYTHON > /dev/null
|
||||||
|
then
|
||||||
|
- echo "Unable to locate build-dependency python2.x ($PYTHON)!" 1>&2
|
||||||
|
+ echo "Unable to locate build-dependency python ($PYTHON)!" 1>&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
26
SOURCES/coreclr-cmake-python3.patch
Normal file
26
SOURCES/coreclr-cmake-python3.patch
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
From e7c6f87f54be723724a4c996d815d59b515b01a6 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Omair Majid <omajid@redhat.com>
|
||||||
|
Date: Thu, 31 Jan 2019 16:09:35 -0500
|
||||||
|
Subject: [PATCH] Update python lookup in CMakeLists.txt to match
|
||||||
|
build.(sh|cmd) (#22145)
|
||||||
|
|
||||||
|
Use the same logic that's used in build.sh/build.cmd to lookup python:
|
||||||
|
first search for `python3`, then fall back to `python2` and finally to
|
||||||
|
`python`.
|
||||||
|
---
|
||||||
|
CMakeLists.txt | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||||
|
index 82c19a9cbaa..31b814f118d 100644
|
||||||
|
--- a/CMakeLists.txt
|
||||||
|
+++ b/CMakeLists.txt
|
||||||
|
@@ -37,7 +37,7 @@ OPTION(CLR_CMAKE_ENABLE_CODE_COVERAGE "Enable code coverage" OFF)
|
||||||
|
OPTION(CLR_CMAKE_WARNINGS_ARE_ERRORS "Warnings are errors" ON)
|
||||||
|
|
||||||
|
# Ensure that python is present
|
||||||
|
-find_program(PYTHON NAMES python2.7 python2 python)
|
||||||
|
+find_program(PYTHON NAMES python3 python2 python)
|
||||||
|
if (PYTHON STREQUAL "PYTHON-NOTFOUND")
|
||||||
|
message(FATAL_ERROR "PYTHON not found: Please install Python 2.7.9 or later from https://www.python.org/downloads/")
|
||||||
|
endif()
|
40
SOURCES/coreclr-mscorlib.patch
Normal file
40
SOURCES/coreclr-mscorlib.patch
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
From 5164e76ce01fc36833a7f5e6fb7b1ec2f55c2262 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Omair Majid <omajid@redhat.com>
|
||||||
|
Date: Wed, 1 Aug 2018 12:02:53 -0400
|
||||||
|
Subject: [PATCH] Use the identified python when building
|
||||||
|
System.Private.CoreLib (#19043)
|
||||||
|
|
||||||
|
build.sh and build.cmd contain logic to identify a working version of
|
||||||
|
python to use. System.Private.CoreLib ignores that and directly invokes
|
||||||
|
'python', which may not work, or even execute a different program.
|
||||||
|
---
|
||||||
|
build.sh | 2 ++
|
||||||
|
src/System.Private.CoreLib/System.Private.CoreLib.csproj | 2 +-
|
||||||
|
2 files changed, 3 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/build.sh b/build.sh
|
||||||
|
index 091d6227caf..4002f2744c2 100755
|
||||||
|
--- a/build.sh
|
||||||
|
+++ b/build.sh
|
||||||
|
@@ -22,6 +22,8 @@ then
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
+export PYTHON
|
||||||
|
+
|
||||||
|
usage()
|
||||||
|
{
|
||||||
|
echo "Usage: $0 [BuildArch] [BuildType] [-verbose] [-coverage] [-cross] [-clangx.y] [-ninja] [-configureonly] [-skipconfigure] [-skipnative] [-skipmscorlib] [-skiptests] [-stripsymbols] [-ignorewarnings] [-cmakeargs] [-bindir]"
|
||||||
|
diff --git a/src/mscorlib/System.Private.CoreLib.csproj b/src/mscorlib/System.Private.CoreLib.csproj
|
||||||
|
index 9a2fc681703..0a02d3cffdf 100644
|
||||||
|
--- a/src/mscorlib/System.Private.CoreLib.csproj
|
||||||
|
+++ b/src/mscorlib/System.Private.CoreLib.csproj
|
||||||
|
@@ -543,7 +543,7 @@
|
||||||
|
<PropertyGroup>
|
||||||
|
<CMakeDefinitionSaveFile>$(IntermediateOutputPath)..\cmake.definitions</CMakeDefinitionSaveFile>
|
||||||
|
</PropertyGroup>
|
||||||
|
- <Exec Command="python $(MSBuildThisFileDirectory)..\scripts\check-definitions.py "$(CMakeDefinitionSaveFile)" "$(DefineConstants)" "$(IgnoreDefineConstants)" " />
|
||||||
|
+ <Exec Command=""$(PYTHON)" $(MSBuildThisFileDirectory)..\scripts\check-definitions.py "$(CMakeDefinitionSaveFile)" "$(DefineConstants)" "$(IgnoreDefineConstants)" " />
|
||||||
|
</Target>
|
||||||
|
<PropertyGroup Condition="'$(BuildOS)' == 'Windows_NT'">
|
||||||
|
<EnableDotnetAnalyzers Condition="'$(EnableDotnetAnalyzers)'==''">true</EnableDotnetAnalyzers>
|
11
SOURCES/coreclr-pie.patch
Normal file
11
SOURCES/coreclr-pie.patch
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
--- a/src/debug/createdump/CMakeLists.txt
|
||||||
|
+++ b/src/debug/createdump/CMakeLists.txt
|
||||||
|
@@ -38,6 +38,8 @@
|
||||||
|
main.cpp
|
||||||
|
)
|
||||||
|
|
||||||
|
+SET_TARGET_PROPERTIES(createdump PROPERTIES LINK_FLAGS -pie)
|
||||||
|
+
|
||||||
|
target_link_libraries(createdump
|
||||||
|
createdump_lib
|
||||||
|
# share the PAL in the dac module
|
22
SOURCES/corefx-32956-alpn.patch
Normal file
22
SOURCES/corefx-32956-alpn.patch
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
From 9b9697318e9990655ea878a28a00eda44fb615c2 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Jeremy Barton <jbarton@microsoft.com>
|
||||||
|
Date: Mon, 22 Oct 2018 11:54:52 -0700
|
||||||
|
Subject: [PATCH] Fix ALPN detection logic (for non-portable shim builds)
|
||||||
|
|
||||||
|
---
|
||||||
|
.../Unix/System.Security.Cryptography.Native/configure.cmake | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/src/Native/Unix/System.Security.Cryptography.Native/configure.cmake b/src/Native/Unix/System.Security.Cryptography.Native/configure.cmake
|
||||||
|
index cdc9f50f3c33..fac8c16343df 100644
|
||||||
|
--- a/src/Native/Unix/System.Security.Cryptography.Native/configure.cmake
|
||||||
|
+++ b/src/Native/Unix/System.Security.Cryptography.Native/configure.cmake
|
||||||
|
@@ -2,7 +2,7 @@ include(CheckLibraryExists)
|
||||||
|
include(CheckFunctionExists)
|
||||||
|
|
||||||
|
set(CMAKE_REQUIRED_INCLUDES ${OPENSSL_INCLUDE_DIR})
|
||||||
|
-set(CMAKE_REQUIRED_LIBRARIES ${OPENSSL_CRYPTO_LIBRARY})
|
||||||
|
+set(CMAKE_REQUIRED_LIBRARIES ${OPENSSL_CRYPTO_LIBRARY} ${OPENSSL_SSL_LIBRARY})
|
||||||
|
|
||||||
|
check_function_exists(
|
||||||
|
EC_GF2m_simple_method
|
39
SOURCES/corefx-optflags-support.patch
Normal file
39
SOURCES/corefx-optflags-support.patch
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
diff --git a/src/Native/Unix/CMakeLists.txt b/src/Native/Unix/CMakeLists.txt
|
||||||
|
index 7d804a1e54..717c2718d7 100644
|
||||||
|
--- a/src/Native/Unix/CMakeLists.txt
|
||||||
|
+++ b/src/Native/Unix/CMakeLists.txt
|
||||||
|
@@ -25,7 +25,6 @@ add_compile_options(-fPIC)
|
||||||
|
add_compile_options(-I${CMAKE_CURRENT_SOURCE_DIR}/Common)
|
||||||
|
add_compile_options(-I${CMAKE_CURRENT_BINARY_DIR}/Common)
|
||||||
|
add_compile_options(-g)
|
||||||
|
-add_compile_options(-Werror)
|
||||||
|
if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 3.5)
|
||||||
|
add_compile_options(-Wno-unreachable-code)
|
||||||
|
endif ()
|
||||||
|
diff --git a/src/Native/Unix/configure.cmake b/src/Native/Unix/configure.cmake
|
||||||
|
index f4a30ad6cb..f2db68402a 100644
|
||||||
|
--- a/src/Native/Unix/configure.cmake
|
||||||
|
+++ b/src/Native/Unix/configure.cmake
|
||||||
|
@@ -27,6 +27,12 @@ else ()
|
||||||
|
message(FATAL_ERROR "Unknown platform. Cannot define PAL_UNIX_NAME, used by RuntimeInformation.")
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
+
|
||||||
|
+set (PREVIOUS_CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS})
|
||||||
|
+set (CMAKE_CXX_FLAGS "-D_GNU_SOURCE")
|
||||||
|
+set (PREVIOUS_CMAKE_C_FLAGS ${CMAKE_C_FLAGS})
|
||||||
|
+set (CMAKE_C_FLAGS "-D_GNU_SOURCE")
|
||||||
|
+
|
||||||
|
# We compile with -Werror, so we need to make sure these code fragments compile without warnings.
|
||||||
|
# Older CMake versions (3.8) do not assign the result of their tests, causing unused-value errors
|
||||||
|
# which are not distinguished from the test failing. So no error for that one.
|
||||||
|
@@ -698,6 +704,9 @@ endif()
|
||||||
|
|
||||||
|
set (CMAKE_REQUIRED_LIBRARIES)
|
||||||
|
|
||||||
|
+set (CMAKE_CXX_FLAGS "${PREVIOUS_CMAKE_CXX_FLAGS}")
|
||||||
|
+set (CMAKE_C_FLAGS "${PREVIOUS_CMAKE_C_FLAGS}")
|
||||||
|
+
|
||||||
|
check_c_source_compiles(
|
||||||
|
"
|
||||||
|
#include <sys/inotify.h>
|
7
SOURCES/dotnet.sh
Normal file
7
SOURCES/dotnet.sh
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
|
||||||
|
# Add dotnet tools directory to PATH
|
||||||
|
DOTNET_TOOLS_PATH="$HOME/.dotnet/tools"
|
||||||
|
case "$PATH" in
|
||||||
|
*"$DOTNET_TOOLS_PATH"* ) true ;;
|
||||||
|
* ) PATH="$PATH:$DOTNET_TOOLS_PATH" ;;
|
||||||
|
esac
|
440
SPECS/dotnet.spec
Normal file
440
SPECS/dotnet.spec
Normal file
@ -0,0 +1,440 @@
|
|||||||
|
# Avoid provides/requires from private libraries
|
||||||
|
%global privlibs libhostfxr
|
||||||
|
%global privlibs %{privlibs}|libclrjit
|
||||||
|
%global privlibs %{privlibs}|libcoreclr
|
||||||
|
%global privlibs %{privlibs}|libcoreclrtraceptprovider
|
||||||
|
%global privlibs %{privlibs}|libdbgshim
|
||||||
|
%global privlibs %{privlibs}|libhostpolicy
|
||||||
|
%global privlibs %{privlibs}|libmscordaccore
|
||||||
|
%global privlibs %{privlibs}|libmscordbi
|
||||||
|
%global privlibs %{privlibs}|libsos
|
||||||
|
%global privlibs %{privlibs}|libsosplugin
|
||||||
|
%global __provides_exclude ^(%{privlibs})\\.so
|
||||||
|
%global __requires_exclude ^(%{privlibs})\\.so
|
||||||
|
|
||||||
|
# Filter flags not supported by clang/dotnet:
|
||||||
|
# -fcf-protection is not supported by clang
|
||||||
|
# -fstack-clash-protection is not supported by clang
|
||||||
|
# -specs= is not supported by clang
|
||||||
|
# -fpie is added manually instead of via -specs
|
||||||
|
%global dotnet_cflags %(echo %optflags | sed -e 's/-fcf-protection//' | sed -e 's/-fstack-clash-protection//' | sed -re 's/-specs=[^ ]*//g')
|
||||||
|
%global dotnet_ldflags %(echo %{__global_ldflags} | sed -re 's/-specs=[^ ]*//g')
|
||||||
|
|
||||||
|
%if 0%{?fedora}
|
||||||
|
%global use_bundled_libunwind 0
|
||||||
|
%else
|
||||||
|
%global use_bundled_libunwind 1
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%global simple_name dotnet
|
||||||
|
|
||||||
|
%global host_version 2.1.11
|
||||||
|
%global runtime_version 2.1.11
|
||||||
|
%global sdk_version 2.1.507
|
||||||
|
|
||||||
|
Name: dotnet
|
||||||
|
Version: %{sdk_version}
|
||||||
|
Release: 4%{?dist}
|
||||||
|
Summary: .NET Core CLI tools and runtime
|
||||||
|
License: MIT and ASL 2.0 and BSD
|
||||||
|
URL: https://github.com/dotnet/
|
||||||
|
|
||||||
|
# The source is generated on a RHEL box via:
|
||||||
|
# - git clone https://github.com/dotnet/source-build
|
||||||
|
# - git checkout v%%{sdk_version}
|
||||||
|
# - set environment variables + tweak sources to build
|
||||||
|
# - ./build-source-tarball.sh dotnet-%%{sdk_version}
|
||||||
|
# - tar cvzf dotnet-%%{sdk_version}.tar.gz dotnet-%%{sdk_version}
|
||||||
|
|
||||||
|
Source0: dotnet-v%{runtime_version}.tar.gz
|
||||||
|
Source1: check-debug-symbols.py
|
||||||
|
Source2: dotnet.sh
|
||||||
|
|
||||||
|
Patch10: corefx-optflags-support.patch
|
||||||
|
Patch11: corefx-32956-alpn.patch
|
||||||
|
|
||||||
|
Patch100: coreclr-build-python3.patch
|
||||||
|
Patch101: coreclr-cmake-python3.patch
|
||||||
|
Patch102: coreclr-mscorlib.patch
|
||||||
|
Patch103: coreclr-pie.patch
|
||||||
|
Patch104: coreclr-assembly-hex-constants.patch
|
||||||
|
|
||||||
|
Patch300: core-setup-4510-commit-id.patch
|
||||||
|
Patch301: core-setup-pie.patch
|
||||||
|
|
||||||
|
Patch400: cli-telemetry-optout.patch
|
||||||
|
|
||||||
|
ExclusiveArch: x86_64
|
||||||
|
|
||||||
|
BuildRequires: clang
|
||||||
|
BuildRequires: cmake
|
||||||
|
# Bootstrap SDK needs OpenSSL 1.0 to run, but we can build and then
|
||||||
|
# run with either OpenSSL 1.0 or 1.1
|
||||||
|
%if 0%{?fedora} >= 26 || 0%{?rhel} >= 8
|
||||||
|
BuildRequires: compat-openssl10
|
||||||
|
%endif
|
||||||
|
BuildRequires: git
|
||||||
|
BuildRequires: glibc-langpack-en
|
||||||
|
BuildRequires: hostname
|
||||||
|
BuildRequires: krb5-devel
|
||||||
|
BuildRequires: libcurl-devel
|
||||||
|
BuildRequires: libicu-devel
|
||||||
|
%if ! %{use_bundled_libunwind}
|
||||||
|
BuildRequires: libunwind-devel
|
||||||
|
%endif
|
||||||
|
BuildRequires: lldb-devel
|
||||||
|
BuildRequires: llvm
|
||||||
|
BuildRequires: lttng-ust-devel
|
||||||
|
BuildRequires: make
|
||||||
|
BuildRequires: openssl-devel
|
||||||
|
BuildRequires: python3
|
||||||
|
BuildRequires: strace
|
||||||
|
BuildRequires: zlib-devel
|
||||||
|
|
||||||
|
Requires: %{simple_name}-sdk-2.1%{?_isa} >= %{sdk_version}-%{release}
|
||||||
|
|
||||||
|
%description
|
||||||
|
.NET Core is a fast, lightweight and modular platform for creating
|
||||||
|
cross platform applications that work on Linux, macOS and Windows.
|
||||||
|
|
||||||
|
It particularly focuses on creating console applications, web
|
||||||
|
applications and micro-services.
|
||||||
|
|
||||||
|
.NET Core contains a runtime conforming to .NET Standards a set of
|
||||||
|
framework libraries, an SDK containing compilers and a 'dotnet'
|
||||||
|
application to drive everything.
|
||||||
|
|
||||||
|
|
||||||
|
%package -n %{simple_name}-host
|
||||||
|
|
||||||
|
Version: %{host_version}
|
||||||
|
Summary: .NET command line launcher
|
||||||
|
|
||||||
|
%description -n %{simple_name}-host
|
||||||
|
The .NET Core host is a command line program that runs a standalone
|
||||||
|
.NET core application or launches the SDK.
|
||||||
|
|
||||||
|
.NET Core is a fast, lightweight and modular platform for creating
|
||||||
|
cross platform applications that work on Linux, Mac and Windows.
|
||||||
|
|
||||||
|
It particularly focuses on creating console applications, web
|
||||||
|
applications and micro-services.
|
||||||
|
|
||||||
|
|
||||||
|
%package -n %{simple_name}-host-fxr-2.1
|
||||||
|
|
||||||
|
Version: %{host_version}
|
||||||
|
Summary: .NET Core command line host resolver
|
||||||
|
|
||||||
|
# Theoretically any version of the host should work. But lets aim for the one
|
||||||
|
# provided by this package, or from a newer version of .NET Core
|
||||||
|
Requires: %{simple_name}-host%{?_isa} >= %{host_version}-%{release}
|
||||||
|
|
||||||
|
%description -n %{simple_name}-host-fxr-2.1
|
||||||
|
The .NET Core host resolver contains logic to resolve and select the
|
||||||
|
right version of the .NET Core SDK or runtime to use.
|
||||||
|
|
||||||
|
.NET Core is a fast, lightweight and modular platform for creating
|
||||||
|
cross platform applications that work on Linux, Mac and Windows.
|
||||||
|
|
||||||
|
It particularly focuses on creating console applications, web
|
||||||
|
applications and micro-services.
|
||||||
|
|
||||||
|
%package -n %{simple_name}-runtime-2.1
|
||||||
|
|
||||||
|
Version: %{runtime_version}
|
||||||
|
Summary: NET Core 2.1 runtime
|
||||||
|
|
||||||
|
Requires: %{simple_name}-host-fxr-2.1%{?_isa} >= %{host_version}-%{release}
|
||||||
|
|
||||||
|
# libicu is dlopen()ed
|
||||||
|
Requires: libicu
|
||||||
|
|
||||||
|
%description -n %{simple_name}-runtime-2.1
|
||||||
|
The .NET Core runtime contains everything needed to run .NET Core applications.
|
||||||
|
It includes a high performance Virtual Machine as well as the framework
|
||||||
|
libraries used by .NET Core applications.
|
||||||
|
|
||||||
|
.NET Core is a fast, lightweight and modular platform for creating
|
||||||
|
cross platform applications that work on Linux, Mac and Windows.
|
||||||
|
|
||||||
|
It particularly focuses on creating console applications, web
|
||||||
|
applications and micro-services.
|
||||||
|
|
||||||
|
%package -n %{simple_name}-sdk-2.1
|
||||||
|
|
||||||
|
Version: %{sdk_version}
|
||||||
|
Summary: .NET Core 2.1 Software Development Kit
|
||||||
|
|
||||||
|
Requires: %{simple_name}-sdk-2.1.5xx%{?_isa} >= %{sdk_version}-%{release}
|
||||||
|
|
||||||
|
%description -n %{simple_name}-sdk-2.1
|
||||||
|
The .NET Core SDK is a collection of command line applications to
|
||||||
|
create, build, publish and run .NET Core applications.
|
||||||
|
|
||||||
|
.NET Core is a fast, lightweight and modular platform for creating
|
||||||
|
cross platform applications that work on Linux, Mac and Windows.
|
||||||
|
|
||||||
|
It particularly focuses on creating console applications, web
|
||||||
|
applications and micro-services.
|
||||||
|
|
||||||
|
%package -n %{simple_name}-sdk-2.1.5xx
|
||||||
|
|
||||||
|
Version: %{sdk_version}
|
||||||
|
Summary: .NET Core 2.1.5xx Software Development Kit
|
||||||
|
|
||||||
|
Requires: %{simple_name}-runtime-2.1%{?_isa} >= %{runtime_version}-%{release}
|
||||||
|
|
||||||
|
%description -n %{simple_name}-sdk-2.1.5xx
|
||||||
|
The .NET Core SDK is a collection of command line applications to
|
||||||
|
create, build, publish and run .NET Core applications.
|
||||||
|
|
||||||
|
.NET Core is a fast, lightweight and modular platform for creating
|
||||||
|
cross platform applications that work on Linux, Mac and Windows.
|
||||||
|
|
||||||
|
It particularly focuses on creating console applications, web
|
||||||
|
applications and micro-services.
|
||||||
|
|
||||||
|
|
||||||
|
%prep
|
||||||
|
%setup -q -n %{simple_name}-v%{runtime_version}
|
||||||
|
|
||||||
|
pushd src/corefx
|
||||||
|
%patch10 -p1
|
||||||
|
%patch11 -p1
|
||||||
|
popd
|
||||||
|
|
||||||
|
pushd src/coreclr
|
||||||
|
%patch100 -p1
|
||||||
|
%patch101 -p1
|
||||||
|
%patch102 -p1
|
||||||
|
%patch103 -p1
|
||||||
|
%patch104 -p1
|
||||||
|
popd
|
||||||
|
|
||||||
|
pushd src/core-setup
|
||||||
|
%patch300 -p1
|
||||||
|
%patch301 -p1
|
||||||
|
popd
|
||||||
|
|
||||||
|
pushd src/cli
|
||||||
|
%patch400 -p1
|
||||||
|
popd
|
||||||
|
|
||||||
|
# Fix bad hardcoded path in build
|
||||||
|
sed -i 's|/usr/share/dotnet|%{_libdir}/%{simple_name}|' src/core-setup/src/corehost/common/pal.unix.cpp
|
||||||
|
|
||||||
|
# Disable warnings
|
||||||
|
sed -i 's|skiptests|skiptests ignorewarnings|' repos/coreclr.proj
|
||||||
|
|
||||||
|
%if %{use_bundled_libunwind}
|
||||||
|
# Use bundled libunwind
|
||||||
|
sed -i 's|-DCLR_CMAKE_USE_SYSTEM_LIBUNWIND=TRUE|-DCLR_CMAKE_USE_SYSTEM_LIBUNWIND=FALSE|' repos/coreclr.proj
|
||||||
|
%endif
|
||||||
|
|
||||||
|
cat source-build-info.txt
|
||||||
|
|
||||||
|
|
||||||
|
%build
|
||||||
|
export DOTNET_CLI_TELEMETRY_OPTOUT=1
|
||||||
|
|
||||||
|
export LLVM_HOME=/opt/rh/llvm-toolset-6.0/root/usr
|
||||||
|
export CMAKE_INCLUDE_PATH="/opt/rh/llvm-toolset-6.0/root/usr/include"
|
||||||
|
|
||||||
|
export CFLAGS="%{dotnet_cflags}"
|
||||||
|
export CXXFLAGS="%{dotnet_cflags}"
|
||||||
|
export LDFLAGS="%{dotnet_ldflags}"
|
||||||
|
|
||||||
|
test -f Tools/ilasm/ilasm
|
||||||
|
|
||||||
|
Tools/dotnetcli/dotnet --info
|
||||||
|
|
||||||
|
VERBOSE=1 ./build.sh \
|
||||||
|
/v:n \
|
||||||
|
/p:MinimalConsoleLogOutput=false \
|
||||||
|
/p:ContinueOnPrebuiltBaselineError=true
|
||||||
|
|
||||||
|
|
||||||
|
%install
|
||||||
|
install -d -m 0755 %{buildroot}%{_libdir}/%{simple_name}/
|
||||||
|
ls bin/x64/Release
|
||||||
|
tar xf bin/x64/Release/dotnet-sdk-%{sdk_version}-*.tar.gz -C %{buildroot}%{_libdir}/%{simple_name}/
|
||||||
|
|
||||||
|
# Fix permissions on files
|
||||||
|
find %{buildroot}%{_libdir}/%{simple_name}/ -type f -name '*.props' -exec chmod -x {} \;
|
||||||
|
find %{buildroot}%{_libdir}/%{simple_name}/ -type f -name '*.targets' -exec chmod -x {} \;
|
||||||
|
find %{buildroot}%{_libdir}/%{simple_name}/ -type f -name '*.dll' -exec chmod -x {} \;
|
||||||
|
find %{buildroot}%{_libdir}/%{simple_name}/ -type f -name '*.pubxml' -exec chmod -x {} \;
|
||||||
|
|
||||||
|
# Add ~/.dotnet/tools to $PATH for all users
|
||||||
|
install -dm 0755 %{buildroot}%{_sysconfdir}/profile.d/
|
||||||
|
install %{SOURCE2} %{buildroot}%{_sysconfdir}/profile.d/
|
||||||
|
|
||||||
|
install -dm 755 %{buildroot}/%{_datadir}/bash-completion/completions
|
||||||
|
# dynamic completion needs the file to be named the same as the base command
|
||||||
|
install src/cli/scripts/register-completions.bash %{buildroot}/%{_datadir}/bash-completion/completions/dotnet
|
||||||
|
|
||||||
|
# TODO: the zsh completion script needs to be ported to use #compdef
|
||||||
|
#install -dm 755 %%{buildroot}/%%{_datadir}/zsh/site-functions
|
||||||
|
#install src/cli/scripts/register-completions.zsh %%{buildroot}/%%{_datadir}/zsh/site-functions/_dotnet
|
||||||
|
|
||||||
|
install -d -m 0755 %{buildroot}%{_bindir}
|
||||||
|
ln -s %{_libdir}/%{simple_name}/dotnet %{buildroot}%{_bindir}/
|
||||||
|
|
||||||
|
install -d -m 0755 %{buildroot}%{_mandir}/man1/
|
||||||
|
find -iname 'dotnet*.1' -type f -exec cp {} %{buildroot}%{_mandir}/man1/ \;
|
||||||
|
|
||||||
|
# Check debug symbols in all elf objects. This is not in %%check
|
||||||
|
# because native binaries are stripped by rpm-build after %%install.
|
||||||
|
# So we need to do this check earlier.
|
||||||
|
echo "Testing build results for debug symbols..."
|
||||||
|
%{SOURCE1} -v %{buildroot}%{_libdir}/%{simple_name}/
|
||||||
|
|
||||||
|
|
||||||
|
%check
|
||||||
|
%{buildroot}%{_libdir}/%{simple_name}/dotnet --info
|
||||||
|
|
||||||
|
|
||||||
|
%files -n %{simple_name}
|
||||||
|
# empty package useful for dependencies
|
||||||
|
|
||||||
|
%files -n %{simple_name}-host
|
||||||
|
%dir %{_libdir}/%{simple_name}
|
||||||
|
%{_libdir}/%{simple_name}/dotnet
|
||||||
|
%dir %{_libdir}/%{simple_name}/host
|
||||||
|
%dir %{_libdir}/%{simple_name}/host/fxr
|
||||||
|
%{_bindir}/dotnet
|
||||||
|
%license %{_libdir}/%{simple_name}/LICENSE.txt
|
||||||
|
%license %{_libdir}/%{simple_name}/ThirdPartyNotices.txt
|
||||||
|
%doc %{_mandir}/man1/dotnet*.1.gz
|
||||||
|
%{_sysconfdir}/profile.d/dotnet.sh
|
||||||
|
%dir %{_datadir}/bash-completion
|
||||||
|
%dir %{_datadir}/bash-completion/completions
|
||||||
|
%{_datadir}/bash-completion/completions/dotnet
|
||||||
|
|
||||||
|
%files -n %{simple_name}-host-fxr-2.1
|
||||||
|
%dir %{_libdir}/%{simple_name}/host/fxr
|
||||||
|
%{_libdir}/%{simple_name}/host/fxr/%{host_version}
|
||||||
|
|
||||||
|
%files -n %{simple_name}-runtime-2.1
|
||||||
|
%dir %{_libdir}/%{simple_name}/shared
|
||||||
|
%dir %{_libdir}/%{simple_name}/shared/Microsoft.NETCore.App
|
||||||
|
%{_libdir}/%{simple_name}/shared/Microsoft.NETCore.App/%{runtime_version}
|
||||||
|
|
||||||
|
%files -n %{simple_name}-sdk-2.1
|
||||||
|
# empty package useful for dependencies
|
||||||
|
|
||||||
|
%files -n %{simple_name}-sdk-2.1.5xx
|
||||||
|
%dir %{_libdir}/%{simple_name}/sdk
|
||||||
|
%{_libdir}/%{simple_name}/sdk/%{sdk_version}
|
||||||
|
|
||||||
|
%changelog
|
||||||
|
* Wed Jun 12 2019 Omair Majid <omajid@redhat.com> - 2.1.507-4
|
||||||
|
- Bump version
|
||||||
|
- Related: RHBZ#1712158
|
||||||
|
|
||||||
|
* Mon May 20 2019 Omair Majid <omajid@redhat.com> - 2.1.507-2
|
||||||
|
- Link against strerror_r correctly
|
||||||
|
- Resolves: RHBZ#1712158
|
||||||
|
|
||||||
|
* Thu May 02 2019 Omair Majid <omajid@redhat.com> - 2.1.507-1
|
||||||
|
- Update to .NET Core Runtime 2.1.11 and SDK 2.1.507
|
||||||
|
- Resolves: RHBZ#1705284
|
||||||
|
|
||||||
|
* Wed Apr 17 2019 Omair Majid <omajid@redhat.com> - 2.1.506-2
|
||||||
|
- Switch away from SCL dependencies for clang/llvm/lldb
|
||||||
|
- Resolves: RHBZ#1700908
|
||||||
|
|
||||||
|
* Tue Apr 09 2019 Omair Majid <omajid@redhat.com> - 2.1.506-1
|
||||||
|
- Update to .NET Core Runtime 2.1.10 and SDK 2.1.506
|
||||||
|
- Resolves: RHBZ#1696371
|
||||||
|
|
||||||
|
* Fri Feb 22 2019 Omair Majid <omajid@redhat.com> - 2.1.504-1
|
||||||
|
- Update to .NET Core Runtime 2.1.8 and SDK 2.1.504
|
||||||
|
- Sync with Fedora copr spec file
|
||||||
|
- Resolves: RHBZ#1646713
|
||||||
|
|
||||||
|
* Fri Oct 12 2018 Omair Majid <omajid@redhat.com> - 2.1.403-4
|
||||||
|
- Disable telemetry via code, not just environment variable
|
||||||
|
- Resolves: rhbz#1638093
|
||||||
|
|
||||||
|
* Thu Oct 11 2018 Omair Majid <omajid@redhat.com> - 2.1.403-3
|
||||||
|
- Disable telemetry by default
|
||||||
|
- Resolves: rhbz#1638093
|
||||||
|
|
||||||
|
* Wed Oct 10 2018 Omair Majid <omajid@redhat.com> - 2.1.403-2
|
||||||
|
- Target the latest ASP.NET Core version instead of 2.1.1
|
||||||
|
- Resolves: rhbz#1636585
|
||||||
|
|
||||||
|
* Thu Oct 04 2018 Omair Majid <omajid@redhat.com> - 2.1.403-1
|
||||||
|
- Update to .NET Core Runtime 2.1.5 and SDK 2.1.403
|
||||||
|
- Resolves: rhbz#1634182
|
||||||
|
|
||||||
|
* Mon Oct 01 2018 Omair Majid <omajid@redhat.com> - 2.1.402-5
|
||||||
|
- Backport fix to correct order of SSL_CERT_FILE and SSL_CERT_DIR lookup
|
||||||
|
- Resolves: rhbz#1633742
|
||||||
|
|
||||||
|
* Thu Sep 27 2018 Omair Majid <omajid@redhat.com> - 2.1.402-4
|
||||||
|
- Add ~/.dotnet/tools to $PATH to make it easier to use dotnet tools
|
||||||
|
- Resolves: rhbz#1630439
|
||||||
|
|
||||||
|
* Tue Sep 25 2018 Omair Majid <omajid@redhat.com> - 2.1.402-3
|
||||||
|
- Update .NET Core Runtime 2.1.4 and SDK 2.1.402
|
||||||
|
- Resolves: rhbz#1628997
|
||||||
|
|
||||||
|
* Tue Sep 11 2018 Omair Majid <omajid@redhat.com> - 2.1.401-3
|
||||||
|
- Use standard flags to build .NET Core
|
||||||
|
- Resolves: rhbz#1624105
|
||||||
|
|
||||||
|
* Tue Sep 11 2018 Omair Majid <omajid@redhat.com> - 2.1.401-2
|
||||||
|
- Bundle libunwind
|
||||||
|
- Resolves: rhbz#1626285
|
||||||
|
|
||||||
|
* Fri Aug 17 2018 Omair Majid <omajid@redhat.com> - 2.1.401-1
|
||||||
|
- Update .NET Core Runtime 2.1.3 and SDK 2.1.401
|
||||||
|
- Drop upstreamed patches
|
||||||
|
|
||||||
|
* Mon Aug 06 2018 Omair Majid <omajid@redhat.com> - 2.1.302-1
|
||||||
|
- Initial build.
|
||||||
|
- Un-SCLized the package.
|
||||||
|
|
||||||
|
* Wed Jul 4 2018 Omair Majid <omajid@redhat.com> - 2.1.302-1
|
||||||
|
- Update to .NET Core Runtime 2.1.2 and SDK 2.1.302
|
||||||
|
|
||||||
|
* Wed Jun 20 2018 Omair Majid <omajid@redhat.com> - 2.1.301-5
|
||||||
|
- Add sdk-2.1.3xx subpackage
|
||||||
|
|
||||||
|
* Tue Jun 19 2018 Omair Majid <omajid@redhat.com> - 2.1.301-4
|
||||||
|
- Rebuild to pick up new lttng-ust
|
||||||
|
|
||||||
|
* Tue Jun 19 2018 Omair Majid <omajid@redhat.com> - 2.1.301-3
|
||||||
|
- Add workaround for unreadable system certificates
|
||||||
|
- Resolves: rhbz#1588099
|
||||||
|
|
||||||
|
* Tue Jun 19 2018 Omair Majid <omajid@redhat.com> - 2.1.301-2
|
||||||
|
- Add updated man pages
|
||||||
|
- Resolves: rhbz#1584790
|
||||||
|
|
||||||
|
* Thu Jun 14 2018 Omair Majid <omajid@redhat.com> - 2.1.301-1
|
||||||
|
- Update to .NET Core SDK 2.1.301
|
||||||
|
|
||||||
|
* Wed May 30 2018 Omair Majid <omajid@redhat.com> - 2.1.300-7
|
||||||
|
- Explicitly require a modified libcurl
|
||||||
|
|
||||||
|
* Tue May 29 2018 Omair Majid <omajid@redhat.com> - 2.1.300-6
|
||||||
|
- Install bash completions in %%{_root_datadir}
|
||||||
|
|
||||||
|
* Mon May 28 2018 Omair Majid <omajid@redhat.com> - 2.1.300-5
|
||||||
|
- Add provides for dotnet-sdk-2.1.3xx
|
||||||
|
|
||||||
|
* Mon May 28 2018 Omair Majid <omajid@redhat.com> - 2.1.300-4
|
||||||
|
- Remove patch for ASP.NET Core templates. No longer needed for 2.1.
|
||||||
|
|
||||||
|
* Fri May 25 2018 Omair Majid <omajid@redhat.com> - 2.1.300-3
|
||||||
|
- Remove net46 symlink
|
||||||
|
|
||||||
|
* Thu May 24 2018 Omair Majid <omajid@redhat.com> - 2.1.300-2
|
||||||
|
- Rebuild to pick up updated dependencies
|
||||||
|
|
||||||
|
* Thu May 24 2018 Omair Majid <omajid@redhat.com> - 2.1.300-1
|
||||||
|
- New package. Import from Fedora (DotNet SIG package).
|
Loading…
Reference in New Issue
Block a user