fixes for 32 bit

This commit is contained in:
nakst 2021-10-27 11:47:08 +01:00
parent eddf4f5b65
commit 21edea68d2
17 changed files with 133 additions and 102 deletions

View File

@ -17,8 +17,8 @@ void InstanceFolderPathChanged(Instance *instance, bool fromLoadFolder) {
EsWindowSetTitle(instance->window, (char *) buffer.out, buffer.position);
EsWindowSetIcon(instance->window, knownFileTypes[instance->folder->containerHandler->getFileType(instance->path)].iconID);
EsListViewEnumerateVisibleItems(instance->list, [] (EsListView *, EsElement *item, uint32_t, EsGeneric index) {
ListItemCreated(item, index.u, true);
EsListViewEnumerateVisibleItems(instance->list, [] (EsListView *, EsElement *item, uint32_t, EsListViewIndex index) {
ListItemCreated(item, index, true);
});
}

View File

@ -23,20 +23,20 @@ struct Instance : EsInstance {
#define DISPLAY_MEMORY (12)
EsListViewColumn listViewProcessesColumns[] = {
{ EsLiteral("Name"), 0, 150 },
{ EsLiteral("PID"), ES_LIST_VIEW_COLUMN_RIGHT_ALIGNED, 120 },
{ EsLiteral("Memory"), ES_LIST_VIEW_COLUMN_RIGHT_ALIGNED, 120 },
{ EsLiteral("CPU"), ES_LIST_VIEW_COLUMN_RIGHT_ALIGNED, 120 },
{ EsLiteral("Handles"), ES_LIST_VIEW_COLUMN_RIGHT_ALIGNED, 120 },
{ EsLiteral("Threads"), ES_LIST_VIEW_COLUMN_RIGHT_ALIGNED, 120 },
{ "Name", -1, 0, 150 },
{ "PID", -1, ES_LIST_VIEW_COLUMN_RIGHT_ALIGNED, 120 },
{ "Memory", -1, ES_LIST_VIEW_COLUMN_RIGHT_ALIGNED, 120 },
{ "CPU", -1, ES_LIST_VIEW_COLUMN_RIGHT_ALIGNED, 120 },
{ "Handles", -1, ES_LIST_VIEW_COLUMN_RIGHT_ALIGNED, 120 },
{ "Threads", -1, ES_LIST_VIEW_COLUMN_RIGHT_ALIGNED, 120 },
};
EsListViewColumn listViewContextSwitchesColumns[] = {
{ EsLiteral("Time stamp (ms)"), ES_LIST_VIEW_COLUMN_RIGHT_ALIGNED, 150 },
{ EsLiteral("CPU"), ES_LIST_VIEW_COLUMN_RIGHT_ALIGNED, 150 },
{ EsLiteral("Process"), 0, 150 },
{ EsLiteral("Thread"), 0, 150 },
{ EsLiteral("Count"), 0, 150 },
{ "Time stamp (ms)", -1, ES_LIST_VIEW_COLUMN_RIGHT_ALIGNED, 150 },
{ "CPU", -1, ES_LIST_VIEW_COLUMN_RIGHT_ALIGNED, 150 },
{ "Process", -1, 0, 150 },
{ "Thread", -1, 0, 150 },
{ "Count", -1, 0, 150 },
};
const EsStyle styleMonospacedTextbox = {

View File

@ -413,7 +413,7 @@ define ES_MAP_OBJECT_READ_WRITE (0)
define ES_MAP_OBJECT_READ_ONLY (1)
define ES_MAP_OBJECT_COPY_ON_WRITE (2)
define ES_STRING_FORMAT_ENOUGH_SPACE ((_EsLongConstant) (-1))
define ES_STRING_FORMAT_ENOUGH_SPACE (-1)
// Flags set with %f.
define ES_STRING_FORMAT_SIMPLE (1 << 0)
@ -1950,7 +1950,7 @@ function_pointer void EsMenuCallback(EsMenu *menu, EsGeneric context);
function_pointer void EsUndoCallback(const void *item, EsUndoManager *manager, EsMessage *message);
function_pointer void EsMountPointEnumerationCallback(const char *prefix, size_t prefixBytes, EsGeneric context);
function_pointer void EsDeviceEnumerationCallback(EsMessageDevice device, EsGeneric context);
function_pointer void EsListViewEnumerateVisibleItemsCallback(EsListView *view, EsElement *item, uint32_t group, EsGeneric index);
function_pointer void EsListViewEnumerateVisibleItemsCallback(EsListView *view, EsElement *item, uint32_t group, EsListViewIndex index);
function_pointer void EsFontEnumerationCallback(const EsFontInformation *information, EsGeneric context);
function_pointer void EsUserTaskCallback(EsUserTask *task, EsGeneric data);
function_pointer bool EsFileCopyCallback(EsFileOffset bytesCopied, EsFileOffset totalBytes, EsGeneric data); // Return false to cancel.

View File

@ -76,6 +76,13 @@ ES_EXTERN_C __attribute__((noreturn)) void _EsCRTlongjmp(EsCRTjmp_buf *env, int
#define EsCRTlongjmp(x, y) _EsCRTlongjmp(&(x), (y))
#endif
#ifdef ARCH_X86_32
#define ES_API_BASE ((void **) 0x1000)
#define ES_SHARED_MEMORY_MAXIMUM_SIZE ((size_t) 1024 * 1024 * 1024)
#define ES_PAGE_SIZE ((uintptr_t) 4096)
#define ES_PAGE_BITS (12)
#endif
#define _ES_C_PREPROCESSOR_JOIN(x, y) x ## y
#define ES_C_PREPROCESSOR_JOIN(x, y) _ES_C_PREPROCESSOR_JOIN(x, y)
@ -259,6 +266,11 @@ struct _EsPOSIXSyscall {
#define BUNDLE_FILE_DESKTOP_MAP_ADDRESS (0xF0000000UL)
#endif
#ifdef ARCH_X86_32
#define BUNDLE_FILE_MAP_ADDRESS (0xA0000000UL)
#define BUNDLE_FILE_DESKTOP_MAP_ADDRESS (0xBC000000UL)
#endif
struct BundleHeader {
#define BUNDLE_SIGNATURE (0x63BDAF45)
uint32_t signature;

View File

@ -2352,11 +2352,11 @@ void DrawTextPiece(EsPainter *painter, EsTextPlan *plan, TextPiece *piece, TextL
int sCursorX = cursorX, selectionStartX = -1, selectionEndX = -1;
for (uintptr_t i = 0; i < piece->glyphCount; i++) {
if (selectionStartX == -1 && glyphs[i].cluster >= selection->caret0) {
if (selectionStartX == -1 && (int32_t) glyphs[i].cluster >= selection->caret0) {
selectionStartX = sCursorX;
}
if (selectionEndX == -1 && glyphs[i].cluster >= selection->caret1) {
if (selectionEndX == -1 && (int32_t) glyphs[i].cluster >= selection->caret1) {
selectionEndX = sCursorX;
}
@ -2431,7 +2431,7 @@ void DrawTextPiece(EsPainter *painter, EsTextPlan *plan, TextPiece *piece, TextL
}
if (selection->caret0 != selection->caret1 && !selection->hideCaret
&& glyphs[i].cluster >= selection->caret0 && glyphs[i].cluster < selection->caret1
&& (int32_t) glyphs[i].cluster >= selection->caret0 && (int32_t) glyphs[i].cluster < selection->caret1
&& selection->foreground) {
color = selection->foreground;
}

View File

@ -112,8 +112,8 @@ bool CCSpaceCover(CCSpace *cache, EsFileOffset insertStart, EsFileOffset insertE
// TODO Test this thoroughly.
// TODO Break up really large sections. (maybe into GBs?)
insertStart = RoundDown(insertStart, K_PAGE_SIZE);
insertEnd = RoundUp(insertEnd, K_PAGE_SIZE);
insertStart = RoundDown(insertStart, (EsFileOffset) K_PAGE_SIZE);
insertEnd = RoundUp(insertEnd, (EsFileOffset) K_PAGE_SIZE);
EsFileOffset position = insertStart, lastEnd = 0;
CCCachedSection *result = nullptr;
@ -209,8 +209,8 @@ bool CCSpaceCover(CCSpace *cache, EsFileOffset insertStart, EsFileOffset insertE
void CCSpaceUncover(CCSpace *cache, EsFileOffset removeStart, EsFileOffset removeEnd) {
KMutexAssertLocked(&cache->cachedSectionsMutex);
removeStart = RoundDown(removeStart, K_PAGE_SIZE);
removeEnd = RoundUp(removeEnd, K_PAGE_SIZE);
removeStart = RoundDown(removeStart, (EsFileOffset) K_PAGE_SIZE);
removeEnd = RoundUp(removeEnd, (EsFileOffset) K_PAGE_SIZE);
CCCachedSection *first = CCFindCachedSectionContaining(cache, removeStart);
@ -678,8 +678,8 @@ EsError CCSpaceAccess(CCSpace *cache, K_USER_BUFFER void *_buffer, EsFileOffset
EsFileOffset start = sectionOffset < offset ? offset - sectionOffset : 0;
EsFileOffset end = sectionOffset + CC_ACTIVE_SECTION_SIZE > offset + count ? offset + count - sectionOffset : CC_ACTIVE_SECTION_SIZE;
EsFileOffset pageStart = RoundDown(start, K_PAGE_SIZE) / K_PAGE_SIZE;
EsFileOffset pageEnd = RoundUp(end, K_PAGE_SIZE) / K_PAGE_SIZE;
EsFileOffset pageStart = RoundDown(start, (EsFileOffset) K_PAGE_SIZE) / K_PAGE_SIZE;
EsFileOffset pageEnd = RoundUp(end, (EsFileOffset) K_PAGE_SIZE) / K_PAGE_SIZE;
// Find the section in the active sections list.

View File

@ -297,6 +297,7 @@ uint8_t *AllocateForModule(size_t size) {
}
EsError KLoadELFModule(KModule *module) {
#ifdef ARCH_X86_64
KMutexAcquire(&modulesMutex);
EsDefer(KMutexRelease(&modulesMutex));
@ -403,6 +404,10 @@ EsError KLoadELFModule(KModule *module) {
}
return ES_SUCCESS;
#else
(void) module;
return ES_ERROR_UNSUPPORTED_FEATURE;
#endif
}
#endif

View File

@ -329,7 +329,7 @@ void _FSFileResize(FSFile *file, EsFileOffset newSize) {
EsError FSFileResize(KNode *node, EsFileOffset newSize) {
if (fs.shutdown) KernelPanic("FSFileResize - Attempting to resize a file after FSShutdown called.\n");
if (newSize > 1UL << 60) {
if (newSize > (EsFileOffset) 1 << 60) {
return ES_ERROR_INSUFFICIENT_RESOURCES;
}

View File

@ -68,8 +68,10 @@
// Core definitions.
// ---------------------------------------------------------------------------------------------------------------
#ifdef ARCH_X86_64
#if defined(ARCH_X86_64)
#include "x86_64.cpp"
#elif defined(ARCH_X86_32)
#include "x86_32.cpp"
#endif
struct AsyncTask {

View File

@ -1453,7 +1453,7 @@ void MMSharedDestroyRegion(MMSharedRegion *region) {
EsHeapFree(region, 0, K_CORE);
}
void *MMStandardAllocate(MMSpace *space, size_t bytes, unsigned flags, void *baseAddress, bool commitAll) {
void *MMStandardAllocate(MMSpace *space, size_t bytes, uint32_t flags, void *baseAddress, bool commitAll) {
if (!space) space = kernelMMSpace;
KMutexAcquire(&space->reserveMutex);
@ -1533,8 +1533,8 @@ bool MMFree(MMSpace *space, void *address, size_t expectedSize, bool userOnly) {
unmapPages = false;
FSFile *node = region->data.file.node;
EsFileOffset removeStart = RoundDown(region->data.file.offset, K_PAGE_SIZE);
EsFileOffset removeEnd = RoundUp(removeStart + (region->pageCount << K_PAGE_BITS) - region->data.file.zeroedBytes, K_PAGE_SIZE);
EsFileOffset removeStart = RoundDown(region->data.file.offset, (EsFileOffset) K_PAGE_SIZE);
EsFileOffset removeEnd = RoundUp(removeStart + (region->pageCount << K_PAGE_BITS) - region->data.file.zeroedBytes, (EsFileOffset) K_PAGE_SIZE);
nodeToFree = node;
fileHandleFlags = region->data.file.fileHandleFlags;

View File

@ -14,8 +14,8 @@ struct Handle {
struct ConstantBuffer {
volatile size_t handles;
size_t bytes : 48,
isPaged : 1;
size_t bytes;
bool isPaged;
// Data follows.
};

View File

@ -886,7 +886,11 @@ SYSCALL_IMPLEMENT(ES_SYSCALL_EVENT_RESET) {
SYSCALL_IMPLEMENT(ES_SYSCALL_SLEEP) {
KTimer timer = {};
#ifdef ARCH_64
KTimerSet(&timer, (argument0 << 32) | argument1);
#else
KTimerSet(&timer, argument1);
#endif
currentThread->terminatableState = THREAD_USER_BLOCK_REQUEST;
KEventWait(&timer.event, ES_WAIT_NO_TIMEOUT);
currentThread->terminatableState = THREAD_IN_SYSCALL;

View File

@ -314,7 +314,7 @@ void WindowManager::EndEyedrop(bool cancelled) {
Redraw(ES_POINT(0, 0), graphics.width, graphics.height);
}
void WindowManager::PressKey(unsigned scancode) {
void WindowManager::PressKey(uint32_t scancode) {
if (!initialised) {
return;
}
@ -541,7 +541,7 @@ bool WindowManager::ActivateWindow(Window *window) {
return result;
}
void WindowManager::ClickCursor(unsigned buttons) {
void WindowManager::ClickCursor(uint32_t buttons) {
KMutexAcquire(&mutex);
unsigned delta = lastButtons ^ buttons;
@ -1299,7 +1299,7 @@ void KMouseUpdate(const KMouseUpdateData *data) {
windowManager.ClickCursor(data->buttons);
}
void KKeyPress(unsigned scancode) {
void KKeyPress(uint32_t scancode) {
windowManager.PressKey(scancode);
}

View File

@ -775,14 +775,14 @@ void StringFormatCallback(int character, void *_fsi) {
size_t bytes = utf8_encode(character, data);
if (fsi->buffer) {
if (fsi->bytesRemaining < bytes && fsi->bytesRemaining != ES_STRING_FORMAT_ENOUGH_SPACE) {
if (fsi->bytesRemaining < bytes && fsi->bytesRemaining != (size_t) ES_STRING_FORMAT_ENOUGH_SPACE) {
fsi->full = true;
return;
} else {
utf8_encode(character, fsi->buffer);
fsi->buffer += bytes;
fsi->bytesWritten += bytes;
if (fsi->bytesRemaining != ES_STRING_FORMAT_ENOUGH_SPACE) fsi->bytesRemaining -= bytes;
if (fsi->bytesRemaining != (size_t) ES_STRING_FORMAT_ENOUGH_SPACE) fsi->bytesRemaining -= bytes;
}
}
}

View File

@ -1110,7 +1110,7 @@ struct BigFloat {
uint8_t carry = subtract ? 1 : 0;
#if 0
#ifdef ARCH_32
for (intptr_t i = MANTISSA_BITS - 1; i >= 0; i--) {
uint8_t xi = GET_MANTISSA_BIT(x, i);
uint8_t yi = GET_MANTISSA_BIT(y, i);
@ -1134,7 +1134,7 @@ struct BigFloat {
uint8_t carry = 1;
#if 0
#ifdef ARCH_32
for (intptr_t i = MANTISSA_BITS - 1; i >= 0; i--) {
uint8_t xi = GET_MANTISSA_BIT(x, i);
uint8_t sum = xi + carry;

View File

@ -990,70 +990,70 @@ struct BreakState {
// --------------------------------- Validation.
const uint64_t utf8ValidationStateTable[] = {
0xDB0AA4DB6DB6D80, 0xDB0AA4DB6DB6D80, 0xDB0AA4DB6DB6D80, 0xDB0AA4DB6DB6D80,
0xDB0AA4DB6DB6D80, 0xDB0AA4DB6DB6D80, 0xDB0AA4DB6DB6D80, 0xDB0AA4DB6DB6D80,
0xDB0AA4DB6DB6D80, 0xDB0AA4DB6DB6D80, 0xDB0AA4DB6DB6D80, 0xDB0AA4DB6DB6D80,
0xDB0AA4DB6DB6D80, 0xDB0AA4DB6DB6D80, 0xDB0AA4DB6DB6D80, 0xDB0AA4DB6DB6D80,
0xDB0AA4DB6DB6D80, 0xDB0AA4DB6DB6D80, 0xDB0AA4DB6DB6D80, 0xDB0AA4DB6DB6D80,
0xDB0AA4DB6DB6D80, 0xDB0AA4DB6DB6D80, 0xDB0AA4DB6DB6D80, 0xDB0AA4DB6DB6D80,
0xDB0AA4DB6DB6D80, 0xDB0AA4DB6DB6D80, 0xDB0AA4DB6DB6D80, 0xDB0AA4DB6DB6D80,
0xDB0AA4DB6DB6D80, 0xDB0AA4DB6DB6D80, 0xDB0AA4DB6DB6D80, 0xDB0AA4DB6DB6D80,
0xDB0AA4DB6DB6D80, 0xDB0AA4DB6DB6D80, 0xDB0AA4DB6DB6D80, 0xDB0AA4DB6DB6D80,
0xDB0AA4DB6DB6D80, 0xDB0AA4DB6DB6D80, 0xDB0AA4DB6DB6D80, 0xDB0AA4DB6DB6D80,
0xDB0AA4DB6DB6D80, 0xDB0AA4DB6DB6D80, 0xDB0AA4DB6DB6D80, 0xDB0AA4DB6DB6D80,
0xDB0AA4DB6DB6D80, 0xDB0AA4DB6DB6D80, 0xDB0AA4DB6DB6D80, 0xDB0AA4DB6DB6D80,
0xDB0AA4DB6DB6D80, 0xDB0AA4DB6DB6D80, 0xDB0AA4DB6DB6D80, 0xDB0AA4DB6DB6D80,
0xDB0AA4DB6DB6D80, 0xDB0AA4DB6DB6D80, 0xDB0AA4DB6DB6D80, 0xDB0AA4DB6DB6D80,
0xDB0AA4DB6DB6D80, 0xDB0AA4DB6DB6D80, 0xDB0AA4DB6DB6D80, 0xDB0AA4DB6DB6D80,
0xDB0AA4DB6DB6D80, 0xDB0AA4DB6DB6D80, 0xDB0AA4DB6DB6D80, 0xDB0AA4DB6DB6D80,
0xDB0AA4DB6DB6D80, 0xDB0AA4DB6DB6D80, 0xDB0AA4DB6DB6D80, 0xDB0AA4DB6DB6D80,
0xDB0AA4DB6DB6D80, 0xDB0AA4DB6DB6D80, 0xDB0AA4DB6DB6D80, 0xDB0AA4DB6DB6D80,
0xDB0AA4DB6DB6D80, 0xDB0AA4DB6DB6D80, 0xDB0AA4DB6DB6D80, 0xDB0AA4DB6DB6D80,
0xDB0AA4DB6DB6D80, 0xDB0AA4DB6DB6D80, 0xDB0AA4DB6DB6D80, 0xDB0AA4DB6DB6D80,
0xDB0AA4DB6DB6D80, 0xDB0AA4DB6DB6D80, 0xDB0AA4DB6DB6D80, 0xDB0AA4DB6DB6D80,
0xDB0AA4DB6DB6D80, 0xDB0AA4DB6DB6D80, 0xDB0AA4DB6DB6D80, 0xDB0AA4DB6DB6D80,
0xDB0AA4DB6DB6D80, 0xDB0AA4DB6DB6D80, 0xDB0AA4DB6DB6D80, 0xDB0AA4DB6DB6D80,
0xDB0AA4DB6DB6D80, 0xDB0AA4DB6DB6D80, 0xDB0AA4DB6DB6D80, 0xDB0AA4DB6DB6D80,
0xDB0AA4DB6DB6D80, 0xDB0AA4DB6DB6D80, 0xDB0AA4DB6DB6D80, 0xDB0AA4DB6DB6D80,
0xDB0AA4DB6DB6D80, 0xDB0AA4DB6DB6D80, 0xDB0AA4DB6DB6D80, 0xDB0AA4DB6DB6D80,
0xDB0AA4DB6DB6D80, 0xDB0AA4DB6DB6D80, 0xDB0AA4DB6DB6D80, 0xDB0AA4DB6DB6D80,
0xDB0AA4DB6DB6D80, 0xDB0AA4DB6DB6D80, 0xDB0AA4DB6DB6D80, 0xDB0AA4DB6DB6D80,
0xDB0AA4DB6DB6D80, 0xDB0AA4DB6DB6D80, 0xDB0AA4DB6DB6D80, 0xDB0AA4DB6DB6D80,
0xDB0AA4DB6DB6D80, 0xDB0AA4DB6DB6D80, 0xDB0AA4DB6DB6D80, 0xDB0AA4DB6DB6D80,
0xDB0AA4DB6DB6D80, 0xDB0AA4DB6DB6D80, 0xDB0AA4DB6DB6D80, 0xDB0AA4DB6DB6D80,
0xDB0AA4DB6DB6D80, 0xDB0AA4DB6DB6D80, 0xDB0AA4DB6DB6D80, 0xDB0AA4DB6DB6D80,
0xDB0AA4636306036, 0xDB0AA4636306036, 0xDB0AA4306306036, 0xDB0AA4306306036,
0xDB0AA4306306036, 0xDB0AA4306306036, 0xDB0AA4306306036, 0xDB0AA4306306036,
0xDB0AA4306306036, 0xDB0AA4306306036, 0xDB0AA4306306036, 0xDB0AA4306306036,
0xDB0AA4306306036, 0xDB0AA4306306036, 0xDB0AA4306306036, 0xDB0AA4306306036,
0xDB0AA4306306036, 0xDB0AA4306306036, 0xDB0AA4306306036, 0xDB0AA4306306036,
0xDB0AA4306306036, 0xDB0AA4306306036, 0xDB0AA4306306036, 0xDB0AA4306306036,
0xDB0AA4306306036, 0xDB0AA4306306036, 0xDB0AA4306306036, 0xDB0AA4306306036,
0xDB0AA4306306036, 0xDB0AA4306306036, 0xDB0AA4306306036, 0xDB0AA4306306036,
0xDB0AA4306306036, 0xDB0AA4306306036, 0xDB0AA4306306036, 0xDB0AA4306306036,
0xDB0AA4306306036, 0xDB0AA4306306036, 0xDB0AA4306306036, 0xDB0AA4306306036,
0xDB0AA4306306036, 0xDB0AA4306306036, 0xDB0AA4306306036, 0xDB0AA4306306036,
0xDB0AA4306306036, 0xDB0AA4306306036, 0xDB0AA4306306036, 0xDB0AA4306306036,
0xDB0AA4306306036, 0xDB0AA4306306036, 0xDB0AA4306306036, 0xDB0AA4306306036,
0xDB0AA4306306036, 0xDB0AA4306306036, 0xDB0AA4306306036, 0xDB0AA4306306036,
0xDB0AA4306306036, 0xDB0AA4306306036, 0xDB0AA4306306036, 0xDB0AA4306306036,
0xDB0AA4306306036, 0xDB0AA4306306036, 0xDB0AA4306306036, 0xDB0AA4306306036,
0xDB0AA4DB6DB6DB6, 0xDB0AA4DB6DB6DB6, 0xDB0AA4DB6DB6D86, 0xDB0AA4DB6DB6D86,
0xDB0AA4DB6DB6D86, 0xDB0AA4DB6DB6D86, 0xDB0AA4DB6DB6D86, 0xDB0AA4DB6DB6D86,
0xDB0AA4DB6DB6D86, 0xDB0AA4DB6DB6D86, 0xDB0AA4DB6DB6D86, 0xDB0AA4DB6DB6D86,
0xDB0AA4DB6DB6D86, 0xDB0AA4DB6DB6D86, 0xDB0AA4DB6DB6D86, 0xDB0AA4DB6DB6D86,
0xDB0AA4DB6DB6D86, 0xDB0AA4DB6DB6D86, 0xDB0AA4DB6DB6D86, 0xDB0AA4DB6DB6D86,
0xDB0AA4DB6DB6D86, 0xDB0AA4DB6DB6D86, 0xDB0AA4DB6DB6D86, 0xDB0AA4DB6DB6D86,
0xDB0AA4DB6DB6D86, 0xDB0AA4DB6DB6D86, 0xDB0AA4DB6DB6D86, 0xDB0AA4DB6DB6D86,
0xDB0AA4DB6DB6D86, 0xDB0AA4DB6DB6D86, 0xDB0AA4DB6DB6D86, 0xDB0AA4DB6DB6D86,
0xDB0AA4DB6DB6D98, 0xDB0AA4DB6DB6D8C, 0xDB0AA4DB6DB6D8C, 0xDB0AA4DB6DB6D8C,
0xDB0AA4DB6DB6D8C, 0xDB0AA4DB6DB6D8C, 0xDB0AA4DB6DB6D8C, 0xDB0AA4DB6DB6D8C,
0xDB0AA4DB6DB6D8C, 0xDB0AA4DB6DB6D8C, 0xDB0AA4DB6DB6D8C, 0xDB0AA4DB6DB6D8C,
0xDB0AA4DB6DB6D8C, 0xDB0AA4DB6DB6D8C, 0xDB0AA4DB6DB6D8C, 0xDB0AA4DB6DB6D8C,
0xDB0AA4DB6DB6D9E, 0xDB0AA4DB6DB6D92, 0xDB0AA4DB6DB6D92, 0xDB0AA4DB6DB6D92,
0xDB0AA4DB6DB6D92, 0xDB0AA4DB6DB6D92, 0xDB0AA4DB6DB6D92, 0xDB0AA4DB6DB6D92,
0xDB0AA4DB6DB6DB6, 0xDB0AA4DB6DB6DB6, 0xDB0AA4DB6DB6DB6, 0xDB0AA4DB6DB6DB6,
0xDB0AA4DB6DB6DB6, 0xDB0AA4DB6DB6DB6, 0xDB0AA4DB6DB6DB6, 0xDB0AA4DB6DB6DB6,
0xDB0AA4DB6DB6D80ULL, 0xDB0AA4DB6DB6D80ULL, 0xDB0AA4DB6DB6D80ULL, 0xDB0AA4DB6DB6D80ULL,
0xDB0AA4DB6DB6D80ULL, 0xDB0AA4DB6DB6D80ULL, 0xDB0AA4DB6DB6D80ULL, 0xDB0AA4DB6DB6D80ULL,
0xDB0AA4DB6DB6D80ULL, 0xDB0AA4DB6DB6D80ULL, 0xDB0AA4DB6DB6D80ULL, 0xDB0AA4DB6DB6D80ULL,
0xDB0AA4DB6DB6D80ULL, 0xDB0AA4DB6DB6D80ULL, 0xDB0AA4DB6DB6D80ULL, 0xDB0AA4DB6DB6D80ULL,
0xDB0AA4DB6DB6D80ULL, 0xDB0AA4DB6DB6D80ULL, 0xDB0AA4DB6DB6D80ULL, 0xDB0AA4DB6DB6D80ULL,
0xDB0AA4DB6DB6D80ULL, 0xDB0AA4DB6DB6D80ULL, 0xDB0AA4DB6DB6D80ULL, 0xDB0AA4DB6DB6D80ULL,
0xDB0AA4DB6DB6D80ULL, 0xDB0AA4DB6DB6D80ULL, 0xDB0AA4DB6DB6D80ULL, 0xDB0AA4DB6DB6D80ULL,
0xDB0AA4DB6DB6D80ULL, 0xDB0AA4DB6DB6D80ULL, 0xDB0AA4DB6DB6D80ULL, 0xDB0AA4DB6DB6D80ULL,
0xDB0AA4DB6DB6D80ULL, 0xDB0AA4DB6DB6D80ULL, 0xDB0AA4DB6DB6D80ULL, 0xDB0AA4DB6DB6D80ULL,
0xDB0AA4DB6DB6D80ULL, 0xDB0AA4DB6DB6D80ULL, 0xDB0AA4DB6DB6D80ULL, 0xDB0AA4DB6DB6D80ULL,
0xDB0AA4DB6DB6D80ULL, 0xDB0AA4DB6DB6D80ULL, 0xDB0AA4DB6DB6D80ULL, 0xDB0AA4DB6DB6D80ULL,
0xDB0AA4DB6DB6D80ULL, 0xDB0AA4DB6DB6D80ULL, 0xDB0AA4DB6DB6D80ULL, 0xDB0AA4DB6DB6D80ULL,
0xDB0AA4DB6DB6D80ULL, 0xDB0AA4DB6DB6D80ULL, 0xDB0AA4DB6DB6D80ULL, 0xDB0AA4DB6DB6D80ULL,
0xDB0AA4DB6DB6D80ULL, 0xDB0AA4DB6DB6D80ULL, 0xDB0AA4DB6DB6D80ULL, 0xDB0AA4DB6DB6D80ULL,
0xDB0AA4DB6DB6D80ULL, 0xDB0AA4DB6DB6D80ULL, 0xDB0AA4DB6DB6D80ULL, 0xDB0AA4DB6DB6D80ULL,
0xDB0AA4DB6DB6D80ULL, 0xDB0AA4DB6DB6D80ULL, 0xDB0AA4DB6DB6D80ULL, 0xDB0AA4DB6DB6D80ULL,
0xDB0AA4DB6DB6D80ULL, 0xDB0AA4DB6DB6D80ULL, 0xDB0AA4DB6DB6D80ULL, 0xDB0AA4DB6DB6D80ULL,
0xDB0AA4DB6DB6D80ULL, 0xDB0AA4DB6DB6D80ULL, 0xDB0AA4DB6DB6D80ULL, 0xDB0AA4DB6DB6D80ULL,
0xDB0AA4DB6DB6D80ULL, 0xDB0AA4DB6DB6D80ULL, 0xDB0AA4DB6DB6D80ULL, 0xDB0AA4DB6DB6D80ULL,
0xDB0AA4DB6DB6D80ULL, 0xDB0AA4DB6DB6D80ULL, 0xDB0AA4DB6DB6D80ULL, 0xDB0AA4DB6DB6D80ULL,
0xDB0AA4DB6DB6D80ULL, 0xDB0AA4DB6DB6D80ULL, 0xDB0AA4DB6DB6D80ULL, 0xDB0AA4DB6DB6D80ULL,
0xDB0AA4DB6DB6D80ULL, 0xDB0AA4DB6DB6D80ULL, 0xDB0AA4DB6DB6D80ULL, 0xDB0AA4DB6DB6D80ULL,
0xDB0AA4DB6DB6D80ULL, 0xDB0AA4DB6DB6D80ULL, 0xDB0AA4DB6DB6D80ULL, 0xDB0AA4DB6DB6D80ULL,
0xDB0AA4DB6DB6D80ULL, 0xDB0AA4DB6DB6D80ULL, 0xDB0AA4DB6DB6D80ULL, 0xDB0AA4DB6DB6D80ULL,
0xDB0AA4DB6DB6D80ULL, 0xDB0AA4DB6DB6D80ULL, 0xDB0AA4DB6DB6D80ULL, 0xDB0AA4DB6DB6D80ULL,
0xDB0AA4DB6DB6D80ULL, 0xDB0AA4DB6DB6D80ULL, 0xDB0AA4DB6DB6D80ULL, 0xDB0AA4DB6DB6D80ULL,
0xDB0AA4DB6DB6D80ULL, 0xDB0AA4DB6DB6D80ULL, 0xDB0AA4DB6DB6D80ULL, 0xDB0AA4DB6DB6D80ULL,
0xDB0AA4DB6DB6D80ULL, 0xDB0AA4DB6DB6D80ULL, 0xDB0AA4DB6DB6D80ULL, 0xDB0AA4DB6DB6D80ULL,
0xDB0AA4DB6DB6D80ULL, 0xDB0AA4DB6DB6D80ULL, 0xDB0AA4DB6DB6D80ULL, 0xDB0AA4DB6DB6D80ULL,
0xDB0AA4DB6DB6D80ULL, 0xDB0AA4DB6DB6D80ULL, 0xDB0AA4DB6DB6D80ULL, 0xDB0AA4DB6DB6D80ULL,
0xDB0AA4DB6DB6D80ULL, 0xDB0AA4DB6DB6D80ULL, 0xDB0AA4DB6DB6D80ULL, 0xDB0AA4DB6DB6D80ULL,
0xDB0AA4DB6DB6D80ULL, 0xDB0AA4DB6DB6D80ULL, 0xDB0AA4DB6DB6D80ULL, 0xDB0AA4DB6DB6D80ULL,
0xDB0AA4636306036ULL, 0xDB0AA4636306036ULL, 0xDB0AA4306306036ULL, 0xDB0AA4306306036ULL,
0xDB0AA4306306036ULL, 0xDB0AA4306306036ULL, 0xDB0AA4306306036ULL, 0xDB0AA4306306036ULL,
0xDB0AA4306306036ULL, 0xDB0AA4306306036ULL, 0xDB0AA4306306036ULL, 0xDB0AA4306306036ULL,
0xDB0AA4306306036ULL, 0xDB0AA4306306036ULL, 0xDB0AA4306306036ULL, 0xDB0AA4306306036ULL,
0xDB0AA4306306036ULL, 0xDB0AA4306306036ULL, 0xDB0AA4306306036ULL, 0xDB0AA4306306036ULL,
0xDB0AA4306306036ULL, 0xDB0AA4306306036ULL, 0xDB0AA4306306036ULL, 0xDB0AA4306306036ULL,
0xDB0AA4306306036ULL, 0xDB0AA4306306036ULL, 0xDB0AA4306306036ULL, 0xDB0AA4306306036ULL,
0xDB0AA4306306036ULL, 0xDB0AA4306306036ULL, 0xDB0AA4306306036ULL, 0xDB0AA4306306036ULL,
0xDB0AA4306306036ULL, 0xDB0AA4306306036ULL, 0xDB0AA4306306036ULL, 0xDB0AA4306306036ULL,
0xDB0AA4306306036ULL, 0xDB0AA4306306036ULL, 0xDB0AA4306306036ULL, 0xDB0AA4306306036ULL,
0xDB0AA4306306036ULL, 0xDB0AA4306306036ULL, 0xDB0AA4306306036ULL, 0xDB0AA4306306036ULL,
0xDB0AA4306306036ULL, 0xDB0AA4306306036ULL, 0xDB0AA4306306036ULL, 0xDB0AA4306306036ULL,
0xDB0AA4306306036ULL, 0xDB0AA4306306036ULL, 0xDB0AA4306306036ULL, 0xDB0AA4306306036ULL,
0xDB0AA4306306036ULL, 0xDB0AA4306306036ULL, 0xDB0AA4306306036ULL, 0xDB0AA4306306036ULL,
0xDB0AA4306306036ULL, 0xDB0AA4306306036ULL, 0xDB0AA4306306036ULL, 0xDB0AA4306306036ULL,
0xDB0AA4306306036ULL, 0xDB0AA4306306036ULL, 0xDB0AA4306306036ULL, 0xDB0AA4306306036ULL,
0xDB0AA4DB6DB6DB6ULL, 0xDB0AA4DB6DB6DB6ULL, 0xDB0AA4DB6DB6D86ULL, 0xDB0AA4DB6DB6D86ULL,
0xDB0AA4DB6DB6D86ULL, 0xDB0AA4DB6DB6D86ULL, 0xDB0AA4DB6DB6D86ULL, 0xDB0AA4DB6DB6D86ULL,
0xDB0AA4DB6DB6D86ULL, 0xDB0AA4DB6DB6D86ULL, 0xDB0AA4DB6DB6D86ULL, 0xDB0AA4DB6DB6D86ULL,
0xDB0AA4DB6DB6D86ULL, 0xDB0AA4DB6DB6D86ULL, 0xDB0AA4DB6DB6D86ULL, 0xDB0AA4DB6DB6D86ULL,
0xDB0AA4DB6DB6D86ULL, 0xDB0AA4DB6DB6D86ULL, 0xDB0AA4DB6DB6D86ULL, 0xDB0AA4DB6DB6D86ULL,
0xDB0AA4DB6DB6D86ULL, 0xDB0AA4DB6DB6D86ULL, 0xDB0AA4DB6DB6D86ULL, 0xDB0AA4DB6DB6D86ULL,
0xDB0AA4DB6DB6D86ULL, 0xDB0AA4DB6DB6D86ULL, 0xDB0AA4DB6DB6D86ULL, 0xDB0AA4DB6DB6D86ULL,
0xDB0AA4DB6DB6D86ULL, 0xDB0AA4DB6DB6D86ULL, 0xDB0AA4DB6DB6D86ULL, 0xDB0AA4DB6DB6D86ULL,
0xDB0AA4DB6DB6D98ULL, 0xDB0AA4DB6DB6D8CULL, 0xDB0AA4DB6DB6D8CULL, 0xDB0AA4DB6DB6D8CULL,
0xDB0AA4DB6DB6D8CULL, 0xDB0AA4DB6DB6D8CULL, 0xDB0AA4DB6DB6D8CULL, 0xDB0AA4DB6DB6D8CULL,
0xDB0AA4DB6DB6D8CULL, 0xDB0AA4DB6DB6D8CULL, 0xDB0AA4DB6DB6D8CULL, 0xDB0AA4DB6DB6D8CULL,
0xDB0AA4DB6DB6D8CULL, 0xDB0AA4DB6DB6D8CULL, 0xDB0AA4DB6DB6D8CULL, 0xDB0AA4DB6DB6D8CULL,
0xDB0AA4DB6DB6D9EULL, 0xDB0AA4DB6DB6D92ULL, 0xDB0AA4DB6DB6D92ULL, 0xDB0AA4DB6DB6D92ULL,
0xDB0AA4DB6DB6D92ULL, 0xDB0AA4DB6DB6D92ULL, 0xDB0AA4DB6DB6D92ULL, 0xDB0AA4DB6DB6D92ULL,
0xDB0AA4DB6DB6DB6ULL, 0xDB0AA4DB6DB6DB6ULL, 0xDB0AA4DB6DB6DB6ULL, 0xDB0AA4DB6DB6DB6ULL,
0xDB0AA4DB6DB6DB6ULL, 0xDB0AA4DB6DB6DB6ULL, 0xDB0AA4DB6DB6DB6ULL, 0xDB0AA4DB6DB6DB6ULL,
};
#if 0

View File

@ -612,13 +612,21 @@ void BuildCrossCompiler() {
{
char *originalPath = getenv("PATH");
if (strlen(originalPath) > 32768) {
printf("PATH too long\n");
goto fail;
}
strcpy(path, compilerPath);
strcat(path, ":");
strcat(path, originalPath);
if (strstr(path, "::")) {
printf("PATH contains double colon\n");
goto fail;
}
setenv("PATH", path, 1);
}