pkgsrc-WIP-changes archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
coreclr-git: Draft patches fixing several issues
Module Name: pkgsrc-wip
Committed By: Kamil Rytarowski <n54%gmx.com@localhost>
Pushed By: kamil
Date: Wed Feb 10 13:35:21 2016 +0100
Changeset: 63c5b19c6edfc12e7b9ee2e3eaa59e59a741c509
Modified Files:
coreclr-git/Makefile
coreclr-git/distinfo
coreclr-git/patches/patch-src_pal_tools_gen-buildsys-clang.sh
corefx-git/distinfo
Added Files:
coreclr-git/patches/patch-build.sh
coreclr-git/patches/patch-src_vm_amd64_externalmethodfixupthunk.S
coreclr-git/patches/patch-src_vm_amd64_jithelpers__fast.S
coreclr-git/patches/patch-src_vm_amd64_pinvokestubs.S
coreclr-git/patches/patch-src_vm_amd64_theprestubamd64.S
coreclr-git/patches/patch-src_vm_amd64_umthunkstub.S
coreclr-git/patches/patch-src_vm_amd64_unixasmhelpers.S
coreclr-git/patches/patch-src_vm_amd64_virtualcallstubamd64.S
Removed Files:
corefx-git/patches/patch-src_Native_System.Native_pal__errno.cpp
corefx-git/patches/patch-src_Native_System.Native_pal__errno.h
corefx-git/patches/patch-src_Native_System.Native_pal__interfaceaddresses.cpp
corefx-git/patches/patch-src_Native_System.Native_pal__mount.cpp
corefx-git/patches/patch-src_Native_System.Native_pal__networking.cpp
Log Message:
coreclr-git: Draft patches fixing several issues
To see a diff of this commit:
https://wip.pkgsrc.org/cgi-bin/gitweb.cgi?p=pkgsrc-wip.git;a=commitdiff;h=63c5b19c6edfc12e7b9ee2e3eaa59e59a741c509
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
diffstat:
coreclr-git/Makefile | 2 +-
coreclr-git/distinfo | 10 +-
coreclr-git/patches/patch-build.sh | 58 ++++
.../patch-src_pal_tools_gen-buildsys-clang.sh | 41 ++-
.../patch-src_vm_amd64_externalmethodfixupthunk.S | 40 +++
.../patches/patch-src_vm_amd64_jithelpers__fast.S | 13 +
.../patches/patch-src_vm_amd64_pinvokestubs.S | 31 ++
.../patches/patch-src_vm_amd64_theprestubamd64.S | 18 ++
.../patches/patch-src_vm_amd64_umthunkstub.S | 43 +++
.../patches/patch-src_vm_amd64_unixasmhelpers.S | 45 +++
.../patch-src_vm_amd64_virtualcallstubamd64.S | 22 ++
corefx-git/distinfo | 5 -
.../patch-src_Native_System.Native_pal__errno.cpp | 40 ---
.../patch-src_Native_System.Native_pal__errno.h | 18 --
...ative_System.Native_pal__interfaceaddresses.cpp | 12 -
.../patch-src_Native_System.Native_pal__mount.cpp | 54 ----
...ch-src_Native_System.Native_pal__networking.cpp | 329 ---------------------
17 files changed, 319 insertions(+), 462 deletions(-)
diffs:
diff --git a/coreclr-git/Makefile b/coreclr-git/Makefile
index 2b8d499..2e11e5e 100644
--- a/coreclr-git/Makefile
+++ b/coreclr-git/Makefile
@@ -26,7 +26,7 @@ do-configure:
do-build:
${RUN} cd ${WRKSRC} && \
- ${PKGSRC_SETENV} ${CONFIGURE_ENV} CMAKE_ARGS_EXTRA=${CMAKE_ARGS:Q} PYTHON=${PYTHONBIN:Q} ./build.sh
+ ${PKGSRC_SETENV} ${CONFIGURE_ENV} PYTHON=${PYTHONBIN:Q} ./build.sh cmakeargs ${CMAKE_ARGS:Q}
.include "../../textproc/icu/buildlink3.mk"
.include "../../wip/llvm-git/buildlink3.mk"
diff --git a/coreclr-git/distinfo b/coreclr-git/distinfo
index 466caf1..6154a09 100644
--- a/coreclr-git/distinfo
+++ b/coreclr-git/distinfo
@@ -1,6 +1,14 @@
$NetBSD$
+SHA1 (patch-build.sh) = b43e77b610481184e99fac986e9d1e4e5f63ba34
SHA1 (patch-src_pal_inc_pal__char16.h) = 205f6a8533838c192b36bbb00155da1b02e0f629
SHA1 (patch-src_pal_src_include_pal_context.h) = 211baea6d21db220e621cafb4a6535f453ca8cc7
SHA1 (patch-src_pal_src_thread_context.cpp) = 04fa57e3023429e9699d777c52999513eed34769
-SHA1 (patch-src_pal_tools_gen-buildsys-clang.sh) = 2b701661e4d3bbf68a8d249a35d80e8a83bc563d
+SHA1 (patch-src_pal_tools_gen-buildsys-clang.sh) = bf18d427782ee8f01df69f640ab291c4f2f154f8
+SHA1 (patch-src_vm_amd64_externalmethodfixupthunk.S) = e1333a44bc0c85f1ceecf2608288c314f81ea75d
+SHA1 (patch-src_vm_amd64_jithelpers__fast.S) = 8b4caa3a355eda6552420fa60c7fdcb886b87754
+SHA1 (patch-src_vm_amd64_pinvokestubs.S) = b16ff26c429dbf4ca08562f1c85bc084a00b13f3
+SHA1 (patch-src_vm_amd64_theprestubamd64.S) = 67f2c136608de2e9626eb73938ea3c2ee20e7b69
+SHA1 (patch-src_vm_amd64_umthunkstub.S) = a5b0893cf383485475276eefa004f6781dc87b94
+SHA1 (patch-src_vm_amd64_unixasmhelpers.S) = f3ca1e949526d884fa48d1a7e3a45939fd93192c
+SHA1 (patch-src_vm_amd64_virtualcallstubamd64.S) = 0c607052fed74cbcae3e17ec7b0d7a9dac235539
diff --git a/coreclr-git/patches/patch-build.sh b/coreclr-git/patches/patch-build.sh
new file mode 100644
index 0000000..4be9d41
--- /dev/null
+++ b/coreclr-git/patches/patch-build.sh
@@ -0,0 +1,58 @@
+$NetBSD$
+
+--- build.sh.orig 2016-02-09 22:37:14.000000000 +0000
++++ build.sh
+@@ -1,10 +1,10 @@
+-#!/usr/bin/env bash
++#!/usr/pkg/bin/bash
+
+ PYTHON=${PYTHON:-python}
+
+ usage()
+ {
+- echo "Usage: $0 [BuildArch] [BuildType] [clean] [verbose] [coverage] [cross] [clangx.y] [ninja] [configureonly] [skipconfigure] [skipnative] [skipmscorlib] [skiptests]"
++ echo "Usage: $0 [BuildArch] [BuildType] [clean] [verbose] [coverage] [cross] [clangx.y] [ninja] [configureonly] [skipconfigure] [skipnative] [skipmscorlib] [skiptests] [cmakeargs]"
+ echo "BuildArch can be: x64, x86, arm, arm64"
+ echo "BuildType can be: Debug, Checked, Release"
+ echo "clean - optional argument to force a clean build."
+@@ -19,6 +19,7 @@ usage()
+ echo "skipnative - do not build native components."
+ echo "skipmscorlib - do not build mscorlib.dll even if mono is installed."
+ echo "skiptests - skip the tests in the 'tests' subdirectory."
++ echo "cmakeargs - user-settable additional arguments passed to CMake."
+
+ exit 1
+ }
+@@ -142,8 +143,8 @@ build_coreclr()
+
+ if [ $__SkipConfigure == 0 ]; then
+ # Regenerate the CMake solution
+- echo "Invoking \"$__ProjectRoot/src/pal/tools/gen-buildsys-clang.sh\" \"$__ProjectRoot\" $__ClangMajorVersion $__ClangMinorVersion $__BuildArch $__BuildType $__CodeCoverage $__IncludeTests $generator"
+- "$__ProjectRoot/src/pal/tools/gen-buildsys-clang.sh" "$__ProjectRoot" $__ClangMajorVersion $__ClangMinorVersion $__BuildArch $__BuildType $__CodeCoverage $__IncludeTests $generator
++ echo "Invoking \"$__ProjectRoot/src/pal/tools/gen-buildsys-clang.sh\" \"$__ProjectRoot\" $__ClangMajorVersion $__ClangMinorVersion $__BuildArch $__BuildType $__CodeCoverage $__IncludeTests $generator $__cmakeargs"
++ "$__ProjectRoot/src/pal/tools/gen-buildsys-clang.sh" "$__ProjectRoot" $__ClangMajorVersion $__ClangMinorVersion $__BuildArch $__BuildType $__CodeCoverage $__IncludeTests $generator "$__cmakeargs"
+ fi
+
+ if [ $__SkipCoreCLR == 1 ]; then
+@@ -381,6 +382,7 @@ __ClangMinorVersion=5
+ __MSBuildPath=$__ProjectRoot/Tools/MSBuild.exe
+ __NuGetPath="$__PackagesDir/NuGet.exe"
+ __DistroName=""
++__cmakeargs=""
+
+ for i in "$@"
+ do
+@@ -486,6 +488,13 @@ do
+ __IncludeTests=
+ ;;
+
++ cmakeargs)
++ shift
++ __cmakeargs="$1"
++ echo "Mam! cmakeargs"
++ echo "wartosc: $__cmakeargs"
++ ;;
++
+ *)
+ __UnprocessedBuildArgs="$__UnprocessedBuildArgs $i"
+ ;;
diff --git a/coreclr-git/patches/patch-src_pal_tools_gen-buildsys-clang.sh b/coreclr-git/patches/patch-src_pal_tools_gen-buildsys-clang.sh
index d2757ec..2365b9f 100644
--- a/coreclr-git/patches/patch-src_pal_tools_gen-buildsys-clang.sh
+++ b/coreclr-git/patches/patch-src_pal_tools_gen-buildsys-clang.sh
@@ -2,9 +2,46 @@ $NetBSD$
--- src/pal/tools/gen-buildsys-clang.sh.orig 2016-01-18 21:51:39.000000000 +0000
+++ src/pal/tools/gen-buildsys-clang.sh
-@@ -144,4 +144,5 @@ cmake \
+@@ -3,16 +3,17 @@
+ # This file invokes cmake and generates the build system for gcc.
+ #
+
+-if [ $# -lt 4 -o $# -gt 7 ]
++if [ $# -lt 4 -o $# -gt 8 ]
+ then
+ echo "Usage..."
+- echo "gen-buildsys-clang.sh <path to top level CMakeLists.txt> <ClangMajorVersion> <ClangMinorVersion> <Architecture> [build flavor] [coverage] [ninja]"
++ echo "gen-buildsys-clang.sh <path to top level CMakeLists.txt> <ClangMajorVersion> <ClangMinorVersion> <Architecture> [build flavor] [coverage] [ninja] [cmakeargs]"
+ echo "Specify the path to the top level CMake file - <ProjectK>/src/NDP"
+ echo "Specify the clang version to use, split into major and minor version"
+ echo "Specify the target architecture."
+ echo "Optionally specify the build configuration (flavor.) Defaults to DEBUG."
+ echo "Optionally specify 'coverage' to enable code coverage build."
+ echo "Target ninja instead of make. ninja must be on the PATH."
++ echo "Pass additional arguments to CMake call."
+ exit 1
+ fi
+
+@@ -39,6 +40,7 @@ buildtype=DEBUG
+ code_coverage=OFF
+ build_tests=OFF
+ generator="Unix Makefiles"
++__UnprocessedCMakeArgs=""
+
+ for i in "${@:5}"; do
+ upperI="$(echo $i | awk '{print toupper($0)}')"
+@@ -59,7 +61,7 @@ for i in "${@:5}"; do
+ generator=Ninja
+ ;;
+ *)
+- echo "Ignoring unknown arg '$i'"
++ __UnprocessedCMakeArgs="$__UnprocessedCMakeArgs $i"
+ esac
+ done
+
+@@ -144,4 +146,5 @@ cmake \
"-DCMAKE_ENABLE_CODE_COVERAGE=$code_coverage" \
"-DCLR_CMAKE_BUILD_TESTS=$build_tests" \
$cmake_extra_defines \
-+ $CMAKE_ARGS_EXTRA \
++ "$__UnprocessedCMakeArgs" \
"$1"
diff --git a/coreclr-git/patches/patch-src_vm_amd64_externalmethodfixupthunk.S b/coreclr-git/patches/patch-src_vm_amd64_externalmethodfixupthunk.S
new file mode 100644
index 0000000..ee14f2a
--- /dev/null
+++ b/coreclr-git/patches/patch-src_vm_amd64_externalmethodfixupthunk.S
@@ -0,0 +1,40 @@
+$NetBSD$
+
+--- src/vm/amd64/externalmethodfixupthunk.S.orig 2016-02-02 01:31:09.000000000 +0000
++++ src/vm/amd64/externalmethodfixupthunk.S
+@@ -18,7 +18,7 @@ NESTED_ENTRY ExternalMethodFixupStub, _T
+ mov rdx, 0 // sectionIndex
+ mov rcx, 0 // pModule
+
+- call C_FUNC(ExternalMethodFixupWorker)
++ call EXTERNAL_C_FUNC(ExternalMethodFixupWorker)
+
+ EPILOG_WITH_TRANSITION_BLOCK_TAILCALL
+ PATCH_LABEL ExternalMethodFixupPatchLabel
+@@ -35,7 +35,7 @@ NESTED_ENTRY DelayLoad_MethodCall, _TEXT
+ lea rdi, [rsp + __PWTB_TransitionBlock] // pTransitionBlock
+ mov rsi, rax // pIndirection
+
+- call C_FUNC(ExternalMethodFixupWorker)
++ call EXTERNAL_C_FUNC(ExternalMethodFixupWorker)
+
+ EPILOG_WITH_TRANSITION_BLOCK_TAILCALL
+
+@@ -56,7 +56,7 @@ NESTED_ENTRY DelayLoad_Helper\suffix, _T
+ lea rdi, [rsp + __PWTB_TransitionBlock] // pTransitionBlock
+ mov rsi, rax // pIndirection
+
+- call C_FUNC(DynamicHelperWorker)
++ call EXTERNAL_C_FUNC(DynamicHelperWorker)
+
+ test rax,rax
+ jnz LOCAL_LABEL(TailCallDelayLoad_Helper\suffix)
+@@ -89,7 +89,7 @@ NESTED_ENTRY VirtualMethodFixupStub, _TE
+
+ lea rdi, [rsp + __PWTB_TransitionBlock] // pTransitionBlock
+ sub rsi, 5 // pThunk
+- call C_FUNC(VirtualMethodFixupWorker)
++ call EXTERNAL_C_FUNC(VirtualMethodFixupWorker)
+
+ EPILOG_WITH_TRANSITION_BLOCK_TAILCALL
+ PATCH_LABEL VirtualMethodFixupPatchLabel
diff --git a/coreclr-git/patches/patch-src_vm_amd64_jithelpers__fast.S b/coreclr-git/patches/patch-src_vm_amd64_jithelpers__fast.S
new file mode 100644
index 0000000..d45a3d0
--- /dev/null
+++ b/coreclr-git/patches/patch-src_vm_amd64_jithelpers__fast.S
@@ -0,0 +1,13 @@
+$NetBSD$
+
+--- src/vm/amd64/jithelpers_fast.S.orig 2016-01-28 19:04:13.000000000 +0000
++++ src/vm/amd64/jithelpers_fast.S
+@@ -19,7 +19,7 @@ LEAF_END JIT_PatchedCodeStart, _TEXT
+ LEAF_ENTRY JIT_WriteBarrier, _TEXT
+ #ifdef _DEBUG
+ // In debug builds, this just contains jump to the debug version of the write barrier by default
+- jmp C_FUNC(JIT_WriteBarrier_Debug)
++ jmp EXTERNAL_C_FUNC(JIT_WriteBarrier_Debug)
+ #endif
+
+ // Do the move into the GC . It is correct to take an AV here, the EH code
diff --git a/coreclr-git/patches/patch-src_vm_amd64_pinvokestubs.S b/coreclr-git/patches/patch-src_vm_amd64_pinvokestubs.S
new file mode 100644
index 0000000..7630e29
--- /dev/null
+++ b/coreclr-git/patches/patch-src_vm_amd64_pinvokestubs.S
@@ -0,0 +1,31 @@
+$NetBSD$
+
+--- src/vm/amd64/pinvokestubs.S.orig 2016-01-28 19:04:13.000000000 +0000
++++ src/vm/amd64/pinvokestubs.S
+@@ -22,7 +22,7 @@ LEAF_ENTRY GenericPInvokeCalliHelper, _T
+ //
+ mov rax, [PINVOKE_CALLI_SIGTOKEN_REGISTER + OFFSETOF__VASigCookie__pNDirectILStub]
+ test rax, rax
+- jz C_FUNC(GenericPInvokeCalliGenILStub)
++ jz EXTERNAL_C_FUNC(GenericPInvokeCalliGenILStub)
+
+ //
+ // We need to distinguish between a MethodDesc* and an unmanaged target in PInvokeStubForHost().
+@@ -55,7 +55,7 @@ NESTED_ENTRY GenericPInvokeCalliGenILStu
+ lea rdi, [rsp + __PWTB_TransitionBlock] // pTransitionBlock*
+ mov rsi, PINVOKE_CALLI_SIGTOKEN_REGISTER // pVASigCookie
+ mov rdx, METHODDESC_REGISTER // pUnmanagedTarget
+- call C_FUNC(GenericPInvokeCalliStubWorker)
++ call EXTERNAL_C_FUNC(GenericPInvokeCalliStubWorker)
+
+ //
+ // restore target
+@@ -115,7 +115,7 @@ NESTED_ENTRY VarargPInvokeGenILStub, _TE
+ lea rdi, [rsp + __PWTB_TransitionBlock] // pTransitionBlock*
+ mov rsi, PINVOKE_CALLI_SIGTOKEN_REGISTER // pVASigCookie
+ mov rdx, METHODDESC_REGISTER // pMD
+- call C_FUNC(VarargPInvokeStubWorker)
++ call EXTERNAL_C_FUNC(VarargPInvokeStubWorker)
+
+ //
+ // restore target
diff --git a/coreclr-git/patches/patch-src_vm_amd64_theprestubamd64.S b/coreclr-git/patches/patch-src_vm_amd64_theprestubamd64.S
new file mode 100644
index 0000000..0a64329
--- /dev/null
+++ b/coreclr-git/patches/patch-src_vm_amd64_theprestubamd64.S
@@ -0,0 +1,18 @@
+$NetBSD$
+
+--- src/vm/amd64/theprestubamd64.S.orig 2016-01-28 19:04:13.000000000 +0000
++++ src/vm/amd64/theprestubamd64.S
+@@ -14,7 +14,7 @@ NESTED_ENTRY ThePreStub, _TEXT, NoHandle
+ //
+ lea rdi, [rsp + __PWTB_TransitionBlock] // pTransitionBlock*
+ mov rsi, METHODDESC_REGISTER
+- call C_FUNC(PreStubWorker)
++ call EXTERNAL_C_FUNC(PreStubWorker)
+
+ EPILOG_WITH_TRANSITION_BLOCK_TAILCALL
+ TAILJMP_RAX
+@@ -27,4 +27,3 @@ LEAF_ENTRY ThePreStubPatch, _TEXT
+ PATCH_LABEL ThePreStubPatchLabel
+ ret
+ LEAF_END ThePreStubPatch, _TEXT
+-
diff --git a/coreclr-git/patches/patch-src_vm_amd64_umthunkstub.S b/coreclr-git/patches/patch-src_vm_amd64_umthunkstub.S
new file mode 100644
index 0000000..a7d9f75
--- /dev/null
+++ b/coreclr-git/patches/patch-src_vm_amd64_umthunkstub.S
@@ -0,0 +1,43 @@
+$NetBSD$
+
+--- src/vm/amd64/umthunkstub.S.orig 2016-01-28 19:04:13.000000000 +0000
++++ src/vm/amd64/umthunkstub.S
+@@ -17,7 +17,7 @@ NESTED_ENTRY TheUMEntryPrestub, _TEXT, U
+ END_PROLOGUE
+
+ mov rdi, METHODDESC_REGISTER
+- call C_FUNC(TheUMEntryPrestubWorker)
++ call EXTERNAL_C_FUNC(TheUMEntryPrestubWorker)
+
+ // we're going to tail call to the exec stub that we just setup
+
+@@ -75,7 +75,7 @@ NESTED_ENTRY UMThunkStub, _TEXT, Unhandl
+ //
+ // Call GetThread()
+ //
+- call C_FUNC(GetThread)
++ call EXTERNAL_C_FUNC(GetThread)
+ test rax, rax
+ jz LOCAL_LABEL(DoThreadSetup)
+
+@@ -152,17 +152,17 @@ LOCAL_LABEL(PostCall):
+
+
+ LOCAL_LABEL(DoThreadSetup):
+- call C_FUNC(CreateThreadBlockThrow)
++ call EXTERNAL_C_FUNC(CreateThreadBlockThrow)
+ jmp LOCAL_LABEL(HaveThread)
+
+ LOCAL_LABEL(InvalidTransition):
+ //No arguments to setup , ReversePInvokeBadTransition will failfast
+- call C_FUNC(ReversePInvokeBadTransition)
++ call EXTERNAL_C_FUNC(ReversePInvokeBadTransition)
+
+ LOCAL_LABEL(DoTrapReturningThreadsTHROW):
+ mov rdi, r12 // Thread* pThread
+ mov rsi, [rbp - UMThunkStubAMD64_RBP_OFFSET + UMThunkStubAMD64_METHODDESC_OFFSET] // UMEntryThunk* pUMEntry
+- call C_FUNC(UMThunkStubRareDisableWorker)
++ call EXTERNAL_C_FUNC(UMThunkStubRareDisableWorker)
+
+ jmp LOCAL_LABEL(InCooperativeMode)
+
diff --git a/coreclr-git/patches/patch-src_vm_amd64_unixasmhelpers.S b/coreclr-git/patches/patch-src_vm_amd64_unixasmhelpers.S
new file mode 100644
index 0000000..8b8ce19
--- /dev/null
+++ b/coreclr-git/patches/patch-src_vm_amd64_unixasmhelpers.S
@@ -0,0 +1,45 @@
+$NetBSD$
+
+--- src/vm/amd64/unixasmhelpers.S.orig 2016-01-28 19:04:13.000000000 +0000
++++ src/vm/amd64/unixasmhelpers.S
+@@ -26,7 +26,7 @@ LEAF_ENTRY PrecodeFixupThunk, _TEXT
+ lea METHODDESC_REGISTER,[rax+r11*8]
+
+ // Tail call to prestub
+- jmp C_FUNC(ThePreStub)
++ jmp EXTERNAL_C_FUNC(ThePreStub)
+
+ LEAF_END PrecodeFixupThunk, _TEXT
+
+@@ -113,7 +113,7 @@ NESTED_ENTRY NDirectImportThunk, _TEXT,
+ // Call NDirectImportWorker w/ the NDirectMethodDesc*
+ //
+ mov rdi, METHODDESC_REGISTER
+- call C_FUNC(NDirectImportWorker)
++ call EXTERNAL_C_FUNC(NDirectImportWorker)
+
+ RESTORE_FLOAT_ARGUMENT_REGISTERS 0
+
+@@ -160,7 +160,7 @@ NESTED_ENTRY JIT_RareDisableHelper, _TEX
+ // Second float return register
+ movdqa xmmword ptr [rsp+0x10], xmm1
+
+- call C_FUNC(JIT_RareDisableHelperWorker)
++ call EXTERNAL_C_FUNC(JIT_RareDisableHelperWorker)
+
+ movdqa xmm0, xmmword ptr [rsp]
+ movdqa xmm1, xmmword ptr [rsp+0x10]
+@@ -330,7 +330,7 @@ LEAF_ENTRY SinglecastDelegateInvokeStub,
+
+ NullObject:
+ mov rdi, CORINFO_NullReferenceException_ASM
+- jmp C_FUNC(JIT_InternalThrow)
++ jmp EXTERNAL_C_FUNC(JIT_InternalThrow)
+
+ LEAF_END SinglecastDelegateInvokeStub, _TEXT
+
+@@ -372,4 +372,3 @@ LEAF_ENTRY StartUnwindingNativeFrames, _
+ mov rdi, rsi
+ jmp EXTERNAL_C_FUNC(ThrowExceptionHelper)
+ LEAF_END StartUnwindingNativeFrames, _TEXT
+-
diff --git a/coreclr-git/patches/patch-src_vm_amd64_virtualcallstubamd64.S b/coreclr-git/patches/patch-src_vm_amd64_virtualcallstubamd64.S
new file mode 100644
index 0000000..60e8684
--- /dev/null
+++ b/coreclr-git/patches/patch-src_vm_amd64_virtualcallstubamd64.S
@@ -0,0 +1,22 @@
+$NetBSD$
+
+--- src/vm/amd64/virtualcallstubamd64.S.orig 2016-01-28 19:04:13.000000000 +0000
++++ src/vm/amd64/virtualcallstubamd64.S
+@@ -35,7 +35,7 @@ NESTED_ENTRY ResolveWorkerAsmStub, _TEXT
+ and rcx, 7 // flags
+ sub rsi, rcx // indirection cell
+
+- call C_FUNC(VSD_ResolveWorker)
++ call EXTERNAL_C_FUNC(VSD_ResolveWorker)
+
+ EPILOG_WITH_TRANSITION_BLOCK_TAILCALL
+ TAILJMP_RAX
+@@ -99,7 +99,7 @@ NESTED_ENTRY StubDispatchFixupStub, _TEX
+ mov rdx,0 // sectionIndex
+ mov rcx,0 // pModule
+
+- call C_FUNC(StubDispatchFixupWorker)
++ call EXTERNAL_C_FUNC(StubDispatchFixupWorker)
+
+ EPILOG_WITH_TRANSITION_BLOCK_TAILCALL
+ PATCH_LABEL StubDispatchFixupPatchLabel
diff --git a/corefx-git/distinfo b/corefx-git/distinfo
index 75f93d2..b90c043 100644
--- a/corefx-git/distinfo
+++ b/corefx-git/distinfo
@@ -1,9 +1,4 @@
$NetBSD$
SHA1 (patch-src_Native_Common_pal__config.h.in) = 37fa257faf95a5da68f9dfa2e609afdaddd1ed9a
-SHA1 (patch-src_Native_System.Native_pal__errno.cpp) = f619d61f531e31cf80113553c7fcc84c15fd2798
-SHA1 (patch-src_Native_System.Native_pal__errno.h) = 12663841b61986caf2272c28ea7ac93da2940d6d
-SHA1 (patch-src_Native_System.Native_pal__interfaceaddresses.cpp) = 4f82e6f028fe2b9826ba6afb62869e42a0b6ee3d
-SHA1 (patch-src_Native_System.Native_pal__mount.cpp) = 7858f5ff60fcb0d60452648aef1b1034698e2c85
-SHA1 (patch-src_Native_System.Native_pal__networking.cpp) = 4f8ef34ed37564978e9370c6f07114b72ef36bd3
SHA1 (patch-src_Native_configure.cmake) = c4d12c3a55c97804fd053c6923df08fe72c4d91d
SHA1 (patch-src_Native_gen-buildsys-clang.sh) = efc34b0da3d11b1c66625336bb4d3c7ac5273b60
diff --git a/corefx-git/patches/patch-src_Native_System.Native_pal__errno.cpp b/corefx-git/patches/patch-src_Native_System.Native_pal__errno.cpp
deleted file mode 100644
index a9a7ccf..0000000
--- a/corefx-git/patches/patch-src_Native_System.Native_pal__errno.cpp
+++ /dev/null
@@ -1,40 +0,0 @@
-$NetBSD$
-
---- src/Native/System.Native/pal_errno.cpp.orig 2016-02-07 13:49:29.000000000 +0000
-+++ src/Native/System.Native/pal_errno.cpp
-@@ -126,8 +126,6 @@ extern "C" Error SystemNative_ConvertErr
- return PAL_ENOTDIR;
- case ENOTEMPTY:
- return PAL_ENOTEMPTY;
-- case ENOTRECOVERABLE:
-- return PAL_ENOTRECOVERABLE;
- case ENOTSOCK:
- return PAL_ENOTSOCK;
- case ENOTSUP:
-@@ -138,8 +136,6 @@ extern "C" Error SystemNative_ConvertErr
- return PAL_ENXIO;
- case EOVERFLOW:
- return PAL_EOVERFLOW;
-- case EOWNERDEAD:
-- return PAL_EOWNERDEAD;
- case EPERM:
- return PAL_EPERM;
- case EPIPE:
-@@ -298,8 +294,6 @@ extern "C" int32_t SystemNative_ConvertE
- return ENOTDIR;
- case PAL_ENOTEMPTY:
- return ENOTEMPTY;
-- case PAL_ENOTRECOVERABLE:
-- return ENOTRECOVERABLE;
- case PAL_ENOTSOCK:
- return ENOTSOCK;
- case PAL_ENOTSUP:
-@@ -310,8 +304,6 @@ extern "C" int32_t SystemNative_ConvertE
- return ENXIO;
- case PAL_EOVERFLOW:
- return EOVERFLOW;
-- case PAL_EOWNERDEAD:
-- return EOWNERDEAD;
- case PAL_EPERM:
- return EPERM;
- case PAL_EPIPE:
diff --git a/corefx-git/patches/patch-src_Native_System.Native_pal__errno.h b/corefx-git/patches/patch-src_Native_System.Native_pal__errno.h
deleted file mode 100644
index b54acbe..0000000
--- a/corefx-git/patches/patch-src_Native_System.Native_pal__errno.h
+++ /dev/null
@@ -1,18 +0,0 @@
-$NetBSD$
-
---- src/Native/System.Native/pal_errno.h.orig 2016-02-07 13:49:29.000000000 +0000
-+++ src/Native/System.Native/pal_errno.h
-@@ -84,13 +84,11 @@ enum Error : int32_t
- PAL_ENOTCONN = 0x10038, // The socket is not connected.
- PAL_ENOTDIR = 0x10039, // Not a directory or a symbolic link to a directory.
- PAL_ENOTEMPTY = 0x1003A, // Directory not empty.
-- PAL_ENOTRECOVERABLE = 0x1003B, // State not recoverable.
- PAL_ENOTSOCK = 0x1003C, // Not a socket.
- PAL_ENOTSUP = 0x1003D, // Not supported (same value as EOPNOTSUP).
- PAL_ENOTTY = 0x1003E, // Inappropriate I/O control operation.
- PAL_ENXIO = 0x1003F, // No such device or address.
- PAL_EOVERFLOW = 0x10040, // Value too large to be stored in data type.
-- PAL_EOWNERDEAD = 0x10041, // Previous owner died.
- PAL_EPERM = 0x10042, // Operation not permitted.
- PAL_EPIPE = 0x10043, // Broken pipe.
- PAL_EPROTO = 0x10044, // Protocol error.
diff --git a/corefx-git/patches/patch-src_Native_System.Native_pal__interfaceaddresses.cpp b/corefx-git/patches/patch-src_Native_System.Native_pal__interfaceaddresses.cpp
deleted file mode 100644
index c78a90c..0000000
--- a/corefx-git/patches/patch-src_Native_System.Native_pal__interfaceaddresses.cpp
+++ /dev/null
@@ -1,12 +0,0 @@
-$NetBSD$
-
---- src/Native/System.Native/pal_interfaceaddresses.cpp.orig 2016-02-07 13:49:29.000000000 +0000
-+++ src/Native/System.Native/pal_interfaceaddresses.cpp
-@@ -8,6 +8,7 @@
- #include "pal_utilities.h"
-
- #include <assert.h>
-+#include <sys/types.h>
- #include <ifaddrs.h>
- #include <net/if.h>
- #include <netinet/in.h>
diff --git a/corefx-git/patches/patch-src_Native_System.Native_pal__mount.cpp b/corefx-git/patches/patch-src_Native_System.Native_pal__mount.cpp
deleted file mode 100644
index b617698..0000000
--- a/corefx-git/patches/patch-src_Native_System.Native_pal__mount.cpp
+++ /dev/null
@@ -1,54 +0,0 @@
-$NetBSD$
-
---- src/Native/System.Native/pal_mount.cpp.orig 2016-02-07 13:49:29.000000000 +0000
-+++ src/Native/System.Native/pal_mount.cpp
-@@ -22,7 +22,11 @@ static int32_t GetMountInfo(MountPointFo
- {
- #if HAVE_MNTINFO
- // getmntinfo returns pointers to OS-internal structs, so we don't need to worry about free'ing the object
-+#if HAVE_SYS_STATVFS
-+ struct statvfs* mounts = nullptr;
-+#else
- struct statfs* mounts = nullptr;
-+#endif
- int count = getmntinfo(&mounts, 0);
- for (int32_t i = 0; i < count; i++)
- {
-@@ -68,8 +72,13 @@ extern "C" int32_t SystemNative_GetSpace
- assert(name != nullptr);
- assert(mpi != nullptr);
-
-- struct statfs stats = {};
-+#if HAVE_SYS_STATVFS
-+ struct statvfs stats = {};
-+ int result = statvfs(name, &stats);
-+#else
-+ struct statvfs stats = {};
- int result = statfs(name, &stats);
-+#endif
- if (result == 0)
- {
- // Note that these have signed integer types on some platforms but musn't be negative.
-@@ -98,13 +107,22 @@ SystemNative_GetFormatInfoForMountPoint(
- assert((formatNameBuffer != nullptr) && (formatType != nullptr));
- assert(bufferLength > 0);
-
-+#if HAVE_SYS_STATVFS
-+ struct statvfs stats;
-+ int result = statvfs(name, &stats);
-+#else
- struct statfs stats;
- int result = statfs(name, &stats);
-+#endif
- if (result == 0)
- {
-
- #if HAVE_STATFS_FSTYPENAME
-+#if HAVE_VFS_NAMELEN
-+ if (bufferLength < VFS_NAMELEN)
-+#else
- if (bufferLength < MFSNAMELEN)
-+#endif
- {
- result = ERANGE;
- *formatType = 0;
diff --git a/corefx-git/patches/patch-src_Native_System.Native_pal__networking.cpp b/corefx-git/patches/patch-src_Native_System.Native_pal__networking.cpp
deleted file mode 100644
index 7b5b423..0000000
--- a/corefx-git/patches/patch-src_Native_System.Native_pal__networking.cpp
+++ /dev/null
@@ -1,329 +0,0 @@
-$NetBSD$
-
---- src/Native/System.Native/pal_networking.cpp.orig 2016-02-08 16:12:54.000000000 +0000
-+++ src/Native/System.Native/pal_networking.cpp
-@@ -381,7 +381,138 @@ static void ConvertHostEntPlatformToPal(
- }
- }
-
--#if HAVE_GETHOSTBYNAME_R
-+#if defined(HAVE_GETNAMEINFO) || defined(HAVE_GETADDRINFO)
-+#define BUFFER_OVERFLOW 255
-+static int copy_hostent(struct hostent* from, struct hostent* to,
-+ char* buffer, size_t buflen, int* error)
-+{
-+ int i, len;
-+ char* ptr = buffer;
-+
-+ *error = 0;
-+ to->h_addrtype = from->h_addrtype;
-+ to->h_length = from->h_length;
-+ to->h_name = static_cast<char*>(ptr);
-+
-+ /* copy hostname to buffer */
-+ len= static_cast<int>(strlen(from->h_name)+1);
-+ strcpy(ptr, from->h_name);
-+ ptr += len;
-+
-+ /* copy aliases to buffer */
-+ to->h_aliases = reinterpret_cast<char**>(ptr);
-+ for(i = 0; from->h_aliases[i]; i++);
-+ ptr += (i+1) * static_cast<int>(sizeof(char*));
-+
-+ for(i = 0; from->h_aliases[i]; i++)
-+ {
-+ len = static_cast<int>(strlen(from->h_aliases[i])+1);
-+ if (static_cast<size_t>((ptr-buffer)+len) < buflen)
-+ {
-+ to->h_aliases[i] = ptr;
-+ strcpy(ptr, from->h_aliases[i]);
-+ ptr += len;
-+ }
-+ else
-+ {
-+ *error = BUFFER_OVERFLOW;
-+ return *error;
-+ }
-+ }
-+ to->h_aliases[i] = NULL;
-+
-+ /* copy addr_list to buffer */
-+ to->h_addr_list = reinterpret_cast<char**>(ptr);
-+ for(i = 0; reinterpret_cast<int*>(from->h_addr_list[i]) != 0; i++);
-+ ptr += (i+1) * static_cast<int>(sizeof(int*));
-+
-+ for(i = 0; reinterpret_cast<int*>(from->h_addr_list[i]) != 0; i++)
-+ {
-+ len = sizeof(int);
-+ if (static_cast<size_t>((ptr-buffer)+len) < buflen)
-+ {
-+ to->h_addr_list[i] = ptr;
-+ memcpy(ptr, from->h_addr_list[i], static_cast<size_t>(len));
-+ ptr += len;
-+ }
-+ else
-+ {
-+ *error = BUFFER_OVERFLOW;
-+ return *error;
-+ }
-+ }
-+ to->h_addr_list[i] = 0;
-+ return *error;
-+}
-+#endif /* defined(HAVE_GETNAMEINFO) || defined(HAVE_GETADDRINFO) */
-+
-+#if defined(HAVE_GETNAMEINFO)
-+static int gethostbyname_r(char const* hostname, struct hostent* result,
-+ char* buffer, size_t buflen, hostent** entry, int* error)
-+{
-+#ifdef HAVE_PTHREAD_H
-+ if (fr_hostbyname == 0)
-+ {
-+ pthread_mutex_init(&fr_hostbyname_mutex, NULL);
-+ fr_hostbyname = 1;
-+ }
-+ pthread_mutex_lock(&fr_hostbyname_mutex);
-+#endif
-+
-+ *entry = gethostbyname(hostname);
-+ if ((!(*entry)) || ((*entry)->h_addrtype != AF_INET) || ((*entry)->h_length != 4))
-+ {
-+ *error = h_errno;
-+ *entry = NULL;
-+ }
-+ else
-+ {
-+ copy_hostent(*entry, result, buffer, buflen, error);
-+ *entry = result;
-+ }
-+
-+#ifdef HAVE_PTHREAD_H
-+ pthread_mutex_unlock(&fr_hostbyname_mutex);
-+#endif
-+
-+ return h_errno;
-+}
-+#endif /* defined(HAVE_GETNAMEINFO) */
-+
-+#if defined(HAVE_GETADDRINFO)
-+static int gethostbyaddr_r(const uint8_t* addr, const socklen_t len, int type, struct hostent* result,
-+ char* buffer, size_t buflen, hostent** entry, int* error)
-+{
-+#ifdef HAVE_PTHREAD_H
-+ if (fr_hostbyaddr == 0)
-+ {
-+ pthread_mutex_init(&fr_hostbyaddr_mutex, NULL);
-+ fr_hostbyaddr = 1;
-+ }
-+ pthread_mutex_lock(&fr_hostbyaddr_mutex);
-+#endif
-+
-+ *entry = gethostbyaddr(reinterpret_cast<const char*>(addr), static_cast<unsigned int>(len), type);
-+ if ((!(*entry)) || ((*entry)->h_addrtype != AF_INET) || ((*entry)->h_length != 4))
-+ {
-+ *error = h_errno;
-+ *entry = nullptr;
-+ }
-+ else
-+ {
-+ copy_hostent(*entry, result, buffer, buflen, error);
-+ *entry = result;
-+ }
-+
-+#ifdef HAVE_PTHREAD_H
-+ pthread_mutex_unlock(&fr_hostbyaddr_mutex);
-+#endif
-+
-+ return h_errno;
-+}
-+#endif /* defined(HAVE_GETADDRINFO) */
-+
-+#if defined(HAVE_GETHOSTBYNAME_R) || defined(HAVE_GETNAMEINFO)
- static int GetHostByNameHelper(const uint8_t* hostname, hostent** entry)
- {
- assert(hostname != nullptr);
-@@ -421,7 +552,7 @@ static int GetHostByNameHelper(const uin
- }
- }
- }
--#endif
-+#endif /* defined(HAVE_GETHOSTBYNAME_R) || defined(HAVE_GETNAMEINFO) */
-
- extern "C" int32_t SystemNative_GetHostByName(const uint8_t* hostname, HostEntry* entry)
- {
-@@ -436,7 +567,7 @@ extern "C" int32_t SystemNative_GetHostB
- #if HAVE_THREAD_SAFE_GETHOSTBYNAME_AND_GETHOSTBYADDR
- hostEntry = gethostbyname(reinterpret_cast<const char*>(hostname));
- error = h_errno;
--#elif HAVE_GETHOSTBYNAME_R
-+#elif HAVE_GETHOSTBYNAME_R || HAVE_GETADDRINFO
- error = GetHostByNameHelper(hostname, &hostEntry);
- #else
- #error Platform does not provide thread-safe gethostbyname
-@@ -451,7 +582,7 @@ extern "C" int32_t SystemNative_GetHostB
- return PAL_SUCCESS;
- }
-
--#if HAVE_GETHOSTBYADDR_R
-+#if defined(HAVE_GETHOSTBYADDR_R) || defined(HAVE_HOSTADDRINFO)
- static int GetHostByAddrHelper(const uint8_t* addr, const socklen_t addrLen, int type, hostent** entry)
- {
- assert(addr != nullptr);
-@@ -491,7 +622,7 @@ static int GetHostByAddrHelper(const uin
- }
- }
- }
--#endif
-+#endif /* defined(HAVE_GETHOSTBYADDR_R) || defined(HAVE_HOSTADDRINFO) */
-
- extern "C" int32_t SystemNative_GetHostByAddress(const IPAddress* address, HostEntry* entry)
- {
-@@ -1188,7 +1319,11 @@ extern "C" Error SystemNative_GetIPv4Mul
- return PAL_EINVAL;
- }
-
-+#if HAVE_IP_MREQ
-+ ip_mreq opt;
-+#elif HAVE_IP_MREQN
- ip_mreqn opt;
-+#endif
- socklen_t len = sizeof(opt);
- int err = getsockopt(socket, IPPROTO_IP, optionName, &opt, &len);
- if (err != 0)
-@@ -1197,8 +1332,12 @@ extern "C" Error SystemNative_GetIPv4Mul
- }
-
- *option = {.MulticastAddress = opt.imr_multiaddr.s_addr,
-+#if HAVE_IP_MREQ
-+ .LocalAddress = opt.imr_interface.s_addr};
-+#elif HAVE_IP_MREQN
- .LocalAddress = opt.imr_address.s_addr,
- .InterfaceIndex = opt.imr_ifindex};
-+#endif
- return PAL_SUCCESS;
- }
-
-@@ -1215,9 +1354,14 @@ extern "C" Error SystemNative_SetIPv4Mul
- return PAL_EINVAL;
- }
-
-+#if HAVE_IP_MREQ
-+ ip_mreq opt = {.imr_multiaddr = {.s_addr = option->MulticastAddress},
-+ .imr_interface = {.s_addr = option->LocalAddress}};
-+#elif HAVE_IP_MREQN
- ip_mreqn opt = {.imr_multiaddr = {.s_addr = option->MulticastAddress},
- .imr_address = {.s_addr = option->LocalAddress},
- .imr_ifindex = option->InterfaceIndex};
-+#endif
- int err = setsockopt(socket, IPPROTO_IP, optionName, &opt, sizeof(opt));
- return err == 0 ? PAL_SUCCESS : SystemNative_ConvertErrorPlatformToPal(errno);
- }
-@@ -1729,21 +1873,29 @@ static bool TryGetPlatformSocketOption(i
-
- // case PAL_SO_IP_DONTFRAGMENT:
-
-+#ifdef IP_ADD_SOURCE_MEMBERSHIP
- case PAL_SO_IP_ADD_SOURCE_MEMBERSHIP:
- optName = IP_ADD_SOURCE_MEMBERSHIP;
- return true;
-+#endif
-
-+#ifdef IP_DROP_SOURCE_MEMBERSHIP
- case PAL_SO_IP_DROP_SOURCE_MEMBERSHIP:
- optName = IP_DROP_SOURCE_MEMBERSHIP;
- return true;
-+#endif
-
-+#ifdef IP_BLOCK_SOURCE
- case PAL_SO_IP_BLOCK_SOURCE:
- optName = IP_BLOCK_SOURCE;
- return true;
-+#endif
-
-+#ifdef IP_UNBLOCK_SOURCE
- case PAL_SO_IP_UNBLOCK_SOURCE:
- optName = IP_UNBLOCK_SOURCE;
- return true;
-+#endif
-
- case PAL_SO_IP_PKTINFO:
- optName = IP_PKTINFO;
-@@ -2317,8 +2469,13 @@ static Error CloseSocketEventPortInner(i
- static Error TryChangeSocketEventRegistrationInner(
- int32_t port, int32_t socket, SocketEvents currentEvents, SocketEvents newEvents, uintptr_t data)
- {
-+#ifdef EV_RECEIPT
- const uint16_t AddFlags = EV_ADD | EV_CLEAR | EV_RECEIPT;
- const uint16_t RemoveFlags = EV_DELETE | EV_RECEIPT;
-+#else
-+ const uint16_t AddFlags = EV_ADD | EV_CLEAR;
-+ const uint16_t RemoveFlags = EV_DELETE;
-+#endif
-
- assert(currentEvents != newEvents);
-
-@@ -2331,6 +2488,15 @@ static Error TryChangeSocketEventRegistr
- int i = 0;
- if (readChanged)
- {
-+#if KEVENT_HAS_NUMERIC_DATA
-+ EV_SET(&events[i++],
-+ static_cast<uint64_t>(socket),
-+ EVFILT_READ,
-+ (newEvents & PAL_SA_READ) == 0 ? RemoveFlags : AddFlags,
-+ 0,
-+ 0,
-+ data);
-+#else
- EV_SET(&events[i++],
- static_cast<uint64_t>(socket),
- EVFILT_READ,
-@@ -2338,6 +2504,7 @@ static Error TryChangeSocketEventRegistr
- 0,
- 0,
- reinterpret_cast<void*>(data));
-+#endif
- }
-
- if (writeChanged)
-@@ -2348,11 +2515,15 @@ static Error TryChangeSocketEventRegistr
- (newEvents & PAL_SA_WRITE) == 0 ? RemoveFlags : AddFlags,
- 0,
- 0,
-- reinterpret_cast<void*>(data));
-+ data);
- }
-
- int err;
-+#if KEVENT_REQUIRES_SIZE_T_NUMERICS
-+ while (CheckInterrupted(err = kevent(port, events, static_cast<size_t>(i), nullptr, 0, nullptr)));
-+#else
- while (CheckInterrupted(err = kevent(port, events, i, nullptr, 0, nullptr)));
-+#endif
- return err == 0 ? PAL_SUCCESS : SystemNative_ConvertErrorPlatformToPal(errno);
- }
-
-@@ -2364,7 +2535,11 @@ static Error WaitForSocketEventsInner(in
-
- auto* events = reinterpret_cast<struct kevent*>(buffer);
- int numEvents;
-+#if KEVENT_REQUIRES_SIZE_T_NUMERICS
-+ while (CheckInterrupted(numEvents = kevent(port, nullptr, 0, events, static_cast<size_t>(*count), nullptr)));
-+#else
- while (CheckInterrupted(numEvents = kevent(port, nullptr, 0, events, *count, nullptr)));
-+#endif
- if (numEvents == -1)
- {
- *count = -1;
-@@ -2382,7 +2557,11 @@ static Error WaitForSocketEventsInner(in
- {
- // This copy is made deliberately to avoid overwriting data.
- struct kevent evt = events[i];
-+#if KEVENT_HAS_NUMERIC_DATA
-+ buffer[i] = {.Data = static_cast<unsigned long>(evt.udata), .Events = GetSocketEvents(static_cast<short>(evt.filter), static_cast<unsigned short>(evt.flags))};
-+#else
- buffer[i] = {.Data = reinterpret_cast<uintptr_t>(evt.udata), .Events = GetSocketEvents(evt.filter, evt.flags)};
-+#endif
- }
-
- *count = numEvents;
Home |
Main Index |
Thread Index |
Old Index