@@ -2430,7 +2430,7 @@ HeapList* LoaderCodeHeap::CreateCodeHeap(CodeHeapRequestInfo *pInfo, LoaderHeap
24302430 bool fAllocatedFromEmergencyJumpStubReserve = false ;
24312431
24322432 size_t allocationSize = pCodeHeap->m_LoaderHeap .AllocMem_TotalSize (initialRequestSize);
2433- #if defined(TARGET_64BIT) && defined(TARGET_WINDOWS)
2433+ #if defined(TARGET_64BIT)
24342434 if (!pInfo->IsInterpreted ())
24352435 {
24362436 allocationSize += pCodeHeap->m_LoaderHeap .AllocMem_TotalSize (JUMP_ALLOCATE_SIZE);
@@ -2490,14 +2490,15 @@ HeapList* LoaderCodeHeap::CreateCodeHeap(CodeHeapRequestInfo *pInfo, LoaderHeap
24902490 // this first allocation is critical as it sets up correctly the loader heap info
24912491 HeapList *pHp = new HeapList;
24922492
2493- #if defined(TARGET_64BIT) && defined(TARGET_WINDOWS)
2493+ #if defined(TARGET_64BIT)
24942494 if (pInfo->IsInterpreted ())
24952495 {
24962496 pHp->CLRPersonalityRoutine = NULL ;
24972497 pCodeHeap->m_LoaderHeap .ReservePages (1 );
24982498 }
24992499 else
25002500 {
2501+ // Set the personality routine. This is needed even outside Windows because IsIPInEpilog relies on it being set.
25012502 pHp->CLRPersonalityRoutine = (BYTE *)pCodeHeap->m_LoaderHeap .AllocMemForCode_NoThrow (0 , JUMP_ALLOCATE_SIZE, sizeof (void *), 0 );
25022503 }
25032504#else
@@ -2531,7 +2532,7 @@ HeapList* LoaderCodeHeap::CreateCodeHeap(CodeHeapRequestInfo *pInfo, LoaderHeap
25312532 pHp->mapBase = ROUND_DOWN_TO_PAGE (pHp->startAddress ); // round down to next lower page align
25322533 size_t nibbleMapSize = HEAP2MAPSIZE (ROUND_UP_TO_PAGE (heapSize));
25332534 pHp->pHdrMap = (DWORD*)(void *)pJitMetaHeap->AllocMem (S_SIZE_T (nibbleMapSize));
2534- #if defined(TARGET_64BIT) && defined(TARGET_WINDOWS)
2535+ #if defined(TARGET_64BIT)
25352536 if (pHp->CLRPersonalityRoutine != NULL )
25362537 {
25372538 ExecutableWriterHolder<BYTE> personalityRoutineWriterHolder (pHp->CLRPersonalityRoutine , 12 );
@@ -2660,7 +2661,7 @@ HeapList* EECodeGenManager::NewCodeHeap(CodeHeapRequestInfo *pInfo, DomainCodeHe
26602661
26612662 size_t reserveSize = initialRequestSize;
26622663
2663- #if defined(TARGET_64BIT) && defined(TARGET_WINDOWS)
2664+ #if defined(TARGET_64BIT)
26642665 if (!pInfo->IsInterpreted ())
26652666 {
26662667 reserveSize += JUMP_ALLOCATE_SIZE;
0 commit comments