# HG changeset patch # User arunabha # Date 1258657845 0 # Node ID 9a3ffdc955cdea856ee4dd741ea4b2876be90f18 # Parent 2fa1cc9bce0bf50d311b3b6b5196016ec43f056e Bug 341 - [GCCE] Enabling support for gcce in cia files Bug 340 - [GCCE] improper use of __asm diff -r 2fa1cc9bce0b -r 9a3ffdc955cd kernel/eka/kernel/arm/d_entry.cpp --- a/kernel/eka/kernel/arm/d_entry.cpp Thu Nov 12 16:07:31 2009 +0000 +++ b/kernel/eka/kernel/arm/d_entry.cpp Thu Nov 19 19:10:45 2009 +0000 @@ -49,11 +49,11 @@ return KernelModuleEntry(aReason); } -#elif defined(__ARMCC__) +#elif defined(__EABI__) void __DLL_Export_Table__(void); void __cpp_initialize__aeabi_(void); -__weak void run_static_dtors(void); +__WEAK__ void run_static_dtors(void); GLDEF_C TInt _E32Dll_Body(TInt aReason) // diff -r 2fa1cc9bce0b -r 9a3ffdc955cd kernel/eka/kernel/arm/k_entry.cia --- a/kernel/eka/kernel/arm/k_entry.cia Thu Nov 12 16:07:31 2009 +0000 +++ b/kernel/eka/kernel/arm/k_entry.cia Thu Nov 19 19:10:45 2009 +0000 @@ -71,7 +71,7 @@ asm("__CtorList: "); asm(".word __CTOR_LIST__ "); } -#elif defined(__ARMCC__) +#elif defined(__EABI__) void __DLL_Export_Table__(void); void __cpp_initialize__aeabi_(); @@ -80,7 +80,7 @@ void __record_needed_destruction (void * d){} // 2.1 calls __aeabi_atexit passing __dso_handle. This can be a dummy (i.e. just a label) -__asm void __dso_handle(void) {} +__NAKED__ void __dso_handle(void) {} void __aeabi_atexit(void *object, void (*dtor)(void *), void *handle){} void _E32Startup_Body(TLinAddr aRomHeader, TLinAddr aSuperPage); diff -r 2fa1cc9bce0b -r 9a3ffdc955cd kernel/eka/kernel/arm/l_entry.cia --- a/kernel/eka/kernel/arm/l_entry.cia Thu Nov 12 16:07:31 2009 +0000 +++ b/kernel/eka/kernel/arm/l_entry.cia Thu Nov 19 19:10:45 2009 +0000 @@ -19,7 +19,7 @@ extern "C" { -#if defined(__ARMCC__) +#if defined(__EABI__) void __DLL_Export_Table__(void); #endif diff -r 2fa1cc9bce0b -r 9a3ffdc955cd kernel/eka/kernel/arm/v_entry.cpp --- a/kernel/eka/kernel/arm/v_entry.cpp Thu Nov 12 16:07:31 2009 +0000 +++ b/kernel/eka/kernel/arm/v_entry.cpp Thu Nov 19 19:10:45 2009 +0000 @@ -46,7 +46,7 @@ return KErrGeneral; } -#elif defined(__ARMCC__) +#elif defined(__EABI__) void __DLL_Export_Table__(void); void __cpp_initialize__aeabi_(); @@ -55,7 +55,7 @@ // needs destruction. But kernel side static objects will never need this so, define it as a nop void __record_needed_destruction (void * d){} // 2.1 calls __aeabi_atexit passing __dso_handle. This can just be a label since its not used -__asm void __dso_handle(void) {} +__NAKED__ void __dso_handle(void) {} void __aeabi_atexit(void *object, void (*dtor)(void *), void *handle){} GLDEF_C TInt _E32Dll_Body(TInt aReason) diff -r 2fa1cc9bce0b -r 9a3ffdc955cd kernel/eka/kernel/arm/x_entry.cpp --- a/kernel/eka/kernel/arm/x_entry.cpp Thu Nov 12 16:07:31 2009 +0000 +++ b/kernel/eka/kernel/arm/x_entry.cpp Thu Nov 19 19:10:45 2009 +0000 @@ -41,7 +41,7 @@ return KernelModuleEntry(aReason); } -#elif defined(__ARMCC__) +#elif defined(__EABI__) void __DLL_Export_Table__(void); void __cpp_initialize__aeabi_(); @@ -50,7 +50,7 @@ // needs destruction. But the kernel never will need this so, define it as a nop void __record_needed_destruction (void * d){} // 2.1 calls __aeabi_atexit passing __dso_handle. This can just be a label since its not used. -__asm void __dso_handle(void){} +__NAKED__ void __dso_handle(void){} void __aeabi_atexit(void *object, void (*dtor)(void *), void *handle){} GLDEF_C TInt _E32Dll_Body(TInt aReason)