Fixes for GCC-E 4.4.1 and updated docs.
--- a/documentation/getting_started.pod Fri Jul 09 17:31:42 2010 +0100
+++ b/documentation/getting_started.pod Mon Jul 12 15:23:23 2010 +0100
@@ -50,7 +50,7 @@
=item * C<gcce>
-Used for running fshell on either physical or simulated ARM hardware. Requires an installation of the GCC crosscompiler (for arm-none-symbianelf) - see here for more information: http://developer.symbian.org/wiki/index.php/The_GCCE_toolchain_initiative
+Used for running fshell on either physical or simulated ARM hardware. Requires an installation of the GCC crosscompiler (for arm-none-symbianelf) - see here for more information: http://developer.symbian.org/wiki/index.php/The_GCCE_toolchain_initiative.
=back
@@ -67,7 +67,22 @@
M:\fshell\build\sf\2>sbs -c armv5_urel
M:\fshell\build\sf\2>sbs -c winscw_udeb
-I<Note:> There are currently some concurrency issues in the build process that mean we don't recommend building multiple platforms in a single invocation of sbs. Ie do the above rather than C<sbs -c armv5_urel -c winscw_udeb>. We'll fix this as soon as we can!
+I<Note:> There are currently some concurrency issues in the build process that mean we don't recommend building multiple platforms in a single invocation of sbs. Ie do the above rather than C<sbs -c armv5_urel -c winscw_udeb>. In some cases you may even need to add the option C<-j 1> to sbs to have it run completely single-threaded. We'll fix this as soon as we can!
+
+=head2 Notes on building for GCC
+
+Fshell has only been tested to build with GCC-E 4.4.1, and the legacy 3.4.2.
+
+I<Note:> The SF website appears to be out of date with regards to how to build with GCC-E on Raptor - at the time of writing the way to build is as follows:
+
+ S:\fshell\build\sf\3>set SBS_GCCE432BIN=Nothing
+ S:\fshell\build\sf\3>set SBS_GCCE433BIN=Nothing
+ S:\fshell\build\sf\3>set SBS_GCCE441BIN=c:/apps/gcce/bin
+ S:\fshell\build\sf\3>sbs -c arm.v5.urel.gcce4_4_1
+
+You may also need to update the compiler support libraries - I had to unzip rt_3_1_bin.zip from \sf\os\kernelhwsrv\kernel\eka\compsupp from a different baseline. (Unzip over \epoc32\release\armv5). The working libraries I used had datestamp of 28/1/2009, the non-working ones were 1/1/2009.
+
+There's one final gotcha if you want to build with GCC-E - at the time of writing the makefiles produced by SBS for PIPS executables is incorrect, therefore you need to add C<#define FSHELL_NO_PIPS_SUPPORT> to \fshell\build\sf\platform_shared.mmh. Hopefully this is a temporary measure.
=head1 Installation
--- a/libraries/memoryaccess/MemoryAccess.mmp Fri Jul 09 17:31:42 2010 +0100
+++ b/libraries/memoryaccess/MemoryAccess.mmp Mon Jul 12 15:23:23 2010 +0100
@@ -36,7 +36,9 @@
source hwbreak.cia
#endif
-#ifdef EABI
+#if defined(EABI) && !defined(GCCE)
+macro SUPPORT_BREAKPOINT_STUFF
+// This doesn't build with GCC-E
source TrkNextInstructionAfterPC.cpp
#endif
--- a/libraries/memoryaccess/fdebuggerkernel.cpp Fri Jul 09 17:31:42 2010 +0100
+++ b/libraries/memoryaccess/fdebuggerkernel.cpp Mon Jul 12 15:23:23 2010 +0100
@@ -1496,7 +1496,7 @@
TInt DDebuggerEventHandler::MoveBreakpointToNextInstructionForThread(DThread* aThread, SBreakpoint* aBreakpoint)
{
-#ifdef __EABI__
+#ifdef SUPPORT_BREAKPOINT_STUFF
ASSERT_BREAKPOINT_LOCKED();
TUint32 notUsed = 0;
TBool aModeChange = EFalse;
--- a/libraries/spcre/inc/tregexarg.h Fri Jul 09 17:31:42 2010 +0100
+++ b/libraries/spcre/inc/tregexarg.h Mon Jul 12 15:23:23 2010 +0100
@@ -51,8 +51,8 @@
// Type-specific parsers
#define PCRE_MAKE_PARSER(type,name) \
- IMPORT_C TRegExArg(type* aType) : iArg(aType), iParser(name) { } \
- IMPORT_C TRegExArg(type* aType, Parser aParser) : iArg(aType), iParser(aParser) { }
+ inline TRegExArg(type* aType) : iArg(aType), iParser(name) { } \
+ inline TRegExArg(type* aType, Parser aParser) : iArg(aType), iParser(aParser) { }
PCRE_MAKE_PARSER(TChar, ParseTChar)
PCRE_MAKE_PARSER(TInt8, ParseTInt8)