Compare commits
	
		
			No commits in common. "imports/c8-beta/dotnet-2.1.509-2.el8" and "c8" have entirely different histories.
		
	
	
		
			imports/c8
			...
			c8
		
	
		
| @ -1 +1 @@ | |||||||
| 5e682c8e8c5b07db830b324d4c8649e986abc9e8 SOURCES/dotnet-v2.1.13.tar.gz | fbcabf5a416a0005a9f7495121f9ea8e95e8607e SOURCES/dotnet-v2.1.526-SDK.tar.gz | ||||||
|  | |||||||
							
								
								
									
										2
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @ -1 +1 @@ | |||||||
| SOURCES/dotnet-v2.1.13.tar.gz | SOURCES/dotnet-v2.1.526-SDK.tar.gz | ||||||
|  | |||||||
							
								
								
									
										12
									
								
								SOURCES/build-corefx-disable-werror.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								SOURCES/build-corefx-disable-werror.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,12 @@ | |||||||
|  | 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 () | ||||||
| @ -1,584 +0,0 @@ | |||||||
| 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 |  | ||||||
|           |  | ||||||
| @ -1,38 +0,0 @@ | |||||||
| 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 |  | ||||||
|   |  | ||||||
| @ -1,26 +0,0 @@ | |||||||
| 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() |  | ||||||
							
								
								
									
										402
									
								
								SOURCES/coreclr-libunwind-fno-common.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										402
									
								
								SOURCES/coreclr-libunwind-fno-common.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,402 @@ | |||||||
|  | From 29e17d8d2ccbca07c423e3089a6d5ae8a1c9cb6e Mon Sep 17 00:00:00 2001 | ||||||
|  | From: Yichao Yu <yyc1992@gmail.com> | ||||||
|  | Date: Tue, 31 Mar 2020 00:43:32 -0400 | ||||||
|  | Subject: [PATCH] Fix compilation with -fno-common. | ||||||
|  | 
 | ||||||
|  | Making all other archs consistent with IA64 which should not have this problem. | ||||||
|  | Also move the FIXME to the correct place. | ||||||
|  | 
 | ||||||
|  | Also add some minimum comments about this... | ||||||
|  | ---
 | ||||||
|  |  src/aarch64/Ginit.c                        | 15 +++++++-------- | ||||||
|  |  src/arm/Ginit.c                            | 15 +++++++-------- | ||||||
|  |  src/coredump/_UPT_get_dyn_info_list_addr.c |  5 +++++ | ||||||
|  |  src/hppa/Ginit.c                           | 15 +++++++-------- | ||||||
|  |  src/ia64/Ginit.c                           |  1 + | ||||||
|  |  src/mi/Gfind_dynamic_proc_info.c           |  1 + | ||||||
|  |  src/mips/Ginit.c                           | 15 +++++++-------- | ||||||
|  |  src/ppc32/Ginit.c                          | 11 +++++++---- | ||||||
|  |  src/ppc64/Ginit.c                          | 11 +++++++---- | ||||||
|  |  src/ptrace/_UPT_get_dyn_info_list_addr.c   |  5 +++++ | ||||||
|  |  src/s390x/Ginit.c                          | 15 +++++++-------- | ||||||
|  |  src/sh/Ginit.c                             | 15 +++++++-------- | ||||||
|  |  src/tilegx/Ginit.c                         | 15 +++++++-------- | ||||||
|  |  src/x86/Ginit.c                            | 15 +++++++-------- | ||||||
|  |  src/x86_64/Ginit.c                         | 15 +++++++-------- | ||||||
|  |  15 files changed, 89 insertions(+), 80 deletions(-) | ||||||
|  | 
 | ||||||
|  | diff --git a/src/pal/src/libunwind/src/aarch64/Ginit.c b/src/pal/src/libunwind/src/aarch64/Ginit.c
 | ||||||
|  | index dec235c82..35389762f 100644
 | ||||||
|  | --- a/src/pal/src/libunwind/src/aarch64/Ginit.c
 | ||||||
|  | +++ b/src/pal/src/libunwind/src/aarch64/Ginit.c
 | ||||||
|  | @@ -61,13 +61,6 @@ tdep_uc_addr (unw_tdep_context_t *uc, int reg)
 | ||||||
|  |   | ||||||
|  |  # endif /* UNW_LOCAL_ONLY */ | ||||||
|  |   | ||||||
|  | -HIDDEN unw_dyn_info_list_t _U_dyn_info_list;
 | ||||||
|  | -
 | ||||||
|  | -/* XXX fix me: there is currently no way to locate the dyn-info list
 | ||||||
|  | -       by a remote unwinder.  On ia64, this is done via a special
 | ||||||
|  | -       unwind-table entry.  Perhaps something similar can be done with
 | ||||||
|  | -       DWARF2 unwind info.  */
 | ||||||
|  | -
 | ||||||
