1) Fix for bug 3413 - [GCCE] Namespace 'abi' not declared in e32test build. GCC_SURGE
authorMike Kinghan <mikek@symbian.org>
Tue, 27 Jul 2010 07:53:26 +0100
branchGCC_SURGE
changeset 236 7dc50dc94301
parent 235 cbd07013118c
child 237 2604c9de91e0
1) Fix for bug 3413 - [GCCE] Namespace 'abi' not declared in e32test build. 2) Revert fix for bug 3389; fix for 3431 replaces it. 3) Correct typo in fix for bug 3391.
kernel/eka/compsupp/gcce/gcce.h
kernel/eka/compsupp/rvct/drtaeabi.cpp
kernel/eka/compsupp/symaehabi/cxxabi.h
--- a/kernel/eka/compsupp/gcce/gcce.h	Mon Jul 26 18:22:55 2010 +0100
+++ b/kernel/eka/compsupp/gcce/gcce.h	Tue Jul 27 07:53:26 2010 +0100
@@ -165,6 +165,9 @@
 #endif
 
 #ifdef __cplusplus
+
+// To compile rtti support
+#define __EDG_RUNTIME_USES_NAMESPACES
 // Support for throwing exceptions through embedded assembler
 // Should only be needed user side
 
--- a/kernel/eka/compsupp/rvct/drtaeabi.cpp	Mon Jul 26 18:22:55 2010 +0100
+++ b/kernel/eka/compsupp/rvct/drtaeabi.cpp	Tue Jul 27 07:53:26 2010 +0100
@@ -71,7 +71,7 @@
 	asm(".weak ZTVN10__cxxabiv123__fundamental_type_infoE");
 	asm(".extern _ZTSv");
 	asm(".global $Sub$$_ZTIv");
-	asm("$Sub$$_ZTIv");
+	asm("$Sub$$_ZTIv:");
 	asm(".word _ZTVN10__cxxabiv123__fundamental_type_infoE");
 	asm(".word _ZTSv");
 	}
--- a/kernel/eka/compsupp/symaehabi/cxxabi.h	Mon Jul 26 18:22:55 2010 +0100
+++ b/kernel/eka/compsupp/symaehabi/cxxabi.h	Tue Jul 27 07:53:26 2010 +0100
@@ -78,36 +78,37 @@
 
 #ifdef __EDG_RUNTIME_USES_NAMESPACES
 namespace __cxxabiv1 {
+  using namespace std;
 #endif /* ifdef __EDG_RUNTIME_USES_NAMESPACES */
 
   /* type_info implementation classes */
 
 #pragma define_type_info
-  class __fundamental_type_info : public std::type_info {
+  class __fundamental_type_info : public type_info {
   public:
     virtual ~__fundamental_type_info();
   };
 
 #pragma define_type_info
-  class __array_type_info : public std::type_info {
+  class __array_type_info : public type_info {
   public:
     virtual ~__array_type_info();
   };
 
 #pragma define_type_info
-  class __function_type_info : public std::type_info {
+  class __function_type_info : public type_info {
   public:
     virtual ~__function_type_info();
   };
 
 #pragma define_type_info
-  class __enum_type_info : public std::type_info {
+  class __enum_type_info : public type_info {
   public:
     virtual ~__enum_type_info();
   };
 
 #pragma define_type_info
-  class __class_type_info : public std::type_info {
+  class __class_type_info : public type_info {
   public:
     virtual ~__class_type_info();
   };
@@ -145,7 +146,7 @@
   };
 
 #pragma define_type_info
-  class __pbase_type_info : public std::type_info {
+  class __pbase_type_info : public type_info {
   public:
     virtual ~__pbase_type_info();
     unsigned int __flags;