|  |  static void | ||||||
|  |  put_unwind_info (unw_addr_space_t as, unw_proc_info_t *proc_info, void *arg) | ||||||
|  |  { | ||||||
|  | @@ -78,7 +71,13 @@ static int
 | ||||||
|  |  get_dyn_info_list_addr (unw_addr_space_t as, unw_word_t *dyn_info_list_addr, | ||||||
|  |                          void *arg) | ||||||
|  |  { | ||||||
|  | -  *dyn_info_list_addr = (unw_word_t) &_U_dyn_info_list;
 | ||||||
|  | +#ifndef UNW_LOCAL_ONLY
 | ||||||
|  | +# pragma weak _U_dyn_info_list_addr
 | ||||||
|  | +  if (!_U_dyn_info_list_addr)
 | ||||||
|  | +    return -UNW_ENOINFO;
 | ||||||
|  | +#endif
 | ||||||
|  | +  // Access the `_U_dyn_info_list` from `LOCAL_ONLY` library, i.e. libunwind.so.
 | ||||||
|  | +  *dyn_info_list_addr = _U_dyn_info_list_addr ();
 | ||||||
|  |    return 0; | ||||||
|  |  } | ||||||
|  |   | ||||||
|  | diff --git a/src/pal/src/libunwind/src/arm/Ginit.c b/ssrc/pal/src/libunwind/src/arm/Ginit.c
 | ||||||
|  | index 2720d063a..0bac0d72d 100644
 | ||||||
|  | --- a/src/pal/src/libunwind/src/arm/Ginit.c
 | ||||||
|  | +++ b/src/pal/src/libunwind/src/arm/Ginit.c
 | ||||||
|  | @@ -57,18 +57,17 @@ tdep_uc_addr (unw_tdep_context_t *uc, int reg)
 | ||||||
|  |   | ||||||
|  |  # endif /* UNW_LOCAL_ONLY */ | ||||||
|  |   | ||||||
|  | -HIDDEN unw_dyn_info_list_t _U_dyn_info_list;
 | ||||||
|  | -
 | ||||||
|  | -/* XXX fix me: there is currently no way to locate the dyn-info list
 | ||||||
|  | -       by a remote unwinder.  On ia64, this is done via a special
 | ||||||
|  | -       unwind-table entry.  Perhaps something similar can be done with
 | ||||||
|  | -       DWARF2 unwind info.  */
 | ||||||
|  | -
 | ||||||
|  |  static int | ||||||
|  |  get_dyn_info_list_addr (unw_addr_space_t as, unw_word_t *dyn_info_list_addr, | ||||||
|  |                          void *arg) | ||||||
|  |  { | ||||||
|  | -  *dyn_info_list_addr = (unw_word_t) &_U_dyn_info_list;
 | ||||||
|  | +#ifndef UNW_LOCAL_ONLY
 | ||||||
|  | +# pragma weak _U_dyn_info_list_addr
 | ||||||
|  | +  if (!_U_dyn_info_list_addr)
 | ||||||
|  | +    return -UNW_ENOINFO;
 | ||||||
|  | +#endif
 | ||||||
|  | +  // Access the `_U_dyn_info_list` from `LOCAL_ONLY` library, i.e. libunwind.so.
 | ||||||
|  | +  *dyn_info_list_addr = _U_dyn_info_list_addr ();
 | ||||||
|  |    return 0; | ||||||
|  |  } | ||||||
|  |   | ||||||
|  | diff --git a/src/pal/src/libunwind/src/coredump/_UPT_get_dyn_info_list_addr.c b/src/pal/src/libunwind/src/coredump/_UPT_get_dyn_info_list_addr.c
 | ||||||
|  | index 0d1190556..739ed0569 100644
 | ||||||
|  | --- a/src/pal/src/libunwind/src/coredump/_UPT_get_dyn_info_list_addr.c
 | ||||||
|  | +++ b/src/pal/src/libunwind/src/coredump/_UPT_get_dyn_info_list_addr.c
 | ||||||
|  | @@ -74,6 +74,11 @@ get_list_addr (unw_addr_space_t as, unw_word_t *dil_addr, void *arg,
 | ||||||
|  |   | ||||||
|  |  #else | ||||||
|  |   | ||||||
|  | +/* XXX fix me: there is currently no way to locate the dyn-info list
 | ||||||
|  | +       by a remote unwinder.  On ia64, this is done via a special
 | ||||||
|  | +       unwind-table entry.  Perhaps something similar can be done with
 | ||||||
|  | +       DWARF2 unwind info.  */
 | ||||||
|  | +
 | ||||||
|  |  static inline int | ||||||
|  |  get_list_addr (unw_addr_space_t as, unw_word_t *dil_addr, void *arg, | ||||||
|  |                 int *countp) | ||||||
|  | diff --git a/src/pal/src/libunwind/src/hppa/Ginit.c b/src/pal/src/libunwind/src/hppa/Ginit.c
 | ||||||
|  | index 461e4b93d..265455a68 100644
 | ||||||
|  | --- a/src/pal/src/libunwind/src/hppa/Ginit.c
 | ||||||
|  | +++ b/src/pal/src/libunwind/src/hppa/Ginit.c
 | ||||||
|  | @@ -64,13 +64,6 @@ _Uhppa_uc_addr (ucontext_t *uc, int reg)
 | ||||||
|  |   | ||||||
|  |  # endif /* UNW_LOCAL_ONLY */ | ||||||
|  |   | ||||||
|  | -HIDDEN unw_dyn_info_list_t _U_dyn_info_list;
 | ||||||
|  | -
 | ||||||
|  | -/* XXX fix me: there is currently no way to locate the dyn-info list
 | ||||||
|  | -       by a remote unwinder.  On ia64, this is done via a special
 | ||||||
|  | -       unwind-table entry.  Perhaps something similar can be done with
 | ||||||
|  | -       DWARF2 unwind info.  */
 | ||||||
|  | -
 | ||||||
|  |  static void | ||||||
|  |  put_unwind_info (unw_addr_space_t as, unw_proc_info_t *proc_info, void *arg) | ||||||
|  |  { | ||||||
|  | @@ -81,7 +74,13 @@ static int
 | ||||||
|  |  get_dyn_info_list_addr (unw_addr_space_t as, unw_word_t *dyn_info_list_addr, | ||||||
|  |                          void *arg) | ||||||
|  |  { | ||||||
|  | -  *dyn_info_list_addr = (unw_word_t) &_U_dyn_info_list;
 | ||||||
|  | +#ifndef UNW_LOCAL_ONLY
 | ||||||
|  | +# pragma weak _U_dyn_info_list_addr
 | ||||||
|  | +  if (!_U_dyn_info_list_addr)
 | ||||||
|  | +    return -UNW_ENOINFO;
 | ||||||
|  | +#endif
 | ||||||
|  | +  // Access the `_U_dyn_info_list` from `LOCAL_ONLY` library, i.e. libunwind.so.
 | ||||||
|  | +  *dyn_info_list_addr = _U_dyn_info_list_addr ();
 | ||||||
|  |    return 0; | ||||||
|  |  } | ||||||
|  |   | ||||||
|  | diff --git a/src/pal/src/libunwind/src/ia64/Ginit.c b/src/pal/src/libunwind/src/ia64/Ginit.c
 | ||||||
|  | index b09a2ad57..8601bb3ca 100644
 | ||||||
|  | --- a/src/pal/src/libunwind/src/ia64/Ginit.c
 | ||||||
|  | +++ b/src/pal/src/libunwind/src/ia64/Ginit.c
 | ||||||
|  | @@ -68,6 +68,7 @@ get_dyn_info_list_addr (unw_addr_space_t as, unw_word_t *dyn_info_list_addr,
 | ||||||
|  |    if (!_U_dyn_info_list_addr) | ||||||
|  |      return -UNW_ENOINFO; | ||||||
|  |  #endif | ||||||
|  | +  // Access the `_U_dyn_info_list` from `LOCAL_ONLY` library, i.e. libunwind.so.
 | ||||||
|  |    *dyn_info_list_addr = _U_dyn_info_list_addr (); | ||||||
|  |    return 0; | ||||||
|  |  } | ||||||
|  | diff --git a/src/pal/src/libunwind/src/mi/Gfind_dynamic_proc_info.c b/src/pal/src/libunwind/src/mi/Gfind_dynamic_proc_info.c
 | ||||||
|  | index 98d350128..2e7c62e5e 100644
 | ||||||
|  | --- a/src/pal/src/libunwind/src/mi/Gfind_dynamic_proc_info.c
 | ||||||
|  | +++ b/src/pal/src/libunwind/src/mi/Gfind_dynamic_proc_info.c
 | ||||||
|  | @@ -49,6 +49,7 @@ local_find_proc_info (unw_addr_space_t as, unw_word_t ip, unw_proc_info_t *pi,
 | ||||||
|  |      return -UNW_ENOINFO; | ||||||
|  |  #endif | ||||||
|  |   | ||||||
|  | +  // Access the `_U_dyn_info_list` from `LOCAL_ONLY` library, i.e. libunwind.so.
 | ||||||
|  |    list = (unw_dyn_info_list_t *) (uintptr_t) _U_dyn_info_list_addr (); | ||||||
|  |    for (di = list->first; di; di = di->next) | ||||||
|  |      if (ip >= di->start_ip && ip < di->end_ip) | ||||||
|  | diff --git a/src/pal/src/libunwind/src/mips/Ginit.c b/src/pal/src/libunwind/src/mips/Ginit.c
 | ||||||
|  | index 3df170c75..bf7a8f5a8 100644
 | ||||||
|  | --- a/src/pal/src/libunwind/src/mips/Ginit.c
 | ||||||
|  | +++ b/src/pal/src/libunwind/src/mips/Ginit.c
 | ||||||
|  | @@ -69,13 +69,6 @@ tdep_uc_addr (ucontext_t *uc, int reg)
 | ||||||
|  |   | ||||||
|  |  # endif /* UNW_LOCAL_ONLY */ | ||||||
|  |   | ||||||
|  | -HIDDEN unw_dyn_info_list_t _U_dyn_info_list;
 | ||||||
|  | -
 | ||||||
|  | -/* XXX fix me: there is currently no way to locate the dyn-info list
 | ||||||
|  | -       by a remote unwinder.  On ia64, this is done via a special
 | ||||||
|  | -       unwind-table entry.  Perhaps something similar can be done with
 | ||||||
|  | -       DWARF2 unwind info.  */
 | ||||||
|  | -
 | ||||||
|  |  static void | ||||||
|  |  put_unwind_info (unw_addr_space_t as, unw_proc_info_t *proc_info, void *arg) | ||||||
|  |  { | ||||||
|  | @@ -86,7 +79,13 @@ static int
 | ||||||
|  |  get_dyn_info_list_addr (unw_addr_space_t as, unw_word_t *dyn_info_list_addr, | ||||||
|  |                          void *arg) | ||||||
|  |  { | ||||||
|  | -  *dyn_info_list_addr = (unw_word_t) (intptr_t) &_U_dyn_info_list;
 | ||||||
|  | +#ifndef UNW_LOCAL_ONLY
 | ||||||
|  | +# pragma weak _U_dyn_info_list_addr
 | ||||||
|  | +  if (!_U_dyn_info_list_addr)
 | ||||||
|  | +    return -UNW_ENOINFO;
 | ||||||
|  | +#endif
 | ||||||
|  | +  // Access the `_U_dyn_info_list` from `LOCAL_ONLY` library, i.e. libunwind.so.
 | ||||||
|  | +  *dyn_info_list_addr = _U_dyn_info_list_addr ();
 | ||||||
|  |    return 0; | ||||||
|  |  } | ||||||
|  |   | ||||||
|  | diff --git a/src/pal/src/libunwind/src/ppc32/Ginit.c b/src/pal/src/libunwind/src/ppc32/Ginit.c
 | ||||||
|  | index ba302448a..7b4545580 100644
 | ||||||
|  | --- a/src/pal/src/libunwind/src/ppc32/Ginit.c
 | ||||||
|  | +++ b/src/pal/src/libunwind/src/ppc32/Ginit.c
 | ||||||
|  | @@ -91,9 +91,6 @@ tdep_uc_addr (ucontext_t *uc, int reg)
 | ||||||
|  |   | ||||||
|  |  # endif /* UNW_LOCAL_ONLY */ | ||||||
|  |   | ||||||
|  | -HIDDEN unw_dyn_info_list_t _U_dyn_info_list;
 | ||||||
|  | -
 | ||||||
|  | -
 | ||||||
|  |  static void | ||||||
|  |  put_unwind_info (unw_addr_space_t as, unw_proc_info_t *proc_info, void *arg) | ||||||
|  |  { | ||||||
|  | @@ -104,7 +101,13 @@ static int
 | ||||||
|  |  get_dyn_info_list_addr (unw_addr_space_t as, unw_word_t *dyn_info_list_addr, | ||||||
|  |                          void *arg) | ||||||
|  |  { | ||||||
|  | -  *dyn_info_list_addr = (unw_word_t) &_U_dyn_info_list;
 | ||||||
|  | +#ifndef UNW_LOCAL_ONLY
 | ||||||
|  | +# pragma weak _U_dyn_info_list_addr
 | ||||||
|  | +  if (!_U_dyn_info_list_addr)
 | ||||||
|  | +    return -UNW_ENOINFO;
 | ||||||
|  | +#endif
 | ||||||
|  | +  // Access the `_U_dyn_info_list` from `LOCAL_ONLY` library, i.e. libunwind.so.
 | ||||||
|  | +  *dyn_info_list_addr = _U_dyn_info_list_addr ();
 | ||||||
|  |    return 0; | ||||||
|  |  } | ||||||
|  |   | ||||||
|  | diff --git a/src/pal/src/libunwind/src/ppc64/Ginit.c b/src/pal/src/libunwind/src/ppc64/Ginit.c
 | ||||||
|  | index 4c88cd6e7..7bfb395a7 100644
 | ||||||
|  | --- a/src/pal/src/libunwind/src/ppc64/Ginit.c
 | ||||||
|  | +++ b/src/pal/src/libunwind/src/ppc64/Ginit.c
 | ||||||
|  | @@ -95,9 +95,6 @@ tdep_uc_addr (ucontext_t *uc, int reg)
 | ||||||
|  |   | ||||||
|  |  # endif /* UNW_LOCAL_ONLY */ | ||||||
|  |   | ||||||
|  | -HIDDEN unw_dyn_info_list_t _U_dyn_info_list;
 | ||||||
|  | -
 | ||||||
|  | -
 | ||||||
|  |  static void | ||||||
|  |  put_unwind_info (unw_addr_space_t as, unw_proc_info_t *proc_info, void *arg) | ||||||
|  |  { | ||||||
|  | @@ -108,7 +105,13 @@ static int
 | ||||||
|  |  get_dyn_info_list_addr (unw_addr_space_t as, unw_word_t *dyn_info_list_addr, | ||||||
|  |                          void *arg) | ||||||
|  |  { | ||||||
|  | -  *dyn_info_list_addr = (unw_word_t) &_U_dyn_info_list;
 | ||||||
|  | +#ifndef UNW_LOCAL_ONLY
 | ||||||
|  | +# pragma weak _U_dyn_info_list_addr
 | ||||||
|  | +  if (!_U_dyn_info_list_addr)
 | ||||||
|  | +    return -UNW_ENOINFO;
 | ||||||
|  | +#endif
 | ||||||
|  | +  // Access the `_U_dyn_info_list` from `LOCAL_ONLY` library, i.e. libunwind.so.
 | ||||||
|  | +  *dyn_info_list_addr = _U_dyn_info_list_addr ();
 | ||||||
|  |    return 0; | ||||||
|  |  } | ||||||
|  |   | ||||||
|  | diff --git a/src/pal/src/libunwind/src/ptrace/_UPT_get_dyn_info_list_addr.c b/src/pal/src/libunwind/src/ptrace/_UPT_get_dyn_info_list_addr.c
 | ||||||
|  | index cc5ed0441..16671d453 100644
 | ||||||
|  | --- a/src/pal/src/libunwind/src/ptrace/_UPT_get_dyn_info_list_addr.c
 | ||||||
|  | +++ b/src/pal/src/libunwind/src/ptrace/_UPT_get_dyn_info_list_addr.c
 | ||||||
|  | @@ -71,6 +71,11 @@ get_list_addr (unw_addr_space_t as, unw_word_t *dil_addr, void *arg,
 | ||||||
|  |   | ||||||
|  |  #else | ||||||
|  |   | ||||||
|  | +/* XXX fix me: there is currently no way to locate the dyn-info list
 | ||||||
|  | +       by a remote unwinder.  On ia64, this is done via a special
 | ||||||
|  | +       unwind-table entry.  Perhaps something similar can be done with
 | ||||||
|  | +       DWARF2 unwind info.  */
 | ||||||
|  | +
 | ||||||
|  |  static inline int | ||||||
|  |  get_list_addr (unw_addr_space_t as, unw_word_t *dil_addr, void *arg, | ||||||
|  |                 int *countp) | ||||||
|  | diff --git a/src/pal/src/libunwind/src/sh/Ginit.c b/src/pal/src/libunwind/src/sh/Ginit.c
 | ||||||
|  | index 52988a721..9fe96d2bd 100644
 | ||||||
|  | --- a/src/pal/src/libunwind/src/sh/Ginit.c
 | ||||||
|  | +++ b/src/pal/src/libunwind/src/sh/Ginit.c
 | ||||||
|  | @@ -58,13 +58,6 @@ tdep_uc_addr (ucontext_t *uc, int reg)
 | ||||||
|  |   | ||||||
|  |  # endif /* UNW_LOCAL_ONLY */ | ||||||
|  |   | ||||||
|  | -HIDDEN unw_dyn_info_list_t _U_dyn_info_list;
 | ||||||
|  | -
 | ||||||
|  | -/* XXX fix me: there is currently no way to locate the dyn-info list
 | ||||||
|  | -       by a remote unwinder.  On ia64, this is done via a special
 | ||||||
|  | -       unwind-table entry.  Perhaps something similar can be done with
 | ||||||
|  | -       DWARF2 unwind info.  */
 | ||||||
|  | -
 | ||||||
|  |  static void | ||||||
|  |  put_unwind_info (unw_addr_space_t as, unw_proc_info_t *proc_info, void *arg) | ||||||
|  |  { | ||||||
|  | @@ -75,7 +68,13 @@ static int
 | ||||||
|  |  get_dyn_info_list_addr (unw_addr_space_t as, unw_word_t *dyn_info_list_addr, | ||||||
|  |                          void *arg) | ||||||
|  |  { | ||||||
|  | -  *dyn_info_list_addr = (unw_word_t) &_U_dyn_info_list;
 | ||||||
|  | +#ifndef UNW_LOCAL_ONLY
 | ||||||
|  | +# pragma weak _U_dyn_info_list_addr
 | ||||||
|  | +  if (!_U_dyn_info_list_addr)
 | ||||||
|  | +    return -UNW_ENOINFO;
 | ||||||
|  | +#endif
 | ||||||
|  | +  // Access the `_U_dyn_info_list` from `LOCAL_ONLY` library, i.e. libunwind.so.
 | ||||||
|  | +  *dyn_info_list_addr = _U_dyn_info_list_addr ();
 | ||||||
|  |    return 0; | ||||||
|  |  } | ||||||
|  |   | ||||||
|  | diff --git a/src/pal/src/libunwind/src/tilegx/Ginit.c b/src/pal/src/libunwind/src/tilegx/Ginit.c
 | ||||||
|  | index 7564a558b..925e64132 100644
 | ||||||
|  | --- a/src/pal/src/libunwind/src/tilegx/Ginit.c
 | ||||||
|  | +++ b/src/pal/src/libunwind/src/tilegx/Ginit.c
 | ||||||
|  | @@ -64,13 +64,6 @@ tdep_uc_addr (ucontext_t *uc, int reg)
 | ||||||
|  |   | ||||||
|  |  # endif /* UNW_LOCAL_ONLY */ | ||||||
|  |   | ||||||
|  | -HIDDEN unw_dyn_info_list_t _U_dyn_info_list;
 | ||||||
|  | -
 | ||||||
|  | -/* XXX fix me: there is currently no way to locate the dyn-info list
 | ||||||
|  | -       by a remote unwinder.  On ia64, this is done via a special
 | ||||||
|  | -       unwind-table entry.  Perhaps something similar can be done with
 | ||||||
|  | -       DWARF2 unwind info.  */
 | ||||||
|  | -
 | ||||||
|  |  static void | ||||||
|  |  put_unwind_info (unw_addr_space_t as, unw_proc_info_t *proc_info, void *arg) | ||||||
|  |  { | ||||||
|  | @@ -81,7 +74,13 @@ static int
 | ||||||
|  |  get_dyn_info_list_addr (unw_addr_space_t as, unw_word_t *dyn_info_list_addr, | ||||||
|  |                          void *arg) | ||||||
|  |  { | ||||||
|  | -  *dyn_info_list_addr = (unw_word_t) (intptr_t) &_U_dyn_info_list;
 | ||||||
|  | +#ifndef UNW_LOCAL_ONLY
 | ||||||
|  | +# pragma weak _U_dyn_info_list_addr
 | ||||||
|  | +  if (!_U_dyn_info_list_addr)
 | ||||||
|  | +    return -UNW_ENOINFO;
 | ||||||
|  | +#endif
 | ||||||
|  | +  // Access the `_U_dyn_info_list` from `LOCAL_ONLY` library, i.e. libunwind.so.
 | ||||||
|  | +  *dyn_info_list_addr = _U_dyn_info_list_addr ();
 | ||||||
|  |    return 0; | ||||||
|  |  } | ||||||
|  |   | ||||||
|  | diff --git a/src/pal/src/libunwind/src/x86/Ginit.c b/src/pal/src/libunwind/src/x86/Ginit.c
 | ||||||
|  | index f6b8dc27d..3cec74a21 100644
 | ||||||
|  | --- a/src/pal/src/libunwind/src/x86/Ginit.c
 | ||||||
|  | +++ b/src/pal/src/libunwind/src/x86/Ginit.c
 | ||||||
|  | @@ -54,13 +54,6 @@ tdep_uc_addr (ucontext_t *uc, int reg)
 | ||||||
|  |   | ||||||
|  |  # endif /* UNW_LOCAL_ONLY */ | ||||||
|  |   | ||||||
|  | -HIDDEN unw_dyn_info_list_t _U_dyn_info_list;
 | ||||||
|  | -
 | ||||||
|  | -/* XXX fix me: there is currently no way to locate the dyn-info list
 | ||||||
|  | -       by a remote unwinder.  On ia64, this is done via a special
 | ||||||
|  | -       unwind-table entry.  Perhaps something similar can be done with
 | ||||||
|  | -       DWARF2 unwind info.  */
 | ||||||
|  | -
 | ||||||
|  |  static void | ||||||
|  |  put_unwind_info (unw_addr_space_t as, unw_proc_info_t *proc_info, void *arg) | ||||||
|  |  { | ||||||
|  | @@ -71,7 +64,13 @@ static int
 | ||||||
|  |  get_dyn_info_list_addr (unw_addr_space_t as, unw_word_t *dyn_info_list_addr, | ||||||
|  |                          void *arg) | ||||||
|  |  { | ||||||
|  | -  *dyn_info_list_addr = (unw_word_t) &_U_dyn_info_list;
 | ||||||
|  | +#ifndef UNW_LOCAL_ONLY
 | ||||||
|  | +# pragma weak _U_dyn_info_list_addr
 | ||||||
|  | +  if (!_U_dyn_info_list_addr)
 | ||||||
|  | +    return -UNW_ENOINFO;
 | ||||||
|  | +#endif
 | ||||||
|  | +  // Access the `_U_dyn_info_list` from `LOCAL_ONLY` library, i.e. libunwind.so.
 | ||||||
|  | +  *dyn_info_list_addr = _U_dyn_info_list_addr ();
 | ||||||
|  |    return 0; | ||||||
|  |  } | ||||||
|  |   | ||||||
|  | diff --git a/src/pal/src/libunwind/src/x86_64/Ginit.c b/src/pal/src/libunwind/src/x86_64/Ginit.c
 | ||||||
|  | index a865d3385..fd8d418b1 100644
 | ||||||
|  | --- a/src/pal/src/libunwind/src/x86_64/Ginit.c
 | ||||||
|  | +++ b/src/pal/src/libunwind/src/x86_64/Ginit.c
 | ||||||
|  | @@ -49,13 +49,6 @@ static struct unw_addr_space local_addr_space;
 | ||||||
|  |   | ||||||
|  |  unw_addr_space_t unw_local_addr_space = &local_addr_space; | ||||||
|  |   | ||||||
|  | -HIDDEN unw_dyn_info_list_t _U_dyn_info_list;
 | ||||||
|  | -
 | ||||||
|  | -/* XXX fix me: there is currently no way to locate the dyn-info list
 | ||||||
|  | -       by a remote unwinder.  On ia64, this is done via a special
 | ||||||
|  | -       unwind-table entry.  Perhaps something similar can be done with
 | ||||||
|  | -       DWARF2 unwind info.  */
 | ||||||
|  | -
 | ||||||
|  |  static void | ||||||
|  |  put_unwind_info (unw_addr_space_t as, unw_proc_info_t *proc_info, void *arg) | ||||||
|  |  { | ||||||
|  | @@ -66,7 +59,13 @@ static int
 | ||||||
|  |  get_dyn_info_list_addr (unw_addr_space_t as, unw_word_t *dyn_info_list_addr, | ||||||
|  |                          void *arg) | ||||||
|  |  { | ||||||
|  | -  *dyn_info_list_addr = (unw_word_t) &_U_dyn_info_list;
 | ||||||
|  | +#ifndef UNW_LOCAL_ONLY
 | ||||||
|  | +# pragma weak _U_dyn_info_list_addr
 | ||||||
|  | +  if (!_U_dyn_info_list_addr)
 | ||||||
|  | +    return -UNW_ENOINFO;
 | ||||||
|  | +#endif
 | ||||||
|  | +  // Access the `_U_dyn_info_list` from `LOCAL_ONLY` library, i.e. libunwind.so.
 | ||||||
|  | +  *dyn_info_list_addr = _U_dyn_info_list_addr ();
 | ||||||
|  |    return 0; | ||||||
|  |  } | ||||||
|  |   | ||||||
| @ -1,40 +0,0 @@ | |||||||
| 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> |  | ||||||
| @ -1,15 +1,3 @@ | |||||||
| 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
 | diff --git a/src/Native/Unix/configure.cmake b/src/Native/Unix/configure.cmake
 | ||||||
| index f4a30ad6cb..f2db68402a 100644
 | index f4a30ad6cb..f2db68402a 100644
 | ||||||
| --- a/src/Native/Unix/configure.cmake
 | --- a/src/Native/Unix/configure.cmake
 | ||||||
|  | |||||||
| @ -28,36 +28,31 @@ | |||||||
| 
 | 
 | ||||||
| %global simple_name dotnet | %global simple_name dotnet | ||||||
| 
 | 
 | ||||||
| %global host_version 2.1.13 | %global host_version 2.1.30 | ||||||
| %global runtime_version 2.1.13 | %global runtime_version 2.1.30 | ||||||
| %global sdk_version 2.1.509 | %global sdk_version 2.1.526 | ||||||
| 
 | 
 | ||||||
| Name:           dotnet | Name:           dotnet | ||||||
| Version:        %{sdk_version} | Version:        %{sdk_version} | ||||||
| Release:        2%{?dist} | Release:        1%{?dist} | ||||||
| Summary:        .NET Core CLI tools and runtime | Summary:        .NET Core CLI tools and runtime | ||||||
| License:        MIT and ASL 2.0 and BSD | License:        MIT and ASL 2.0 and BSD | ||||||
| URL:            https://github.com/dotnet/ | URL:            https://github.com/dotnet/ | ||||||
| 
 | 
 | ||||||
| # The source is generated on a RHEL box via: | # The source is generated on a RHEL box via: | ||||||
| # - git clone https://github.com/dotnet/source-build | # ./build-dotnet-tarball v%%{sdk_version}-SDK | ||||||
| # - 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 | Source0:        dotnet-v%{sdk_version}-SDK.tar.gz | ||||||
| Source1:        check-debug-symbols.py | Source1:        check-debug-symbols.py | ||||||
| Source2:        dotnet.sh | Source2:        dotnet.sh | ||||||
| 
 | 
 | ||||||
| Patch10:        corefx-optflags-support.patch | Patch10:        corefx-optflags-support.patch | ||||||
| Patch11:        corefx-32956-alpn.patch | Patch11:        corefx-32956-alpn.patch | ||||||
|  | # This patch is generally applied at tarball-build time, except when we dont build the tarball | ||||||
|  | Patch12:        build-corefx-disable-werror.patch | ||||||
| 
 | 
 | ||||||
| Patch100:       coreclr-build-python3.patch | Patch100:       coreclr-pie.patch | ||||||
| Patch101:       coreclr-cmake-python3.patch | Patch101:       coreclr-libunwind-fno-common.patch | ||||||
| Patch102:       coreclr-mscorlib.patch |  | ||||||
| Patch103:       coreclr-pie.patch |  | ||||||
| Patch104:       coreclr-assembly-hex-constants.patch |  | ||||||
| 
 | 
 | ||||||
| Patch300:       core-setup-4510-commit-id.patch | Patch300:       core-setup-4510-commit-id.patch | ||||||
| Patch301:       core-setup-pie.patch | Patch301:       core-setup-pie.patch | ||||||
| @ -197,19 +192,17 @@ applications and micro-services. | |||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| %prep | %prep | ||||||
| %setup -q -n %{simple_name}-v%{runtime_version} | %setup -q -n %{simple_name}-v%{sdk_version}-SDK | ||||||
| 
 | 
 | ||||||
| pushd src/corefx | pushd src/corefx | ||||||
| %patch10 -p1 | %patch10 -p1 | ||||||
| %patch11 -p1 | %patch11 -p1 | ||||||
|  | %patch12 -p1 | ||||||
| popd | popd | ||||||
| 
 | 
 | ||||||
| pushd src/coreclr | pushd src/coreclr | ||||||
| %patch100 -p1 | %patch100 -p1 | ||||||
| %patch101 -p1 | %patch101 -p1 | ||||||
| %patch102 -p1 |  | ||||||
| %patch103 -p1 |  | ||||||
| %patch104 -p1 |  | ||||||
| popd | popd | ||||||
| 
 | 
 | ||||||
| pushd src/core-setup | pushd src/core-setup | ||||||
| @ -227,6 +220,10 @@ sed -i 's|/usr/share/dotnet|%{_libdir}/%{simple_name}|' src/core-setup/src/coreh | |||||||
| # Disable warnings | # Disable warnings | ||||||
| sed -i 's|skiptests|skiptests ignorewarnings|' repos/coreclr.proj | sed -i 's|skiptests|skiptests ignorewarnings|' repos/coreclr.proj | ||||||
| 
 | 
 | ||||||
|  | # If CLR_CMAKE_USE_SYSTEM_LIBUNWIND=TRUE is missing, add it back | ||||||
|  | grep CLR_CMAKE_USE_SYSTEM_LIBUNWIND repos/coreclr.proj || \ | ||||||
|  |     sed -i 's|\$(BuildArguments) </BuildArguments>|$(BuildArguments) cmakeargs -DCLR_CMAKE_USE_SYSTEM_LIBUNWIND=TRUE</BuildArguments>|' repos/coreclr.proj | ||||||
|  | 
 | ||||||
| %if %{use_bundled_libunwind} | %if %{use_bundled_libunwind} | ||||||
| # Use bundled libunwind | # Use bundled libunwind | ||||||
| sed -i 's|-DCLR_CMAKE_USE_SYSTEM_LIBUNWIND=TRUE|-DCLR_CMAKE_USE_SYSTEM_LIBUNWIND=FALSE|' repos/coreclr.proj | sed -i 's|-DCLR_CMAKE_USE_SYSTEM_LIBUNWIND=TRUE|-DCLR_CMAKE_USE_SYSTEM_LIBUNWIND=FALSE|' repos/coreclr.proj | ||||||
| @ -320,6 +317,76 @@ rm %{buildroot}%{_libdir}/%{simple_name}/dotnet | |||||||
| %{_libdir}/%{simple_name}/sdk/%{sdk_version} | %{_libdir}/%{simple_name}/sdk/%{sdk_version} | ||||||
| 
 | 
 | ||||||
| %changelog | %changelog | ||||||
|  | * Mon Aug 16 2021 Omair Majid <omajid@redhat.com> - 2.1.526-1 | ||||||
|  | - Update to .NET SDK 2.1.526 and Runtime 2.1.30 | ||||||
|  | - Resolves: RHBZ#1993896 | ||||||
|  | 
 | ||||||
|  | * Tue Aug 03 2021 Omair Majid <omajid@redhat.com> - 2.1.525-1 | ||||||
|  | - Update to .NET SDK 2.1.525 and Runtime 2.1.29 | ||||||
|  | - Resolves: RHBZ#1988581 | ||||||
|  | 
 | ||||||
|  | * Tue Apr 27 2021 Omair Majid <omajid@redhat.com> - 2.1.524-1 | ||||||
|  | - Update to .NET SDK 2.1.524 and Runtime 2.1.28 | ||||||
|  | - Resolves: RHBZ#1953766 | ||||||
|  | 
 | ||||||
|  | * Thu Apr 08 2021 Omair Majid <omajid@redhat.com> - 2.1.523-1 | ||||||
|  | - Update to .NET Core SDK 2.1.523 and Runtime 2.1.27 | ||||||
|  | - Resolves: RHBZ#1947454 | ||||||
|  | 
 | ||||||
|  | * Tue Mar 09 2021 Omair Majid <omajid@redhat.com> - 2.1.522-2 | ||||||
|  | - Update to .NET Core SDK 2.1.522 and Runtime 2.1.26 | ||||||
|  | - Resolves: RHBZ#1933334 | ||||||
|  | 
 | ||||||
|  | * Wed Feb 10 2021 Omair Majid <omajid@redhat.com> - 2.1.521-2 | ||||||
|  | - Update to .NET Core SDK 2.1.521 and Runtime 2.1.25 | ||||||
|  | - Resolves: RHBZ#1921939 | ||||||
|  | 
 | ||||||
|  | * Tue Jan 12 14:41:40 EST 2021 Omair Majid <omajid@redhat.com> - 2.1.520-1 | ||||||
|  | - Update to .NET Core SDK 2.1.520 and Runtime 2.1.24 | ||||||
|  | - Resolves: RHBZ#1905575 | ||||||
|  | 
 | ||||||
|  | * Tue Oct 06 2020 Omair Majid <omajid@redhat.com> - 2.1.519-2 | ||||||
|  | - Bump release | ||||||
|  | - Resolves: RHBZ#1884080 | ||||||
|  | 
 | ||||||
|  | * Thu Oct 01 2020 Omair Majid <omajid@redhat.com> - 2.1.519-1 | ||||||
|  | - Update to .NET Core SDK 2.1.519 and Runtime 2.1.23 | ||||||
|  | - Drop patches merged upstream | ||||||
|  | - Resolves: RHBZ#1884080 | ||||||
|  | 
 | ||||||
|  | * Fri Sep 04 2020 Omair Majid <omajid@redhat.com> - 2.1.518-1 | ||||||
|  | - Update to .NET Core SDK 2.1.518 and Runtime 2.1.22 | ||||||
|  | - Resolves: RHBZ#1874064 | ||||||
|  | 
 | ||||||
|  | * Mon Aug 17 2020 Omair Majid <omajid@redhat.com> - 2.1.517-1 | ||||||
|  | - Update to .NET Core SDK 2.1.517 and Runtime 2.1.21 | ||||||
|  | - Resolves: RHBZ#1866119 | ||||||
|  | 
 | ||||||
|  | * Fri Jul 17 2020 Omair Majid <omajid@redhat.com> - 2.1.516-1 | ||||||
|  | - Update to .NET Core SDK 2.1.516 and Runtime 2.1.20 | ||||||
|  | - Resolves: RHBZ#1851971 | ||||||
|  | - Resolves: RHBZ#1856937 | ||||||
|  | 
 | ||||||
|  | * Thu Jun 11 2020 Omair Majid <omajid@redhat.com> - 2.1.515-2 | ||||||
|  | - Update to .NET Core SDK 2.1.515 and Runtime 2.1.19 | ||||||
|  | - Resolves: RHBZ#1843672 | ||||||
|  | 
 | ||||||
|  | * Mon Jun 01 2020 Omair Majid <omajid@redhat.com> - 2.1.514-3 | ||||||
|  | - Update to .NET Core SDK 2.1.514 and Runtime 2.1.18 | ||||||
|  | - Resolves: RHBZ#1828392 | ||||||
|  | 
 | ||||||
|  | * Mon Mar 23 2020 Omair Majid <omajid@redhat.com> - 2.1.513-2 | ||||||
|  | - Update to .NET Core SDK 2.1.513 and Runtime 2.1.17 | ||||||
|  | - Resolves: RHBZ#1815640 | ||||||
|  | 
 | ||||||
|  | * Sat Mar 07 2020 Omair Majid <omajid@redhat.com> - 2.1.512-1 | ||||||
|  | - Update to .NET Core Runtime 2.1.16 and SDK 2.1.512 | ||||||
|  | - Resolves: RHBZ#1799068 | ||||||
|  | 
 | ||||||
|  | * Fri Jan 17 2020 Omair Majid <omajid@redhat.com> - 2.1.511-2 | ||||||
|  | - Update to .NET Core Runtime 2.1.15 and SDK 2.1.511 | ||||||
|  | - Resolves: RHBZ#1786190 | ||||||
|  | 
 | ||||||
| * Thu Aug 29 2019 Omair Majid <omajid@redhat.com> - 2.1.509-2 | * Thu Aug 29 2019 Omair Majid <omajid@redhat.com> - 2.1.509-2 | ||||||
| - Update to .NET Core Runtime 2.1.13 and SDK 2.1.509 | - Update to .NET Core Runtime 2.1.13 and SDK 2.1.509 | ||||||
| - Resolves: RHBZ#1742959 | - Resolves: RHBZ#1742959 | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user