cross-plat-dev-utils/patch-files/diffs/patch-0f5e3a7fb6af.patch
changeset 14 eb060913c963
parent 12 5e7562f67577
child 17 af35094e1bc4
child 18 de5b887c98f7
equal deleted inserted replaced
13:c327db0664bb 14:eb060913c963
     1 ## diff generated by diff_upstream.pl
     1 ## diff generated by diff_upstream.pl
     2 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/bintools/checklib/library/library.cpp /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/bintools/checklib/library/library.cpp
     2 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/bintools/checklib/library/library.cpp /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/bintools/checklib/library/library.cpp
     3 --- /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/bintools/checklib/library/library.cpp	2010-05-13 19:14:19.380581789 +0100
     3 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/bintools/checklib/library/library.cpp	2010-05-18 19:32:28.556848151 +0100
     4 +++ /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/bintools/checklib/library/library.cpp	2010-05-15 14:32:45.000000000 +0100
     4 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/bintools/checklib/library/library.cpp	2010-05-15 14:32:45.000000000 +0100
     5 @@ -25,6 +25,7 @@
     5 @@ -25,6 +25,7 @@
     6  #include <iostream>
     6  #include <iostream>
     7  #include <iomanip>
     7  #include <iomanip>
     8  #include <cstdlib>
     8  #include <cstdlib>
     9 +#include <cstring>
     9 +#include <cstring>
    17 -    file.read( const_cast<char*>(m_mem_p), size );
    17 -    file.read( const_cast<char*>(m_mem_p), size );
    18 +	file.read(m_mem_p, size );
    18 +	file.read(m_mem_p, size );
    19  
    19  
    20      file.close();
    20      file.close();
    21  
    21  
    22 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/bintools/checklib/library/library.h /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/bintools/checklib/library/library.h
    22 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/bintools/checklib/library/library.h /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/bintools/checklib/library/library.h
    23 --- /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/bintools/checklib/library/library.h	2010-05-13 19:14:19.380581789 +0100
    23 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/bintools/checklib/library/library.h	2010-05-18 19:32:28.556848151 +0100
    24 +++ /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/bintools/checklib/library/library.h	2010-05-15 14:32:45.000000000 +0100
    24 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/bintools/checklib/library/library.h	2010-05-15 14:32:45.000000000 +0100
    25 @@ -39,11 +39,12 @@
    25 @@ -39,11 +39,12 @@
    26      const char* _eat_obj_header(const char*, const char*, unsigned long*, const char* = 0) const;
    26      const char* _eat_obj_header(const char*, const char*, unsigned long*, const char* = 0) const;
    27  
    27  
    28  private:
    28  private:
    29 -    const char* m_mem_p;
    29 -    const char* m_mem_p;
    34  
    34  
    35 +
    35 +
    36      mutable std::vector<const char*> m_symbols;
    36      mutable std::vector<const char*> m_symbols;
    37      mutable std::vector< std::pair<const char*, const char*> > m_objects;
    37      mutable std::vector< std::pair<const char*, const char*> > m_objects;
    38  };
    38  };
    39 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/bintools/checklib/main.cpp /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/bintools/checklib/main.cpp
    39 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/bintools/checklib/main.cpp /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/bintools/checklib/main.cpp
    40 --- /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/bintools/checklib/main.cpp	2010-05-13 19:14:19.380581789 +0100
    40 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/bintools/checklib/main.cpp	2010-05-18 19:32:28.556848151 +0100
    41 +++ /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/bintools/checklib/main.cpp	2010-05-15 16:32:57.000000000 +0100
    41 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/bintools/checklib/main.cpp	2010-05-15 16:32:57.000000000 +0100
    42 @@ -22,6 +22,8 @@
    42 @@ -22,6 +22,8 @@
    43  #include <sstream>
    43  #include <sstream>
    44  #include <iostream>
    44  #include <iostream>
    45  #include <stdexcept>
    45  #include <stdexcept>
    46 +#include <cstring>
    46 +#include <cstring>
    47 +#include <cstdlib>
    47 +#include <cstdlib>
    48  
    48  
    49  
    49  
    50  const char SELF_NAME[] = "checklib";
    50  const char SELF_NAME[] = "checklib";
    51 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/bintools/checklib/object/coff_object.cpp /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/bintools/checklib/object/coff_object.cpp
    51 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/bintools/checklib/object/coff_object.cpp /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/bintools/checklib/object/coff_object.cpp
    52 --- /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/bintools/checklib/object/coff_object.cpp	2010-05-13 19:14:19.384582019 +0100
    52 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/bintools/checklib/object/coff_object.cpp	2010-05-18 19:32:28.560848450 +0100
    53 +++ /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/bintools/checklib/object/coff_object.cpp	2010-05-15 14:32:45.000000000 +0100
    53 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/bintools/checklib/object/coff_object.cpp	2010-05-15 14:32:45.000000000 +0100
    54 @@ -21,6 +21,7 @@
    54 @@ -21,6 +21,7 @@
    55  
    55  
    56  #include <algorithm>
    56  #include <algorithm>
    57  #include <functional>
    57  #include <functional>
    58 +#include <cstring>
    58 +#include <cstring>
    59  
    59  
    60  Coff_object::Coff_object(const char* p1, const char* p2)
    60  Coff_object::Coff_object(const char* p1, const char* p2)
    61  {
    61  {
    62 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/bintools/checklib/object/elf_object.cpp /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/bintools/checklib/object/elf_object.cpp
    62 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/bintools/checklib/object/elf_object.cpp /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/bintools/checklib/object/elf_object.cpp
    63 --- /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/bintools/checklib/object/elf_object.cpp	2010-05-13 19:14:19.384582019 +0100
    63 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/bintools/checklib/object/elf_object.cpp	2010-05-18 19:32:28.564848819 +0100
    64 +++ /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/bintools/checklib/object/elf_object.cpp	2010-05-15 14:32:45.000000000 +0100
    64 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/bintools/checklib/object/elf_object.cpp	2010-05-15 14:32:45.000000000 +0100
    65 @@ -22,6 +22,7 @@
    65 @@ -22,6 +22,7 @@
    66  
    66  
    67  #include <algorithm>
    67  #include <algorithm>
    68  #include <functional>
    68  #include <functional>
    69 +#include <cstring>
    69 +#include <cstring>
    70  
    70  
    71  Elf_object::Elf_object(const char* p1, const char* p2)
    71  Elf_object::Elf_object(const char* p1, const char* p2)
    72  {
    72  {
    73 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/bintools/rcomp/src/localise.cpp /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/bintools/rcomp/src/localise.cpp
    73 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/bintools/rcomp/src/localise.cpp /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/bintools/rcomp/src/localise.cpp
    74 --- /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/bintools/rcomp/src/localise.cpp	2010-05-13 19:14:19.424582009 +0100
    74 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/bintools/rcomp/src/localise.cpp	2010-05-18 19:32:28.596848698 +0100
    75 +++ /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/bintools/rcomp/src/localise.cpp	2010-05-15 14:32:45.000000000 +0100
    75 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/bintools/rcomp/src/localise.cpp	2010-05-15 14:32:45.000000000 +0100
    76 @@ -27,9 +27,11 @@
    76 @@ -27,9 +27,11 @@
    77  #pragma warning( disable : 4530 )	// function not inlined.
    77  #pragma warning( disable : 4530 )	// function not inlined.
    78  #endif
    78  #endif
    79  
    79  
    80 -#include <stdio.h>   
    80 -#include <stdio.h>   
   101 +#endif
   101 +#endif
   102 +
   102 +
   103  	ofstream outputFile(LocalisationOutputFileName);
   103  	ofstream outputFile(LocalisationOutputFileName);
   104  
   104  
   105  	String fileLine("");
   105  	String fileLine("");
   106 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/bintools/rcomp/src/rcomp.cpp /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/bintools/rcomp/src/rcomp.cpp
   106 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/bintools/rcomp/src/rcomp.cpp /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/bintools/rcomp/src/rcomp.cpp
   107 --- /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/bintools/rcomp/src/rcomp.cpp	2010-05-13 19:14:19.428582169 +0100
   107 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/bintools/rcomp/src/rcomp.cpp	2010-05-18 19:32:28.600848647 +0100
   108 +++ /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/bintools/rcomp/src/rcomp.cpp	2010-05-15 14:32:45.000000000 +0100
   108 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/bintools/rcomp/src/rcomp.cpp	2010-05-15 14:32:45.000000000 +0100
   109 @@ -90,8 +90,8 @@
   109 @@ -90,8 +90,8 @@
   110  #pragma warning( disable : 4244 ) // C4244: '=' : conversion from 'int' to 'short', possible loss of data
   110  #pragma warning( disable : 4244 ) // C4244: '=' : conversion from 'int' to 'short', possible loss of data
   111  #endif //__VC32__
   111  #endif //__VC32__
   112  
   112  
   113 -#include "resource.h"
   113 -#include "resource.h"
   138 +#include "VERSION.H"
   138 +#include "VERSION.H"
   139 +#include "CTABLE.H"
   139 +#include "CTABLE.H"
   140  #include "localise.h"
   140  #include "localise.h"
   141  #include "main.h"
   141  #include "main.h"
   142  
   142  
   143 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/bintools/rcomp/src/rcompl.cpp /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/bintools/rcomp/src/rcompl.cpp
   143 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/bintools/rcomp/src/rcompl.cpp /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/bintools/rcomp/src/rcompl.cpp
   144 --- /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/bintools/rcomp/src/rcompl.cpp	2010-05-13 19:14:19.428582169 +0100
   144 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/bintools/rcomp/src/rcompl.cpp	2010-05-18 19:32:28.600848647 +0100
   145 +++ /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/bintools/rcomp/src/rcompl.cpp	2010-05-15 14:32:45.000000000 +0100
   145 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/bintools/rcomp/src/rcompl.cpp	2010-05-15 14:32:45.000000000 +0100
   146 @@ -662,8 +662,8 @@
   146 @@ -662,8 +662,8 @@
   147  #include <limits.h>
   147  #include <limits.h>
   148  #include <string.h>
   148  #include <string.h>
   149  #include "main.h"
   149  #include "main.h"
   150 -#include "structst.h"
   150 -#include "structst.h"
   170 -#include "errorhan.h"
   170 -#include "errorhan.h"
   171 +#include "ERRORHAN.H"
   171 +#include "ERRORHAN.H"
   172  
   172  
   173  #define REGISTER_LINE	ErrorHandler::Register(pFileLineHandler->GetCurrentFile(), pFileLineHandler->GetErrorLine(* pCurrentLineNumber))
   173  #define REGISTER_LINE	ErrorHandler::Register(pFileLineHandler->GetCurrentFile(), pFileLineHandler->GetErrorLine(* pCurrentLineNumber))
   174  
   174  
   175 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/bintools/rcomp/src/RCOMP.LEX /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/bintools/rcomp/src/RCOMP.LEX
   175 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/bintools/rcomp/src/RCOMP.LEX /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/bintools/rcomp/src/RCOMP.LEX
   176 --- /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/bintools/rcomp/src/RCOMP.LEX	2010-05-13 19:14:19.420582828 +0100
   176 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/bintools/rcomp/src/RCOMP.LEX	2010-05-18 19:32:28.592848398 +0100
   177 +++ /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/bintools/rcomp/src/RCOMP.LEX	2010-05-15 14:32:45.000000000 +0100
   177 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/bintools/rcomp/src/RCOMP.LEX	2010-05-15 14:32:45.000000000 +0100
   178 @@ -20,9 +20,9 @@
   178 @@ -20,9 +20,9 @@
   179  #include <limits.h>
   179  #include <limits.h>
   180  #include <string.h>
   180  #include <string.h>
   181  #include "main.h"
   181  #include "main.h"
   182 -#include "structst.h"
   182 -#include "structst.h"
   195 -#include "errorhan.h"
   195 -#include "errorhan.h"
   196 +#include "ERRORHAN.H"
   196 +#include "ERRORHAN.H"
   197  
   197  
   198  #define REGISTER_LINE	ErrorHandler::Register(pFileLineHandler->GetCurrentFile(), pFileLineHandler->GetErrorLine(* pCurrentLineNumber))
   198  #define REGISTER_LINE	ErrorHandler::Register(pFileLineHandler->GetCurrentFile(), pFileLineHandler->GetErrorLine(* pCurrentLineNumber))
   199  
   199  
   200 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/bintools/rcomp/src/RCOMP.YACC /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/bintools/rcomp/src/RCOMP.YACC
   200 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/bintools/rcomp/src/RCOMP.YACC /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/bintools/rcomp/src/RCOMP.YACC
   201 --- /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/bintools/rcomp/src/RCOMP.YACC	2010-05-13 19:14:19.424582009 +0100
   201 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/bintools/rcomp/src/RCOMP.YACC	2010-05-18 19:32:28.596848698 +0100
   202 +++ /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/bintools/rcomp/src/RCOMP.YACC	2010-05-15 14:32:45.000000000 +0100
   202 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/bintools/rcomp/src/RCOMP.YACC	2010-05-15 14:32:45.000000000 +0100
   203 @@ -35,8 +35,8 @@
   203 @@ -35,8 +35,8 @@
   204  #pragma warning( disable : 4244 ) // C4244: '=' : conversion from 'int' to 'short', possible loss of data
   204  #pragma warning( disable : 4244 ) // C4244: '=' : conversion from 'int' to 'short', possible loss of data
   205  #endif //__VC32__
   205  #endif //__VC32__
   206  
   206  
   207 -#include "resource.h"
   207 -#include "resource.h"
   232 +#include "VERSION.H"
   232 +#include "VERSION.H"
   233 +#include "CTABLE.H"
   233 +#include "CTABLE.H"
   234  #include "localise.h"
   234  #include "localise.h"
   235  #include "main.h"
   235  #include "main.h"
   236  
   236  
   237 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/buildtoolguides/romtoolsguide/group/bld.inf /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/buildtoolguides/romtoolsguide/group/bld.inf
   237 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/buildtoolguides/romtoolsguide/group/bld.inf /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/buildtoolguides/romtoolsguide/group/bld.inf
   238 --- /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/buildtoolguides/romtoolsguide/group/bld.inf	2010-05-13 19:14:22.500584966 +0100
   238 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/buildtoolguides/romtoolsguide/group/bld.inf	2010-05-18 19:32:30.861348504 +0100
   239 +++ /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/buildtoolguides/romtoolsguide/group/bld.inf	2010-05-08 15:41:44.000000000 +0100
   239 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/buildtoolguides/romtoolsguide/group/bld.inf	2010-05-08 15:41:44.000000000 +0100
   240 @@ -1,3 +1,3 @@
   240 @@ -1,3 +1,3 @@
   241  
   241  
   242  PRJ_EXPORTS
   242  PRJ_EXPORTS
   243 -../com.nokia.rombuild_0.1.jar /plugins/com.nokia.rombuild_0.1.jar
   243 -../com.nokia.rombuild_0.1.jar /plugins/com.nokia.rombuild_0.1.jar
   244 \ No newline at end of file
   244 \ No newline at end of file
   245 +../com.nokia.rombuild_0.1.jar ../../plugins/com.nokia.rombuild_0.1.jar 
   245 +../com.nokia.rombuild_0.1.jar ../../plugins/com.nokia.rombuild_0.1.jar 
   246 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/buildtoolguides/sbsv2guide/group/bld.inf /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/buildtoolguides/sbsv2guide/group/bld.inf
   246 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/buildtoolguides/sbsv2guide/group/bld.inf /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/buildtoolguides/sbsv2guide/group/bld.inf
   247 --- /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/buildtoolguides/sbsv2guide/group/bld.inf	2010-05-13 19:14:22.504583518 +0100
   247 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/buildtoolguides/sbsv2guide/group/bld.inf	2010-05-18 19:32:30.861348504 +0100
   248 +++ /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/buildtoolguides/sbsv2guide/group/bld.inf	2010-05-08 15:42:04.000000000 +0100
   248 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/buildtoolguides/sbsv2guide/group/bld.inf	2010-05-08 15:42:04.000000000 +0100
   249 @@ -1,3 +1,3 @@
   249 @@ -1,3 +1,3 @@
   250  
   250  
   251  PRJ_EXPORTS
   251  PRJ_EXPORTS
   252 -../com.nokia.sysbuild_0.1.jar /plugins/com.nokia.sysbuild_0.1.jar
   252 -../com.nokia.sysbuild_0.1.jar /plugins/com.nokia.sysbuild_0.1.jar
   253 \ No newline at end of file
   253 \ No newline at end of file
   254 +../com.nokia.sysbuild_0.1.jar ../../plugins/com.nokia.sysbuild_0.1.jar
   254 +../com.nokia.sysbuild_0.1.jar ../../plugins/com.nokia.sysbuild_0.1.jar
   255 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/e32tools/e32lib/e32image/deflate/deflate.cpp /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/e32tools/e32lib/e32image/deflate/deflate.cpp
   255 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/e32tools/e32lib/e32image/deflate/deflate.cpp /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/e32tools/e32lib/e32image/deflate/deflate.cpp
   256 --- /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/e32tools/e32lib/e32image/deflate/deflate.cpp	2010-05-13 19:14:22.504583518 +0100
   256 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/e32tools/e32lib/e32image/deflate/deflate.cpp	2010-05-18 19:32:30.865349012 +0100
   257 +++ /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/e32tools/e32lib/e32image/deflate/deflate.cpp	2010-05-15 14:32:45.000000000 +0100
   257 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/e32tools/e32lib/e32image/deflate/deflate.cpp	2010-05-15 14:32:45.000000000 +0100
   258 @@ -87,7 +87,7 @@
   258 @@ -87,7 +87,7 @@
   259  
   259  
   260  inline HDeflateHash* HDeflateHash::NewLC(TInt aLinks)
   260  inline HDeflateHash* HDeflateHash::NewLC(TInt aLinks)
   261  	{
   261  	{
   262 -	return new(HMem::Alloc(0,_FOFF(HDeflateHash,iOffset[Min(aLinks,KDeflateMaxDistance)]))) HDeflateHash;
   262 -	return new(HMem::Alloc(0,_FOFF(HDeflateHash,iOffset[Min(aLinks,KDeflateMaxDistance)]))) HDeflateHash;
   263 +	return new(HMem::Alloc(0,_FOFF(HDeflateHash,iOffset[0]) + (sizeof(TOffset) * Min(aLinks,KDeflateMaxDistance)))) HDeflateHash;
   263 +	return new(HMem::Alloc(0,_FOFF(HDeflateHash,iOffset[0]) + (sizeof(TOffset) * Min(aLinks,KDeflateMaxDistance)))) HDeflateHash;
   264  	}
   264  	}
   265  
   265  
   266  inline TInt HDeflateHash::Hash(const TUint8* aPtr)
   266  inline TInt HDeflateHash::Hash(const TUint8* aPtr)
   267 Only in /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/e32tools/e32lib/e32image: Makefile.elftran.bak
   267 Only in /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/e32tools/e32lib/e32image: Makefile.elftran.bak
   268 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/e32tools/e32lib/group/seclib.mmp /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/e32tools/e32lib/group/seclib.mmp
   268 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/e32tools/e32lib/group/seclib.mmp /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/e32tools/e32lib/group/seclib.mmp
   269 --- /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/e32tools/e32lib/group/seclib.mmp	2010-05-13 19:14:22.512581742 +0100
   269 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/e32tools/e32lib/group/seclib.mmp	2010-05-18 19:32:30.869349032 +0100
   270 +++ /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/e32tools/e32lib/group/seclib.mmp	2010-05-15 14:32:45.000000000 +0100
   270 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/e32tools/e32lib/group/seclib.mmp	2010-05-15 14:32:45.000000000 +0100
   271 @@ -45,8 +45,11 @@
   271 @@ -45,8 +45,11 @@
   272  userinclude     ../setcap 
   272  userinclude     ../setcap 
   273  userinclude     ../../e32lib/e32image/inc
   273  userinclude     ../../e32lib/e32image/inc
   274  systeminclude   /epoc32/include
   274  systeminclude   /epoc32/include
   275 +systeminclude    /epoc32/include/platform
   275 +systeminclude    /epoc32/include/platform
   278 +option 	GCC -w
   278 +option 	GCC -w
   279 +
   279 +
   280  
   280  
   281  //macro __PLACEMENT_NEW_INLINE
   281  //macro __PLACEMENT_NEW_INLINE
   282  //macro __PLACEMENT_VEC_NEW_INLINE
   282  //macro __PLACEMENT_VEC_NEW_INLINE
   283 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/e32tools/elf2e32/group/elf2e32.mmp /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/e32tools/elf2e32/group/elf2e32.mmp
   283 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/e32tools/elf2e32/group/elf2e32.mmp /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/e32tools/elf2e32/group/elf2e32.mmp
   284 --- /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/e32tools/elf2e32/group/elf2e32.mmp	2010-05-13 19:14:22.512581742 +0100
   284 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/e32tools/elf2e32/group/elf2e32.mmp	2010-05-18 19:32:30.873348842 +0100
   285 +++ /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/e32tools/elf2e32/group/elf2e32.mmp	2010-05-15 14:32:45.000000000 +0100
   285 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/e32tools/elf2e32/group/elf2e32.mmp	2010-05-15 14:32:45.000000000 +0100
   286 @@ -28,7 +28,9 @@
   286 @@ -28,7 +28,9 @@
   287  source	 	byte_pair.cpp  pagedcompress.cpp checksum.cpp stdexe_target.cpp
   287  source	 	byte_pair.cpp  pagedcompress.cpp checksum.cpp stdexe_target.cpp
   288  
   288  
   289  systeminclude    /epoc32/include  /epoc32/include/tools  
   289  systeminclude    /epoc32/include  /epoc32/include/tools  
   290 +systeminclude    /epoc32/include/platform
   290 +systeminclude    /epoc32/include/platform
   291  userinclude		../source ../include
   291  userinclude		../source ../include
   292 +userinclude ../../../bintools/elftools/inc
   292 +userinclude ../../../bintools/elftools/inc
   293  
   293  
   294  option 	GCC -w
   294  option 	GCC -w
   295  
   295  
   296 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/e32tools/elf2e32/source/deffile.cpp /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/e32tools/elf2e32/source/deffile.cpp
   296 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/e32tools/elf2e32/source/deffile.cpp /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/e32tools/elf2e32/source/deffile.cpp
   297 --- /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/e32tools/elf2e32/source/deffile.cpp	2010-05-13 19:14:22.516582251 +0100
   297 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/e32tools/elf2e32/source/deffile.cpp	2010-05-18 19:32:30.873348842 +0100
   298 +++ /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/e32tools/elf2e32/source/deffile.cpp	2010-05-15 14:32:45.000000000 +0100
   298 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/e32tools/elf2e32/source/deffile.cpp	2010-05-15 14:32:45.000000000 +0100
   299 @@ -18,9 +18,11 @@
   299 @@ -18,9 +18,11 @@
   300  //
   300  //
   301  
   301  
   302  //
   302  //
   303 -#include <stdio.h>
   303 -#include <stdio.h>
   308 +#include <cstdlib>
   308 +#include <cstdlib>
   309 +
   309 +
   310  
   310  
   311  #include "pl_symbol.h"
   311  #include "pl_symbol.h"
   312  #include "deffile.h"
   312  #include "deffile.h"
   313 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/e32tools/elf2e32/source/deflatecompress.cpp /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/e32tools/elf2e32/source/deflatecompress.cpp
   313 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/e32tools/elf2e32/source/deflatecompress.cpp /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/e32tools/elf2e32/source/deflatecompress.cpp
   314 --- /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/e32tools/elf2e32/source/deflatecompress.cpp	2010-05-13 19:14:22.516582251 +0100
   314 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/e32tools/elf2e32/source/deflatecompress.cpp	2010-05-18 19:32:30.873348842 +0100
   315 +++ /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/e32tools/elf2e32/source/deflatecompress.cpp	2010-05-15 14:32:45.000000000 +0100
   315 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/e32tools/elf2e32/source/deflatecompress.cpp	2010-05-15 14:32:45.000000000 +0100
   316 @@ -126,7 +126,8 @@
   316 @@ -126,7 +126,8 @@
   317  inline HDeflateHash* HDeflateHash::NewLC(TInt aLinks)
   317  inline HDeflateHash* HDeflateHash::NewLC(TInt aLinks)
   318  {
   318  {
   319  	//return new(HMem::Alloc(0,_FOFF(HDeflateHash,iOffset[Min(aLinks,KDeflateMaxDistance)]))) HDeflateHash;
   319  	//return new(HMem::Alloc(0,_FOFF(HDeflateHash,iOffset[Min(aLinks,KDeflateMaxDistance)]))) HDeflateHash;
   320 -	return new(new char[_FOFF(HDeflateHash,iOffset[Min(aLinks,KDeflateMaxDistance)])]) HDeflateHash;
   320 -	return new(new char[_FOFF(HDeflateHash,iOffset[Min(aLinks,KDeflateMaxDistance)])]) HDeflateHash;
   321 +	return new(new char[_FOFF(HDeflateHash,iOffset[0]) + 
   321 +	return new(new char[_FOFF(HDeflateHash,iOffset[0]) + 
   322 +		(sizeof(TOffset) * Min(aLinks,KDeflateMaxDistance))]) HDeflateHash;
   322 +		(sizeof(TOffset) * Min(aLinks,KDeflateMaxDistance))]) HDeflateHash;
   323  }
   323  }
   324  
   324  
   325  /**
   325  /**
   326 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/e32tools/elf2e32/source/e32exporttable.cpp /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/e32tools/elf2e32/source/e32exporttable.cpp
   326 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/e32tools/elf2e32/source/e32exporttable.cpp /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/e32tools/elf2e32/source/e32exporttable.cpp
   327 --- /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/e32tools/elf2e32/source/e32exporttable.cpp	2010-05-13 19:14:22.516582251 +0100
   327 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/e32tools/elf2e32/source/e32exporttable.cpp	2010-05-18 19:32:30.877348862 +0100
   328 +++ /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/e32tools/elf2e32/source/e32exporttable.cpp	2010-05-15 14:32:45.000000000 +0100
   328 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/e32tools/elf2e32/source/e32exporttable.cpp	2010-05-15 14:32:45.000000000 +0100
   329 @@ -18,6 +18,7 @@
   329 @@ -18,6 +18,7 @@
   330  #include "pl_elfexports.h"
   330  #include "pl_elfexports.h"
   331  #include "pl_dllsymbol.h"
   331  #include "pl_dllsymbol.h"
   332  #include "pl_elflocalrelocation.h"
   332  #include "pl_elflocalrelocation.h"
   333 +#include <cstring>
   333 +#include <cstring>
   334  
   334  
   335  /**
   335  /**
   336  Destructor for E32ExportTable class.
   336  Destructor for E32ExportTable class.
   337 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/e32tools/elf2e32/source/e32imagefile.cpp /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/e32tools/elf2e32/source/e32imagefile.cpp
   337 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/e32tools/elf2e32/source/e32imagefile.cpp /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/e32tools/elf2e32/source/e32imagefile.cpp
   338 --- /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/e32tools/elf2e32/source/e32imagefile.cpp	2010-05-13 19:14:22.520581921 +0100
   338 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/e32tools/elf2e32/source/e32imagefile.cpp	2010-05-18 19:32:30.877348862 +0100
   339 +++ /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/e32tools/elf2e32/source/e32imagefile.cpp	2010-05-15 14:32:45.000000000 +0100
   339 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/e32tools/elf2e32/source/e32imagefile.cpp	2010-05-15 14:32:45.000000000 +0100
   340 @@ -21,6 +21,7 @@
   340 @@ -21,6 +21,7 @@
   341  
   341  
   342  // get E32ImageHeader class...
   342  // get E32ImageHeader class...
   343  #define INCLUDE_E32IMAGEHEADER_IMPLEMENTATION
   343  #define INCLUDE_E32IMAGEHEADER_IMPLEMENTATION
   344 +#include <cstdio>
   344 +#include <cstdio>
   391 -	memcpy(aInfo+aPos, iSymbolNames.begin(), iSymbolNames.size());
   391 -	memcpy(aInfo+aPos, iSymbolNames.begin(), iSymbolNames.size());
   392 +	memcpy(aInfo+aPos, &*iSymbolNames.begin(), iSymbolNames.size());
   392 +	memcpy(aInfo+aPos, &*iSymbolNames.begin(), iSymbolNames.size());
   393  
   393  
   394  	// At the end, the dependencies are listed. They remain zeroes and shall be fixed up
   394  	// At the end, the dependencies are listed. They remain zeroes and shall be fixed up
   395  	// while relocating.
   395  	// while relocating.
   396 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/e32tools/elf2e32/source/elffilesupplied.cpp /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/e32tools/elf2e32/source/elffilesupplied.cpp
   396 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/e32tools/elf2e32/source/elffilesupplied.cpp /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/e32tools/elf2e32/source/elffilesupplied.cpp
   397 --- /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/e32tools/elf2e32/source/elffilesupplied.cpp	2010-05-13 19:14:22.520581921 +0100
   397 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/e32tools/elf2e32/source/elffilesupplied.cpp	2010-05-18 19:32:30.877348862 +0100
   398 +++ /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/e32tools/elf2e32/source/elffilesupplied.cpp	2010-05-15 14:32:45.000000000 +0100
   398 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/e32tools/elf2e32/source/elffilesupplied.cpp	2010-05-15 14:32:45.000000000 +0100
   399 @@ -25,7 +25,15 @@
   399 @@ -25,7 +25,15 @@
   400  
   400  
   401  #include <algorithm>
   401  #include <algorithm>
   402  #include <iostream>
   402  #include <iostream>
   403 -#include<hash_set>
   403 -#include<hash_set>
   429 -  hash_set<const char*, hash<const char*>, eqstr>::const_iterator it
   429 -  hash_set<const char*, hash<const char*>, eqstr>::const_iterator it
   430 +  SET_TYPE<const char*, HASH_FUN<const char*>, eqstr>::const_iterator it
   430 +  SET_TYPE<const char*, HASH_FUN<const char*>, eqstr>::const_iterator it
   431      = aSymbolSet.find(aSymbol);
   431      = aSymbolSet.find(aSymbol);
   432    if(it != aSymbolSet.end())
   432    if(it != aSymbolSet.end())
   433  	return 1;
   433  	return 1;
   434 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/e32tools/elf2e32/source/errorhandler.cpp /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/e32tools/elf2e32/source/errorhandler.cpp
   434 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/e32tools/elf2e32/source/errorhandler.cpp /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/e32tools/elf2e32/source/errorhandler.cpp
   435 --- /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/e32tools/elf2e32/source/errorhandler.cpp	2010-05-13 19:14:22.520581921 +0100
   435 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/e32tools/elf2e32/source/errorhandler.cpp	2010-05-18 19:32:30.881348532 +0100
   436 +++ /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/e32tools/elf2e32/source/errorhandler.cpp	2010-05-15 14:32:45.000000000 +0100
   436 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/e32tools/elf2e32/source/errorhandler.cpp	2010-05-15 14:32:45.000000000 +0100
   437 @@ -26,7 +26,9 @@
   437 @@ -26,7 +26,9 @@
   438  #include "errorhandler.h"
   438  #include "errorhandler.h"
   439  #include "messagehandler.h"
   439  #include "messagehandler.h"
   440  #include <iostream>
   440  #include <iostream>
   441 -#include <stdio.h>
   441 -#include <stdio.h>
   443 +#include <cstring>
   443 +#include <cstring>
   444 +
   444 +
   445  using std::cerr;
   445  using std::cerr;
   446  using std::endl;
   446  using std::endl;
   447  
   447  
   448 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/e32tools/elf2e32/source/huffman.cpp /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/e32tools/elf2e32/source/huffman.cpp
   448 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/e32tools/elf2e32/source/huffman.cpp /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/e32tools/elf2e32/source/huffman.cpp
   449 --- /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/e32tools/elf2e32/source/huffman.cpp	2010-05-13 19:14:22.528582030 +0100
   449 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/e32tools/elf2e32/source/huffman.cpp	2010-05-18 19:32:30.885348692 +0100
   450 +++ /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/e32tools/elf2e32/source/huffman.cpp	2010-05-15 14:32:45.000000000 +0100
   450 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/e32tools/elf2e32/source/huffman.cpp	2010-05-15 14:32:45.000000000 +0100
   451 @@ -22,6 +22,7 @@
   451 @@ -22,6 +22,7 @@
   452  #endif
   452  #endif
   453  
   453  
   454  #include <cassert>
   454  #include <cassert>
   455 +#include <cstring>
   455 +#include <cstring>
   456  #include "huffman.h"
   456  #include "huffman.h"
   457  #include "errorhandler.h"
   457  #include "errorhandler.h"
   458  #include "farray.h"
   458  #include "farray.h"
   459 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/e32tools/elf2e32/source/h_utl.cpp /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/e32tools/elf2e32/source/h_utl.cpp
   459 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/e32tools/elf2e32/source/h_utl.cpp /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/e32tools/elf2e32/source/h_utl.cpp
   460 --- /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/e32tools/elf2e32/source/h_utl.cpp	2010-05-13 19:14:22.524582150 +0100
   460 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/e32tools/elf2e32/source/h_utl.cpp	2010-05-18 19:32:30.885348692 +0100
   461 +++ /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/e32tools/elf2e32/source/h_utl.cpp	2010-05-15 14:32:45.000000000 +0100
   461 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/e32tools/elf2e32/source/h_utl.cpp	2010-05-15 14:32:45.000000000 +0100
   462 @@ -17,8 +17,9 @@
   462 @@ -17,8 +17,9 @@
   463  // 
   463  // 
   464  //
   464  //
   465  
   465  
   466 -#include <stdlib.h>
   466 -#include <stdlib.h>
   469 +#include <cstdio>
   469 +#include <cstdio>
   470 +#include <cstring>
   470 +#include <cstring>
   471  #include "h_utl.h"
   471  #include "h_utl.h"
   472  
   472  
   473  /**
   473  /**
   474 Only in /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/e32tools/elf2e32/source: h_utl.h.bak
   474 Only in /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/e32tools/elf2e32/source: h_utl.h.bak
   475 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/e32tools/elf2e32/source/inflate.cpp /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/e32tools/elf2e32/source/inflate.cpp
   475 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/e32tools/elf2e32/source/inflate.cpp /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/e32tools/elf2e32/source/inflate.cpp
   476 --- /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/e32tools/elf2e32/source/inflate.cpp	2010-05-13 19:14:22.528582030 +0100
   476 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/e32tools/elf2e32/source/inflate.cpp	2010-05-18 19:32:30.885348692 +0100
   477 +++ /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/e32tools/elf2e32/source/inflate.cpp	2010-05-15 14:32:45.000000000 +0100
   477 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/e32tools/elf2e32/source/inflate.cpp	2010-05-15 14:32:45.000000000 +0100
   478 @@ -23,6 +23,8 @@
   478 @@ -23,6 +23,8 @@
   479  #include "farray.h"
   479  #include "farray.h"
   480  #include "errorhandler.h"
   480  #include "errorhandler.h"
   481  #include<iostream>
   481  #include<iostream>
   482 +#include <cstring>
   482 +#include <cstring>
   483 +
   483 +
   484  using std::cout;
   484  using std::cout;
   485  
   485  
   486  /*
   486  /*
   487 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/e32tools/elf2e32/source/librarytarget.cpp /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/e32tools/elf2e32/source/librarytarget.cpp
   487 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/e32tools/elf2e32/source/librarytarget.cpp /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/e32tools/elf2e32/source/librarytarget.cpp
   488 --- /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/e32tools/elf2e32/source/librarytarget.cpp	2010-05-13 19:14:22.528582030 +0100
   488 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/e32tools/elf2e32/source/librarytarget.cpp	2010-05-18 19:32:30.885348692 +0100
   489 +++ /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/e32tools/elf2e32/source/librarytarget.cpp	2010-05-15 16:38:11.000000000 +0100
   489 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/e32tools/elf2e32/source/librarytarget.cpp	2010-05-15 16:38:11.000000000 +0100
   490 @@ -21,6 +21,7 @@
   490 @@ -21,6 +21,7 @@
   491  #include "pl_dso_handler.h"
   491  #include "pl_dso_handler.h"
   492  #include "deffile.h"
   492  #include "deffile.h"
   493  #include <iostream>
   493  #include <iostream>
   494 +#include <cstdlib>
   494 +#include <cstdlib>
   495  
   495  
   496  /**
   496  /**
   497  Constructor for the Library Class
   497  Constructor for the Library Class
   498 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/e32tools/elf2e32/source/messageimplementation.cpp /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/e32tools/elf2e32/source/messageimplementation.cpp
   498 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/e32tools/elf2e32/source/messageimplementation.cpp /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/e32tools/elf2e32/source/messageimplementation.cpp
   499 --- /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/e32tools/elf2e32/source/messageimplementation.cpp	2010-05-13 19:14:22.532582119 +0100
   499 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/e32tools/elf2e32/source/messageimplementation.cpp	2010-05-18 19:32:30.889348502 +0100
   500 +++ /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/e32tools/elf2e32/source/messageimplementation.cpp	2010-05-15 16:37:05.000000000 +0100
   500 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/e32tools/elf2e32/source/messageimplementation.cpp	2010-05-15 16:37:05.000000000 +0100
   501 @@ -23,7 +23,9 @@
   501 @@ -23,7 +23,9 @@
   502  #include<iostream>
   502  #include<iostream>
   503  #include<stdarg.h>
   503  #include<stdarg.h>
   504  #include<string>
   504  #include<string>
   505 -#include <stdio.h>
   505 -#include <stdio.h>
   507 +#include <cstdlib>
   507 +#include <cstdlib>
   508 +
   508 +
   509  
   509  
   510  using std::endl;
   510  using std::endl;
   511  using std::cout;
   511  using std::cout;
   512 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/e32tools/elf2e32/source/parametermanager.cpp /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/e32tools/elf2e32/source/parametermanager.cpp
   512 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/e32tools/elf2e32/source/parametermanager.cpp /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/e32tools/elf2e32/source/parametermanager.cpp
   513 --- /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/e32tools/elf2e32/source/parametermanager.cpp	2010-05-13 19:14:22.532582119 +0100
   513 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/e32tools/elf2e32/source/parametermanager.cpp	2010-05-18 19:32:30.889348502 +0100
   514 +++ /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/e32tools/elf2e32/source/parametermanager.cpp	2010-05-15 16:38:48.000000000 +0100
   514 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/e32tools/elf2e32/source/parametermanager.cpp	2010-05-15 16:38:48.000000000 +0100
   515 @@ -25,6 +25,7 @@
   515 @@ -25,6 +25,7 @@
   516  #include "parametermanager.h"
   516  #include "parametermanager.h"
   517  #include "errorhandler.h"
   517  #include "errorhandler.h"
   518  #include <iostream>
   518  #include <iostream>
   519 +#include <cstdlib>
   519 +#include <cstdlib>
   545 -			ParseCapability1(b, e, aCapabilities, invert);
   545 -			ParseCapability1(b, e, aCapabilities, invert);
   546 +			ParseCapability1(&*b, &*e, aCapabilities, invert);
   546 +			ParseCapability1(&*b, &*e, aCapabilities, invert);
   547  
   547  
   548  		b = e;
   548  		b = e;
   549  		
   549  		
   550 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/e32tools/elf2e32/source/parametermanager.h /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/e32tools/elf2e32/source/parametermanager.h
   550 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/e32tools/elf2e32/source/parametermanager.h /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/e32tools/elf2e32/source/parametermanager.h
   551 --- /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/e32tools/elf2e32/source/parametermanager.h	2010-05-13 19:14:22.532582119 +0100
   551 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/e32tools/elf2e32/source/parametermanager.h	2010-05-18 19:32:30.889348502 +0100
   552 +++ /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/e32tools/elf2e32/source/parametermanager.h	2010-05-15 14:32:45.000000000 +0100
   552 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/e32tools/elf2e32/source/parametermanager.h	2010-05-15 14:32:45.000000000 +0100
   553 @@ -81,7 +81,7 @@
   553 @@ -81,7 +81,7 @@
   554  	typedef std::map<string, const OptionDesc *, OptionCompare> OptionMap;
   554  	typedef std::map<string, const OptionDesc *, OptionCompare> OptionMap;
   555  	typedef vector<char *> LibSearchPaths;
   555  	typedef vector<char *> LibSearchPaths;
   556  
   556  
   557 -	typedef void (*ParserFn)(ParameterManager *, char *, char *, const OptionDesc *);
   557 -	typedef void (*ParserFn)(ParameterManager *, char *, char *, const OptionDesc *);
   558 +	typedef void (*ParserFn)(ParameterManager *, char const *, char const *, const OptionDesc *);
   558 +	typedef void (*ParserFn)(ParameterManager *, char const *, char const *, const OptionDesc *);
   559  
   559  
   560  
   560  
   561  	#define DECLARE_PARAM_PARSER(name) \
   561  	#define DECLARE_PARAM_PARSER(name) \
   562 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/e32tools/elf2e32/source/pl_elfexecutable.h /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/e32tools/elf2e32/source/pl_elfexecutable.h
   562 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/e32tools/elf2e32/source/pl_elfexecutable.h /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/e32tools/elf2e32/source/pl_elfexecutable.h
   563 --- /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/e32tools/elf2e32/source/pl_elfexecutable.h	2010-05-13 19:14:22.536582488 +0100
   563 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/e32tools/elf2e32/source/pl_elfexecutable.h	2010-05-18 19:32:30.893348941 +0100
   564 +++ /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/e32tools/elf2e32/source/pl_elfexecutable.h	2010-05-15 14:32:45.000000000 +0100
   564 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/e32tools/elf2e32/source/pl_elfexecutable.h	2010-05-15 14:32:45.000000000 +0100
   565 @@ -22,13 +22,19 @@
   565 @@ -22,13 +22,19 @@
   566  
   566  
   567  #include "pl_common.h"
   567  #include "pl_common.h"
   568  #include <list>
   568  #include <list>
   569 -#include <hash_map>
   569 -#include <hash_map>
   591 -	hash_map<PLUINT32, DllSymbol*>	iSymbolTable; //The representation
   591 -	hash_map<PLUINT32, DllSymbol*>	iSymbolTable; //The representation
   592 +	MAP_TYPE<PLUINT32, DllSymbol*>	iSymbolTable; //The representation
   592 +	MAP_TYPE<PLUINT32, DllSymbol*>	iSymbolTable; //The representation
   593  
   593  
   594  	/**
   594  	/**
   595  	 * The static symbol table.
   595  	 * The static symbol table.
   596 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/e32tools/elf2e32/source/pl_elfexports.cpp /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/e32tools/elf2e32/source/pl_elfexports.cpp
   596 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/e32tools/elf2e32/source/pl_elfexports.cpp /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/e32tools/elf2e32/source/pl_elfexports.cpp
   597 --- /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/e32tools/elf2e32/source/pl_elfexports.cpp	2010-05-13 19:14:22.536582488 +0100
   597 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/e32tools/elf2e32/source/pl_elfexports.cpp	2010-05-18 19:32:30.893348941 +0100
   598 +++ /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/e32tools/elf2e32/source/pl_elfexports.cpp	2010-05-15 14:32:45.000000000 +0100
   598 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/e32tools/elf2e32/source/pl_elfexports.cpp	2010-05-15 14:32:45.000000000 +0100
   599 @@ -20,6 +20,7 @@
   599 @@ -20,6 +20,7 @@
   600  #include "pl_elfexports.h"
   600  #include "pl_elfexports.h"
   601  #include "pl_elfexecutable.h"
   601  #include "pl_elfexecutable.h"
   602  #include "pl_dllsymbol.h"
   602  #include "pl_dllsymbol.h"
   603 +#include <cstring>
   603 +#include <cstring>
   604  
   604  
   605  using std::set_difference;
   605  using std::set_difference;
   606  
   606  
   607 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/e32tools/elf2e32/source/pl_elfimports.cpp /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/e32tools/elf2e32/source/pl_elfimports.cpp
   607 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/e32tools/elf2e32/source/pl_elfimports.cpp /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/e32tools/elf2e32/source/pl_elfimports.cpp
   608 --- /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/e32tools/elf2e32/source/pl_elfimports.cpp	2010-05-13 19:14:22.536582488 +0100
   608 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/e32tools/elf2e32/source/pl_elfimports.cpp	2010-05-18 19:32:30.893348941 +0100
   609 +++ /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/e32tools/elf2e32/source/pl_elfimports.cpp	2010-05-15 14:32:45.000000000 +0100
   609 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/e32tools/elf2e32/source/pl_elfimports.cpp	2010-05-15 14:32:45.000000000 +0100
   610 @@ -19,6 +19,7 @@
   610 @@ -19,6 +19,7 @@
   611  
   611  
   612  #include "pl_elfimports.h"
   612  #include "pl_elfimports.h"
   613  #include "pl_elfimportrelocation.h"
   613  #include "pl_elfimportrelocation.h"
   614 +#include <cstring>
   614 +#include <cstring>
   615  
   615  
   616  /**
   616  /**
   617  Constructor for class ElfImports
   617  Constructor for class ElfImports
   618 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/e32tools/elf2e32/source/pl_elfproducer.cpp /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/e32tools/elf2e32/source/pl_elfproducer.cpp
   618 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/e32tools/elf2e32/source/pl_elfproducer.cpp /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/e32tools/elf2e32/source/pl_elfproducer.cpp
   619 --- /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/e32tools/elf2e32/source/pl_elfproducer.cpp	2010-05-13 19:14:22.540581739 +0100
   619 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/e32tools/elf2e32/source/pl_elfproducer.cpp	2010-05-18 19:32:30.897348961 +0100
   620 +++ /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/e32tools/elf2e32/source/pl_elfproducer.cpp	2010-05-15 14:32:45.000000000 +0100
   620 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/e32tools/elf2e32/source/pl_elfproducer.cpp	2010-05-15 14:32:45.000000000 +0100
   621 @@ -22,6 +22,7 @@
   621 @@ -22,6 +22,7 @@
   622  #include <stdio.h>
   622  #include <stdio.h>
   623  #include <string>
   623  #include <string>
   624  #include "errorhandler.h"
   624  #include "errorhandler.h"
   625 +#include <cstring>
   625 +#include <cstring>
   626  
   626  
   627  /**
   627  /**
   628   * Following array is indexed on the SECTION_INDEX enum 
   628   * Following array is indexed on the SECTION_INDEX enum 
   629 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/e32tools/elf2e32/source/pl_symbol.cpp /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/e32tools/elf2e32/source/pl_symbol.cpp
   629 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/e32tools/elf2e32/source/pl_symbol.cpp /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/e32tools/elf2e32/source/pl_symbol.cpp
   630 --- /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/e32tools/elf2e32/source/pl_symbol.cpp	2010-05-13 19:14:22.544581968 +0100
   630 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/e32tools/elf2e32/source/pl_symbol.cpp	2010-05-18 19:32:30.897348961 +0100
   631 +++ /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/e32tools/elf2e32/source/pl_symbol.cpp	2010-05-15 14:32:45.000000000 +0100
   631 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/e32tools/elf2e32/source/pl_symbol.cpp	2010-05-15 14:32:45.000000000 +0100
   632 @@ -18,6 +18,7 @@
   632 @@ -18,6 +18,7 @@
   633  //
   633  //
   634  
   634  
   635  #include "pl_symbol.h"
   635  #include "pl_symbol.h"
   636 +#include <cstring>
   636 +#include <cstring>
   637  
   637  
   638  
   638  
   639  /**
   639  /**
   640 Only in /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/buildrom/tools: cdf.dtd.bak
   640 Only in /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/buildrom/tools: cdf.dtd.bak
   641 Only in /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/buildrom/tools: featuredatabase.dtd.bak
   641 Only in /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/buildrom/tools: featuredatabase.dtd.bak
   642 Only in /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/buildrom/tools: featureuids.dtd.bak
   642 Only in /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/buildrom/tools: featureuids.dtd.bak
   643 Only in /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/buildrom/tools: imageContent.dtd.bak
   643 Only in /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/buildrom/tools: imageContent.dtd.bak
   644 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/imgcheck/group/bld.inf /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/imgtools/imgcheck/group/bld.inf
   644 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/imgcheck/group/bld.inf /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/imgtools/imgcheck/group/bld.inf
   645 --- /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/imgcheck/group/bld.inf	2010-05-13 19:14:22.580581863 +0100
   645 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/imgcheck/group/bld.inf	2010-05-18 19:32:30.933348649 +0100
   646 +++ /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/imgtools/imgcheck/group/bld.inf	2010-05-15 14:32:45.000000000 +0100
   646 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/imgtools/imgcheck/group/bld.inf	2010-05-15 14:32:45.000000000 +0100
   647 @@ -21,8 +21,10 @@
   647 @@ -21,8 +21,10 @@
   648  
   648  
   649  // These libraries needs to be exported
   649  // These libraries needs to be exported
   650  PRJ_EXPORTS
   650  PRJ_EXPORTS
   651 +#ifndef TOOLS2_LINUX
   651 +#ifndef TOOLS2_LINUX
   653  ../libxml/lib/libxml2.a			/epoc32/release/tools2/deb/libxml2.a
   653  ../libxml/lib/libxml2.a			/epoc32/release/tools2/deb/libxml2.a
   654 +#endif
   654 +#endif
   655  ../src/imgcheck.xsl			/epoc32/tools/imgcheck.xsl
   655  ../src/imgcheck.xsl			/epoc32/tools/imgcheck.xsl
   656  ./imgcheck.pl				/epoc32/tools/imgcheck.pl
   656  ./imgcheck.pl				/epoc32/tools/imgcheck.pl
   657  ./imgcheck.cmd				/epoc32/tools/imgcheck.cmd
   657  ./imgcheck.cmd				/epoc32/tools/imgcheck.cmd
   658 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/imgcheck/group/imgcheck.mmp /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/imgtools/imgcheck/group/imgcheck.mmp
   658 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/imgcheck/group/imgcheck.mmp /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/imgtools/imgcheck/group/imgcheck.mmp
   659 --- /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/imgcheck/group/imgcheck.mmp	2010-05-13 19:14:22.580581863 +0100
   659 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/imgcheck/group/imgcheck.mmp	2010-05-18 19:32:30.937348738 +0100
   660 +++ /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/imgtools/imgcheck/group/imgcheck.mmp	2010-05-15 16:53:48.000000000 +0100
   660 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/imgtools/imgcheck/group/imgcheck.mmp	2010-05-15 16:53:48.000000000 +0100
   661 @@ -25,17 +25,24 @@
   661 @@ -25,17 +25,24 @@
   662  SOURCE		exceptionimplementation.cpp exceptionreporter.cpp
   662  SOURCE		exceptionimplementation.cpp exceptionreporter.cpp
   663  SOURCE 		cmdlinewriter.cpp xmlwriter.cpp dbgflagchecker.cpp
   663  SOURCE 		cmdlinewriter.cpp xmlwriter.cpp dbgflagchecker.cpp
   664  USERINCLUDE ../libimgutils/inc ../inc ../../imglib/compress
   664  USERINCLUDE ../libimgutils/inc ../inc ../../imglib/compress
   665 +#ifndef TOOLS2_LINUX
   665 +#ifndef TOOLS2_LINUX
   684 +#ifdef TOOLS2_LINUX
   684 +#ifdef TOOLS2_LINUX
   685 +OPTION    GCC -pthread -O2 -Wno-uninitialized -isystem /usr/include/libxml2 -lxml2 -lboost_thread-mt
   685 +OPTION    GCC -pthread -O2 -Wno-uninitialized -isystem /usr/include/libxml2 -lxml2 -lboost_thread-mt
   686  #else
   686  #else
   687  STATICLIBRARY   boost_thread-mgw34-mt-1_39_win32
   687  STATICLIBRARY   boost_thread-mgw34-mt-1_39_win32
   688  OPTION    GCC -mthreads -O2 -Wno-uninitialized
   688  OPTION    GCC -mthreads -O2 -Wno-uninitialized
   689 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/imgcheck/inc/cmdlinehandler.h /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/imgtools/imgcheck/inc/cmdlinehandler.h
   689 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/imgcheck/inc/cmdlinehandler.h /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/imgtools/imgcheck/inc/cmdlinehandler.h
   690 --- /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/imgcheck/inc/cmdlinehandler.h	2010-05-13 19:14:22.805083364 +0100
   690 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/imgcheck/inc/cmdlinehandler.h	2010-05-18 19:32:31.137348888 +0100
   691 +++ /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/imgtools/imgcheck/inc/cmdlinehandler.h	2010-05-15 14:32:45.000000000 +0100
   691 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/imgtools/imgcheck/inc/cmdlinehandler.h	2010-05-15 14:32:45.000000000 +0100
   692 @@ -120,7 +120,7 @@
   692 @@ -120,7 +120,7 @@
   693  @internalComponent
   693  @internalComponent
   694  @released
   694  @released
   695  */
   695  */
   696 -typedef enum Suppress
   696 -typedef enum Suppress
   705 -typedef enum NumberOfValue
   705 -typedef enum NumberOfValue
   706 +enum NumberOfValue
   706 +enum NumberOfValue
   707  {
   707  {
   708      ENone = 0x0,
   708      ENone = 0x0,
   709      ESingle = 0x1,
   709      ESingle = 0x1,
   710 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/imgcheck/inc/common.h /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/imgtools/imgcheck/inc/common.h
   710 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/imgcheck/inc/common.h /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/imgtools/imgcheck/inc/common.h
   711 --- /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/imgcheck/inc/common.h	2010-05-13 19:14:22.805083364 +0100
   711 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/imgcheck/inc/common.h	2010-05-18 19:32:31.137348888 +0100
   712 +++ /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/imgtools/imgcheck/inc/common.h	2010-05-15 14:32:45.000000000 +0100
   712 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/imgtools/imgcheck/inc/common.h	2010-05-15 14:32:45.000000000 +0100
   713 @@ -86,7 +86,7 @@
   713 @@ -86,7 +86,7 @@
   714  @internalComponent
   714  @internalComponent
   715  @released
   715  @released
   716  */
   716  */
   717 -typedef enum ReturnType
   717 -typedef enum ReturnType
   718 +enum ReturnType
   718 +enum ReturnType
   719  {
   719  {
   720  	ESuccess = 0,
   720  	ESuccess = 0,
   721  	EQuit,
   721  	EQuit,
   722 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/imgcheck/inc/exceptionimplementation.h /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/imgtools/imgcheck/inc/exceptionimplementation.h
   722 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/imgcheck/inc/exceptionimplementation.h /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/imgtools/imgcheck/inc/exceptionimplementation.h
   723 --- /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/imgcheck/inc/exceptionimplementation.h	2010-05-13 19:14:22.805083364 +0100
   723 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/imgcheck/inc/exceptionimplementation.h	2010-05-18 19:32:31.137348888 +0100
   724 +++ /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/imgtools/imgcheck/inc/exceptionimplementation.h	2010-05-15 14:32:45.000000000 +0100
   724 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/imgtools/imgcheck/inc/exceptionimplementation.h	2010-05-15 14:32:45.000000000 +0100
   725 @@ -91,7 +91,7 @@
   725 @@ -91,7 +91,7 @@
   726  struct Messages
   726  struct Messages
   727  {
   727  {
   728  	int iIndex;
   728  	int iIndex;
   729 -	char* iMessage;
   729 -	char* iMessage;
   738 -	ofstream iLogStream;
   738 -	ofstream iLogStream;
   739 +	Ofstream iLogStream;
   739 +	Ofstream iLogStream;
   740  	IndexVsMessageMap iMessage;
   740  	IndexVsMessageMap iMessage;
   741  	unsigned int iMsgIndex;
   741  	unsigned int iMsgIndex;
   742  	static unsigned int iCmdFlag;
   742  	static unsigned int iCmdFlag;
   743 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/imgcheck/inc/xmlwriter.h /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/imgtools/imgcheck/inc/xmlwriter.h
   743 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/imgcheck/inc/xmlwriter.h /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/imgtools/imgcheck/inc/xmlwriter.h
   744 --- /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/imgcheck/inc/xmlwriter.h	2010-05-13 19:14:22.809081638 +0100
   744 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/imgcheck/inc/xmlwriter.h	2010-05-18 19:32:31.200886150 +0100
   745 +++ /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/imgtools/imgcheck/inc/xmlwriter.h	2010-05-15 14:32:45.000000000 +0100
   745 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/imgtools/imgcheck/inc/xmlwriter.h	2010-05-15 14:32:45.000000000 +0100
   746 @@ -24,7 +24,12 @@
   746 @@ -24,7 +24,12 @@
   747  #define XMLWRITER_H
   747  #define XMLWRITER_H
   748  
   748  
   749  #include "reportwriter.h"
   749  #include "reportwriter.h"
   750 -#include "libxml/xmlwriter.h"
   750 -#include "libxml/xmlwriter.h"
   764 -	ofstream iXmlFile;
   764 -	ofstream iXmlFile;
   765 +	Ofstream iXmlFile;
   765 +	Ofstream iXmlFile;
   766  	// Xml file name for output.
   766  	// Xml file name for output.
   767  	const String iXmlFileName;
   767  	const String iXmlFileName;
   768  	// Xml Buffer pointer.
   768  	// Xml Buffer pointer.
   769 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/imgcheck/libimgutils/inc/romfsentry.h /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/imgtools/imgcheck/libimgutils/inc/romfsentry.h
   769 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/imgcheck/libimgutils/inc/romfsentry.h /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/imgtools/imgcheck/libimgutils/inc/romfsentry.h
   770 --- /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/imgcheck/libimgutils/inc/romfsentry.h	2010-05-13 19:14:22.809081638 +0100
   770 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/imgcheck/libimgutils/inc/romfsentry.h	2010-05-18 19:32:31.208851687 +0100
   771 +++ /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/imgtools/imgcheck/libimgutils/inc/romfsentry.h	2010-05-15 14:32:45.000000000 +0100
   771 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/imgtools/imgcheck/libimgutils/inc/romfsentry.h	2010-05-15 14:32:45.000000000 +0100
   772 @@ -32,7 +32,7 @@
   772 @@ -32,7 +32,7 @@
   773  class RomImageFSEntry 
   773  class RomImageFSEntry 
   774  {
   774  {
   775  public:
   775  public:
   776 -	RomImageFSEntry (char* aName) 
   776 -	RomImageFSEntry (char* aName) 
   785 -	RomImageDirEntry(char* aName) : RomImageFSEntry(aName)
   785 -	RomImageDirEntry(char* aName) : RomImageFSEntry(aName)
   786 +	RomImageDirEntry(char const* aName) : RomImageFSEntry(aName)
   786 +	RomImageDirEntry(char const* aName) : RomImageFSEntry(aName)
   787  	{
   787  	{
   788  	}
   788  	}
   789  	~RomImageDirEntry(void)
   789  	~RomImageDirEntry(void)
   790 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/imgcheck/libimgutils/inc/typedefs.h /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/imgtools/imgcheck/libimgutils/inc/typedefs.h
   790 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/imgcheck/libimgutils/inc/typedefs.h /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/imgtools/imgcheck/libimgutils/inc/typedefs.h
   791 --- /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/imgcheck/libimgutils/inc/typedefs.h	2010-05-13 19:14:22.809081638 +0100
   791 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/imgcheck/libimgutils/inc/typedefs.h	2010-05-18 19:32:31.212851566 +0100
   792 +++ /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/imgtools/imgcheck/libimgutils/inc/typedefs.h	2010-05-15 14:32:45.000000000 +0100
   792 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/imgtools/imgcheck/libimgutils/inc/typedefs.h	2010-05-15 14:32:45.000000000 +0100
   793 @@ -28,8 +28,8 @@
   793 @@ -28,8 +28,8 @@
   794  
   794  
   795  #undef _L
   795  #undef _L
   796  
   796  
   797 -#include <fstream.h>
   797 -#include <fstream.h>
   822 -typedef enum EImageType
   822 -typedef enum EImageType
   823 +enum EImageType
   823 +enum EImageType
   824  {
   824  {
   825  	EUnknownImage,
   825  	EUnknownImage,
   826  	ERomImage,
   826  	ERomImage,
   827 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/imgcheck/libimgutils/src/dirreader.cpp /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/imgtools/imgcheck/libimgutils/src/dirreader.cpp
   827 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/imgcheck/libimgutils/src/dirreader.cpp /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/imgtools/imgcheck/libimgutils/src/dirreader.cpp
   828 --- /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/imgcheck/libimgutils/src/dirreader.cpp	2010-05-13 19:14:22.813082775 +0100
   828 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/imgcheck/libimgutils/src/dirreader.cpp	2010-05-18 19:32:31.212851566 +0100
   829 +++ /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/imgtools/imgcheck/libimgutils/src/dirreader.cpp	2010-05-15 14:32:45.000000000 +0100
   829 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/imgtools/imgcheck/libimgutils/src/dirreader.cpp	2010-05-15 14:32:45.000000000 +0100
   830 @@ -119,9 +119,9 @@
   830 @@ -119,9 +119,9 @@
   831  void DirReader::ProcessImage()
   831  void DirReader::ProcessImage()
   832  {
   832  {
   833  	char* cwd = new char[MAXPATHLEN];
   833  	char* cwd = new char[MAXPATHLEN];
   834 -	getcwd(cwd,MAXPATHLEN);
   834 -	getcwd(cwd,MAXPATHLEN);
   849 +#endif
   849 +#endif
   850 + 
   850 + 
   851  	E32Image* e32Image = KNull;
   851  	E32Image* e32Image = KNull;
   852  
   852  
   853  #ifdef __LINUX__
   853  #ifdef __LINUX__
   854 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/imgcheck/libimgutils/src/e32reader.cpp /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/imgtools/imgcheck/libimgutils/src/e32reader.cpp
   854 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/imgcheck/libimgutils/src/e32reader.cpp /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/imgtools/imgcheck/libimgutils/src/e32reader.cpp
   855 --- /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/imgcheck/libimgutils/src/e32reader.cpp	2010-05-13 19:14:22.813082775 +0100
   855 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/imgcheck/libimgutils/src/e32reader.cpp	2010-05-18 19:32:31.212851566 +0100
   856 +++ /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/imgtools/imgcheck/libimgutils/src/e32reader.cpp	2010-05-15 16:45:25.000000000 +0100
   856 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/imgtools/imgcheck/libimgutils/src/e32reader.cpp	2010-05-15 16:45:25.000000000 +0100
   857 @@ -24,6 +24,7 @@
   857 @@ -24,6 +24,7 @@
   858  
   858  
   859  #include "e32reader.h"
   859  #include "e32reader.h"
   860  #include <f32image.h>
   860  #include <f32image.h>
   861 +#include <cstdlib>
   861 +#include <cstdlib>
   862  
   862  
   863  /** 
   863  /** 
   864  Constructor.
   864  Constructor.
   865 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/imgcheck/src/cmdlinehandler.cpp /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/imgtools/imgcheck/src/cmdlinehandler.cpp
   865 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/imgcheck/src/cmdlinehandler.cpp /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/imgtools/imgcheck/src/cmdlinehandler.cpp
   866 --- /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/imgcheck/src/cmdlinehandler.cpp	2010-05-13 19:14:22.856604788 +0100
   866 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/imgcheck/src/cmdlinehandler.cpp	2010-05-18 19:32:31.252848475 +0100
   867 +++ /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/imgtools/imgcheck/src/cmdlinehandler.cpp	2010-05-15 14:32:45.000000000 +0100
   867 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/imgtools/imgcheck/src/cmdlinehandler.cpp	2010-05-15 14:32:45.000000000 +0100
   868 @@ -25,6 +25,7 @@
   868 @@ -25,6 +25,7 @@
   869  */
   869  */
   870  
   870  
   871  #include "cmdlinehandler.h"
   871  #include "cmdlinehandler.h"
   872 +#include <cstring>
   872 +#include <cstring>
   873  
   873  
   874  /**
   874  /**
   875  Constructor initializes the iOptionMap with short and long option names as key and
   875  Constructor initializes the iOptionMap with short and long option names as key and
   876 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/imgcheck/src/cmdlinewriter.cpp /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/imgtools/imgcheck/src/cmdlinewriter.cpp
   876 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/imgcheck/src/cmdlinewriter.cpp /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/imgtools/imgcheck/src/cmdlinewriter.cpp
   877 --- /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/imgcheck/src/cmdlinewriter.cpp	2010-05-13 19:14:22.856604788 +0100
   877 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/imgcheck/src/cmdlinewriter.cpp	2010-05-18 19:32:31.252848475 +0100
   878 +++ /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/imgtools/imgcheck/src/cmdlinewriter.cpp	2010-05-15 14:32:45.000000000 +0100
   878 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/imgtools/imgcheck/src/cmdlinewriter.cpp	2010-05-15 14:32:45.000000000 +0100
   879 @@ -24,6 +24,7 @@
   879 @@ -24,6 +24,7 @@
   880  */
   880  */
   881  
   881  
   882  #include "cmdlinewriter.h"
   882  #include "cmdlinewriter.h"
   883 +#include <cstring>
   883 +#include <cstring>
   884  
   884  
   885  /**
   885  /**
   886  Constructor: CmdLineWriter class
   886  Constructor: CmdLineWriter class
   887 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/imgcheck/src/exceptionimplementation.cpp /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/imgtools/imgcheck/src/exceptionimplementation.cpp
   887 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/imgcheck/src/exceptionimplementation.cpp /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/imgtools/imgcheck/src/exceptionimplementation.cpp
   888 --- /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/imgcheck/src/exceptionimplementation.cpp	2010-05-13 19:14:22.856604788 +0100
   888 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/imgcheck/src/exceptionimplementation.cpp	2010-05-18 19:32:31.252848475 +0100
   889 +++ /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/imgtools/imgcheck/src/exceptionimplementation.cpp	2010-05-15 14:32:45.000000000 +0100
   889 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/imgtools/imgcheck/src/exceptionimplementation.cpp	2010-05-15 14:32:45.000000000 +0100
   890 @@ -187,7 +187,7 @@
   890 @@ -187,7 +187,7 @@
   891      
   891      
   892  	if(iCmdFlag & KVerbose)
   892  	if(iCmdFlag & KVerbose)
   893  	{
   893  	{
   894 -		cout << aMsg.c_str() << endl;
   894 -		cout << aMsg.c_str() << endl;
   907  	{
   907  	{
   908 -		cerr << aMsg.c_str() << endl;
   908 -		cerr << aMsg.c_str() << endl;
   909 +		std::cerr << aMsg.c_str() << std::endl;
   909 +		std::cerr << aMsg.c_str() << std::endl;
   910  	}
   910  	}
   911  }
   911  }
   912 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/imgcheck/src/sidchecker.cpp /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/imgtools/imgcheck/src/sidchecker.cpp
   912 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/imgcheck/src/sidchecker.cpp /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/imgtools/imgcheck/src/sidchecker.cpp
   913 --- /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/imgcheck/src/sidchecker.cpp	2010-05-13 19:14:22.861082172 +0100
   913 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/imgcheck/src/sidchecker.cpp	2010-05-18 19:32:31.256848494 +0100
   914 +++ /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/imgtools/imgcheck/src/sidchecker.cpp	2010-05-15 14:32:45.000000000 +0100
   914 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/imgtools/imgcheck/src/sidchecker.cpp	2010-05-15 14:32:45.000000000 +0100
   915 @@ -249,8 +249,8 @@
   915 @@ -249,8 +249,8 @@
   916  	{
   916  	{
   917  		exeAtt->iAttStatus = KNull;
   917  		exeAtt->iAttStatus = KNull;
   918  	}
   918  	}
   919 -	if((iAllExecutables 
   919 -	if((iAllExecutables 
   921 +	if(((iAllExecutables 
   921 +	if(((iAllExecutables 
   922 +		|| (exeAtt->iAttStatus == KDuplicate)) && !exeAtt->iAttStatus.empty())
   922 +		|| (exeAtt->iAttStatus == KDuplicate)) && !exeAtt->iAttStatus.empty())
   923  		|| iNoCheck)
   923  		|| iNoCheck)
   924  	{
   924  	{
   925  		aExeContainer->iExeAttList.push_back(exeAtt);
   925  		aExeContainer->iExeAttList.push_back(exeAtt);
   926 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/imgcheck/src/xmlwriter.cpp /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/imgtools/imgcheck/src/xmlwriter.cpp
   926 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/imgcheck/src/xmlwriter.cpp /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/imgtools/imgcheck/src/xmlwriter.cpp
   927 --- /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/imgcheck/src/xmlwriter.cpp	2010-05-13 19:14:22.861082172 +0100
   927 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/imgcheck/src/xmlwriter.cpp	2010-05-18 19:32:31.256848494 +0100
   928 +++ /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/imgtools/imgcheck/src/xmlwriter.cpp	2010-05-15 14:32:45.000000000 +0100
   928 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/imgtools/imgcheck/src/xmlwriter.cpp	2010-05-15 14:32:45.000000000 +0100
   929 @@ -24,9 +24,10 @@
   929 @@ -24,9 +24,10 @@
   930  */
   930  */
   931  
   931  
   932  #include "xmlwriter.h"
   932  #include "xmlwriter.h"
   933 +#include <cstring>
   933 +#include <cstring>
   954 -	ofstream xslDestHandle(xslDestPath.c_str(), Ios::binary | Ios::out);
   954 -	ofstream xslDestHandle(xslDestPath.c_str(), Ios::binary | Ios::out);
   955 +	Ofstream xslDestHandle(xslDestPath.c_str(), Ios::binary | Ios::out);
   955 +	Ofstream xslDestHandle(xslDestPath.c_str(), Ios::binary | Ios::out);
   956  	if(!xslDestHandle)
   956  	if(!xslDestHandle)
   957  	{
   957  	{
   958  		delete [] filetocopy;
   958  		delete [] filetocopy;
   959 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/imglib/boostlibrary/boost/thread/pthread/thread_data.hpp /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/imgtools/imglib/boostlibrary/boost/thread/pthread/thread_data.hpp
   959 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/imglib/boostlibrary/boost/thread/pthread/thread_data.hpp /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/imgtools/imglib/boostlibrary/boost/thread/pthread/thread_data.hpp
   960 --- /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/imglib/boostlibrary/boost/thread/pthread/thread_data.hpp	2010-05-13 19:14:23.441088858 +0100
   960 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/imglib/boostlibrary/boost/thread/pthread/thread_data.hpp	2010-05-18 19:32:31.796848405 +0100
   961 +++ /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/imgtools/imglib/boostlibrary/boost/thread/pthread/thread_data.hpp	2010-05-15 14:32:45.000000000 +0100
   961 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/imgtools/imglib/boostlibrary/boost/thread/pthread/thread_data.hpp	2010-05-15 14:32:45.000000000 +0100
   962 @@ -8,7 +8,7 @@
   962 @@ -8,7 +8,7 @@
   963  #include <boost/thread/detail/config.hpp>
   963  #include <boost/thread/detail/config.hpp>
   964  #include <boost/thread/exceptions.hpp>
   964  #include <boost/thread/exceptions.hpp>
   965  #include <boost/shared_ptr.hpp>
   965  #include <boost/shared_ptr.hpp>
   966 -#include <boost/enable_shared_from_this.hpp>
   966 -#include <boost/enable_shared_from_this.hpp>
   967 +#include <boost/smart_ptr/enable_shared_from_this.hpp>
   967 +#include <boost/smart_ptr/enable_shared_from_this.hpp>
   968  #include <boost/thread/mutex.hpp>
   968  #include <boost/thread/mutex.hpp>
   969  #include <boost/optional.hpp>
   969  #include <boost/optional.hpp>
   970  #include <pthread.h>
   970  #include <pthread.h>
   971 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/imglib/e32image/deflate/deflate.cpp /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/imgtools/imglib/e32image/deflate/deflate.cpp
   971 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/imglib/e32image/deflate/deflate.cpp /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/imgtools/imglib/e32image/deflate/deflate.cpp
   972 --- /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/imglib/e32image/deflate/deflate.cpp	2010-05-13 19:14:23.493081572 +0100
   972 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/imglib/e32image/deflate/deflate.cpp	2010-05-18 19:32:31.844848499 +0100
   973 +++ /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/imgtools/imglib/e32image/deflate/deflate.cpp	2010-05-15 14:32:45.000000000 +0100
   973 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/imgtools/imglib/e32image/deflate/deflate.cpp	2010-05-15 14:32:45.000000000 +0100
   974 @@ -20,6 +20,7 @@
   974 @@ -20,6 +20,7 @@
   975  #include "deflate.h"
   975  #include "deflate.h"
   976  #include "h_utl.h"
   976  #include "h_utl.h"
   977  #include "panic.h"
   977  #include "panic.h"
   978 +#define OFFSETOF(c,f) (((TInt)&(((c *)0x1000)->f))-0x1000)
   978 +#define OFFSETOF(c,f) (((TInt)&(((c *)0x1000)->f))-0x1000)
   987 +	return new(new char[OFFSETOF(HDeflateHash,iOffset[0]) + 
   987 +	return new(new char[OFFSETOF(HDeflateHash,iOffset[0]) + 
   988 +		(sizeof(TOffset) * Min(aLinks,KDeflateMaxDistance))]) HDeflateHash;
   988 +		(sizeof(TOffset) * Min(aLinks,KDeflateMaxDistance))]) HDeflateHash;
   989  	}
   989  	}
   990  
   990  
   991  inline TInt HDeflateHash::Hash(const TUint8* aPtr)
   991  inline TInt HDeflateHash::Hash(const TUint8* aPtr)
   992 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/imglib/e32image/deflate/panic.cpp /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/imgtools/imglib/e32image/deflate/panic.cpp
   992 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/imglib/e32image/deflate/panic.cpp /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/imgtools/imglib/e32image/deflate/panic.cpp
   993 --- /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/imglib/e32image/deflate/panic.cpp	2010-05-13 19:14:23.497082779 +0100
   993 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/imglib/e32image/deflate/panic.cpp	2010-05-18 19:32:31.848849218 +0100
   994 +++ /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/imgtools/imglib/e32image/deflate/panic.cpp	2010-05-15 14:32:45.000000000 +0100
   994 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/imgtools/imglib/e32image/deflate/panic.cpp	2010-05-15 14:32:45.000000000 +0100
   995 @@ -21,7 +21,7 @@
   995 @@ -21,7 +21,7 @@
   996  #include "h_utl.h"
   996  #include "h_utl.h"
   997  #include <stdlib.h>
   997  #include <stdlib.h>
   998  
   998  
   999 -char* HuffmanError[]=	{
   999 -char* HuffmanError[]=	{
  1000 +char const * HuffmanError[]=	{
  1000 +char const * HuffmanError[]=	{
  1001  						"Huffman: Too many codes\n",
  1001  						"Huffman: Too many codes\n",
  1002  						"Huffman: Invalid coding\n",
  1002  						"Huffman: Invalid coding\n",
  1003  						"Huffman: Buffer overflow\n",
  1003  						"Huffman: Buffer overflow\n",
  1004 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/imglib/e32uid/uidcrc.cpp /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/imgtools/imglib/e32uid/uidcrc.cpp
  1004 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/imglib/e32uid/uidcrc.cpp /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/imgtools/imglib/e32uid/uidcrc.cpp
  1005 --- /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/imglib/e32uid/uidcrc.cpp	2010-05-13 19:14:23.497082779 +0100
  1005 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/imglib/e32uid/uidcrc.cpp	2010-05-18 19:32:31.848849218 +0100
  1006 +++ /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/imgtools/imglib/e32uid/uidcrc.cpp	2010-05-15 14:32:45.000000000 +0100
  1006 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/imgtools/imglib/e32uid/uidcrc.cpp	2010-05-15 14:32:45.000000000 +0100
  1007 @@ -55,7 +55,7 @@
  1007 @@ -55,7 +55,7 @@
  1008  
  1008  
  1009  	for (i=1; i<4; i++)
  1009  	for (i=1; i<4; i++)
  1010  		{
  1010  		{
  1011 -		char* endptr = "failed";
  1011 -		char* endptr = "failed";
  1012 +		char * endptr;
  1012 +		char * endptr;
  1013  		uids[i] = strtoul(argv[i],&endptr,0);
  1013  		uids[i] = strtoul(argv[i],&endptr,0);
  1014  		if (*endptr!='\0')
  1014  		if (*endptr!='\0')
  1015  			{
  1015  			{
  1016 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/imglib/filesystem/include/errorhandler.h /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/imgtools/imglib/filesystem/include/errorhandler.h
  1016 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/imglib/filesystem/include/errorhandler.h /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/imgtools/imglib/filesystem/include/errorhandler.h
  1017 --- /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/imglib/filesystem/include/errorhandler.h	2010-05-13 19:14:23.501082380 +0100
  1017 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/imglib/filesystem/include/errorhandler.h	2010-05-18 19:32:31.852848469 +0100
  1018 +++ /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/imgtools/imglib/filesystem/include/errorhandler.h	2010-05-15 14:32:45.000000000 +0100
  1018 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/imgtools/imglib/filesystem/include/errorhandler.h	2010-05-15 14:32:45.000000000 +0100
  1019 @@ -36,8 +36,8 @@
  1019 @@ -36,8 +36,8 @@
  1020  class ErrorHandler
  1020  class ErrorHandler
  1021  {
  1021  {
  1022  	public:
  1022  	public:
  1023 -		ErrorHandler(int aMessageIndex,char* aSubMessage,char* aFileName, int aLineNumber);
  1023 -		ErrorHandler(int aMessageIndex,char* aSubMessage,char* aFileName, int aLineNumber);
  1025 +		ErrorHandler(int aMessageIndex,char const * aSubMessage,char const * aFileName, int aLineNumber);
  1025 +		ErrorHandler(int aMessageIndex,char const * aSubMessage,char const * aFileName, int aLineNumber);
  1026 +        ErrorHandler(int aMessageIndex, char const* aFileName, int aLineNumber);
  1026 +        ErrorHandler(int aMessageIndex, char const* aFileName, int aLineNumber);
  1027  		virtual ~ErrorHandler();
  1027  		virtual ~ErrorHandler();
  1028  		void Report();
  1028  		void Report();
  1029  
  1029  
  1030 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/imglib/filesystem/include/filesysteminterface.h /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/imgtools/imglib/filesystem/include/filesysteminterface.h
  1030 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/imglib/filesystem/include/filesysteminterface.h /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/imgtools/imglib/filesystem/include/filesysteminterface.h
  1031 --- /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/imglib/filesystem/include/filesysteminterface.h	2010-05-13 19:14:23.501082380 +0100
  1031 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/imglib/filesystem/include/filesysteminterface.h	2010-05-18 19:32:31.852848469 +0100
  1032 +++ /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/imgtools/imglib/filesystem/include/filesysteminterface.h	2010-05-15 16:42:12.000000000 +0100
  1032 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/imgtools/imglib/filesystem/include/filesysteminterface.h	2010-05-15 16:42:12.000000000 +0100
  1033 @@ -24,6 +24,7 @@
  1033 @@ -24,6 +24,7 @@
  1034  
  1034  
  1035  #include "directory.h"
  1035  #include "directory.h"
  1036  #include <fstream>
  1036  #include <fstream>
  1037 +#include <cstdlib>
  1037 +#include <cstdlib>
  1038  
  1038  
  1039  typedef std::ofstream Ofstream;
  1039  typedef std::ofstream Ofstream;
  1040  
  1040  
  1041 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/imglib/filesystem/include/messagehandler.h /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/imgtools/imglib/filesystem/include/messagehandler.h
  1041 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/imglib/filesystem/include/messagehandler.h /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/imgtools/imglib/filesystem/include/messagehandler.h
  1042 --- /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/imglib/filesystem/include/messagehandler.h	2010-05-13 19:14:23.501082380 +0100
  1042 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/imglib/filesystem/include/messagehandler.h	2010-05-18 19:32:31.852848469 +0100
  1043 +++ /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/imgtools/imglib/filesystem/include/messagehandler.h	2010-05-15 14:32:45.000000000 +0100
  1043 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/imgtools/imglib/filesystem/include/messagehandler.h	2010-05-15 14:32:45.000000000 +0100
  1044 @@ -36,9 +36,9 @@
  1044 @@ -36,9 +36,9 @@
  1045      public:
  1045      public:
  1046  		static Message *GetInstance();
  1046  		static Message *GetInstance();
  1047  		static void CleanUp();
  1047  		static void CleanUp();
  1048 -		static void StartLogging(char *filename);
  1048 -		static void StartLogging(char *filename);
  1052 +		static void CreateMessageFile(char const *fileName);
  1052 +		static void CreateMessageFile(char const *fileName);
  1053 +		static void ReportMessage(int aMsgType, int aMsgIndex,char const* aName);
  1053 +		static void ReportMessage(int aMsgType, int aMsgIndex,char const* aName);
  1054  
  1054  
  1055      private:
  1055      private:
  1056  		static Message* iInstance;
  1056  		static Message* iInstance;
  1057 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/imglib/filesystem/include/messageimplementation.h /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/imgtools/imglib/filesystem/include/messageimplementation.h
  1057 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/imglib/filesystem/include/messageimplementation.h /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/imgtools/imglib/filesystem/include/messageimplementation.h
  1058 --- /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/imglib/filesystem/include/messageimplementation.h	2010-05-13 19:14:23.501082380 +0100
  1058 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/imglib/filesystem/include/messageimplementation.h	2010-05-18 19:32:31.852848469 +0100
  1059 +++ /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/imgtools/imglib/filesystem/include/messageimplementation.h	2010-05-15 14:32:45.000000000 +0100
  1059 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/imgtools/imglib/filesystem/include/messageimplementation.h	2010-05-15 14:32:45.000000000 +0100
  1060 @@ -84,7 +84,7 @@
  1060 @@ -84,7 +84,7 @@
  1061  		// display message to output device
  1061  		// display message to output device
  1062  		virtual void Output(const char *aName) =0;
  1062  		virtual void Output(const char *aName) =0;
  1063  		// start logging to a file
  1063  		// start logging to a file
  1064 -		virtual void StartLogging(char *fileName)=0;
  1064 -		virtual void StartLogging(char *fileName)=0;
  1073 -		void StartLogging(char *fileName);
  1073 -		void StartLogging(char *fileName);
  1074 +		void StartLogging(char const *fileName);
  1074 +		void StartLogging(char const *fileName);
  1075  		void ReportMessage(int aMsgType, int aMsgIndex,...);
  1075  		void ReportMessage(int aMsgType, int aMsgIndex,...);
  1076  		void InitializeMessages();
  1076  		void InitializeMessages();
  1077      private:
  1077      private:
  1078 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/imglib/filesystem/source/cluster.cpp /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/imgtools/imglib/filesystem/source/cluster.cpp
  1078 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/imglib/filesystem/source/cluster.cpp /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/imgtools/imglib/filesystem/source/cluster.cpp
  1079 --- /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/imglib/filesystem/source/cluster.cpp	2010-05-13 19:14:23.505082539 +0100
  1079 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/imglib/filesystem/source/cluster.cpp	2010-05-18 19:32:31.852848469 +0100
  1080 +++ /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/imgtools/imglib/filesystem/source/cluster.cpp	2010-05-15 14:32:45.000000000 +0100
  1080 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/imgtools/imglib/filesystem/source/cluster.cpp	2010-05-15 14:32:45.000000000 +0100
  1081 @@ -143,7 +143,9 @@
  1081 @@ -143,7 +143,9 @@
  1082  {
  1082  {
  1083  	if(iCurrentClusterNumber >= iTotalNumberOfClusters)
  1083  	if(iCurrentClusterNumber >= iTotalNumberOfClusters)
  1084  	{
  1084  	{
  1085 -    	throw ErrorHandler(IMAGESIZETOOBIG,"Occupied number of clusters count exceeded than available clusters",__FILE__,__LINE__);
  1085 -    	throw ErrorHandler(IMAGESIZETOOBIG,"Occupied number of clusters count exceeded than available clusters",__FILE__,__LINE__);
  1087 +			"Occupied number of clusters count exceeded than available clusters",
  1087 +			"Occupied number of clusters count exceeded than available clusters",
  1088 +			__FILE__,__LINE__);
  1088 +			__FILE__,__LINE__);
  1089  	}
  1089  	}
  1090  	++iCurrentClusterNumber;
  1090  	++iCurrentClusterNumber;
  1091  }
  1091  }
  1092 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/imglib/filesystem/source/dirregion.cpp /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/imgtools/imglib/filesystem/source/dirregion.cpp
  1092 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/imglib/filesystem/source/dirregion.cpp /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/imgtools/imglib/filesystem/source/dirregion.cpp
  1093 --- /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/imglib/filesystem/source/dirregion.cpp	2010-05-13 19:14:23.505082539 +0100
  1093 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/imglib/filesystem/source/dirregion.cpp	2010-05-18 19:32:31.856848559 +0100
  1094 +++ /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/imgtools/imglib/filesystem/source/dirregion.cpp	2010-05-15 14:32:45.000000000 +0100
  1094 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/imgtools/imglib/filesystem/source/dirregion.cpp	2010-05-15 14:32:45.000000000 +0100
  1095 @@ -49,7 +49,7 @@
  1095 @@ -49,7 +49,7 @@
  1096  	iClusterPtr = CCluster::Instance(iClusterSize,totalClusters);
  1096  	iClusterPtr = CCluster::Instance(iClusterSize,totalClusters);
  1097  	if(iClusterPtr == NULL)
  1097  	if(iClusterPtr == NULL)
  1098  	{
  1098  	{
  1099 -		throw ErrorHandler(CLUSTERERROR,"Instance creation error", __FILE__, __LINE__);
  1099 -		throw ErrorHandler(CLUSTERERROR,"Instance creation error", __FILE__, __LINE__);
  1171 -		throw ErrorHandler(ROOTNOTFOUND, __FILE__, __LINE__);
  1171 -		throw ErrorHandler(ROOTNOTFOUND, __FILE__, __LINE__);
  1172 +		throw ErrorHandler(ROOTNOTFOUND,__FILE__,__LINE__);
  1172 +		throw ErrorHandler(ROOTNOTFOUND,__FILE__,__LINE__);
  1173  	}
  1173  	}
  1174  }
  1174  }
  1175  
  1175  
  1176 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/imglib/filesystem/source/errorhandler.cpp /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/imgtools/imglib/filesystem/source/errorhandler.cpp
  1176 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/imglib/filesystem/source/errorhandler.cpp /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/imgtools/imglib/filesystem/source/errorhandler.cpp
  1177 --- /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/imglib/filesystem/source/errorhandler.cpp	2010-05-13 19:14:23.505082539 +0100
  1177 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/imglib/filesystem/source/errorhandler.cpp	2010-05-18 19:32:31.856848559 +0100
  1178 +++ /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/imgtools/imglib/filesystem/source/errorhandler.cpp	2010-05-15 14:32:45.000000000 +0100
  1178 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/imgtools/imglib/filesystem/source/errorhandler.cpp	2010-05-15 14:32:45.000000000 +0100
  1179 @@ -22,9 +22,10 @@
  1179 @@ -22,9 +22,10 @@
  1180  
  1180  
  1181  #include "errorhandler.h"
  1181  #include "errorhandler.h"
  1182  #include "messagehandler.h"
  1182  #include "messagehandler.h"
  1183 +#include <cstring>
  1183 +#include <cstring>
  1205 -ErrorHandler::ErrorHandler(int aMessageIndex, char* aFileName, int aLineNumber)
  1205 -ErrorHandler::ErrorHandler(int aMessageIndex, char* aFileName, int aLineNumber)
  1206 +ErrorHandler::ErrorHandler(int aMessageIndex, char const* aFileName, int aLineNumber)
  1206 +ErrorHandler::ErrorHandler(int aMessageIndex, char const* aFileName, int aLineNumber)
  1207                              : iFileName(aFileName), iLineNumber(aLineNumber)
  1207                              : iFileName(aFileName), iLineNumber(aLineNumber)
  1208  {
  1208  {
  1209  	iMessageIndex = aMessageIndex;
  1209  	iMessageIndex = aMessageIndex;
  1210 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/imglib/filesystem/source/fat16bootsector.cpp /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/imgtools/imglib/filesystem/source/fat16bootsector.cpp
  1210 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/imglib/filesystem/source/fat16bootsector.cpp /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/imgtools/imglib/filesystem/source/fat16bootsector.cpp
  1211 --- /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/imglib/filesystem/source/fat16bootsector.cpp	2010-05-13 19:14:23.505082539 +0100
  1211 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/imglib/filesystem/source/fat16bootsector.cpp	2010-05-18 19:32:31.856848559 +0100
  1212 +++ /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/imgtools/imglib/filesystem/source/fat16bootsector.cpp	2010-05-15 14:32:45.000000000 +0100
  1212 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/imgtools/imglib/filesystem/source/fat16bootsector.cpp	2010-05-15 14:32:45.000000000 +0100
  1213 @@ -21,6 +21,7 @@
  1213 @@ -21,6 +21,7 @@
  1214  */
  1214  */
  1215  
  1215  
  1216  #include "fat16bootsector.h"
  1216  #include "fat16bootsector.h"
  1217 +#include <cstring>
  1217 +#include <cstring>
  1218  
  1218  
  1219  /**
  1219  /**
  1220  Constructor of the fat16 boot sector class
  1220  Constructor of the fat16 boot sector class
  1221 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/imglib/filesystem/source/fat16filesystem.cpp /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/imgtools/imglib/filesystem/source/fat16filesystem.cpp
  1221 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/imglib/filesystem/source/fat16filesystem.cpp /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/imgtools/imglib/filesystem/source/fat16filesystem.cpp
  1222 --- /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/imglib/filesystem/source/fat16filesystem.cpp	2010-05-13 19:14:23.505082539 +0100
  1222 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/imglib/filesystem/source/fat16filesystem.cpp	2010-05-18 19:32:31.856848559 +0100
  1223 +++ /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/imgtools/imglib/filesystem/source/fat16filesystem.cpp	2010-05-15 14:32:45.000000000 +0100
  1223 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/imgtools/imglib/filesystem/source/fat16filesystem.cpp	2010-05-15 14:32:45.000000000 +0100
  1224 @@ -21,7 +21,7 @@
  1224 @@ -21,7 +21,7 @@
  1225  */
  1225  */
  1226  
  1226  
  1227  #include"fat16filesystem.h"
  1227  #include"fat16filesystem.h"
  1228 -
  1228 -
  1322  		delete dirRegionPtr;
  1322  		delete dirRegionPtr;
  1323 -		throw ErrorHandler(UNKNOWNERROR, __FILE__, __LINE__);
  1323 -		throw ErrorHandler(UNKNOWNERROR, __FILE__, __LINE__);
  1324 +		throw ErrorHandler(UNKNOWNERROR,__FILE__,__LINE__);
  1324 +		throw ErrorHandler(UNKNOWNERROR,__FILE__,__LINE__);
  1325  	}
  1325  	}
  1326  }
  1326  }
  1327 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/imglib/filesystem/source/fat32bootsector.cpp /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/imgtools/imglib/filesystem/source/fat32bootsector.cpp
  1327 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/imglib/filesystem/source/fat32bootsector.cpp /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/imgtools/imglib/filesystem/source/fat32bootsector.cpp
  1328 --- /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/imglib/filesystem/source/fat32bootsector.cpp	2010-05-13 19:14:23.505082539 +0100
  1328 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/imglib/filesystem/source/fat32bootsector.cpp	2010-05-18 19:32:31.856848559 +0100
  1329 +++ /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/imgtools/imglib/filesystem/source/fat32bootsector.cpp	2010-05-15 14:32:45.000000000 +0100
  1329 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/imgtools/imglib/filesystem/source/fat32bootsector.cpp	2010-05-15 14:32:45.000000000 +0100
  1330 @@ -21,6 +21,7 @@
  1330 @@ -21,6 +21,7 @@
  1331  */
  1331  */
  1332  
  1332  
  1333  #include "fat32bootsector.h"
  1333  #include "fat32bootsector.h"
  1334 +#include <cstring>
  1334 +#include <cstring>
  1335  
  1335  
  1336  /**
  1336  /**
  1337  Constructor of the fat16 boot sector class
  1337  Constructor of the fat16 boot sector class
  1338 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/imglib/filesystem/source/fat32filesystem.cpp /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/imgtools/imglib/filesystem/source/fat32filesystem.cpp
  1338 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/imglib/filesystem/source/fat32filesystem.cpp /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/imgtools/imglib/filesystem/source/fat32filesystem.cpp
  1339 --- /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/imglib/filesystem/source/fat32filesystem.cpp	2010-05-13 19:14:23.505082539 +0100
  1339 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/imglib/filesystem/source/fat32filesystem.cpp	2010-05-18 19:32:31.856848559 +0100
  1340 +++ /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/imgtools/imglib/filesystem/source/fat32filesystem.cpp	2010-05-15 14:32:45.000000000 +0100
  1340 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/imgtools/imglib/filesystem/source/fat32filesystem.cpp	2010-05-15 14:32:45.000000000 +0100
  1341 @@ -21,6 +21,7 @@
  1341 @@ -21,6 +21,7 @@
  1342  */
  1342  */
  1343  
  1343  
  1344  #include"fat32filesystem.h"
  1344  #include"fat32filesystem.h"
  1345 +#include <cstring>
  1345 +#include <cstring>
  1511 -		throw ErrorHandler(UNKNOWNERROR, __FILE__, __LINE__);
  1511 -		throw ErrorHandler(UNKNOWNERROR, __FILE__, __LINE__);
  1512 +		throw ErrorHandler(UNKNOWNERROR,__FILE__,__LINE__);
  1512 +		throw ErrorHandler(UNKNOWNERROR,__FILE__,__LINE__);
  1513  	}
  1513  	}
  1514  }
  1514  }
  1515  
  1515  
  1516 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/imglib/filesystem/source/fatbasebootsector.cpp /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/imgtools/imglib/filesystem/source/fatbasebootsector.cpp
  1516 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/imglib/filesystem/source/fatbasebootsector.cpp /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/imgtools/imglib/filesystem/source/fatbasebootsector.cpp
  1517 --- /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/imglib/filesystem/source/fatbasebootsector.cpp	2010-05-13 19:14:23.505082539 +0100
  1517 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/imglib/filesystem/source/fatbasebootsector.cpp	2010-05-18 19:32:31.856848559 +0100
  1518 +++ /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/imgtools/imglib/filesystem/source/fatbasebootsector.cpp	2010-05-15 14:32:45.000000000 +0100
  1518 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/imgtools/imglib/filesystem/source/fatbasebootsector.cpp	2010-05-15 14:32:45.000000000 +0100
  1519 @@ -22,6 +22,7 @@
  1519 @@ -22,6 +22,7 @@
  1520  */
  1520  */
  1521  
  1521  
  1522  #include "fatbasebootsector.h"
  1522  #include "fatbasebootsector.h"
  1523 +#include <cstring>
  1523 +#include <cstring>
  1524  
  1524  
  1525  /**
  1525  /**
  1526  Constructor of the base boot sector class
  1526  Constructor of the base boot sector class
  1527 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/imglib/filesystem/source/filesysteminterface.cpp /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/imgtools/imglib/filesystem/source/filesysteminterface.cpp
  1527 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/imglib/filesystem/source/filesysteminterface.cpp /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/imgtools/imglib/filesystem/source/filesysteminterface.cpp
  1528 --- /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/imglib/filesystem/source/filesysteminterface.cpp	2010-05-13 19:14:23.505082539 +0100
  1528 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/imglib/filesystem/source/filesysteminterface.cpp	2010-05-18 19:32:31.856848559 +0100
  1529 +++ /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/imgtools/imglib/filesystem/source/filesysteminterface.cpp	2010-05-15 14:32:45.000000000 +0100
  1529 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/imgtools/imglib/filesystem/source/filesysteminterface.cpp	2010-05-15 14:32:45.000000000 +0100
  1530 @@ -62,7 +62,7 @@
  1530 @@ -62,7 +62,7 @@
  1531  		iOutputStream.open(aImageFileName,ios::out|ios::binary);
  1531  		iOutputStream.open(aImageFileName,ios::out|ios::binary);
  1532  		if(iOutputStream.fail() == true )
  1532  		if(iOutputStream.fail() == true )
  1533  		{
  1533  		{
  1534 -			throw ErrorHandler(FILEOPENERROR,aImageFileName,__FILE__, __LINE__);
  1534 -			throw ErrorHandler(FILEOPENERROR,aImageFileName,__FILE__, __LINE__);
  1535 +			throw ErrorHandler(FILEOPENERROR,aImageFileName,__FILE__,__LINE__);
  1535 +			throw ErrorHandler(FILEOPENERROR,aImageFileName,__FILE__,__LINE__);
  1536  		}
  1536  		}
  1537  		switch(aFileSystem)
  1537  		switch(aFileSystem)
  1538  		{
  1538  		{
  1539 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/imglib/filesystem/source/longname.cpp /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/imgtools/imglib/filesystem/source/longname.cpp
  1539 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/imglib/filesystem/source/longname.cpp /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/imgtools/imglib/filesystem/source/longname.cpp
  1540 --- /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/imglib/filesystem/source/longname.cpp	2010-05-13 19:14:23.509081790 +0100
  1540 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/imglib/filesystem/source/longname.cpp	2010-05-18 19:32:31.856848559 +0100
  1541 +++ /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/imgtools/imglib/filesystem/source/longname.cpp	2010-05-15 14:32:45.000000000 +0100
  1541 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/imgtools/imglib/filesystem/source/longname.cpp	2010-05-15 14:32:45.000000000 +0100
  1542 @@ -21,6 +21,7 @@
  1542 @@ -21,6 +21,7 @@
  1543  
  1543  
  1544  
  1544  
  1545  #include "longname.h"
  1545  #include "longname.h"
  1546 +#include <cstring>
  1546 +#include <cstring>
  1554 -		throw ErrorHandler(EMPTYFILENAME, __FILE__, __LINE__);
  1554 -		throw ErrorHandler(EMPTYFILENAME, __FILE__, __LINE__);
  1555 +		throw ErrorHandler(EMPTYFILENAME,__FILE__,__LINE__);
  1555 +		throw ErrorHandler(EMPTYFILENAME,__FILE__,__LINE__);
  1556  	}
  1556  	}
  1557  	FormatLongFileName(iLongName);
  1557  	FormatLongFileName(iLongName);
  1558  	iShortName = GetShortEntryName();
  1558  	iShortName = GetShortEntryName();
  1559 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/imglib/filesystem/source/messagehandler.cpp /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/imgtools/imglib/filesystem/source/messagehandler.cpp
  1559 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/imglib/filesystem/source/messagehandler.cpp /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/imgtools/imglib/filesystem/source/messagehandler.cpp
  1560 --- /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/imglib/filesystem/source/messagehandler.cpp	2010-05-13 19:14:23.509081790 +0100
  1560 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/imglib/filesystem/source/messagehandler.cpp	2010-05-18 19:32:31.860849207 +0100
  1561 +++ /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/imgtools/imglib/filesystem/source/messagehandler.cpp	2010-05-15 14:32:45.000000000 +0100
  1561 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/imgtools/imglib/filesystem/source/messagehandler.cpp	2010-05-15 14:32:45.000000000 +0100
  1562 @@ -51,7 +51,7 @@
  1562 @@ -51,7 +51,7 @@
  1563  @param aFileName
  1563  @param aFileName
  1564  Name of the Log File
  1564  Name of the Log File
  1565  */
  1565  */
  1566 -void MessageHandler::StartLogging(char *aFileName)
  1566 -void MessageHandler::StartLogging(char *aFileName)
  1575 -void MessageHandler::ReportMessage(int aMsgType, int aMsgIndex,char* aName)
  1575 -void MessageHandler::ReportMessage(int aMsgType, int aMsgIndex,char* aName)
  1576 +void MessageHandler::ReportMessage(int aMsgType, int aMsgIndex,char const* aName)
  1576 +void MessageHandler::ReportMessage(int aMsgType, int aMsgIndex,char const* aName)
  1577  {
  1577  {
  1578  	GetInstance()->ReportMessage(aMsgType,aMsgIndex,aName);
  1578  	GetInstance()->ReportMessage(aMsgType,aMsgIndex,aName);
  1579  }
  1579  }
  1580 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/imglib/filesystem/source/messageimplementation.cpp /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/imgtools/imglib/filesystem/source/messageimplementation.cpp
  1580 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/imglib/filesystem/source/messageimplementation.cpp /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/imgtools/imglib/filesystem/source/messageimplementation.cpp
  1581 --- /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/imglib/filesystem/source/messageimplementation.cpp	2010-05-13 19:14:23.509081790 +0100
  1581 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/imglib/filesystem/source/messageimplementation.cpp	2010-05-18 19:32:31.860849207 +0100
  1582 +++ /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/imgtools/imglib/filesystem/source/messageimplementation.cpp	2010-05-15 14:32:45.000000000 +0100
  1582 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/imgtools/imglib/filesystem/source/messageimplementation.cpp	2010-05-15 14:32:45.000000000 +0100
  1583 @@ -23,15 +23,17 @@
  1583 @@ -23,15 +23,17 @@
  1584  
  1584  
  1585  #include "messageimplementation.h"
  1585  #include "messageimplementation.h"
  1586  #include "errorhandler.h"
  1586  #include "errorhandler.h"
  1587 +#include <cstring>
  1587 +#include <cstring>
  1609 -void MessageImplementation::StartLogging(char *aFileName)
  1609 -void MessageImplementation::StartLogging(char *aFileName)
  1610 +void MessageImplementation::StartLogging(char const *aFileName)
  1610 +void MessageImplementation::StartLogging(char const *aFileName)
  1611  {
  1611  {
  1612  	char logFile[1024];
  1612  	char logFile[1024];
  1613  	FILE *fptr;
  1613  	FILE *fptr;
  1614 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/imglib/host/h_utl.cpp /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/imgtools/imglib/host/h_utl.cpp
  1614 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/imglib/host/h_utl.cpp /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/imgtools/imglib/host/h_utl.cpp
  1615 --- /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/imglib/host/h_utl.cpp	2010-05-13 19:14:23.509081790 +0100
  1615 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/imglib/host/h_utl.cpp	2010-05-18 19:32:31.860849207 +0100
  1616 +++ /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/imgtools/imglib/host/h_utl.cpp	2010-05-15 14:32:45.000000000 +0100
  1616 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/imgtools/imglib/host/h_utl.cpp	2010-05-15 14:32:45.000000000 +0100
  1617 @@ -177,7 +177,7 @@
  1617 @@ -177,7 +177,7 @@
  1618  
  1618  
  1619  
  1619  
  1620  	TInt build=0;
  1620  	TInt build=0;
  1621 -	memset(&aVersion, sizeof(TVersion), 0);	
  1621 -	memset(&aVersion, sizeof(TVersion), 0);	
  1630 -	char* pMinor = strchr(str, '.');
  1630 -	char* pMinor = strchr(str, '.');
  1631 +	char const * pMinor = strchr(str, '.');
  1631 +	char const * pMinor = strchr(str, '.');
  1632  	if (pMinor)
  1632  	if (pMinor)
  1633  		{
  1633  		{
  1634  		pMinor++; 
  1634  		pMinor++; 
  1635 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/imglib/inc/h_utl.h /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/imgtools/imglib/inc/h_utl.h
  1635 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/imglib/inc/h_utl.h /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/imgtools/imglib/inc/h_utl.h
  1636 --- /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/imglib/inc/h_utl.h	2010-05-13 19:14:23.513082299 +0100
  1636 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/imglib/inc/h_utl.h	2010-05-18 19:32:31.860849207 +0100
  1637 +++ /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/imgtools/imglib/inc/h_utl.h	2010-05-15 14:32:45.000000000 +0100
  1637 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/imgtools/imglib/inc/h_utl.h	2010-05-15 14:32:45.000000000 +0100
  1638 @@ -65,9 +65,6 @@
  1638 @@ -65,9 +65,6 @@
  1639  #define _stricmp strcasecmp		
  1639  #define _stricmp strcasecmp		
  1640  #define strnicmp strncasecmp	
  1640  #define strnicmp strncasecmp	
  1641  
  1641  
  1642 -// to fix the linux problem: memcpy does not work with overlapped areas.
  1642 -// to fix the linux problem: memcpy does not work with overlapped areas.
  1643 -#define memcpy memmove
  1643 -#define memcpy memmove
  1644 -
  1644 -
  1645  // hand-rolled strupr function for converting a string to all uppercase
  1645  // hand-rolled strupr function for converting a string to all uppercase
  1646  char* strupr(char *a);
  1646  char* strupr(char *a);
  1647  
  1647  
  1648 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/imglib/parameterfileprocessor/source/parameterfileprocessor.cpp /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/imgtools/imglib/parameterfileprocessor/source/parameterfileprocessor.cpp
  1648 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/imglib/parameterfileprocessor/source/parameterfileprocessor.cpp /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/imgtools/imglib/parameterfileprocessor/source/parameterfileprocessor.cpp
  1649 --- /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/imglib/parameterfileprocessor/source/parameterfileprocessor.cpp	2010-05-13 19:14:23.513082299 +0100
  1649 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/imglib/parameterfileprocessor/source/parameterfileprocessor.cpp	2010-05-18 19:32:31.864848459 +0100
  1650 +++ /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/imgtools/imglib/parameterfileprocessor/source/parameterfileprocessor.cpp	2010-05-15 14:32:45.000000000 +0100
  1650 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/imgtools/imglib/parameterfileprocessor/source/parameterfileprocessor.cpp	2010-05-15 14:32:45.000000000 +0100
  1651 @@ -21,6 +21,7 @@
  1651 @@ -21,6 +21,7 @@
  1652  
  1652  
  1653  
  1653  
  1654  #include "parameterfileprocessor.h"
  1654  #include "parameterfileprocessor.h"
  1655 +#include <cstring>
  1655 +#include <cstring>
  1656  
  1656  
  1657  
  1657  
  1658  /**
  1658  /**
  1659 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/romtools/group/BLD.INF /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/imgtools/romtools/group/BLD.INF
  1659 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/romtools/group/BLD.INF /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/imgtools/romtools/group/BLD.INF
  1660 --- /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/romtools/group/BLD.INF	2010-05-13 19:14:23.517082109 +0100
  1660 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/romtools/group/BLD.INF	2010-05-18 19:32:31.868848898 +0100
  1661 +++ /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/imgtools/romtools/group/BLD.INF	2010-05-15 14:32:45.000000000 +0100
  1661 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/imgtools/romtools/group/BLD.INF	2010-05-15 14:32:45.000000000 +0100
  1662 @@ -15,13 +15,14 @@
  1662 @@ -15,13 +15,14 @@
  1663  *
  1663  *
  1664  */
  1664  */
  1665  
  1665  
  1666 +#include <productvariant.hrh>
  1666 +#include <productvariant.hrh>
  1673 -../maksym/fixupsym.bat              /epoc32/tools/fixupsym.bat
  1673 -../maksym/fixupsym.bat              /epoc32/tools/fixupsym.bat
  1674 +../maksym/fixupsym.bat              EPOCROOT_EXPORT_PATH(epoc32/tools/fixupsym.bat)
  1674 +../maksym/fixupsym.bat              EPOCROOT_EXPORT_PATH(epoc32/tools/fixupsym.bat)
  1675  ../maksym/hpsym.bat                 /epoc32/tools/hpsym.bat
  1675  ../maksym/hpsym.bat                 /epoc32/tools/hpsym.bat
  1676  ../maksym/maksym.bat                /epoc32/tools/maksym.bat
  1676  ../maksym/maksym.bat                /epoc32/tools/maksym.bat
  1677  ../maksym/maksymrofs.bat            /epoc32/tools/maksymrofs.bat
  1677  ../maksym/maksymrofs.bat            /epoc32/tools/maksymrofs.bat
  1678 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/romtools/group/readimage.mmp /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/imgtools/romtools/group/readimage.mmp
  1678 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/romtools/group/readimage.mmp /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/imgtools/romtools/group/readimage.mmp
  1679 --- /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/romtools/group/readimage.mmp	2010-05-13 19:14:23.517082109 +0100
  1679 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/romtools/group/readimage.mmp	2010-05-18 19:32:31.868848898 +0100
  1680 +++ /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/imgtools/romtools/group/readimage.mmp	2010-05-15 14:32:45.000000000 +0100
  1680 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/imgtools/romtools/group/readimage.mmp	2010-05-15 14:32:45.000000000 +0100
  1681 @@ -45,15 +45,16 @@
  1681 @@ -45,15 +45,16 @@
  1682  userinclude     ..\..\imglib\compress 
  1682  userinclude     ..\..\imglib\compress 
  1683  userinclude		..\..\imglib\patchdataprocessor\include
  1683  userinclude		..\..\imglib\patchdataprocessor\include
  1684  userinclude		..\..\sisutils\inc
  1684  userinclude		..\..\sisutils\inc
  1685 +#ifndef TOOLS2_LINUX
  1685 +#ifndef TOOLS2_LINUX
  1695 -OPTION    GCC -pthread -O2 -Wno-uninitialized
  1695 -OPTION    GCC -pthread -O2 -Wno-uninitialized
  1696 +OPTION    GCC -pthread -O2 -Wno-uninitialized -lboost_thread-mt
  1696 +OPTION    GCC -pthread -O2 -Wno-uninitialized -lboost_thread-mt
  1697  #else
  1697  #else
  1698  STATICLIBRARY   boost_thread-mgw34-mt-1_39_win32
  1698  STATICLIBRARY   boost_thread-mgw34-mt-1_39_win32
  1699  OPTION    GCC -mthreads -O2 -Wno-uninitialized
  1699  OPTION    GCC -mthreads -O2 -Wno-uninitialized
  1700 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/romtools/readimage/inc/common.h /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/imgtools/romtools/readimage/inc/common.h
  1700 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/romtools/readimage/inc/common.h /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/imgtools/romtools/readimage/inc/common.h
  1701 --- /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/romtools/readimage/inc/common.h	2010-05-13 19:14:23.521083525 +0100
  1701 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/romtools/readimage/inc/common.h	2010-05-18 19:32:31.872848917 +0100
  1702 +++ /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/imgtools/romtools/readimage/inc/common.h	2010-05-15 14:32:45.000000000 +0100
  1702 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/imgtools/romtools/readimage/inc/common.h	2010-05-15 14:32:45.000000000 +0100
  1703 @@ -46,7 +46,7 @@
  1703 @@ -46,7 +46,7 @@
  1704  #define DLL_UID1	10000079
  1704  #define DLL_UID1	10000079
  1705  #define EXE_UID1	1000007a
  1705  #define EXE_UID1	1000007a
  1706  
  1706  
  1707 -typedef enum EImageType
  1707 -typedef enum EImageType
  1717 -				   char aFiller='0', TUint aMaxDescWidth=28);
  1717 -				   char aFiller='0', TUint aMaxDescWidth=28);
  1718 +ostream& DumpInHex(char const * aDesc, TUint32 aData, bool aContinue = false,
  1718 +ostream& DumpInHex(char const * aDesc, TUint32 aData, bool aContinue = false,
  1719 +			TUint aDataWidth=8, char aFiller='0', TUint aMaxDescWidth=28);
  1719 +			TUint aDataWidth=8, char aFiller='0', TUint aMaxDescWidth=28);
  1720  
  1720  
  1721  #endif //__IMAGE_READER_COMMON_H_
  1721  #endif //__IMAGE_READER_COMMON_H_
  1722 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/romtools/readimage/inc/image_reader.h /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/imgtools/romtools/readimage/inc/image_reader.h
  1722 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/romtools/readimage/inc/image_reader.h /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/imgtools/romtools/readimage/inc/image_reader.h
  1723 --- /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/romtools/readimage/inc/image_reader.h	2010-05-13 19:14:23.521083525 +0100
  1723 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/romtools/readimage/inc/image_reader.h	2010-05-18 19:32:31.872848917 +0100
  1724 +++ /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/imgtools/romtools/readimage/inc/image_reader.h	2010-05-15 14:32:45.000000000 +0100
  1724 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/imgtools/romtools/readimage/inc/image_reader.h	2010-05-15 14:32:45.000000000 +0100
  1725 @@ -27,7 +27,19 @@
  1725 @@ -27,7 +27,19 @@
  1726  
  1726  
  1727  
  1727  
  1728  #include "common.h"
  1728  #include "common.h"
  1729 -#include <direct.h>
  1729 -#include <direct.h>
  1741 +#endif
  1741 +#endif
  1742 +
  1742 +
  1743  #include <map>
  1743  #include <map>
  1744  
  1744  
  1745  typedef struct tag_FILEINFO
  1745  typedef struct tag_FILEINFO
  1746 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/romtools/readimage/inc/rofs_image_reader.h /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/imgtools/romtools/readimage/inc/rofs_image_reader.h
  1746 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/romtools/readimage/inc/rofs_image_reader.h /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/imgtools/romtools/readimage/inc/rofs_image_reader.h
  1747 --- /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/romtools/readimage/inc/rofs_image_reader.h	2010-05-13 19:14:23.521083525 +0100
  1747 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/romtools/readimage/inc/rofs_image_reader.h	2010-05-18 19:32:31.872848917 +0100
  1748 +++ /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/imgtools/romtools/readimage/inc/rofs_image_reader.h	2010-05-15 14:32:45.000000000 +0100
  1748 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/imgtools/romtools/readimage/inc/rofs_image_reader.h	2010-05-15 14:32:45.000000000 +0100
  1749 @@ -65,10 +65,10 @@
  1749 @@ -65,10 +65,10 @@
  1750  	void DumpDirStructure();
  1750  	void DumpDirStructure();
  1751  	void DumpFileAttributes();
  1751  	void DumpFileAttributes();
  1752  	void MarkNodes();
  1752  	void MarkNodes();
  1753 -	void SetSeek(streampos aOff, ios::seek_dir aStartPos=ios::beg);
  1753 -	void SetSeek(streampos aOff, ios::seek_dir aStartPos=ios::beg);
  1757 -	void GetCompleteNodePath(TRomNode* aNode,string& aName,char* aAppStr);
  1757 -	void GetCompleteNodePath(TRomNode* aNode,string& aName,char* aAppStr);
  1758 +	void GetCompleteNodePath(TRomNode* aNode,string& aName,char const* aAppStr);
  1758 +	void GetCompleteNodePath(TRomNode* aNode,string& aName,char const* aAppStr);
  1759  	void WriteEntryToFile(char* aFileName,TRomNode* aNode,ofstream& aLogFile);
  1759  	void WriteEntryToFile(char* aFileName,TRomNode* aNode,ofstream& aLogFile);
  1760  
  1760  
  1761  	void GetFileInfo(FILEINFOMAP &aFileMap);
  1761  	void GetFileInfo(FILEINFOMAP &aFileMap);
  1762 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/romtools/readimage/src/common.cpp /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/imgtools/romtools/readimage/src/common.cpp
  1762 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/romtools/readimage/src/common.cpp /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/imgtools/romtools/readimage/src/common.cpp
  1763 --- /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/romtools/readimage/src/common.cpp	2010-05-13 19:14:23.521083525 +0100
  1763 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/romtools/readimage/src/common.cpp	2010-05-18 19:32:31.872848917 +0100
  1764 +++ /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/imgtools/romtools/readimage/src/common.cpp	2010-05-15 14:32:45.000000000 +0100
  1764 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/imgtools/romtools/readimage/src/common.cpp	2010-05-15 14:32:45.000000000 +0100
  1765 @@ -40,7 +40,7 @@
  1765 @@ -40,7 +40,7 @@
  1766  	*out << "Usage Error:" << iErrMessage.c_str() << endl;
  1766  	*out << "Usage Error:" << iErrMessage.c_str() << endl;
  1767  }
  1767  }
  1768  
  1768  
  1769 -ostream& DumpInHex(char* aDesc, TUint32 aData, bool aContinue, TUint aDataWidth, \
  1769 -ostream& DumpInHex(char* aDesc, TUint32 aData, bool aContinue, TUint aDataWidth, \
  1770 +ostream& DumpInHex(char const* aDesc, TUint32 aData, bool aContinue, TUint aDataWidth, \
  1770 +ostream& DumpInHex(char const* aDesc, TUint32 aData, bool aContinue, TUint aDataWidth, \
  1771  				   char aFiller, TUint aMaxDescWidth)
  1771  				   char aFiller, TUint aMaxDescWidth)
  1772  {
  1772  {
  1773  	TUint aDescLen = strlen(aDesc);
  1773  	TUint aDescLen = strlen(aDesc);
  1774 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/romtools/readimage/src/e32_image_reader.cpp /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/imgtools/romtools/readimage/src/e32_image_reader.cpp
  1774 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/romtools/readimage/src/e32_image_reader.cpp /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/imgtools/romtools/readimage/src/e32_image_reader.cpp
  1775 --- /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/romtools/readimage/src/e32_image_reader.cpp	2010-05-13 19:14:23.525082148 +0100
  1775 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/romtools/readimage/src/e32_image_reader.cpp	2010-05-18 19:32:31.872848917 +0100
  1776 +++ /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/imgtools/romtools/readimage/src/e32_image_reader.cpp	2010-05-15 14:32:45.000000000 +0100
  1776 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/imgtools/romtools/readimage/src/e32_image_reader.cpp	2010-05-15 14:32:45.000000000 +0100
  1777 @@ -75,26 +75,26 @@
  1777 @@ -75,26 +75,26 @@
  1778  	bool aContinue = true;
  1778  	bool aContinue = true;
  1779  
  1779  
  1780  	DumpInHex("Size", aE32Image.iSize ) << endl;
  1780  	DumpInHex("Size", aE32Image.iSize ) << endl;
  1781 -	DumpInHex("Uids",aE32Image.iOrigHdr->iUid1);
  1781 -	DumpInHex("Uids",aE32Image.iOrigHdr->iUid1);
  1816 +	DumpInHex("Export dir count", aE32Image.iOrigHdr->iExportDirCount) << endl;
  1816 +	DumpInHex("Export dir count", aE32Image.iOrigHdr->iExportDirCount) << endl;
  1817 +	DumpInHex("Flags", aE32Image.iOrigHdr->iFlags) << endl;
  1817 +	DumpInHex("Flags", aE32Image.iOrigHdr->iFlags) << endl;
  1818  
  1818  
  1819  	TUint aHeaderFmt = E32ImageHeader::HdrFmtFromFlags(aE32Image.iOrigHdr->iFlags);
  1819  	TUint aHeaderFmt = E32ImageHeader::HdrFmtFromFlags(aE32Image.iOrigHdr->iFlags);
  1820  
  1820  
  1821 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/romtools/readimage/src/image_handler.cpp /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/imgtools/romtools/readimage/src/image_handler.cpp
  1821 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/romtools/readimage/src/image_handler.cpp /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/imgtools/romtools/readimage/src/image_handler.cpp
  1822 --- /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/romtools/readimage/src/image_handler.cpp	2010-05-13 19:14:23.525082148 +0100
  1822 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/romtools/readimage/src/image_handler.cpp	2010-05-18 19:32:31.872848917 +0100
  1823 +++ /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/imgtools/romtools/readimage/src/image_handler.cpp	2010-05-15 14:32:45.000000000 +0100
  1823 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/imgtools/romtools/readimage/src/image_handler.cpp	2010-05-15 14:32:45.000000000 +0100
  1824 @@ -392,7 +392,7 @@
  1824 @@ -392,7 +392,7 @@
  1825  	{
  1825  	{
  1826  		if(iInputFileName.empty())
  1826  		if(iInputFileName.empty())
  1827  		{
  1827  		{
  1828 -			throw SisUtilsException("Usage Error", "No SIS file passed");
  1828 -			throw SisUtilsException("Usage Error", "No SIS file passed");
  1837 -			throw SisUtilsException("Error:", "Cannot create Sis2Iby object");
  1837 -			throw SisUtilsException("Error:", "Cannot create Sis2Iby object");
  1838 +			throw SisUtilsException("Error:","Cannot create Sis2Iby object");
  1838 +			throw SisUtilsException("Error:","Cannot create Sis2Iby object");
  1839  		}
  1839  		}
  1840  	}
  1840  	}
  1841  }
  1841  }
  1842 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/romtools/readimage/src/image_reader.cpp /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/imgtools/romtools/readimage/src/image_reader.cpp
  1842 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/romtools/readimage/src/image_reader.cpp /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/imgtools/romtools/readimage/src/image_reader.cpp
  1843 --- /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/romtools/readimage/src/image_reader.cpp	2010-05-13 19:14:23.525082148 +0100
  1843 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/romtools/readimage/src/image_reader.cpp	2010-05-18 19:32:31.876848937 +0100
  1844 +++ /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/imgtools/romtools/readimage/src/image_reader.cpp	2010-05-15 14:32:45.000000000 +0100
  1844 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/imgtools/romtools/readimage/src/image_reader.cpp	2010-05-15 14:32:45.000000000 +0100
  1845 @@ -173,7 +173,7 @@
  1845 @@ -173,7 +173,7 @@
  1846  
  1846  
  1847  
  1847  
  1848  	// get the current working directory and store in buffer.
  1848  	// get the current working directory and store in buffer.
  1849 -	if( _getcwd(currWorkingDir,_MAX_BUFFER_SIZE_) == NULL )
  1849 -	if( _getcwd(currWorkingDir,_MAX_BUFFER_SIZE_) == NULL )
  1888 -		_chdir(currWorkingDir);
  1888 -		_chdir(currWorkingDir);
  1889 +		int r = CHDIR(currWorkingDir); (void)r;
  1889 +		int r = CHDIR(currWorkingDir); (void)r;
  1890  		// replace the source path with the original path information.
  1890  		// replace the source path with the original path information.
  1891  		strcpy(aSrcPath,origPath.c_str());
  1891  		strcpy(aSrcPath,origPath.c_str());
  1892  		delete[] currWorkingDir;
  1892  		delete[] currWorkingDir;
  1893 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/romtools/readimage/src/rofs_image_reader.cpp /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/imgtools/romtools/readimage/src/rofs_image_reader.cpp
  1893 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/romtools/readimage/src/rofs_image_reader.cpp /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/imgtools/romtools/readimage/src/rofs_image_reader.cpp
  1894 --- /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/romtools/readimage/src/rofs_image_reader.cpp	2010-05-13 19:14:23.525082148 +0100
  1894 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/romtools/readimage/src/rofs_image_reader.cpp	2010-05-18 19:32:31.876848937 +0100
  1895 +++ /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/imgtools/romtools/readimage/src/rofs_image_reader.cpp	2010-05-15 14:32:45.000000000 +0100
  1895 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/imgtools/romtools/readimage/src/rofs_image_reader.cpp	2010-05-15 14:32:45.000000000 +0100
  1896 @@ -42,7 +42,7 @@
  1896 @@ -42,7 +42,7 @@
  1897  	delete iImageReader;
  1897  	delete iImageReader;
  1898  }
  1898  }
  1899  
  1899  
  1900 -void RofsImageReader::SetSeek(streampos aOff, ios::seek_dir aStartPos)
  1900 -void RofsImageReader::SetSeek(streampos aOff, ios::seek_dir aStartPos)
  1937 -					GetCompleteNodePath( currNode, fileName, (char*)DIR_SEPARATOR );
  1937 -					GetCompleteNodePath( currNode, fileName, (char*)DIR_SEPARATOR );
  1938 +					GetCompleteNodePath( currNode, fileName,DIR_SEPARATOR );
  1938 +					GetCompleteNodePath( currNode, fileName,DIR_SEPARATOR );
  1939  				}
  1939  				}
  1940  			}
  1940  			}
  1941  			else
  1941  			else
  1942 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/romtools/readimage/src/rom_image_reader.cpp /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/imgtools/romtools/readimage/src/rom_image_reader.cpp
  1942 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/romtools/readimage/src/rom_image_reader.cpp /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/imgtools/romtools/readimage/src/rom_image_reader.cpp
  1943 --- /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/romtools/readimage/src/rom_image_reader.cpp	2010-05-13 19:14:23.525082148 +0100
  1943 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/romtools/readimage/src/rom_image_reader.cpp	2010-05-18 19:32:31.876848937 +0100
  1944 +++ /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/imgtools/romtools/readimage/src/rom_image_reader.cpp	2010-05-15 14:32:45.000000000 +0100
  1944 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/imgtools/romtools/readimage/src/rom_image_reader.cpp	2010-05-15 14:32:45.000000000 +0100
  1945 @@ -20,6 +20,12 @@
  1945 @@ -20,6 +20,12 @@
  1946  #include <e32rom.h>
  1946  #include <e32rom.h>
  1947  #include "rom_image_reader.h"
  1947  #include "rom_image_reader.h"
  1948  #include "r_rom.h"
  1948  #include "r_rom.h"
  1949 +#if defined(WIN32)
  1949 +#if defined(WIN32)
  1973 +	DumpInHex("", aRomImgEntry->iHardwareVariant, true) << "] ";
  1973 +	DumpInHex("", aRomImgEntry->iHardwareVariant, true) << "] ";
  1974 +	DumpInHex(" DataSize=", (aRomImgEntry->iBssSize + aRomImgEntry->iDataSize), true) << endl;
  1974 +	DumpInHex(" DataSize=", (aRomImgEntry->iBssSize + aRomImgEntry->iDataSize), true) << endl;
  1975  	
  1975  	
  1976  }
  1976  }
  1977  
  1977  
  1978 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/romtools/rofsbuild/r_build.cpp /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/imgtools/romtools/rofsbuild/r_build.cpp
  1978 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/romtools/rofsbuild/r_build.cpp /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/imgtools/romtools/rofsbuild/r_build.cpp
  1979 --- /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/romtools/rofsbuild/r_build.cpp	2010-05-13 19:14:23.525082148 +0100
  1979 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/romtools/rofsbuild/r_build.cpp	2010-05-18 19:32:31.876848937 +0100
  1980 +++ /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/imgtools/romtools/rofsbuild/r_build.cpp	2010-05-15 14:32:45.000000000 +0100
  1980 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/imgtools/romtools/rofsbuild/r_build.cpp	2010-05-15 14:32:45.000000000 +0100
  1981 @@ -29,7 +29,7 @@
  1981 @@ -29,7 +29,7 @@
  1982  
  1982  
  1983  #if defined(__MSVCDOTNET__) || defined(__TOOLS2__)
  1983  #if defined(__MSVCDOTNET__) || defined(__TOOLS2__)
  1984  	#include <iomanip>
  1984  	#include <iomanip>
  1985 -	#include <strstream>
  1985 -	#include <strstream>
  2028 -			size = os.pcount();
  2028 -			size = os.pcount();
  2029 +			size = os.str().size();
  2029 +			size = os.str().size();
  2030  			compression = f.iHdr->CompressionType();
  2030  			compression = f.iHdr->CompressionType();
  2031  			memcpy(&iUids[0], aDest, sizeof(iUids));
  2031  			memcpy(&iUids[0], aDest, sizeof(iUids));
  2032  			}
  2032  			}
  2033 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/romtools/rofsbuild/r_coreimage.cpp /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/imgtools/romtools/rofsbuild/r_coreimage.cpp
  2033 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/romtools/rofsbuild/r_coreimage.cpp /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/imgtools/romtools/rofsbuild/r_coreimage.cpp
  2034 --- /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/romtools/rofsbuild/r_coreimage.cpp	2010-05-13 19:14:23.525082148 +0100
  2034 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/romtools/rofsbuild/r_coreimage.cpp	2010-05-18 19:32:31.876848937 +0100
  2035 +++ /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/imgtools/romtools/rofsbuild/r_coreimage.cpp	2010-05-15 14:32:45.000000000 +0100
  2035 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/imgtools/romtools/rofsbuild/r_coreimage.cpp	2010-05-15 14:32:45.000000000 +0100
  2036 @@ -305,7 +305,7 @@
  2036 @@ -305,7 +305,7 @@
  2037  @param aInfo Used by the caller to identify where the error occurred.
  2037  @param aInfo Used by the caller to identify where the error occurred.
  2038  @return Error number. KErrNone is returned if there are no errors.
  2038  @return Error number. KErrNone is returned if there are no errors.
  2039  */
  2039  */
  2040 -TInt RCoreImageReader::ImageError(int aItemsRead, int aExpected, char *aInfo)
  2040 -TInt RCoreImageReader::ImageError(int aItemsRead, int aExpected, char *aInfo)
  2041 +TInt RCoreImageReader::ImageError(int aItemsRead, int aExpected, char const *aInfo)
  2041 +TInt RCoreImageReader::ImageError(int aItemsRead, int aExpected, char const *aInfo)
  2042  	{
  2042  	{
  2043  	if (aItemsRead != aExpected)
  2043  	if (aItemsRead != aExpected)
  2044  		{
  2044  		{
  2045 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/romtools/rofsbuild/r_coreimage.h /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/imgtools/romtools/rofsbuild/r_coreimage.h
  2045 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/romtools/rofsbuild/r_coreimage.h /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/imgtools/romtools/rofsbuild/r_coreimage.h
  2046 --- /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/romtools/rofsbuild/r_coreimage.h	2010-05-13 19:14:23.525082148 +0100
  2046 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/romtools/rofsbuild/r_coreimage.h	2010-05-18 19:32:31.876848937 +0100
  2047 +++ /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/imgtools/romtools/rofsbuild/r_coreimage.h	2010-05-15 14:32:45.000000000 +0100
  2047 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/imgtools/romtools/rofsbuild/r_coreimage.h	2010-05-15 14:32:45.000000000 +0100
  2048 @@ -103,7 +103,7 @@
  2048 @@ -103,7 +103,7 @@
  2049  	TText* Filename();
  2049  	TText* Filename();
  2050  private:
  2050  private:
  2051  	TInt ReadIdentifier();
  2051  	TInt ReadIdentifier();
  2052 -	TInt ImageError(int aBytesRead, int aExpected, char* aInfo);
  2052 -	TInt ImageError(int aBytesRead, int aExpected, char* aInfo);
  2053 +	TInt ImageError(int aBytesRead, int aExpected, char const* aInfo);
  2053 +	TInt ImageError(int aBytesRead, int aExpected, char const* aInfo);
  2054  
  2054  
  2055  	/** Image type of the file being read */
  2055  	/** Image type of the file being read */
  2056  	TImageType iImageType;
  2056  	TImageType iImageType;
  2057 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/romtools/rofsbuild/r_driveimage.cpp /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/imgtools/romtools/rofsbuild/r_driveimage.cpp
  2057 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/romtools/rofsbuild/r_driveimage.cpp /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/imgtools/romtools/rofsbuild/r_driveimage.cpp
  2058 --- /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/romtools/rofsbuild/r_driveimage.cpp	2010-05-13 19:14:23.529081888 +0100
  2058 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/romtools/rofsbuild/r_driveimage.cpp	2010-05-18 19:32:31.876848937 +0100
  2059 +++ /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/imgtools/romtools/rofsbuild/r_driveimage.cpp	2010-05-15 14:32:45.000000000 +0100
  2059 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/imgtools/romtools/rofsbuild/r_driveimage.cpp	2010-05-15 14:32:45.000000000 +0100
  2060 @@ -254,7 +254,7 @@
  2060 @@ -254,7 +254,7 @@
  2061  	fileName.append("/");
  2061  	fileName.append("/");
  2062  
  2062  
  2063  	// Go through each entry
  2063  	// Go through each entry
  2064 -	while(dirEntry = readdir(dirHandler))
  2064 -	while(dirEntry = readdir(dirHandler))
  2065 +	while((dirEntry = readdir(dirHandler)) != NULL)
  2065 +	while((dirEntry = readdir(dirHandler)) != NULL)
  2066  		{
  2066  		{
  2067  		if(dirEntry->d_type != DT_DIR) 
  2067  		if(dirEntry->d_type != DT_DIR) 
  2068  			{
  2068  			{
  2069 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/romtools/rofsbuild/r_driveutl.cpp /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/imgtools/romtools/rofsbuild/r_driveutl.cpp
  2069 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/romtools/rofsbuild/r_driveutl.cpp /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/imgtools/romtools/rofsbuild/r_driveutl.cpp
  2070 --- /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/romtools/rofsbuild/r_driveutl.cpp	2010-05-13 19:14:23.529081888 +0100
  2070 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/romtools/rofsbuild/r_driveutl.cpp	2010-05-18 19:32:31.876848937 +0100
  2071 +++ /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/imgtools/romtools/rofsbuild/r_driveutl.cpp	2010-05-15 14:32:45.000000000 +0100
  2071 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/imgtools/romtools/rofsbuild/r_driveutl.cpp	2010-05-15 14:32:45.000000000 +0100
  2072 @@ -82,7 +82,7 @@
  2072 @@ -82,7 +82,7 @@
  2073  /**
  2073  /**
  2074  Time Stamp for Log file.
  2074  Time Stamp for Log file.
  2075  */ 
  2075  */ 
  2076 -TAny GetLocalTime(TAny)
  2076 -TAny GetLocalTime(TAny)
  2077 +TAny GetLocalTime()
  2077 +TAny GetLocalTime()
  2078  	{
  2078  	{
  2079  	struct tm *aNewTime = NULL;
  2079  	struct tm *aNewTime = NULL;
  2080  	time_t aTime = 0;
  2080  	time_t aTime = 0;
  2081 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/romtools/rofsbuild/r_driveutl.h /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/imgtools/romtools/rofsbuild/r_driveutl.h
  2081 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/romtools/rofsbuild/r_driveutl.h /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/imgtools/romtools/rofsbuild/r_driveutl.h
  2082 --- /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/romtools/rofsbuild/r_driveutl.h	2010-05-13 19:14:23.529081888 +0100
  2082 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/romtools/rofsbuild/r_driveutl.h	2010-05-18 19:32:31.880850004 +0100
  2083 +++ /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/imgtools/romtools/rofsbuild/r_driveutl.h	2010-05-15 14:32:45.000000000 +0100
  2083 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/imgtools/romtools/rofsbuild/r_driveutl.h	2010-05-15 14:32:45.000000000 +0100
  2084 @@ -24,6 +24,6 @@
  2084 @@ -24,6 +24,6 @@
  2085  #include <e32def.h>
  2085  #include <e32def.h>
  2086  
  2086  
  2087  TInt Getlogfile(TText *aDriveObeyFileName,TText* &aPadLogFile);
  2087  TInt Getlogfile(TText *aDriveObeyFileName,TText* &aPadLogFile);
  2088 -TAny GetLocalTime(TAny);
  2088 -TAny GetLocalTime(TAny);
  2089 +TAny GetLocalTime();
  2089 +TAny GetLocalTime();
  2090  
  2090  
  2091  #endif
  2091  #endif
  2092 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/romtools/rofsbuild/r_obey.cpp /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/imgtools/romtools/rofsbuild/r_obey.cpp
  2092 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/romtools/rofsbuild/r_obey.cpp /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/imgtools/romtools/rofsbuild/r_obey.cpp
  2093 --- /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/romtools/rofsbuild/r_obey.cpp	2010-05-13 19:14:23.529081888 +0100
  2093 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/romtools/rofsbuild/r_obey.cpp	2010-05-18 19:32:31.880850004 +0100
  2094 +++ /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/imgtools/romtools/rofsbuild/r_obey.cpp	2010-05-15 14:32:45.000000000 +0100
  2094 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/imgtools/romtools/rofsbuild/r_obey.cpp	2010-05-15 14:32:45.000000000 +0100
  2095 @@ -47,6 +47,7 @@
  2095 @@ -47,6 +47,7 @@
  2096  #include <time.h>
  2096  #include <time.h>
  2097  #include <assert.h>
  2097  #include <assert.h>
  2098  #include <errno.h>
  2098  #include <errno.h>
  2099 +#include <limits.h>
  2099 +#include <limits.h>
  2122 -			  #endif
  2122 -			  #endif
  2123 +			istringstream val(iReader.Word(1),ios_base::in|ios_base::out);	  
  2123 +			istringstream val(iReader.Word(1),ios_base::in|ios_base::out);	  
  2124  			  iReader.CopyWord(1, coreImageFileName);
  2124  			  iReader.CopyWord(1, coreImageFileName);
  2125  			  iReader.MarkNext(); // ready for processing extension
  2125  			  iReader.MarkNext(); // ready for processing extension
  2126  			  break;
  2126  			  break;
  2127 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/romtools/rofsbuild/rofsbuild.mmp /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/imgtools/romtools/rofsbuild/rofsbuild.mmp
  2127 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/romtools/rofsbuild/rofsbuild.mmp /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/imgtools/romtools/rofsbuild/rofsbuild.mmp
  2128 --- /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/romtools/rofsbuild/rofsbuild.mmp	2010-05-13 19:14:23.533081838 +0100
  2128 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/romtools/rofsbuild/rofsbuild.mmp	2010-05-18 19:32:31.880850004 +0100
  2129 +++ /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/imgtools/romtools/rofsbuild/rofsbuild.mmp	2010-05-15 14:32:45.000000000 +0100
  2129 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/imgtools/romtools/rofsbuild/rofsbuild.mmp	2010-05-15 14:32:45.000000000 +0100
  2130 @@ -43,15 +43,16 @@
  2130 @@ -43,15 +43,16 @@
  2131  USERINCLUDE   ../../imglib/inc ../../imglib/compress ../../imglib/filesystem/include 
  2131  USERINCLUDE   ../../imglib/inc ../../imglib/compress ../../imglib/filesystem/include 
  2132  USERINCLUDE   ../../imglib/patchdataprocessor/include ../../imglib/parameterfileprocessor/include
  2132  USERINCLUDE   ../../imglib/patchdataprocessor/include ../../imglib/parameterfileprocessor/include
  2133  USERINCLUDE	  ../../imglib/memmap/include
  2133  USERINCLUDE	  ../../imglib/memmap/include
  2134 +#ifndef TOOLS2_LINUX
  2134 +#ifndef TOOLS2_LINUX
  2144 -OPTION    GCC -pthread -O2 -Wno-uninitialized
  2144 -OPTION    GCC -pthread -O2 -Wno-uninitialized
  2145 +OPTION    GCC -pthread -O2 -Wno-uninitialized -lboost_thread-mt
  2145 +OPTION    GCC -pthread -O2 -Wno-uninitialized -lboost_thread-mt
  2146  #else
  2146  #else
  2147  STATICLIBRARY   boost_thread-mgw34-mt-1_39_win32
  2147  STATICLIBRARY   boost_thread-mgw34-mt-1_39_win32
  2148  OPTION    GCC -mthreads -O2 -Wno-uninitialized
  2148  OPTION    GCC -mthreads -O2 -Wno-uninitialized
  2149 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/romtools/rofsbuild/r_rofs.cpp /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/imgtools/romtools/rofsbuild/r_rofs.cpp
  2149 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/romtools/rofsbuild/r_rofs.cpp /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/imgtools/romtools/rofsbuild/r_rofs.cpp
  2150 --- /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/romtools/rofsbuild/r_rofs.cpp	2010-05-13 19:14:23.529081888 +0100
  2150 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/romtools/rofsbuild/r_rofs.cpp	2010-05-18 19:32:31.880850004 +0100
  2151 +++ /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/imgtools/romtools/rofsbuild/r_rofs.cpp	2010-05-15 14:32:45.000000000 +0100
  2151 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/imgtools/romtools/rofsbuild/r_rofs.cpp	2010-05-15 14:32:45.000000000 +0100
  2152 @@ -584,9 +584,10 @@
  2152 @@ -584,9 +584,10 @@
  2153  			coffhead[0x54] = 0x20;
  2153  			coffhead[0x54] = 0x20;
  2154  
  2154  
  2155  			// now fill in the text segment size
  2155  			// now fill in the text segment size
  2156 -			*(TUint32 *) (&coffhead[0x18]) = ALIGN4K(iSizeUsed);
  2156 -			*(TUint32 *) (&coffhead[0x18]) = ALIGN4K(iSizeUsed);
  2161 +			TUint32 * p0x40 = reinterpret_cast<TUint32 *>(&coffhead[0x40]);
  2161 +			TUint32 * p0x40 = reinterpret_cast<TUint32 *>(&coffhead[0x40]);
  2162 +			*p0x40 = ALIGN4K(iSizeUsed);
  2162 +			*p0x40 = ALIGN4K(iSizeUsed);
  2163  			os.write(reinterpret_cast<char *>(coffhead), sizeof(coffhead));
  2163  			os.write(reinterpret_cast<char *>(coffhead), sizeof(coffhead));
  2164  			}
  2164  			}
  2165  		break;
  2165  		break;
  2166 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/romtools/rombuild/r_areaset.cpp /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/imgtools/romtools/rombuild/r_areaset.cpp
  2166 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/romtools/rombuild/r_areaset.cpp /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/imgtools/romtools/rombuild/r_areaset.cpp
  2167 --- /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/romtools/rombuild/r_areaset.cpp	2010-05-13 19:14:23.533081838 +0100
  2167 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/romtools/rombuild/r_areaset.cpp	2010-05-18 19:32:31.884849046 +0100
  2168 +++ /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/imgtools/romtools/rombuild/r_areaset.cpp	2010-05-15 14:32:45.000000000 +0100
  2168 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/imgtools/romtools/rombuild/r_areaset.cpp	2010-05-15 14:32:45.000000000 +0100
  2169 @@ -47,7 +47,7 @@
  2169 @@ -47,7 +47,7 @@
  2170  Area::~Area()
  2170  Area::~Area()
  2171  	{
  2171  	{
  2172  	ReleaseAllFiles();
  2172  	ReleaseAllFiles();
  2173 -	free(const_cast<char*>(iName));	// allocated with strdup()
  2173 -	free(const_cast<char*>(iName));	// allocated with strdup()
  2174 +	free(iName);	// allocated with strdup()
  2174 +	free(iName);	// allocated with strdup()
  2175  	}
  2175  	}
  2176  
  2176  
  2177  
  2177  
  2178 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/romtools/rombuild/r_areaset.h /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/imgtools/romtools/rombuild/r_areaset.h
  2178 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/romtools/rombuild/r_areaset.h /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/imgtools/romtools/rombuild/r_areaset.h
  2179 --- /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/romtools/rombuild/r_areaset.h	2010-05-13 19:14:23.533081838 +0100
  2179 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/romtools/rombuild/r_areaset.h	2010-05-18 19:32:31.884849046 +0100
  2180 +++ /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/imgtools/romtools/rombuild/r_areaset.h	2010-05-15 14:32:45.000000000 +0100
  2180 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/imgtools/romtools/rombuild/r_areaset.h	2010-05-15 14:32:45.000000000 +0100
  2181 @@ -104,7 +104,7 @@
  2181 @@ -104,7 +104,7 @@
  2182  public:
  2182  public:
  2183  	TRomBuilderEntry* iFirstPagedCode; // For PagedRom only
  2183  	TRomBuilderEntry* iFirstPagedCode; // For PagedRom only
  2184  private:
  2184  private:
  2185 -	const char* iName;
  2185 -	const char* iName;
  2186 +	char* iName;
  2186 +	char* iName;
  2187  	TLinAddr iDestBaseAddr;
  2187  	TLinAddr iDestBaseAddr;
  2188  	TLinAddr iSrcBaseAddr;
  2188  	TLinAddr iSrcBaseAddr;
  2189  	TLinAddr iSrcLimitAddr;
  2189  	TLinAddr iSrcLimitAddr;
  2190 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/romtools/rombuild/r_obey.cpp /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/imgtools/romtools/rombuild/r_obey.cpp
  2190 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/romtools/rombuild/r_obey.cpp /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/imgtools/romtools/rombuild/r_obey.cpp
  2191 --- /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/romtools/rombuild/r_obey.cpp	2010-05-13 19:14:23.537081787 +0100
  2191 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/romtools/rombuild/r_obey.cpp	2010-05-18 19:32:31.888848507 +0100
  2192 +++ /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/imgtools/romtools/rombuild/r_obey.cpp	2010-05-15 14:32:45.000000000 +0100
  2192 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/imgtools/romtools/rombuild/r_obey.cpp	2010-05-15 14:32:45.000000000 +0100
  2193 @@ -301,7 +301,7 @@
  2193 @@ -301,7 +301,7 @@
  2194  	iCurrentLine++;
  2194  	iCurrentLine++;
  2195  	iCurrentMark = ftell(iObeyFile);
  2195  	iCurrentMark = ftell(iObeyFile);
  2196  	iLine[0]='\0';
  2196  	iLine[0]='\0';
  2197 -	fgets((char*)iLine,imaxLength+1,iObeyFile);
  2197 -	fgets((char*)iLine,imaxLength+1,iObeyFile);
  2212 -#endif
  2212 -#endif
  2213 +			istringstream val(iReader.Word(1),ios_base::in|ios_base::out);
  2213 +			istringstream val(iReader.Word(1),ios_base::in|ios_base::out);
  2214  			iReader.CopyWord(1, coreImageFileName);
  2214  			iReader.CopyWord(1, coreImageFileName);
  2215  			break;
  2215  			break;
  2216  		}
  2216  		}
  2217 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/romtools/rombuild/rombuild.mmp /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/imgtools/romtools/rombuild/rombuild.mmp
  2217 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/romtools/rombuild/rombuild.mmp /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/imgtools/romtools/rombuild/rombuild.mmp
  2218 --- /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/romtools/rombuild/rombuild.mmp	2010-05-13 19:14:23.541082016 +0100
  2218 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/romtools/rombuild/rombuild.mmp	2010-05-18 19:32:31.892848597 +0100
  2219 +++ /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/imgtools/romtools/rombuild/rombuild.mmp	2010-05-15 14:32:45.000000000 +0100
  2219 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/imgtools/romtools/rombuild/rombuild.mmp	2010-05-15 14:32:45.000000000 +0100
  2220 @@ -41,7 +41,9 @@
  2220 @@ -41,7 +41,9 @@
  2221  userinclude	../../imglib/compress 	../../imglib/inc 
  2221  userinclude	../../imglib/compress 	../../imglib/inc 
  2222  userinclude	../../imglib/patchdataprocessor/include ../../imglib/parameterfileprocessor/include
  2222  userinclude	../../imglib/patchdataprocessor/include ../../imglib/parameterfileprocessor/include
  2223  userinclude ../../imglib/memmap/include
  2223  userinclude ../../imglib/memmap/include
  2224 +#ifndef TOOLS2_LINUX
  2224 +#ifndef TOOLS2_LINUX
  2235 -OPTION    GCC -O2 -Wno-uninitialized -pthread
  2235 -OPTION    GCC -O2 -Wno-uninitialized -pthread
  2236 +OPTION    GCC -pthread -O2 -Wno-uninitialized -lboost_thread-mt
  2236 +OPTION    GCC -pthread -O2 -Wno-uninitialized -lboost_thread-mt
  2237  #else
  2237  #else
  2238  STATICLIBRARY   boost_thread-mgw34-mt-1_39_win32
  2238  STATICLIBRARY   boost_thread-mgw34-mt-1_39_win32
  2239  OPTION    GCC -O2 -Wno-uninitialized -mthreads
  2239  OPTION    GCC -O2 -Wno-uninitialized -mthreads
  2240 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/romtools/rombuild/r_rom.cpp /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/imgtools/romtools/rombuild/r_rom.cpp
  2240 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/romtools/rombuild/r_rom.cpp /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/imgtools/romtools/rombuild/r_rom.cpp
  2241 --- /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/romtools/rombuild/r_rom.cpp	2010-05-13 19:14:23.541082016 +0100
  2241 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/romtools/rombuild/r_rom.cpp	2010-05-18 19:32:31.892848597 +0100
  2242 +++ /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/imgtools/romtools/rombuild/r_rom.cpp	2010-05-15 14:32:45.000000000 +0100
  2242 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/imgtools/romtools/rombuild/r_rom.cpp	2010-05-15 14:32:45.000000000 +0100
  2243 @@ -1835,7 +1835,7 @@
  2243 @@ -1835,7 +1835,7 @@
  2244  			TRomFile** l=rf->iPDeps;
  2244  			TRomFile** l=rf->iPDeps;
  2245  			FindMarked(MARK_EXE, MARK_EXE, l);
  2245  			FindMarked(MARK_EXE, MARK_EXE, l);
  2246  			TInt nx=l-rf->iPDeps;
  2246  			TInt nx=l-rf->iPDeps;
  2247 -			if (!e->IsDll() && (nx>1 || nx==1 && l[-1]!=rf))
  2247 -			if (!e->IsDll() && (nx>1 || nx==1 && l[-1]!=rf))
  2261 +			*p0x40 = ALIGN4K(iSizeUsed);
  2261 +			*p0x40 = ALIGN4K(iSizeUsed);
  2262 +
  2262 +
  2263  
  2263  
  2264  			os.write(reinterpret_cast<char *>(coffhead), sizeof(coffhead));
  2264  			os.write(reinterpret_cast<char *>(coffhead), sizeof(coffhead));
  2265  			}
  2265  			}
  2266 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/sisutils/inc/pkgfileparser.h /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/imgtools/sisutils/inc/pkgfileparser.h
  2266 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/sisutils/inc/pkgfileparser.h /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/imgtools/sisutils/inc/pkgfileparser.h
  2267 --- /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/sisutils/inc/pkgfileparser.h	2010-05-13 19:14:23.545083223 +0100
  2267 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/sisutils/inc/pkgfileparser.h	2010-05-18 19:32:31.896848966 +0100
  2268 +++ /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/imgtools/sisutils/inc/pkgfileparser.h	2010-05-15 14:32:45.000000000 +0100
  2268 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/imgtools/sisutils/inc/pkgfileparser.h	2010-05-15 14:32:45.000000000 +0100
  2269 @@ -33,6 +33,10 @@
  2269 @@ -33,6 +33,10 @@
  2270  
  2270  
  2271  #include "pkglanguage.h"
  2271  #include "pkglanguage.h"
  2272  
  2272  
  2273 +int CompareTwoString(wchar_t const * string ,wchar_t const * option);
  2273 +int CompareTwoString(wchar_t const * string ,wchar_t const * option);
  2309 +    friend int CompareTwoString(wchar_t const * string ,wchar_t const * option);
  2309 +    friend int CompareTwoString(wchar_t const * string ,wchar_t const * option);
  2310 +    friend int CompareNString(wchar_t const * string ,wchar_t const * option, int len);
  2310 +    friend int CompareNString(wchar_t const * string ,wchar_t const * option, int len);
  2311  };
  2311  };
  2312  
  2312  
  2313  #endif //__PKGFILEPARSER_H__
  2313  #endif //__PKGFILEPARSER_H__
  2314 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/sisutils/inc/pkglanguage.h /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/imgtools/sisutils/inc/pkglanguage.h
  2314 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/sisutils/inc/pkglanguage.h /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/imgtools/sisutils/inc/pkglanguage.h
  2315 --- /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/sisutils/inc/pkglanguage.h	2010-05-13 19:14:23.545083223 +0100
  2315 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/sisutils/inc/pkglanguage.h	2010-05-18 19:32:31.896848966 +0100
  2316 +++ /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/imgtools/sisutils/inc/pkglanguage.h	2010-05-15 14:32:45.000000000 +0100
  2316 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/imgtools/sisutils/inc/pkglanguage.h	2010-05-15 14:32:45.000000000 +0100
  2317 @@ -26,7 +26,7 @@
  2317 @@ -26,7 +26,7 @@
  2318  
  2318  
  2319  typedef struct
  2319  typedef struct
  2320  {
  2320  {
  2321 -	wchar_t*		iName;
  2321 -	wchar_t*		iName;
  2322 +	wchar_t const *		iName;
  2322 +	wchar_t const *		iName;
  2323  	unsigned long	iId;
  2323  	unsigned long	iId;
  2324  } SKeyword;
  2324  } SKeyword;
  2325  
  2325  
  2326 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/sisutils/inc/sis2iby.h /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/imgtools/sisutils/inc/sis2iby.h
  2326 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/sisutils/inc/sis2iby.h /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/imgtools/sisutils/inc/sis2iby.h
  2327 --- /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/sisutils/inc/sis2iby.h	2010-05-13 19:14:23.545083223 +0100
  2327 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/sisutils/inc/sis2iby.h	2010-05-18 19:32:31.896848966 +0100
  2328 +++ /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/imgtools/sisutils/inc/sis2iby.h	2010-05-15 14:32:45.000000000 +0100
  2328 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/imgtools/sisutils/inc/sis2iby.h	2010-05-15 14:32:45.000000000 +0100
  2329 @@ -38,7 +38,7 @@
  2329 @@ -38,7 +38,7 @@
  2330  class Sis2Iby : public SisUtils
  2330  class Sis2Iby : public SisUtils
  2331  {
  2331  {
  2332  public:
  2332  public:
  2333 -	Sis2Iby(char* aFile);
  2333 -	Sis2Iby(char* aFile);
  2334 +	Sis2Iby(char const* aFile);
  2334 +	Sis2Iby(char const* aFile);
  2335  	~Sis2Iby();
  2335  	~Sis2Iby();
  2336  
  2336  
  2337  	void ProcessSisFile();
  2337  	void ProcessSisFile();
  2338 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/sisutils/inc/sisutils.h /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/imgtools/sisutils/inc/sisutils.h
  2338 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/sisutils/inc/sisutils.h /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/imgtools/sisutils/inc/sisutils.h
  2339 --- /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/sisutils/inc/sisutils.h	2010-05-13 19:14:23.545083223 +0100
  2339 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/sisutils/inc/sisutils.h	2010-05-18 19:32:31.896848966 +0100
  2340 +++ /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/imgtools/sisutils/inc/sisutils.h	2010-05-15 14:32:45.000000000 +0100
  2340 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/imgtools/sisutils/inc/sisutils.h	2010-05-15 14:32:45.000000000 +0100
  2341 @@ -40,6 +40,9 @@
  2341 @@ -40,6 +40,9 @@
  2342  #ifdef WIN32
  2342  #ifdef WIN32
  2343  #define PATHSEPARATOR  "\\"
  2343  #define PATHSEPARATOR  "\\"
  2344  #endif
  2344  #endif
  2345 +#ifdef __LINUX__
  2345 +#ifdef __LINUX__
  2364 -	SisUtilsException(char* aFile, char* aErrMessage);
  2364 -	SisUtilsException(char* aFile, char* aErrMessage);
  2365 +	SisUtilsException(char const* aFile, char const* aErrMessage);
  2365 +	SisUtilsException(char const* aFile, char const* aErrMessage);
  2366  	virtual ~SisUtilsException();
  2366  	virtual ~SisUtilsException();
  2367  	virtual void Report();
  2367  	virtual void Report();
  2368  
  2368  
  2369 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/sisutils/src/pkgfileparser.cpp /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/imgtools/sisutils/src/pkgfileparser.cpp
  2369 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/sisutils/src/pkgfileparser.cpp /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/imgtools/sisutils/src/pkgfileparser.cpp
  2370 --- /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/sisutils/src/pkgfileparser.cpp	2010-05-13 19:14:23.545083223 +0100
  2370 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/sisutils/src/pkgfileparser.cpp	2010-05-18 19:32:31.896848966 +0100
  2371 +++ /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/imgtools/sisutils/src/pkgfileparser.cpp	2010-05-15 17:10:43.000000000 +0100
  2371 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/imgtools/sisutils/src/pkgfileparser.cpp	2010-05-15 17:10:43.000000000 +0100
  2372 @@ -18,13 +18,16 @@
  2372 @@ -18,13 +18,16 @@
  2373  
  2373  
  2374  #include "sisutils.h"
  2374  #include "sisutils.h"
  2375  #include "pkgfileparser.h"
  2375  #include "pkgfileparser.h"
  2376 +#include <vector>
  2376 +#include <vector>
  2716 +int CompareNString(wchar_t const * string ,wchar_t const * option, int len)
  2716 +int CompareNString(wchar_t const * string ,wchar_t const * option, int len)
  2717  {
  2717  {
  2718 -	return wcsnicmp(string,option,len);
  2718 -	return wcsnicmp(string,option,len);
  2719 +	return wmemcmp(string,option,len);
  2719 +	return wmemcmp(string,option,len);
  2720  }
  2720  }
  2721 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/sisutils/src/sis2iby.cpp /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/imgtools/sisutils/src/sis2iby.cpp
  2721 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/sisutils/src/sis2iby.cpp /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/imgtools/sisutils/src/sis2iby.cpp
  2722 --- /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/sisutils/src/sis2iby.cpp	2010-05-13 19:14:23.545083223 +0100
  2722 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/sisutils/src/sis2iby.cpp	2010-05-18 19:32:31.896848966 +0100
  2723 +++ /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/imgtools/sisutils/src/sis2iby.cpp	2010-05-15 17:08:28.000000000 +0100
  2723 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/imgtools/sisutils/src/sis2iby.cpp	2010-05-15 17:08:28.000000000 +0100
  2724 @@ -18,6 +18,7 @@
  2724 @@ -18,6 +18,7 @@
  2725  
  2725  
  2726  #include "sisutils.h"
  2726  #include "sisutils.h"
  2727  #include "sis2iby.h"
  2727  #include "sis2iby.h"
  2728 +#include <cstdlib>
  2728 +#include <cstdlib>
  2818 -		throw SisUtilsException((char*)aFile.data(), "Cannot open file");
  2818 -		throw SisUtilsException((char*)aFile.data(), "Cannot open file");
  2819 +		throw SisUtilsException(aFile.c_str(),"Cannot open file");
  2819 +		throw SisUtilsException(aFile.c_str(),"Cannot open file");
  2820  	}
  2820  	}
  2821  
  2821  
  2822  	aIfs.seekg(0,std::ios::end);
  2822  	aIfs.seekg(0,std::ios::end);
  2823 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/sisutils/src/sisutils.cpp /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/imgtools/sisutils/src/sisutils.cpp
  2823 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/sisutils/src/sisutils.cpp /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/imgtools/sisutils/src/sisutils.cpp
  2824 --- /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/imgtools/sisutils/src/sisutils.cpp	2010-05-13 19:14:23.549082823 +0100
  2824 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/imgtools/sisutils/src/sisutils.cpp	2010-05-18 19:32:31.896848966 +0100
  2825 +++ /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/imgtools/sisutils/src/sisutils.cpp	2010-05-15 17:05:31.000000000 +0100
  2825 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/imgtools/sisutils/src/sisutils.cpp	2010-05-15 17:05:31.000000000 +0100
  2826 @@ -20,6 +20,13 @@
  2826 @@ -20,6 +20,13 @@
  2827  #include <windows.h>
  2827  #include <windows.h>
  2828  #include <direct.h>
  2828  #include <direct.h>
  2829  #endif
  2829  #endif
  2830 +#ifdef __LINUX__
  2830 +#ifdef __LINUX__
  2918 +			}
  2918 +			}
  2919 +		}
  2919 +		}
  2920  #endif
  2920  #endif
  2921  		if(status == EFalse)
  2921  		if(status == EFalse)
  2922  			break;
  2922  			break;
  2923 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/sbsv2/cpp-raptor/group/exports.inf /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/sbsv2/cpp-raptor/group/exports.inf
  2923 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/cpp-raptor/group/exports.inf /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/cpp-raptor/group/exports.inf
  2924 --- /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/sbsv2/cpp-raptor/group/exports.inf	2010-05-13 19:14:23.549082823 +0100
  2924 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/cpp-raptor/group/exports.inf	2010-05-18 19:32:31.900848497 +0100
  2925 +++ /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/sbsv2/cpp-raptor/group/exports.inf	2010-05-09 13:37:03.425787000 +0100
  2925 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/cpp-raptor/group/exports.inf	2010-05-17 19:43:29.133345451 +0100
  2926 @@ -15,6 +15,6 @@
  2926 @@ -15,6 +15,6 @@
  2927  *
  2927  *
  2928  */
  2928  */
  2929  
  2929  
  2930 -../win32/bin/cpp.exe /tools/sbs/win32/bv/bin/cpp.exe
  2930 -../win32/bin/cpp.exe /tools/sbs/win32/bv/bin/cpp.exe
  2931 -../win32/i686-pc-mingw32/bin/cc1.exe /tools/sbs/win32/bv/i686-pc-mingw32/bin/cc1.exe
  2931 -../win32/i686-pc-mingw32/bin/cc1.exe /tools/sbs/win32/bv/i686-pc-mingw32/bin/cc1.exe
  2932 -../win32/i686-pc-mingw32/bin/libiconv-2.dll /tools/sbs/win32/bv/i686-pc-mingw32/bin/libiconv-2.dll
  2932 -../win32/i686-pc-mingw32/bin/libiconv-2.dll /tools/sbs/win32/bv/i686-pc-mingw32/bin/libiconv-2.dll
  2933 +../win32/bin/cpp.exe ../../tools/sbs/win32/bv/bin/cpp.exe
  2933 +../win32/bin/cpp.exe ../../tools/sbs/win32/bv/bin/cpp.exe
  2934 +../win32/i686-pc-mingw32/bin/cc1.exe ../../tools/sbs/win32/bv/i686-pc-mingw32/bin/cc1.exe
  2934 +../win32/i686-pc-mingw32/bin/cc1.exe ../../tools/sbs/win32/bv/i686-pc-mingw32/bin/cc1.exe
  2935 +../win32/i686-pc-mingw32/bin/libiconv-2.dll ../../tools/sbs/win32/bv/i686-pc-mingw32/bin/libiconv-2.dll
  2935 +../win32/i686-pc-mingw32/bin/libiconv-2.dll ../../tools/sbs/win32/bv/i686-pc-mingw32/bin/libiconv-2.dll
  2936 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/sbsv2/raptor/group/exports.inf /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/sbsv2/raptor/group/exports.inf
  2936 Only in /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/bin: recipestats.py
  2937 --- /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/sbsv2/raptor/group/exports.inf	2010-05-13 19:14:25.269082351 +0100
  2937 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/bin/sbs /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/bin/sbs
  2938 +++ /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/sbsv2/raptor/group/exports.inf	2010-05-09 13:36:29.473288000 +0100
  2938 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/bin/sbs	2010-05-18 19:32:34.709348670 +0100
       
  2939 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/bin/sbs	2010-05-17 18:47:53.024843000 +0100
       
  2940 @@ -1,5 +1,5 @@
       
  2941  #!/bin/bash
       
  2942 -# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
       
  2943 +# Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies).
       
  2944  # All rights reserved.
       
  2945  # This component and the accompanying materials are made available
       
  2946  # under the terms of the License "Eclipse Public License v1.0"
       
  2947 @@ -17,7 +17,7 @@
       
  2948  #
       
  2949  
       
  2950  # If SBS_HOME is not set in the environment then work it out
       
  2951 -# from the path to this batch file
       
  2952 +# from the path to this script
       
  2953  if [ -z "$SBS_HOME" ] ; then
       
  2954  	temp=$0
       
  2955  	SBS_HOME=$(cd ${temp%/*} && echo $PWD)
       
  2956 @@ -62,31 +62,47 @@
       
  2957  fi
       
  2958  
       
  2959  if [ "$OSTYPE" == "cygwin" ]; then
       
  2960 -
       
  2961 -	SBS_HOME=${SBS_HOME//\\//}
       
  2962 -
       
  2963  	__MINGW__=${SBS_MINGW:-$SBS_HOME/$HOSTPLATFORM_DIR/mingw}
       
  2964  	__CYGWIN__=${SBS_CYGWIN:-$SBS_HOME/$HOSTPLATFORM_DIR/cygwin}
       
  2965 -	__PYTHON__=${SBS_PYTHON:-$SBS_HOME/$HOSTPLATFORM_DIR/python252/python.exe}
       
  2966  
       
  2967      # Command for unifying path strings. For example, "c:\some\path" and
       
  2968      # "/cygdrive/c/some/path" will both be converted into "c:/some/path".
       
  2969  	u="$__CYGWIN__/bin/cygpath.exe -m"
       
  2970  
       
  2971 -	__MINGW__=$($u "$__MINGW__")
       
  2972 -	__CYGWIN__=$($u "$__MINGW__")
       
  2973 -	__PYTHON__=$($u "$__PYTHON__")
       
  2974 -
       
  2975 +	SBS_HOME=${SBS_HOME//\\//}
       
  2976  	export SBS_HOME=$($u "$SBS_HOME")
       
  2977 -	export EPOCROOT=$($u "$EPOCROOT")
       
  2978  
       
  2979 +	__MINGW__=$($u "$__MINGW__")
       
  2980 +	__CYGWIN__=$($u "$__MINGW__")
       
  2981  	export PATH=${__MINGW__}/bin:${__CYGWIN__}/bin:$SBS_HOME/$HOSTPLATFORM_DIR/bin:$PATH
       
  2982  
       
  2983  	# Tell Cygwin not to map unix security attributes to windows to
       
  2984  	# prevent raptor from potentially creating read-only files:
       
  2985  	export CYGWIN='nontsec nosmbntsec'
       
  2986  
       
  2987 +	# The python and PYTHONPATH used by Raptor are determined by, in order of precedence:
       
  2988 +	#  1. the SBS_PYTHON and SBS_PYTHONPATH environment variables (if set)
       
  2989 +	#  2. the python shipped locally with Raptor (if present)
       
  2990 +	#  3. the python on the system PATH and the PYTHONPATH set in the system environment
       
  2991 +
       
  2992 +	__LOCAL_PYTHON__=$SBS_HOME/win32/python264/python.exe
       
  2993 +
       
  2994 +	if [ -n "$SBS_PYTHON" ]; then
       
  2995 +		__PYTHON__=$SBS_PYTHON
       
  2996 +	elif [ -f "$__LOCAL_PYTHON__" ]; then
       
  2997 +		__PYTHON__=$__LOCAL_PYTHON__
       
  2998 +		export SBS_PYTHON=$__PYTHON__
       
  2999 +		export PYTHONPATH=
       
  3000 +	else
       
  3001 +		__PYTHON__=python.exe
       
  3002 +	fi
       
  3003 +	__PYTHON__=$($u "$__PYTHON__")		
       
  3004 +
       
  3005 +	if [ -n "$SBS_PYTHONPATH" ]; then
       
  3006 +		export PYTHONPATH=$($u "$SBS_PYTHONPATH")
       
  3007 +	fi
       
  3008  else
       
  3009 +	export PYTHONPATH=${SBS_PYTHONPATH:-$SBS_HOME/$HOSTPLATFORM_DIR/python262/lib}
       
  3010  	PATH=$SBS_HOME/$HOSTPLATFORM_DIR/python262/bin:$SBS_HOME/$HOSTPLATFORM_DIR/bin:$PATH
       
  3011  	LD_LIBRARY_PATH=$SBS_HOME/$HOSTPLATFORM_DIR/python262/lib:$SBS_HOME/$HOSTPLATFORM_DIR/bv/lib:$LD_LIBRARY_PATH
       
  3012  
       
  3013 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/bin/sbs.bat /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/bin/sbs.bat
       
  3014 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/bin/sbs.bat	2010-05-18 19:32:34.709348670 +0100
       
  3015 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/bin/sbs.bat	2010-05-17 18:47:53.024843000 +0100
       
  3016 @@ -1,5 +1,5 @@
       
  3017  @rem
       
  3018 -@rem Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
       
  3019 +@rem Copyright (c) 2005-2010 Nokia Corporation and/or its subsidiary(-ies).
       
  3020  @rem All rights reserved.
       
  3021  @rem This component and the accompanying materials are made available
       
  3022  @rem under the terms of the License "Eclipse Public License v1.0"
       
  3023 @@ -15,43 +15,7 @@
       
  3024  @rem
       
  3025  
       
  3026  @SETLOCAL
       
  3027 -@SET HOSTPLATFORM=win 32
       
  3028 -@SET HOSTPLATFORM_DIR=win32
       
  3029 -
       
  3030 -
       
  3031 -@REM Automatically find SBS_HOME if it is not set
       
  3032 -@IF NOT "%SBS_HOME%"==""  goto foundhome
       
  3033 -@SET RAPTORBINDIR=%~dp0
       
  3034 -@SET WD=%cd%
       
  3035 -@cd %RAPTORBINDIR%\..
       
  3036 -@SET SBS_HOME=%cd%
       
  3037 -@cd %WD%
       
  3038 -:foundhome 
       
  3039 -
       
  3040 -@REM Use the python set by the environment if possible
       
  3041 -@SET __PYTHON__=%SBS_PYTHON%
       
  3042 -@IF "%__PYTHON__%"=="" SET __PYTHON__=%SBS_HOME%\win32\python252\python.exe
       
  3043 -
       
  3044 -@REM Use the mingw set by the environment if possible
       
  3045 -@SET __MINGW__=%SBS_MINGW%
       
  3046 -@IF "%__MINGW__%"=="" SET __MINGW__=%SBS_HOME%\win32\mingw
       
  3047 -
       
  3048 -@REM Use the cygwin set by the environment if possible
       
  3049 -@SET __CYGWIN__=%SBS_CYGWIN%
       
  3050 -@IF "%__CYGWIN__%"=="" SET __CYGWIN__=%SBS_HOME%\win32\cygwin
       
  3051 -
       
  3052 -@REM add to the search path
       
  3053 -@SET PATH=%__MINGW__%\bin;%__CYGWIN__%\bin;%SBS_HOME%\win32\bin;%PATH%
       
  3054 -
       
  3055 -@REM Make sure that /tmp is not set incorrectly for sbs
       
  3056 -@umount -u /tmp >NUL  2>NUL
       
  3057 -@mount -u %TEMP% /tmp >NUL 2>NUL
       
  3058 -@umount -u / >NUL  2>NUL
       
  3059 -@mount -u %__CYGWIN__% / >NUL 2>NUL
       
  3060 -
       
  3061 -@REM Tell CYGWIN not to map unix security attributes to windows to
       
  3062 -@REM prevent raptor from potentially creating read-only files:
       
  3063 -@set CYGWIN=nontsec nosmbntsec
       
  3064 +@CALL "%~dp0sbs_env.bat"
       
  3065  
       
  3066  @REM Run Raptor with all the arguments.
       
  3067  @%__PYTHON__% %SBS_HOME%\python\raptor_start.py %*
       
  3068 Only in /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/bin: sbs_check_exports.py
       
  3069 Only in /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/bin: sbs_env.bat
       
  3070 Only in /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/bin: sbs_filter
       
  3071 Only in /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/bin: sbs_filter.bat
       
  3072 Only in /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/bin: sbs_filter.py
       
  3073 Only in /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/bin: timelines.py
       
  3074 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/group/exports.inf /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/group/exports.inf
       
  3075 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/group/exports.inf	2010-05-18 19:32:34.713348619 +0100
       
  3076 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/group/exports.inf	2010-05-09 13:36:29.473288000 +0100
  2939 @@ -15,209 +15,209 @@
  3077 @@ -15,209 +15,209 @@
  2940  *
  3078  *
  2941  */
  3079  */
  2942  
  3080  
  2943 -../RELEASE-NOTES.txt /tools/sbs/RELEASE-NOTES.txt
  3081 -../RELEASE-NOTES.txt /tools/sbs/RELEASE-NOTES.txt
  3350 +../schema/build/1_0.xsd ../../tools/sbs/schema/build/1_0.xsd
  3488 +../schema/build/1_0.xsd ../../tools/sbs/schema/build/1_0.xsd
  3351 +../win32/bin/ransleep.exe ../../tools/sbs/win32/bin/ransleep.exe
  3489 +../win32/bin/ransleep.exe ../../tools/sbs/win32/bin/ransleep.exe
  3352 +../win32/bin/sbs_descramble.exe ../../tools/sbs/win32/bin/sbs_descramble.exe
  3490 +../win32/bin/sbs_descramble.exe ../../tools/sbs/win32/bin/sbs_descramble.exe
  3353 +../win32/bin/talonctl.exe ../../tools/sbs/win32/bin/talonctl.exe
  3491 +../win32/bin/talonctl.exe ../../tools/sbs/win32/bin/talonctl.exe
  3354 +../win32/bin/talon.exe ../../tools/sbs/win32/bin/talon.exe
  3492 +../win32/bin/talon.exe ../../tools/sbs/win32/bin/talon.exe
  3355 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/sbsv2/raptor/lib/config/gcc.xml /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/sbsv2/raptor/lib/config/gcc.xml
  3493 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/config/arm.xml /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/config/arm.xml
  3356 --- /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/sbsv2/raptor/lib/config/gcc.xml	2010-05-13 19:14:25.273081672 +0100
  3494 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/config/arm.xml	2010-05-18 19:32:34.717348918 +0100
  3357 +++ /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/sbsv2/raptor/lib/config/gcc.xml	2010-05-08 13:35:13.030060000 +0100
  3495 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/config/arm.xml	2010-05-17 18:47:53.028843000 +0100
  3358 @@ -26,7 +26,7 @@
  3496 @@ -1,51 +1,62 @@
  3359  		<!-- used by FLM code -->
  3497  <?xml version="1.0" encoding="ISO-8859-1"?>
  3360  		<set name='COMPILER' value='$(GCC) -c' type='tool' versionCommand='$(GCC) -v' versionResult='gcc version (3.[456])|(4.[0-9])'/>
  3498  <build xmlns="http://symbian.com/xml/build" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://symbian.com/xml/build ../../schema/build/2_0.xsd">
       
  3499 -	<!-- build configurations for ARM compilers -->
       
  3500 +	<!-- build variants for ARM toolchain builds -->
       
  3501  	<var name="arm" extends="root">
       
  3502  		<varRef ref="default.interfaces"/>
       
  3503  		<varRef ref="default.locations"/>
       
  3504 -		<env name="EFREEZE" default="$(PERL) $(EPOCROOT)/epoc32/tools/efreeze.pl" type="tool"/>
       
  3505 -		<!-- picked up from the Environment -->
       
  3506 -		<env name="ELF2E32" default="$(EPOCROOT)/epoc32/tools/elf2e32$(DOTEXE)" type="tool"/>
       
  3507 +		
       
  3508 +		<!-- tools and scripts -->
       
  3509  		<env name="BMCONV" default="$(EPOCROOT)/epoc32/tools/bmconv$(DOTEXE)" type="tool"/>
       
  3510  		<env name="CHECKLIB" default="$(EPOCROOT)/epoc32/tools/checklib$(DOTEXE)" type="tool"/>
       
  3511 -		<env name="TRANASM" default="$(PERL) $(EPOCROOT)/epoc32/tools/tranasm.pl" type="tool"/>
       
  3512  		<env name="CPPFILT" default="$(GCCPREFIX)c++filt$(DOTEXE)" type="tool"/>
       
  3513 +		<env name="EFREEZE" default="$(PERL) $(EPOCROOT)/epoc32/tools/efreeze.pl" type="script"/>
       
  3514 +		<env name="ELF2E32" default="$(EPOCROOT)/epoc32/tools/elf2e32$(DOTEXE)" type="tool"/>
       
  3515 +		<env name="PREPDEF" default="$(PERL) $(EPOCROOT)/epoc32/tools/prepdef.pl" type="script"/>
       
  3516  		<env name="RCOMP" default="$(EPOCROOT)/epoc32/tools/rcomp$(DOTEXE)" type="tool"/>
       
  3517 -		<env name="PREPDEF" default="$(PERL) $(EPOCROOT)/epoc32/tools/prepdef.pl" type="path"/>
       
  3518 -		<env name="STRINGTABLE" default="$(PERL) $(EPOCROOT)/epoc32/tools/stringtable.pl" type="path"/>
       
  3519  		<!-- RANSLEEP is a program that can be used to cause a random delay in milliseconds. This is only useful in parallel builds.  See the PERTURBSTARTTIME switch for more details.  -->
       
  3520  		<env name="RANSLEEP" default="$(SBS_HOME)/bin/$(HOSTPLATFORM_DIR)/ransleep$(DOTEXE)" type="tool"/>
       
  3521 -		<set name="BLDINF_OUTPUTPATH" value="$(SBS_BUILD_DIR)"/>
       
  3522 -		<set name="CDEFS" value=""/>	
       
  3523 -		<!-- arm specific interfaces -->
       
  3524 +		<env name="SBSV1MAKE" default="$(EPOCROOT)/epoc32/tools/make$(DOTEXE)" type="tool"/>
       
  3525 +		<env name="STRINGTABLE" default="$(PERL) $(EPOCROOT)/epoc32/tools/stringtable.pl" type="script"/>
       
  3526 +		<env name="TRANASM" default="$(PERL) $(EPOCROOT)/epoc32/tools/tranasm.pl" type="script"/>
       
  3527 +			
       
  3528 +		<!-- interfaces -->
       
  3529  		<set name="INTERFACE.extension" value="Symbian.extension"/>
       
  3530 -		<!-- link to bld.inf and mmp platform names -->
       
  3531 -		<set name="ARMMACROS" value="__MARM_ARMV5__ $(ARMMACROS.CONFIG) $(ARMMACROS.VAR)"/>
       
  3532 +		
       
  3533 +		<!-- macros -->
       
  3534  		<set name="ARMMACROS.CONFIG" value=""/>
       
  3535  		<set name="ARMMACROS.VAR" value=""/>
       
  3536 +		<set name="ARMMACROS" value="__MARM_ARMV5__ $(ARMMACROS.CONFIG) $(ARMMACROS.VAR)"/>
       
  3537 +		<set name="PLATMACROS.WINDOWS" value="$(PLATMACROS.TOOLCHAIN) EPOC32 MARM EABI GENERIC_MARM MARM_ARMV5 $(PLATMACROS.CONFIG) $(PLATMACROS.VAR)"/>
       
  3538 +		<set name="PLATMACROS.LINUX" value="$(PLATMACROS.WINDOWS)"/>
       
  3539 +		<set name="PLATMACROS.CONFIG" value=""/>
       
  3540 +		<set name="PLATMACROS.VAR" value=""/>
       
  3541 +		<set name="PLATMACROS.TOOLCHAIN" value=""/>
       
  3542 +		
       
  3543 +		<set name="BLDINF_OUTPUTPATH" value="$(SBS_BUILD_DIR)"/>
       
  3544  		<set name="CAPABILITY" value=""/>
       
  3545 +		<set name="CDEFS" value="__SUPPORT_CPP_EXCEPTIONS__ _UNICODE __SYMBIAN32__ __EPOC32__ __MARM__ __EABI__ __PRODUCT_INCLUDE__=&quot;$(PRODUCT_INCLUDE)&quot; $(MMPDEFS) $(ARMMACROS)"/>
       
  3546  		<set name="CODE_SEGMENT_START" value=""/>
       
  3547  		<set name="DEFAULT_STDCPP_NEWLIB" value="stdnew.dso"/>
       
  3548  		<set name="DEFAULT_SYMBIAN_NEWLIB" value="scppnwdl.dso"/>
       
  3549 +		<set name="DUMPBCINFO" value=""/>
       
  3550 +		<set name="EPOCSTACKSIZE" value=""/>
       
  3551  		<set name="FULLVARIANTPATH" value="$(VARIANTPLATFORM)/$(VARIANTTYPE)"/>
       
  3552  		<set name="HEADER_FILES_CONTROL_OPTION" value=""/>
       
  3553  		<set name="LIBRARY_DEBUG" value=""/>
       
  3554  		<set name="MMPDEFS" value=""/>
       
  3555  		<set name="NMAKE" value="nmake"/>
       
  3556  		<set name="NMAKEFLAGS" value="-nologo -x - "/>
       
  3557 +		<set name="NO_UNALIGNED_ACCESS" value="$(CC.NO_UNALIGNED_ACCESS)"/>
       
  3558  		<set name="OUTPUTPATH" value="$(SBS_BUILD_DIR)"/>
       
  3559  		<set name="PERTURBSTARTTIME" value=""/>
       
  3560 -		<!-- add a random delay before starting armcc or armlink to ease contention for licensesthe maximum time to delay in milliseconds. RANSLEEP program must be available.   -->
       
  3561 +		<!-- add a random delay before starting armcc or armlink to ease contention for licenses the maximum time to delay in milliseconds. RANSLEEP program must be available.   -->
       
  3562  		<set name="PERTURBMSECS" value="500"/>
       
  3563  		<!-- the maximum time to delay in milliseconds -->
       
  3564 -		<set name="BLDINF_OUTPUTPATH" value="$(SBS_BUILD_DIR)"/>
       
  3565 +		<set name="POSTLINKER_COMPRESSION_DEFAULT" value="inflate"/>
       
  3566  		<set name="RELEASEPATH" value="$(EPOCROOT)/epoc32/release"/>
       
  3567  		<set name="RESOLVED_DEFFILE" value=""/>
       
  3568  		<set name="RUNTIME_LIBS_PATH" value="$(EPOCROOT)/epoc32/release/armv5/lib"/>
       
  3569 -		<set name="SBSV1MAKE" value="$(EPOCROOT)/epoc32/tools/make$(DOTEXE)"/>
       
  3570  		<set name="SID" value=""/>
       
  3571 -		<set name="EPOCSTACKSIZE" value=""/>
       
  3572  		<set name="STATIC_LIBRARY_DIR" value="$(EPOCROOT)/epoc32/release/$(VARIANTPLATFORM)/$(VARIANTTYPE)"/>
       
  3573  		<set name="STATIC_RUNTIME_DIR" value="$(EPOCROOT)/epoc32/release/$(VARIANTPLATFORM)/$(VARIANTTYPE)"/>
       
  3574  		<set name="SYMBIAN_CC_MESSAGE_OPTION" value="$(CC_WARNINGS_CONTROL_OPTION) $(CC_ERRORS_CONTROL_OPTION)"/>
       
  3575 @@ -58,22 +69,16 @@
       
  3576  		<set name="TARGET" value=""/>
       
  3577  		<set name="UNIX_SLASH_FOR_CC_ABS_PATHS" value="0"/>
       
  3578  		<set name="UNRESOLVED_SYMBOL_REF_OPTION" value=""/>
       
  3579 -		<set name="DUMPBCINFO" value=""/>
       
  3580 -		<set name="MAKEDEFFILE" value="1"/>
       
  3581 -		<set name="PLATMACROS.WINDOWS" value="ARMCC EPOC32 MARM EABI GENERIC_MARM MARM_ARMV5 $(PLATMACROS.CONFIG) $(PLATMACROS.VAR)"/>
       
  3582 -		<set name="PLATMACROS.LINUX" value="$(PLATMACROS.WINDOWS)"/>
       
  3583 -		<set name="PLATMACROS.CONFIG" value=""/>
       
  3584 -		<set name="PLATMACROS.VAR" value=""/>
       
  3585 -		<set name="NO_UNALIGNED_ACCESS" value="$(CC.NO_UNALIGNED_ACCESS)"/>
       
  3586  	</var>
       
  3587 +	
       
  3588  	<var name="v5">
       
  3589  		<set name="TRADITIONAL_PLATFORM" value="ARMV5"/>
       
  3590  		<set name="VARIANTPLATFORM" value="armv5"/>
       
  3591 -		<set name="PLATMACROS.CONFIG" value=""/>
       
  3592  		<set name="DEBUG_FORMAT" value="$(CC.DWARF2)"/>
       
  3593  		<set name="TARGET_ARCH_OPTION" value="$(CC.ARMV5)"/>
       
  3594  		<set name="LINKER_ARCH_OPTION" value="$(LD.ARMV5)"/>
       
  3595 -		<set name="ARMFPU" value="$(CC.SOFTVFP_MAYBE_VFPV2)"/>
       
  3596 +		<set name="COMPILER_FPU_DEFAULT" value="$(CC.SOFTVFP_MAYBE_VFPV2)"/>
       
  3597 +		<set name="POSTLINKER_FPU_DEFAULT" value="$(PL.SOFTVFP_MAYBE_VFPV2)"/>
       
  3598  		<set name="GENERATE_ABIV1_IMPLIBS" value="$(SUPPORTS_ABIV1_IMPLIBS)"/>
       
  3599  	</var>
       
  3600  	<var name="v6">
       
  3601 @@ -85,7 +90,8 @@
       
  3602  		<set name="TARGET_ARCH_OPTION" value="$(CC.ARMV6)"/>
       
  3603  		<set name="LINKER_ARCH_OPTION" value="$(LD.ARMV6)"/>
       
  3604  		<set name="STATIC_RUNTIME_DIR" value="$(EPOCROOT)/epoc32/release/armv5/$(VARIANTTYPE)"/>
       
  3605 -		<set name="ARMFPU" value="$(CC.SOFTVFP_MAYBE_VFPV2)"/>
       
  3606 +		<set name="COMPILER_FPU_DEFAULT" value="$(CC.SOFTVFP_MAYBE_VFPV2)"/>
       
  3607 +		<set name="POSTLINKER_FPU_DEFAULT" value="$(PL.SOFTVFP_MAYBE_VFPV2)"/>
       
  3608  	</var>
       
  3609  	<var name="v7">
       
  3610  		<set name="TRADITIONAL_PLATFORM" value="ARMV7"/>
       
  3611 @@ -95,7 +101,8 @@
       
  3612  		<set name="DEBUG_FORMAT" value="$(CC.DWARF3)"/>
       
  3613  		<set name="TARGET_ARCH_OPTION" value="$(CC.ARMV7)"/>
       
  3614  		<set name="LINKER_ARCH_OPTION" value="$(LD.ARMV7)"/>
       
  3615 -		<set name="ARMFPU" value="$(CC.SOFTVFP_MAYBE_VFPV3)"/>
       
  3616 +		<set name="COMPILER_FPU_DEFAULT" value="$(CC.SOFTVFP_MAYBE_VFPV3)"/>
       
  3617 +		<set name="POSTLINKER_FPU_DEFAULT" value="$(PL.SOFTVFP_MAYBE_VFPV3)"/>
       
  3618  	</var>
       
  3619  	<var name="9e" extends="v5">
       
  3620  		<set name="VARIANTPLATFORM" value="arm9e"/>
       
  3621 @@ -121,6 +128,9 @@
       
  3622  	<alias name="armv5_urel_gcce4_3_3" meaning="arm.v5.urel.gcce4_3_3"/>
       
  3623  	<alias name="armv5_udeb_gcce4_3_3" meaning="arm.v5.udeb.gcce4_3_3"/>
       
  3624  	
       
  3625 +	<alias name="armv5_urel_gcce4_4_1" meaning="arm.v5.urel.gcce4_4_1"/>
       
  3626 +	<alias name="armv5_udeb_gcce4_4_1" meaning="arm.v5.udeb.gcce4_4_1"/>
       
  3627 +	
       
  3628  	<alias name="armv6_urel" meaning="arm.v6.urel.rvct2_2"/>
       
  3629  	<alias name="armv6_udeb" meaning="arm.v6.udeb.rvct2_2"/>
       
  3630  	<alias name="armv7_urel" meaning="arm.v7.urel.rvct3_1"/>
       
  3631 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/config/gcce.xml /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/config/gcce.xml
       
  3632 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/config/gcce.xml	2010-05-18 19:32:34.717348918 +0100
       
  3633 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/config/gcce.xml	2010-05-17 18:47:53.032843000 +0100
       
  3634 @@ -1,108 +1,128 @@
       
  3635  <?xml version="1.0" encoding="ISO-8859-1"?>
       
  3636  <build xmlns="http://symbian.com/xml/build" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://symbian.com/xml/build ../../schema/build/2_0.xsd">
       
  3637 -	<!-- GCCE build variant for ARM compilers -->
       
  3638 -	<!-- This is called gcce_base in case someone wants to use "gcce" as a configuration name -->
       
  3639 +	<!-- build variant for GCCE ARM toolchains -->
       
  3640  	<var name="gcce_base">
       
  3641  		<set name="TOOLCHAIN" value="GCCE"/>
       
  3642 +		<set name="PLATMACROS.TOOLCHAIN" value="GCCE"/>
       
  3643 +
       
  3644 +		<!-- toolchain tools -->
       
  3645 +		<set name="GCCEAR" value="$(GCCEBIN)/arm-none-symbianelf-ar$(DOTEXE)"/>
       
  3646 +		<set name="GCCEASM" value="$(GCCEBIN)/arm-none-symbianelf-as$(DOTEXE)"/>
       
  3647 +		<set name="GCCECC" value="$(GCCEBIN)/arm-none-symbianelf-g++$(DOTEXE)"/>
       
  3648 +		<set name="GCCELD" value="$(GCCEBIN)/arm-none-symbianelf-g++$(DOTEXE)"/>
       
  3649 +		<set name="FROMELF" value="$(GCCEBIN)/arm-none-symbianelf-readelf$(DOTEXE)"/>
       
  3650 +
       
  3651  		<set name="CC" value="$(GCCECC)"/>
       
  3652  		<set name="LD" value="$(GCCELD)"/>
       
  3653  		<set name="ASM" value="$(GCCEASM)"/>
       
  3654  		<set name="AR" value="$(GCCEAR)"/>		
       
  3655 -		<set name="GCCECC" value="$(GCCEBIN)/arm-none-symbianelf-g++$(DOTEXE)"/>
       
  3656 -		<set name="GCCELD" value="$(GCCEBIN)/arm-none-symbianelf-ld$(DOTEXE)"/>
       
  3657 -		<set name="GCCEASM" value="$(GCCEBIN)/arm-none-symbianelf-as$(DOTEXE)"/>
       
  3658 -		<set name="GCCEAR" value="$(GCCEBIN)/arm-none-symbianelf-ar$(DOTEXE)"/>
       
  3659 -		<set name="FROMELF" value="$(GCCEBIN)/arm-none-symbianelf-readelf$(DOTEXE)"/>
       
  3660 +		
       
  3661  		<set name="AAPCS_OPTION" value="-mapcs -mthumb-interwork"/>
       
  3662  		<set name="ARCHIVER_CREATE_OPTION" value="cr"/>
       
  3663  		<set name="ARM_INSTRUCTION_SET" value="-marm"/>
       
  3664 +		<set name="ARMLIBS" value=""/>
       
  3665  		<set name="ASM_OUTPUT_OPTION" value="-o"/>
       
  3666  		<set name="ASSEMBLER_LISTING_OPTION" value="-S"/>
       
  3667  		<set name="BPABI_OPTION" value=""/>
       
  3668 -		<set name="CC_ERRORS_CONTROL_OPTION" value=""/>
       
  3669 -		<set name="CC_WARNINGS_CONTROL_OPTION" value="-Wall -Wno-unknown-pragmas"/>
       
  3670  		<set name="C_LANG_OPTION" value="-x c"/>
       
  3671 -		<set name="COMMANDFILE_OPTION" value="@"/>
       
  3672 -		<set name="COMPILE_ONLY_OPTION" value="-c"/>
       
  3673 -		<set name="CPP_LANG_OPTION" value="-x c++ -Wno-ctor-dtor-privacy"/>
       
  3674 -		<set name="DEBUG_OPTIMISATION" value="-O0"/>
       
  3675 -		<set name="DEPEND_OPTION" value="-MD -MF"/>
       
  3676 -		<set name="ENUM_OPTION" value=""/>
       
  3677 -		<set name="EXPORT_VTBL_OPTION" value=""/>
       
  3678 -		<set name="EXTRA_LD_OPTION" value=""/>
       
  3679 -		<set name="FPMODE_OPTION" value=""/>
       
  3680 -		<set name="LD_ERRORS_CONTROL_OPTION" value=""/>
       
  3681 -		<set name="LD_WARNINGS_CONTROL_OPTION" value="--no-undefined"/>
       
  3682 -		<set name="LISTING_OPTION" value="-S"/>
       
  3683 -		<set name="EXCEPTIONS" value="-fexceptions"/>
       
  3684 -		<set name="NO_EXCEPTIONS" value="-fno-exceptions"/>
       
  3685 -		<set name="PREINCLUDE_OPTION" value="-include"/>
       
  3686 -		<set name="PREPROCESSOR_OPTION" value="-E"/>
       
  3687 -		<set name="REL_OPTIMISATION" value="-O2"/>
       
  3688 -		<set name="STDLIB_OPTION" value="-nostdlib"/>
       
  3689 -		<set name="RUNTIME_SYMBOL_VISIBILITY_OPTION" value=""/>
       
  3690 -		<set name="RW_BASE_OPTION" value="-Tdata"/>
       
  3691 -		<set name="CODE_SEGMENT_START" value="-Ttext"/>
       
  3692 -		<set name="PREINCLUDE" value="$(EPOCINCLUDE)/gcce/gcce.h"/>
       
  3693 +		<set name="CC.ARMV5" value="-march=armv5t"/>
       
  3694 +		<set name="CC.ARMV6" value="-march=armv6t2"/>
       
  3695 +		<set name="CC.ARMV7" value="-march=armv7"/>
       
  3696  		<!-- From the GCC manual: "With this option, GCC uses features of DWARF version 3 when they are useful; ..." -->
       
  3697  		<!-- There is no -gdwarf-3 option; hence CC.DWARF2 and CC.DWARF3 have the same value. -->
       
  3698  		<set name="CC.DWARF2" value="-gdwarf-2"/>
       
  3699  		<set name="CC.DWARF3" value="-gdwarf-2"/>
       
  3700 -		<set name="LD.ARMV5" value=""/>
       
  3701 -		<set name="LD.ARMV6" value=""/>
       
  3702 -		<set name="LD.ARMV7" value=""/>
       
  3703 -		<set name="ARMMACROS.VAR" value=""/>
       
  3704 +		<set name="CC.NO_UNALIGNED_ACCESS" value=""/>
       
  3705 +		<set name="CC.SOFTVFP_MAYBE_VFPV2" value="soft"/>
       
  3706 +		<set name="CC.SOFTVFP_MAYBE_VFPV3" value="soft"/>
       
  3707 +		<set name="CC_ERRORS_CONTROL_OPTION" value=""/>
       
  3708 +		<set name="CC_WARNINGS_CONTROL_OPTION" value="-Wall -Wno-unknown-pragmas"/>
       
  3709  		<set name="CFLAGS" value=""/>
       
  3710  		<set name="CIADEFS" value="__CIA__"/>
       
  3711 -		<append name="CDEFS" value='__SUPPORT_CPP_EXCEPTIONS__ _UNICODE __SYMBIAN32__ __GCCE__ __EPOC32__ __MARM__ __EABI__ __PRODUCT_INCLUDE__="$(PRODUCT_INCLUDE)" $(MMPDEFS) $(ARMMACROS)'/>
       
  3712 -		<!-- Note that the intention of ABLD for CIA compilation seems to be "-S -Wa,-adln", although this doesn't work -->
       
  3713 +		<set name="CODE_SEGMENT_START" value="-Ttext"/>
       
  3714 +		<set name="COMMANDFILE_OPTION" value="@"/>
       
  3715 +		<set name="COMPILE_ONLY_OPTION" value="-c"/>
       
  3716  		<set name="COMPILER_CIA_FLAGS" value="-marm"/>
       
  3717  		<set name="COMPILER_DEFINES" value="-D__GCCE__"/>
       
  3718 -		<set name="COMPILER_FPU_FLAGS" value="$(CC.OPT.SOFTVFP_MAYBE_VFPV2)$(CC.VAL.SOFTVFP_MAYBE_VFPV2)"/>		
       
  3719 +		<set name="COMPILER_FPU_OPTION" value="-mfloat-abi="/>		
       
  3720  		<set name="COMPILER_INTERWORK_DEFINES" value="__MARM_INTERWORK__"/>
       
  3721  		<set name="COMPILER_SYSTEM_INCLUDE_OPTION" value="-I"/>
       
  3722  		<set name="COMPILER_THUMB_DEFINES" value="__MARM_THUMB__"/>
       
  3723 +		<set name="CPP_LANG_OPTION" value="-x c++ -Wno-ctor-dtor-privacy"/>
       
  3724  		<set name="DATA_SEGMENT_START" value="$(SPLIT_OPTION) $(RW_BASE_OPTION)"/>
       
  3725 +		<set name="DEBUG_OPTIMISATION" value="-O0"/>
       
  3726 +		<set name="DEPEND_OPTION" value="-MD -MF"/>
       
  3727 +		<set name="ENUM_OPTION" value=""/>
       
  3728 +		<set name="EXCEPTIONS" value="-fexceptions"/>
       
  3729 +		<set name="EXPORT_VTBL_OPTION" value=""/>
       
  3730  		<set name="EXTRA_CC_OPTION" value=""/>
       
  3731 +		<set name="EXTRA_LD_OPTION" value=""/>
       
  3732 +		<set name="FPMODE_OPTION" value=""/>
       
  3733  		<set name="HEADER_FILES_CONTROL_OPTION" value=""/>
       
  3734 +		<set name="INSTRUCTION_SET" value=""/>
       
  3735 +		<set name="KERNEL_STATIC_RUNTIME_LIB" value="ksrt3_1.lib"/>
       
  3736 +		<set name="LD.ARMV5" value=""/>
       
  3737 +		<set name="LD.ARMV6" value=""/>
       
  3738 +		<set name="LD.ARMV7" value=""/>
       
  3739 +		<set name="LD_ERRORS_CONTROL_OPTION" value=""/>
       
  3740 +		<set name="LD_WARNINGS_CONTROL_OPTION" value="-Wl,--no-undefined"/>
       
  3741  		<set name="LIBPATH" value=""/>
       
  3742  		<set name="LIBRARY" value=""/>
       
  3743  		<set name="LICENSERETRY_OPTION" value=""/>
       
  3744  		<set name="LINKER_ADD_STATIC_RUNTIME" value="1"/>
       
  3745  		<set name="LINKER_DEBUG_OPTION" value=""/>
       
  3746 -		<!-- Clearly the linker libs stuff following isn't right - need to use ARMLIBS (or reinvent this a bit) -->
       
  3747 +		<set name="LINKER_DEFAULT_LIB_PATHS" value=""/>
       
  3748  		<set name="LINKER_DEFAULT_LIBS" value="-lsupc++ -lgcc"/>
       
  3749 -		<set name="LINKER_DEFAULT_LIB_PATHS" value="-L $(GCCEBIN)/../lib/gcc/arm-none-symbianelf/$(TOOLCHAINVERSION) -L $(GCCEBIN)/../lib/gcc/arm-none-symbianelf/$(TOOLCHAINVERSION)/../../../../arm-none-symbianelf/lib"/>
       
  3750 -		<set name="LINKER_ENTRY_OPTION" value="--entry"/>
       
  3751 -		<set name="LINKER_GROUP_START_OPTION" value="--start-group"/>
       
  3752 +		<set name="LINKER_ENTRY_OPTION" value="-Wl,--entry"/>
       
  3753  		<set name="LINKER_GROUP_END_OPTION" value="--end-group"/>
       
  3754 -		<set name="LINKER_MISC_FLAGS" value="$(CODE_SEGMENT_START) 0x8000"/>
       
  3755 -		<set name="LINKER_NODEBUG_OPTION" value = "--strip-debug"/>
       
  3756 +		<set name="LINKER_GROUP_START_OPTION" value="--start-group"/>
       
  3757 +		<set name="LINKER_MISC_FLAGS" value="-Wl,$(CODE_SEGMENT_START),0x8000"/>
       
  3758 +		<set name="LINKER_NODEBUG_OPTION" value = "-Wl,--strip-debug"/>
       
  3759  		<set name="LINKER_SCRIPT_FILE_OPTION" value="-T"/>
       
  3760 -		<set name="LINKER_SYMBOLS_OPTION" value="-Map"/>
       
  3761 -		<set name="LINKER_SYMBOLS_FILE_OPTION" value=""/>
       
  3762 -		<set name="SHARED_OBJECT_OPTION" value="-shared"/>
       
  3763 +		<set name="LINKER_SYMBOLS_FILE_OPTION" value="-Wl,-Map"/>
       
  3764 +		<set name="LINKER_SYMBOLS_OPTION" value=""/>
       
  3765 +		<set name="LISTING_OPTION" value="-S"/>
       
  3766 +		<set name="NEED_ENTRYPOINT_LIBRARY" value="" />
       
  3767 +		<set name="NEED_ENTRYPOINT_LIBRARY" value=""/>
       
  3768 +		<set name="NO_EXCEPTIONS" value="-fno-exceptions"/>
       
  3769 +		<set name="NO_UNALIGNED_ACCESS" value="$(CC.NO_UNALIGNED_ACCESS)"/>
       
  3770 +		<set name="OWN_LIBRARY_OPTION" value=""/>
       
  3771 +		<set name="PL.SOFTVFP_MAYBE_VFPV2" value="softvfp"/>
       
  3772 +		<set name="PL.SOFTVFP_MAYBE_VFPV3" value="softvfp"/>
       
  3773 +		<set name="PREINCLUDE" value="$(EPOCINCLUDE)/gcce/gcce.h"/>
       
  3774 +		<set name="PREINCLUDE_OPTION" value="-include"/>
       
  3775 +		<set name="PREPROCESSOR_OPTION" value="-E"/>
       
  3776 +		<set name="REL_OPTIMISATION" value="-O2"/>
       
  3777 +		<set name="RELOCATABLE_IMAGE_OPTION" value=""/>
       
  3778 +		<set name="RUNTIME_SYMBOL_VISIBILITY_OPTION" value=""/>
       
  3779 +		<set name="RVCTBIN" value="" />
       
  3780 +		<set name="RVCTINC" value="" />
       
  3781 +		<set name="RVCTLIB" value=""/>
       
  3782 +		<set name="RW_BASE" value="$(RW_BASE_OPTION)0x400000"/>
       
  3783 +		<set name="RW_BASE_OPTION" value="-Wl,-Tdata,"/>
       
  3784 +		<set name="SHARED_OBJECT_OPTION" value="-Wl,-shared"/>
       
  3785  		<set name="SID" value=""/>
       
  3786 -		<set name="SO_NAME_OPTION" value="-soname"/>
       
  3787 +		<set name="SO_NAME_OPTION" value="-Wl,-soname"/>
       
  3788 +		<set name="SPLIT_OPTION" value=""/>
       
  3789 +		<set name="STATIC_LIBS_LIST" value=""/>
       
  3790  		<set name="STATIC_LIBS_PATH" value="" />
       
  3791  		<set name="STDCPP_INCLUDE" value="$(EPOCINCLUDE)/stdapis"/>
       
  3792 +		<set name="STDLIB_OPTION" value="-nodefaultlibs"/>
       
  3793  		<set name="SUPPORTS_ABIV1_IMPLIBS" value=""/>	
       
  3794  		<set name="SYMBIAN_LD_MESSAGE_OPTION" value="$(LD_WARNINGS_CONTROL_OPTION) $(LD_ERRORS_CONTROL_OPTION)"/>
       
  3795 +		<set name="SYMVER_OPTION" value="-Wl,--default-symver"/>
       
  3796  		<set name="TARGET_RELOCATION_OPTION" value="--target1-rel" />
       
  3797 -		<set name="SYMVER_OPTION" value="--default-symver"/>
       
  3798  		<set name="TEMP_FILES_OPTION" value="-pipe"/>
       
  3799  		<set name="THUMB_INSTRUCTION_SET" value="-mthumb"/>
       
  3800  		<set name="TRANSFORM_CIA" value=""/>		
       
  3801 -		<set name="INSTRUCTION_SET" value=""/>
       
  3802  		<set name="UNDEFINED_SYMBOL_REF_OPTION" value="-u"/>
       
  3803  		<set name="UNRESOLVED_SYMBOL_REF_OPTION" value=""/>
       
  3804 -		<set name="USERINCLUDE" value=""/>
       
  3805  		<set name="USER_LIBS_PATH_OPTION" value="--userlibpath"/>
       
  3806 +		<set name="USER_STATIC_RUNTIME_LIB" value="usrt3_1.lib"/>
       
  3807 +		<set name="USER_STATIC_RUNTIME_LIB_NESTED_EXCEPTIONS" value="usrt_nx_3_1.lib"/>
       
  3808 +		<set name="USERINCLUDE" value=""/>
       
  3809  		<set name="VFE_OPTION" value=""/>
       
  3810 -		<set name="PLATMACROS.WINDOWS" value="GCCE EPOC32 MARM EABI GENERIC_MARM MARM_ARMV5 $(PLATMACROS.CONFIG) $(PLATMACROS.VAR)"/>
       
  3811 -		<set name="PLATMACROS.LINUX" value="$(PLATMACROS.WINDOWS)"/>
       
  3812 -		<set name="PLATMACROS.CONFIG" value=""/>
       
  3813 -		<set name="PLATMACROS.VAR" value=""/>
       
  3814 -		<set name="NO_UNALIGNED_ACCESS" value="$(CC.NO_UNALIGNED_ACCESS)"/>
       
  3815 +
       
  3816 +		<append name="CDEFS" value="__GCCE__"/>
       
  3817  	</var>
       
  3818  </build>
       
  3819 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/config/gcc.xml /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/config/gcc.xml
       
  3820 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/config/gcc.xml	2010-05-18 19:32:34.717348918 +0100
       
  3821 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/config/gcc.xml	2010-05-17 19:30:38.665334296 +0100
       
  3822 @@ -1,32 +1,32 @@
       
  3823  <?xml version="1.0" encoding="ISO-8859-1"?>
       
  3824  <build xmlns="http://symbian.com/xml/build" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://symbian.com/xml/build ../../schema/build/2_0.xsd">
       
  3825 -
       
  3826 -	<!-- build configurations for GCC compilers -->
       
  3827 +	<!-- build variants for GCC toolchains -->
       
  3828  	<var name="tools2_base" extends="root">
       
  3829 -
       
  3830  		<varRef ref="default.interfaces"/>
       
  3831  		<varRef ref="default.locations"/>
       
  3832 -		<!-- picked up from the Environment -->
       
  3833 +		
       
  3834 +		<!-- toolchain tools -->
       
  3835  		<env name='RANLIB' default='$(GCCPREFIX)ranlib$(DOTEXE)' type='tool'/>
       
  3836  		<env name='GCC' default='$(GCCPREFIX)g++$(DOTEXE)' type='tool'/>
       
  3837  		<env name='AR' default='$(GCCPREFIX)ar$(DOTEXE)' type='tool'/>
       
  3838  
       
  3839 +		<set name='COMPILER' value='$(GCC) -c' type='tool' versionCommand='$(GCC) -v' versionResult='gcc version (3.[456])|(4.[0-9])'/>
       
  3840 +		<set name='LINKER' value='$(GCC)'/>
       
  3841 +
       
  3842 +		<!-- tools and scripts -->
       
  3843 +		<env name='JAVATC' default='$(JAVA_HOME)/bin/java' type='tool'/> <!-- Java used by Trace Compiler -->
       
  3844 +
       
  3845  		<!-- interfaces -->
       
  3846  		<set name="INTERFACE.exe" value="Tools.exe"/>
       
  3847  		<set name="INTERFACE.lib" value="Tools.lib"/>
       
  3848  
       
  3849 -		<!-- Java used by Trace Compiler -->
       
  3850 -		<env name='JAVA_HOME' default='' type='path'/>
       
  3851 -		<env name='JAVATC' default='$(JAVA_HOME)/bin/java' type='tool'/>
       
  3852 -
       
  3853  		<!-- link to bld.inf and mmp platform names -->
       
  3854  		<set name='TRADITIONAL_PLATFORM' value='TOOLS2'/>
       
  3855 -		<set name='VARIANTPLATFORM' value='tools2'/>
       
  3856 -
       
  3857 -		<!-- used by FLM code -->
       
  3858 -		<set name='COMPILER' value='$(GCC) -c' type='tool' versionCommand='$(GCC) -v' versionResult='gcc version (3.[456])|(4.[0-9])'/>
  3361  
  3859  
  3362 -		<set name='CFLAGS' value='-fdefer-pop -fmerge-constants -fthread-jumps -floop-optimize -fif-conversion -fif-conversion2 -fguess-branch-probability -fcprop-registers -foptimize-sibling-calls -fstrength-reduce -fcse-follow-jumps -fcse-skip-blocks -frerun-cse-after-loop -frerun-loop-opt -fgcse -fgcse-lm -fgcse-sm -fgcse-las -fdelete-null-pointer-checks -fexpensive-optimizations -fregmove -fschedule-insns -fschedule-insns2 -fsched-interblock -fsched-spec -fcaller-saves -fpeephole2 -freorder-blocks -freorder-functions -fstrict-aliasing -funit-at-a-time -falign-functions -falign-jumps -falign-loops -falign-labels -fcrossjumping -pipe -Wall -Wno-ctor-dtor-privacy -Wno-unknown-pragmas -m32'/>
  3860 -		<set name='CFLAGS' value='-fdefer-pop -fmerge-constants -fthread-jumps -floop-optimize -fif-conversion -fif-conversion2 -fguess-branch-probability -fcprop-registers -foptimize-sibling-calls -fstrength-reduce -fcse-follow-jumps -fcse-skip-blocks -frerun-cse-after-loop -frerun-loop-opt -fgcse -fgcse-lm -fgcse-sm -fgcse-las -fdelete-null-pointer-checks -fexpensive-optimizations -fregmove -fschedule-insns -fschedule-insns2 -fsched-interblock -fsched-spec -fcaller-saves -fpeephole2 -freorder-blocks -freorder-functions -fstrict-aliasing -funit-at-a-time -falign-functions -falign-jumps -falign-loops -falign-labels -fcrossjumping -pipe -Wall -Wno-ctor-dtor-privacy -Wno-unknown-pragmas -m32'/>
       
  3861 +		<!-- Java used by Trace Compiler -->
  3363 +		<set name='CFLAGS' value='-std=c++0x -fdefer-pop -fmerge-constants -fthread-jumps -floop-optimize -fif-conversion -fif-conversion2 -fguess-branch-probability -fcprop-registers -foptimize-sibling-calls -fstrength-reduce -fcse-follow-jumps -fcse-skip-blocks -frerun-cse-after-loop -frerun-loop-opt -fgcse -fgcse-lm -fgcse-sm -fgcse-las -fdelete-null-pointer-checks -fexpensive-optimizations -fregmove -fschedule-insns -fschedule-insns2 -fsched-interblock -fsched-spec -fcaller-saves -fpeephole2 -freorder-blocks -freorder-functions -fstrict-aliasing -funit-at-a-time -falign-functions -falign-jumps -falign-loops -falign-labels -fcrossjumping -pipe -Wall -Wno-ctor-dtor-privacy -Wno-unknown-pragmas -m32'/>
  3862 +		<set name='CFLAGS' value='-std=c++0x -fdefer-pop -fmerge-constants -fthread-jumps -floop-optimize -fif-conversion -fif-conversion2 -fguess-branch-probability -fcprop-registers -foptimize-sibling-calls -fstrength-reduce -fcse-follow-jumps -fcse-skip-blocks -frerun-cse-after-loop -frerun-loop-opt -fgcse -fgcse-lm -fgcse-sm -fgcse-las -fdelete-null-pointer-checks -fexpensive-optimizations -fregmove -fschedule-insns -fschedule-insns2 -fsched-interblock -fsched-spec -fcaller-saves -fpeephole2 -freorder-blocks -freorder-functions -fstrict-aliasing -funit-at-a-time -falign-functions -falign-jumps -falign-loops -falign-labels -fcrossjumping -pipe -Wall -Wno-ctor-dtor-privacy -Wno-unknown-pragmas -m32'/>
       
  3863 +		<env name='JAVA_HOME' default='' type='path'/>		
       
  3864 +		<set name='VARIANTPLATFORM' value='tools2'/>
  3364  
  3865  
  3365  		<!-- msys based programs sometimes don't search the path properly.
  3866  		<!-- msys based programs sometimes don't search the path properly.
  3366  		COMPILER_PATH can be set to tell gcc where to find
  3867  		COMPILER_PATH can be set to tell gcc where to find
  3367 @@ -45,7 +45,7 @@
  3868 @@ -39,13 +39,11 @@
       
  3869  
       
  3870  		<!-- macro definitions set by mmps etc -->
       
  3871  		<set name='CDEFS' value='$(MMPDEFS)'/>
       
  3872 -
       
  3873 -
       
  3874  		<set name='CDEFS.DEFAULT' value='__SYMBIAN32__ __TOOLS__ __TOOLS2__ __EXE__ __SUPPORT_CPP_EXCEPTIONS__ __PRODUCT_INCLUDE__="$(PRODUCT_INCLUDE)"'/>
  3368  		<set name='CDEFS.WIN32' value='$(CDEFS.DEFAULT) _WIN32 WIN32 _WINDOWS __TOOLS2_WINDOWS__'/>
  3875  		<set name='CDEFS.WIN32' value='$(CDEFS.DEFAULT) _WIN32 WIN32 _WINDOWS __TOOLS2_WINDOWS__'/>
  3369  		<set name='CDEFS.LINUX' value='$(CDEFS.DEFAULT) __LINUX__ __TOOLS2_LINUX__'/>
  3876  		<set name='CDEFS.LINUX' value='$(CDEFS.DEFAULT) __LINUX__ __TOOLS2_LINUX__'/>
  3370  
  3877  
  3371 -		<set name='INC.COMPILER' value='$(EPOCINCLUDE)/gcc_mingw/gcc_mingw_3_4_2.h'/>
  3878 -		<set name='INC.COMPILER' value='$(EPOCINCLUDE)/gcc_mingw/gcc_mingw_3_4_2.h'/>
  3372 +		<set name='INC.COMPILER' value='$(EPOCINCLUDE)/gcc/gcc.h'/>
  3879 +		<set name='INC.COMPILER' value='$(EPOCINCLUDE)/gcc/gcc.h'/>
  3373  
  3880  
  3374  		<set name='OPT.D' value='-D'/>
  3881  		<set name='OPT.D' value='-D'/>
  3375  		<set name='OPT.L' value='-L'/>
  3882  		<set name='OPT.L' value='-L'/>
  3376 @@ -55,12 +55,11 @@
  3883 @@ -56,11 +54,10 @@
  3377  		<set name='OPT.SYSTEMINCLUDE' value='-isystem '/>
       
  3378  		<set name='OPT.USERINCLUDE' value='-I '/>
  3884  		<set name='OPT.USERINCLUDE' value='-I '/>
  3379  
  3885  
  3380 -		<!-- always use stlport headers -->
  3886  		<!-- always use stlport headers -->
  3381 -		<set name='SYSTEMINCLUDE' value='$(EPOCINCLUDE)/tools/stlport'/>
  3887 -		<set name='SYSTEMINCLUDE' value='$(EPOCINCLUDE)/tools/stlport'/>
  3382 +		<set name='SYSTEMINCLUDE' value=''/>
  3888 +		<set name='SYSTEMINCLUDE' value=''/>
  3383  
  3889  
  3384  		<set name='LINKER' value='$(GCC)'/>
  3890 -		<set name='LINKER' value='$(GCC)'/>
  3385  		<set name='LFLAGS' value=''/>
  3891  		<set name='LFLAGS' value=''/>
  3386 -		<set name='STATICLIBRARY' value='stlport.5.1'/>
  3892 -		<set name='STATICLIBRARY' value='stlport.5.1'/>
  3387 +		<set name='STATICLIBRARY' value=''/>
  3893 +		<set name='STATICLIBRARY' value=''/>
  3388  		<set name='LIBS' value=''/>
  3894  		<set name='LIBS' value=''/>
  3389  		<set name='LIBS.WIN32' value='$(LIBS)'/>
  3895  		<set name='LIBS.WIN32' value='$(LIBS)'/>
  3390  		<set name='LIBS.LINUX' value='$(LIBS) pthread'/>
  3896  		<set name='LIBS.LINUX' value='$(LIBS) pthread'/>
  3391 Only in /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/sbsv2/raptor/python: raptor_version.py.bak
  3897 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/config/gccxml.xml /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/config/gccxml.xml
  3392 Only in /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/sbsv2/raptor/util: build
  3898 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/config/gccxml.xml	2010-05-18 19:32:34.717348918 +0100
       
  3899 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/config/gccxml.xml	2010-05-17 18:47:53.032843000 +0100
       
  3900 @@ -1,21 +1,20 @@
       
  3901  <?xml version="1.0" encoding="ISO-8859-1"?>
       
  3902  <build xmlns="http://symbian.com/xml/build" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://symbian.com/xml/build ../../schema/build/2_0.xsd">
       
  3903 -	<!-- build configurations for the gccxml_cc1plus C++ language processor -->
       
  3904 +	<!-- build variants for the gccxml_cc1plus C++ language processor -->
       
  3905  	<var name="gccxml_base" extends="root">
       
  3906  		<varRef ref="default.interfaces"/>
       
  3907  		<varRef ref="default.locations"/>
       
  3908 -		<!-- picked up from the Environment -->
       
  3909 -		<env name='CPP' default='$(GNUCPP)' type='tool'/>
       
  3910 +		
       
  3911 +		<!-- tools and scripts -->
       
  3912  		<env name='BMCONV' default="$(EPOCROOT)/epoc32/tools/bmconv$(DOTEXE)" type='tool'/>
       
  3913 -		<env name='CREATERFIFILE' default='$(PERL) $(SBS_HOME)/bin/createrfifile.pl ' type='path'/>
       
  3914 +		<set name='CC' value="$(EPOCROOT)/epoc32/tools/gccxml_cc1plus$(DOTEXE)" type='tool'/>
       
  3915 +		<env name='CPP' default='$(GNUCPP)' type='tool'/>
       
  3916 +		<env name='CREATERFIFILE' default='$(PERL) $(SBS_HOME)/bin/createrfifile.pl ' type='script'/>
       
  3917  		<env name='GNUAWK' default='$(GNUPREFIX)gawk$(DOTEXE)' type='tool' versionCommand='$(GNUAWK) --version' versionResult='GNU Awk [3-9].*'/>
       
  3918 -		<env name='MAKEDEF' default='$(PERL) $(EPOCROOT)/epoc32/tools/makedef.pl' type='path'/>
       
  3919 -		<env name='PREPDEF' default='$(PERL) $(EPOCROOT)/epoc32/tools/prepdef.pl' type='path'/>
       
  3920 +		<env name='MAKEDEF' default='$(PERL) $(EPOCROOT)/epoc32/tools/makedef.pl' type='script'/>
       
  3921 +		<env name='PREPDEF' default='$(PERL) $(EPOCROOT)/epoc32/tools/prepdef.pl' type='script'/>
       
  3922  		<env name='RCOMP' default='$(EPOCROOT)/epoc32/tools/rcomp$(DOTEXE)' type='tool'/>
       
  3923 -		<env name='RVCT22BIN' type='path'/>
       
  3924 -		<env name='RVCT22INC' type='path'/>
       
  3925 -		<env name='RVCT22LIB' type='path'/>
       
  3926 -		<env name='STRINGTABLE' default='$(PERL) $(EPOCROOT)/epoc32/tools/stringtable.pl' type='path'/>
       
  3927 +		<env name='STRINGTABLE' default='$(PERL) $(EPOCROOT)/epoc32/tools/stringtable.pl' type='script'/>
       
  3928  
       
  3929  		<!-- link to bld.inf and mmp platform names -->
       
  3930  		<set name='TRADITIONAL_PLATFORM' value='GCCXML'/>
       
  3931 @@ -51,11 +50,13 @@
       
  3932  		<env name='JAVATC' default='$(JAVA_HOME)/bin/java' type='tool'/>
       
  3933  
       
  3934  		<!-- note that gccxml_cc1plus should be version checked, but I've yet to find a reliable way of doing this -->
       
  3935 -		<set name='CC' value="$(EPOCROOT)/epoc32/tools/gccxml_cc1plus$(DOTEXE)" type='tool'/>
       
  3936  		<set name='CDEFS' value='_UNICODE __SYMBIAN32__ __GCC32__ __EPOC32__ __MARM__ __MINGW32__ _STLP_LITTLE_ENDIAN __GCCXML__ __MARM_ARM4__ $(MMPDEFS)'/>
       
  3937  		<set name='CFLAGS' value='-bi -nostdinc -Wall -Wno-ctor-dtor-privacy -Wno-unknown-pragmas -UWIN32 -fshort-wchar -quiet -w '/>
       
  3938  
       
  3939  		<!-- in support of TEMs - processed as if in an RVCT build -->
       
  3940 +		<env name='RVCT22BIN' type='toolchainpath'/>
       
  3941 +		<env name='RVCT22INC' type='toolchainpath'/>
       
  3942 +		<env name='RVCT22LIB' type='toolchainpath'/>
       
  3943  		<set name='RVCTBIN' value='$(RVCT22BIN)'/>
       
  3944  		<set name='RVCTINC' value='$(RVCT22INC)'/>
       
  3945  		<set name='RVCTLIB' value='$(RVCT22LIB)'/>
       
  3946 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/config/interfaces.xml /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/config/interfaces.xml
       
  3947 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/config/interfaces.xml	2010-05-18 19:32:34.717348918 +0100
       
  3948 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/config/interfaces.xml	2010-05-17 18:47:53.032843000 +0100
       
  3949 @@ -5,15 +5,17 @@
       
  3950  	<var name="default.interfaces">
       
  3951  		<!-- interfaces corresponding to target types -->
       
  3952  
       
  3953 -		<set name="INTERFACE_TYPES" value="exe stdexe ext_makefile dll stddll lib stdlib export extension ani plugin textnotifier2 implib var var2 exexp kexe kdll kext klib ldd pdd pdl fsy resource none stringtable bitmap"/>
       
  3954 +		<set name="INTERFACE_TYPES" value="exe stdexe ext_makefile dll stddll lib stdlib export extension ani plugin plugin3 textnotifier2 implib var var2 exexp kexe kdll kext klib pdll ldd pdd pdl fsy resource none stringtable bitmap"/>
       
  3955  		<set name="INTERFACE.exe" value="Symbian.exe"/>
       
  3956  		<set name="INTERFACE.stdexe" value="Symbian.stdexe"/>
       
  3957  		<set name="INTERFACE.stddll" value="Symbian.stddll"/>
       
  3958  		<set name="INTERFACE.stdlib" value="Symbian.stdlib"/>
       
  3959  		<set name="INTERFACE.dll" value="Symbian.dll"/>
       
  3960 +		<set name="INTERFACE.pdll" value="Symbian.pdll"/>
       
  3961  		<set name="INTERFACE.lib" value="Symbian.lib"/>
       
  3962  		<set name="INTERFACE.ani" value="Symbian.ani"/>
       
  3963  		<set name="INTERFACE.plugin" value="Symbian.plugin"/>
       
  3964 +		<set name="INTERFACE.plugin3" value="Symbian.plugin3"/>
       
  3965  		<set name="INTERFACE.textnotifier2" value="Symbian.textnotifier2"/>
       
  3966  		<set name="INTERFACE.implib" value="Symbian.implib"/>
       
  3967  		<set name="INTERFACE.var" value="Symbian.var"/>
       
  3968 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/config/locations.xml /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/config/locations.xml
       
  3969 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/config/locations.xml	2010-05-18 19:32:34.717348918 +0100
       
  3970 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/config/locations.xml	2010-05-17 18:47:53.032843000 +0100
       
  3971 @@ -30,7 +30,7 @@
       
  3972  		<env name='SBS_GNUTOUCH' default='/bin/touch' type='tool'/>
       
  3973  		<env name='SBS_GNUFIND' default='/usr/bin/find' type='tool'/>
       
  3974  		<env name='SBS_GNUGREP' default='/bin/grep' type='tool'/>
       
  3975 -		<env name='SBS_GNUSORT' default='/bin/sort' type='tool'/>
       
  3976 +		<env name='SBS_GNUSORT' default='sort' type='tool'/>
       
  3977  		<env name='SBS_SHELL' default="$(SBS_HOME)/$(HOSTPLATFORM_DIR)/bin/sh" type='tool'/>
       
  3978  		<env name='SBS_ZIP' default="$(SBS_HOME)/$(HOSTPLATFORM_DIR)/bin/zip" type='tool'/>
       
  3979  		<env name='SBS_UNZIP' default="$(SBS_HOME)/$(HOSTPLATFORM_DIR)/bin/unzip" type='tool'/>
       
  3980 @@ -72,11 +72,12 @@
       
  3981  		<env name='SBS_UNZIP' default="$(COREUTILSBINDIR)/unzip.exe" type='tool'/>
       
  3982  		<env name='SBS_BVCPP' default="$(SBS_HOME)/$(HOSTPLATFORM_DIR)/bv/bin/cpp.exe" type='tool'/>
       
  3983  		<env name='SBS_PERL' default='perl.exe' type='tool'/>
       
  3984 -		<env name='SBS_PYTHON' default='$(SBS_HOME)/$(HOSTPLATFORM_DIR)/python252/python.exe' type='tool'/>
       
  3985 +		<env name='SBS_PYTHON' default='python.exe' type='tool'/>
       
  3986  	</var>
       
  3987  
       
  3988  	<var name="default.locations" extends="hostplatform.locations">
       
  3989  		<env name='EPOCROOT' default='' type='path'/>
       
  3990 +		<env name='SBS_HOME' default='' type='path'/>
       
  3991  		<!-- Place where intermediate files are built -->
       
  3992  		<env name='SBS_BUILD_DIR' default='$(EPOCROOT)/epoc32/build' type='path'/>
       
  3993  
       
  3994 @@ -107,7 +108,7 @@
       
  3995  		<set name='BASE_USER_DEFAULT_PLATFORMS' value='ARMV5 ARMV7 WINSCW'/>
       
  3996  
       
  3997  		<set name='BUILD_INCLUDE' value=''/>
       
  3998 -		<set name='CREATEVMAP' value='$(PYTHON) $(SBS_HOME)/bin/createvmap.py' type='tool'/>
       
  3999 +		<set name='CREATEVMAP' value='$(PYTHON) $(SBS_HOME)/bin/createvmap.py' type='script'/>
       
  4000  		<set name='CREATEVMAPCPP' value='$(SBS_BVCPP)' type='tool'/>
       
  4001  		<set name='FEATURELISTFILES' value=''/>
       
  4002  		<set name='FEATUREVARIANTNAME' value=''/>
       
  4003 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/config/make.xml /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/config/make.xml
       
  4004 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/config/make.xml	2010-05-18 19:32:34.717348918 +0100
       
  4005 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/config/make.xml	2010-05-17 18:47:53.032843000 +0100
       
  4006 @@ -47,6 +47,9 @@
       
  4007  
       
  4008  		<!-- is the text output with -j buffered or scrambled? -->
       
  4009  		<set name="scrambled" value="true"/>
       
  4010 +
       
  4011 +		<!-- workaround for damaged log output from emake -->
       
  4012 +		<set name="copylogfromannofile" value="false"/>
       
  4013  	</var>
       
  4014  	
       
  4015  	<alias name="make" meaning="make_engine"/>
       
  4016 @@ -67,6 +70,9 @@
       
  4017  		<set name="build" value="$(EMAKE) HAVE_ORDERONLY= -r"/>
       
  4018  		<set name="scrambled" value="false"/>
       
  4019  		<set name='TALON_DESCRAMBLE' value=''/>
       
  4020 +
       
  4021 +		<!-- workaround for damaged log output from emake -->
       
  4022 +		<set name="copylogfromannofile" value="true"/>
       
  4023  	</var>
       
  4024  
       
  4025  	<alias name="emake" meaning="emake_engine"/>
       
  4026 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/config/msvc.xml /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/config/msvc.xml
       
  4027 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/config/msvc.xml	2010-05-18 19:32:34.721348727 +0100
       
  4028 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/config/msvc.xml	2010-05-17 18:47:53.032843000 +0100
       
  4029 @@ -1,11 +1,11 @@
       
  4030  <?xml version="1.0" encoding="ISO-8859-1"?>
       
  4031  <build xmlns="http://symbian.com/xml/build" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://symbian.com/xml/build ../../schema/build/2_0.xsd">
       
  4032 -	<!-- build configurations for MSVC compilers -->
       
  4033 +	<!-- build variants for MSVC toolchains -->
       
  4034  	<var name="tools_base" extends="root">
       
  4035  		<varRef ref="default.interfaces"/>
       
  4036  		<varRef ref="default.locations"/>
       
  4037  
       
  4038 -		<!-- picked up from the Environment -->
       
  4039 +		<!-- toolchain tools -->
       
  4040  		<env name='MS_CL' default='cl.exe' type='tool' versionCommand='$(MS_CL)' versionResult='Version 12\.[0-9]{2}\.[0-9]{4}'/>
       
  4041  		<env name='MS_LINK' default='link.exe' type='tool' versionCommand='$(MS_LINK)' versionResult='Version 6\.[0-9]{2}.[0-9]{4}'/>
       
  4042  		<env name='MS_LIB' default='lib.exe' type='tool' versionCommand='$(MS_LIB)' versionResult='Version 6\.[0-9]{2}.[0-9]{4}'/>
       
  4043 @@ -17,8 +17,14 @@
       
  4044  
       
  4045  		<!-- link to bld.inf and mmp platform names -->
       
  4046  		<set name='TRADITIONAL_PLATFORM' value='TOOLS'/>
       
  4047 +
       
  4048 +		<!-- interfaces -->
       
  4049 +		<set name="INTERFACE.exe" value="msvctools.exe"/>
       
  4050 +		<set name="INTERFACE.lib" value="msvctools.lib"/>		
       
  4051 +		
       
  4052  		<set name='NMAKE' value='nmake'/>
       
  4053  		<set name='NMAKEFLAGS' value='-nologo -x - '/>
       
  4054 +		
       
  4055  		<!-- tools options -->
       
  4056  		<set name='OPT.BROWSEDB' value='-o'/>
       
  4057  		<set name='OPT.BROWSEFILE' value='-FR'/>
       
  4058 @@ -32,7 +38,6 @@
       
  4059  		<set name='OPT.NOLOGO' value='-nologo'/>
       
  4060  		<set name='OPT.OBJECTFILE' value='-Fo'/>
       
  4061  		<set name='OPT.OUTFILE' value='-out:'/>
       
  4062 -		<set name='OPT.PDBFILE' value='-Fd'/>
       
  4063  		<set name='OPT.PREINCLUDE' value='-FI '/>
       
  4064  		<set name='OPT.SUBSYSTEM' value='-subsystem:'/>
       
  4065  		<set name='OPT.SYSINCLUDE' value='-I '/>
       
  4066 @@ -44,7 +49,7 @@
       
  4067  		<set name='CDEFS.REL' value='NDEBUG'/>
       
  4068  		<set name='CFLAGS' value='$(OPT.COMPILE) $(OPT.NOLOGO) -Zp4 -GF'/>
       
  4069  		<set name='CFLAGS.DEFAULT.WARNLEVEL' value='-W4'/>
       
  4070 -		<set name='CFLAGS.DEB' value='-Zi -Od'/>
       
  4071 +		<set name='CFLAGS.DEB' value='-Od'/>
       
  4072  		<set name='CFLAGS.REL' value='-O1 -Op'/>
       
  4073  		<set name='SHAREDFLAGS' value='kernel32.lib $(OPT.NOLOGO) -machine:IX86  -ignore:4089 -ignore:4005 -ignore:4098'/>
       
  4074  		<set name='LD' value='$(MS_LINK)'/>
       
  4075 @@ -57,9 +62,6 @@
       
  4076  		<set name='BROWSEFLAGS' value='$(OPT.NOLOGO)'/>
       
  4077  		<set name='PLATMACROS.WINDOWS' value='VC32 TOOLS MSVC6 MSVC600'/>
       
  4078  		<set name='PLATMACROS.LINUX' value='$(PLATMACROS.WINDOWS)'/>
       
  4079 -		<!-- interfaces -->
       
  4080 -		<set name="INTERFACE.exe" value="msvctools.exe"/>
       
  4081 -		<set name="INTERFACE.lib" value="msvctools.lib"/>
       
  4082  
       
  4083  		<set name='RELEASEPATHROOT' value='$(EPOCROOT)/epoc32/release'/>
       
  4084  		<set name='IMPORTLIBPATH' value='$(RELEASEPATHROOT)/tools/udeb'/>
       
  4085 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/config/root.xml /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/config/root.xml
       
  4086 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/config/root.xml	2010-05-18 19:32:34.721348727 +0100
       
  4087 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/config/root.xml	2010-05-17 18:47:53.032843000 +0100
       
  4088 @@ -11,6 +11,8 @@
       
  4089  	-->
       
  4090  
       
  4091  	<var name="root">
       
  4092 +		<env name='FLMDEBUG' default=''/>	
       
  4093 +	
       
  4094  		<varRef ref="root.places"/>
       
  4095  		<varRef ref="root.properties"/>
       
  4096  		
       
  4097 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/config/rvct.xml /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/config/rvct.xml
       
  4098 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/config/rvct.xml	2010-05-18 19:32:34.721348727 +0100
       
  4099 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/config/rvct.xml	2010-05-17 18:47:53.032843000 +0100
       
  4100 @@ -1,66 +1,62 @@
       
  4101  <?xml version="1.0" encoding="ISO-8859-1"?>
       
  4102  <build xmlns="http://symbian.com/xml/build" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://symbian.com/xml/build ../../schema/build/2_0.xsd">
       
  4103 -	<!-- RVCT build variant for RVCT compilers -->
       
  4104 +	<!-- build variant for RVCT ARM toolchains -->
       
  4105  	<var name="rvct">
       
  4106  		<set name="TOOLCHAIN" value="RVCT"/>
       
  4107 +		<set name="PLATMACROS.TOOLCHAIN" value="ARMCC"/>
       
  4108 +	
       
  4109 +		<!-- toolchain tools -->
       
  4110 +		<set name="ARMAR" value="$(RVCTBIN)/armar$(DOTEXE)"/>
       
  4111 +		<set name="ARMASM" value="$(RVCTBIN)/armasm$(DOTEXE)"/>
       
  4112 +		<set name="ARMCC" value="$(RVCTBIN)/armcc$(DOTEXE)"/>
       
  4113 +		<set name="ARMLD" value="$(RVCTBIN)/armlink$(DOTEXE)"/>
       
  4114 +		<set name="FROMELF" value="$(RVCTBIN)/fromelf$(DOTEXE)"/>
       
  4115 +		
       
  4116  		<set name="CC" value="$(ARMCC)"/>
       
  4117  		<set name="LD" value="$(ARMLD)"/>
       
  4118  		<set name="ASM" value="$(ARMASM)"/>
       
  4119  		<set name="AR" value="$(ARMAR)"/>	
       
  4120 -		<set name="ARMCC" value="$(RVCTBIN)/armcc$(DOTEXE)"/>
       
  4121 -		<set name="ARMLD" value="$(RVCTBIN)/armlink$(DOTEXE)"/>
       
  4122 -		<set name="ARMASM" value="$(RVCTBIN)/armasm$(DOTEXE)"/>
       
  4123 -		<set name="ARMAR" value="$(RVCTBIN)/armar$(DOTEXE)"/>
       
  4124 -		<set name="FROMELF" value="$(RVCTBIN)/fromelf$(DOTEXE)"/>
       
  4125 +	
       
  4126  		<set name="AAPCS_OPTION" value="--apcs /inter"/>
       
  4127  		<set name="ARCHIVER_CREATE_OPTION" value="--create"/>
       
  4128  		<set name="ARM_INSTRUCTION_SET" value="--arm"/>
       
  4129  		<set name="ASM_OUTPUT_OPTION" value="-o"/>
       
  4130  		<set name="ASSEMBLER_LISTING_OPTION" value="-S"/>
       
  4131  		<set name="BPABI_OPTION" value="--bpabi"/>
       
  4132 +		<set name="CC.DWARF2" value="--dwarf2"/>
       
  4133 +		<set name="CC.DWARF3" value="--dwarf3"/>
       
  4134  		<set name="CC_ERRORS_CONTROL_OPTION" value="--diag_error 1267"/>
       
  4135  		<set name="CC_WARNINGS_CONTROL_OPTION" value="--diag_suppress 161,611,654,997,1152,1300,1464,1488,2523,6318,6331"/>
       
  4136 -		<set name="C_LANG_OPTION" value=""/>
       
  4137 +		<set name="CFLAGS" value=""/>
       
  4138 +		<set name="CIADEFS" value="__CIA__"/>
       
  4139 +		<set name="CODE_SEGMENT_START" value=""/>
       
  4140  		<set name="COMMANDFILE_OPTION" value="--via "/>
       
  4141 +		<set name="COMPILER_CIA_FLAGS" value=""/>
       
  4142 +		<set name="COMPILER_DEFINES" value=""/>
       
  4143 +		<set name="COMPILER_FPU_OPTION" value="--fpu "/>
       
  4144 +		<set name="COMPILER_INTERWORK_DEFINES" value="__MARM_INTERWORK__"/>
       
  4145 +		<set name="COMPILER_SYSTEM_INCLUDE_OPTION" value="-J"/>
       
  4146 +		<set name="COMPILER_THUMB_DEFINES" value="__MARM_THUMB__"/>
       
  4147  		<set name="COMPILE_ONLY_OPTION" value="-c"/>
       
  4148  		<set name="CPP_LANG_OPTION" value="--cpp"/>
       
  4149 +		<set name="C_LANG_OPTION" value=""/>
       
  4150 +		<set name="DATA_SEGMENT_START" value="$(SPLIT_OPTION) $(RW_BASE_OPTION)"/>
       
  4151  		<set name="DEBUG_OPTIMISATION" value="-O0"/>
       
  4152  		<set name="DEPEND_OPTION" value="--depend_format=unix --depend"/>
       
  4153  		<set name="ENUM_OPTION" value="--enum_is_int"/>
       
  4154 +		<set name="EXCEPTIONS" value="--exceptions --exceptions_unwind"/>
       
  4155  		<set name="EXPORT_VTBL_OPTION" value="--export_all_vtbl"/>
       
  4156 +		<set name="EXTRA_CC_OPTION" value=""/>
       
  4157  		<set name="EXTRA_LD_OPTION" value="--datacompressor=off"/>
       
  4158  		<set name="FPMODE_OPTION" value="--fpmode ieee_no_fenv"/>
       
  4159 -		<set name="LD_ERRORS_CONTROL_OPTION" value=""/>
       
  4160 -		<set name="LD_WARNINGS_CONTROL_OPTION" value="--diag_suppress 6331"/>
       
  4161 -		<set name="LISTING_OPTION" value="-S"/>
       
  4162 -		<set name="EXCEPTIONS" value="--exceptions --exceptions_unwind"/>
       
  4163 -		<set name="NO_EXCEPTIONS" value="--no_exceptions --no_exceptions_unwind"/>
       
  4164 -		<set name="PREINCLUDE_OPTION" value="--preinclude"/>
       
  4165 -		<set name="PREPROCESSOR_OPTION" value="-E"/>
       
  4166 -		<set name="REL_OPTIMISATION" value="-O2"/>
       
  4167 -		<set name="STDLIB_OPTION" value="--no_scanlib"/>
       
  4168 -		<set name="RUNTIME_SYMBOL_VISIBILITY_OPTION" value="--dllimport_runtime"/>
       
  4169 -		<set name="RW_BASE_OPTION" value="--rw-base"/>
       
  4170 -		<set name="CODE_SEGMENT_START" value=""/>
       
  4171 -		<set name="PREINCLUDE" value="$(RVCT_PRE_INCLUDE)"/>
       
  4172 -		<set name="CC.DWARF2" value="--dwarf2"/>
       
  4173 -		<set name="CC.DWARF3" value="--dwarf3"/>
       
  4174 +		<set name="HEADER_FILES_CONTROL_OPTION" value=""/>
       
  4175 +		<set name="INSTRUCTION_SET" value=""/>
       
  4176  		<set name="LD.ARMV5" value=""/>
       
  4177  		<set name="LD.ARMV6" value=""/>
       
  4178  		<set name="LD.ARMV7" value=""/>
       
  4179 -		<set name="ARMMACROS.VAR" value=""/>
       
  4180 -		<set name="CFLAGS" value=""/>
       
  4181 -		<set name="CIADEFS" value="__CIA__"/>
       
  4182 -		<append name="CDEFS" value='__SUPPORT_CPP_EXCEPTIONS__ _UNICODE __SYMBIAN32__ __ARMCC__ __EPOC32__ __MARM__ __EABI__ __PRODUCT_INCLUDE__="$(PRODUCT_INCLUDE)" $(MMPDEFS) $(ARMMACROS)'/>
       
  4183 -		<set name="COMPILER_CIA_FLAGS" value=""/>
       
  4184 -		<set name="COMPILER_FPU_FLAGS" value="--fpu $(ARMFPU)"/>	
       
  4185 -		<set name="COMPILER_DEFINES" value=""/>
       
  4186 -		<set name="COMPILER_INTERWORK_DEFINES" value="__MARM_INTERWORK__"/>
       
  4187 -		<set name="COMPILER_SYSTEM_INCLUDE_OPTION" value="-J"/>
       
  4188 -		<set name="COMPILER_THUMB_DEFINES" value="__MARM_THUMB__"/>
       
  4189 -		<set name="DATA_SEGMENT_START" value="$(SPLIT_OPTION) $(RW_BASE_OPTION)"/>
       
  4190 -		<set name="EXTRA_CC_OPTION" value=""/>
       
  4191 -		<set name="HEADER_FILES_CONTROL_OPTION" value=""/>
       
  4192 +		<set name="LD_ERRORS_CONTROL_OPTION" value=""/>
       
  4193 +		<set name="LD_WARNINGS_CONTROL_OPTION" value="--diag_suppress 6331"/>
       
  4194 +		<set name="LD_WARNINGS_SUPPRESSION_ARMLIBS" value="--diag_suppress 6780"/>
       
  4195  		<set name="LIBPATH" value=""/>
       
  4196  		<set name="LIBRARY" value=""/>
       
  4197  		<set name="LICENSERETRY_OPTION" value=""/>
       
  4198 @@ -69,25 +65,35 @@
       
  4199  		<set name="LINKER_DEFAULT_LIBS" value=""/>
       
  4200  		<set name="LINKER_DEFAULT_LIB_PATHS" value=""/>
       
  4201  		<set name="LINKER_ENTRY_OPTION" value="--entry"/>
       
  4202 -		<set name="LINKER_GROUP_START_OPTION" value=""/>
       
  4203  		<set name="LINKER_GROUP_END_OPTION" value=""/>
       
  4204 +		<set name="LINKER_GROUP_START_OPTION" value=""/>
       
  4205  		<set name="LINKER_MISC_FLAGS" value="$(LICENSERETRY_OPTION)"/>
       
  4206  		<set name="LINKER_NODEBUG_OPTION" value=""/>
       
  4207  		<set name="LINKER_SCRIPT_FILE_OPTION" value=""/>
       
  4208 -		<set name="LINKER_SYMBOLS_OPTION" value="--symbols"/>
       
  4209  		<set name="LINKER_SYMBOLS_FILE_OPTION" value="--list"/>
       
  4210 +		<set name="LINKER_SYMBOLS_OPTION" value="--symbols"/> 
       
  4211 +		<set name="LISTING_OPTION" value="-S"/>
       
  4212 +		<set name="NO_EXCEPTIONS" value="--no_exceptions --no_exceptions_unwind"/>
       
  4213 +		<set name="NO_UNALIGNED_ACCESS" value="$(CC.NO_UNALIGNED_ACCESS)"/>
       
  4214 +		<set name="PREINCLUDE" value="$(RVCT_PRE_INCLUDE)"/>
       
  4215 +		<set name="PREINCLUDE_OPTION" value="--preinclude"/>
       
  4216 +		<set name="PREPROCESSOR_OPTION" value="-E"/>
       
  4217 +		<set name="REL_OPTIMISATION" value="-O2"/>
       
  4218 +		<set name="RUNTIME_SYMBOL_VISIBILITY_OPTION" value="--dllimport_runtime"/>
       
  4219 +		<set name="RW_BASE" value="$(RW_BASE_OPTION) 0x400000"/>
       
  4220 +		<set name="RW_BASE_OPTION" value="--rw-base"/> 
       
  4221  		<set name="SHARED_OBJECT_OPTION" value="--dll"/>
       
  4222  		<set name="SID" value=""/>
       
  4223  		<set name="SO_NAME_OPTION" value="--soname"/>
       
  4224  		<set name="STATIC_LIBS_PATH" value="$(RVCTLIB)/armlib"/>
       
  4225  		<set name="STDCPP_INCLUDE" value="$(EPOCINCLUDE)/stdapis"/>
       
  4226 -		<set name="SYMBIAN_LD_MESSAGE_OPTION" value="$(LD_WARNINGS_CONTROL_OPTION) $(LD_ERRORS_CONTROL_OPTION)"/>
       
  4227 +		<set name="STDLIB_OPTION" value="--no_scanlib"/>
       
  4228  		<set name="SUPPORTS_ABIV1_IMPLIBS" value="1"/>		
       
  4229 -		<set name="TARGET_RELOCATION_OPTION" value="" />
       
  4230 +		<set name="SYMBIAN_LD_MESSAGE_OPTION" value="$(LD_WARNINGS_CONTROL_OPTION) $(LD_ERRORS_CONTROL_OPTION)"/>
       
  4231  		<set name="SYMVER_OPTION" value="--symver_soname"/>
       
  4232 +		<set name="TARGET_RELOCATION_OPTION" value=""/>
       
  4233  		<set name="TEMP_FILES_OPTION" value=""/>
       
  4234  		<set name="THUMB_INSTRUCTION_SET" value="--thumb"/>
       
  4235 -		<set name="INSTRUCTION_SET" value=""/>
       
  4236  		<set name="TRANASM_FLAGS" value="-n -s"/>
       
  4237  		<set name="TRANASM_INPUT_OPTION" value=""/>
       
  4238  		<set name="TRANASM_OUTPUT_OPTION" value="-o="/>
       
  4239 @@ -98,10 +104,7 @@
       
  4240  		<set name="USERINCLUDE" value=""/>
       
  4241  		<set name="USER_LIBS_PATH_OPTION" value="--userlibpath"/>
       
  4242  		<set name="VFE_OPTION" value="--no_vfe"/>
       
  4243 -		<set name="PLATMACROS.WINDOWS" value="ARMCC EPOC32 MARM EABI GENERIC_MARM MARM_ARMV5 $(PLATMACROS.CONFIG) $(PLATMACROS.VAR)"/>
       
  4244 -		<set name="PLATMACROS.LINUX" value="$(PLATMACROS.WINDOWS)"/>
       
  4245 -		<set name="PLATMACROS.CONFIG" value=""/>
       
  4246 -		<set name="PLATMACROS.VAR" value=""/>
       
  4247 -		<set name="NO_UNALIGNED_ACCESS" value="$(CC.NO_UNALIGNED_ACCESS)"/>
       
  4248 +		
       
  4249 +		<append name="CDEFS" value="__ARMCC__"/>
       
  4250  	</var>
       
  4251  </build>
       
  4252 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/config/variants.xml /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/config/variants.xml
       
  4253 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/config/variants.xml	2010-05-18 19:32:34.721348727 +0100
       
  4254 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/config/variants.xml	2010-05-17 18:47:53.036842000 +0100
       
  4255 @@ -6,10 +6,23 @@
       
  4256  	
       
  4257  	-->
       
  4258    
       
  4259 +	<!-- This variant enables building win32 tools in Linux. Tools2 on Linux only -->
       
  4260 +	<var name="win32">
       
  4261 +		<set name='TOOLS2WIN32' value='1'/>
       
  4262 +		<env name='SBS_MINGW_LINUX_PREFIX' default='i586-mingw32msvc'/>
       
  4263 +		<env name='GCC' default='$(SBS_MINGW_LINUX_PREFIX)-g++' type='tool'/>
       
  4264 +		<env name='ARCHIVER' default='$(SBS_MINGW_LINUX_PREFIX)-ar' type='tool'/>
       
  4265 +		<env name='RANLIB' default='$(SBS_MINGW_LINUX_PREFIX)-ranlib' type='tool'/>
       
  4266 +		<set name='RELEASEPATH' value='$(EPOCROOT)/epoc32/release/tools2/$(VARIANTTYPE)'/>
       
  4267 +		<set name='DOTEXE' value='.exe'/>
       
  4268 +		<set name='PLATMACROS.LINUX' value='$(PLATMACROS.WINDOWS)'/>
       
  4269 +	</var>
       
  4270 +
       
  4271  	<!-- This variant turns debug info on for arm only -->
       
  4272  	<var name="debug_info">
       
  4273  		<set name='DEBUG_INFO' value='1'/>
       
  4274  	</var>
       
  4275 +	
       
  4276  	<!-- Run this variant to turn on trace compiler -->
       
  4277  	<var name="tracecompiler">
       
  4278  		<set name='USE_TRACE_COMPILER' value='1'/>
       
  4279 @@ -77,67 +91,40 @@
       
  4280  	</var>
       
  4281  
       
  4282  	<var name="gcce4_3_2" extends="gcce_base">
       
  4283 -		<env name="GCCEBIN" type="path" />
       
  4284 -		<env name="GCCEVERSION" default="$(TOOLCHAINVERSION)" />
       
  4285 -		<set name="TOOLCHAINVERSION" value="4.3.2" />
       
  4286 -		<set name="OWN_LIBRARY_OPTION" value=""/>
       
  4287 -		<set name="STATIC_LIBS_LIST" value=""/>
       
  4288 +		<env name="SBS_GCCE432BIN" type="toolchainpath" />
       
  4289 +		<set name="GCCEBIN" value="$(SBS_GCCE432BIN)" />
       
  4290 +		<set name="GCCECC" value="$(GCCEBIN)/arm-none-symbianelf-g++$(DOTEXE)" type="tool" versionCommand="$(GCCECC) -dumpversion" versionResult="4.3.2"/>
       
  4291  		<set name="RUNTIME_LIBS_LIST" value="drtaeabi.dso dfpaeabi.dso dfprvct3_1.dso drtrvct3_1.dso"/>
       
  4292 -		<set name="ARMLIBS" value=""/>
       
  4293 -		<set name="CC.OPT.SOFTVFP_MAYBE_VFPV2" value="-m"/>
       
  4294 -		<set name="CC.VAL.SOFTVFP_MAYBE_VFPV2" value="soft-float"/>
       
  4295 -		<set name="CC.ARMV5" value="-march=armv5t"/>
       
  4296 -		<set name="LD.ARMV5" value=""/>
       
  4297 -		<set name="LD.ARMV6" value=""/>
       
  4298 -		<set name="LD.ARMV7" value=""/>
       
  4299 -		<set name="RELOCATABLE_IMAGE_OPTION" value=""/>
       
  4300 -		<set name="RVCTLIB" value=""/>
       
  4301 -		<set name="CC.NO_UNALIGNED_ACCESS" value=""/>
       
  4302 -		<set name="CC.SOFTVFP_MAYBE_VFPV2" value=""/>
       
  4303 -		<set name="SPLIT_OPTION" value=""/>
       
  4304 -		<set name="NEED_ENTRYPOINT_LIBRARY" value=""/>
       
  4305 -		<set name="RVCTBIN" value="" />
       
  4306 -		<set name="RVCTINC" value="" />
       
  4307 -		<set name="USER_STATIC_RUNTIME_LIB" value="usrt3_1.lib"/>
       
  4308 -		<set name="KERNEL_STATIC_RUNTIME_LIB" value="ksrt3_1.lib"/>
       
  4309 -		<set name="NEED_ENTRYPOINT_LIBRARY" value="" />
       
  4310 +		<set name="PLATMACROS.VAR" value="GCCE_4 GCCE_4_3"/>
       
  4311 +		<set name="ARMMACROS.VAR" value="__GCCE_4__ __GCCE_4_3__"/>
       
  4312  	</var>
       
  4313  
       
  4314  	<var name="gcce4_3_3" extends="gcce_base">
       
  4315 -		<env name="GCCEBIN" type="path" />
       
  4316 -		<env name="GCCEVERSION" default="$(TOOLCHAINVERSION)" />
       
  4317 -		<set name="TOOLCHAINVERSION" value="4.3.3" />
       
  4318 -		<set name="OWN_LIBRARY_OPTION" value=""/>
       
  4319 -		<set name="STATIC_LIBS_LIST" value=""/>
       
  4320 +		<env name="SBS_GCCE433BIN" type="toolchainpath" />
       
  4321 +		<set name="GCCEBIN" value="$(SBS_GCCE433BIN)" />
       
  4322 +		<set name="GCCECC" value="$(GCCEBIN)/arm-none-symbianelf-g++$(DOTEXE)" type="tool" versionCommand="$(GCCECC) -dumpversion" versionResult="4.3.3"/>
       
  4323  		<set name="RUNTIME_LIBS_LIST" value="drtaeabi.dso dfpaeabi.dso dfprvct3_1.dso drtrvct3_1.dso"/>
       
  4324 -		<set name="ARMLIBS" value=""/>
       
  4325 -		<set name="CC.OPT.SOFTVFP_MAYBE_VFPV2" value="-m"/>
       
  4326 -		<set name="CC.VAL.SOFTVFP_MAYBE_VFPV2" value="soft-float"/>
       
  4327 -		<set name="CC.ARMV5" value="-march=armv5t"/>
       
  4328 -		<set name="LD.ARMV5" value=""/>
       
  4329 -		<set name="LD.ARMV6" value=""/>
       
  4330 -		<set name="LD.ARMV7" value=""/>
       
  4331 -		<set name="RELOCATABLE_IMAGE_OPTION" value=""/>
       
  4332 -		<set name="RVCTLIB" value=""/>
       
  4333 -		<set name="CC.NO_UNALIGNED_ACCESS" value=""/>
       
  4334 -		<set name="CC.SOFTVFP_MAYBE_VFPV2" value=""/>
       
  4335 -		<set name="SPLIT_OPTION" value=""/>
       
  4336 -		<set name="NEED_ENTRYPOINT_LIBRARY" value=""/>
       
  4337 -		<set name="RVCTBIN" value="" />
       
  4338 -		<set name="RVCTINC" value="" />
       
  4339 -		<set name="USER_STATIC_RUNTIME_LIB" value="usrt3_1.lib"/>
       
  4340 -		<set name="KERNEL_STATIC_RUNTIME_LIB" value="ksrt3_1.lib"/>
       
  4341 -		<set name="NEED_ENTRYPOINT_LIBRARY" value="" />
       
  4342 +		<set name="PLATMACROS.VAR" value="GCCE_4 GCCE_4_3"/>
       
  4343 +		<set name="ARMMACROS.VAR" value="__GCCE_4__ __GCCE_4_3__"/>
       
  4344 +	</var>
       
  4345 +	
       
  4346 +	<var name="gcce4_4_1" extends="gcce_base">
       
  4347 +		<env name="SBS_GCCE441BIN" type="toolchainpath" />
       
  4348 +		<set name="GCCEBIN" value="$(SBS_GCCE441BIN)" />
       
  4349 +		<set name="GCCECC" value="$(GCCEBIN)/arm-none-symbianelf-g++$(DOTEXE)" type="tool" versionCommand="$(GCCECC) -dumpversion" versionResult="4.4.1"/>
       
  4350 +		<set name="RUNTIME_LIBS_LIST" value="drtaeabi.dso dfpaeabi.dso"/>
       
  4351 +		<set name="PLATMACROS.VAR" value="GCCE_4 GCCE_4_4"/>
       
  4352 +		<set name="ARMMACROS.VAR" value="__GCCE_4__ __GCCE_4_4__"/>
       
  4353  	</var>
       
  4354  
       
  4355  	<var name="rvct2_2" extends="rvct">
       
  4356 -		<env name="RVCT22BIN" type="path"/>
       
  4357 -		<env name="RVCT22INC" type="path"/>
       
  4358 -		<env name="RVCT22LIB" type="path"/>
       
  4359 +		<env name="RVCT22BIN" type="toolchainpath"/>
       
  4360 +		<env name="RVCT22INC" type="toolchainpath"/>
       
  4361 +		<env name="RVCT22LIB" type="toolchainpath"/>
       
  4362  		<set name="RVCTBIN" value="$(RVCT22BIN)"/>
       
  4363  		<set name="RVCTINC" value="$(RVCT22INC)"/>
       
  4364  		<set name="RVCTLIB" value="$(RVCT22LIB)"/>
       
  4365 -		<set name="ARMCC" value="&quot;$(RVCTBIN)/armcc$(DOTEXE)&quot;" type="tool" versionCommand="$(ARMCC) --vsn" versionResult="Compiler, RVCT2\.2\b"/>
       
  4366 +		<set name="ARMCC" value="$(RVCTBIN)/armcc$(DOTEXE)" type="tool" versionCommand="$(ARMCC) --vsn" versionResult="Compiler, RVCT2\.2\b"/>
       
  4367  		<set name="OWN_LIBRARY_OPTION" value="-Ono_known_library"/>
       
  4368  		<set name="RELOCATABLE_IMAGE_OPTION" value="--reloc"/>
       
  4369  		<set name="SPLIT_OPTION" value="--split"/>
       
  4370 @@ -147,23 +134,24 @@
       
  4371  		<set name="STATIC_LIBS_LIST" value="h_t__uf.l(switch8.o)"/>
       
  4372  		<set name="RUNTIME_LIBS_LIST" value="drtaeabi.dso dfpaeabi.dso dfprvct2_2.dso drtrvct2_2.dso"/>
       
  4373  		<set name="USER_STATIC_RUNTIME_LIB" value="usrt2_2.lib"/>
       
  4374 +		<set name="USER_STATIC_RUNTIME_LIB_NESTED_EXCEPTIONS" value="usrt_nx_2_2.lib"/>
       
  4375  		<set name="KERNEL_STATIC_RUNTIME_LIB" value="ksrt2_2.lib"/>
       
  4376 -		<set name="USRTLIB" value="usrt2_2.lib"/>
       
  4377  		<set name="NEED_ENTRYPOINT_LIBRARY" value="False"/>
       
  4378  		<set name="CC.NO_UNALIGNED_ACCESS" value="--memaccess -UL41"/>
       
  4379  		<set name="CC.SOFTVFP_MAYBE_VFPV2" value="softvfp"/>
       
  4380 +		<set name="PL.SOFTVFP_MAYBE_VFPV2" value="softvfp"/>
       
  4381  		<set name="CC.ARMV5" value="--cpu 5T"/>
       
  4382  		<set name="CC.ARMV6" value="--cpu 6"/>
       
  4383  	</var>
       
  4384  
       
  4385  	<var name="rvct3_1" extends="rvct">
       
  4386 -		<env name="RVCT31BIN" type="path"/>
       
  4387 -		<env name="RVCT31INC" type="path"/>
       
  4388 -		<env name="RVCT31LIB" type="path"/>
       
  4389 +		<env name="RVCT31BIN" type="toolchainpath"/>
       
  4390 +		<env name="RVCT31INC" type="toolchainpath"/>
       
  4391 +		<env name="RVCT31LIB" type="toolchainpath"/>
       
  4392  		<set name="RVCTBIN" value="$(RVCT31BIN)"/>
       
  4393  		<set name="RVCTINC" value="$(RVCT31INC)"/>
       
  4394  		<set name="RVCTLIB" value="$(RVCT31LIB)"/>
       
  4395 -		<set name="ARMCC" value="&quot;$(RVCTBIN)/armcc$(DOTEXE)&quot;" type="tool" versionCommand="$(ARMCC) --version_number" versionResult="310[6-9]\d\d\b"/>
       
  4396 +		<set name="ARMCC" value="$(RVCTBIN)/armcc$(DOTEXE)" type="tool" versionCommand="$(ARMCC) --version_number" versionResult="310[6-9]\d\d\b"/>
       
  4397  		<set name="OWN_LIBRARY_OPTION" value="--library_interface=aeabi_clib"/>
       
  4398  		<set name="RELOCATABLE_IMAGE_OPTION" value=""/>
       
  4399  		<set name="SPLIT_OPTION" value=""/>
       
  4400 @@ -173,47 +161,48 @@
       
  4401  		<set name="STATIC_LIBS_LIST" value="h_5.l"/>
       
  4402  		<set name="RUNTIME_LIBS_LIST" value="drtaeabi.dso dfpaeabi.dso dfprvct3_1.dso drtrvct3_1.dso"/>
       
  4403  		<set name="USER_STATIC_RUNTIME_LIB" value="usrt3_1.lib"/>
       
  4404 +		<set name="USER_STATIC_RUNTIME_LIB_NESTED_EXCEPTIONS" value="usrt_nx_3_1.lib"/>
       
  4405  		<set name="KERNEL_STATIC_RUNTIME_LIB" value="ksrt3_1.lib"/>
       
  4406 -		<set name="USRTLIB" value="usrt3_1.lib"/>
       
  4407  		<set name="NEED_ENTRYPOINT_LIBRARY" value="True"/>
       
  4408  		<set name="CC.NO_UNALIGNED_ACCESS" value="--no_unaligned_access"/>
       
  4409  		<set name="CC.SOFTVFP_MAYBE_VFPV2" value="softvfp"/>
       
  4410 +		<set name="PL.SOFTVFP_MAYBE_VFPV2" value="softvfp"/>
       
  4411  		<set name="CC.SOFTVFP_MAYBE_VFPV3" value="softvfp"/>
       
  4412 -		<set name="CC.ARMV5" value="--cpu=5TE"/>
       
  4413 -		<set name="CC.ARMV6" value="--cpu=6"/>
       
  4414 -		<set name="CC.ARMV7" value="--cpu=7-A"/>
       
  4415 +		<set name="PL.SOFTVFP_MAYBE_VFPV3" value="softvfp"/>
       
  4416 +		<set name="CC.ARMV5" value="--cpu 5TE"/>
       
  4417 +		<set name="CC.ARMV6" value="--cpu 6"/>
       
  4418 +		<set name="CC.ARMV7" value="--cpu 7-A"/>
       
  4419  	</var>
       
  4420  
       
  4421  	<var name="rvct4_0" extends="rvct">
       
  4422 -		<env name="RVCT40BIN" type="path"/>
       
  4423 -		<env name="RVCT40INC" type="path"/>
       
  4424 -		<env name="RVCT40LIB" type="path"/>
       
  4425 +		<env name="RVCT40BIN" type="toolchainpath"/>
       
  4426 +		<env name="RVCT40INC" type="toolchainpath"/>
       
  4427 +		<env name="RVCT40LIB" type="toolchainpath"/>
       
  4428  		<set name="RVCTBIN" value="$(RVCT40BIN)"/>
       
  4429  		<set name="RVCTINC" value="$(RVCT40INC)"/>
       
  4430  		<set name="RVCTLIB" value="$(RVCT40LIB)"/>
       
  4431 -		<set name="ARMCC" value="&quot;$(RVCTBIN)/armcc$(DOTEXE)&quot;" type="tool" versionCommand="$(ARMCC) --version_number" versionResult="400[4-9]\d\d\b"/>
       
  4432 +		<set name="ARMCC" value="$(RVCTBIN)/armcc$(DOTEXE)" type="tool" versionCommand="$(ARMCC) --version_number" versionResult="400[4-9]\d\d\b"/>
       
  4433  		<set name="OWN_LIBRARY_OPTION" value="--library_interface=aeabi_clib"/>
       
  4434  		<set name="RELOCATABLE_IMAGE_OPTION" value=""/>
       
  4435  		<set name="SPLIT_OPTION" value=""/>
       
  4436 -		<set name="STDLIB_OPTION" value=""/>
       
  4437  		<set name="PLATMACROS.VAR" value="ARMCC_4 ARMCC_4_0"/>
       
  4438  		<set name="ARMMACROS.VAR" value="__ARMCC_4__ __ARMCC_4_0__"/>
       
  4439  		<set name="SYMBIAN_LINK_FLAGS.VAR" value="--override_visibility"/>
       
  4440  		<set name="STATIC_LIBS_LIST" value=""/>
       
  4441  		<set name="RUNTIME_LIBS_LIST" value="drtaeabi.dso dfpaeabi.dso"/>
       
  4442  		<set name="USER_STATIC_RUNTIME_LIB" value="usrt4_0.lib"/>
       
  4443 +		<set name="USER_STATIC_RUNTIME_LIB_NESTED_EXCEPTIONS" value="usrt_nx_4_0.lib"/>
       
  4444  		<set name="KERNEL_STATIC_RUNTIME_LIB" value="ksrt4_0.lib"/>
       
  4445 -		<set name="USRTLIB" value="usrt4_0.lib"/>
       
  4446  		<set name="NEED_ENTRYPOINT_LIBRARY" value="True"/>
       
  4447  		<set name="CC.NO_UNALIGNED_ACCESS" value="--no_unaligned_access"/>
       
  4448  		<set name="CC.SOFTVFP_MAYBE_VFPV2" value="softvfp+vfpv2"/>
       
  4449 +		<set name="PL.SOFTVFP_MAYBE_VFPV2" value="vfpv2"/>
       
  4450  		<set name="CC.SOFTVFP_MAYBE_VFPV3" value="softvfp+vfpv3"/>
       
  4451 -		<set name="CC.ARMV5" value="--cpu=5TE"/>
       
  4452 -		<set name="CC.ARMV6" value="--cpu=6"/>
       
  4453 -		<set name="CC.ARMV7" value="--cpu=7-A"/>
       
  4454 -		<set name="LD.ARMV5" value="$(CC.ARMV5)"/>
       
  4455 -		<set name="LD.ARMV6" value="$(CC.ARMV6)"/>
       
  4456 -		<set name="LD.ARMV7" value="$(CC.ARMV7)"/>
       
  4457 +		<!-- Not supported yet : <set name="PL.SOFTVFP_MAYBE_VFPV3" value="vfpv3"/> -->
       
  4458 +		<set name="PL.SOFTVFP_MAYBE_VFPV3" value="vfpv2"/>
       
  4459 +		<set name="CC.ARMV5" value="--cpu 5TE"/>
       
  4460 +		<set name="CC.ARMV6" value="--cpu 6"/>
       
  4461 +		<set name="CC.ARMV7" value="--cpu 7-A"/>
       
  4462  	</var>
       
  4463  
       
  4464  	<var name="urel">
       
  4465 @@ -262,4 +251,17 @@
       
  4466  		<set name='OPTION_CW' value='-cwd include'/>
       
  4467  	</var>
       
  4468  
       
  4469 +	<!-- Variant to allow GCCE-built binaries to be created in epoc32/release/gcce, 
       
  4470 +	     epoc32/release/gccev6 and epoc32/release/gccev7 -->
       
  4471 +	<var name="release_gcce">
       
  4472 +		<set name="VARIANTPLATFORM" value="gcce" />
       
  4473 +		<set name="STATIC_RUNTIME_DIR" value="$(EPOCROOT)/epoc32/release/armv5/$(VARIANTTYPE)"/>
       
  4474 +		<set name="STATIC_LIBRARY_DIR" value="$(EPOCROOT)/epoc32/release/armv5/$(VARIANTTYPE)"/>
       
  4475 +	</var>
       
  4476 +	<var name="release_gccev6" extends="release_gcce" >
       
  4477 +		<set name="VARIANTPLATFORM" value="gccev6" />
       
  4478 +	</var>
       
  4479 +	<var name="release_gccev7" extends="release_gcce" >
       
  4480 +		<set name="VARIANTPLATFORM" value="gccev7" />
       
  4481 +	</var>
       
  4482  </build>
       
  4483 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/config/winscw.xml /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/config/winscw.xml
       
  4484 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/config/winscw.xml	2010-05-18 19:32:34.721348727 +0100
       
  4485 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/config/winscw.xml	2010-05-17 18:47:53.036842000 +0100
       
  4486 @@ -1,24 +1,31 @@
       
  4487  <?xml version="1.0" encoding="ISO-8859-1"?>
       
  4488  <build xmlns="http://symbian.com/xml/build" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://symbian.com/xml/build ../../schema/build/2_0.xsd">
       
  4489 -	<!-- build configurations for Metrowerks Emulator compilers -->
       
  4490 +	<!-- build variants for CodeWarrior toolchains -->
       
  4491  	<var name="winscw_base" extends="root">
       
  4492  		<varRef ref="default.interfaces"/>
       
  4493  		<varRef ref="default.locations"/>
       
  4494 -		<!-- picked up from the Environment -->
       
  4495 -		<env name='CHECKLIB' default='$(EPOCROOT)/epoc32/tools/checklib$(DOTEXE)' type='tool'/>
       
  4496 -		<env name='EFREEZE' default="$(PERL) $(EPOCROOT)/epoc32/tools/efreeze.pl" type='tool'/>
       
  4497 -		<env name='BMCONV' default="$(EPOCROOT)/epoc32/tools/bmconv$(DOTEXE)" type='tool'/>
       
  4498 -		<env name='MAKEDEF' default='$(PERL) $(EPOCROOT)/epoc32/tools/makedef.pl' type='path'/>
       
  4499 -		<env name='MWCC' default='mwccsym2$(DOTEXE)' type='tool' versionCommand='$(MWCC) -version' versionResult='Version 3.2.*'/>
       
  4500 -		<env name='MWLD' default='mwldsym2$(DOTEXE)' type='tool' versionCommand='$(MWLD) -version' versionResult='Version 3.2.*'/>
       
  4501 -		<env name='MWWINRC' default='mwwinrc$(DOTEXE)' type='tool' versionCommand='$(MWWINRC) -version' versionResult='Version 3.2.*'/>
       
  4502 -
       
  4503 -		<env name='PREPDEF' default='$(PERL) $(EPOCROOT)/epoc32/tools/prepdef.pl' type='path'/>
       
  4504 -		<env name='RCOMP' default='$(EPOCROOT)/epoc32/tools/rcomp$(DOTEXE)' type='tool'/>
       
  4505 -		<env name='STRINGTABLE' default='$(PERL) $(EPOCROOT)/epoc32/tools/stringtable.pl' type='path'/>	
       
  4506 +		
       
  4507 +		<!-- toolchain tools -->
       
  4508 +		<env name="MWCC" default="mwccsym2$(DOTEXE)" type="tool" versionCommand="$(MWCC) -version" versionResult="Version 3.2.*"/>
       
  4509 +		<env name="MWLD" default="mwldsym2$(DOTEXE)" type="tool" versionCommand="$(MWLD) -version" versionResult="Version 3.2.*"/>
       
  4510 +		<env name="MWWINRC" default="mwwinrc$(DOTEXE)" type="tool" versionCommand="$(MWWINRC) -version" versionResult="Version 3.2.*"/>
       
  4511 +		
       
  4512 +		<set name="CC" value="$(MWCC)"/>
       
  4513 +		<set name="LD" value="$(MWLD)"/>
       
  4514 +		<set name="RC" value="$(MWWINRC)"/>
       
  4515 +		
       
  4516 +		<!-- tools and scripts -->
       
  4517 +		<env name="BMCONV" default="$(EPOCROOT)/epoc32/tools/bmconv$(DOTEXE)" type="tool"/>
       
  4518 +		<env name="CHECKLIB" default="$(EPOCROOT)/epoc32/tools/checklib$(DOTEXE)" type="tool"/>
       
  4519 +		<env name="EFREEZE" default="$(PERL) $(EPOCROOT)/epoc32/tools/efreeze.pl" type="script"/>
       
  4520 +		<env name="MAKEDEF" default="$(PERL) $(EPOCROOT)/epoc32/tools/makedef.pl" type="script"/>
       
  4521 +		<env name="PREPDEF" default="$(PERL) $(EPOCROOT)/epoc32/tools/prepdef.pl" type="script"/>
       
  4522 +		<env name="RCOMP" default="$(EPOCROOT)/epoc32/tools/rcomp$(DOTEXE)" type="tool"/>
       
  4523 +		<env name="SBSV1MAKE" default="$(EPOCROOT)/epoc32/tools/make$(DOTEXE)" type="tool"/>
       
  4524 +		<env name="STRINGTABLE" default="$(PERL) $(EPOCROOT)/epoc32/tools/stringtable.pl" type="script"/>	
       
  4525  		
       
  4526  		<!-- link to bld.inf and mmp platform names -->
       
  4527 -		<set name='TRADITIONAL_PLATFORM' value='WINSCW'/>
       
  4528 +		<set name="TRADITIONAL_PLATFORM" value="WINSCW"/>
       
  4529  
       
  4530  		<!-- interfaces -->
       
  4531  		<set name="INTERFACE.ani" value="Emulator.ani"/>
       
  4532 @@ -26,6 +33,7 @@
       
  4533  		<set name="INTERFACE.exe" value="Emulator.exe"/>
       
  4534  		<set name="INTERFACE.stdexe" value="Emulator.stdexe"/>
       
  4535  		<set name="INTERFACE.dll" value="Emulator.dll"/>
       
  4536 +		<set name="INTERFACE.pdll" value="Emulator.pdll"/>
       
  4537  		<set name="INTERFACE.stddll" value="Emulator.stddll"/>
       
  4538  		<set name="INTERFACE.exexp" value="Emulator.exexp"/>
       
  4539  		<set name="INTERFACE.fsy" value="Emulator.fsy"/>
       
  4540 @@ -40,100 +48,100 @@
       
  4541  		<set name="INTERFACE.pdd" value="Emulator.pdd"/>
       
  4542  		<set name="INTERFACE.pdl" value="Emulator.pdl"/>
       
  4543  		<set name="INTERFACE.plugin" value="Emulator.plugin"/>
       
  4544 +		<set name="INTERFACE.plugin3" value="Emulator.plugin3"/>
       
  4545  		<set name="INTERFACE.resource" value="Emulator.resource"/>
       
  4546  		<set name="INTERFACE.textnotifier2" value="Emulator.textnotifier2"/>
       
  4547  		<set name="INTERFACE.var" value="Emulator.var"/>
       
  4548 -		<set name='CC' value='$(MWCC)'/>
       
  4549 -		<set name='CDEFS' value='__SYMBIAN32__ __CW32__ __WINS__ __WINSCW__ __SUPPORT_CPP_EXCEPTIONS__ _UNICODE $(MMPDEFS)'/>
       
  4550 -		<set name='CFLAGS' value='-c -align 4 -warnings on -w nohidevirtual,nounusedexpr -msgstyle gcc -enum int -str pool -exc ms -trigraphs on -cwd source'/>
       
  4551 -		<set name='CW_DEFAULT_LIBS' value='gdi32.lib user32.lib kernel32.lib'/>
       
  4552 -		<set name='CW_RUNTIME_STATIC' value='msl_all_static_mse_symbian_d.lib'/>
       
  4553 -		<set name='CW_RUNTIME_NONSTATIC' value='MSL_All_x86_Symbian_D.lib'/>
       
  4554 -		<set name='DEFAULT_NORMAL_NEWLIB' value='scppnwdl.lib'/>
       
  4555 -		<set name='DEFAULT_SYSTEM_NEWLIB' value='scppnwdl_kern.lib'/>
       
  4556 -		<set name='EXPORT_TYPE' value='dllexport'/>
       
  4557 -		<set name='LD' value='$(MWLD)'/>
       
  4558 -		<set name='LFLAGS' value='-msgstyle gcc -stdlib -subsystem windows'/>
       
  4559 -		<set name='LFLAGS_INFGEN' value='-S -show only,names,unmangled,verbose '/>
       
  4560 -		<set name='LFLAGS_SYMGEN' value='-S -show only,names,verbose '/>
       
  4561 -		<set name='LINKPATH' value='winscw/udeb'/>
       
  4562 -		<set name='LISTING_OPTION' value='-S'/>
       
  4563 -		<set name='MMPDEFS' value=''/>
       
  4564 -		<set name='EPOCSTACKSIZE' value=''/>
       
  4565 -		<set name='NMAKE' value='nmake'/>
       
  4566 -		<set name='NMAKEFLAGS' value='-nologo -x - '/>
       
  4567 -		<set name='OPT.ADDCOMMAND' value='-addcommand '/>
       
  4568 -		<set name='OPT.CHECKLIB.STDCPP' value='stdc++'/>
       
  4569 -		<set name='OPT.CHECKLIB.SYMCPP' value='symc++'/>
       
  4570 -		<set name='OPT.CHECKLIB.WIN32' value='--coff'/>
       
  4571 -		<set name='OPT.HEAPCOMMIT' value='-heapcommit='/>
       
  4572 -		<set name='OPT.DEFINE' value='-d '/>
       
  4573 -		<set name='OPT.DEFFILE' value='-f '/>
       
  4574 -		<set name='OPT.DEPEND' value='-gccdepends -MD '/>
       
  4575 -		<set name='OPT.EXPORT' value='-export '/>
       
  4576 -		<set name='OPT.HEAPRESERVE' value='-heapreserve='/>
       
  4577 -		<set name='OPT.IMAGEBASE' value='-imagebase '/>
       
  4578 -		<set name='OPT.IMPLIB' value='-implib '/>
       
  4579 -		<set name='OPT.IMPORTLIB' value='-importlib '/>
       
  4580 -		<set name='OPT.LIBFILE' value='-l'/>
       
  4581 -		<set name='OPT.LIBPATH' value='-l '/>
       
  4582 -		<set name='OPT.LISTING' value='-S -show source,unmangled,comments '/>
       
  4583 -		<set name='OPT.MENTRYPOINT' value='-m '/>
       
  4584 -		<set name='OPT.MAINENTRYPOINT' value='-main '/>
       
  4585 -		<set name='OPT.MAP' value='-map '/>
       
  4586 -		<set name='OPT.NOCOMPACTIMPORTLIB' value='-nocompactimportlib '/>
       
  4587 -		<set name='OPT.NOENTRY' value='-noentry '/>
       
  4588 -		<set name='OPT.NOIMPLIB' value='-noimplib '/>
       
  4589 -		<set name='OPT.NOSTDINC' value='-nostdinc '/>
       
  4590 -		<set name='OPT.OUT' value='-o '/>
       
  4591 -		<set name='OPT.PREINCLUDE' value='-include '/>
       
  4592 -		<set name='OPT.RUNTIME' value='-runtime '/>
       
  4593 -		<set name='OPT.SEARCH' value='-search'/>
       
  4594 -		<set name='OPT.SHARED' value='-shared '/>
       
  4595 -		<set name='OPT.SPLITINCLUDE' value='-i-'/>
       
  4596 -		<set name='OPT.STATICLIBRARY' value='-library '/>
       
  4597 -		<set name='OPT.STDINC' value='-stdinc '/>
       
  4598 -		<set name='OPT.STDLIB' value='-stdlib '/>
       
  4599 -		<set name='OPT.SYM' value='-sym '/>
       
  4600 -		<set name='OPT.SYSINCLUDE' value='-i '/>
       
  4601 -		<set name='OPT.USERINCLUDE' value='-i '/>
       
  4602 -		<set name='OPT.WCHAR' value='-wchar_t '/>
       
  4603 -		<set name='OPT.WARNINGS' value='-warnings '/>
       
  4604 -		<set name='OUTPUTPATH' value='$(SBS_BUILD_DIR)'/>
       
  4605 -		<set name='BLDINF_OUTPUTPATH' value='$(SBS_BUILD_DIR)'/>
       
  4606 -		<set name='RC' value='$(MWWINRC)'/>
       
  4607 -		<set name='RELEASEPATH' value='$(EPOCROOT)/epoc32/release'/>
       
  4608 -		<set name='SBSV1MAKE' value='$(EPOCROOT)/epoc32/tools/make$(DOTEXE)'/>
       
  4609 -		<set name='STDCPP_DEF' value='__SYMBIAN_STDCPP_SUPPORT__'/>
       
  4610 -		<set name='STDCPP_INCLUDE' value='$(EPOCINCLUDE)/stdapis'/>
       
  4611 -		<set name='STDCPP_WCHAR_DEF' value='__wchar_t_defined'/>
       
  4612 -		<set name='SYMLOOKUPUTIL' value='$(PERL) $(EPOCROOT)/epoc32/tools/sym_lkup_util.pl'/>
       
  4613 -		<set name='SYMLOOKUPARGS' value='--ignore_export_dir'/>
       
  4614 -		<set name='SYSTEMINCLUDE' value=''/>
       
  4615 -		<set name='TARGET' value='TARGET_WAS_NOT_SET_PROPERLY'/>
       
  4616 -		<set name='TARGETPATH' value=''/>
       
  4617 -		<set name='TARGETTYPE' value='TARGETTYPE_WAS_NOT_SET_PROPERLY'/>
       
  4618 -		<set name='USERINCLUDE' value=''/>
       
  4619 -		<set name='VARIANTPLATFORM' value='winscw'/>
       
  4620 -		<set name='PLATMACROS.WINDOWS' value='CW32 WINS WINSCW'/>
       
  4621 -		<set name='PLATMACROS.LINUX' value='$(PLATMACROS.WINDOWS)'/>
       
  4622 +		
       
  4623 +		<set name="BLDINF_OUTPUTPATH" value="$(SBS_BUILD_DIR)"/>
       
  4624 +		<set name="CDEFS" value="__SYMBIAN32__ __CW32__ __WINS__ __WINSCW__ __SUPPORT_CPP_EXCEPTIONS__ _UNICODE $(MMPDEFS)"/>
       
  4625 +		<set name="CFLAGS" value="-c -align 4 -warnings on -w nohidevirtual,nounusedexpr -msgstyle gcc -enum int -str pool -exc ms -trigraphs on -cwd source"/>
       
  4626 +		<set name="CW_DEFAULT_LIBS" value="gdi32.lib user32.lib kernel32.lib"/>
       
  4627 +		<set name="CW_RUNTIME_NONSTATIC" value="MSL_All_x86_Symbian_D.lib"/>
       
  4628 +		<set name="CW_RUNTIME_STATIC" value="msl_all_static_mse_symbian_d.lib"/>
       
  4629 +		<set name="DEFAULT_NORMAL_NEWLIB" value="scppnwdl.lib"/>
       
  4630 +		<set name="DEFAULT_SYSTEM_NEWLIB" value="scppnwdl_kern.lib"/>
       
  4631 +		<set name="EPOCSTACKSIZE" value=""/>
       
  4632 +		<set name="EXPORT_TYPE" value="dllexport"/>
       
  4633 +		<set name="LFLAGS" value="-msgstyle gcc -stdlib -subsystem windows"/>
       
  4634 +		<set name="LFLAGS_INFGEN" value="-S -show only,names,unmangled,verbose "/>
       
  4635 +		<set name="LFLAGS_SYMGEN" value="-S -show only,names,verbose "/>
       
  4636 +		<set name="LINKPATH" value="winscw/udeb"/>
       
  4637 +		<set name="LISTING_OPTION" value="-S"/>
       
  4638 +		<set name="MMPDEFS" value=""/>
       
  4639 +		<set name="NMAKE" value="nmake"/>
       
  4640 +		<set name="NMAKEFLAGS" value="-nologo -x - "/>
       
  4641 +		<set name="OPT.ADDCOMMAND" value="-addcommand "/>
       
  4642 +		<set name="OPT.CHECKLIB.STDCPP" value="stdc++"/>
       
  4643 +		<set name="OPT.CHECKLIB.SYMCPP" value="symc++"/>
       
  4644 +		<set name="OPT.CHECKLIB.WIN32" value="--coff"/>
       
  4645 +		<set name="OPT.DEFFILE" value="-f "/>
       
  4646 +		<set name="OPT.DEFINE" value="-d "/>
       
  4647 +		<set name="OPT.DEPEND" value="-gccdepends -MD "/>
       
  4648 +		<set name="OPT.EXPORT" value="-export "/>
       
  4649 +		<set name="OPT.HEAPCOMMIT" value="-heapcommit="/>
       
  4650 +		<set name="OPT.HEAPRESERVE" value="-heapreserve="/>
       
  4651 +		<set name="OPT.IMAGEBASE" value="-imagebase "/>
       
  4652 +		<set name="OPT.IMPLIB" value="-implib "/>
       
  4653 +		<set name="OPT.IMPORTLIB" value="-importlib "/>
       
  4654 +		<set name="OPT.LIBFILE" value="-l"/>
       
  4655 +		<set name="OPT.LIBPATH" value="-l "/>
       
  4656 +		<set name="OPT.LISTING" value="-S -show source,unmangled,comments "/>
       
  4657 +		<set name="OPT.MAINENTRYPOINT" value="-main "/>
       
  4658 +		<set name="OPT.MAP" value="-map "/>
       
  4659 +		<set name="OPT.MENTRYPOINT" value="-m "/>
       
  4660 +		<set name="OPT.NOCOMPACTIMPORTLIB" value="-nocompactimportlib "/>
       
  4661 +		<set name="OPT.NOENTRY" value="-noentry "/>
       
  4662 +		<set name="OPT.NOIMPLIB" value="-noimplib "/>
       
  4663 +		<set name="OPT.NOSTDINC" value="-nostdinc "/>
       
  4664 +		<set name="OPT.OUT" value="-o "/>
       
  4665 +		<set name="OPT.PREINCLUDE" value="-include "/>
       
  4666 +		<set name="OPT.RUNTIME" value="-runtime "/>
       
  4667 +		<set name="OPT.SEARCH" value="-search"/>
       
  4668 +		<set name="OPT.SHARED" value="-shared "/>
       
  4669 +		<set name="OPT.SPLITINCLUDE" value="-i-"/>
       
  4670 +		<set name="OPT.STATICLIBRARY" value="-library "/>
       
  4671 +		<set name="OPT.STDINC" value="-stdinc "/>
       
  4672 +		<set name="OPT.STDLIB" value="-stdlib "/>
       
  4673 +		<set name="OPT.SYM" value="-sym "/>
       
  4674 +		<set name="OPT.SYSINCLUDE" value="-i "/>
       
  4675 +		<set name="OPT.USERINCLUDE" value="-i "/>
       
  4676 +		<set name="OPT.WARNINGS" value="-warnings "/>
       
  4677 +		<set name="OPT.WCHAR" value="-wchar_t "/>
       
  4678 +		<set name="OUTPUTPATH" value="$(SBS_BUILD_DIR)"/>
       
  4679 +		<set name="RELEASEPATH" value="$(EPOCROOT)/epoc32/release"/>
       
  4680 +		<set name="STDCPP_DEF" value="__SYMBIAN_STDCPP_SUPPORT__"/>
       
  4681 +		<set name="STDCPP_INCLUDE" value="$(EPOCINCLUDE)/stdapis"/>
       
  4682 +		<set name="STDCPP_WCHAR_DEF" value="__wchar_t_defined"/>
       
  4683 +		<set name="SYMLOOKUPARGS" value="--ignore_export_dir"/>
       
  4684 +		<set name="SYMLOOKUPUTIL" value="$(PERL) $(EPOCROOT)/epoc32/tools/sym_lkup_util.pl"/>
       
  4685 +		<set name="SYSTEMINCLUDE" value=""/>
       
  4686 +		<set name="TARGET" value="TARGET_WAS_NOT_SET_PROPERLY"/>
       
  4687 +		<set name="TARGETPATH" value=""/>
       
  4688 +		<set name="TARGETTYPE" value="TARGETTYPE_WAS_NOT_SET_PROPERLY"/>
       
  4689 +		<set name="USERINCLUDE" value=""/>
       
  4690 +		<set name="VARIANTPLATFORM" value="winscw"/>
       
  4691 +		
       
  4692 +		<!-- macros -->
       
  4693 +		<set name="PLATMACROS.WINDOWS" value="CW32 WINS WINSCW"/>
       
  4694 +		<set name="PLATMACROS.LINUX" value="$(PLATMACROS.WINDOWS)"/>
       
  4695  	</var>
       
  4696  
       
  4697  	<var name="winscw_udeb" extends="winscw_base">
       
  4698 -		<set name='FULLVARIANTPATH' value='winscw/udeb'/>
       
  4699 -		<set name='VARIANTTYPE' value='udeb'/>
       
  4700 +		<set name="FULLVARIANTPATH" value="winscw/udeb"/>
       
  4701 +		<set name="VARIANTTYPE" value="udeb"/>
       
  4702  
       
  4703 -		<append name='CDEFS' value='_DEBUG'/>
       
  4704 -		<append name='CFLAGS' value='-g -O0 -inline off'/>
       
  4705 -		<append name='LFLAGS' value='-g'/>
       
  4706 +		<append name="CDEFS" value="_DEBUG"/>
       
  4707 +		<append name="CFLAGS" value="-g -O0 -inline off"/>
       
  4708 +		<append name="LFLAGS" value="-g"/>
       
  4709  	</var>
       
  4710  
       
  4711  	<var name="winscw_urel" extends="winscw_base">
       
  4712 -		<set name='FULLVARIANTPATH' value='winscw/urel'/>
       
  4713 -		<set name='VARIANTTYPE' value='urel'/>
       
  4714 +		<set name="FULLVARIANTPATH" value="winscw/urel"/>
       
  4715 +		<set name="VARIANTTYPE" value="urel"/>
       
  4716  
       
  4717 -		<append name='CDEFS' value='NDEBUG'/>
       
  4718 -		<append name='CFLAGS' value='-O4,s'/>
       
  4719 +		<append name="CDEFS" value="NDEBUG"/>
       
  4720 +		<append name="CFLAGS" value="-O4,s"/>
       
  4721  	</var>
       
  4722  
       
  4723  	<group name="winscw">
       
  4724 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/base.xml /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/base.xml
       
  4725 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/base.xml	2010-05-18 19:32:34.721348727 +0100
       
  4726 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/base.xml	2010-05-17 18:47:53.036842000 +0100
       
  4727 @@ -16,6 +16,7 @@
       
  4728  		<param name='PROJECT_META' default=''/>     <!-- my.mmp  -->
       
  4729  		<param name='DATE' default=''/>
       
  4730  		<param name='DUMPBCINFO' default=''/>
       
  4731 +		<param name='FLMDEBUG'  default=''/>
       
  4732  		<param name='PLATFORM' default=''/>
       
  4733  		<param name='GNUMAKE38'/>
       
  4734  		<param name='GNUCP'/>
       
  4735 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/bitmap.flm /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/bitmap.flm
       
  4736 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/bitmap.flm	2010-05-18 19:32:34.721348727 +0100
       
  4737 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/bitmap.flm	2010-05-17 18:47:53.036842000 +0100
       
  4738 @@ -1,4 +1,4 @@
       
  4739 -# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
       
  4740 +# Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies).
       
  4741  # All rights reserved.
       
  4742  # This component and the accompanying materials are made available
       
  4743  # under the terms of the License "Eclipse Public License v1.0"
       
  4744 @@ -60,7 +60,7 @@
       
  4745  
       
  4746  BMCONVCMDFILE:=$(OUTPUTPATH)/$(BMTARGET)_bmconvcommands
       
  4747  RELEASEABLES:=$(BITMAPHEADER) $(BITMAPFILE)
       
  4748 -CLEANTARGETS:=$(BITMAPHEADER) $(BITMAPFILE) $(BMCONVCMDFILE)
       
  4749 +CLEANTARGETS:=$(BMCONVCMDFILE)
       
  4750  
       
  4751  # The groupbmpin10 macro allows us to construct a command file, 10 
       
  4752  # bitmap objects at a time to avoid limits on argument lengths and 
       
  4753 @@ -107,7 +107,6 @@
       
  4754  	$(GNUCP) $$< $$@ \
       
  4755  	$(call endrule,bitmapcopy)
       
  4756  
       
  4757 -CLEANTARGETS:=$(CLEANTARGETS) $(MBMCOPYFILES)
       
  4758  endef
       
  4759  
       
  4760  
       
  4761 @@ -119,64 +118,13 @@
       
  4762  $(eval $(call copybitmap))
       
  4763  endif
       
  4764  
       
  4765 -################################### localisation #########################################
       
  4766 -## copy .bmp files to localisation
       
  4767 -
       
  4768 -# $(BMPFILES) is a list of bmp files in src
       
  4769 -BMPFILES:=$(subst FILE=,,$(filter FILE=%,$(SOURCE)))
       
  4770 -BMBASENAME:=$(call lowercase,$(basename $(BMTARGET)))
       
  4771 -BMPCOPYFILES:=
       
  4772 -BMPCOPYDIR:=$(EPOCROOT)/epoc32/localisation/$(BMBASENAME)/mbm
       
  4773 -$(call makepath,$(BMPCOPYDIR))
       
  4774 -
       
  4775 -define copyBMP
       
  4776 -# $(1) is the source .bmp file
       
  4777 -# $(2) is the (lower cased) copy in localisation 
       
  4778 -
       
  4779 -ifneq ($(BINCOPYDIRS),)
       
  4780 -BITMAP:: $(2)
       
  4781 -
       
  4782 -$(2): $(1)
       
  4783 -	$(call startrule,bmpfilecopy,FORCESUCCESS) \
       
  4784 -	$(GNUCP) $(1) $(2) && $(GNUCHMOD) +rw $(2) \
       
  4785 -	$(call endrule,bmpfilecopy)
       
  4786 -
       
  4787 -CLEANTARGETS:=$$(CLEANTARGETS) $(2)
       
  4788 -endif
       
  4789 -
       
  4790 -BMPCOPYFILES:=$$(BMPCOPYFILES) $(2)
       
  4791 -endef
       
  4792 -
       
  4793 -$(foreach BMP,$(BMPFILES),$(eval $(call copyBMP,$(BMP),$(BMPCOPYDIR)/$(call lowercase,$(notdir $(BMP))))))
       
  4794 -
       
  4795 -## create and edit info files for bitmap files in localisation/group
       
  4796 -INFOFILE:=$(EPOCROOT)/epoc32/localisation/group/$(BMBASENAME).info
       
  4797 -DEPTH:=$(subst DEPTH=,,$(filter DEPTH=%,$(SOURCE)))
       
  4798 -BMP:=$(notdir $(BMPFILES))
       
  4799 -DEPTHBMP:=$(subst _,\,$(join $(patsubst %,/%,$(DEPTH)),$(patsubst %,_%,$(BMP))))
       
  4800 -
       
  4801 -define bmpInfo
       
  4802 -
       
  4803 -BITMAP::$(INFOFILE)
       
  4804 -
       
  4805 -$(INFOFILE)::
       
  4806 -	@if [ ! -d $(EPOCROOT)/epoc32/localisation/group ]; then $(GNUMKDIR) -p $(EPOCROOT)/epoc32/localisation/group; fi
       
  4807 -	@if [ ! -f $$@ ]; then echo "DATADIR: /$(BMBASENAME)" > $$@ ; fi
       
  4808 -	@echo -e "\n/z$(TARGETPATH)/$(BMTARGET) : $(DEPTHBMP)" >> $$@
       
  4809 -
       
  4810 -CLEANTARGETS:=$$(CLEANTARGETS) $(INFOFILE)
       
  4811 -endef
       
  4812 -
       
  4813 -$(eval $(call bmpInfo))
       
  4814 -
       
  4815 -# end of localisation #########################################################
       
  4816  
       
  4817  ## Clean up
       
  4818 -$(eval $(call GenerateStandardCleanTarget,$(CLEANTARGETS) ,$(CREATABLEPATHS)))
       
  4819 +$(call raptor_clean,$(CLEANTARGETS))
       
  4820  $(call makepath,$(CREATABLEPATHS))
       
  4821  $(call makepathfor,$(BITMAPHEADER))
       
  4822  
       
  4823  # for the abld -what target
       
  4824 -BMPRELEASEABLES:=$(RELEASEABLES) $(MBMCOPYFILES) $(BMPCOPYFILES) $(INFOFILE)
       
  4825 -$(eval $(call whatmacro,$(BMPRELEASEABLES),WHATBITMAP))
       
  4826 +BMPRELEASEABLES:=$(RELEASEABLES) $(MBMCOPYFILES)
       
  4827 +$(call raptor_release,$(BMPRELEASEABLES),BITMAP)
       
  4828  
       
  4829 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/build.flm /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/build.flm
       
  4830 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/build.flm	2010-05-18 19:32:34.721348727 +0100
       
  4831 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/build.flm	2010-05-17 18:47:53.036842000 +0100
       
  4832 @@ -24,36 +24,31 @@
       
  4833  
       
  4834  .PHONY:: PP_EXPORTS
       
  4835  
       
  4836 +ifneq ($(filter win,$(HOSTPLATFORM)),)
       
  4837 +SBS:=$(subst \,/,$(SBS_HOME)/bin/sbs.bat)
       
  4838 +else
       
  4839 +SBS:=$(SBS_HOME)/bin/sbs
       
  4840 +endif
       
  4841  
       
  4842 -SBS := $(subst \,/,$(SBS_HOME)/bin/sbs)
       
  4843  
       
  4844  define doexports
       
  4845  PP_EXPORTS::
       
  4846  	$(call startrule,makefile_generation_exports) \
       
  4847 -	export TALON_DESCRAMBLE=0; \
       
  4848 -	$(SBS) --export-only $(component_list) $(config_list) -f- -m $(SBS_BUILD_DIR)/makefiles_export.mk $(cli_options)  --mo=DESCRAMBLE:=  --mo=TALON_DESCRAMBLE:=0 | $(GNUSED) 's#]I*]>#XXX#' \
       
  4849 +	$(SBS) --toolcheck=off --export-only $(component_list) $(config_list) -f- -m $(MAKEFILE_PATH).exports $(CLI_OPTIONS)  \
       
  4850  	$(call endrule,makefile_generation_exports)
       
  4851  
       
  4852 -CLEANTARGETS:=$$(CLEANTARGETS) $(SBS_BUILD_DIR)/makefiles_export.mk
       
  4853 +CLEANTARGETS:=$$(CLEANTARGETS) $(MAKEFILE_PATH).exports 
       
  4854  endef
       
  4855  
       
  4856  # Generate makefiles for particular bldinf
       
  4857  # $(1) = source target source target......
       
  4858  define generate_makefiles
       
  4859  
       
  4860 -$$(info XXX component_list=$(COMPONENT_PATHS) makefile=$(MAKEFILE_PATH))
       
  4861 -
       
  4862 -ifeq ($(NO_BUILD),1)
       
  4863  ALL:: $(MAKEFILE_PATH)
       
  4864 -else
       
  4865 -include $(MAKEFILE_PATH)
       
  4866 -endif
       
  4867  
       
  4868 -$(MAKEFILE_PATH): $(COMPONENT_PATHS) | PP_EXPORTS 
       
  4869 +$(MAKEFILE_PATH): $(COMPONENT_PATHS) $(if $(DOEXPORT),| PP_EXPORTS )
       
  4870  	$(call startrule,makefile_generation) \
       
  4871 -	export TALON_DESCRAMBLE=0; \
       
  4872 -	$(SBS) --toolcheck=off -n $(CLI_OPTIONS) $(component_list) $(config_list) -m $$@ -f- --mo=DESCRAMBLE:= --mo=TALON_DESCRAMBLE:=0  | $(GNUSED) 's#\]\][>]#XXX#' && \
       
  4873 -	$(MAKE) -j 8 -f $$@.resource_deps \
       
  4874 +	$(SBS) --noexport --toolcheck=off -n $(CLI_OPTIONS) $(component_list) $(config_list) -m $$@ -f- \
       
  4875  	$(call endrule,makefile_generation)
       
  4876  
       
  4877  CLEANTARGETS:=$$(CLEANTARGETS) $(MAKEFILE_PATH) 
       
  4878 @@ -63,13 +58,19 @@
       
  4879  # Create config list for commands
       
  4880  config_list:=$(addprefix -c ,$(CONFIGS))
       
  4881  component_list:=$(addprefix -b ,$(COMPONENT_PATHS))
       
  4882 -$(info COMFIG_LIST: $(config_list))
       
  4883  
       
  4884 -$(eval $(doexports))
       
  4885 +$(if $(FLMDEBUG),$(info <debug>build.flm: configlist: $(config_list)</debug>))
       
  4886 +
       
  4887 +# Do exports only if asked. This doesn't work brilliantly in emake
       
  4888 +# since exports are often duplicated in some components - leads to conflicts 
       
  4889 +# and rebuilds.  Better to export before trying to do parallel parsing at all.
       
  4890 +$(if $(DOEXPORT),$(eval $(doexports)),$(if $(FLMDEBUG),$(info <debug>build.flm: Exports off </debug>)))
       
  4891  
       
  4892  # Create the Makefiles
       
  4893  $(eval $(call generate_makefiles))
       
  4894  
       
  4895 +CREATABLEPATHS:=$(CREATABLEPATHS) $(dir $(MAKEFILE_PATH))
       
  4896 +
       
  4897  $(eval $(call GenerateStandardCleanTarget,$(CLEANTARGETS),$(CREATABLEPATHS),))
       
  4898  $(call makepath,$(CREATABLEPATHS))
       
  4899  
       
  4900 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/build.xml /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/build.xml
       
  4901 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/build.xml	2010-05-18 19:32:34.721348727 +0100
       
  4902 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/build.xml	2010-05-17 18:47:53.036842000 +0100
       
  4903 @@ -9,6 +9,7 @@
       
  4904  		<param name='CONFIGS' default=''/>
       
  4905  		<param name='CLI_OPTIONS' default=''/>
       
  4906  		<param name='NO_BUILD' default='' />
       
  4907 +		<param name='DOEXPORT' default='1' />
       
  4908  	</interface>
       
  4909  
       
  4910  </build>
       
  4911 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/e32abiv2ani.flm /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/e32abiv2ani.flm
       
  4912 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/e32abiv2ani.flm	2010-05-18 19:32:34.725348467 +0100
       
  4913 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/e32abiv2ani.flm	2010-05-17 18:47:53.040843000 +0100
       
  4914 @@ -1,4 +1,4 @@
       
  4915 -# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
       
  4916 +# Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies).
       
  4917  # All rights reserved.
       
  4918  # This component and the accompanying materials are made available
       
  4919  # under the terms of the License "Eclipse Public License v1.0"
       
  4920 @@ -25,11 +25,11 @@
       
  4921  POSTLINKFILETYPE:=ani
       
  4922  DOPOSTLINK:=1
       
  4923  AUTOEXPORTS:=_Z15CreateCAnimDllLv,1;
       
  4924 -DEFFILE:=
       
  4925 +
       
  4926  
       
  4927  # Determine what kind of entrypoint option to set
       
  4928  LINKER_ENTRYPOINT_LIBDEP:=$(STATIC_RUNTIME_DIR)/edll.lib
       
  4929 -LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRY_OPTION) _E32Dll $(LINKER_ENTRYPOINT_DECORATION) $(call dblquote,$(STATIC_RUNTIME_DIR)/edll.lib$(LINKER_ENTRYPOINT_ADORNMENT))
       
  4930 +LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRY_OPTION)=_E32Dll $(LINKER_ENTRYPOINT_DECORATION)$(LINKER_SEPARATOR)$(call dblquote,$(STATIC_RUNTIME_DIR)/edll.lib$(LINKER_ENTRYPOINT_ADORNMENT))
       
  4931  
       
  4932  ifeq ("$(NEED_ENTRYPOINT_LIBRARY)","True")
       
  4933  LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRYPOINT_SETTING) $(LINKER_ENTRYPOINT_LIBDEP)
       
  4934 @@ -39,6 +39,15 @@
       
  4935  STATIC_RUNTIME_LIB:=$(USER_STATIC_RUNTIME_LIB)
       
  4936  CANIGNORENONCALLABLE:=1
       
  4937  
       
  4938 +# Fixed export TARGETTYPEs should only reference a .def file if an explicit DEFFILE statement is present in the .mmp file
       
  4939 +ifneq ($(DEFFILEKEYWORD),)
       
  4940 +POSTLINKDEFFILE:=$(DEFFILE)
       
  4941 +SUPPORT_FREEZE:=1
       
  4942 +ifeq ($(NOEXPORTLIBRARY),)
       
  4943 +IMPORTLIBRARYREQUIRED:=1
       
  4944 +endif
       
  4945 +endif
       
  4946 +
       
  4947  UID2:=10003b22
       
  4948  
       
  4949  
       
  4950 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/e32abiv2defaults.mk /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/e32abiv2defaults.mk
       
  4951 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/e32abiv2defaults.mk	2010-05-18 19:32:34.725348467 +0100
       
  4952 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/e32abiv2defaults.mk	2010-05-17 18:47:53.040843000 +0100
       
  4953 @@ -1,5 +1,5 @@
       
  4954  #
       
  4955 -# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
       
  4956 +# Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies).
       
  4957  # All rights reserved.
       
  4958  # This component and the accompanying materials are made available
       
  4959  # under the terms of the License "Eclipse Public License v1.0"
       
  4960 @@ -40,13 +40,17 @@
       
  4961  # Reset these variables as they change for every single target type
       
  4962  # LINKER_ENTRYPOINT_ADORNMENT will be blank for GCCE; for RVCT it will look like "(uc_exe_.o)"
       
  4963  # LINKER_ENTRYPOINT_DECORATION will be blank for RVCT; for GCCE it will look like "-u _E32Startup"
       
  4964 +# LINKER_SEPARATOR is a comma for GCCE as g++ is used for linking; for RVCT is should be a space, but
       
  4965 +# as make strips trailing spaces, we use the CHAR_SPACE variable.
       
  4966  
       
  4967  LINKER_ENTRYPOINT_ADORNMENT:=
       
  4968  LINKER_ENTRYPOINT_DECORATION:=
       
  4969 +LINKER_SEPARATOR:=
       
  4970  
       
  4971  # For GCCE
       
  4972  ifeq ($(TOOLCHAIN),GCCE)
       
  4973 -LINKER_ENTRYPOINT_DECORATION:=$(if $(call isoneof,$(TARGETTYPE),exexp exe),-u _E32Startup,-u _E32Dll)
       
  4974 +LINKER_ENTRYPOINT_DECORATION:=$(if $(call isoneof,$(TARGETTYPE),exexp exe),-Wl$(CHAR_COMMA)-u$(CHAR_COMMA)_E32Startup,-Wl$(CHAR_COMMA)-u$(CHAR_COMMA)_E32Dll)
       
  4975 +LINKER_SEPARATOR:=$(CHAR_COMMA)
       
  4976  endif
       
  4977  
       
  4978  # For RVCT
       
  4979 @@ -55,7 +59,7 @@
       
  4980  	LINKER_ENTRYPOINT_ADORNMENT:=(uc_exe_.o)
       
  4981    endif
       
  4982  
       
  4983 -  ifeq ($(call isoneof,$(TARGETTYPE),ani textnotifier2 stddll plugin fsy pdl dll),1)
       
  4984 +  ifeq ($(call isoneof,$(TARGETTYPE),ani textnotifier2 stddll plugin plugin3 fsy pdl dll pdll),1)
       
  4985  	LINKER_ENTRYPOINT_ADORNMENT:=(uc_dll_.o)
       
  4986    endif
       
  4987  
       
  4988 @@ -74,6 +78,7 @@
       
  4989    ifeq ($(TARGETTYPE),kdll)
       
  4990  	LINKER_ENTRYPOINT_ADORNMENT:=(L_ENTRY_.o)
       
  4991    endif
       
  4992 +LINKER_SEPARATOR:=$(CHAR_SPACE)
       
  4993  endif
       
  4994  
       
  4995  # "OPTION" metadata from the front-end can potentially be supplied simultaneously for both GCCE and RVCT,
       
  4996 @@ -89,3 +94,9 @@
       
  4997    OPTION_COMPILER:=$(OPTION_ARMCC)
       
  4998    OPTION_REPLACE_COMPILER:=$(OPTION_REPLACE_ARMCC)
       
  4999  endif
       
  5000 +
       
  5001 +# "ARMFPU" overrides for 'fpu-ness' in compiler and postlinker calls in .mmp files are currently only
       
  5002 +# supported for RVCT-based builds, GCCE builds always make use of the interface defined defaults.
       
  5003 +ifeq ($(TOOLCHAIN),GCCE)
       
  5004 +  ARMFPU:=
       
  5005 +endif
       
  5006 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/e32abiv2dll.flm /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/e32abiv2dll.flm
       
  5007 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/e32abiv2dll.flm	2010-05-18 19:32:34.725348467 +0100
       
  5008 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/e32abiv2dll.flm	2010-05-17 18:47:53.040843000 +0100
       
  5009 @@ -28,7 +28,7 @@
       
  5010  
       
  5011  # Default Linker settings for this target type
       
  5012  LINKER_ENTRYPOINT_LIBDEP:=$(STATIC_RUNTIME_DIR)/edll.lib
       
  5013 -LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRY_OPTION) _E32Dll $(LINKER_ENTRYPOINT_DECORATION) $(call dblquote,$(STATIC_RUNTIME_DIR)/edll.lib$(LINKER_ENTRYPOINT_ADORNMENT))
       
  5014 +LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRY_OPTION)=_E32Dll $(LINKER_ENTRYPOINT_DECORATION)$(LINKER_SEPARATOR)$(call dblquote,$(STATIC_RUNTIME_DIR)/edll.lib$(LINKER_ENTRYPOINT_ADORNMENT))
       
  5015  
       
  5016  ifeq ("$(NEED_ENTRYPOINT_LIBRARY)","True")
       
  5017  LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRYPOINT_SETTING) $(LINKER_ENTRYPOINT_LIBDEP)
       
  5018 @@ -55,6 +55,6 @@
       
  5019  $(call vrestore)
       
  5020  
       
  5021  else
       
  5022 -$(error $e32abiv2dll.flm called with wrong TARGETTYPE (should be 'dll' but is '$(TARGETTYPE)'))
       
  5023 +$(error e32abiv2dll.flm called with wrong TARGETTYPE (should be 'dll' but is '$(TARGETTYPE)'))
       
  5024  endif
       
  5025  
       
  5026 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/e32abiv2exe.flm /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/e32abiv2exe.flm
       
  5027 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/e32abiv2exe.flm	2010-05-18 19:32:34.725348467 +0100
       
  5028 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/e32abiv2exe.flm	2010-05-17 18:47:53.040843000 +0100
       
  5029 @@ -1,4 +1,4 @@
       
  5030 -# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
       
  5031 +# Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies).
       
  5032  # All rights reserved.
       
  5033  # This component and the accompanying materials are made available
       
  5034  # under the terms of the License "Eclipse Public License v1.0"
       
  5035 @@ -28,15 +28,17 @@
       
  5036  LINKER_STUB_LIBRARY:=
       
  5037  LINKER_ENTRYPOINT_LIBDEP:=$(STATIC_RUNTIME_DIR)/$(if $(FIRSTLIB),$(FIRSTLIB),eexe.lib)
       
  5038  
       
  5039 -LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRY_OPTION) _E32Startup $(LINKER_ENTRYPOINT_DECORATION) $(call dblquote,$(STATIC_RUNTIME_DIR)/$(if $(FIRSTLIB),$(FIRSTLIB),eexe.lib)$(LINKER_ENTRYPOINT_ADORNMENT)) 
       
  5040 +LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRY_OPTION)=_E32Startup $(LINKER_ENTRYPOINT_DECORATION)$(LINKER_SEPARATOR)$(call dblquote,$(STATIC_RUNTIME_DIR)/$(if $(FIRSTLIB),$(FIRSTLIB),eexe.lib)$(LINKER_ENTRYPOINT_ADORNMENT)) 
       
  5041  
       
  5042  ifeq ("$(NEED_ENTRYPOINT_LIBRARY)","True")
       
  5043  LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRYPOINT_SETTING) $(LINKER_ENTRYPOINT_LIBDEP)
       
  5044  endif
       
  5045  
       
  5046 -STATIC_RUNTIME_LIB:=$(USER_STATIC_RUNTIME_LIB)
       
  5047 -
       
  5048 -MAKEDEFFILE:=
       
  5049 +ifeq ($(EPOCNESTEDEXCEPTIONS),)
       
  5050 +  STATIC_RUNTIME_LIB:=$(USER_STATIC_RUNTIME_LIB)
       
  5051 +else
       
  5052 +  STATIC_RUNTIME_LIB:=$(USER_STATIC_RUNTIME_LIB_NESTED_EXCEPTIONS)
       
  5053 +endif
       
  5054  
       
  5055  $(call vsave,CDEFS)
       
  5056  CDEFS:=$(CDEFS) __EXE__
       
  5057 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/e32abiv2exexp.flm /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/e32abiv2exexp.flm
       
  5058 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/e32abiv2exexp.flm	2010-05-18 19:32:34.725348467 +0100
       
  5059 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/e32abiv2exexp.flm	2010-05-17 18:47:53.040843000 +0100
       
  5060 @@ -52,10 +52,10 @@
       
  5061  LINKER_ENTRYPOINT_LIBDEP:=$(STATIC_RUNTIME_DIR)/$(FIRSTLIB)
       
  5062  
       
  5063  ifeq ("$(TOOLCHAIN)","RVCT")
       
  5064 -LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRY_OPTION) _E32Startup  $(call dblquote,$(STATIC_RUNTIME_DIR)/$(FIRSTLIB)($(FIRSTLIB_OBJECTFILE)))
       
  5065 +LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRY_OPTION)=_E32Startup $(call dblquote,$(STATIC_RUNTIME_DIR)/$(FIRSTLIB)($(FIRSTLIB_OBJECTFILE)))
       
  5066  else
       
  5067  # GCCE
       
  5068 -LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRY_OPTION) _E32Startup -u _E32Startup  $(call dblquote,$(STATIC_RUNTIME_DIR)/$(FIRSTLIB))
       
  5069 +LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRY_OPTION)=_E32Startup -Wl,-u$(LINKER_SEPARATOR)_E32Startup$(LINKER_SEPARATOR)$(call dblquote,$(STATIC_RUNTIME_DIR)/$(FIRSTLIB))
       
  5070  endif
       
  5071  
       
  5072  ifeq ("$(NEED_ENTRYPOINT_LIBRARY)","True")
       
  5073 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/e32abiv2.flm /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/e32abiv2.flm
       
  5074 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/e32abiv2.flm	2010-05-18 19:32:34.725348467 +0100
       
  5075 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/e32abiv2.flm	2010-05-17 18:47:53.040843000 +0100
       
  5076 @@ -1,4 +1,4 @@
       
  5077 -# Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
       
  5078 +# Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies).
       
  5079  # All rights reserved.
       
  5080  # This component and the accompanying materials are made available
       
  5081  # under the terms of the License "Eclipse Public License v1.0"
       
  5082 @@ -16,15 +16,37 @@
       
  5083  #
       
  5084  #
       
  5085  
       
  5086 -# Only build feature invariant binaries in non-product builds *and*
       
  5087 -# Only build feature variant binaries in product builds.
       
  5088 +# Feature/Binary Variation
       
  5089  #
       
  5090 -# FEATUREVARIANTNAME != "" implies product build
       
  5091 -# FEATUREVARIANT == 1 implies a feature variant binary
       
  5092 +# FEATUREVARIANTNAME != "" implies a product build configuration
       
  5093 +# FEATUREVARIANT == 1 implies a .mmp defined feature variant binary
       
  5094 +#
       
  5095 +# By default:
       
  5096 +#   Build all binaries in non-product builds *and*
       
  5097 +#   Only build feature variant binaries in product builds.
       
  5098  #
       
  5099  # test FEATUREVARIANTNAME=="" or FEATUREVARIANT==1
       
  5100  #
       
  5101 -ifneq ($(or $(call equal,$(FEATUREVARIANTNAME),),$(call equal,$(FEATUREVARIANT),1)),)
       
  5102 +# If FEATUREVARIANTSAFE is set:
       
  5103 +#   Only build feature invariant binaries in non-product builds *and*
       
  5104 +#   Only build feature variant binaries in product builds.
       
  5105 +#
       
  5106 +#   test (FEATUREVARIANTNAME=="" and FEATUREVARIANT=="") or
       
  5107 +#        (FEATUREVARIANTNAME!="" and FEATUREVARIANT==1)
       
  5108 +#
       
  5109 +
       
  5110 +DOBUILD:=
       
  5111 +ifeq ($(FEATUREVARIANTSAFE),)
       
  5112 +  DOBUILD:=$(if $(or $(call equal,$(FEATUREVARIANTNAME),),\
       
  5113 +                     $(call equal,$(FEATUREVARIANT),1)),1)
       
  5114 +else
       
  5115 +  DOBUILD:=$(if $(or $(and $(call equal,$(FEATUREVARIANTNAME),),\
       
  5116 +                           $(call equal,$(FEATUREVARIANT),)),\
       
  5117 +                     $(and $(call not,$(call equal,$(FEATUREVARIANTNAME),)),\
       
  5118 +                           $(call equal,$(FEATUREVARIANT),1))),1)
       
  5119 +endif
       
  5120 +
       
  5121 +ifeq ($(DOBUILD),1)
       
  5122  
       
  5123  $(if $(FLMDEBUG),$(info <flm name='e32abiv2' target='$(TARGET)' type='$(TARGETTYPE)' outputpath='$(OUTPUTPATH)' metasource='$(METASOURCE)' postlinkfiletype='$(POSTLINKFILETYPE)' />))
       
  5124  
       
  5125 @@ -141,7 +163,6 @@
       
  5126    ifeq ($($(BUILDMARKER_IMPORTLIBTARGET_DSO)),)
       
  5127      IMPORTLIBTARGET_DSO:=$(TMP_IMPORTLIBTARGET_ROOT).dso
       
  5128      IMPORTLIBTARGETVERSIONED_DSO:=$(VER_E32IMPORTLIBBASE).dso
       
  5129 -    $(eval $(BUILDMARKER_IMPORTLIBTARGET_DSO):=1)
       
  5130    endif
       
  5131  
       
  5132    # ABIv1 .lib (for specific builds, toolchains and host OS platforms only)
       
  5133 @@ -156,7 +177,6 @@
       
  5134      ifeq ($($(BUILDMARKER_IMPORTLIBTARGET_LIB)),)
       
  5135        IMPORTLIBTARGET_LIB:=$(TMP_IMPORTLIBTARGET_ROOT).lib
       
  5136        IMPORTLIBTARGETVERSIONED_LIB:=$(VER_E32IMPORTLIBBASE).lib
       
  5137 -      $(eval $(BUILDMARKER_IMPORTLIBTARGET_LIB):=1)
       
  5138      endif
       
  5139    endif
       
  5140    endif
       
  5141 @@ -223,7 +243,7 @@
       
  5142  	DSODEFFILENAMEBASE:=$(TARGET){$(VERSIONHEX)}
       
  5143  endif
       
  5144  GENERATED_DSO:=$(call dblquote,$(INTERMEDIATEPATH)/$(DSODEFFILENAMEBASE).dso)
       
  5145 -GENERATED_DEFFILE:=$(call dblquote,$(INTERMEDIATEPATH)/$(DSODEFFILENAMEBASE).def)
       
  5146 +GENERATED_DEFFILE:=$(INTERMEDIATEPATH)/$(DSODEFFILENAMEBASE).def
       
  5147  
       
  5148  ## IMPORT LIBRARY  ###########################################################
       
  5149  
       
  5150 @@ -251,6 +271,10 @@
       
  5151  # ABIv2 .dso
       
  5152  ifneq ($(IMPORTLIBTARGET_DSO),) # check that we haven't tried to specify this target already
       
  5153  
       
  5154 +  # By Now we're committed to producing a target for this DSO so it's safe to
       
  5155 +  # set the marker that will prevent any further targets from being made.
       
  5156 +  $(eval $(BUILDMARKER_IMPORTLIBTARGET_DSO):=1)
       
  5157 +
       
  5158    ifneq ($(EXPLICITVERSION),)
       
  5159      TARGETS:=$(strip $(TARGETS) $(IMPORTLIBTARGETVERSIONED_DSO))
       
  5160  
       
  5161 @@ -279,9 +303,6 @@
       
  5162  		$(call startrule,importlibtarget_unfrozen,FORCESUCCESS) \
       
  5163  		$(GNUCP) $$(call dblquote,$$<) $$(call dblquote,$$@) \
       
  5164  		$(call endrule,importlibtarget_unfrozen)
       
  5165 -
       
  5166 -       CLEANTARGETS:=$$(CLEANTARGETS) $(IMPORTLIBTARGET_DSO)
       
  5167 -
       
  5168      endef
       
  5169  
       
  5170      define importlibtarget_unfrozen_ver
       
  5171 @@ -289,8 +310,6 @@
       
  5172  		$(call startrule,importlibversioned_unfrozen,FORCESUCCESS) \
       
  5173  		$(GNUCP) "$(GENERATED_DSO)" "$$@" \
       
  5174  		$(call endrule,importlibversioned_unfrozen)
       
  5175 -
       
  5176 -      CLEANTARGETS:=$$(CLEANTARGETS) $(IMPORTLIBTARGET_DSO)
       
  5177      endef
       
  5178  
       
  5179      ifeq ($(EXPLICITVERSION),)
       
  5180 @@ -307,8 +326,6 @@
       
  5181  	   $(call startrule,importlibtarget,FORCESUCCESS) \
       
  5182  	   $(GNUCP) "$$<" "$$@" \
       
  5183  	   $(call endrule,importlibtarget)
       
  5184 -
       
  5185 -          CLEANTARGETS:=$$(CLEANTARGETS) $(IMPORTLIBTARGET_DSO)
       
  5186        endef
       
  5187  
       
  5188        ifeq ($(EXPLICITVERSION),)
       
  5189 @@ -325,8 +342,6 @@
       
  5190  	 	  --dso=$$(call dblquote,$$@) 				   \
       
  5191  	 	  --linkas=$(call dblquote,$(LINKASVERSIONED)) \
       
  5192  	      $(call endrule,importlibversioned)
       
  5193 -
       
  5194 -              CLEANTARGETS:=$$(CLEANTARGETS) $(IMPORTLIBTARGETVERSIONED_DSO)
       
  5195        endef
       
  5196        $(eval $(importlibtargetversioned_func))
       
  5197      endif #  ifneq ($(DEFFILE),)
       
  5198 @@ -335,7 +350,10 @@
       
  5199  
       
  5200  # ABIv1 .lib
       
  5201  ifneq ($(IMPORTLIBTARGETVERSIONED_LIB),) # check that we haven't tried to specify this target already
       
  5202 -  CLEANTARGETS:=$(CLEANTARGETS) $(IMPORTLIBTARGETVERSIONED_LIB) $(IMPORTLIBTARGET_LIB)
       
  5203 +
       
  5204 +  # By Now we're committed to producing a target for this DSO so it's safe to
       
  5205 +  # set the marker that will prevent any further targets from being made.
       
  5206 +  $(eval $(BUILDMARKER_IMPORTLIBTARGET_LIB):=1)
       
  5207  
       
  5208    define abiv1_generatelib
       
  5209  
       
  5210 @@ -351,12 +369,12 @@
       
  5211      # If unfrozen, .lib files are based on the .def file generated by the final postlink
       
  5212      $(IMPORTLIBTARGETVERSIONED_LIB): $(if $(EXPORTUNFROZEN),$(E32TARGET),$(PREPPEDDEFFILE))
       
  5213  	$(call startrule,importlibversioned_abiv1) \
       
  5214 -        if [ -f "$(EPOCROOT)/epoc32/tools/def2dll.pl" -a -f "$(if $(EXPORTUNFROZEN),$(GENERATED_DEFFILE),$(PREPPEDDEFFILE))" ]; then \
       
  5215 +        if [ -f "$(EPOCROOT)/epoc32/tools/def2dll.pl" -a -f "$(if $(EXPORTUNFROZEN),$(call dblquote,$(GENERATED_DEFFILE)),$(PREPPEDDEFFILE))" ]; then \
       
  5216                   $(PERL) $(EPOCROOT)/epoc32/tools/def2dll.pl \
       
  5217  		--path=$(IMPORTLIBPATH) \
       
  5218  		--bldpath=$(INTERMEDIATEPATH) \
       
  5219  		--import=$(notdir $(basename $(IMPORTLIBTARGETVERSIONED_LIB))) \
       
  5220 -		--deffile="$(if $(EXPORTUNFROZEN),$(GENERATED_DEFFILE),$(PREPPEDDEFFILE))" \
       
  5221 +		--deffile="$(if $(EXPORTUNFROZEN),$(call dblquote,$(GENERATED_DEFFILE)),$(PREPPEDDEFFILE))" \
       
  5222  		--linkAs=$(call dblquote,$(LINKASVERSIONED)) \
       
  5223  		--inter ; fi \
       
  5224  	$(call endrule,importlibversioned_abiv1)
       
  5225 @@ -388,7 +406,22 @@
       
  5226  # Generating the import library is enough if TARGETTYPE=implib #############
       
  5227  
       
  5228  ifneq ($(DOPOSTLINK),)
       
  5229 -include $(FLMHOME)/e32postlink.mk
       
  5230 +# Capabilities
       
  5231 +FINAL_CAPABILITIES:=$(if $(CAPABILITY),$(CAPABILITY),NONE)
       
  5232 +
       
  5233 +# Paging options for the old postlinker
       
  5234 +POSTLINKER_PAGEDOPTION:=--defaultpaged
       
  5235 +ifeq ($(PAGED),1)
       
  5236 +  POSTLINKER_PAGEDOPTION:=--paged
       
  5237 +endif
       
  5238 +ifeq ($(PAGED),0)
       
  5239 +  POSTLINKER_PAGEDOPTION:=--unpaged
       
  5240 +endif
       
  5241 +
       
  5242 +CLEANTARGETS:=$(CLEANTARGETS) $(E32TARGET)
       
  5243 +CLEANTARGETS:=$(CLEANTARGETS) $(GENERATED_DEFFILE)
       
  5244 +CLEANTARGETS:=$(CLEANTARGETS) $(GENERATED_DSO)
       
  5245 +
       
  5246  endif # ifneq ($(DOPOSTLINK),)
       
  5247  
       
  5248  ifneq ($(TARGETTYPE),implib)
       
  5249 @@ -534,7 +567,7 @@
       
  5250  endef
       
  5251  $(eval $(artarget_func))
       
  5252  
       
  5253 -CLEANTARGETS:=$(CLEANTARGETS) $(VIAFILE) $(ARTARGET) $(if $(DUMPBCINFO),$(ARTARGET).elfdump,)
       
  5254 +CLEANTARGETS:=$(CLEANTARGETS) $(VIAFILE) $(if $(DUMPBCINFO),$(ARTARGET).elfdump,)
       
  5255  endif
       
  5256  
       
  5257  
       
  5258 @@ -542,8 +575,7 @@
       
  5259  # Targettype is some type of DLL or EXE (or derivative)
       
  5260  ifneq ($(LINK_TARGET),)
       
  5261  
       
  5262 -escaped_located_ARMLIBS:=$(foreach L,$(ARMLIBS),$(call ruleEscape,$(wildcard $(subst $(CHAR_SPACE),?,$(RVCTLIB)/*/$(L)))))
       
  5263 -quoted_located_ARMLIBS:=$(foreach L,$(ARMLIBS),$(call dblquoteitem,$(wildcard $(RVCTLIB)/*/$(L))))
       
  5264 +located_ARMLIBS:=$(foreach L,$(ARMLIBS),$(wildcard $(RVCTLIB)/*/$(L)))
       
  5265  located_STATICLIBRARIES:=$(foreach L,$(STATICLIBRARY),$(STATIC_LIBRARY_DIR)/$(L).lib)
       
  5266  e32abiv2_LIBS:=$(EXPTARGET) $(LINKER_STUB_LIBRARY) $(if $(STATIC_RUNTIME_LIB),$(STATIC_RUNTIME_DIR)/$(STATIC_RUNTIME_LIB),) $(located_STATICLIBRARIES)
       
  5267  # DLLS and EXEs - These objects are linked by a linker
       
  5268 @@ -556,12 +588,10 @@
       
  5269  REDUCED_RUNTIME_LIBS_LIST:=$(subst $(TARGET).dso,,$(RUNTIME_LIBS_LIST))
       
  5270  
       
  5271  ifeq ($(VARIANTTYPE),udeb)
       
  5272 -  e32abiv2_LIBS:=$(e32abiv2_LIBS) $(addprefix $(IMPORTLIBPATH)/,$(LIBRARY_DEBUG)) $(addprefix $(RUNTIME_LIBS_PATH)/,$(REDUCED_RUNTIME_LIBS_LIST)) 
       
  5273 +  e32abiv2_LIBS:=$(e32abiv2_LIBS) $(addprefix $(IMPORTLIBPATH)/,$(LIBRARY_DEBUG)) $(addprefix $(RUNTIME_LIBS_PATH)/,$(REDUCED_RUNTIME_LIBS_LIST)) $(located_ARMLIBS)
       
  5274  else
       
  5275 -  e32abiv2_LIBS:=$(e32abiv2_LIBS) $(addprefix $(IMPORTLIBPATH)/,$(LIBRARY)) $(addprefix $(RUNTIME_LIBS_PATH)/,$(REDUCED_RUNTIME_LIBS_LIST)) 
       
  5276 +  e32abiv2_LIBS:=$(e32abiv2_LIBS) $(addprefix $(IMPORTLIBPATH)/,$(LIBRARY)) $(addprefix $(RUNTIME_LIBS_PATH)/,$(REDUCED_RUNTIME_LIBS_LIST)) $(located_ARMLIBS)
       
  5277  endif
       
  5278 -quoted_e32abiv2_LIBS=$(e32abiv2_LIBS) $(quoted_located_ARMLIBS)
       
  5279 -escaped_e32abiv2_LIBS=$(e32abiv2_LIBS) $(escaped_located_ARMLIBS)
       
  5280  
       
  5281  else
       
  5282  # NORMAL
       
  5283 @@ -574,19 +604,16 @@
       
  5284  ifeq ($(HAS_DEDICATED_OP_NEWDEL_LIB),1)
       
  5285    e32abiv2_LIBS:=$(e32abiv2_LIBS) $(addprefix $(RUNTIME_LIBS_PATH)/,$(NEWLIB))
       
  5286  endif
       
  5287 -quoted_e32abiv2_LIBS:=$(e32abiv2_LIBS) $(addprefix $(RUNTIME_LIBS_PATH)/,$(RUNTIME_LIBS_LIST)) $(call addquotedprefix,$(STATIC_LIBS_PATH)/,$(STATIC_LIBS_LIST)) $(quoted_located_ARMLIBS)
       
  5288 -escaped_e32abiv2_LIBS:=$(e32abiv2_LIBS) $(addprefix $(RUNTIME_LIBS_PATH)/,$(RUNTIME_LIBS_LIST)) $(addprefix $(call ruleEscape,$(STATIC_LIBS_PATH)/),$(STATIC_LIBS_LIST)) $(escaped_located_ARMLIBS)
       
  5289 +e32abiv2_LIBS:=$(e32abiv2_LIBS) $(addprefix $(RUNTIME_LIBS_PATH)/,$(RUNTIME_LIBS_LIST)) $(addprefix $(STATIC_LIBS_PATH)/,$(STATIC_LIBS_LIST)) $(located_ARMLIBS)
       
  5290  
       
  5291  endif
       
  5292  else
       
  5293  # ARM RUNTIME LIBS
       
  5294  ifeq ($(VARIANTTYPE),udeb)
       
  5295 -  e32abiv2_LIBS:=$(e32abiv2_LIBS) $(addprefix $(IMPORTLIBPATH)/,$(LIBRARY_DEBUG)) 
       
  5296 +  e32abiv2_LIBS:=$(e32abiv2_LIBS) $(addprefix $(IMPORTLIBPATH)/,$(LIBRARY_DEBUG)) $(located_ARMLIBS)
       
  5297  else
       
  5298 -  e32abiv2_LIBS:=$(e32abiv2_LIBS) $(addprefix $(IMPORTLIBPATH)/,$(LIBRARY))
       
  5299 +  e32abiv2_LIBS:=$(e32abiv2_LIBS) $(addprefix $(IMPORTLIBPATH)/,$(LIBRARY)) $(located_ARMLIBS)
       
  5300  endif
       
  5301 -quoted_e32abiv2_LIBS=$(e32abiv2_LIBS) $(quoted_located_ARMLIBS)
       
  5302 -escaped_e32abiv2_LIBS=$(e32abiv2_LIBS) $(escaped_located_ARMLIBS)
       
  5303  endif
       
  5304  
       
  5305  # NOTE: the groupin10 macro must be used before a call to the "startrule" macro
       
  5306 @@ -596,36 +623,76 @@
       
  5307  # outside the relevant tags but it is also unavoidable.
       
  5308  define linktarget_func
       
  5309  ## The actual link target, dependencies and build step
       
  5310 -$(LINK_TARGET): $(if $(MULTIFILE_ENABLED),$(MULTIFILEOBJECT) $(CIAFILES_LINKOBJECTS),$(LINKOBJECTS)) $(escaped_e32abiv2_LIBS) $(LINKER_ENTRYPOINT_LIBDEP) $(if $(SUPPORTS_STDCPP_NEWLIB),$(CHECKLIB)) $(if $(LINKERFEEDBACK_STAGE2),$(FEEDBACKFILE),)
       
  5311 +$(E32TARGET): $(POSTLINKDEFFILE) $(ELF2E32) $(if $(MULTIFILE_ENABLED),$(MULTIFILEOBJECT) $(CIAFILES_LINKOBJECTS),$(LINKOBJECTS)) $(e32abiv2_LIBS) $(LINKER_ENTRYPOINT_LIBDEP) $(if $(SUPPORTS_STDCPP_NEWLIB),$(CHECKLIB)) $(if $(LINKERFEEDBACK_STAGE2),$(FEEDBACKFILE),) $(if $(HAVE_ORDERONLY),|,) $(EPOCROOT)/epoc32/build/TEM_LIB
       
  5312  	$(if $(MULTIFILE_ENABLED),,@echo -n "" > $(VIAFILE);
       
  5313  	$(call groupin10,$(LINKOBJECTS)) ;)
       
  5314 -	$(call startrule,link) \
       
  5315 +	$(call startrule,linkandpostlink) \
       
  5316  	$(if $(PERTURBSTARTTIME),$(RANSLEEP) $(PERTURBMSECS) ;,) \
       
  5317  	$(if $(SUPPORTS_STDCPP_NEWLIB),$(if $(located_STATICLIBRARIES),$(CHECKLIB) $(CHECKLIB_TYPE) --elf $(call dblquote,$(located_STATICLIBRARIES)) &&,),) \
       
  5318  	$(LD) $(LINKER_MISC_FLAGS) $(LINKER_DEFAULT_LIB_PATHS) $(SYMBIAN_LINK_FLAGS) $(if $(DEBUG_INFO),$(LINKER_DEBUG_OPTION),$(LINKER_NODEBUG_OPTION)) \
       
  5319 +	  $(if $(ARMLIBS),$(LD_WARNINGS_SUPPRESSION_ARMLIBS),) \
       
  5320  	  $(SHARED_OBJECT_OPTION) $(SPLIT_OPTION) \
       
  5321 -	  $(RW_BASE_OPTION) 0x400000 \
       
  5322 +	  $(RW_BASE) \
       
  5323  	  $(LINKER_ARCH_OPTION) \
       
  5324 -	  $(SYMVER_OPTION) $(SO_NAME_OPTION) $(call dblquote,$(LINKASVERSIONED)) \
       
  5325 +	  $(SYMVER_OPTION) $(SO_NAME_OPTION)=$(call dblquote,$(LINKASVERSIONED)) \
       
  5326  	  $(LINKER_ENTRYPOINT_SETTING) \
       
  5327 -	  -o $$(call dblquote,$$@) \
       
  5328 +	  -o $$(call dblquote,$(LINK_TARGET)) \
       
  5329  	  $(if $(LTCG),$(LTCG_OPTION),) \
       
  5330 -	  $(LINKER_SYMBOLS_OPTION) $(LINKER_SYMBOLS_FILE_OPTION) \
       
  5331 -	  $(call dblquote,$(MAPFILE)) \
       
  5332 +	  $(LINKER_SYMBOLS_OPTION) $(LINKER_SYMBOLS_FILE_OPTION)=$(call dblquote,$(MAPFILE)) \
       
  5333    	  $(LINKEROPTION) \
       
  5334  	  $(if $(MULTIFILE_ENABLED),$(call dblquote,$(MULTIFILEOBJECT) $(CIAFILES_LINKOBJECTS)),$(COMMANDFILE_OPTION)$(call dblquote,$(VIAFILE))) \
       
  5335            $(if $(GENERATELINKERFEEDBACK),$(FEEDBACK_OPTION)$(call dblquote,$(FEEDBACKFILE))) \
       
  5336  	  $(if $(LINKER_ADD_STATIC_RUNTIME),$(if $(STATIC_RUNTIME_LIB),$(LINKER_GROUP_START_OPTION) $(STATIC_RUNTIME_DIR)/$(STATIC_RUNTIME_LIB) $(LINKER_GROUP_END_OPTION),)) \
       
  5337 -	  $(quoted_e32abiv2_LIBS) $(LINKER_DEFAULT_LIBS)\
       
  5338 -	$(call endrule,link)
       
  5339 +	  $(call dblquote,$(e32abiv2_LIBS)) $(LINKER_DEFAULT_LIBS) && \
       
  5340 +	  $(ELF2E32) \
       
  5341 +	  --sid=0x$(if $(SID),$(SID),$(if $(UID3),$(UID3),0)) \
       
  5342 +	  --version=$(VERSION) \
       
  5343 +	  --capability=$(FINAL_CAPABILITIES) \
       
  5344 +	  --linkas=$(call dblquote,$(LINKASVERSIONED)) \
       
  5345 +	  --fpu=$(if $(ARMFPU),$(ARMFPU),$(POSTLINKER_FPU_DEFAULT)) \
       
  5346 +	  --targettype=$(POSTLINKTARGETTYPE) \
       
  5347 +	  --output=$$(call dblquote,$$@) \
       
  5348 +	  --elfinput=$(call dblquote,$(LINK_TARGET)) \
       
  5349 +	  $(if $(UID1),--uid1=0x$(UID1),) \
       
  5350 +	  $(if $(UID2),--uid2=0x$(UID2),) \
       
  5351 +	  $(if $(UID3),--uid3=0x$(UID3),) \
       
  5352 +	  $(if $(VENDORID),--vid=0x$(VENDORID),) \
       
  5353 +	  $(if $(EXPTARGET),--customdlltarget,) \
       
  5354 +	  $(if $(ARMLIBS),--excludeunwantedexports,) \
       
  5355 +	  $(if $(EPOCALLOWDLLDATA),--dlldata,) \
       
  5356 +	  $(if $(EPOCPROCESSPRIORITY),--priority=$(EPOCPROCESSPRIORITY),) \
       
  5357 +	  $(if $(EPOCSTACKSIZE),--stack=0x$(EPOCSTACKSIZE),) \
       
  5358 +	  $(if $(EPOCHEAPSIZEMIN),--heap=0x$(EPOCHEAPSIZEMIN)$(CHAR_COMMA)0x$(EPOCHEAPSIZEMAX),) \
       
  5359 +	  $(if $(EPOCFIXEDPROCESS),--fixedaddress,) \
       
  5360 +	  $(if $(EPOCDATALINKADDRESS),--datalinkaddress=$(EPOCDATALINKADDRESS),) \
       
  5361 +	  $(if $(NAMEDSYMLKUP),--namedlookup,) \
       
  5362 +	  $(if $(SMPSAFE),--smpsafe,) \
       
  5363 +	  $(if $(POSTLINKDEFFILE),--definput=$(POSTLINKDEFFILE),) \
       
  5364 +	  $(if $(EXPORTUNFROZEN),--unfrozen,) \
       
  5365 +	  $(if $(AUTOEXPORTS),--sysdef=$(call dblquote,$(AUTOEXPORTS)),) \
       
  5366 +	  $(if $(CANIGNORENONCALLABLE), \
       
  5367 +	    $(if $(IMPORTLIBRARYREQUIRED),,--ignorenoncallable),) \
       
  5368 +	  $(if $(CANHAVEEXPORTS), --defoutput=$(call dblquote,$(GENERATED_DEFFILE)) --dso=$(GENERATED_DSO)) \
       
  5369 +	  $(if $(filter $(VARIANTTYPE),$(DEBUGGABLE)),--debuggable,) \
       
  5370 +	  $(if $(POSTLINKER_SUPPORTS_WDP), \
       
  5371 +	    --codepaging=$(PAGEDCODE_OPTION) --datapaging=$(PAGEDDATA_OPTION), \
       
  5372 +	    $(POSTLINKER_PAGEDOPTION)) \
       
  5373 +	  $(if $(NOCOMPRESSTARGET),--uncompressed, \
       
  5374 +	    $(if $(INFLATECOMPRESSTARGET),--compressionmethod=inflate, \
       
  5375 +	      $(if $(BYTEPAIRCOMPRESSTARGET),--compressionmethod=bytepair, \
       
  5376 +	        --compressionmethod=$(POSTLINKER_COMPRESSION_DEFAULT)))) \
       
  5377 +	  --libpath="$(call concat,$(PATHSEP)$(CHAR_SEMIC),$(strip $(RUNTIME_LIBS_PATH) $(STATIC_LIBS_PATH)))" \
       
  5378 +	  $(if $(SAVESPACE),$(if $(EXPORTUNFROZEN),,&& { $(GNURM) -rf $(INTERMEDIATEPATH); true; })) \
       
  5379 +	$(call endrule,linkandpostlink)
       
  5380  
       
  5381 -$(MAPFILE): $(LINK_TARGET)
       
  5382 +$(MAPFILE): $(E32TARGET)
       
  5383 +$(LINK_TARGET): $(E32TARGET)
       
  5384  endef
       
  5385 +ifneq ($(DOPOSTLINK),)
       
  5386  $(eval $(linktarget_func))
       
  5387 +endif # ifneq ($(DOPOSTLINK),)
       
  5388  
       
  5389 -CLEANTARGETS:=$(CLEANTARGETS) $(LINK_TARGET) $(if $(GENERATELINKERFEEDBACK),$(FEEDBACKFILE)) $(if $(MULTIFILE_ENABLED),$(MULTIFILEOBJECT))
       
  5390 -CLEANTARGETS:=$(CLEANTARGETS) $(VIAFILE)
       
  5391 -CLEANTARGETS:=$(CLEANTARGETS) $(MAPFILE)
       
  5392 +CLEANTARGETS:=$(CLEANTARGETS) $(VIAFILE) $(if $(GENERATELINKERFEEDBACK),$(FEEDBACKFILE)) $(if $(MULTIFILE_ENABLED),$(MULTIFILEOBJECT))
       
  5393  WHATRELEASE:=$(WHATRELEASE) $(MAPFILE)
       
  5394  
       
  5395  endif # if TARGETTYPE lib
       
  5396 @@ -646,6 +713,7 @@
       
  5397  # Users can turn TC on by setting it to 1 in user config.
       
  5398  ifneq ($(USE_TRACE_COMPILER),)
       
  5399    include $(FLMHOME)/tracecompiler.mk
       
  5400 +  WHATRELEASE:=$(WHATRELEASE) $(TRACE_DICTIONARY) $(AUTOGEN_HEADER)
       
  5401  endif
       
  5402  
       
  5403  CC_CPPONLY_ARGS:=$(SYMBIAN_CCFLAGS) $(if $(DEBUG_INFO),-g) $(DEBUG_FORMAT) \
       
  5404 @@ -655,7 +723,7 @@
       
  5405    $(EXPORT_VTBL_OPTION) $(NO_UNALIGNED_ACCESS) $(VFE_OPTION) $(AAPCS_OPTION) \
       
  5406    $(CPPONLYOPTION) $(INSTRUCTION_SET) \
       
  5407    $(if $(ALWAYS_BUILD_AS_ARM),$(ARM_INSTRUCTION_SET),$(THUMB_INSTRUCTION_SET) $(call makemacrodef,-D,$(COMPILER_THUMB_DEFINES))) \
       
  5408 -  $(COMPILER_FPU_FLAGS)
       
  5409 +  $(COMPILER_FPU_OPTION)$(if $(ARMFPU),$(ARMFPU),$(COMPILER_FPU_DEFAULT))
       
  5410  
       
  5411  ## COMPILE CPP Files #################################################################
       
  5412  
       
  5413 @@ -674,7 +742,7 @@
       
  5414    $(EXPORT_VTBL_OPTION) $(NO_UNALIGNED_ACCESS) $(VFE_OPTION) $(AAPCS_OPTION) \
       
  5415    $(COMPILE_ONLY_OPTION) $(INSTRUCTION_SET) \
       
  5416    $(if $(ALWAYS_BUILD_AS_ARM),$(ARM_INSTRUCTION_SET),$(THUMB_INSTRUCTION_SET) $(call makemacrodef,-D,$(COMPILER_THUMB_DEFINES))) \
       
  5417 -  $(COMPILER_FPU_FLAGS)
       
  5418 +  $(COMPILER_FPU_OPTION)$(if $(ARMFPU),$(ARMFPU),$(COMPILER_FPU_DEFAULT))
       
  5419  
       
  5420  ifeq ($(STDCPP),1)
       
  5421  SYSTEMINCLUDE:=$(SYSTEMINCLUDE) $(call concat, $(COMPILER_SYSTEM_INCLUDE_OPTION),$(call dblquote,$(STDCPP_INCLUDE)))
       
  5422 @@ -705,7 +773,7 @@
       
  5423  $(eval DEPENDFILE:=$(wildcard $(DEPENDFILENAME)))
       
  5424  
       
  5425  # $4 is for language specific options (e.g. C++ vs C)
       
  5426 -$(1): $(2) $(PROJECT_META) $(if $(MULTIFILE_ENABLED),,$(if $(DEPENDFILE),,RESOURCE BITMAP EXPORT)) $(if $(USE_TRACE_COMPILER),$(TRACE_MARKER),) $(if $(LINKERFEEDBACK_STAGE2),$(FEEDBACKFILE),)
       
  5427 +$(1): $(2) $(PROJECT_META) $(if $(MULTIFILE_ENABLED),,$(if $(DEPENDFILE),,RESOURCE BITMAP EXPORT)) $(if $(LINKERFEEDBACK_STAGE2),$(FEEDBACKFILE),) | $(if $(USE_TRACE_COMPILER),$(TRACE_MARKER),)  
       
  5428  	$(call startrule,compile,,$(2))		\
       
  5429  		$(if $(PERTURBSTARTTIME), $(RANSLEEP) $(PERTURBMSECS) ;,) \
       
  5430  		$(if $(MULTIFILE_ENABLED), echo $(2) $(3) > $(MULTIFILE_VIAFILE) ;,) \
       
  5431 @@ -716,24 +784,27 @@
       
  5432  			$(if $(USE_PROFILER_FEEDBACK),--profile=$(call dblquote,$(ARM_PROFILER_FILE)),) \
       
  5433  			$(call makemacrodef,-D,$(COMPILER_INTERWORK_DEFINES) $(CDEFS))				\
       
  5434  			$(if $(PREINCLUDE),$(PREINCLUDE_OPTION) ,)$(call concat, $(PREINCLUDE_OPTION) ,$(call dblquote,$(PREINCLUDE)))\
       
  5435 -			$(if $(SET_ARMINC),$(if $(RVCTINC),$(COMPILER_SYSTEM_INCLUDE_OPTION)$(call dblquoteitem,$(RVCTINC)),),)       \
       
  5436 +			$(if $(SET_ARMINC),$(if $(RVCTINC),$(COMPILER_SYSTEM_INCLUDE_OPTION)$(call dblquote,$(RVCTINC)),),)       \
       
  5437  			$(COMPILER_SYSTEM_INCLUDE_OPTION)$$(call dblquote,$$(<D))                                                      \
       
  5438  			$(if $(USERINCLUDE),$(COMPILER_SYSTEM_INCLUDE_OPTION),)$(call concat, $(COMPILER_SYSTEM_INCLUDE_OPTION),$(call dblquote,$(USERINCLUDE)))      \
       
  5439  			$(if $(SYSTEMINCLUDE),$(COMPILER_SYSTEM_INCLUDE_OPTION),)$(call concat, $(COMPILER_SYSTEM_INCLUDE_OPTION),$(call dblquote,$(SYSTEMINCLUDE)))  \
       
  5440  			$(if $(NOHIDEALL),--no_hide_all,) \
       
  5441 -			$(DEPEND_OPTION) $(call dblquote,$(1).d) \
       
  5442 +			$(if $(NO_DEPEND_GENERATE),,$(DEPEND_OPTION) $(call dblquote,$(1).d)) \
       
  5443                          $(if $(LINKERFEEDBACK_STAGE2),$(FEEDBACK_OPTION)$(call dblquote,$(FEEDBACKFILE))) \
       
  5444  			$(if $(MULTIFILE_ENABLED),--multifile $(OUTPUT_OPTION) $(MULTIFILEOBJECT) \
       
  5445  			--via $$(call dblquote, $(MULTIFILE_VIAFILE)),$(OUTPUT_OPTION) $$@ $$(call dblquote, $$<))  \
       
  5446  	$(call endrule,compile)
       
  5447  
       
  5448 -CLEANTARGETS:=$$(CLEANTARGETS) $(DEPENDFILENAME)
       
  5449 -ifneq "$(DEPENDFILE)" ""
       
  5450 -ifeq ($(NO_DEPEND_INCLUDE),)
       
  5451 -  ifeq "$(filter %CLEAN,$(call uppercase,$(MAKECMDGOALS)))" ""
       
  5452 +ifeq ($(NO_DEPEND_GENERATE),)
       
  5453 +  CLEANTARGETS:=$$(CLEANTARGETS) $(DEPENDFILENAME)
       
  5454 +endif
       
  5455 +
       
  5456 +ifneq ($(DEPENDFILE),)
       
  5457 +  ifeq ($(NO_DEPEND_INCLUDE),)
       
  5458 +    ifeq ($(filter %CLEAN,$(call uppercase,$(MAKECMDGOALS))),)
       
  5459      -include $(DEPENDFILE)
       
  5460    endif
       
  5461 -endif
       
  5462 +  endif
       
  5463  endif
       
  5464  
       
  5465  # individual source file compilation
       
  5466 @@ -809,24 +880,27 @@
       
  5467  			$(OPTION_COMPILER) 						\
       
  5468  			$(call makemacrodef,-D,$(COMPILER_INTERWORK_DEFINES) $(CDEFS))				\
       
  5469  			$(if $(PREINCLUDE),$(PREINCLUDE_OPTION) ,)$(call concat, $(PREINCLUDE_OPTION) ,$(call dblquote,$(PREINCLUDE)))\
       
  5470 -			$(if $(SET_ARMINC),$(if $(RVCTINC),$(COMPILER_SYSTEM_INCLUDE_OPTION)$(call dblquoteitem,$(RVCTINC)),),)       \
       
  5471 +			$(if $(SET_ARMINC),$(if $(RVCTINC),$(COMPILER_SYSTEM_INCLUDE_OPTION)$(call dblquote,$(RVCTINC)),),)       \
       
  5472  			$(COMPILER_SYSTEM_INCLUDE_OPTION)$$(call dblquote,$$(<D))                                                   \
       
  5473  			$(if $(USERINCLUDE),$(COMPILER_SYSTEM_INCLUDE_OPTION),)$(call concat, $(COMPILER_SYSTEM_INCLUDE_OPTION),$(call dblquote,$(USERINCLUDE)))      \
       
  5474  			$(if $(SYSTEMINCLUDE),$(COMPILER_SYSTEM_INCLUDE_OPTION),)$(call concat, $(COMPILER_SYSTEM_INCLUDE_OPTION),$(call dblquote,$(SYSTEMINCLUDE)))  \
       
  5475  			$(if $(NOHIDEALL),--no_hide_all,) \
       
  5476 -			$(DEPEND_OPTION) $(call dblquote,$(DEPENDFILENAME)) \
       
  5477 +			$(if $(NO_DEPEND_GENERATE),,$(DEPEND_OPTION) $(call dblquote,$(DEPENDFILENAME))) \
       
  5478  			$$(call dblquote, $$<) $(OUTPUT_OPTION) $$(@) \
       
  5479  	$(call endrule,e32listing)
       
  5480  
       
  5481  CLEANTARGETS:=$$(CLEANTARGETS) $(LISTINGTARGET)
       
  5482  
       
  5483 -CLEANTARGETS:=$$(CLEANTARGETS) $(DEPENDFILENAME)
       
  5484 -ifneq "$(DEPENDFILE)" ""
       
  5485 -ifeq ($(NO_DEPEND_INCLUDE),)
       
  5486 -  ifeq "$(filter %CLEAN,$(call uppercase,$(MAKECMDGOALS)))" ""
       
  5487 +ifeq ($(NO_DEPEND_GENERATE),))
       
  5488 +  CLEANTARGETS:=$$(CLEANTARGETS) $(DEPENDFILENAME)
       
  5489 +endif
       
  5490 +
       
  5491 +ifneq ($(DEPENDFILE),)
       
  5492 +  ifeq ($(NO_DEPEND_INCLUDE),)
       
  5493 +    ifeq ($(filter %CLEAN,$(call uppercase,$(MAKECMDGOALS))),)
       
  5494      -include $(DEPENDFILE)
       
  5495    endif
       
  5496 -endif
       
  5497 +  endif
       
  5498  endif
       
  5499  
       
  5500  endef
       
  5501 @@ -852,17 +926,32 @@
       
  5502  
       
  5503  FREEZE:: $(1)
       
  5504  	$(call startrule,freeze,,$(RESOLVED_DEFFILE)) \
       
  5505 -	$(EFREEZE) $(EFREEZE_REMOVE_OPTION) "$(RESOLVED_DEFFILE)" $(FIVESPACES) $(GENERATED_DEFFILE) \
       
  5506 +	$(EFREEZE) $(EFREEZE_REMOVE_OPTION) "$(RESOLVED_DEFFILE)" $(FIVESPACES) $(call dblquote,$(GENERATED_DEFFILE)) \
       
  5507  	$(call endrule,freeze)
       
  5508  endef
       
  5509  
       
  5510 -# DEFFILE should only be generated for target types that have a def file
       
  5511 -ifeq ($(MAKEDEFFILE),1)
       
  5512 -# Eval freeze only once - no point making the DEFFILE for urel *and* udeb.
       
  5513 +# Only freeze once - udeb and urel cannot differ
       
  5514  ifeq ($($(FREEZEGUARD)),)
       
  5515 -$(eval $(call e32freeze,$(E32TARGET)))
       
  5516 -$(FREEZEGUARD):=1
       
  5517 -endif
       
  5518 +  # For most freezing activity we need the temporary .def file generated in the final post-link
       
  5519 +  # that lists the current exports - FREEZE can therefore be dependent on the final post-linked binary,
       
  5520 +  # with the side-effect that a build is triggered if someone tries to freeze without having built.
       
  5521 +  #
       
  5522 +  # However, there's one case where we don't want to be dependent on the post-linked binary in this way,
       
  5523 +  # and that's when (a) there are missing exports, (b) the user's aware of them and (c) they're deliberately freezing to
       
  5524 +  # remove them using EFREEZE's remove option.  Being dependent on the post-linked binary in this case, where ELF2E32
       
  5525 +  # actually fails to generate a final binary, would mean that the freeze would never happen and post-linking would
       
  5526 +  # just be continually re-attempted (to fail each time).
       
  5527 +  #
       
  5528 +  # So, as a special case, if the user is explicitly attempting to freeze and perform removals, we make FREEZE dependent
       
  5529 +  # on the temporary .def file instead.  This has no rule to actually make it, but gives a hint as to what is wrong if
       
  5530 +  # the users performs a freeze with remove without having explicitly built previously.
       
  5531 +  #
       
  5532 +  ifneq ($(EFREEZE_REMOVE_OPTION),)
       
  5533 +    $(eval $(call e32freeze,$(GENERATED_DEFFILE)))
       
  5534 +  else
       
  5535 +    $(eval $(call e32freeze,$(E32TARGET)))
       
  5536 +  endif
       
  5537 +  $(FREEZEGUARD):=1
       
  5538  endif
       
  5539  
       
  5540  endif
       
  5541 @@ -912,24 +1001,26 @@
       
  5542         $(if $(PREINCLUDE),$(PREINCLUDE_OPTION) ,)$$(call concat, $(PREINCLUDE_OPTION) ,$$(call dblquote,$(PREINCLUDE))) \
       
  5543         $(if $(USERINCLUDE),$(COMPILER_SYSTEM_INCLUDE_OPTION),)$$(call concat, $(COMPILER_SYSTEM_INCLUDE_OPTION),$$(call dblquote,$(USERINCLUDE))) \
       
  5544         $(if $(SYSTEMINCLUDE),$(COMPILER_SYSTEM_INCLUDE_OPTION),)$$(call concat, $(COMPILER_SYSTEM_INCLUDE_OPTION),$$(call dblquote,$(SYSTEMINCLUDE))) \
       
  5545 -       $(if $(ARMINC),$(if $(RVCTINC), $(COMPILER_SYSTEM_INCLUDE_OPTION)$$(call dblquoteitem,$(RVCTINC)),),) )
       
  5546 +       $(if $(ARMINC),$(if $(RVCTINC), $(COMPILER_SYSTEM_INCLUDE_OPTION)$$(call dblquote,$(RVCTINC)),),) )
       
  5547  
       
  5548  
       
  5549  $(e32abiv2_PREFILE): $1 $(PROJECT_META) $(if $(DEPENDFILE),,RESOURCE BITMAP EXPORT)
       
  5550  	$(call startrule,cia2cpp,,$1) \
       
  5551  	$(if $(PERTURBSTARTTIME),$(RANSLEEP) $(PERTURBMSECS) ;,) \
       
  5552 -	$(CC) $(e32abiv2_PREFILE_OPTIONS) $(OUTPUT_OPTION) $$@ $$(call dblquote,$1) && \
       
  5553 -	$(CC) -M $(e32abiv2_PREFILE_OPTIONS) --depend_format=unix \
       
  5554 -	  $(OUTPUT_OPTION) $$@ $$(call dblquote,$1) > $(call dblquote,$(e32abiv2_PREFILE).d) \
       
  5555 +	$(CC) $(e32abiv2_PREFILE_OPTIONS) $(OUTPUT_OPTION) $$@ $$(call dblquote,$1) \
       
  5556 +	$(if $(NO_DEPEND_GENERATE),,&& $(CC) -M $(e32abiv2_PREFILE_OPTIONS) --depend_format=unix $(OUTPUT_OPTION) $$@ $$(call dblquote,$1) > $(call dblquote,$(e32abiv2_PREFILE).d)) \
       
  5557  	$(call endrule,cia2cpp)
       
  5558  
       
  5559 -CLEANTARGETS:=$$(CLEANTARGETS) $(DEPENDFILENAME)
       
  5560 -ifneq "$(DEPENDFILE)" ""
       
  5561 -ifeq ($(NO_DEPEND_INCLUDE),)
       
  5562 -  ifeq "$(filter %CLEAN,$(call uppercase,$(MAKECMDGOALS)))" ""
       
  5563 +ifeq ($(NO_DEPEND_GENERATE),)
       
  5564 +  CLEANTARGETS:=$$(CLEANTARGETS) $(DEPENDFILENAME)
       
  5565 +endif
       
  5566 +
       
  5567 +ifneq ($(DEPENDFILE),)
       
  5568 +  ifeq ($(NO_DEPEND_INCLUDE),)
       
  5569 +    ifeq ($(filter %CLEAN,$(call uppercase,$(MAKECMDGOALS))),)
       
  5570      -include $(DEPENDFILE)
       
  5571    endif
       
  5572 -endif
       
  5573 +  endif
       
  5574  endif
       
  5575  
       
  5576  endef
       
  5577 @@ -960,21 +1051,26 @@
       
  5578  	$(call startrule,asmcompile,,$(2)) \
       
  5579  		$(if $(PERTURBSTARTTIME),$(RANSLEEP) $(PERTURBMSECS) ;,) \
       
  5580  		$(CC) $(e32abiv2_asm_OPTIONS) \
       
  5581 -		$(DEPEND_OPTION) $(call dblquote,$(DEPENDFILENAME)) \
       
  5582 +		$(if $(NO_DEPEND_GENERATE),,$(DEPEND_OPTION) $(call dblquote,$(DEPENDFILENAME))) \
       
  5583  	 	$$(call dblquote, $$<) $(OUTPUT_OPTION) $$@ \
       
  5584  	$(call endrule,asmcompile)
       
  5585 +ifeq ($(NO_DEPEND_GENERATE),)
       
  5586  	$(call startrule,asmdependencies) \
       
  5587  		$(CC) -M $(subst --no_rtti,,$(e32abiv2_asm_OPTIONS)) --depend_format=unix \
       
  5588  	  	$(OUTPUT_OPTION) $$@ $$(call dblquote,$2) > $(call dblquote,$(DEPENDFILENAME)) \
       
  5589  	$(call endrule,asmdependencies)
       
  5590 +endif
       
  5591  
       
  5592 -CLEANTARGETS:=$$(CLEANTARGETS) $(DEPENDFILENAME)
       
  5593 -ifneq "$(DEPENDFILE)" ""
       
  5594 -ifeq ($(NO_DEPEND_INCLUDE),)
       
  5595 -  ifeq "$(filter %CLEAN,$(call uppercase,$(MAKECMDGOALS)))" ""
       
  5596 +ifeq ($(NO_DEPEND_GENERATE),)
       
  5597 +  CLEANTARGETS:=$$(CLEANTARGETS) $(DEPENDFILENAME)
       
  5598 +endif
       
  5599 +
       
  5600 +ifneq ($(DEPENDFILE),)
       
  5601 +  ifeq ($(NO_DEPEND_INCLUDE),)
       
  5602 +    ifeq ($(filter %CLEAN,$(call uppercase,$(MAKECMDGOALS))),)
       
  5603      -include $(DEPENDFILE)
       
  5604    endif
       
  5605 -endif
       
  5606 +  endif
       
  5607  endif
       
  5608  
       
  5609  CREATABLEPATHS:=$$(CREATABLEPATHS) $(INTERMEDIATEPATH)
       
  5610 @@ -1116,7 +1212,6 @@
       
  5611      PREVIOUSVARIANTTYPE:=$(VARIANTTYPE)
       
  5612  
       
  5613      WHATRELEASE:=$(WHATRELEASE) $(ROMFILENAME)
       
  5614 -    CLEANTARGETS:=$(CLEANTARGETS) $(ROMFILENAME)
       
  5615  endif
       
  5616  
       
  5617  # Deal with test code batch files generation.
       
  5618 @@ -1127,7 +1222,6 @@
       
  5619      BATCHFILE_CREATED_$(EPOCROOT)/epoc32/data/z/test/$(MODULE)/$(VARIANTPLATFORM).$(TESTPATH):=1
       
  5620      TARGET_CREATED_$(EPOCROOT)/epoc32/data/z/test/$(MODULE)/$(VARIANTPLATFORM).$(TESTPATH)_$(TARGET):=1
       
  5621      WHATRELEASE:=$(WHATRELEASE) $(EPOCROOT)/epoc32/data/z/test/$(MODULE)/$(VARIANTPLATFORM).$(TESTPATH)
       
  5622 -    CLEANTARGETS:=$(CLEANTARGETS) $(EPOCROOT)/epoc32/data/z/test/$(MODULE)/$(VARIANTPLATFORM).$(TESTPATH)
       
  5623  endif
       
  5624  
       
  5625  ###################### End of Build ROMFILE target ######################
       
  5626 @@ -1167,12 +1261,12 @@
       
  5627  $(call makepath,$(CREATABLEPATHS))
       
  5628  
       
  5629  ## Clean up
       
  5630 -$(eval $(call GenerateStandardCleanTarget,$(CLEANTARGETS) ,$(CREATABLEPATHS),))
       
  5631 +$(call raptor_clean,$(CLEANTARGETS))
       
  5632  
       
  5633 -# For the abld -what target
       
  5634 -$(eval $(call whatmacro,$(filter-out %.sym,$(WHATRELEASE)),WHATARMV5))
       
  5635 +# For the --what option and the log file
       
  5636 +$(call raptor_release,$(filter-out %.sym,$(WHATRELEASE)))
       
  5637  
       
  5638 -endif # FEATUREVARIANTNAME=="" or FEATUREVARIANT==1
       
  5639 +endif # DOBUILD
       
  5640  
       
  5641  ## The End
       
  5642  
       
  5643 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/e32abiv2fsy.flm /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/e32abiv2fsy.flm
       
  5644 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/e32abiv2fsy.flm	2010-05-18 19:32:34.725348467 +0100
       
  5645 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/e32abiv2fsy.flm	2010-05-17 18:47:53.040843000 +0100
       
  5646 @@ -1,4 +1,4 @@
       
  5647 -# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
       
  5648 +# Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies).
       
  5649  # All rights reserved.
       
  5650  # This component and the accompanying materials are made available
       
  5651  # under the terms of the License "Eclipse Public License v1.0"
       
  5652 @@ -28,7 +28,7 @@
       
  5653  # Determine what kind of entrypoint option to set
       
  5654  AUTOEXPORTS:=CreateFileSystem,1;
       
  5655  LINKER_ENTRYPOINT_LIBDEP:=$(STATIC_RUNTIME_DIR)/edll.lib
       
  5656 -LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRY_OPTION) _E32Dll $(LINKER_ENTRYPOINT_DECORATION) $(call dblquote,$(STATIC_RUNTIME_DIR)/edll.lib$(LINKER_ENTRYPOINT_ADORNMENT))
       
  5657 +LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRY_OPTION)=_E32Dll $(LINKER_ENTRYPOINT_DECORATION)$(LINKER_SEPARATOR)$(call dblquote,$(STATIC_RUNTIME_DIR)/edll.lib$(LINKER_ENTRYPOINT_ADORNMENT))
       
  5658  
       
  5659  ifeq ("$(NEED_ENTRYPOINT_LIBRARY)","True")
       
  5660  LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRYPOINT_SETTING) $(LINKER_ENTRYPOINT_LIBDEP)
       
  5661 @@ -36,6 +36,15 @@
       
  5662  
       
  5663  LINKER_STUB_LIBRARY:=$(STATIC_RUNTIME_DIR)/edllstub.lib
       
  5664  
       
  5665 +# Fixed export TARGETTYPEs should only reference a .def file if an explicit DEFFILE statement is present in the .mmp file
       
  5666 +ifneq ($(DEFFILEKEYWORD),)
       
  5667 +POSTLINKDEFFILE:=$(DEFFILE)
       
  5668 +SUPPORT_FREEZE:=1
       
  5669 +ifeq ($(NOEXPORTLIBRARY),)
       
  5670 +IMPORTLIBRARYREQUIRED:=1
       
  5671 +endif
       
  5672 +endif
       
  5673 +
       
  5674  UID2:=100039df
       
  5675  STATIC_RUNTIME_LIB:=$(USER_STATIC_RUNTIME_LIB)
       
  5676  CANIGNORENONCALLABLE:=1
       
  5677 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/e32abiv2kdll.flm /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/e32abiv2kdll.flm
       
  5678 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/e32abiv2kdll.flm	2010-05-18 19:32:34.725348467 +0100
       
  5679 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/e32abiv2kdll.flm	2010-05-17 18:47:53.044842000 +0100
       
  5680 @@ -27,7 +27,7 @@
       
  5681  
       
  5682  # Determine what kind of entrypoint option to set
       
  5683  LINKER_ENTRYPOINT_LIBDEP:=$(STATIC_RUNTIME_DIR)/ekll.lib
       
  5684 -LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRY_OPTION) _E32Dll $(LINKER_ENTRYPOINT_DECORATION) $(call dblquote,$(STATIC_RUNTIME_DIR)/ekll.lib$(LINKER_ENTRYPOINT_ADORNMENT))
       
  5685 +LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRY_OPTION)=_E32Dll $(LINKER_ENTRYPOINT_DECORATION)$(LINKER_SEPARATOR)$(call dblquote,$(STATIC_RUNTIME_DIR)/ekll.lib$(LINKER_ENTRYPOINT_ADORNMENT))
       
  5686  
       
  5687  ifeq ("$(NEED_ENTRYPOINT_LIBRARY)","True")
       
  5688  LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRYPOINT_SETTING) $(LINKER_ENTRYPOINT_LIBDEP)
       
  5689 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/e32abiv2kext.flm /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/e32abiv2kext.flm
       
  5690 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/e32abiv2kext.flm	2010-05-18 19:32:34.725348467 +0100
       
  5691 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/e32abiv2kext.flm	2010-05-17 18:47:53.044842000 +0100
       
  5692 @@ -34,7 +34,7 @@
       
  5693  
       
  5694  # Default Linker settings for this target type
       
  5695  LINKER_ENTRYPOINT_LIBDEP:=$(STATIC_RUNTIME_DIR)/eext.lib
       
  5696 -LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRY_OPTION) _E32Dll $(LINKER_ENTRYPOINT_DECORATION) $(call dblquote,$(STATIC_RUNTIME_DIR)/eext.lib$(LINKER_ENTRYPOINT_ADORNMENT))
       
  5697 +LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRY_OPTION)=_E32Dll $(LINKER_ENTRYPOINT_DECORATION)$(LINKER_SEPARATOR)$(call dblquote,$(STATIC_RUNTIME_DIR)/eext.lib$(LINKER_ENTRYPOINT_ADORNMENT))
       
  5698  
       
  5699  ifeq ("$(NEED_ENTRYPOINT_LIBRARY)","True")
       
  5700  LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRYPOINT_SETTING) $(LINKER_ENTRYPOINT_LIBDEP)
       
  5701 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/e32abiv2ldd.flm /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/e32abiv2ldd.flm
       
  5702 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/e32abiv2ldd.flm	2010-05-18 19:32:34.729348906 +0100
       
  5703 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/e32abiv2ldd.flm	2010-05-17 18:47:53.044842000 +0100
       
  5704 @@ -1,4 +1,4 @@
       
  5705 -# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
       
  5706 +# Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies).
       
  5707  # All rights reserved.
       
  5708  # This component and the accompanying materials are made available
       
  5709  # under the terms of the License "Eclipse Public License v1.0"
       
  5710 @@ -29,7 +29,7 @@
       
  5711  
       
  5712  # Determine what kind of entrypoint option to set
       
  5713  LINKER_ENTRYPOINT_LIBDEP:=$(STATIC_RUNTIME_DIR)/edev.lib
       
  5714 -LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRY_OPTION) _E32Dll $(LINKER_ENTRYPOINT_DECORATION) $(call dblquote,$(STATIC_RUNTIME_DIR)/edev.lib$(LINKER_ENTRYPOINT_ADORNMENT))
       
  5715 +LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRY_OPTION)=_E32Dll $(LINKER_ENTRYPOINT_DECORATION)$(LINKER_SEPARATOR)$(call dblquote,$(STATIC_RUNTIME_DIR)/edev.lib$(LINKER_ENTRYPOINT_ADORNMENT))
       
  5716  
       
  5717  ifeq ("$(NEED_ENTRYPOINT_LIBRARY)","True")
       
  5718  LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRYPOINT_SETTING) $(LINKER_ENTRYPOINT_LIBDEP)
       
  5719 @@ -46,6 +46,15 @@
       
  5720  # No dedicated library for operator new/delete functions.
       
  5721  HAS_DEDICATED_OP_NEWDEL_LIB:=
       
  5722  
       
  5723 +# Fixed export TARGETTYPEs should only reference a .def file if an explicit DEFFILE statement is present in the .mmp file
       
  5724 +ifneq ($(DEFFILEKEYWORD),)
       
  5725 +POSTLINKDEFFILE:=$(DEFFILE)
       
  5726 +SUPPORT_FREEZE:=1
       
  5727 +ifeq ($(NOEXPORTLIBRARY),)
       
  5728 +IMPORTLIBRARYREQUIRED:=1
       
  5729 +endif
       
  5730 +endif
       
  5731 +
       
  5732  BASELIBS:=edev
       
  5733  UID2:=100000af
       
  5734  
       
  5735 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/e32abiv2pdd.flm /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/e32abiv2pdd.flm
       
  5736 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/e32abiv2pdd.flm	2010-05-18 19:32:34.729348906 +0100
       
  5737 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/e32abiv2pdd.flm	2010-05-17 18:47:53.044842000 +0100
       
  5738 @@ -1,4 +1,4 @@
       
  5739 -# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
       
  5740 +# Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies).
       
  5741  # All rights reserved.
       
  5742  # This component and the accompanying materials are made available
       
  5743  # under the terms of the License "Eclipse Public License v1.0"
       
  5744 @@ -28,7 +28,7 @@
       
  5745  
       
  5746  # Determine what kind of entrypoint option to set
       
  5747  LINKER_ENTRYPOINT_LIBDEP:=$(STATIC_RUNTIME_DIR)/edev.lib
       
  5748 -LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRY_OPTION) _E32Dll $(LINKER_ENTRYPOINT_DECORATION) $(call dblquote,$(STATIC_RUNTIME_DIR)/edev.lib$(LINKER_ENTRYPOINT_ADORNMENT))
       
  5749 +LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRY_OPTION)=_E32Dll $(LINKER_ENTRYPOINT_DECORATION)$(LINKER_SEPARATOR)$(call dblquote,$(STATIC_RUNTIME_DIR)/edev.lib$(LINKER_ENTRYPOINT_ADORNMENT))
       
  5750  
       
  5751  ifeq ("$(NEED_ENTRYPOINT_LIBRARY)","True")
       
  5752  LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRYPOINT_SETTING) $(LINKER_ENTRYPOINT_LIBDEP)
       
  5753 @@ -45,6 +45,14 @@
       
  5754  # No dedicated library for operator new/delete functions.
       
  5755  HAS_DEDICATED_OP_NEWDEL_LIB:=
       
  5756  
       
  5757 +# Fixed export TARGETTYPEs should only reference a .def file if an explicit DEFFILE statement is present in the .mmp file
       
  5758 +ifneq ($(DEFFILEKEYWORD),)
       
  5759 +POSTLINKDEFFILE:=$(DEFFILE)
       
  5760 +SUPPORT_FREEZE:=1
       
  5761 +ifeq ($(NOEXPORTLIBRARY),)
       
  5762 +IMPORTLIBRARYREQUIRED:=1
       
  5763 +endif
       
  5764 +endif
       
  5765  
       
  5766  BASELIBS:=edev
       
  5767  UID2:=100039d0
       
  5768 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/e32abiv2pdl.flm /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/e32abiv2pdl.flm
       
  5769 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/e32abiv2pdl.flm	2010-05-18 19:32:34.729348906 +0100
       
  5770 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/e32abiv2pdl.flm	2010-05-17 18:47:53.044842000 +0100
       
  5771 @@ -1,4 +1,4 @@
       
  5772 -# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
       
  5773 +# Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies).
       
  5774  # All rights reserved.
       
  5775  # This component and the accompanying materials are made available
       
  5776  # under the terms of the License "Eclipse Public License v1.0"
       
  5777 @@ -28,7 +28,7 @@
       
  5778  
       
  5779  # Determine what kind of entrypoint option to set
       
  5780  LINKER_ENTRYPOINT_LIBDEP:=$(STATIC_RUNTIME_DIR)/edll.lib
       
  5781 -LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRY_OPTION) _E32Dll $(LINKER_ENTRYPOINT_DECORATION) $(call dblquote,$(STATIC_RUNTIME_DIR)/edll.lib$(LINKER_ENTRYPOINT_ADORNMENT))
       
  5782 +LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRY_OPTION)=_E32Dll $(LINKER_ENTRYPOINT_DECORATION)$(LINKER_SEPARATOR)$(call dblquote,$(STATIC_RUNTIME_DIR)/edll.lib$(LINKER_ENTRYPOINT_ADORNMENT))
       
  5783  
       
  5784  ifeq ("$(NEED_ENTRYPOINT_LIBRARY)","True")
       
  5785  LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRYPOINT_SETTING) $(LINKER_ENTRYPOINT_LIBDEP)
       
  5786 @@ -38,6 +38,15 @@
       
  5787  STATIC_RUNTIME_LIB:=$(USER_STATIC_RUNTIME_LIB)
       
  5788  CANIGNORENONCALLABLE:=1
       
  5789  
       
  5790 +# Fixed export TARGETTYPEs should only reference a .def file if an explicit DEFFILE statement is present in the .mmp file
       
  5791 +ifneq ($(DEFFILEKEYWORD),)
       
  5792 +POSTLINKDEFFILE:=$(DEFFILE)
       
  5793 +SUPPORT_FREEZE:=1
       
  5794 +ifeq ($(NOEXPORTLIBRARY),)
       
  5795 +IMPORTLIBRARYREQUIRED:=1
       
  5796 +endif
       
  5797 +endif
       
  5798 +
       
  5799  BASELIBS:=
       
  5800  UID2:=10003b1c
       
  5801  RESOURCEPATH:=Resource\Printers
       
  5802 Only in /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm: e32abiv2pdll.flm
       
  5803 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/e32abiv2plugin.flm /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/e32abiv2plugin.flm
       
  5804 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/e32abiv2plugin.flm	2010-05-18 19:32:34.729348906 +0100
       
  5805 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/e32abiv2plugin.flm	2010-05-17 18:47:53.044842000 +0100
       
  5806 @@ -1,4 +1,4 @@
       
  5807 -# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
       
  5808 +# Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies).
       
  5809  # All rights reserved.
       
  5810  # This component and the accompanying materials are made available
       
  5811  # under the terms of the License "Eclipse Public License v1.0"
       
  5812 @@ -16,22 +16,12 @@
       
  5813  # 
       
  5814  #
       
  5815  
       
  5816 -ifeq ($(TARGETTYPE),plugin)
       
  5817 +ifneq ($(filter plugin plugin3,$(TARGETTYPE)),)
       
  5818  include $(FLMHOME)/e32abiv2defaults.mk
       
  5819  
       
  5820 -# This is basically a DLL with some tweaks
       
  5821 -# If DEFFILE keyword is specified in the MMP, set the POSTLINKDEFFILE
       
  5822 -# and guarantee the generation of import library; if not specified import library
       
  5823 -# won't be generated for plugin (default)
       
  5824 -ifneq ($(DEFFILEKEYWORD),)
       
  5825 -POSTLINKDEFFILE:=$(DEFFILE)
       
  5826 -SUPPORT_FREEZE:=1
       
  5827 -IMPORTLIBRARYREQUIRED:=1
       
  5828 -endif
       
  5829 -
       
  5830  # Default Linker settings for this target type
       
  5831  LINKER_ENTRYPOINT_LIBDEP:=$(STATIC_RUNTIME_DIR)/edll.lib
       
  5832 -LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRY_OPTION) _E32Dll $(LINKER_ENTRYPOINT_DECORATION) $(call dblquote,$(STATIC_RUNTIME_DIR)/edll.lib$(LINKER_ENTRYPOINT_ADORNMENT))
       
  5833 +LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRY_OPTION)=_E32Dll $(LINKER_ENTRYPOINT_DECORATION)$(LINKER_SEPARATOR)$(call dblquote,$(STATIC_RUNTIME_DIR)/edll.lib$(LINKER_ENTRYPOINT_ADORNMENT))
       
  5834  
       
  5835  ifeq ("$(NEED_ENTRYPOINT_LIBRARY)","True")
       
  5836  LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRYPOINT_SETTING) $(LINKER_ENTRYPOINT_LIBDEP)
       
  5837 @@ -48,9 +38,22 @@
       
  5838  AUTOEXPORTS:=_Z24ImplementationGroupProxyRi,1;
       
  5839  CANIGNORENONCALLABLE:=1
       
  5840  
       
  5841 +# Fixed export TARGETTYPEs should only reference a .def file if an explicit DEFFILE statement is present in the .mmp file
       
  5842 +ifneq ($(DEFFILEKEYWORD),)
       
  5843 +POSTLINKDEFFILE:=$(DEFFILE)
       
  5844 +SUPPORT_FREEZE:=1
       
  5845 +ifeq ($(NOEXPORTLIBRARY),)
       
  5846 +IMPORTLIBRARYREQUIRED:=1
       
  5847 +endif
       
  5848 +endif
       
  5849 +
       
  5850  # We could check the UID rather than forcing it
       
  5851  # but there seems to be no point in that.
       
  5852  UID2:=10009D8D
       
  5853 +ifeq ($(TARGETTYPE),plugin3)
       
  5854 +UID2:=10009D93
       
  5855 +POSTLINKTARGETTYPE:=PLUGIN3
       
  5856 +endif
       
  5857  
       
  5858  
       
  5859  RESOURCEPATH:=Resource/Plugins
       
  5860 @@ -65,5 +68,5 @@
       
  5861  $(call vrestore)
       
  5862  
       
  5863  else
       
  5864 -$(error $e32abiv2plugin.flm called with wrong TARGETTYPE (should be 'plugin' but is '$(TARGETTYPE)'))
       
  5865 +$(error $e32abiv2plugin.flm called with wrong TARGETTYPE (should be 'plugin' or 'plugin3' but is '$(TARGETTYPE)'))
       
  5866  endif
       
  5867 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/e32abiv2stddll.flm /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/e32abiv2stddll.flm
       
  5868 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/e32abiv2stddll.flm	2010-05-18 19:32:34.729348906 +0100
       
  5869 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/e32abiv2stddll.flm	2010-05-17 18:47:53.044842000 +0100
       
  5870 @@ -29,7 +29,7 @@
       
  5871  
       
  5872  # Default Linker settings for this target type
       
  5873  LINKER_ENTRYPOINT_LIBDEP:=$(STATIC_RUNTIME_DIR)/edll.lib
       
  5874 -LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRY_OPTION) _E32Dll $(LINKER_ENTRYPOINT_DECORATION) $(call dblquote,$(STATIC_RUNTIME_DIR)/edll.lib$(LINKER_ENTRYPOINT_ADORNMENT))
       
  5875 +LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRY_OPTION)=_E32Dll $(LINKER_ENTRYPOINT_DECORATION)$(LINKER_SEPARATOR)$(call dblquote,$(STATIC_RUNTIME_DIR)/edll.lib$(LINKER_ENTRYPOINT_ADORNMENT))
       
  5876  DEFAULT_NEWLIB:=$(DEFAULT_STDCPP_NEWLIB)
       
  5877  
       
  5878  ifeq ("$(NEED_ENTRYPOINT_LIBRARY)","True")
       
  5879 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/e32abiv2stdexe.flm /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/e32abiv2stdexe.flm
       
  5880 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/e32abiv2stdexe.flm	2010-05-18 19:32:34.729348906 +0100
       
  5881 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/e32abiv2stdexe.flm	2010-05-17 18:47:53.044842000 +0100
       
  5882 @@ -1,4 +1,4 @@
       
  5883 -# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
       
  5884 +# Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies).
       
  5885  # All rights reserved.
       
  5886  # This component and the accompanying materials are made available
       
  5887  # under the terms of the License "Eclipse Public License v1.0"
       
  5888 @@ -28,19 +28,22 @@
       
  5889  # Determine what kind of entrypoint option to set
       
  5890  LINKER_STUB_LIBRARY:=
       
  5891  LINKER_ENTRYPOINT_LIBDEP:=$(STATIC_RUNTIME_DIR)/eexe.lib
       
  5892 -LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRY_OPTION) _E32Startup $(LINKER_ENTRYPOINT_DECORATION) $(call dblquote,$(STATIC_RUNTIME_DIR)/eexe.lib$(LINKER_ENTRYPOINT_ADORNMENT))
       
  5893 +LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRY_OPTION)=_E32Startup $(LINKER_ENTRYPOINT_DECORATION)$(LINKER_SEPARATOR)$(call dblquote,$(STATIC_RUNTIME_DIR)/eexe.lib$(LINKER_ENTRYPOINT_ADORNMENT))
       
  5894  DEFAULT_NEWLIB:=$(DEFAULT_STDCPP_NEWLIB)
       
  5895  
       
  5896  ifeq ("$(NEED_ENTRYPOINT_LIBRARY)","True")
       
  5897  LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRYPOINT_SETTING) $(LINKER_ENTRYPOINT_LIBDEP)
       
  5898  endif
       
  5899  
       
  5900 -STATIC_RUNTIME_LIB:=$(USER_STATIC_RUNTIME_LIB)
       
  5901 +ifeq ($(EPOCNESTEDEXCEPTIONS),)
       
  5902 +  STATIC_RUNTIME_LIB:=$(USER_STATIC_RUNTIME_LIB)
       
  5903 +else
       
  5904 +  STATIC_RUNTIME_LIB:=$(USER_STATIC_RUNTIME_LIB_NESTED_EXCEPTIONS)
       
  5905 +endif
       
  5906 +
       
  5907  NAMEDSYMLKUP:=1
       
  5908  LIBRARY:=$(LIBRARY) euser.dso
       
  5909  
       
  5910 -MAKEDEFFILE:=
       
  5911 -
       
  5912  $(call vsave,CDEFS SYSTEMINCLUDE STATICLIBRARY)
       
  5913  
       
  5914  # STDEXEs need the c runtime library
       
  5915 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/e32abiv2textnotifier2.flm /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/e32abiv2textnotifier2.flm
       
  5916 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/e32abiv2textnotifier2.flm	2010-05-18 19:32:34.729348906 +0100
       
  5917 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/e32abiv2textnotifier2.flm	2010-05-17 18:47:53.048842000 +0100
       
  5918 @@ -1,4 +1,4 @@
       
  5919 -# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
       
  5920 +# Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies).
       
  5921  # All rights reserved.
       
  5922  # This component and the accompanying materials are made available
       
  5923  # under the terms of the License "Eclipse Public License v1.0"
       
  5924 @@ -28,7 +28,7 @@
       
  5925  AUTOEXPORTS:=_Z13NotifierArrayv,1;
       
  5926  # Determine what kind of entrypoint option to set
       
  5927  LINKER_ENTRYPOINT_LIBDEP:=$(STATIC_RUNTIME_DIR)/edll.lib
       
  5928 -LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRY_OPTION) _E32Dll $(LINKER_ENTRYPOINT_DECORATION) $(call dblquote,$(STATIC_RUNTIME_DIR)/edll.lib$(LINKER_ENTRYPOINT_ADORNMENT))
       
  5929 +LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRY_OPTION)=_E32Dll $(LINKER_ENTRYPOINT_DECORATION)$(LINKER_SEPARATOR)$(call dblquote,$(STATIC_RUNTIME_DIR)/edll.lib$(LINKER_ENTRYPOINT_ADORNMENT))
       
  5930  
       
  5931  ifeq ("$(NEED_ENTRYPOINT_LIBRARY)","True")
       
  5932  LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRYPOINT_SETTING) $(LINKER_ENTRYPOINT_LIBDEP)
       
  5933 @@ -38,6 +38,15 @@
       
  5934  STATIC_RUNTIME_LIB:=$(USER_STATIC_RUNTIME_LIB)
       
  5935  CANIGNORENONCALLABLE:=1
       
  5936  
       
  5937 +# Fixed export TARGETTYPEs should only reference a .def file if an explicit DEFFILE statement is present in the .mmp file
       
  5938 +ifneq ($(DEFFILEKEYWORD),)
       
  5939 +POSTLINKDEFFILE:=$(DEFFILE)
       
  5940 +SUPPORT_FREEZE:=1
       
  5941 +ifeq ($(NOEXPORTLIBRARY),)
       
  5942 +IMPORTLIBRARYREQUIRED:=1
       
  5943 +endif
       
  5944 +endif
       
  5945 +
       
  5946  RESOURCEPATH:=System/Notifiers
       
  5947  UID2:=101fe38b
       
  5948  POSTLINKDEFFILE:=$(DEFFILE)
       
  5949 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/e32abiv2var2.flm /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/e32abiv2var2.flm
       
  5950 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/e32abiv2var2.flm	2010-05-18 19:32:34.729348906 +0100
       
  5951 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/e32abiv2var2.flm	2010-05-17 18:47:53.048842000 +0100
       
  5952 @@ -1,4 +1,4 @@
       
  5953 -# Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
       
  5954 +# Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies).
       
  5955  # All rights reserved.
       
  5956  # This component and the accompanying materials are made available
       
  5957  # under the terms of the License "Eclipse Public License v1.0"
       
  5958 @@ -19,17 +19,9 @@
       
  5959  ifeq ($(TARGETTYPE),var2)
       
  5960  include $(FLMHOME)/e32abiv2defaults.mk
       
  5961  
       
  5962 -# What we need to build a DLL
       
  5963 -# May need a dso e.g. ecust.dll
       
  5964 -ifeq ($(NOEXPORTLIBRARY),)
       
  5965 -IMPORTLIBRARYREQUIRED:=1
       
  5966 -endif
       
  5967 -POSTLINKDEFFILE:=$(DEFFILE)
       
  5968 -SUPPORT_FREEZE:=1
       
  5969 -
       
  5970  # Determine what kind of entrypoint option to set
       
  5971  LINKER_ENTRYPOINT_LIBDEP:=$(STATIC_RUNTIME_DIR)/evar.lib
       
  5972 -LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRY_OPTION) _E32Dll $(LINKER_ENTRYPOINT_DECORATION) $(call dblquote,$(STATIC_RUNTIME_DIR)/evar.lib$(LINKER_ENTRYPOINT_ADORNMENT))
       
  5973 +LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRY_OPTION)=_E32Dll $(LINKER_ENTRYPOINT_DECORATION)$(LINKER_SEPARATOR)$(call dblquote,$(STATIC_RUNTIME_DIR)/evar.lib$(LINKER_ENTRYPOINT_ADORNMENT))
       
  5974  
       
  5975  ifeq ("$(NEED_ENTRYPOINT_LIBRARY)","True")
       
  5976  LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRYPOINT_SETTING) $(LINKER_ENTRYPOINT_LIBDEP)
       
  5977 @@ -55,7 +47,14 @@
       
  5978  # No exception support for kernel code?
       
  5979  EXCEPTIONS:=$(NO_EXCEPTIONS)
       
  5980  
       
  5981 -
       
  5982 +# Fixed export TARGETTYPEs should only reference a .def file if an explicit DEFFILE statement is present in the .mmp file
       
  5983 +ifneq ($(DEFFILEKEYWORD),)
       
  5984 +POSTLINKDEFFILE:=$(DEFFILE)
       
  5985 +SUPPORT_FREEZE:=1
       
  5986 +ifeq ($(NOEXPORTLIBRARY),)
       
  5987 +IMPORTLIBRARYREQUIRED:=1
       
  5988 +endif
       
  5989 +endif
       
  5990  
       
  5991  # We are appending to CDEFS but we don't want this to affect
       
  5992  # other invocations so we are going to save it on a stack
       
  5993 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/e32abiv2var.flm /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/e32abiv2var.flm
       
  5994 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/e32abiv2var.flm	2010-05-18 19:32:34.729348906 +0100
       
  5995 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/e32abiv2var.flm	2010-05-17 18:47:53.048842000 +0100
       
  5996 @@ -1,4 +1,4 @@
       
  5997 -# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
       
  5998 +# Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies).
       
  5999  # All rights reserved.
       
  6000  # This component and the accompanying materials are made available
       
  6001  # under the terms of the License "Eclipse Public License v1.0"
       
  6002 @@ -19,17 +19,9 @@
       
  6003  ifeq ($(TARGETTYPE),var)
       
  6004  include $(FLMHOME)/e32abiv2defaults.mk
       
  6005  
       
  6006 -# What we need to build a DLL
       
  6007 -# May need a dso e.g. ecust.dll
       
  6008 -ifeq ($(NOEXPORTLIBRARY),)
       
  6009 -IMPORTLIBRARYREQUIRED:=1
       
  6010 -endif
       
  6011 -POSTLINKDEFFILE:=$(DEFFILE)
       
  6012 -SUPPORT_FREEZE:=1
       
  6013 -
       
  6014  # Determine what kind of entrypoint option to set
       
  6015  LINKER_ENTRYPOINT_LIBDEP:=$(STATIC_RUNTIME_DIR)/evar.lib
       
  6016 -LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRY_OPTION) _E32Dll $(LINKER_ENTRYPOINT_DECORATION) $(call dblquote,$(STATIC_RUNTIME_DIR)/evar.lib$(LINKER_ENTRYPOINT_ADORNMENT))
       
  6017 +LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRY_OPTION)=_E32Dll $(LINKER_ENTRYPOINT_DECORATION)$(LINKER_SEPARATOR)$(call dblquote,$(STATIC_RUNTIME_DIR)/evar.lib$(LINKER_ENTRYPOINT_ADORNMENT))
       
  6018  
       
  6019  ifeq ("$(NEED_ENTRYPOINT_LIBRARY)","True")
       
  6020  LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRYPOINT_SETTING) $(LINKER_ENTRYPOINT_LIBDEP)
       
  6021 @@ -55,7 +47,14 @@
       
  6022  # No exception support for kernel code?
       
  6023  EXCEPTIONS:=$(NO_EXCEPTIONS)
       
  6024  
       
  6025 -
       
  6026 +# Fixed export TARGETTYPEs should only reference a .def file if an explicit DEFFILE statement is present in the .mmp file
       
  6027 +ifneq ($(DEFFILEKEYWORD),)
       
  6028 +POSTLINKDEFFILE:=$(DEFFILE)
       
  6029 +SUPPORT_FREEZE:=1
       
  6030 +ifeq ($(NOEXPORTLIBRARY),)
       
  6031 +IMPORTLIBRARYREQUIRED:=1
       
  6032 +endif
       
  6033 +endif
       
  6034  
       
  6035  # We are appending to CDEFS but we don't want this to affect
       
  6036  # other invocations so we are going to save it on a stack
       
  6037 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/emulator.xml /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/emulator.xml
       
  6038 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/emulator.xml	2010-05-18 19:32:34.729348906 +0100
       
  6039 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/emulator.xml	2010-05-17 18:47:53.048842000 +0100
       
  6040 @@ -89,7 +89,6 @@
       
  6041  		<param name='OPT.DEFINE'/>
       
  6042  		<param name='OPT.DEFFILE'/>
       
  6043  		<param name='OPT.DEPEND'/>
       
  6044 -		<param name='DEPEND_SKIP' default=''/>
       
  6045  		<param name='OPT.EXPORT'/>
       
  6046  		<param name='OPT.IMPORTLIB'/>
       
  6047  		<param name='OPT.LISTING'/>
       
  6048 @@ -151,6 +150,23 @@
       
  6049  		<param name='MAKEDEF'/>
       
  6050  	</interface>
       
  6051  
       
  6052 +	<interface name="Emulator.pdll" extends="Emulator.win32" flm="win32pdll.flm">
       
  6053 +		<param name='CHECKLIB' default=''/>
       
  6054 +		<param name='LD'/>
       
  6055 +		<param name='LFLAGS_INFGEN'/>
       
  6056 +		<param name='OPT.CHECKLIB.STDCPP'/>
       
  6057 +		<param name='OPT.CHECKLIB.SYMCPP'/>
       
  6058 +		<param name='OPT.CHECKLIB.WIN32'/>
       
  6059 +		<param name='OPT.HEAPCOMMIT'/>
       
  6060 +		<param name='OPT.HEAPRESERVE'/>
       
  6061 +		<param name='OPT.IMAGEBASE'/>
       
  6062 +		<param name='OPT.IMPLIB'/>
       
  6063 +		<param name='OPT.LIBFILE'/>
       
  6064 +		<param name='OPT.LIBPATH'/>
       
  6065 +		<param name='OPT.NOIMPLIB'/>
       
  6066 +		<param name='MAKEDEF'/>
       
  6067 +	</interface>
       
  6068 +
       
  6069  	<interface name="Emulator.stddll" extends="Emulator.dll" flm="win32stddll.flm">
       
  6070  		<param name='LFLAGS_SYMGEN'/>
       
  6071  		<param name='SYMLOOKUPUTIL'/>
       
  6072 @@ -215,6 +231,9 @@
       
  6073  	<interface name="Emulator.plugin" extends="Emulator.dll" flm="win32plugin.flm">
       
  6074  	</interface>
       
  6075  
       
  6076 +	<interface name="Emulator.plugin3" extends="Emulator.dll" flm="win32plugin.flm">
       
  6077 +	</interface>
       
  6078 +
       
  6079  	<interface name="Emulator.textnotifier2" extends="Emulator.dll" flm="win32textnotifier2.flm">
       
  6080  	</interface>
       
  6081  
       
  6082 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/gccxml.flm /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/gccxml.flm
       
  6083 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/gccxml.flm	2010-05-18 19:32:34.733348925 +0100
       
  6084 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/gccxml.flm	2010-05-17 18:47:53.048842000 +0100
       
  6085 @@ -1,4 +1,4 @@
       
  6086 -# Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
       
  6087 +# Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies).
       
  6088  # All rights reserved.
       
  6089  # This component and the accompanying materials are made available
       
  6090  # under the terms of the License "Eclipse Public License v1.0"
       
  6091 @@ -71,7 +71,7 @@
       
  6092  # $(2) list of further variable arguments to group in 150 element calls
       
  6093  define groupcallin50
       
  6094  	$(if $2,$1 $(foreach L,$(wordlist 1,50,$2),$(L)),)
       
  6095 -	$(if $2,$(call groupcallin50,$1,$(wordlist 51,$(words $2),$2)),true)
       
  6096 +	$(if $2,$(call groupcallin50,$1,$(wordlist 51,$(words $2),$2)),@true)
       
  6097  endef
       
  6098  
       
  6099  # echos content to a file in groups performing optional search/replace based on passed args
       
  6100 @@ -92,7 +92,7 @@
       
  6101  TEMPGXPARCHIVE:=$(VARIANTBLDPATH)/$(TARGET)$(BASE_TYPE).gxp
       
  6102  GXPARCHIVE:=$(VARIANTRELEASEPATH)/$(TARGET)$(BASE_TYPE).gxp
       
  6103  
       
  6104 -CLEANTARGETS:=$(CLEANTARGETS) $(MMPXMLFILE) $(SRCXMLFILES) $(DEPFILES) $(TEMPGXPARCHIVE) $(GXPARCHIVE)
       
  6105 +CLEANTARGETS:=$(CLEANTARGETS) $(MMPXMLFILE) $(SRCXMLFILES) $(DEPFILES) $(TEMPGXPARCHIVE)
       
  6106  RELEASABLES:=$(RELEASABLES) $(GXPARCHIVE)
       
  6107  
       
  6108  # Deduce whether we should be performing a build with standard CPP characteristics
       
  6109 @@ -200,7 +200,7 @@
       
  6110  define gccxmlprocesssource
       
  6111  
       
  6112    $(eval DEPENDFILENAME:=$(call mapsource2output,$(1),.xml.d))
       
  6113 -  $(eval DEPENDFILE:=$(DEPENDFILENAME))
       
  6114 +  $(eval DEPENDFILE:=$(wildcard $(DEPENDFILENAME)))
       
  6115  
       
  6116    $(call mapsource2output,$(1),.xml): $(1) $(if $(DEPENDFILE),,RESOURCE BITMAP EXPORT)
       
  6117  	$(call startrule,gccxmlprocesssource) \
       
  6118 @@ -214,9 +214,9 @@
       
  6119  	$(call endrule,gccxmlprocesssource)
       
  6120  
       
  6121      CLEANTARGETS:=$$(CLEANTARGETS) $(DEPENDFILENAME)
       
  6122 -    ifneq "$(DEPENDFILE)" ""
       
  6123 +    ifneq ($(DEPENDFILE),)
       
  6124      ifeq ($(NO_DEPEND_INCLUDE),)
       
  6125 -      ifeq "$(filter %CLEAN,$(call uppercase,$(MAKECMDGOALS)))" ""
       
  6126 +        ifeq ($(filter %CLEAN,$(call uppercase,$(MAKECMDGOALS))),)
       
  6127          -include $(DEPENDFILE)
       
  6128        endif
       
  6129      endif
       
  6130 @@ -235,7 +235,7 @@
       
  6131  # note: the main call here needs to reside outside of start/endrule in order to avoid command line length issues.
       
  6132  define gccxmlpackage
       
  6133    $(TEMPGXPARCHIVE): $(MMPXMLFILE) $(SRCXMLFILES) $(DEFFILE)
       
  6134 -	  $$(call groupcallin50,$(ZIP) -j $$@,$$^ $(RFIFILES)) ;
       
  6135 +	  $$(call groupcallin50,@$(ZIP) -j $$@ > /dev/null 2>&1,$$^ $(RFIFILES)) ;
       
  6136  	  $(call startrule,gccxmlpackage) \
       
  6137  	  $(GNURM) -f $(GXPARCHIVE) && \
       
  6138  	  $(GNUCP) $$@ $(GXPARCHIVE) \
       
  6139 @@ -252,6 +252,6 @@
       
  6140  TARGET:: $(RELEASABLES)
       
  6141  
       
  6142  # clean up
       
  6143 -$(eval $(call GenerateStandardCleanTarget,$(CLEANTARGETS),$(CREATABLEPATHS),))
       
  6144 +$(call raptor_clean,$(CLEANTARGETS))
       
  6145  $(call makepath, $(CREATABLEPATHS))
       
  6146  
       
  6147 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/msvctools.flm /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/msvctools.flm
       
  6148 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/msvctools.flm	2010-05-18 19:32:34.733348925 +0100
       
  6149 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/msvctools.flm	2010-05-17 18:47:53.052842000 +0100
       
  6150 @@ -1,4 +1,4 @@
       
  6151 -# Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
       
  6152 +# Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies).
       
  6153  # All rights reserved.
       
  6154  # This component and the accompanying materials are made available
       
  6155  # under the terms of the License "Eclipse Public License v1.0"
       
  6156 @@ -28,8 +28,7 @@
       
  6157  $(call makepath,$(RELEASEPATH))
       
  6158  $(call makepath,$(BUILDPATH))
       
  6159  
       
  6160 -CLEANTARGETS:=$(CLEANTARGETS) $(RELEASETARGET)
       
  6161 -RELEASEABLES:=$(RELEASEABLES) $(RELEASETARGET)
       
  6162 +RELEASABLES:=$(RELEASABLES) $(RELEASETARGET)
       
  6163  
       
  6164  GENDEBUGINFO:=$(if $(findstring deb,$(VARIANTTYPE)),1,)
       
  6165  
       
  6166 @@ -59,10 +58,6 @@
       
  6167  # macros
       
  6168  DEFINES:=$(call makemacrodef,$(OPT.DEFINE),$(CDEFS) $(BASE_MACRO) $(CFLAGS.ADD))
       
  6169  
       
  6170 -# other
       
  6171 -PDBFILE:=$(if $(GENDEBUGINFO),$(RELEASEPATH)/$(TARGET).pdb,)
       
  6172 -CLEANTARGETS:=$(CLEANTARGETS) $(PDBFILE)
       
  6173 -
       
  6174  #compile
       
  6175  define msvctoolscompile
       
  6176    $(BUILDPATH)/$(basename $(notdir $(1))).obj: $(1) $(PROJECT_META) $(if $(HAVE_ORDERONLY),|,)  EXPORT
       
  6177 @@ -71,7 +66,6 @@
       
  6178  	$(if $(findstring staticlib,$(BASE_TYPE)),,$(CFLAGS.LIB)) \
       
  6179  	$(CFLAGS) $$(subst /,-,$(OPTION_MSVC)) \
       
  6180  	$(if $(findstring /W,$(OPTION_MSVC)),,$(CFLAGS.DEFAULT.WARNLEVEL)) \
       
  6181 -	$(if $(PDBFILE),$$(call msvcformatarg,$(OPT.PDBFILE),$(PDBFILE)),) \
       
  6182  	$(DEFINES) $(INCLUDES) \
       
  6183  	$$(call msvcformatarg,$(OPT.BROWSEFILE),$(BUILDPATH)/$(basename $(notdir $(1))).sbr) \
       
  6184  	$$(call msvcformatarg,$(OPT.OBJECTFILE),$$@) $(1) \
       
  6185 @@ -157,8 +151,7 @@
       
  6186  
       
  6187  ifneq ($(INSTALLPATH),)
       
  6188    INSTALLTARGET:=$(INSTALLPATH)/$(TARGET).$(if $(REQUESTEDTARGETEXT),$(REQUESTEDTARGETEXT),$(TARGETTYPE))
       
  6189 -  CLEANTARGETS:=$(CLEANTARGETS) $(INSTALLTARGET)
       
  6190 -  RELEASEABLES:=$(RELEASEABLES) $(INSTALLTARGET)
       
  6191 +  RELEASABLES:=$(RELEASABLES) $(INSTALLTARGET)
       
  6192  
       
  6193    define msvctoolsinstall
       
  6194      $(INSTALLTARGET): $(RELEASETARGET)
       
  6195 @@ -180,8 +173,8 @@
       
  6196  ifneq ($(GENDEBUGINFO),)
       
  6197    BSCFILE:=$(RELEASEPATH)/$(TARGET).bsc
       
  6198    BSCRESPONSEFILE:=$(BUILDPATH)/$(TARGET).brf
       
  6199 -  CLEANTARGETS:=$(CLEANTARGETS) $(BSCFILE) $(BSCRESPONSEFILE)
       
  6200 -  RELEASEABLES:=$(RELEASEABLES) $(BSCFILE)
       
  6201 +  CLEANTARGETS:=$(CLEANTARGETS) $(BSCRESPONSEFILE)
       
  6202 +  RELEASABLES:=$(RELEASABLES) $(BSCFILE)
       
  6203  
       
  6204    define msvctoolsgenbrowse  
       
  6205      $(BSCFILE): $(OBJFILES)
       
  6206 @@ -199,14 +192,14 @@
       
  6207  
       
  6208  # Global targets
       
  6209  .PHONY:: $(ALLTARGET)
       
  6210 -$(ALLTARGET):: $(RELEASEABLES)
       
  6211 -TARGET:: $(RELEASEABLES)
       
  6212 +$(ALLTARGET):: $(RELEASABLES)
       
  6213 +TARGET:: $(RELEASABLES)
       
  6214  
       
  6215  ifeq ($(BASE_TYPE),staticlib)
       
  6216    LIBRARY:: $(RELEASETARGET) $(INSTALLTARGET)
       
  6217  endif
       
  6218  
       
  6219  # clean up
       
  6220 -$(eval $(call GenerateStandardCleanTarget,$(CLEANTARGETS),,))
       
  6221 -# for the abld -what target
       
  6222 -$(eval $(call whatmacro,$(INSTALLTARGET),WHATTOOLS))
       
  6223 +$(call raptor_clean,$(CLEANTARGETS))
       
  6224 +# for the --what option and the log file
       
  6225 +$(call raptor_release,$(INSTALLTARGET))
       
  6226 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/msvctools.xml /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/msvctools.xml
       
  6227 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/msvctools.xml	2010-05-18 19:32:34.733348925 +0100
       
  6228 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/msvctools.xml	2010-05-17 18:47:53.052842000 +0100
       
  6229 @@ -42,7 +42,6 @@
       
  6230  		<param name='OPT.LISTING'/>
       
  6231  		<param name='OPT.OBJECTFILE'/>
       
  6232  		<param name='OPT.OUTFILE'/>
       
  6233 -		<param name='OPT.PDBFILE'/>
       
  6234  		<param name='OPT.PREINCLUDE'/>
       
  6235  		<param name='OPT.SUBSYSTEM'/>
       
  6236  		<param name='OPT.SYSINCLUDE'/>
       
  6237 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/resource.flm /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/resource.flm
       
  6238 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/resource.flm	2010-05-18 19:32:34.733348925 +0100
       
  6239 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/resource.flm	2010-05-17 18:47:53.052842000 +0100
       
  6240 @@ -1,4 +1,4 @@
       
  6241 -# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
       
  6242 +# Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies).
       
  6243  # All rights reserved.
       
  6244  # This component and the accompanying materials are made available
       
  6245  # under the terms of the License "Eclipse Public License v1.0"
       
  6246 @@ -101,8 +101,6 @@
       
  6247  	@if [ ! -f $$@ ]; then echo "DATADIR: /$(RSSBASENAME)" > $$@ ; fi
       
  6248  	@echo -e "\n/z$(TARGETPATH)/$(TARGET_lower).rsc : $(RSSBASENAME).rpp" >> $$@
       
  6249  
       
  6250 -CLEANTARGETS:=$$(CLEANTARGETS) $(DESTRPP) $(INFOFILE)
       
  6251 -
       
  6252  endif
       
  6253  endef
       
  6254  
       
  6255 @@ -114,7 +112,7 @@
       
  6256  $(call makepath,$(INTERBASE))
       
  6257  
       
  6258  # common pre-processor options
       
  6259 -CPPOPT:=-nostdinc -undef -D_UNICODE -include $(PRODUCT_INCLUDE)\
       
  6260 +CPPOPT:=-nostdinc -undef -Wno-trigraphs -D_UNICODE -include $(PRODUCT_INCLUDE)\
       
  6261   -I$(dir $(SOURCE)) $(foreach I, $(USERINCLUDE),-I$(I) ) -I- $(foreach J,$(SYSTEMINCLUDE),-I$(J) )
       
  6262  
       
  6263  CREATABLEPATHS:=$(RSCDIR) $(RSGDIR) $(OUTPUTPATH)
       
  6264 @@ -174,7 +172,6 @@
       
  6265  
       
  6266     ifeq ($(TARGET_$(call sanitise,$2)),)
       
  6267             TARGET_$(call sanitise,$2):=1
       
  6268 -        CLEANTARGETS:=$$(CLEANTARGETS) $2
       
  6269  
       
  6270          RESOURCE:: $2
       
  6271          ## perform additional copies of binaries
       
  6272 @@ -201,7 +198,6 @@
       
  6273  
       
  6274          ifeq ($(TARGET_$(call sanitise,$1)),)
       
  6275                  TARGET_$(call sanitise,$1):=1
       
  6276 -            CLEANTARGETS:=$$(CLEANTARGETS) $(1)
       
  6277  
       
  6278              $(if $(FLMDEBUG),$(info generateresource: $(1) from $(2) LANG:$(3)),)
       
  6279  
       
  6280 @@ -236,7 +232,6 @@
       
  6281  
       
  6282          ifeq ($(TARGET_$(call sanitise,$1)),)
       
  6283                  TARGET_$(call sanitise,$1):=1
       
  6284 -                CLEANTARGETS:= $$(CLEANTARGETS) $(1)
       
  6285                  $(if $(FLMDEBUG),$(info resourceheader: $(1) from $(2) LANG:$(3)))
       
  6286  
       
  6287                  RESOURCE:: $(1)
       
  6288 @@ -282,7 +277,6 @@
       
  6289  ifneq ($(RFIFILE),)
       
  6290    RESOURCE:: $(RFIFILE)
       
  6291    RELEASABLES:=$(RELEASABLES) $(RFIFILE)
       
  6292 -  CLEANTARGETS:=$(CLEANTARGETS) $(RFIFILE)
       
  6293    CREATABLEPATHS:=$(CREATABLEPATHS) $(dir $(RFIFILE))
       
  6294  
       
  6295    RPPFILES:=$(foreach L,$(LANGUAGES:SC=sc),$(INTERBASE)_$(L).rpp)
       
  6296 @@ -291,11 +285,11 @@
       
  6297  
       
  6298  
       
  6299  ## Clean up
       
  6300 -$(eval $(call GenerateStandardCleanTarget,$(CLEANTARGETS),$(CREATABLEPATHS),))
       
  6301 +$(call raptor_clean,$(CLEANTARGETS))
       
  6302  # make the output directories while reading makefile - some build engines prefer this
       
  6303  $(call makepath,$(CREATABLEPATHS))
       
  6304  
       
  6305 -# for the abld -what target
       
  6306 +# for the --what option and the log file
       
  6307  RELEASABLES:=$(RELEASABLES) $(DESTRPP) $(INFOFILE)
       
  6308 -$(eval $(call whatmacro,$(RELEASABLES),WHATRESOURCES))
       
  6309 +$(call raptor_release,$(RELEASABLES),RESOURCE)
       
  6310  
       
  6311 Only in /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm: run.mk
       
  6312 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/standard.xml /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/standard.xml
       
  6313 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/standard.xml	2010-05-18 19:32:34.737348805 +0100
       
  6314 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/standard.xml	2010-05-17 18:47:53.056842000 +0100
       
  6315 @@ -5,11 +5,12 @@
       
  6316  		<param name='ALWAYS_BUILD_AS_ARM' default=''/>
       
  6317  		<param name='SET_ARMINC' default=''/>
       
  6318  		<param name='ARMLIBS' default=''/>
       
  6319 -		<param name='ARMFPU' default='softvfp'/>
       
  6320 -		<param name='POSTLINKFPU' default='softvfp'/>
       
  6321 +		<param name='ARMFPU' default=''/>
       
  6322  		<param name='ARMRT' default=''/>
       
  6323 +		<param name='BYTEPAIRCOMPRESSTARGET' default=''/>
       
  6324  		<param name='TESTPATH' default=''/>
       
  6325  		<param name='CAPABILITY'/>
       
  6326 +		<param name='COMPRESSTARGET' default=''/>
       
  6327  		<param name='CPPONLYOPTION' default='-E'/>
       
  6328  		<param name='LIBRARY'/>
       
  6329  		<param name='LIBRARY_DEBUG'/>
       
  6330 @@ -20,6 +21,7 @@
       
  6331  		<param name='EXPORTUNFROZEN' default=''/>
       
  6332  		<param name='FEEDBACK_OPTION' default='--feedback=' />
       
  6333  		<param name='FIRSTLIB' default=''/>
       
  6334 +		<param name='INFLATECOMPRESSTARGET' default=''/>
       
  6335  		<param name='LINKEROPTION_ARMCC' default=''/>
       
  6336  		<param name='LISTING_OPTION' default='-S'/>
       
  6337  		<param name='MMPDEFS' default=''/>
       
  6338 @@ -58,9 +60,9 @@
       
  6339  		<param name='EPOCSTACKSIZE' default=''/>
       
  6340  		<param name='EPOCFIXEDPROCESS' default=''/>
       
  6341  		<param name='EPOCALLOWDLLDATA' default=''/>
       
  6342 +		<param name='EPOCNESTEDEXCEPTIONS' default=''/>
       
  6343  		<param name='PLATMACROS.WINDOWS' default=''/>
       
  6344  		<param name='PLATMACROS.LINUX' default=''/>
       
  6345 -		<param name='MAKEDEFFILE' default='1'/>
       
  6346  		<param name='STDCPP' default=''/>
       
  6347  		<param name='NOSTDCPP' default=''/>
       
  6348  		<param name='NEWLIB' default=''/>
       
  6349 @@ -72,7 +74,6 @@
       
  6350  		<param name='CC.VAL.SOFTVFP_MAYBE_VFPV2' default=''/>
       
  6351  		<param name='CODE_SEGMENT_START' default=''/>
       
  6352  		<param name='TOOLCHAIN' default=''/>
       
  6353 -		<param name='TOOLCHAINVERSION' default=''/>
       
  6354  	</interface>
       
  6355  	<interface name="Symbian.e32abiv2" extends="Symbian.mmp" flm="e32abiv2.flm">
       
  6356  		<param name='SUPPORTS_STDCPP_NEWLIB' default='1'/>
       
  6357 @@ -92,8 +93,9 @@
       
  6358  		<param name='CFLAGS'/>
       
  6359  		<param name='COMMANDFILE_OPTION'/>
       
  6360  		<param name='COMPILE_ONLY_OPTION'/>
       
  6361 +		<param name='COMPILER_FPU_DEFAULT'/>
       
  6362 +		<param name='COMPILER_FPU_OPTION'/>
       
  6363  		<param name='COMPILER_CIA_FLAGS'/>
       
  6364 -		<param name='COMPILER_FPU_FLAGS'/>
       
  6365  		<param name='COMPILER_INTERWORK_DEFINES'/>
       
  6366  		<param name='COMPILER_SYSTEM_INCLUDE_OPTION'/>
       
  6367  		<param name='COMPILER_THUMB_DEFINES'/>
       
  6368 @@ -105,7 +107,6 @@
       
  6369  		<param name='DEBUG_FORMAT'/>
       
  6370  		<param name='DEBUG_INFO'/>
       
  6371  		<param name='DEPEND_OPTION'/>
       
  6372 -		<param name='DEPEND_SKIP' default=''/>
       
  6373  		<param name='ELF2E32'/>
       
  6374  		<param name='EFREEZE'/>
       
  6375  		<param name='EFREEZE_REMOVE_OPTION' default=''/>
       
  6376 @@ -116,6 +117,7 @@
       
  6377  		<param name='FEATURELISTFILES' default=''/>
       
  6378  		<param name='FEATUREVARIANT' default=''/>
       
  6379  		<param name='FEATUREVARIANTNAME' default=''/>
       
  6380 +		<param name='FEATUREVARIANTSAFE' default=''/>
       
  6381  		<param name='FPMODE_OPTION'/>
       
  6382  		<param name='FROMELF'/>
       
  6383  		<param name='FULLVARIANTPATH'/>
       
  6384 @@ -124,6 +126,7 @@
       
  6385  		<param name='LD'/>
       
  6386  		<param name='LD_ERRORS_CONTROL_OPTION'/>
       
  6387  		<param name='LD_WARNINGS_CONTROL_OPTION'/>
       
  6388 +		<param name='LD_WARNINGS_SUPPRESSION_ARMLIBS' default='' />
       
  6389  		<param name='LIBPATH'/>
       
  6390  		<param name='LICENSERETRY_OPTION' default=''/>
       
  6391  		<param name='LINKER_ADD_STATIC_RUNTIME'/>
       
  6392 @@ -144,6 +147,8 @@
       
  6393  		<param name='PERL'/>
       
  6394  		<param name='PERTURBSTARTTIME'/>
       
  6395  		<param name='PERTURBMSECS' default='500'/>
       
  6396 +		<param name='POSTLINKER_COMPRESSION_DEFAULT'/>
       
  6397 +		<param name='POSTLINKER_FPU_DEFAULT'/>
       
  6398  		<param name='PREPDEF'/>
       
  6399  		<param name='PREINCLUDE'/>
       
  6400  		<param name='PREINCLUDE_OPTION'/>
       
  6401 @@ -158,6 +163,7 @@
       
  6402  		<param name='RVCTBIN'/>
       
  6403  		<param name='RVCTINC'/>
       
  6404  		<param name='RVCTLIB'/>
       
  6405 +		<param name='RW_BASE'/>
       
  6406  		<param name='RW_BASE_OPTION'/>
       
  6407  		<param name='SBSV1MAKE'/>
       
  6408  		<param name='NMAKE'/>
       
  6409 @@ -167,6 +173,7 @@
       
  6410  		<param name='SPLIT_OPTION'/>
       
  6411  		<param name='KERNEL_STATIC_RUNTIME_LIB'/>
       
  6412  		<param name='USER_STATIC_RUNTIME_LIB'/>
       
  6413 +		<param name='USER_STATIC_RUNTIME_LIB_NESTED_EXCEPTIONS'/>
       
  6414  		<param name='STATIC_LIBS_LIST'/>
       
  6415  		<param name='STATIC_LIBS_PATH'/>
       
  6416  		<param name='STATIC_LIBRARY_DIR'/>
       
  6417 @@ -207,6 +214,10 @@
       
  6418  		<param name='TARGETTYPE' default="dll"/>
       
  6419  		<param name='UID1' default="10000079"/>
       
  6420  	</interface>
       
  6421 +	<interface name="Symbian.pdll" extends="Symbian.e32abiv2" flm="e32abiv2pdll.flm">
       
  6422 +		<param name='TARGETTYPE' default="pdll"/>
       
  6423 +		<param name='UID1' default="10000079"/>
       
  6424 +	</interface>
       
  6425  	<interface name="Symbian.stddll" extends="Symbian.e32abiv2" flm="e32abiv2stddll.flm">
       
  6426  		<param name='TARGETTYPE' default="stddll"/>
       
  6427  		<param name='UID1' default="10000079"/>
       
  6428 @@ -229,6 +240,8 @@
       
  6429  	</interface>
       
  6430  	<interface name="Symbian.plugin" extends="Symbian.dll" flm="e32abiv2plugin.flm">
       
  6431  	</interface>
       
  6432 +	<interface name="Symbian.plugin3" extends="Symbian.dll" flm="e32abiv2plugin.flm">
       
  6433 +	</interface>
       
  6434  	<interface name="Symbian.textnotifier2" extends="Symbian.dll" flm="e32abiv2textnotifier2.flm">
       
  6435  	</interface>
       
  6436  	<interface name="Symbian.implib" extends="Symbian.dll" flm="e32abiv2implib.flm">
       
  6437 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/stringtable.flm /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/stringtable.flm
       
  6438 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/stringtable.flm	2010-05-18 19:32:34.737348805 +0100
       
  6439 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/stringtable.flm	2010-05-17 18:47:53.056842000 +0100
       
  6440 @@ -33,9 +33,7 @@
       
  6441  
       
  6442  EXPORT::
       
  6443  
       
  6444 -
       
  6445  CLEANTARGETS:=
       
  6446 -CLEANEXPORTS:=
       
  6447  RELEASEEXPORTS:=
       
  6448  CREATABLEPATHS:=$(OUTPUTPATH) $(EXPORTPATH)
       
  6449  
       
  6450 @@ -60,7 +58,6 @@
       
  6451  	$(GNUCP) '$(STRINGTABLEHEADER)' '$$@'  \
       
  6452  	$(call endrule,exportstringtableheader) 
       
  6453  
       
  6454 -CLEANEXPORTS:=$(EXPORTEDSTRINGTABLEHEADER)
       
  6455  RELEASEEXPORTS:=$(EXPORTEDSTRINGTABLEHEADER)
       
  6456  endef
       
  6457  
       
  6458 @@ -83,24 +80,9 @@
       
  6459  $(eval $(genstringtable))
       
  6460  
       
  6461  
       
  6462 -## Clean up and log releasables (using eval to avoid target specific variables)
       
  6463 -$(eval $(call GenerateStandardCleanTarget,$(CLEANTARGETS),$(CREATABLEPATHS),))
       
  6464 -$(eval $(call GenerateStandardCleanTarget,$(CLEANEXPORTS),,CLEANEXPORT))
       
  6465 +## Clean up and log releasables
       
  6466 +$(call raptor_clean,$(CLEANTARGETS))
       
  6467  # make the output directories while reading makefile - some build engines prefer this
       
  6468  $(call makepath,$(CREATABLEPATHS))
       
  6469 -$(eval $(call whatmacro,$(RELEASEEXPORTS),WHATSTRINGTABLE))
       
  6470 +$(call raptor_release,$(RELEASEEXPORTS),STRINGTABLE)
       
  6471  
       
  6472 -########################
       
  6473 -# SBSv1 example:
       
  6474 -########################
       
  6475 -# GENERATED_FILES= \
       
  6476 -#         $(EPOCROOT)epoc32\build\generated\http\WspParamConstants.cpp \
       
  6477 -#         $(EPOCROOT)epoc32\include\WspParamConstants.h
       
  6478 -# 
       
  6479 -# $(EPOCROOT)epoc32\build\generated\http\WspParamConstants.cpp : ..\strings\WspParamConstants.st
       
  6480 -#         perl -S ecopyfile.pl ..\strings\WspParamConstants.st $(EPOCROOT)epoc32\build\generated\http\WspParamConstants.st
       
  6481 -#         perl $(EPOCROOT)epoc32\tools\stringtable.pl $(EPOCROOT)epoc32\build\generated\http\WspParamConstants.st
       
  6482 -# 
       
  6483 -# $(EPOCROOT)epoc32\include\WspParamConstants.h : $(EPOCROOT)epoc32\build\generated\http\WspParamConstants.cpp
       
  6484 -#         perl -S ecopyfile.pl $(EPOCROOT)epoc32\build\generated\http\WspParamConstants.h $(EPOCROOT)epoc32\include\WspParamConstants.h
       
  6485 -# 
       
  6486 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/template_ext.flm /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/template_ext.flm
       
  6487 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/template_ext.flm	2010-05-18 19:32:34.737348805 +0100
       
  6488 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/template_ext.flm	2010-05-17 18:47:53.056842000 +0100
       
  6489 @@ -81,11 +81,10 @@
       
  6490  # to be target specific to the unique targets
       
  6491  # that we have created.
       
  6492  
       
  6493 -UNIQ:=$(TEMPLATE_EXTENSION_MAKEFILE)$(PLATFORM)$(TO_ROOT)$(TO_BLDINF)$(EPOCBLD)$(EXTENSION_ROOT)$(TEMCOUNT)
       
  6494 +UNIQ:=$(TEMPLATE_EXTENSION_MAKEFILE)$(VARIANTPLATFORM)$(TO_ROOT)$(TO_BLDINF)$(EPOCBLD)$(EXTENSION_ROOT)$(TEMCOUNT)
       
  6495  UNIQ:=$(word 1,$(shell echo $(UNIQ) | $(GNUMD5SUM)))
       
  6496  
       
  6497  # Work out the other FINAL target if we're building both udeb and urel
       
  6498 -ifneq ($($(UNIQ)),)
       
  6499  
       
  6500  ifeq ($(CFG),urel)
       
  6501  OTHER_CFG:=udeb
       
  6502 @@ -100,6 +99,7 @@
       
  6503  OTHER_CFG:=rel
       
  6504  endif
       
  6505  
       
  6506 +ifneq ($($(UNIQ)_$(OTHER_CFG)),)
       
  6507  OTHER_MAKMAKE:=$(UNIQ)_$(OTHER_CFG)_MAKMAKE
       
  6508  OTHER_BLD:=$(UNIQ)_$(OTHER_CFG)_BLD
       
  6509  OTHER_FREEZE:=$(UNIQ)_$(OTHER_CFG)_FREEZE
       
  6510 @@ -111,7 +111,7 @@
       
  6511  endif # ifneq ($($(UNIQ)),)
       
  6512  
       
  6513  # Set $($(UNIQ)) so it can be detected if we're run again
       
  6514 -$(UNIQ):=1
       
  6515 +$(UNIQ)_$(CFG):=1
       
  6516  
       
  6517  tem_$(notdir $(TEMPLATE_EXTENSION_MAKEFILE))_$(PLATFORM)_$(CFG):=$(tem_$(notdir $(TEMPLATE_EXTENSION_MAKEFILE))_$(PLATFORM)_$(CFG)) $(UNIQ)_$(CFG)
       
  6518  
       
  6519 @@ -121,7 +121,7 @@
       
  6520  	RMDIR RM ERASE MKDIR CP                 \
       
  6521  	PLATFORM_PATH CFG_PATH                  \
       
  6522  	TEMPLATE_EXTENSION_MAKEFILE             \
       
  6523 -	TARGET SOURCE DEPENDENCIES TOOL PRODUCT_INCLUDE \
       
  6524 +	PRODUCT_INCLUDE \
       
  6525  	RVCTBIN RVCTINC RVCTLIB
       
  6526  
       
  6527  
       
  6528 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/tools2common.flm /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/tools2common.flm
       
  6529 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/tools2common.flm	2010-05-18 19:32:34.749348513 +0100
       
  6530 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/tools2common.flm	2010-05-17 18:47:53.068842000 +0100
       
  6531 @@ -1,4 +1,4 @@
       
  6532 -# Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
       
  6533 +# Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies).
       
  6534  # All rights reserved.
       
  6535  # This component and the accompanying materials are made available
       
  6536  # under the terms of the License "Eclipse Public License v1.0"
       
  6537 @@ -18,17 +18,28 @@
       
  6538  
       
  6539  ## Input parameters
       
  6540  
       
  6541 +ifeq ($(filter win,$(HOSTPLATFORM)),win)
       
  6542 +CDEFS.TOOLS2:=$(CDEFS.WIN32) $(CDEFS)
       
  6543 +CFLAGS:=$(CFLAGS.WIN32) $(CFLAGS) $(OPTION_GCC)
       
  6544 +COMPILER_PATH:=$(COMPILER_PATH.WIN32)
       
  6545  OUTPUTPATH:=$(OUTPUTPATH)/$(TARGET)_$(TARGETTYPE)/tools2/$(VARIANTTYPE)$(TOOLPLATFORMDIR)
       
  6546 -
       
  6547 -ifeq ($(OSTYPE),cygwin)
       
  6548 +else
       
  6549 +ifneq ($(TOOLS2WIN32),)
       
  6550 +# Build win32 tools in Linux
       
  6551  CDEFS.TOOLS2:=$(CDEFS.WIN32) $(CDEFS)
       
  6552  CFLAGS:=$(CFLAGS.WIN32) $(CFLAGS) $(OPTION_GCC)
       
  6553  COMPILER_PATH:=$(COMPILER_PATH.WIN32)
       
  6554 +OUTPUTPATH:=$(OUTPUTPATH)/$(TARGET)_$(TARGETTYPE)/tools2/$(VARIANTTYPE)
       
  6555  else
       
  6556 +# Build linux tools in Linux
       
  6557  CDEFS.TOOLS2:=$(CDEFS.LINUX) $(CDEFS)
       
  6558  CFLAGS:=$(CFLAGS) $(OPTION_GCC)
       
  6559  COMPILER_PATH=$(COMPILER_PATH.LINUX)
       
  6560 +OUTPUTPATH:=$(OUTPUTPATH)/$(TARGET)_$(TARGETTYPE)/tools2/$(VARIANTTYPE)$(TOOLPLATFORMDIR)
       
  6561 +endif
       
  6562  endif
       
  6563 +
       
  6564 +
       
  6565  CDEFS.TOOLS2:=$(call makemacrodef,$(OPT.D),$(CDEFS.TOOLS2))
       
  6566  
       
  6567  ## Locally used variables
       
  6568 @@ -75,16 +86,21 @@
       
  6569  $(compile2object_TARGET): $(1) $(if (DEPENDFILE),,EXPORT)
       
  6570  	$(call startrule,compile2object,,$(1)) \
       
  6571  	$(if $(COMPILER_PATH),COMPILER_PATH="$(COMPILER_PATH)",) \
       
  6572 -	$(COMPILER) $(CFLAGS) $(CDEFS.TOOLS2) -MD -MT"$$@" -MF"$(DEPENDFILENAME)" $(INCLUDES) $(OPT.O)"$$@" "$(1)" \
       
  6573 +	$(COMPILER) $(CFLAGS) $(CDEFS.TOOLS2) \
       
  6574 +	$(if $(NO_DEPEND_GENERATE),,-MD -MT"$$@" -MF"$(DEPENDFILENAME)") \
       
  6575 +	$(INCLUDES) $(OPT.O)"$$@" "$(1)" \
       
  6576  	$(call endrule,compile2object)
       
  6577  
       
  6578 -CLEANTARGETS:=$$(CLEANTARGETS) $(DEPENDFILENAME)
       
  6579 -ifneq "$(DEPENDFILE)" ""
       
  6580 -ifeq ($(NO_DEPEND_INCLUDE),)
       
  6581 -  ifeq "$(filter %CLEAN,$(call uppercase,$(MAKECMDGOALS)))" ""
       
  6582 +ifeq ($(NO_DEPEND_GENERATE),)
       
  6583 +  CLEANTARGETS:=$$(CLEANTARGETS) $(DEPENDFILENAME)
       
  6584 +endif
       
  6585 +
       
  6586 +ifneq ($(DEPENDFILE),)
       
  6587 +  ifeq ($(NO_DEPEND_INCLUDE),)
       
  6588 +    ifeq ($(filter %CLEAN,$(call uppercase,$(MAKECMDGOALS))),)
       
  6589      -include $(DEPENDFILE)
       
  6590    endif
       
  6591 -endif
       
  6592 +  endif
       
  6593  endif
       
  6594  
       
  6595  endef
       
  6596 @@ -99,9 +115,9 @@
       
  6597  # make the output directories while reading makefile - some build engines prefer this
       
  6598  $(call makepath,$(CREATABLEPATHS))
       
  6599  
       
  6600 -## Clean up (using eval to avoid target specific variables)
       
  6601 -$(eval $(call GenerateStandardCleanTarget,$(TARGETS) $(OBJECTFILES),$(CREATABLEPATHS),))
       
  6602 -## WHAT target
       
  6603 -$(eval $(call whatmacro,$(RELEASEABLES),WHATTOOLS2))
       
  6604 +## Clean up
       
  6605 +$(call raptor_clean,$(CLEANTARGETS) $(OBJECTFILES))
       
  6606 +## for the --what option and the log file
       
  6607 +$(call raptor_release,$(RELEASABLES))
       
  6608  
       
  6609  ## The End
       
  6610 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/tools2exe.flm /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/tools2exe.flm
       
  6611 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/tools2exe.flm	2010-05-18 19:32:34.749348513 +0100
       
  6612 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/tools2exe.flm	2010-05-17 18:47:53.068842000 +0100
       
  6613 @@ -1,4 +1,4 @@
       
  6614 -# Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
       
  6615 +# Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies).
       
  6616  # All rights reserved.
       
  6617  # This component and the accompanying materials are made available
       
  6618  # under the terms of the License "Eclipse Public License v1.0"
       
  6619 @@ -16,20 +16,28 @@
       
  6620  #
       
  6621  
       
  6622  ## Outputs - externally relevant targets that this FLM generates
       
  6623 -ifeq ($(OSTYPE),cygwin)
       
  6624 +ifeq ($(filter win,$(HOSTPLATFORM)),win)
       
  6625  SYSTEMLIBS:=$(LIBS.WIN32)
       
  6626  else
       
  6627 +ifneq ($(TOOLS2WIN32),)
       
  6628 +# Build win32 tools in Linux 
       
  6629 +SYSTEMLIBS:=$(LIBS.WIN32)
       
  6630 +else
       
  6631 +# Build linux tools in Linux
       
  6632  SYSTEMLIBS:=$(LIBS.LINUX)
       
  6633  endif
       
  6634 +endif
       
  6635 +
       
  6636  
       
  6637  EXETARGET:=$(RELEASEPATH)/$(TARGET)$(DOTEXE)
       
  6638  
       
  6639 +INSTALLED:=
       
  6640  ifneq ($(TOOLSPATH),)
       
  6641  INSTALLED:=$(TOOLSPATH)/$(TARGET)$(DOTEXE)
       
  6642  endif
       
  6643  
       
  6644  ## Target groups
       
  6645 -RELEASEABLES:=$(INSTALLED)
       
  6646 +RELEASABLES:=$(INSTALLED)
       
  6647  TARGETS:=$(EXETARGET) $(INSTALLED)
       
  6648  
       
  6649  ## Common build steps (compiling and cleaning)
       
  6650 @@ -51,7 +59,7 @@
       
  6651  define tools2linkexe
       
  6652  $(EXETARGET): $(OBJECTFILES) $(STATICLIBS)
       
  6653  	$(call startrule,tools2linkexe) \
       
  6654 -	$(LINKER) $(CFLAGS) $(LFLAGS) $(OPT.O)"$(EXETARGET)" $(call dblquote,$(OBJECTFILES)) $(LLIBS) \
       
  6655 +	$(LINKER) $(CFLAGS) $(LFLAGS) $(OPT.O)"$(EXETARGET)" $(call dblquote,$(OBJECTFILES)) $(LLIBS) $(LINKER_OPTIONS) \
       
  6656  	$(if $(SAVESPACE),; $(GNURM) -rf $(OUTPUTPATH); true,) \
       
  6657  	$(call endrule,tools2linkexe)
       
  6658  
       
  6659 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/tools2lib.flm /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/tools2lib.flm
       
  6660 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/tools2lib.flm	2010-05-18 19:32:34.749348513 +0100
       
  6661 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/tools2lib.flm	2010-05-17 18:47:53.068842000 +0100
       
  6662 @@ -19,7 +19,7 @@
       
  6663  LIBTARGET:=$(RELEASEPATH)/$(TARGET).a
       
  6664  
       
  6665  ## Target groups
       
  6666 -RELEASEABLES:=$(LIBTARGET)
       
  6667 +RELEASABLES:=$(LIBTARGET)
       
  6668  TARGETS:=$(LIBTARGET)
       
  6669  
       
  6670  ## Common build steps (compiling)
       
  6671 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/tools.xml /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/tools.xml
       
  6672 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/tools.xml	2010-05-18 19:32:34.745348494 +0100
       
  6673 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/tools.xml	2010-05-17 18:47:53.068842000 +0100
       
  6674 @@ -27,6 +27,7 @@
       
  6675  		<param name='SYSTEMINCLUDE' default=''/>
       
  6676  		<param name='TARGET'/>
       
  6677  		<param name='TOOLSPATH'/>
       
  6678 +		<param name='TOOLS2WIN32' default=''/>
       
  6679  		<param name='USERINCLUDE' default=''/>
       
  6680  		<param name='PRODUCT_INCLUDE' default=''/>
       
  6681  		<param name='PLATMACROS.WINDOWS'/>
       
  6682 @@ -35,6 +36,7 @@
       
  6683  	</interface>
       
  6684  
       
  6685  	<interface name="Tools.exe" extends="Tools.common" flm="tools2exe.flm">
       
  6686 +		<param name='DOTEXE'/>
       
  6687  		<param name='LINKER'/>
       
  6688  		<param name='LFLAGS'/>
       
  6689  		<param name='LIBS.WIN32' default=''/>
       
  6690 @@ -43,6 +45,7 @@
       
  6691  		<param name='OPT.l'/>
       
  6692  		<param name='STATICLIBRARY'/>
       
  6693  		<param name='TARGETTYPE' default="EXE"/>
       
  6694 +		<param name='LINKER_OPTIONS' default=''/>	
       
  6695  	</interface>
       
  6696  
       
  6697  	<interface name="Tools.lib" extends="Tools.common" flm="tools2lib.flm">
       
  6698 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/tracecompiler.mk /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/tracecompiler.mk
       
  6699 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/tracecompiler.mk	2010-05-18 19:32:34.749348513 +0100
       
  6700 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/tracecompiler.mk	2010-05-17 18:47:53.068842000 +0100
       
  6701 @@ -1,5 +1,4 @@
       
  6702 -#
       
  6703 -# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
       
  6704 +# Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
       
  6705  # All rights reserved.
       
  6706  # This component and the accompanying materials are made available
       
  6707  # under the terms of the License "Eclipse Public License v1.0"
       
  6708 @@ -13,15 +12,44 @@
       
  6709  #
       
  6710  # Description: 
       
  6711  # Run Trace Compiler on source files to generate trace headers and decode files
       
  6712 -#
       
  6713  
       
  6714 +# Set project name as <mmp_name>
       
  6715  TRACE_PRJNAME:=$(basename $(notdir $(PROJECT_META)))
       
  6716 +
       
  6717 +TARGETEXT:=$(if $(REQUESTEDTARGETEXT),$(REQUESTEDTARGETEXT),$(POSTLINKFILETYPE))
       
  6718 +
       
  6719  # Find out TRACE_PATH
       
  6720 +# first look for .*/traces/traces_<target_name>_<target_extension>
       
  6721 +TRACE_PATH:=$(strip $(foreach DIR,$(USERINCLUDE),$(filter %/traces/traces_$(TARGET)_$(TARGETEXT),$(DIR))))
       
  6722 +
       
  6723 +ifneq ($(TRACE_PATH),)
       
  6724 +# set project name as <target_name>_<target_extension> instead of <mmp_name>
       
  6725 +TRACE_PRJNAME:=$(TARGET)_$(TARGETEXT)
       
  6726 +endif
       
  6727 +
       
  6728 +# if not found look for .*/traces_<mmp_name>
       
  6729 +ifeq ($(TRACE_PATH),)
       
  6730  TRACE_PATH:=$(strip $(foreach DIR,$(USERINCLUDE),$(filter %/traces_$(TRACE_PRJNAME),$(DIR))))
       
  6731 +endif
       
  6732 +
       
  6733 +# if not found look for .*/traces
       
  6734  ifeq ($(TRACE_PATH),)
       
  6735  TRACE_PATH:=$(strip $(foreach DIR,$(USERINCLUDE),$(filter %/traces,$(DIR))))
       
  6736  endif
       
  6737  
       
  6738 +# if not found look for .*/traces_<target_name>_<target_type>
       
  6739 +ifeq ($(TRACE_PATH),)
       
  6740 +TRACE_PATH:=$(strip $(foreach DIR,$(USERINCLUDE),$(filter %/traces_$(TARGET)_$(TARGETTYPE),$(DIR))))
       
  6741 +# set project name as <target_name>_<target_type> instead of <mmp_name>
       
  6742 +TRACE_PRJNAME:=$(TARGET)_$(TARGETTYPE)
       
  6743 +endif
       
  6744 +
       
  6745 +# initialise (so what output will be correct if we don't actually run the TC)
       
  6746 +TRACE_DICTIONARY:=
       
  6747 +AUTOGEN_HEADER:=
       
  6748 +
       
  6749 +$(if $(FLMDEBUG),$(info <debug>TRACE_PATH = $(TRACE_PATH)</debug>))
       
  6750 +
       
  6751  # Run trace compiler only if TRACE_PATH exists
       
  6752  ifneq ($(TRACE_PATH),)
       
  6753  TRACE_MARKER:=$(TRACE_MARKER_PATH)/tracecompile_$(TRACE_PRJNAME)_$(UID_TC).done
       
  6754 @@ -37,14 +65,24 @@
       
  6755  
       
  6756  $(TRACE_MARKER) : $(SOURCE)
       
  6757  
       
  6758 +TRACE_HEADERS:=$(foreach SRC,$(SOURCE),$(TRACE_PATH)/$(basename $(notdir $(SRC)))Traces.h)
       
  6759 +
       
  6760 +$(TRACE_HEADERS): $(TRACE_MARKER)
       
  6761 +
       
  6762  ifeq ($(GUARD_$(call sanitise,$(TRACE_MARKER))),)
       
  6763  GUARD_$(call sanitise,$(TRACE_MARKER)):=1
       
  6764  
       
  6765 +# The trace compiler likes to change . into _ so we must do the same in the case of mmps with a name like
       
  6766 +# fred.prd.mmp we want fred_prd
       
  6767 +TRACE_PRJNAME_SANITISED:=$(subst .,_,$(TRACE_PRJNAME))
       
  6768 +
       
  6769 +TRACE_DICTIONARY:=$(EPOCROOT)/epoc32/ost_dictionaries/$(TRACE_PRJNAME_SANITISED)_0x$(UID_TC)_Dictionary.xml
       
  6770 +AUTOGEN_HEADER:=$(EPOCROOT)/epoc32/include/internal/SymbianTraces/autogen/$(TRACE_PRJNAME_SANITISED)_0x$(UID_TC)_TraceDefinitions.h
       
  6771 +
       
  6772  JAVA_COMMAND:=$(SBS_JAVATC)
       
  6773  TRACE_COMPILER_PATH:=$(EPOCROOT)/epoc32/tools
       
  6774  TRACE_COMPILER_START:=-classpath $(TRACE_COMPILER_PATH)/tracecompiler com.nokia.tracecompiler.TraceCompiler
       
  6775  
       
  6776 -TRACE_HEADERS:=$(foreach SRC,$(SOURCE),$(TRACE_PATH)/$(basename $(notdir $(SRC)))Traces.h)
       
  6777  
       
  6778  # 1. Use pipe to send inputs to trace compiler to process
       
  6779  # 2. Create a hash regarding to source names and put it in marker.
       
  6780 @@ -56,18 +94,21 @@
       
  6781  	  $(GNUCAT) $(TRACE_SOURCE_LIST); \
       
  6782  	  echo -en "*ENDOFSOURCEFILES*\n" ) | \
       
  6783  	$(JAVA_COMMAND) $(TRACE_COMPILER_START) $(UID_TC) && \
       
  6784 -	$(GNUMD5SUM) $(TRACE_SOURCE_LIST) > $(TRACE_MARKER) ; \
       
  6785 -	$(GNUCAT) $(TRACE_SOURCE_LIST) \
       
  6786 +	$(GNUMD5SUM) $(TRACE_SOURCE_LIST) > $(TRACE_MARKER) && \
       
  6787 +	{ $(GNUTOUCH) $(TRACE_DICTIONARY) $(AUTOGEN_HEADER); \
       
  6788 +	 $(GNUCAT) $(TRACE_SOURCE_LIST) ; true ; } \
       
  6789  	$(call endrule,tracecompile)
       
  6790  endef
       
  6791  
       
  6792  $(eval $(trace_compile))
       
  6793  
       
  6794 -$(eval $(call GenerateStandardCleanTarget,$(TRACE_HEADERS) $(TRACE_PATH)/tracebuilder.cache $(TRACE_MARKER) $(TRACE_SOURCE_LIST),,))
       
  6795 +$(eval $(call GenerateStandardCleanTarget, $(TRACE_PATH)/tracebuilder.cache $(TRACE_MARKER) $(TRACE_SOURCE_LIST),,))
       
  6796  
       
  6797  # End sanity guard
       
  6798  endif
       
  6799  
       
  6800 +$(eval $(call GenerateStandardCleanTarget,$(TRACE_HEADERS),,))
       
  6801 +
       
  6802  else
       
  6803  # Indicate to following parts of the FLM that we actually won't run
       
  6804  # trace compiler so they can set dependencies accordingly.
       
  6805 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/win32dll.flm /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/win32dll.flm
       
  6806 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/win32dll.flm	2010-05-18 19:32:34.753348601 +0100
       
  6807 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/win32dll.flm	2010-05-17 18:47:53.072842000 +0100
       
  6808 @@ -30,5 +30,5 @@
       
  6809  include $(FLMHOME)/win32.flm
       
  6810  
       
  6811  else
       
  6812 -$(error $win32dll.flm called with wrong TARGETTYPE (should be 'dll' but is '$(TARGETTYPE)'))
       
  6813 +$(error win32dll.flm called with wrong TARGETTYPE (should be 'dll' but is '$(TARGETTYPE)'))
       
  6814  endif
       
  6815 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/win32.flm /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/win32.flm
       
  6816 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/win32.flm	2010-05-18 19:32:34.749348513 +0100
       
  6817 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/win32.flm	2010-05-17 18:47:53.072842000 +0100
       
  6818 @@ -1,4 +1,4 @@
       
  6819 -# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
       
  6820 +# Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies).
       
  6821  # All rights reserved.
       
  6822  # This component and the accompanying materials are made available
       
  6823  # under the terms of the License "Eclipse Public License v1.0"
       
  6824 @@ -50,6 +50,7 @@
       
  6825  MAINLINKAS:=
       
  6826  NEWLIBFILE:=
       
  6827  RELEASABLES:=
       
  6828 +TC_RELEASABLES:=
       
  6829  STATLIBDIR:=
       
  6830  STDCPP_BUILD:=
       
  6831  STDCPPTAGFILE:=
       
  6832 @@ -111,15 +112,22 @@
       
  6833      endif
       
  6834    endif
       
  6835  
       
  6836 +  # Operator new linking depends on both the use of the NEWLIB keyword and whether a component supports a standard
       
  6837 +  # CPP build.
       
  6838    ifneq ($(NEWLIB),)
       
  6839 +    # If specified, always use the NEWLIB keyword value for operator new library linking
       
  6840      NEWLIBFILE:=$(STATLIBDIR)/$(NEWLIB)
       
  6841    else
       
  6842 +    # If not performing a standard CPP build, link to an appropriate default Symbian new library.
       
  6843 +    # Standard CPP components defer to the toolchain supplied libraries.
       
  6844 +    ifneq ($(STDCPP_BUILD),1)
       
  6845      ifeq ($(SYSTEM_TARGET),1)
       
  6846        NEWLIBFILE:=$(STATLIBDIR)/$(DEFAULT_SYSTEM_NEWLIB)
       
  6847      else
       
  6848        NEWLIBFILE:=$(STATLIBDIR)/$(DEFAULT_NORMAL_NEWLIB)
       
  6849      endif
       
  6850    endif
       
  6851 +  endif
       
  6852  endif
       
  6853  
       
  6854  ifeq ($(STDCPP_BUILD),1)
       
  6855 @@ -142,7 +150,7 @@
       
  6856  endif
       
  6857  
       
  6858  # get the compiler to generate dependencies for us?
       
  6859 -ifeq ($(DEPEND_SKIP),)
       
  6860 +ifeq ($(NO_DEPEND_GENERATE),)
       
  6861    CFLAGS:=$(CFLAGS) $(OPT.DEPEND)
       
  6862  endif
       
  6863  
       
  6864 @@ -197,7 +205,7 @@
       
  6865  # Run trace compiler #####################################
       
  6866  TRACE_MARKER_PATH:=$(OUTPUTPATH)
       
  6867  
       
  6868 -ifeq ($(UID3),)
       
  6869 +ifeq ($(subst 0,,$(UID3)),)
       
  6870    ifeq ($(UID2),)
       
  6871      USE_TRACE_COMPILER:=
       
  6872    else
       
  6873 @@ -211,6 +219,7 @@
       
  6874  # Users can turn TC on by setting it to 1 in user config.
       
  6875  ifneq ($(USE_TRACE_COMPILER),) 
       
  6876    include $(FLMHOME)/tracecompiler.mk
       
  6877 +  TC_RELEASABLES:=$(TRACE_DICTIONARY) $(AUTOGEN_HEADER)
       
  6878  endif
       
  6879  
       
  6880  
       
  6881 @@ -243,7 +252,6 @@
       
  6882  ifeq ($(SUPPORTS_IMPORT_LIBRARY),1)
       
  6883    ifneq ($(NOEXPORTLIBRARY),1)
       
  6884      ifneq ($(TARGET_$(call sanitise,$(IMPORTLIBTARGET))),1)
       
  6885 -      CLEANTARGETS:=$(CLEANTARGETS) $(if $(or $(EXPORTUNFROZEN),$(DEFFILE)),$(IMPORTLIBTARGET))
       
  6886        RELEASABLES:=$(RELEASABLES) $(if $(or $(EXPORTUNFROZEN),$(DEFFILE)),$(IMPORTLIBTARGET))
       
  6887  
       
  6888        # import libraries are generated to the UDEB release directory
       
  6889 @@ -290,7 +298,6 @@
       
  6890      BINTARGETSTATICLINK:=$(BINDIRSTATICLINK)/$(TARGET).$(if $(REQUESTEDTARGETEXT),$(REQUESTEDTARGETEXT),$(TARGETTYPE))
       
  6891    endif
       
  6892  
       
  6893 -  CLEANTARGETS:=$(CLEANTARGETS) $(BINTARGET) $(BINTARGETSTATICLINK)
       
  6894    RELEASABLES:=$(RELEASABLES) $(BINTARGET) $(BINTARGETSTATICLINK)
       
  6895  
       
  6896    # work on a local source files list
       
  6897 @@ -368,20 +375,21 @@
       
  6898      $(eval DEPENDFILENAME:=$(call mapwin32file,$(1),.o.d))
       
  6899      $(eval DEPENDFILE:=$(wildcard $(DEPENDFILENAME)))
       
  6900  
       
  6901 -    $(call mapwin32file,$(1),.o): $(1) $(PROJECT_META) $(if $(DEPENDFILE),,RESOURCE BITMAP EXPORT) $(if $(USE_TRACE_COMPILER),$(TRACE_MARKER))
       
  6902 +    $(call mapwin32file,$(1),.o): $(1) $(PROJECT_META) $(if $(DEPENDFILE),,RESOURCE BITMAP EXPORT) | $(if $(USE_TRACE_COMPILER),$(TRACE_MARKER))
       
  6903  	  $(call startrule,win32compile2object,,$(1)) \
       
  6904  	  $(CC) $$(if $$(filter %.C,$(1)),-lang c) $(CFLAGS) $(OPTION_CW) \
       
  6905  	  $(if $(STDCPP_BUILD),$$(if $$(filter %.c %.C,$(1)),,$$(call makemacrodef,$(OPT.DEFINE),$(STDCPP_WCHAR_DEF))),) \
       
  6906 -	  $(DEFINES) $(INCLUDES) $(OPT.OUT)"$$@" "$(1)" && \
       
  6907 -	  $(GNUSED) 's#\\\\\(.\)#/\1#g;s#/ #\\\ #g;s#\([A-Za-z]:\)\\\\#\1/#g;1,1s#.*: .* \(.\)\?$$$$#$(call mapwin32file,$(1),.o): $1 \1#' $(call mapwin32file,$(1),.dep) > $(call mapwin32file,$(1),.o.d) \
       
  6908 +	  $(DEFINES) $(INCLUDES) $(OPT.OUT)"$$@" "$(1)" \
       
  6909 +	  $(if $(NO_DEPEND_GENERATE),,&& $(GNUSED) 's#\\\\\(.\)#/\1#g;s#/ #\\\ #g;s#\([A-Za-z]:\)\\\\#\1/#g;1,1s#.*: .* \(.\)\?$$$$#$(call mapwin32file,$(1),.o): $1 \1#' $(call mapwin32file,$(1),.dep) > $(call mapwin32file,$(1),.o.d)) \
       
  6910  	  $(call endrule,win32compile2object)
       
  6911  
       
  6912 -    CLEANTARGETS:=$$(CLEANTARGETS) $(call mapwin32file,$(1),.dep)
       
  6913 +    ifeq ($(NO_DEPEND_GENERATE),)
       
  6914 +      CLEANTARGETS:=$$(CLEANTARGETS) $(call mapwin32file,$(1),.dep) $(DEPENDFILENAME)
       
  6915 +    endif
       
  6916  
       
  6917 -    CLEANTARGETS:=$$(CLEANTARGETS) $(DEPENDFILENAME)
       
  6918 -    ifneq "$(DEPENDFILE)" ""
       
  6919 +    ifneq ($(DEPENDFILE),)
       
  6920      ifeq ($(NO_DEPEND_INCLUDE),)
       
  6921 -      ifeq "$(filter %CLEAN,$(call uppercase,$(MAKECMDGOALS)))" ""
       
  6922 +        ifeq ($(filter %CLEAN,$(call uppercase,$(MAKECMDGOALS))),)
       
  6923          -include $(DEPENDFILE)
       
  6924        endif
       
  6925      endif
       
  6926 @@ -412,24 +420,28 @@
       
  6927    STDMWCINCLUDEPATHS:=$(if $(MWCSym2Includes),$(MWCSym2Includes),$(MWCSYM2INCLUDES))
       
  6928  
       
  6929    define win32resourcecompile
       
  6930 -    # Note that two calls are made to the resource compiler here.  There seems to be no means to override the
       
  6931 -    # default behaviour of dumping dependency files into the CWD when using -MD.  So - we compile once for real,
       
  6932 -    # and then pipe dependency output through SED afterwards to create the dependency file where we want it
       
  6933 +    # Note that, if dependency files are required, two calls are made to the resource compiler here.
       
  6934 +    # There seems to be no means to override the default behaviour of dumping dependency files into the CWD when using -MD.
       
  6935 +    # So - we compile once for real, and then pipe dependency output through SED afterwards to create the dependency file where we want it
       
  6936  
       
  6937      $(eval DEPENDFILENAME:=$(call mapwin32file,$(1),.res.d))
       
  6938      $(eval DEPENDFILE:=$(wildcard $(DEPENDFILENAME)))
       
  6939  
       
  6940      $(call mapwin32file,$(1),.res): $(1) $(PROJECT_META) $(if $(DEPENDFILE),,RESOURCE BITMAP EXPORT)
       
  6941  	  $(call startrule,win32resourcecompile,,$(1)) \
       
  6942 -	  MWCIncludes='$(STDMWCINCLUDEPATHS)' $(RC) $(OPT.OUT)"$$@" "$(1)" && \
       
  6943 +	  MWCIncludes='$(STDMWCINCLUDEPATHS)' $(RC) $(OPT.OUT)"$$@" "$(1)" \
       
  6944 +	  $(if $(NO_DEPEND_GENERATE),,&& \
       
  6945  	  MWCIncludes='$(STDMWCINCLUDEPATHS)' $(RC) -make $(OPT.OUT)"$$@" "$(1)" | \
       
  6946 -	  $(GNUSED) 's#\\\\\(.\)#/\1#g;s#/ #\\\ #g;s#\([A-Za-z]:\)\\\\#\1/#g;1,1s#.*: .* \(.\)\?$$$$#$(call mapwin32file,$(1),.res): $1 \1#' > $(call mapwin32file,$(1),.res.d) \
       
  6947 +	    $(GNUSED) 's#\\\\\(.\)#/\1#g;s#/ #\\\ #g;s#\([A-Za-z]:\)\\\\#\1/#g;1,1s#.*: .* \(.\)\?$$$$#$(call mapwin32file,$(1),.res): $1 \1#' > $(call mapwin32file,$(1),.res.d)) \
       
  6948  	  $(call endrule,win32resourcecompile)
       
  6949  
       
  6950 +    ifeq ($(NO_DEPEND_GENERATE),)
       
  6951      CLEANTARGETS:=$$(CLEANTARGETS) $(DEPENDFILENAME)
       
  6952 -    ifneq "$(DEPENDFILE)" ""
       
  6953 +    endif
       
  6954 +    
       
  6955 +    ifneq ($(DEPENDFILE),)
       
  6956      ifeq ($(NO_DEPEND_INCLUDE),)
       
  6957 -      ifeq "$(filter %CLEAN,$(call uppercase,$(MAKECMDGOALS)))" ""
       
  6958 +        ifeq ($(filter %CLEAN,$(call uppercase,$(MAKECMDGOALS))),)
       
  6959          -include $(DEPENDFILE)
       
  6960        endif
       
  6961      endif
       
  6962 @@ -463,7 +475,6 @@
       
  6963        # link map file (urel only)
       
  6964        ifeq ($(VARIANTTYPE),urel)
       
  6965          MAP:=$(OPT.MAP)$(BINTARGET).map
       
  6966 -        CLEANTARGETS:=$(CLEANTARGETS) $(BINTARGET).map
       
  6967          RELEASABLES:=$(RELEASABLES) $(BINTARGET).map
       
  6968        endif
       
  6969      endif
       
  6970 @@ -677,12 +688,11 @@
       
  6971    BATCHFILE_CREATED_$(BATCHDIR)$(MODULE)/$(VARIANTPLATFORM).$(TESTPATH):=1
       
  6972    TARGET_CREATED_$(EPOCROOT)/epoc32/release/$(VARIANTPLATFORM)/$(VARIANTTYPE)/z/test/$(MODULE)/$(VARIANTPLATFORM).$(TESTPATH)_$(TARGET):=1
       
  6973    RELEASABLES:=$(RELEASABLES) $(EPOCROOT)/epoc32/release/$(VARIANTPLATFORM)/$(VARIANTTYPE)/z/test/$(MODULE)/$(VARIANTPLATFORM).$(TESTPATH)
       
  6974 -  CLEANTARGETS:=$(CLEANTARGETS) $(EPOCROOT)/epoc32/release/$(VARIANTPLATFORM)/$(VARIANTTYPE)/z/test/$(MODULE)/$(VARIANTPLATFORM).$(TESTPATH)
       
  6975  endif
       
  6976  
       
  6977  # clean up
       
  6978 -$(eval $(call GenerateStandardCleanTarget,$(CLEANTARGETS),$(CREATABLEPATHS),))
       
  6979 +$(call raptor_clean,$(CLEANTARGETS))
       
  6980  # make the output directories while reading makefile - some build engines prefer this
       
  6981  $(call makepath,$(CREATABLEPATHS))
       
  6982 -# for the abld -what target
       
  6983 -$(eval $(call whatmacro,$(RELEASABLES),WHATWINSCW))
       
  6984 +# for the --what option and the log file
       
  6985 +$(call raptor_release,$(RELEASABLES) $(TC_RELEASABLES))
       
  6986 Only in /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm: win32pdll.flm
       
  6987 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/win32plugin.flm /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/win32plugin.flm
       
  6988 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/win32plugin.flm	2010-05-18 19:32:34.753348601 +0100
       
  6989 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/win32plugin.flm	2010-05-17 18:47:53.076842000 +0100
       
  6990 @@ -1,4 +1,4 @@
       
  6991 -# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
       
  6992 +# Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies).
       
  6993  # All rights reserved.
       
  6994  # This component and the accompanying materials are made available
       
  6995  # under the terms of the License "Eclipse Public License v1.0"
       
  6996 @@ -16,8 +16,7 @@
       
  6997  # 
       
  6998  #
       
  6999  
       
  7000 -ifeq ($(TARGETTYPE),plugin)
       
  7001 -
       
  7002 +ifneq ($(filter plugin plugin3,$(TARGETTYPE)),)
       
  7003  BASE_TYPE:=dll
       
  7004  CW_STATIC_RUNTIME:=1
       
  7005  FIRST_STATLIB:=
       
  7006 @@ -24,11 +23,15 @@
       
  7007  FIXED_EXPORT:=?ImplementationGroupProxy@@YAPBUTImplementationProxy@@AAH@Z
       
  7008  SUPPORTS_IMPORT_LIBRARY:=0
       
  7009  SYSTEM_TARGET:=0
       
  7010 +
       
  7011  UID2_DEFAULT:=10009D8D
       
  7012 +ifeq ($(TARGETTYPE),plugin3)
       
  7013 +UID2_DEFAULT:=10009D93
       
  7014 +endif
       
  7015  
       
  7016  # Use the general win32 FLM 
       
  7017  include $(FLMHOME)/win32.flm
       
  7018  
       
  7019  else
       
  7020 -$(error $win32plugin.flm called with wrong TARGETTYPE (should be 'plugin' but is '$(TARGETTYPE)'))
       
  7021 +$(error $win32plugin.flm called with wrong TARGETTYPE (should be 'plugin' or 'plugin3' but is '$(TARGETTYPE)'))
       
  7022  endif
       
  7023 Only in /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor: license.txt
       
  7024 Only in /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor: notes
       
  7025 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/python/filter_interface.py /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/python/filter_interface.py
       
  7026 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/python/filter_interface.py	2010-05-18 19:32:34.785348756 +0100
       
  7027 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/python/filter_interface.py	2010-05-17 18:47:53.080842000 +0100
       
  7028 @@ -18,7 +18,7 @@
       
  7029  
       
  7030  class Filter(object):
       
  7031  	
       
  7032 -	def open(self, raptor):
       
  7033 +	def open(self, params):
       
  7034  		return False
       
  7035  	
       
  7036  	def write(self, text):
       
  7037 @@ -32,3 +32,89 @@
       
  7038  	
       
  7039  	def formatError(self, message):
       
  7040  		return "sbs: error: " + message + "\n"
       
  7041 +		
       
  7042 +	def formatWarning(self, message):
       
  7043 +		return "sbs: warning: " + message + "\n"	
       
  7044 +
       
  7045 +import sys
       
  7046 +import xml.sax
       
  7047 +
       
  7048 +class FilterSAX(Filter, xml.sax.handler.ContentHandler, xml.sax.handler.ErrorHandler):
       
  7049 +	"base class for filters using a SAX parser"
       
  7050 +	
       
  7051 +	# define these methods in your subclass
       
  7052 +	
       
  7053 +	def startDocument(self):
       
  7054 +		"called once before any elements are seen"
       
  7055 +		pass
       
  7056 +		
       
  7057 +	def startElement(self, name, attributes):
       
  7058 +		"called on the opening of any element"
       
  7059 +		pass
       
  7060 +	
       
  7061 +	def characters(self, char):
       
  7062 +		"called one or more times with body text from an element"
       
  7063 +		pass
       
  7064 +		
       
  7065 +	def endElement(self, name):
       
  7066 +		"called on the closing of any element"
       
  7067 +		pass
       
  7068 +	
       
  7069 +	def endDocument(self):
       
  7070 +		"called once when all elements are closed"
       
  7071 +		pass
       
  7072 +
       
  7073 +	def error(self, exception):
       
  7074 +		"the parse found an error which is (possibly) recoverable"
       
  7075 +		pass
       
  7076 +		
       
  7077 +	def fatalError(self, exception):
       
  7078 +		"the parser thinks an error occurred which should stop everything"
       
  7079 +		pass
       
  7080 +		
       
  7081 +	def warning(self, exception):
       
  7082 +		"the parser found something to complain about that might not matter"
       
  7083 +		pass
       
  7084 +		
       
  7085 +	# these methods are from the Filter base class
       
  7086 +	
       
  7087 +	def open(self, params):
       
  7088 +		"initialise"
       
  7089 +		
       
  7090 +		self.params = params
       
  7091 +		self.ok = True
       
  7092 +		try:
       
  7093 +			self.parser = xml.sax.make_parser(['xml.sax.expatreader'])
       
  7094 +			self.parser.setContentHandler(self)
       
  7095 +			self.parser.setErrorHandler(self)
       
  7096 +			
       
  7097 +		except Exception, ex:
       
  7098 +			sys.stderr.write(self.formatError(str(ex)))
       
  7099 +			self.ok = False
       
  7100 +		
       
  7101 +		return self.ok
       
  7102 +	
       
  7103 +		
       
  7104 +	def write(self, text):
       
  7105 +		"process some log text"
       
  7106 +		try:
       
  7107 +			self.parser.feed(text)
       
  7108 +		except Exception, ex:
       
  7109 +			sys.stderr.write(self.formatError(str(ex)))
       
  7110 +			self.ok = False
       
  7111 +				
       
  7112 +		return self.ok
       
  7113 +	
       
  7114 +
       
  7115 +	def close(self):
       
  7116 +		"finish off"
       
  7117 +		try:
       
  7118 +			self.parser.close()
       
  7119 +		except Exception, ex:
       
  7120 +			sys.stderr.write(self.formatError(str(ex)))
       
  7121 +			self.ok = False
       
  7122 +			
       
  7123 +		return self.ok
       
  7124 +	
       
  7125 +
       
  7126 +# the end
       
  7127 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/python/filter_utils.py /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/python/filter_utils.py
       
  7128 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/python/filter_utils.py	2010-05-18 19:32:34.785348756 +0100
       
  7129 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/python/filter_utils.py	2010-05-17 18:47:53.080842000 +0100
       
  7130 @@ -198,12 +198,16 @@
       
  7131  	def isError(self, aLine):
       
  7132  		"""Convenience matcher for basic errors.
       
  7133  		Override in sub-classes to specialise."""
       
  7134 -		return True if Recipe.error.match(aLine) else False
       
  7135 +		if Recipe.error.match(aLine):
       
  7136 +			return True
       
  7137 +		return False
       
  7138  	
       
  7139  	def isWarning(self, aLine):
       
  7140  		"""Convenience matcher for basic warnings.
       
  7141  		Override in sub-classes to specialise."""
       
  7142 -		return True if Recipe.warning.match(aLine) else False
       
  7143 +		if Recipe.warning.match(aLine):
       
  7144 +			return True
       
  7145 +		return False
       
  7146  	
       
  7147  	def getOutput(self):
       
  7148  		""""Return a list of all output that isn't an error or a warning.
       
  7149 @@ -234,16 +238,17 @@
       
  7150  	
       
  7151  	def isSuccess(self):
       
  7152  		"Convenience method to get overall recipe status."
       
  7153 -		return True if self.getDetail(Recipe.exit) == "ok" else False
       
  7154 +		return (self.getDetail(Recipe.exit) == "ok")
       
  7155  	
       
  7156  	
       
  7157  class Win32Recipe(Recipe):
       
  7158  	"Win32 tailored recipe class."
       
  7159  	def isError(self, aLine):
       
  7160 -		return True if mwError.match(aLine) else False
       
  7161 +		if mwError.match(aLine):
       
  7162 +			return True
       
  7163 +		return False
       
  7164  	
       
  7165  	def isWarning(self, aLine):
       
  7166 -		return True if mwWarning.match(aLine) else False
       
  7167 -
       
  7168 -
       
  7169 -	
       
  7170 +		if mwWarning.match(aLine):
       
  7171 +			return True
       
  7172 +		return False
       
  7173 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/python/generic_path.py /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/python/generic_path.py
       
  7174 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/python/generic_path.py	2010-05-18 19:32:34.785348756 +0100
       
  7175 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/python/generic_path.py	2010-05-17 18:47:53.084842000 +0100
       
  7176 @@ -1,5 +1,5 @@
       
  7177  #
       
  7178 -# Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
       
  7179 +# Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies).
       
  7180  # All rights reserved.
       
  7181  # This component and the accompanying materials are made available
       
  7182  # under the terms of the License "Eclipse Public License v1.0"
       
  7183 @@ -19,6 +19,7 @@
       
  7184  import sys
       
  7185  import re
       
  7186  import types
       
  7187 +import ctypes
       
  7188  
       
  7189  # are we on windows, and if so what is the current drive letter
       
  7190  isWin = sys.platform.lower().startswith("win")
       
  7191 @@ -265,6 +266,36 @@
       
  7192  
       
  7193  		return self.path
       
  7194  
       
  7195 +	def GetSpaceSafePath(self):
       
  7196 +		"""Returns a version of the path where spaces don't interfere with shell interpretation.
       
  7197 +		
       
  7198 +		This functionality only applies to Windows - paths containing spaces are assumed to be problematic
       
  7199 +		on non-Windows platforms.
       
  7200 +		
       
  7201 +		On Windows, the path is returned in Windows-specific 8.3 short path form - tilde are used to replace
       
  7202 +		spaces and fit path elements within 8.3 requirements.  As 8.3 format paths are not guaranteed to be
       
  7203 +		supported on all Windows installs, and can only be calculated if they exist, a newly formated path is
       
  7204 +		only returned if it is returned by the Windows API and tested to exist.
       
  7205 +		"""
       
  7206 +		
       
  7207 +		if not isWin:
       
  7208 +			return None
       
  7209 +		
       
  7210 +		from ctypes.wintypes import DWORD, LPSTR, MAX_PATH
       
  7211 +
       
  7212 +		GetShortPathNameA = ctypes.windll.kernel32.GetShortPathNameA
       
  7213 +		GetShortPathNameA.restype = DWORD
       
  7214 +		GetShortPathNameA.argtypes = LPSTR, LPSTR, DWORD
       
  7215 +		
       
  7216 +		buffer = ctypes.create_string_buffer(MAX_PATH)
       
  7217 +		GetShortPathNameA(self.path, buffer, MAX_PATH)
       
  7218 +		
       
  7219 +		spacesafe = buffer.value
       
  7220 +		
       
  7221 +		if not spacesafe or not os.path.exists(spacesafe):
       
  7222 +			return None
       
  7223 +		
       
  7224 +		return spacesafe
       
  7225  
       
  7226  # Module functions
       
  7227  
       
  7228 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/python/mmpparser.py /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/python/mmpparser.py
       
  7229 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/python/mmpparser.py	2010-05-18 19:32:34.785348756 +0100
       
  7230 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/python/mmpparser.py	2010-05-17 18:47:53.084842000 +0100
       
  7231 @@ -1,5 +1,5 @@
       
  7232  #
       
  7233 -# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
       
  7234 +# Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies).
       
  7235  # All rights reserved.
       
  7236  # This component and the accompanying materials are made available
       
  7237  # under the terms of the License "Eclipse Public License v1.0"
       
  7238 @@ -71,6 +71,7 @@
       
  7239  		self.assignment = \
       
  7240  			( \
       
  7241  			Line(CaselessKeyword('ARMFPU') + String()) ^ \
       
  7242 +			Line(CaselessKeyword('APPLY') + String()) ^ \
       
  7243  			Line(CaselessKeyword('ASSPLIBRARY') + StringList()) ^ \
       
  7244  			Line(CaselessKeyword('CAPABILITY') + StringList()) ^ \
       
  7245  			Line(CaselessKeyword('DOCUMENT') + StringList()) ^ \
       
  7246 @@ -142,6 +143,7 @@
       
  7247  			CaselessKeyword('EPOCALLOWDLLDATA') ^ \
       
  7248  			CaselessKeyword('EPOCCALLDLLENTRYPOINTS') ^ \
       
  7249  			CaselessKeyword('EPOCFIXEDPROCESS') ^ \
       
  7250 +			CaselessKeyword('EPOCNESTEDEXCEPTIONS') ^ \
       
  7251  			CaselessKeyword('EXPORTUNFROZEN') ^ \
       
  7252  			CaselessKeyword('FEATUREVARIANT') ^ \
       
  7253  			CaselessKeyword('BYTEPAIRCOMPRESSTARGET') ^ \
       
  7254 Only in /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/python/plugins: filter_broken.py
       
  7255 Only in /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/python/plugins: filter_bz2log.py
       
  7256 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/python/plugins/filter_carbide.py /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/python/plugins/filter_carbide.py
       
  7257 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/python/plugins/filter_carbide.py	2010-05-18 19:32:34.785348756 +0100
       
  7258 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/python/plugins/filter_carbide.py	2010-05-17 18:47:53.084842000 +0100
       
  7259 @@ -129,5 +129,4 @@
       
  7260  		FilterCarbide.stdout.write("Overall Errors: %d\n" % self.__errors)
       
  7261  		FilterCarbide.stdout.write("Overall Warnings: %d\n\n" % self.__warnings)
       
  7262  
       
  7263 -		return True if self.__errors == 0 else False
       
  7264 -
       
  7265 +		return (self.__errors == 0)
       
  7266 Only in /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/python/plugins: filter_checkcomp.py
       
  7267 Only in /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/python/plugins: filter_check.py
       
  7268 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/python/plugins/filter_checksource.py /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/python/plugins/filter_checksource.py
       
  7269 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/python/plugins/filter_checksource.py	2010-05-18 19:32:34.785348756 +0100
       
  7270 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/python/plugins/filter_checksource.py	2010-05-17 18:47:53.084842000 +0100
       
  7271 @@ -224,11 +224,11 @@
       
  7272  				
       
  7273  				# Do the check for each file 	
       
  7274  				for dep in deplistnodups:
       
  7275 -					dep = os.path.normpath(dep).replace('\\', '/')
       
  7276 +					dep = os.path.abspath(dep).replace('\\', '/')
       
  7277  					self.checksource(dep)
       
  7278  					
       
  7279  			except Exception, e:
       
  7280 -				sys.stderr.write("sbs: could not access temporary file for FilterClean\n")
       
  7281 +				sys.stderr.write("sbs: FilterCheckSource failed: %s\n" % str(e))
       
  7282  				
       
  7283  			if self.errors == 0:
       
  7284  				sys.stdout.write("No checksource errors found\n")
       
  7285 @@ -263,7 +263,7 @@
       
  7286  		def checkcase(self, path):
       
  7287  			"""Checks the path matches the file system"""
       
  7288  			
       
  7289 -			path = os.path.normpath(path)
       
  7290 +			path = os.path.abspath(path)
       
  7291  			path = path.replace('\\', '/')
       
  7292  			
       
  7293  			if not os.path.exists(path):
       
  7294 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/python/plugins/filter_clean.py /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/python/plugins/filter_clean.py
       
  7295 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/python/plugins/filter_clean.py	2010-05-18 19:32:34.785348756 +0100
       
  7296 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/python/plugins/filter_clean.py	2010-05-17 18:47:53.084842000 +0100
       
  7297 @@ -51,17 +51,23 @@
       
  7298  		
       
  7299  			if self.removeTargets:
       
  7300  				if line.startswith("<file>"):
       
  7301 -					self.doFile(line)
       
  7302 -				elif line.startswith("<dir>"):
       
  7303 -					self.doDirectory(line)
       
  7304 +					self.doFile(line, "file")
       
  7305 +				elif line.startswith("<build>"):
       
  7306 +					self.doFile(line, "build")
       
  7307 +				elif line.startswith("<resource>"):
       
  7308 +					self.doFile(line, "resource")
       
  7309 +				elif line.startswith("<bitmap>"):
       
  7310 +					self.doFile(line, "bitmap")
       
  7311 +				elif line.startswith("<stringtable>"):
       
  7312 +					self.doFile(line, "stringtable")
       
  7313  						
       
  7314  			if self.removeExports:
       
  7315  				if line.startswith("<export "):
       
  7316  					self.doExport(line)
       
  7317  				elif line.startswith("<member>"):
       
  7318 -					self.doMember(line)
       
  7319 +					self.doFile(line, "member")
       
  7320  				elif line.startswith("<zipmarker>"):
       
  7321 -					self.doZipMarker(line)
       
  7322 +					self.doFile(line, "zipmarker")
       
  7323  				
       
  7324  		return self.ok
       
  7325  	
       
  7326 @@ -82,12 +88,13 @@
       
  7327  				if os.path.isfile(path):
       
  7328  					self.removeFile(path)
       
  7329  					
       
  7330 -				elif os.path.isdir(path):
       
  7331 -					dirs.add(path)
       
  7332 +				directory = os.path.dirname(path)
       
  7333 +				if os.path.isdir(directory):
       
  7334 +					dirs.add(directory)
       
  7335  					
       
  7336  			self.tmp.close()	# this also deletes the temporary file
       
  7337 -		except:
       
  7338 -			sys.stderr.write("sbs: could not access temporary file for FilterClean\n")
       
  7339 +		except Exception,e:
       
  7340 +			sys.stderr.write("sbs: problem reading temporary file for FilterClean: %s\n" % str(e))
       
  7341  			self.ok = False
       
  7342  		
       
  7343  		# finally remove (empty) directories
       
  7344 @@ -123,48 +130,21 @@
       
  7345  			self.ok = False
       
  7346  	
       
  7347  			
       
  7348 -	def doFile(self, line):
       
  7349 -		"remove filenames in <file> tags immediately (not .d or .dep)."
       
  7350 -		filename = line[6:-7]                # line is "<file>filename</file>
       
  7351 -		filename = filename.strip("\"\'")    # some names are quoted
       
  7352 +	def doFile(self, line, tagname):
       
  7353 +		"deal with <tagname>X</tagname>"
       
  7354  		
       
  7355 -		# dependency files must be deleted at the end,
       
  7356 -		# everything else can be deleted straight away.
       
  7357 -		if filename.endswith(".d") or filename.endswith(".dep"):
       
  7358 +		first = len(tagname) + 2	# line is "<tagname>filename</tagname>
       
  7359 +		last = -(first + 1)
       
  7360 +		filename = line[first:last]                
       
  7361 +		filename = filename.strip("\"\'")    # some names are quoted
       
  7362  			self.saveItem(filename)
       
  7363 -		else:
       
  7364 -			if os.path.isfile(filename):
       
  7365 -				self.removeFile(filename)
       
  7366 -
       
  7367 -
       
  7368 -	def doDirectory(self, line):
       
  7369 -		"save directories in <dir> tags for the end."
       
  7370 -		# assuming <dir>X</dir>
       
  7371 -		dirname = line[5:-6]
       
  7372 -		self.saveItem(dirname.strip("\"\'"))
       
  7373  		
       
  7374  		
       
  7375  	def doExport(self, line):
       
  7376 -		"save exported files in <export> tags for the end."
       
  7377 -		# assuming <export destination='X' source='Y' />
       
  7378 +		"deal with <export destination='X' source='Y'/>"
       
  7379  		filename = line[21:line.find("'", 21)]
       
  7380  		self.saveItem(filename)
       
  7381  		
       
  7382  		
       
  7383 -	def doMember(self, line):
       
  7384 -		"save zip exports in <member> tags for the end."
       
  7385 -		# assuming <member>X</member>
       
  7386 -		filename = line[8:-9]
       
  7387 -		self.saveItem(filename)
       
  7388 -		
       
  7389 -		
       
  7390 -	def doZipMarker(self, line):
       
  7391 -		"Remove file in <zipmarker> tags"
       
  7392 -		# assuming <zipmarker>X</zipmarker>
       
  7393 -		filename = line[11:-12]
       
  7394 -		if os.path.isfile(filename):
       
  7395 -			self.removeFile(filename)
       
  7396 -
       
  7397 -
       
  7398  # the end				
       
  7399  
       
  7400 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/python/plugins/filter_logfile.py /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/python/plugins/filter_logfile.py
       
  7401 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/python/plugins/filter_logfile.py	2010-05-18 19:32:34.785348756 +0100
       
  7402 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/python/plugins/filter_logfile.py	2010-05-17 18:47:53.088843000 +0100
       
  7403 @@ -16,6 +16,7 @@
       
  7404  # Will ultimately do everything that scanlog does
       
  7405  #
       
  7406  
       
  7407 +import errno
       
  7408  import os
       
  7409  import sys
       
  7410  import raptor
       
  7411 @@ -38,7 +39,7 @@
       
  7412  				if dirname and not os.path.isdir(dirname):
       
  7413  					os.makedirs(dirname)
       
  7414  			except os.error, e:
       
  7415 -				if e.errno != os.errno.EEXIST:
       
  7416 +				if e.errno != errno.EEXIST:
       
  7417  					sys.stderr.write("%s : error: cannot create directory %s\n" % \
       
  7418  						(str(raptor.name), dirname))
       
  7419  					return False
       
  7420 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/python/plugins/filter_splitlog.py /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/python/plugins/filter_splitlog.py
       
  7421 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/python/plugins/filter_splitlog.py	2010-05-18 19:32:34.785348756 +0100
       
  7422 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/python/plugins/filter_splitlog.py	2010-05-17 18:47:53.088843000 +0100
       
  7423 @@ -16,6 +16,7 @@
       
  7424  # Will ultimately do everything that scanlog does
       
  7425  #
       
  7426  
       
  7427 +import errno
       
  7428  import os
       
  7429  import sys
       
  7430  import raptor
       
  7431 @@ -38,7 +39,7 @@
       
  7432  				if dirname and not os.path.isdir(dirname):
       
  7433  					os.makedirs(dirname)
       
  7434  			except os.error, e:
       
  7435 -				if e.errno != os.errno.EEXIST:
       
  7436 +				if e.errno != errno.EEXIST:
       
  7437  					sys.stderr.write("%s : error: cannot create directory " +
       
  7438  							"%s\n" % (raptor.name, dirname))
       
  7439  					return False
       
  7440 Only in /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/python/plugins: filter_tagcount.py
       
  7441 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/python/plugins/filter_terminal.py /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/python/plugins/filter_terminal.py
       
  7442 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/python/plugins/filter_terminal.py	2010-05-18 19:32:34.789348356 +0100
       
  7443 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/python/plugins/filter_terminal.py	2010-05-17 18:47:53.088843000 +0100
       
  7444 @@ -1,5 +1,5 @@
       
  7445  #
       
  7446 -# Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
       
  7447 +# Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies).
       
  7448  # All rights reserved.
       
  7449  # This component and the accompanying materials are made available
       
  7450  # under the terms of the License "Eclipse Public License v1.0"
       
  7451 @@ -105,7 +105,7 @@
       
  7452  
       
  7453  	attribute_re = re.compile("([a-z][a-z0-9]*)='([^']*)'",re.I)
       
  7454  	maxdots = 40 # if one prints dots then don't print masses
       
  7455 -	recipelinelimit = 200 # don't scan ultra-long recipes in case we run out of memory
       
  7456 +	recipelinelimit = 1024 # don't scan ultra-long recipes in case we run out of memory
       
  7457  
       
  7458  	# recipes that we think most users are interested in
       
  7459  	# and the mapping that we will use to output them as
       
  7460 @@ -113,6 +113,7 @@
       
  7461  		"asmcompile" : "asmcompile" ,
       
  7462  		"compile" : "compile" ,
       
  7463  		"postlink" : "target",
       
  7464 +		"linkandpostlink" : "target",
       
  7465  		"resourcecompile" : "resource",
       
  7466  		"genstringtable" : "strtable",
       
  7467  		"tem" : "tem",
       
  7468 @@ -200,6 +201,9 @@
       
  7469  		if self.raptor.quiet:
       
  7470  			self.quiet = True
       
  7471  		
       
  7472 +		# the build configurations which were reported
       
  7473 +		self.built_configs = []
       
  7474 +		
       
  7475  		# keep count of errors and warnings
       
  7476  		self.err_count = 0
       
  7477  		self.warn_count = 0
       
  7478 @@ -229,6 +233,8 @@
       
  7479  			# detect the status report from a recipe
       
  7480  			if text.find('failed') != -1:
       
  7481  				self.failed = True
       
  7482 +				if text.find("reason='timeout'") != -1:
       
  7483 +					self.timedout = True
       
  7484  			else:
       
  7485  				self.failed = False
       
  7486  			return
       
  7487 @@ -281,7 +287,9 @@
       
  7488  
       
  7489  			# This variable holds all recipe information
       
  7490  			self.failed = False # Recipe status
       
  7491 +			self.timedout = False # Did it Timeout?
       
  7492  			self.recipeBody = []
       
  7493 +			self.recipelineExceeded = 0
       
  7494  			return		
       
  7495  		elif text.startswith("</recipe>"):
       
  7496  			# detect the end of a recipe
       
  7497 @@ -296,13 +304,27 @@
       
  7498  				
       
  7499  				if self.failed == True:
       
  7500  					if not self.analyseonly:
       
  7501 -						sys.stderr.write("\n FAILED %s for %s: %s\n" % \
       
  7502 +						reason=""
       
  7503 +						if self.timedout:
       
  7504 +							reason="(timeout)"
       
  7505 +
       
  7506 +						sys.stderr.write("\n FAILED %s %s for %s: %s\n" % \
       
  7507  								(self.recipe_dict['name'],
       
  7508 +								reason,
       
  7509  								self.recipe_dict['config'],
       
  7510  								self.recipe_dict['name_to_user']))
       
  7511  	
       
  7512  						mmppath = generic_path.Path(self.recipe_dict['mmp']).From(generic_path.CurrentDir()).GetShellPath()
       
  7513 +						if mmppath is not "":
       
  7514  						sys.stderr.write("  mmp: %s\n" % mmppath)
       
  7515 +						if self.timedout:
       
  7516 +							sys.stderr.write( \
       
  7517 +"""    Timeouts may be due to network related issues (e.g. license servers),
       
  7518 +    tool bugs or abnormally large components. TALON_TIMEOUT can be adjusted 
       
  7519 +    in the make engine configuration if required.  Make engines may have 
       
  7520 +    their own timeouts that Raptor cannot influence
       
  7521 +""")
       
  7522 +						else:
       
  7523  						for L in self.recipeBody:
       
  7524  							if not L.startswith('+'):
       
  7525  								sys.stdout.write("   %s\n" % L.rstrip())
       
  7526 @@ -311,7 +333,7 @@
       
  7527  					r = Recipe.factory(self.recipe_dict['name'], "".join(self.recipeBody))
       
  7528  					warnings = r.warnings()
       
  7529  					info = r.info()
       
  7530 -					if len(warnings) > 0:
       
  7531 +					if len(warnings) or len(info):
       
  7532  						if not self.analyseonly:
       
  7533  							for L in self.recipeBody:
       
  7534  								if not L.startswith('+'):
       
  7535 @@ -336,6 +358,11 @@
       
  7536  		elif text.startswith("]]>"):
       
  7537  			if self.inRecipe:
       
  7538  				self.inBody = False
       
  7539 +				if self.recipelineExceeded > 0:
       
  7540 +					self.recipeBody.append("[filter_terminal: OUTPUT TRUNCATED: " + \
       
  7541 +						"Recipe output limit exceeded; see logfile for full output " + \
       
  7542 +						"(%s lines shown out of %s)]" % (FilterTerminal.recipelinelimit, \
       
  7543 +						FilterTerminal.recipelinelimit + self.recipelineExceeded))
       
  7544  		elif text.startswith("<info>Copied"):
       
  7545  			if not self.analyseonly and not self.quiet:
       
  7546  				start = text.find(" to ") + 4
       
  7547 @@ -365,8 +392,13 @@
       
  7548  			# we have to keep the output until we find out
       
  7549  			# if the recipe failed. But not all of it if it turns
       
  7550  			# out to be very long
       
  7551 -			if len(self.recipeBody) < FilterTerminal.recipelinelimit:
       
  7552 +			if len(self.recipeBody) <= FilterTerminal.recipelinelimit:
       
  7553  				self.recipeBody.append(text)
       
  7554 +			else:
       
  7555 +				self.recipelineExceeded += 1
       
  7556 +		elif text.startswith("<info>Buildable configuration '"):
       
  7557 +			# <info>Buildable configuration 'name'</info>
       
  7558 +			self.built_configs.append(text[30:-8])
       
  7559  
       
  7560  	def logit(self):
       
  7561  		""" log a message """
       
  7562 @@ -405,10 +437,13 @@
       
  7563  		if self.warn_count > 0 or self.err_count > 0:
       
  7564  			sys.stdout.write("\n%s : warnings: %s\n" % (raptor.name,
       
  7565  					self.warn_count))
       
  7566 -			sys.stdout.write("%s : errors: %s\n" % (raptor.name,
       
  7567 +			sys.stdout.write("%s : errors: %s\n\n" % (raptor.name,
       
  7568  					self.err_count))
       
  7569  		else:
       
  7570 -			sys.stdout.write("\nno warnings or errors\n")
       
  7571 +			sys.stdout.write("\nno warnings or errors\n\n")
       
  7572 +
       
  7573 +		for bc in self.built_configs:
       
  7574 +			sys.stdout.write("built " + bc + "\n")
       
  7575  
       
  7576  		sys.stdout.write("\nRun time %d seconds\n" % self.raptor.runtime);
       
  7577  		sys.stdout.write("\n")
       
  7578 Only in /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/python/plugins: filter_timing.py
       
  7579 Only in /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/python/plugins: filter_whatcomp.py
       
  7580 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/python/plugins/filter_what.py /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/python/plugins/filter_what.py
       
  7581 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/python/plugins/filter_what.py	2010-05-18 19:32:34.789348356 +0100
       
  7582 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/python/plugins/filter_what.py	2010-05-17 18:47:53.088843000 +0100
       
  7583 @@ -1,5 +1,5 @@
       
  7584  #
       
  7585 -# Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
       
  7586 +# Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies).
       
  7587  # All rights reserved.
       
  7588  # This component and the accompanying materials are made available
       
  7589  # under the terms of the License "Eclipse Public License v1.0"
       
  7590 @@ -22,6 +22,11 @@
       
  7591  
       
  7592  class FilterWhat(filter_interface.Filter):
       
  7593  
       
  7594 +	def __init__(self):
       
  7595 +		super(filter_interface.Filter,self).__init__()
       
  7596 +		self.path_prefix_to_strip = None
       
  7597 +		self.path_prefix_to_add_on = None
       
  7598 +		self.check = False
       
  7599  	
       
  7600  	def print_file(self, line, start, end):
       
  7601  		"Ensure DOS slashes on Windows"
       
  7602 @@ -29,18 +34,40 @@
       
  7603  		"""Use chars between enclosing tags ("<>", "''", etc)
       
  7604  				start = opening tag, so the line we need
       
  7605  				actually starts at 'start + 1' """
       
  7606 +
       
  7607 +		abs_filename = line[(start + 1):end]
       
  7608 +		filename = abs_filename
       
  7609 +
       
  7610 +		# Adjust drive letters for case insensitivity on windows
       
  7611 +
       
  7612 +		path_prefix_to_strip = self.path_prefix_to_strip
       
  7613  		if "win" in self.buildparameters.platform:
       
  7614 -			filename = line[(start + 1):end].replace("/","\\")
       
  7615 -		else:
       
  7616 -			filename = line[(start + 1):end]
       
  7617 +			filename = filename[0].upper()+filename[1:]
       
  7618 +			filename = filename.replace("/","\\")
       
  7619 +
       
  7620 +		if path_prefix_to_strip:
       
  7621 +			if "win" in self.buildparameters.platform:
       
  7622 +				path_prefix_to_strip = path_prefix_to_strip[0].upper()+path_prefix_to_strip[1:].replace("/","\\")
       
  7623 +			if filename.startswith(path_prefix_to_strip):
       
  7624 +				filename = filename[len(path_prefix_to_strip):]
       
  7625 +			if self.path_prefix_to_add_on != None:
       
  7626 +				filename = self.path_prefix_to_add_on + filename
       
  7627  			
       
  7628  		if self.check:
       
  7629 -			if not os.path.isfile(filename):
       
  7630 +			if not os.path.isfile(abs_filename):
       
  7631  				print "MISSING:", filename
       
  7632  				self.ok = False
       
  7633  		else:
       
  7634  			self.outfile.write(filename+"\n")
       
  7635  
       
  7636 +		self.prints += 1
       
  7637 +
       
  7638 +	def start_bldinf(self, bldinf):
       
  7639 +		pass
       
  7640 +
       
  7641 +	def end_bldinf(self):
       
  7642 +		pass
       
  7643 +		
       
  7644  
       
  7645  	def open(self, build_parameters):
       
  7646  		"initialise"
       
  7647 @@ -45,8 +72,10 @@
       
  7648  	def open(self, build_parameters):
       
  7649  		"initialise"
       
  7650  		
       
  7651 +
       
  7652  		self.buildparameters = build_parameters
       
  7653 -		self.check = build_parameters.doCheck
       
  7654 +		if build_parameters.doCheck:
       
  7655 +			self.check = True
       
  7656  		self.what = build_parameters.doWhat
       
  7657  
       
  7658  		self.outfile = sys.stdout
       
  7659 @@ -78,6 +107,11 @@
       
  7660  		"Regex for zip exports"
       
  7661  		self.zip_export_regex = re.compile("^<member>.*")
       
  7662  		
       
  7663 +		"Regex for determining bld.inf name"
       
  7664 +		self.whatlog_regex = re.compile("^<whatlog *bldinf='(?P<bldinf>[^']*)'.*")
       
  7665 +		self.current_bldinf = ''
       
  7666 +		
       
  7667 +		self.prints = 0
       
  7668  		self.ok = True		
       
  7669  		return self.ok
       
  7670  	
       
  7671 @@ -87,10 +121,22 @@
       
  7672  		for line in text.splitlines():
       
  7673  			line = line.rstrip()
       
  7674  			
       
  7675 +			# we are normally the ONLY filter running so we have to pass on
       
  7676 +			# any errors and warnings that emerge
       
  7677 +			#
       
  7678 +			if line.startswith("<error"):
       
  7679 +				sys.stderr.write(self.formatError(line))
       
  7680 +				self.ok = False
       
  7681 +				continue
       
  7682 +			if line.startswith("<warning"):
       
  7683 +				sys.stderr.write(self.formatWarning(line))
       
  7684 +				continue
       
  7685 +				
       
  7686  			if not line in self.repetitions:
       
  7687  				self.repetitions[line] = 0
       
  7688  				
       
  7689  			if self.repetitions[line] == 0:
       
  7690 +				
       
  7691  				if self.regex.match(line) and (self.what or self.check):
       
  7692  					"Print the whole line"
       
  7693  					self.print_file(line, (-1), len(line))
       
  7694 @@ -116,10 +162,34 @@
       
  7695  					
       
  7696  					self.print_file(line, start, end)
       
  7697  						
       
  7698 +			"work out what the 'current' bldinf file is"
       
  7699 +			m = self.whatlog_regex.match(line)
       
  7700 +			if m:
       
  7701 +				bi = m.groupdict()['bldinf']
       
  7702 +				if self.current_bldinf != bi:
       
  7703 +					if self.current_bldinf != '':
       
  7704 +						self.end_bldinf()
       
  7705 +					self.current_bldinf = bi
       
  7706 +					if bi != '':
       
  7707 +						self.start_bldinf(bi)
       
  7708 +							
       
  7709 +					
       
  7710 +						
       
  7711  			self.repetitions[line] += 1
       
  7712  				
       
  7713  		return self.ok
       
  7714  	
       
  7715 +	def summary(self):
       
  7716 +		if self.prints == 0:
       
  7717 +			if self.what:
       
  7718 +				message = "no WHAT information found"
       
  7719 +			else:
       
  7720 +				message = "no CHECK information found"
       
  7721 +				
       
  7722 +			sys.stderr.write(self.formatError(message))
       
  7723 +			self.ok = False
       
  7724 +		return self.ok
       
  7725 +		
       
  7726  	def close(self):
       
  7727  		if self.outfile_close:
       
  7728  			self.outfile.close()
       
  7729 Only in /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/python: raptor_buildplatform.py
       
  7730 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/python/raptor_cache.py /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/python/raptor_cache.py
       
  7731 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/python/raptor_cache.py	2010-05-18 19:32:34.789348356 +0100
       
  7732 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/python/raptor_cache.py	2010-05-17 18:47:53.092842000 +0100
       
  7733 @@ -143,7 +143,6 @@
       
  7734  			self.WarnDuplicate("group", self.groups[obj.name], obj)
       
  7735  			return
       
  7736  
       
  7737 -		obj.SetOwner(self.raptor)
       
  7738  		self.groups[obj.name] = obj
       
  7739  
       
  7740  	def FindNamedAlias(self, name):
       
  7741 @@ -154,7 +153,6 @@
       
  7742  			self.WarnDuplicate("alias", self.aliases[obj.name], obj)
       
  7743  			return
       
  7744  
       
  7745 -		obj.SetOwner(self.raptor)
       
  7746  		self.aliases[obj.name] = obj
       
  7747  
       
  7748  
       
  7749 @@ -176,7 +174,6 @@
       
  7750  			self.WarnDuplicate("interface", self.interfaces[cacheID][obj.name], obj)
       
  7751  			return
       
  7752  
       
  7753 -		obj.SetOwner(self.raptor)
       
  7754  		obj.cacheID = cacheID
       
  7755  		self.interfaces[cacheID][obj.name] = obj
       
  7756  
       
  7757 @@ -192,7 +189,6 @@
       
  7758  				self.WarnDuplicate("variant", self.variants[obj.name], obj)
       
  7759  				return
       
  7760  
       
  7761 -			obj.SetOwner(self.raptor)
       
  7762  			self.variants[obj.name] = obj
       
  7763  
       
  7764  
       
  7765 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/python/raptor_cli.py /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/python/raptor_cli.py
       
  7766 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/python/raptor_cli.py	2010-05-18 19:32:34.789348356 +0100
       
  7767 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/python/raptor_cli.py	2010-05-17 18:47:53.092842000 +0100
       
  7768 @@ -1,5 +1,5 @@
       
  7769  #
       
  7770 -# Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
       
  7771 +# Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies).
       
  7772  # All rights reserved.
       
  7773  # This component and the accompanying materials are made available
       
  7774  # under the terms of the License "Eclipse Public License v1.0"
       
  7775 @@ -34,7 +34,7 @@
       
  7776  # raptor_cli module attributes
       
  7777  
       
  7778  parser = OptionParser(prog = raptor.name,
       
  7779 -					  usage = """%prog [--help] [options] [variable=value] [target] ...
       
  7780 +					  usage = """%prog [--help] [options] [target] ...
       
  7781  
       
  7782  Targets:
       
  7783  
       
  7784 @@ -47,7 +47,7 @@
       
  7785  LIBRARY        Create import libraries from frozen .DEF files
       
  7786  LISTING        Create assembler listing files for source files
       
  7787  REALLYCLEAN    Same as CLEAN but also remove exported files
       
  7788 -RESOURCE       Create resource files and AIFs
       
  7789 +RESOURCE       Create resource files
       
  7790  ROMFILE        Create an IBY file to be included in a ROM
       
  7791  TARGET         Create main executables
       
  7792  WHAT           List all releaseable targets
       
  7793 @@ -87,6 +87,9 @@
       
  7794  parser.add_option("--export-only",action="store_true",dest="doExportOnly",
       
  7795  				help="Generate exports only and do not create any make files.")
       
  7796  
       
  7797 +parser.add_option("--noexport",action="store_true",dest="doExport",
       
  7798 +				help="Don't export any files - useful in some builds when you know exports have already been done.")
       
  7799 +
       
  7800  parser.add_option("-f","--logfile",action="store",dest="logfile",
       
  7801  				help="Name of the log file, or '-' for stdout.")
       
  7802  
       
  7803 @@ -117,6 +120,9 @@
       
  7804  parser.add_option("--no-depend-include",action="store_true",dest="noDependInclude",
       
  7805  				help="Do not include generated dependency files. This is only useful for extremely large non-incremental builds.")
       
  7806  				
       
  7807 +parser.add_option("--no-depend-generate",action="store_true",dest="noDependGenerate",
       
  7808 +				help="Do not generate dependency files. This is only useful for extremely large non-incremental builds.  Implies --no-depend-include.")
       
  7809 +				
       
  7810  parser.add_option("-o","--orderlayers",action="store_true",dest="sys_def_order_layers",
       
  7811  				help="Build layers in the System Definition XML file in the order listed or, if given, in the order of -l options.")
       
  7812  
       
  7813 @@ -144,10 +150,15 @@
       
  7814  
       
  7815  				  "forced" -  Check all tool versions. Don't use cached results.
       
  7816  			""")
       
  7817 +
       
  7818 +parser.add_option("--timing",action="store_true",dest="timing",
       
  7819 +			help="Show extra timing information for various processes in the build.")
       
  7820 +
       
  7821  parser.add_option("--pp",action="store",dest="parallel_parsing",
       
  7822  				help="""Controls how metadata (e.g. bld.infs) are parsed in Parallel.
       
  7823  					Possible values are:
       
  7824  					"on"  - Parse bld.infs in parallel (should be faster on clusters/multicore machines)
       
  7825 +					"slave" - used internally by Raptor 
       
  7826  					"off" - Parse bld.infs serially 
       
  7827  				     """)
       
  7828  
       
  7829 @@ -236,12 +247,7 @@
       
  7830  
       
  7831  	# the leftover_args are either variable assignments of the form a=b
       
  7832  	# or target names.
       
  7833 -	regex = re.compile("^(.+)=(.*)$")
       
  7834  	for leftover in leftover_args:
       
  7835 -		assignment = regex.findall(leftover)
       
  7836 -		if len(assignment) > 0:
       
  7837 -			Raptor.SetEnv(assignment[0][0],assignment[0][1])
       
  7838 -		else:
       
  7839  			Raptor.AddTarget(leftover)
       
  7840  
       
  7841  	# Define the dictionary of functions to be used.
       
  7842 @@ -260,11 +266,13 @@
       
  7843  				 'quiet' : Raptor.RunQuietly,
       
  7844  				 'debugoutput' : Raptor.SetDebugOutput,
       
  7845  				 'doExportOnly' : Raptor.SetExportOnly,
       
  7846 +				 'doExport' : Raptor.SetNoExport,
       
  7847  				 'keepgoing': Raptor.SetKeepGoing,
       
  7848  				 'nobuild' : Raptor.SetNoBuild,
       
  7849  				 'make_engine': Raptor.SetMakeEngine,
       
  7850  				 'make_option': Raptor.AddMakeOption,
       
  7851  				 'noDependInclude': Raptor.SetNoDependInclude,
       
  7852 +				 'noDependGenerate': Raptor.SetNoDependGenerate,
       
  7853  				 'number_of_jobs': Raptor.SetJobs,
       
  7854  				 'project_name' :  Raptor.AddProject,
       
  7855  				 'filter_list' : Raptor.FilterList,
       
  7856 @@ -273,6 +281,7 @@
       
  7857  				 'what' :  Raptor.SetWhat,
       
  7858  				 'tries' : Raptor.SetTries,
       
  7859  				 'toolcheck' : Raptor.SetToolCheck,
       
  7860 +				 'timing' : Raptor.SetTiming,
       
  7861  				 'source_target' : Raptor.AddSourceTarget,
       
  7862  				 'command_file' : CommandFile,
       
  7863  				'parallel_parsing' : Raptor.SetParallelParsing,
       
  7864 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/python/raptor_data.py /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/python/raptor_data.py
       
  7865 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/python/raptor_data.py	2010-05-18 19:32:34.793348934 +0100
       
  7866 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/python/raptor_data.py	2010-05-17 18:47:53.096843000 +0100
       
  7867 @@ -1,5 +1,5 @@
       
  7868  #
       
  7869 -# Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
       
  7870 +# Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies).
       
  7871  # All rights reserved.
       
  7872  # This component and the accompanying materials are made available
       
  7873  # under the terms of the License "Eclipse Public License v1.0"
       
  7874 @@ -27,8 +27,13 @@
       
  7875  import subprocess
       
  7876  from tempfile import gettempdir
       
  7877  from time import time, clock
       
  7878 +import traceback
       
  7879 +import raptor_cache
       
  7880  
       
  7881  
       
  7882 +class MissingInterfaceError(Exception):
       
  7883 +	def __init__(self, s):
       
  7884 +		Exception.__init__(self,s)
       
  7885  
       
  7886  # What host platforms we recognise
       
  7887  # This allows us to tie some variants to one host platform and some to another
       
  7888 @@ -60,7 +65,7 @@
       
  7889  
       
  7890  # Make sure not to start up on an unsupported platform
       
  7891  if not HostPlatform.IsKnown(HostPlatform.hostplatform):
       
  7892 -	raise Exception("raptor_data module loaded on an unrecognised platform '%s'. Expected one of %s" % (hostplatform, str(hostplatforms)))
       
  7893 +	raise Exception("raptor_data module loaded on an unrecognised platform '%s'. Expected one of %s" % (HostPlatform.hostplatform, str(HostPlatform.hostplatforms)))
       
  7894  
       
  7895  
       
  7896  # raptor_data module classes
       
  7897 @@ -68,16 +73,14 @@
       
  7898  class Model(object):
       
  7899  	"Base class for data-model objects"
       
  7900  
       
  7901 +	__slots__ = ('host', 'source', 'cacheID')
       
  7902 +
       
  7903  	def __init__(self):
       
  7904 -		self.owner = None	# Raptor object
       
  7905  		self.source = None	# XML file
       
  7906 -		self.indent = " "	# for DebugPrint
       
  7907  		self.host = None
       
  7908  		self.cacheID = ""	# default set of cached objects
       
  7909 -
       
  7910 -
       
  7911 -	def SetOwner(self, aRaptor):
       
  7912 -		self.owner = aRaptor
       
  7913 +		# not using the cache parameter - there to make the 
       
  7914 +		# init for all Model objects "standard"
       
  7915  
       
  7916  
       
  7917  	def SetSourceFile(self, filename):
       
  7918 @@ -92,10 +95,6 @@
       
  7919  		raise InvalidChildError()
       
  7920  
       
  7921  
       
  7922 -	def DebugPrint(self, prefix = ""):
       
  7923 -		if self.owner:
       
  7924 -			self.owner.Debug("%s", prefix)
       
  7925 -
       
  7926  	def Valid(self):
       
  7927  		return False
       
  7928  
       
  7929 @@ -139,9 +138,14 @@
       
  7930  	def Resolve(self):
       
  7931  		raise BadReferenceError()
       
  7932  
       
  7933 -	def GetModifiers(self):
       
  7934 -		cache = self.owner.cache
       
  7935 -		return [ cache.FindNamedVariant(m) for m in self.modifiers ]
       
  7936 +	def GetModifiers(self, cache):
       
  7937 +		mods = []
       
  7938 +		for m in self.modifiers:
       
  7939 +			try:
       
  7940 +				mods.append(cache.FindNamedVariant(m))
       
  7941 +			except KeyError:
       
  7942 +				raise BadReferenceError(m)
       
  7943 +		return mods
       
  7944  
       
  7945  	def Valid(self):
       
  7946  		return self.ref
       
  7947 @@ -154,20 +158,13 @@
       
  7948  		self.variants = []
       
  7949  
       
  7950  
       
  7951 -	def SetOwner(self, aRaptor):
       
  7952 -		Model.SetOwner(self, aRaptor)
       
  7953 -		for v in self.variants:
       
  7954 -			v.SetOwner(aRaptor)
       
  7955 -
       
  7956 -
       
  7957 -	def DebugPrint(self, prefix = ""):
       
  7958 -		for v in self.variants:
       
  7959 -			v.DebugPrint(prefix)
       
  7960 +	def __str__(self):
       
  7961 +		return "\n".join([str(v) for v in self.variants])
       
  7962  
       
  7963  
       
  7964  	def AddVariant(self, variant):
       
  7965  		if type(variant) is types.StringTypes:
       
  7966 -			variant = VariantRef(variant)
       
  7967 +			variant = VariantRef(ref = variant)
       
  7968  
       
  7969  
       
  7970  		# Only add the variant if it's not in the list
       
  7971 @@ -175,15 +172,19 @@
       
  7972  		if not variant in self.variants:
       
  7973  			self.variants.append(variant)
       
  7974  
       
  7975 -	def GetVariants(self):
       
  7976 +	def GetVariants(self, cache):
       
  7977  		# resolve any VariantRef objects into Variant objects
       
  7978 +		missing_variants = []
       
  7979  		for i,var in enumerate(self.variants):
       
  7980  			if isinstance(var, Reference):
       
  7981  				try:
       
  7982 -					self.variants[i] = var.Resolve()
       
  7983 +					self.variants[i] = var.Resolve(cache=cache)
       
  7984  
       
  7985  				except BadReferenceError:
       
  7986 -					self.owner.Error("Missing variant '%s'", var.ref)
       
  7987 +					missing_variants.append(var.ref)
       
  7988 +
       
  7989 +		if len(missing_variants) > 0:
       
  7990 +			raise MissingVariantException("Missing variants '%s'", " ".join(missing_variants))
       
  7991  
       
  7992  		return self.variants
       
  7993  
       
  7994 @@ -199,27 +200,25 @@
       
  7995  		self.params = []
       
  7996  		self.paramgroups = []
       
  7997  
       
  7998 -	def DebugPrint(self, prefix = ""):
       
  7999 -		self.owner.Debug("%s<interface name='%s'>", prefix, self.name)
       
  8000 -		self.owner.Debug("%s...", prefix)
       
  8001 -		self.owner.Debug("%s</interface>", prefix)
       
  8002 +	def __str__(self):
       
  8003 +		return "<interface name='%s'>" % self.name + "</interface>"
       
  8004  
       
  8005 -	def FindParent(self):
       
  8006 +	def FindParent(self, cache):
       
  8007  		try:
       
  8008 -			return self.owner.cache.FindNamedInterface(self.extends, self.cacheID)
       
  8009 +			return cache.FindNamedInterface(self.extends, self.cacheID)
       
  8010  		except KeyError:
       
  8011  			raise BadReferenceError("Cannot extend interface because it cannot be found: "+str(self.extends))
       
  8012  
       
  8013 -	def GetParams(self):
       
  8014 +	def GetParams(self, cache):
       
  8015  		if self.extends != None:
       
  8016 -			parent = self.FindParent()
       
  8017 +			parent = self.FindParent(cache)
       
  8018  
       
  8019  			# what parameter names do we have already?
       
  8020  			names = set([x.name for x in self.params])
       
  8021  
       
  8022  			# pick up ones we don't have that are in our parent
       
  8023  			pp = []
       
  8024 -			for p in parent.GetParams():
       
  8025 +			for p in parent.GetParams(cache):
       
  8026  				if not p.name in names:
       
  8027  					pp.append(p)
       
  8028  
       
  8029 @@ -229,29 +228,29 @@
       
  8030  
       
  8031  		return self.params
       
  8032  
       
  8033 -	def GetParamGroups(self):
       
  8034 +	def GetParamGroups(self, cache):
       
  8035  		if self.extends != None:
       
  8036 -			parent = self.FindParent()
       
  8037 +			parent = self.FindParent(cache)
       
  8038  
       
  8039  			# what parameter names do we have already?
       
  8040  			patterns = set([x.pattern for x in self.paramgroups])
       
  8041  
       
  8042  			# pick up ones we don't have that are in our parent
       
  8043 -			for g in parent.GetParamGroups():
       
  8044 +			for g in parent.GetParamGroups(cache):
       
  8045  				if not g.pattern in patterns:
       
  8046  					self.paramgroups.append(g)
       
  8047  
       
  8048  		return self.paramgroups
       
  8049  
       
  8050  
       
  8051 -	def GetFLMIncludePath(self):
       
  8052 +	def GetFLMIncludePath(self, cache):
       
  8053  		"absolute path to the FLM"
       
  8054  
       
  8055  		if self.flm == None:
       
  8056  			if self.extends != None:
       
  8057 -				parent = self.FindParent()
       
  8058 +				parent = self.FindParent(cache)
       
  8059  
       
  8060 -				return parent.GetFLMIncludePath()
       
  8061 +				return parent.GetFLMIncludePath(cache)
       
  8062  			else:
       
  8063  				raise InvalidPropertyError()
       
  8064  
       
  8065 @@ -295,12 +294,12 @@
       
  8066  
       
  8067  class InterfaceRef(Reference):
       
  8068  
       
  8069 -	def DebugPrint(self, prefix = ""):
       
  8070 -		self.owner.Debug("%s<interfaceRef ref='%s'/>", prefix, self.ref)
       
  8071 +	def __str__(self):
       
  8072 +		return "<interfaceRef ref='%s'/>" % self.ref
       
  8073  
       
  8074 -	def Resolve(self):
       
  8075 +	def Resolve(self, cache):
       
  8076  		try:
       
  8077 -			return self.owner.cache.FindNamedInterface(self.ref, self.cacheID)
       
  8078 +			return cache.FindNamedInterface(self.ref, self.cacheID)
       
  8079  		except KeyError:
       
  8080  			raise BadReferenceError()
       
  8081  
       
  8082 @@ -316,24 +315,13 @@
       
  8083  		self.parentSpec = None
       
  8084  
       
  8085  
       
  8086 -	def DebugPrint(self, prefix = ""):
       
  8087 -		self.owner.Debug("%s<spec name='%s'>", prefix, self.name)
       
  8088 -		if self.interface:
       
  8089 -			self.interface.DebugPrint(prefix + self.indent)
       
  8090 -		VariantContainer.DebugPrint(self, prefix + self.indent)
       
  8091 +	def __str__(self):
       
  8092 +		s = "<spec name='%s'>" % str(self.name)
       
  8093 +		s += VariantContainer.__str__(self)
       
  8094  		for c in self.childSpecs:
       
  8095 -			c.DebugPrint(prefix + self.indent)
       
  8096 -		self.owner.Debug("%s</spec>", prefix)
       
  8097 -
       
  8098 -
       
  8099 -	def SetOwner(self, aRaptor):
       
  8100 -		VariantContainer.SetOwner(self, aRaptor)
       
  8101 -
       
  8102 -		if self.interface != None:
       
  8103 -			self.interface.SetOwner(aRaptor)
       
  8104 -
       
  8105 -		for s in self.childSpecs:
       
  8106 -			s.SetOwner(aRaptor)
       
  8107 +			s += str(c) + '\n'
       
  8108 +		s += "</spec>"
       
  8109 +		return s
       
  8110  
       
  8111  
       
  8112  	def SetProperty(self, name, value):
       
  8113 @@ -343,10 +331,10 @@
       
  8114  			raise InvalidPropertyError()
       
  8115  
       
  8116  
       
  8117 -	def Configure(self, config):
       
  8118 +	def Configure(self, config, cache):
       
  8119  		# configure all the children (some may be Filters or parents of)
       
  8120  		for spec in self.GetChildSpecs():
       
  8121 -			spec.Configure(config)
       
  8122 +			spec.Configure(config, cache = cache)
       
  8123  
       
  8124  
       
  8125  	def HasInterface(self):
       
  8126 @@ -358,10 +346,10 @@
       
  8127  		or isinstance(interface, InterfaceRef):
       
  8128  			self.interface = interface
       
  8129  		else:
       
  8130 -			self.interface = InterfaceRef(interface)
       
  8131 +			self.interface = InterfaceRef(ref = interface)
       
  8132  
       
  8133  
       
  8134 -	def GetInterface(self):
       
  8135 +	def GetInterface(self, cache):
       
  8136  		"""return the Interface (fetching from the cache if it was a ref)
       
  8137  		may return None"""
       
  8138  
       
  8139 @@ -371,13 +359,11 @@
       
  8140  
       
  8141  		if isinstance(self.interface, InterfaceRef):
       
  8142  			try:
       
  8143 -				self.interface = self.interface.Resolve()
       
  8144 +				self.interface = self.interface.Resolve(cache=cache)
       
  8145  				return self.interface
       
  8146  
       
  8147  			except BadReferenceError:
       
  8148 -				self.owner.Error("Missing interface %s", self.interface.ref)
       
  8149 -				return None
       
  8150 -
       
  8151 +				raise MissingInterfaceError("Missing interface %s" % self.interface.ref)
       
  8152  
       
  8153  	def AddChild(self, child):
       
  8154  		if isinstance(child, Specification):
       
  8155 @@ -409,7 +395,7 @@
       
  8156  		return True
       
  8157  
       
  8158  
       
  8159 -	def GetAllVariantsRecursively(self):
       
  8160 +	def GetAllVariantsRecursively(self, cache):
       
  8161  		"""Returns all variants contained in this node and in its ancestors.
       
  8162  
       
  8163  		The returned value is a list, the structure of which is [variants-in-parent,
       
  8164 @@ -419,11 +405,11 @@
       
  8165  		the variants themselves.
       
  8166  		"""
       
  8167  		if self.parentSpec:
       
  8168 -			variants = self.parentSpec.GetAllVariantsRecursively()
       
  8169 +			variants = self.parentSpec.GetAllVariantsRecursively(cache = cache)
       
  8170  		else:
       
  8171  			variants = []
       
  8172  
       
  8173 -		variants.extend( self.GetVariants() )
       
  8174 +		variants.extend( self.GetVariants(cache = cache) )
       
  8175  
       
  8176  		return variants
       
  8177  
       
  8178 @@ -438,22 +424,21 @@
       
  8179  	If several Conditions are set, the test is an OR of all of them."""
       
  8180  
       
  8181  	def __init__(self, name = ""):
       
  8182 -		Specification.__init__(self, name)	# base class constructor
       
  8183 -		self.Else = Specification(name)     # same for Else part
       
  8184 +		Specification.__init__(self, name = name)	# base class constructor
       
  8185 +		self.Else = Specification(name = name)     # same for Else part
       
  8186  		self.isTrue = True
       
  8187  		self.configNames = set()            #
       
  8188  		self.variableNames = set()          # TO DO: Condition class
       
  8189  		self.variableValues = {}            #
       
  8190  
       
  8191 -	def DebugPrint(self, prefix = ""):
       
  8192 -		self.owner.Debug("%s<filter name='%s'>", prefix, self.name)
       
  8193 -		self.owner.Debug("%s <if config='%s'>", prefix, " | ".join(self.configNames))
       
  8194 -		Specification.DebugPrint(self, prefix + self.indent)
       
  8195 -		self.owner.Debug("%s </if>", prefix)
       
  8196 -		self.owner.Debug("%s <else>", prefix)
       
  8197 -		self.Else.DebugPrint(prefix + self.indent)
       
  8198 -		self.owner.Debug("%s </else>", prefix)
       
  8199 -		self.owner.Debug("%s</filter>", prefix)
       
  8200 +	def __str__(self, prefix = ""):
       
  8201 +		s = "<filter name='%s'>\n"% self.name
       
  8202 +		s += "<if config='%s'>\n" % " | ".join(self.configNames)
       
  8203 +		s += Specification.__str__(self)
       
  8204 +		s += "</if>\n <else>\n"
       
  8205 +		s += str(self.Else)
       
  8206 +		s += " </else>\n</filter>\n"
       
  8207 +		return s
       
  8208  
       
  8209  
       
  8210  	def SetConfigCondition(self, configName):
       
  8211 @@ -478,13 +463,14 @@
       
  8212  			self.variableValues[variableName] = set([variableValues])
       
  8213  
       
  8214  
       
  8215 -	def Configure(self, buildUnit):
       
  8216 +	def Configure(self, buildUnit, cache):
       
  8217  		self.isTrue = False
       
  8218  
       
  8219  		if buildUnit.name in self.configNames:
       
  8220  			self.isTrue = True
       
  8221  		elif self.variableNames:
       
  8222 -			evaluator = self.owner.GetEvaluator(self.parentSpec, buildUnit)
       
  8223 +
       
  8224 +			evaluator = Evaluator(self.parentSpec, buildUnit, cache=cache)
       
  8225  
       
  8226  			for variableName in self.variableNames:
       
  8227  				variableValue = evaluator.Get(variableName)
       
  8228 @@ -495,14 +481,7 @@
       
  8229  
       
  8230  		# configure all the children too
       
  8231  		for spec in self.GetChildSpecs():
       
  8232 -			spec.Configure(buildUnit)
       
  8233 -
       
  8234 -
       
  8235 -	def SetOwner(self, aRaptor):
       
  8236 -		# base class method
       
  8237 -		Specification.SetOwner(self, aRaptor)
       
  8238 -		# same for Else part
       
  8239 -		self.Else.SetOwner(aRaptor)
       
  8240 +			spec.Configure(buildUnit, cache=cache)
       
  8241  
       
  8242  
       
  8243  	def HasInterface(self):
       
  8244 @@ -512,18 +491,18 @@
       
  8245  			return self.Else.HasInterface()
       
  8246  
       
  8247  
       
  8248 -	def GetInterface(self):
       
  8249 +	def GetInterface(self, cache):
       
  8250  		if self.isTrue:
       
  8251 -			return Specification.GetInterface(self)
       
  8252 +			return Specification.GetInterface(self, cache = cache)
       
  8253  		else:
       
  8254 -			return self.Else.GetInterface()
       
  8255 +			return self.Else.GetInterface(cache = cache)
       
  8256  
       
  8257  
       
  8258 -	def GetVariants(self):
       
  8259 +	def GetVariants(self, cache):
       
  8260  		if self.isTrue:
       
  8261 -			return Specification.GetVariants(self)
       
  8262 +			return Specification.GetVariants(self, cache = cache)
       
  8263  		else:
       
  8264 -			return self.Else.GetVariants()
       
  8265 +			return self.Else.GetVariants(cache = cache)
       
  8266  
       
  8267  
       
  8268  	def SetParentSpec(self, parent):
       
  8269 @@ -591,18 +570,17 @@
       
  8270  
       
  8271  class Operation(Model):
       
  8272  	"Base class for variant operations"
       
  8273 +	__slots__ = 'type'
       
  8274  	def __init__(self):
       
  8275  		Model.__init__(self)	# base class constructor
       
  8276  		self.type = None
       
  8277  
       
  8278 -
       
  8279  	def Apply(self, oldValue):
       
  8280  		pass
       
  8281  
       
  8282  
       
  8283  class Append(Operation):
       
  8284 -	__slots__ = ('name','value','separator','owner')
       
  8285 -
       
  8286 +	__slots__ = ('name', 'value', 'separator')
       
  8287  	def __init__(self, name = None, value = None, separator = " "):
       
  8288  		Operation.__init__(self)	# base class constructor
       
  8289  		self.name = name
       
  8290 @@ -610,9 +588,9 @@
       
  8291  		self.separator = separator
       
  8292  
       
  8293  
       
  8294 -	def DebugPrint(self, prefix = ""):
       
  8295 +	def __str__(self):
       
  8296  		attributes = "name='" + self.name + "' value='" + self.value + "' separator='" + self.separator + "'"
       
  8297 -		self.owner.Debug("%s<append %s/>", prefix, attributes)
       
  8298 +		return "<append %s/>" % attributes
       
  8299  
       
  8300  
       
  8301  	def Apply(self, oldValue):
       
  8302 @@ -641,6 +619,7 @@
       
  8303  
       
  8304  
       
  8305  class Prepend(Operation):
       
  8306 +	__slots__ = ('name', 'value', 'separator')
       
  8307  	def __init__(self, name = None, value = None, separator = " "):
       
  8308  		Operation.__init__(self)	# base class constructor
       
  8309  		self.name = name
       
  8310 @@ -648,9 +627,9 @@
       
  8311  		self.separator = separator
       
  8312  
       
  8313  
       
  8314 -	def DebugPrint(self, prefix = ""):
       
  8315 +	def __str__(self, prefix = ""):
       
  8316  		attributes = "name='" + self.name + "' value='" + self.value + "' separator='" + self.separator + "'"
       
  8317 -		self.owner.Debug("%s<prepend %s/>", prefix, attributes)
       
  8318 +		return "<prepend %s/>" % prefix
       
  8319  
       
  8320  
       
  8321  	def Apply(self, oldValue):
       
  8322 @@ -679,8 +658,8 @@
       
  8323  
       
  8324  
       
  8325  class Set(Operation):
       
  8326 +	__slots__ = ('name', 'value', 'type', 'versionCommand', 'versionResult')
       
  8327  	"""implementation of <set> operation"""
       
  8328 -	__slots__ = ('name','value', 'type', 'versionCommand', 'versionResult', 'owner')
       
  8329  
       
  8330  	def __init__(self, name = None, value = "", type = ""):
       
  8331  		Operation.__init__(self)	# base class constructor
       
  8332 @@ -691,12 +670,12 @@
       
  8333  		self.versionResult = ""
       
  8334  
       
  8335  
       
  8336 -	def DebugPrint(self, prefix = ""):
       
  8337 +	def __str__(self):
       
  8338  		attributes = "name='" + self.name + "' value='" + self.value + "' type='" + self.type + "'"
       
  8339  		if type == "tool":
       
  8340  			attributes += " versionCommand='" + self.versionCommand + "' versionResult='" + self.versionResult
       
  8341  
       
  8342 -		self.owner.Debug("%s<set %s/>", prefix, attributes)
       
  8343 +		return "<set %s/>" % attributes
       
  8344  
       
  8345  
       
  8346  	def Apply(self, oldValue):
       
  8347 @@ -724,6 +703,8 @@
       
  8348  	def Valid(self):
       
  8349  		return (self.name != None and self.value != None)
       
  8350  
       
  8351 +class BadToolValue(Exception):
       
  8352 +	pass
       
  8353  
       
  8354  class Env(Set):
       
  8355  	"""implementation of <env> operator"""
       
  8356 @@ -733,36 +714,54 @@
       
  8357  		self.default = default
       
  8358  
       
  8359  
       
  8360 -	def DebugPrint(self, prefix = ""):
       
  8361 +	def __str__(self):
       
  8362  		attributes = "name='" + self.name + "' type='" + self.type + "'"
       
  8363 -		if default != None:
       
  8364 +		if self.default != None:
       
  8365  			attributes += " default='" + self.default + "'"
       
  8366  
       
  8367  		if type == "tool":
       
  8368  			attributes += " versionCommand='" + self.versionCommand + "' versionResult='" + self.versionResult + "'"
       
  8369  
       
  8370 -		self.owner.Debug("%s<env %s/>", prefix, attributes)
       
  8371 +		return "<env %s/>" % attributes
       
  8372  
       
  8373  
       
  8374  	def Apply(self, oldValue):
       
  8375  		try:
       
  8376  			value = os.environ[self.name]
       
  8377  
       
  8378 -			# if this value is a "path" or a "tool" then we need to make sure
       
  8379 +			if value:
       
  8380 +				if self.type in ["path", "tool", "toolchainpath"]:
       
  8381 +					# if this value is some sort of path or tool then we need to make sure
       
  8382  			# it is a proper absolute path in our preferred format.
       
  8383 -			if value and (self.type == "path" or self.type == "tool"):
       
  8384  				try:
       
  8385  					path = generic_path.Path(value)
       
  8386  					value = str(path.Absolute())
       
  8387  				except ValueError,e:
       
  8388 -					self.owner.Error("the environment variable %s is incorrect: %s" % (self.name, str(e)))
       
  8389 -					return "NO_VALUE_FOR_" + self.name
       
  8390 +						raise BadToolValue("the environment variable %s is incorrect: %s" % (self.name, str(e)))
       
  8391 +					
       
  8392 +					if self.type in ["tool", "toolchainpath"]:
       
  8393 +						# if  we're dealing with tool-related values, then make sure that we can get "safe"
       
  8394 +						# versions if they contain spaces - if we can't, that's an error, as they won't
       
  8395 +						# survive full usage in the toolcheck or when used and/or referenced in FLMs						
       
  8396 +						if ' ' in value:
       
  8397 +							path = generic_path.Path(value)
       
  8398 +							spaceSafeValue = path.GetSpaceSafePath()
       
  8399 +						
       
  8400 +							if not spaceSafeValue:
       
  8401 +								raise BadToolValue("the environment variable %s is incorrect - it is a '%s' type but contains spaces that cannot be neutralised: %s" % (self.name, self.type, value))
       
  8402 +							
       
  8403 +							value = spaceSafeValue	
       
  8404 +				elif value.endswith('\\'):
       
  8405 +					# if this value ends in an un-escaped backslash, then it will be treated as a line continuation character
       
  8406 +					# in makefile parsing - un-escaped backslashes at the end of values are therefore escaped					
       
  8407 +					count = len(value) - len(value.rstrip('\\'))	# an odd number of backslashes means there's one to escape
       
  8408 +					if count % 2:
       
  8409 +						value += '\\'	
       
  8410  		except KeyError:
       
  8411  			if self.default != None:
       
  8412  				value = self.default
       
  8413  			else:
       
  8414 -				self.owner.Error("%s is not set in the environment and has no default", self.name)
       
  8415 -				return "NO_VALUE_FOR_" + self.name
       
  8416 +				raise BadToolValue("%s is not set in the environment and has no default" % self.name)
       
  8417  
       
  8418  		return value
       
  8419  
       
  8420 @@ -791,7 +790,7 @@
       
  8421  		self.operations = []
       
  8422  		self.variantKey = ""
       
  8423  
       
  8424 -	def GetOperations(self):
       
  8425 +	def GetOperations(self, cache):
       
  8426  		"""Return all operations related to this BuildUnit.
       
  8427  		
       
  8428  		The result is cached, and so will only be computed once per BuildUnit.
       
  8429 @@ -800,7 +799,7 @@
       
  8430  		if self.variantKey != key:
       
  8431  			self.variantKey = key
       
  8432  			for v in self.variants:
       
  8433 -				self.operations.extend( v.GetAllOperationsRecursively() )
       
  8434 +				self.operations.extend( v.GetAllOperationsRecursively(cache=cache) )
       
  8435  
       
  8436  		return self.operations
       
  8437  
       
  8438 @@ -820,7 +819,7 @@
       
  8439  	def ClearModifiers(self):
       
  8440  		self.modifiers = []
       
  8441  
       
  8442 -	def GenerateBuildUnits(self):
       
  8443 +	def GenerateBuildUnits(self,cache):
       
  8444  		"""Returns a list of BuildUnits.
       
  8445  
       
  8446  		This function must be overridden by derived classes.
       
  8447 @@ -830,6 +829,8 @@
       
  8448  
       
  8449  class Variant(Model, Config):
       
  8450  
       
  8451 +	__slots__ = ('cache','name','host','extends','ops','variantRefs','allOperations')
       
  8452 +
       
  8453  	def __init__(self, name = ""):
       
  8454  		Model.__init__(self)
       
  8455  		Config.__init__(self)
       
  8456 @@ -868,20 +869,10 @@
       
  8457  	def Valid(self):
       
  8458  		return self.name
       
  8459  
       
  8460 -	def SetOwner(self, aRaptor):
       
  8461 -
       
  8462 -		Model.SetOwner(self, aRaptor)
       
  8463 -
       
  8464 -		for r in self.variantRefs:
       
  8465 -			r.SetOwner(aRaptor)
       
  8466 -
       
  8467 -		for op in self.ops:
       
  8468 -			op.SetOwner(aRaptor)
       
  8469 -
       
  8470  	def AddOperation(self, op):
       
  8471  		self.ops.append(op)
       
  8472  
       
  8473 -	def GetAllOperationsRecursively(self):
       
  8474 +	def GetAllOperationsRecursively(self, cache):
       
  8475  		"""Returns a list of all operations in this variant.
       
  8476  
       
  8477  		The list elements are themselves lists; the overall structure of the
       
  8478 @@ -892,16 +883,16 @@
       
  8479  
       
  8480  		if not self.allOperations:
       
  8481  			if self.extends:
       
  8482 -				parent = self.owner.cache.FindNamedVariant(self.extends)
       
  8483 -				self.allOperations.extend( parent.GetAllOperationsRecursively() )
       
  8484 +				parent = cache.FindNamedVariant(self.extends)
       
  8485 +				self.allOperations.extend( parent.GetAllOperationsRecursively(cache = cache) )
       
  8486  			for r in self.variantRefs:
       
  8487 -				for v in [ r.Resolve() ] + r.GetModifiers():
       
  8488 -					self.allOperations.extend( v.GetAllOperationsRecursively() )
       
  8489 +				for v in [ r.Resolve(cache = cache) ] + r.GetModifiers(cache = cache):
       
  8490 +					self.allOperations.extend( v.GetAllOperationsRecursively(cache = cache) )
       
  8491  			self.allOperations.append(self.ops)
       
  8492  
       
  8493  		return self.allOperations
       
  8494  
       
  8495 -	def GenerateBuildUnits(self):
       
  8496 +	def GenerateBuildUnits(self,cache):
       
  8497  
       
  8498  		name = self.name
       
  8499  		vars = [self]
       
  8500 @@ -909,32 +900,46 @@
       
  8501  		for m in self.modifiers:
       
  8502  			name = name + "." + m.name
       
  8503  			vars.append(m)
       
  8504 +		return [ BuildUnit(name=name, variants=vars) ]
       
  8505  
       
  8506 -		return [ BuildUnit(name, vars) ]
       
  8507 -
       
  8508 -	def DebugPrint(self, prefix = ""):
       
  8509 +	def isDerivedFrom(self, progenitor, cache):
       
  8510 +		if self.name == progenitor:
       
  8511 +			return True
       
  8512  
       
  8513 -		self.owner.Debug("%s<var name='%s' extends='%s'>", prefix, self.name, self.extends)
       
  8514 -		for op in self.ops:
       
  8515 -			op.DebugPrint(prefix + self.indent)
       
  8516 +		pname = self.extends
       
  8517 +		while pname is not None and pname is not '':
       
  8518 +			parent = cache.FindNamedVariant(pname)
       
  8519 +			if parent is None:
       
  8520 +				break
       
  8521 +			if parent.name == progenitor:
       
  8522 +				return True
       
  8523 +			pname = parent.extends
       
  8524  
       
  8525 -		self.owner.Debug("%s</var>", prefix)
       
  8526 +		return False
       
  8527  
       
  8528 +	def __str__(self):
       
  8529 +		s = "<var name='%s' extends='%s'>\n" % (self.name, self.extends)
       
  8530 +		for op in self.ops:
       
  8531 +			s +=  str(op) + '\n'
       
  8532 +		s += "</var>"
       
  8533 +		return s
       
  8534  
       
  8535  class VariantRef(Reference):
       
  8536  
       
  8537  	def __init__(self, ref=None):
       
  8538 -		Reference.__init__(self, ref)
       
  8539 +		Reference.__init__(self, ref = ref)
       
  8540  
       
  8541 -	def DebugPrint(self, prefix = ""):
       
  8542 -		self.owner.Debug("%s<varRef ref='%s'/>", prefix, self.ref)
       
  8543 +	def __str__(self):
       
  8544 +		return "<varRef ref='%s'/>" % self.ref
       
  8545  
       
  8546 -	def Resolve(self):
       
  8547 +	def Resolve(self, cache):
       
  8548  		try:
       
  8549 -			return self.owner.cache.FindNamedVariant(self.ref)
       
  8550 +			return cache.FindNamedVariant(self.ref)
       
  8551  		except KeyError:
       
  8552  			raise BadReferenceError(self.ref)
       
  8553  
       
  8554 +class MissingVariantException(Exception):
       
  8555 +	pass
       
  8556  
       
  8557  class Alias(Model, Config):
       
  8558  
       
  8559 @@ -946,8 +951,8 @@
       
  8560  		self.varRefs = []
       
  8561  		self.variants = []
       
  8562  
       
  8563 -	def DebugPrint(self, prefix = ""):
       
  8564 -		self.owner.Debug("%s<alias name='%s' meaning='%s'/>", prefix, self.name, self.meaning)
       
  8565 +	def __str__(self):
       
  8566 +		return "<alias name='%s' meaning='%s'/>" % (self.name, self.meaning)
       
  8567  
       
  8568  	def SetProperty(self, key, val):
       
  8569  		if key == "name":
       
  8570 @@ -956,45 +961,53 @@
       
  8571  			self.meaning = val
       
  8572  
       
  8573  			for u in val.split("."):
       
  8574 -				self.varRefs.append( VariantRef(u) )
       
  8575 +				self.varRefs.append( VariantRef(ref = u) )
       
  8576  		else:
       
  8577  			raise InvalidPropertyError()
       
  8578  
       
  8579 -	def SetOwner(self, raptor):
       
  8580 -		Model.SetOwner(self, raptor)
       
  8581 -		for r in self.varRefs:
       
  8582 -			r.SetOwner(raptor)
       
  8583 -
       
  8584  	def Valid(self):
       
  8585  		return self.name and self.meaning
       
  8586  
       
  8587 -	def GenerateBuildUnits(self):
       
  8588 +	def Resolve(self, cache):
       
  8589  		if not self.variants:
       
  8590 +			missing_variants = []
       
  8591  			for r in self.varRefs:
       
  8592  				try:
       
  8593 -					self.variants.append( r.Resolve() )
       
  8594 +					self.variants.append( r.Resolve(cache=cache) )
       
  8595  				except BadReferenceError:
       
  8596 -					self.owner.Error("Missing variant '%s'", r.ref)
       
  8597 +					missing_variants.append(r.ref)
       
  8598 +				
       
  8599 +			if len(missing_variants) > 0:
       
  8600 +				raise MissingVariantException("Missing variants '%s'" % " ".join(missing_variants))
       
  8601 +
       
  8602 +	def GenerateBuildUnits(self, cache):
       
  8603 +		self.Resolve(cache)
       
  8604  
       
  8605  		name = self.name
       
  8606  
       
  8607  		for v in self.modifiers:
       
  8608  			name = name + "." + v.name
       
  8609  
       
  8610 -		return [ BuildUnit(name, self.variants + self.modifiers) ]
       
  8611 +		return [ BuildUnit(name=name, variants=self.variants + self.modifiers) ]
       
  8612  
       
  8613 +	def isDerivedFrom(self, progenitor, cache):
       
  8614 +		self.Resolve(cache)
       
  8615 +		for v in self.variants:
       
  8616 +			if v.isDerivedFrom(progenitor,cache):
       
  8617 +				return True
       
  8618 +		return False
       
  8619  
       
  8620  class AliasRef(Reference):
       
  8621  
       
  8622  	def __init__(self, ref=None):
       
  8623  		Reference.__init__(self, ref)
       
  8624  
       
  8625 -	def DebugPrint(self, prefix = ""):
       
  8626 -		self.owner.Debug("%s<aliasRef ref='%s'/>", prefix, self.ref)
       
  8627 +	def __str__(self):
       
  8628 +		return "<aliasRef ref='%s'/>" % self.ref
       
  8629  
       
  8630 -	def Resolve(self):
       
  8631 +	def Resolve(self, cache):
       
  8632  		try:
       
  8633 -			return self.owner.cache.FindNamedAlias(self.ref)
       
  8634 +			return cache.FindNamedAlias(self.ref)
       
  8635  		except KeyError:
       
  8636  			raise BadReferenceError(self.ref)
       
  8637  
       
  8638 @@ -1018,41 +1031,39 @@
       
  8639  		else:
       
  8640  			raise InvalidChildError()
       
  8641  
       
  8642 -	def SetOwner(self, raptor):
       
  8643 -		Model.SetOwner(self, raptor)
       
  8644 -		for r in self.childRefs:
       
  8645 -			r.SetOwner(raptor)
       
  8646 -
       
  8647  	def Valid(self):
       
  8648  		return self.name and self.childRefs
       
  8649  
       
  8650 -	def DebugPrint(self, prefix = ""):
       
  8651 -
       
  8652 -		self.owner.Debug("<group name='%s'>", prefix, self.name)
       
  8653 -
       
  8654 +	def __str__(self):
       
  8655 +		s = "<group name='%s'>" % self.name
       
  8656  		for r in self.childRefs:
       
  8657 -			r.DebugPrint(prefix + self.indent)
       
  8658 -
       
  8659 -		self.owner.Debug("%s</group>", prefix)
       
  8660 -
       
  8661 -	def GenerateBuildUnits(self):
       
  8662 +			s += str(r)
       
  8663 +		s += "</group>"
       
  8664 +		return s
       
  8665  
       
  8666 +	def GenerateBuildUnits(self, cache):
       
  8667  		units = []
       
  8668  
       
  8669 +		missing_variants = []
       
  8670  		for r in self.childRefs:
       
  8671 -			refMods = r.GetModifiers()
       
  8672 -
       
  8673  			try:
       
  8674 -				obj = r.Resolve()
       
  8675 +				obj = r.Resolve(cache=cache)
       
  8676  			except BadReferenceError:
       
  8677 -				self.owner.Error("Missing variant '%s'", r.ref)
       
  8678 +				missing_variants.append(r.ref)
       
  8679  			else:
       
  8680  				obj.ClearModifiers()
       
  8681 -
       
  8682 +				try:
       
  8683 +					refMods = r.GetModifiers(cache)
       
  8684 +				except BadReferenceError,e:
       
  8685 +					missing_variants.append(str(e))
       
  8686 +				else:
       
  8687  				for m in refMods + self.modifiers:
       
  8688  					obj.AddModifier(m)
       
  8689  
       
  8690 -				units.extend( obj.GenerateBuildUnits() )
       
  8691 +					units.extend( obj.GenerateBuildUnits(cache) )
       
  8692 +
       
  8693 +		if len(missing_variants) > 0:
       
  8694 +			raise MissingVariantException("Missing variants '%s'" % " ".join(missing_variants))
       
  8695  
       
  8696  		return units
       
  8697  
       
  8698 @@ -1062,19 +1073,102 @@
       
  8699  	def __init__(self, ref=None):
       
  8700  		Reference.__init__(self, ref)
       
  8701  
       
  8702 -	def DebugPrint(self, prefix = ""):
       
  8703 -		mod = ".".join(self.modifiers)
       
  8704 -		self.owner.Debug("%s<groupRef ref='%s' mod='%s'/>", prefix, self.ref, mod)
       
  8705 +	def __str__(self):
       
  8706 +		return "<groupRef ref='%s' mod='%s'/>" % (self.ref, ".".join(self.modifiers))
       
  8707  
       
  8708 -	def Resolve(self):
       
  8709 +	def Resolve(self, cache):
       
  8710  		try:
       
  8711 -			return self.owner.cache.FindNamedGroup(self.ref)
       
  8712 +			return cache.FindNamedGroup(self.ref)
       
  8713  		except KeyError:
       
  8714  			raise BadReferenceError(self.ref)
       
  8715  
       
  8716 +def GetBuildUnits(configNames, cache, logger):
       
  8717 +	"""expand a list of config strings like "arm.v5.urel" into a list
       
  8718 +	of BuildUnit objects that can be queried for settings.
       
  8719 +	
       
  8720 +	The expansion tries to be tolerant of errors in the XML so that a
       
  8721 +	typo in one part of a group does not invalidate the whole group.
       
  8722 +	"""
       
  8723 +	
       
  8724 +	# turn dot-separated name strings into Model objects (Group, Alias, Variant)
       
  8725 +	models = []
       
  8726 +		
       
  8727 +	for c in set(configNames):
       
  8728 +		ok = True
       
  8729 +		names = c.split(".")
       
  8730 +
       
  8731 +		base = names[0]
       
  8732 +		mods = names[1:]
       
  8733 +
       
  8734 +		if base in cache.groups:
       
  8735 +			x = cache.FindNamedGroup(base)
       
  8736 +		elif base in cache.aliases:
       
  8737 +			x = cache.FindNamedAlias(base)
       
  8738 +		elif base in cache.variants:
       
  8739 +			x = cache.FindNamedVariant(base)
       
  8740 +		else:
       
  8741 +			logger.Error("Unknown build configuration '%s'" % base)
       
  8742 +			continue
       
  8743 +
       
  8744 +		x.ClearModifiers()
       
  8745 +
       
  8746 +		for m in mods:
       
  8747 +			if m in cache.variants:
       
  8748 +				x.AddModifier( cache.FindNamedVariant(m) )
       
  8749 +			else:
       
  8750 +				logger.Error("Unknown build variant '%s'" % m)
       
  8751 +				ok = False
       
  8752 +				
       
  8753 +		if ok:
       
  8754 +			models.append(copy.copy(x))
       
  8755 +
       
  8756 +	# turn Model objects into BuildUnit objects
       
  8757 +	#
       
  8758 +	# all objects have a GenerateBuildUnits method but don't use
       
  8759 +	# that for Groups because it is not tolerant of errors (the
       
  8760 +	# first error raises an exception and the rest of the group is
       
  8761 +	# abandoned)
       
  8762 +	units = []
       
  8763 +		
       
  8764 +	while len(models) > 0:
       
  8765 +		x = models.pop()
       
  8766 +		try:
       
  8767 +			if isinstance(x, (Alias, Variant)):
       
  8768 +				# these we just turn straight into BuildUnits
       
  8769 +				units.extend(x.GenerateBuildUnits(cache))
       
  8770 +			elif isinstance(x, Group):
       
  8771 +				# deal with each part of the group separately (later)
       
  8772 +				for child in x.childRefs:
       
  8773 +					modChild = copy.copy(child)
       
  8774 +					modChild.modifiers = child.modifiers + [m.name for m in x.modifiers]
       
  8775 +					models.append(modChild)
       
  8776 +			elif isinstance(x, Reference):
       
  8777 +				# resolve references and their modifiers
       
  8778 +				try:
       
  8779 +					obj = x.Resolve(cache)
       
  8780 +					modObj = copy.copy(obj)
       
  8781 +					modObj.modifiers = x.GetModifiers(cache)
       
  8782 +				except BadReferenceError,e:
       
  8783 +					logger.Error("Unknown reference '%s'" % str(e))
       
  8784 +				else:
       
  8785 +					models.append(modObj)
       
  8786 +		except Exception, e:
       
  8787 +			logger.Error(str(e))
       
  8788 +
       
  8789 +	return units
       
  8790 +	
       
  8791 +class ToolErrorException(Exception):
       
  8792 +	def __init__(self, s):
       
  8793 +		Exception.__init__(self,s)
       
  8794 +
       
  8795  class Tool(object):
       
  8796  	"""Represents a tool that might be used by raptor e.g. a compiler"""
       
  8797  
       
  8798 +	# It's difficult and expensive to give each tool a log reference but a class one
       
  8799 +	# will facilitate debugging when that is needed without being a design flaw the
       
  8800 +	# rest of the time.
       
  8801 +	log = raptor_utilities.nulllog
       
  8802 +
       
  8803  	# For use in dealing with tools that return non-ascii version strings.
       
  8804  	nonascii = ""
       
  8805  	identity_chartable = chr(0)
       
  8806 @@ -1084,7 +1178,7 @@
       
  8807  		nonascii += chr(c)
       
  8808  		identity_chartable += " "
       
  8809  
       
  8810 -	def __init__(self, name, command, versioncommand, versionresult, id="", log = raptor_utilities.nulllog):
       
  8811 +	def __init__(self, name, command, versioncommand, versionresult, id=""):
       
  8812  		self.name = name
       
  8813  		self.command = command
       
  8814  		self.versioncommand = versioncommand
       
  8815 @@ -1097,7 +1191,6 @@
       
  8816  		# version until someone proves that it's OK
       
  8817  		self.valid = False
       
  8818  
       
  8819 -		self.log=log
       
  8820  
       
  8821  	def expand(self, toolset):
       
  8822  		self.versioncommand = toolset.ExpandAll(self.versioncommand)
       
  8823 @@ -1117,7 +1210,7 @@
       
  8824  				# If it really is not a simple command then we won't be able to get a date and
       
  8825  				# we won't be able to tell if it is altered or updated - too bad!
       
  8826  				testfile = generic_path.Where(self.command)
       
  8827 -				self.log.Debug("toolcheck: tool '%s' was found on the path at '%s' ", self.command, testfile)
       
  8828 +				#self.log.Debug("toolcheck: tool '%s' was found on the path at '%s' ", self.command, testfile)
       
  8829  				if testfile is None:
       
  8830  					raise Exception("Can't be found in path")
       
  8831  
       
  8832 @@ -1127,18 +1220,20 @@
       
  8833  			testfile_stat = os.stat(testfile)
       
  8834  			self.date = testfile_stat.st_mtime
       
  8835  		except Exception,e:
       
  8836 -			self.log.Debug("toolcheck: '%s=%s' cannot be dated - this is ok, but the toolcheck won't be able to tell when a new  of the tool is installed. (%s)", self.name, self.command, str(e))
       
  8837 +			# We really don't mind if the tool could not be dated - for any reason
       
  8838 +			Tool.log.Debug("toolcheck: '%s=%s' cannot be dated - this is ok, but the toolcheck won't be able to tell when a new version of the tool is installed. (%s)", self.name, self.command, str(e))
       
  8839 +			pass
       
  8840  	
       
  8841  			
       
  8842 -	def check(self, shell, evaluator):
       
  8843 +	def check(self, shell, evaluator, log = raptor_utilities.nulllog):
       
  8844  
       
  8845  		self.vre = re.compile(self.versionresult)
       
  8846  
       
  8847  		try:
       
  8848  			self.log.Debug("Pre toolcheck: '%s' for version '%s'", self.name, self.versionresult)
       
  8849  			p = subprocess.Popen(args=[shell, "-c", self.versioncommand], stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
       
  8850 +			log.Debug("Checking tool '%s' for version '%s'", self.name, self.versionresult)
       
  8851  			versionoutput,err = p.communicate()
       
  8852 -			self.log.Debug("Checking tool '%s' for version '%s'", self.name, self.versionresult)
       
  8853  		except Exception,e:
       
  8854  			versionoutput=None
       
  8855  
       
  8856 @@ -1148,12 +1243,11 @@
       
  8857  		versionoutput_a = versionoutput.translate(Tool.identity_chartable,"")
       
  8858  
       
  8859  		if versionoutput_a and self.vre.search(versionoutput_a) != None:
       
  8860 -			self.log.Debug("tool '%s' returned an acceptable version '%s' at %s", self.name, versionoutput_a, str(self.date))
       
  8861 +			log.Debug("tool '%s' returned an acceptable version '%s'", self.name, versionoutput_a)
       
  8862  			self.valid = True
       
  8863  		else:
       
  8864 -			self.log.Error("tool '%s' from config '%s' did not return version '%s' as required.\nCommand '%s' returned:\n%s\nCheck your environment and configuration.\n", self.name, self.id, self.versionresult, self.versioncommand, versionoutput_a)
       
  8865  			self.valid = False
       
  8866 -		return self.valid
       
  8867 +			raise ToolErrorException("tool '%s' from config '%s' did not return version '%s' as required.\nCommand '%s' returned:\n%s\nCheck your environment and configuration.\n" % (self.name, self.id, self.versionresult, self.versioncommand, versionoutput_a))
       
  8868  
       
  8869  def envhash(irrelevant_vars):
       
  8870  	"""Determine something unique about this environment to identify it.
       
  8871 @@ -1175,6 +1269,9 @@
       
  8872  	write() is used to flush the cache to disc.
       
  8873  	"""
       
  8874  	# The raptor shell - this is not mutable.
       
  8875 +	if 'SBS_SHELL' in os.environ:
       
  8876 +		shell = os.environ['SBS_SHELL']
       
  8877 +	else:
       
  8878  	hostbinaries = os.path.join(os.environ['SBS_HOME'], 
       
  8879  	                            os.environ['HOSTPLATFORM_DIR'])
       
  8880  	                            
       
  8881 @@ -1256,7 +1353,6 @@
       
  8882  								log.Info("Ignoring garbled toolcheck cache: %s (%s)\n", self.cachefilename, str(e))
       
  8883  								self.__toolcheckcache = {}
       
  8884  								
       
  8885 -									
       
  8886  						else:
       
  8887  							log.Info("Toolcheck cache %s ignored - environment changed\n", self.cachefilename)
       
  8888  					else:
       
  8889 @@ -1316,8 +1412,11 @@
       
  8890  
       
  8891  			self.log.Debug("toolcheck done: %s -key: %s" % (tool.name, tool.key))
       
  8892  
       
  8893 -			if not tool.check(ToolSet.shell, evaluator):
       
  8894 +			try:
       
  8895 +				tool.check(ToolSet.shell, evaluator, log = self.log)
       
  8896 +			except ToolErrorException, e:
       
  8897  				self.valid = False
       
  8898 +				self.log.Error("%s\n" % str(e))
       
  8899  
       
  8900  			# Tool failures are cached just like successes - don't want to repeat them
       
  8901  			cache[tool.key] =  { "name" : tool.name, "valid" : tool.valid, "age" : 0 , "date" : tool.date }
       
  8902 @@ -1356,6 +1455,11 @@
       
  8903  				self.log.Info("Could not write toolcheck cache: %s", str(e))
       
  8904  		return self.valid
       
  8905  
       
  8906 +class UninitialisedVariableException(Exception):
       
  8907 +	pass
       
  8908 +
       
  8909 +class RecursionException(Exception):
       
  8910 +	pass
       
  8911  
       
  8912  class Evaluator(object):
       
  8913  	"""Determine the values of variables under different Configurations.
       
  8914 @@ -1364,11 +1468,11 @@
       
  8915  
       
  8916  	refRegex = re.compile("\$\((.+?)\)")
       
  8917  
       
  8918 -	def __init__(self, Raptor, specification, buildUnit, gathertools = False):
       
  8919 -		self.raptor = Raptor
       
  8920 +	def __init__(self, specification, buildUnit, cache, gathertools = False):
       
  8921  		self.dict = {}
       
  8922  		self.tools = []
       
  8923  		self.gathertools = gathertools
       
  8924 +		self.cache = cache
       
  8925  
       
  8926  		specName = "none"
       
  8927  		configName = "none"
       
  8928 @@ -1377,14 +1481,18 @@
       
  8929  		opsLists = []
       
  8930  
       
  8931  		if buildUnit:
       
  8932 -			opsLists.extend( buildUnit.GetOperations() )
       
  8933 +			ol = buildUnit.GetOperations(cache)
       
  8934 +			self.buildUnit = buildUnit
       
  8935 +			
       
  8936 +			opsLists.extend( ol )
       
  8937  
       
  8938  		if specification:
       
  8939 -			for v in specification.GetAllVariantsRecursively():
       
  8940 -				opsLists.extend( v.GetAllOperationsRecursively() )
       
  8941 +			for v in specification.GetAllVariantsRecursively(cache):
       
  8942 +				opsLists.extend( v.GetAllOperationsRecursively(cache) )
       
  8943  
       
  8944  		tools = {}
       
  8945  
       
  8946 +		unfound_values = []
       
  8947  		for opsList in opsLists:
       
  8948  			for op in opsList:
       
  8949  				# applying an Operation to a non-existent variable
       
  8950 @@ -1394,13 +1502,20 @@
       
  8951  				except KeyError:
       
  8952  					oldValue = ""
       
  8953  
       
  8954 +				try:
       
  8955  				newValue = op.Apply(oldValue)
       
  8956 +				except BadToolValue, e:
       
  8957 +					unfound_values.append(str(e))
       
  8958 +					newValue = "NO_VALUE_FOR_" + op.name
       
  8959 +					
       
  8960  				self.dict[op.name] = newValue
       
  8961  			
       
  8962  				if self.gathertools:
       
  8963  					if op.type == "tool" and op.versionCommand and op.versionResult:
       
  8964 -						tools[op.name] = Tool(op.name, newValue, op.versionCommand, op.versionResult, configName, log = self.raptor)
       
  8965 +						tools[op.name] = Tool(op.name, newValue, op.versionCommand, op.versionResult, configName)
       
  8966  
       
  8967 +		if len(unfound_values) > 0:
       
  8968 +			raise UninitialisedVariableException("\n".join(unfound_values))
       
  8969  
       
  8970  		if self.gathertools:
       
  8971  			self.tools = tools.values()
       
  8972 @@ -1417,8 +1532,7 @@
       
  8973  			unresolved = False
       
  8974  			for k, v in self.dict.items():
       
  8975  				if v.find('$(' + k + ')') != -1:
       
  8976 -					self.raptor.Error("Recursion Detected in variable '%s' in configuration '%s' ",k,configName)
       
  8977 -					expanded = "RECURSIVE_INVALID_STRING"
       
  8978 +						raise RecursionException("Recursion Detected in variable '%s' in configuration '%s' " % (k,configName))
       
  8979  				else:
       
  8980  					expanded = self.ExpandAll(v, specName, configName)
       
  8981  
       
  8982 @@ -1466,20 +1580,24 @@
       
  8983  
       
  8984  		refs = Evaluator.refRegex.findall(value)
       
  8985  
       
  8986 +		# store up all the unset variables before raising an exception
       
  8987 +		# to allow us to find them all
       
  8988 +		unset_variables = [] 
       
  8989 +
       
  8990  		for r in set(refs):
       
  8991  			expansion = None
       
  8992  
       
  8993 -			if r in self.raptor.override:
       
  8994 -				expansion = self.raptor.override[r]
       
  8995 -			elif r in self.dict:
       
  8996 +			if r in self.dict:
       
  8997  				expansion = self.dict[r]
       
  8998  			else:
       
  8999  				# no expansion for $(r)
       
  9000 -				self.raptor.Error("Unset variable '%s' used in spec '%s' with config '%s'",
       
  9001 -							  	  r, spec, config)
       
  9002 +				unset_variables.append("Unset variable '%s' used in spec '%s' with config '%s'" % (r, spec, config))
       
  9003  			if expansion != None:
       
  9004  				value = value.replace("$(" + r + ")", expansion)
       
  9005  
       
  9006 +		if len(unset_variables) > 0: # raise them all
       
  9007 +			raise UninitialisedVariableException(". ".join(unset_variables))
       
  9008 +
       
  9009  		return value
       
  9010  
       
  9011  
       
  9012 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/python/raptor_makefile.py /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/python/raptor_makefile.py
       
  9013 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/python/raptor_makefile.py	2010-05-18 19:32:34.793348934 +0100
       
  9014 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/python/raptor_makefile.py	2010-05-17 18:47:53.096843000 +0100
       
  9015 @@ -134,6 +134,15 @@
       
  9016  
       
  9017  		return True
       
  9018  
       
  9019 +	def addInclude(self, makefilename):
       
  9020 +		"""
       
  9021 +		"""
       
  9022 +		# create the directory if it does not exist
       
  9023 +
       
  9024 +		self.open()
       
  9025 +		# now we can write the values into the makefile
       
  9026 +		self.file.write("include %s\n" % (makefilename+"."+self.selector.name))
       
  9027 +
       
  9028  	def close(self):
       
  9029  		if self.file is not None:
       
  9030  			if self.epilogue != None:
       
  9031 @@ -191,6 +200,11 @@
       
  9032  		for f in self.makefiles:
       
  9033  			f.addCall(specname, configname, ifname, useAllInterfaces, flmpath, parameters, guard)
       
  9034  
       
  9035 +	def addInclude(self, makefilename):
       
  9036 +		"""include a makefile from each of the makefiles in the set - has the selector name appended to it."""
       
  9037 +		for f in self.makefiles:
       
  9038 +			f.addInclude(makefilename)
       
  9039 +
       
  9040  	def makefileNames(self):
       
  9041  		for mf in self.makefiles:
       
  9042  			yield str(mf.filename)
       
  9043 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/python/raptor_make.py /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/python/raptor_make.py
       
  9044 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/python/raptor_make.py	2010-05-18 19:32:34.793348934 +0100
       
  9045 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/python/raptor_make.py	2010-05-17 18:47:53.096843000 +0100
       
  9046 @@ -1,5 +1,5 @@
       
  9047  #
       
  9048 -# Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
       
  9049 +# Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies).
       
  9050  # All rights reserved.
       
  9051  # This component and the accompanying materials are made available
       
  9052  # under the terms of the License "Eclipse Public License v1.0"
       
  9053 @@ -20,27 +20,120 @@
       
  9054  import os
       
  9055  import random
       
  9056  import raptor
       
  9057 -import raptor_data
       
  9058 +import raptor_timing
       
  9059  import raptor_utilities
       
  9060  import raptor_version
       
  9061 +import raptor_data
       
  9062  import re
       
  9063  import subprocess
       
  9064  import time
       
  9065  from raptor_makefile import *
       
  9066 +import traceback
       
  9067 +import sys
       
  9068 +from xml.sax.saxutils import escape
       
  9069 +from xml.sax.saxutils import unescape
       
  9070 +
       
  9071 +
       
  9072 +class BadMakeEngineException(Exception):
       
  9073 +	pass
       
  9074 +
       
  9075 +def string_following(prefix, str):
       
  9076 +	"""If str starts with prefix then return the rest of str, otherwise None"""
       
  9077 +	if str.startswith(prefix):
       
  9078 +		return str[len(prefix):]
       
  9079 +	else:
       
  9080 +		return None
       
  9081 +
       
  9082 +def XMLEscapeLog(stream):
       
  9083 +	""" A generator that reads a raptor log from a stream and performs an XML escape
       
  9084 +	    on all text between tags, which is usually make output that could contain
       
  9085 +	    illegal characters that upset XML-based log parsers.
       
  9086 +	    This function yields "xml-safe" output line by line.
       
  9087 +	"""
       
  9088 +	inRecipe = False
       
  9089 +
       
  9090 +	for line in stream:
       
  9091 +		if line.startswith("<recipe"):
       
  9092 +			inRecipe = True
       
  9093 +		elif line.startswith("</recipe"):
       
  9094 +			inRecipe = False
       
  9095 +			
       
  9096 +		# unless we are inside a "recipe", any line not starting
       
  9097 +		# with "<" is free text that must be escaped.
       
  9098 +		if inRecipe or line.startswith("<"):
       
  9099 +			yield line
       
  9100 +		else:
       
  9101 +			yield escape(line)
       
  9102 +
       
  9103 +def AnnoFileParseOutput(annofile):
       
  9104 +	""" A generator that extracts log output from an emake annotation file, 
       
  9105 +	    perform an XML-unescape on it and "yields" it line by line.  """
       
  9106 +	af = open(annofile, "r")
       
  9107 +
       
  9108 +	inOutput = False
       
  9109 +
       
  9110 +	buildid = ""
       
  9111 +	for line in af:
       
  9112 +		line = line.rstrip("\n\r")
       
  9113 +
       
  9114 +
       
  9115 +		if not inOutput:
       
  9116 +			o = string_following("<output>", line)
       
  9117 +			if not o:
       
  9118 +				o = string_following('<output src="prog">', line)
       
  9119 +
       
  9120 +			if o:
       
  9121 +				inOutput = True	
       
  9122 +				yield unescape(o)+'\n'
       
  9123 +				continue
       
  9124 +
       
  9125 +
       
  9126 +			o = string_following('<build id="',line)
       
  9127 +			if o:
       
  9128 +				buildid = o[:o.find('"')]
       
  9129 +				yield "Starting build: "+buildid+"\n"
       
  9130 +				continue 
       
  9131 +
       
  9132 +			o = string_following('<metric name="duration">', line)
       
  9133 +			if o:
       
  9134 +				secs = int(o[:o.find('<')])
       
  9135 +				if secs != 0:
       
  9136 +					duration = "%d:%d" % (secs/60, secs % 60)
       
  9137 +				else:
       
  9138 +					duration = "0:0"
       
  9139 +				continue 
       
  9140 +
       
  9141 +
       
  9142 +			o = string_following('<metric name="clusterAvailability">', line)
       
  9143 +			if o:
       
  9144 +				availability = o[:o.find('<')]
       
  9145 +				continue 
       
  9146 +				
       
  9147 +		else:
       
  9148 +			end_output = line.find("</output>")
       
  9149 +		
       
  9150 +			if end_output != -1:
       
  9151 +				line = line[:end_output]
       
  9152 +				inOutput = False
       
  9153 +			
       
  9154 +			if line != "":	
       
  9155 +				yield unescape(line)+'\n'
       
  9156 +
       
  9157 +	yield "Finished build: %s   Duration: %s (m:s)   Cluster availability: %s%%\n" %(buildid,duration,availability)
       
  9158 +	af.close()
       
  9159 +
       
  9160 +
       
  9161  
       
  9162  # raptor_make module classes
       
  9163  
       
  9164  class MakeEngine(object):
       
  9165  
       
  9166 -	def __init__(self, Raptor):
       
  9167 +	def __init__(self, Raptor, engine="make_engine"):
       
  9168  		self.raptor = Raptor
       
  9169  		self.valid = True
       
  9170 -		self.makefileset = None
       
  9171  		self.descrambler = None
       
  9172  		self.descrambler_started = False
       
  9173  
       
  9174 -		engine = Raptor.makeEngine
       
  9175 -		
       
  9176  		# look for an alias first as this gives end-users a chance to modify
       
  9177  		# the shipped variant rather than completely replacing it.
       
  9178  		if engine in Raptor.cache.aliases:
       
  9179 @@ -48,12 +141,14 @@
       
  9180  		elif engine in Raptor.cache.variants:
       
  9181  			avar = Raptor.cache.FindNamedVariant(engine)
       
  9182  		else:
       
  9183 -			Raptor.Error("No settings found for build engine '%s'", engine)
       
  9184 -			return
       
  9185 +			raise BadMakeEngineException("'%s' does not appear to be a make engine - no settings found for it" % engine)
       
  9186 +
       
  9187 +		if not avar.isDerivedFrom("make_engine", Raptor.cache):
       
  9188 +			raise BadMakeEngineException("'%s' is not a build engine (it's a variant but it does not extend 'make_engine')" % engine)
       
  9189  					
       
  9190  		# find the variant and extract the values
       
  9191  		try:
       
  9192 -			units = avar.GenerateBuildUnits()
       
  9193 +			units = avar.GenerateBuildUnits(Raptor.cache)
       
  9194  			evaluator = Raptor.GetEvaluator( None, units[0] , gathertools=True)
       
  9195  
       
  9196  			# shell
       
  9197 @@ -75,6 +170,25 @@
       
  9198  			self.jobsOption = evaluator.Get("jobs")
       
  9199  			self.defaultMakeOptions = evaluator.Get("defaultoptions")
       
  9200  
       
  9201 +			# Logging
       
  9202 +			#  copylogfromannofile means, for emake, that we should ignore 
       
  9203 +			# emake's console output and instead extract output from its annotation
       
  9204 +			# file.  This is a workaround for a problem where some emake
       
  9205 +			# console output is lost.  The annotation file has a copy of this
       
  9206 +			# output in the "parse" job and it turns out to be uncorrupted.
       
  9207 +			self.copyLogFromAnnoFile = (evaluator.Get("copylogfromannofile") == "true")
       
  9208 +			self.annoFileName = None
       
  9209 +
       
  9210 +			if self.copyLogFromAnnoFile:
       
  9211 +				for o in self.raptor.makeOptions:
       
  9212 +					self.annoFileName = string_following("--emake-annofile=", o)
       
  9213 +					if self.annoFileName:
       
  9214 +						self.raptor.Info("annofile: " + o)
       
  9215 +
       
  9216 +				if not self.annoFileName:
       
  9217 +					self.raptor.Info("Cannot copy log from annotation file as no annotation filename was specified via the option --mo=--emake-annofile=<filename>")
       
  9218 +					self.copyLogFromAnnoFile = False
       
  9219 +
       
  9220  			# buffering
       
  9221  			self.scrambled = (evaluator.Get("scrambled") == "true")
       
  9222  
       
  9223 @@ -101,14 +215,13 @@
       
  9224  				self.selectors = []
       
  9225  
       
  9226  		except KeyError:
       
  9227 -			Raptor.Error("Bad '%s' configuration found.", engine)
       
  9228  			self.valid = False
       
  9229 -			return
       
  9230 +			raise BadMakeEngineException("Bad '%s' configuration found." % engine)
       
  9231  
       
  9232  		# there must at least be a build command...
       
  9233  		if not self.buildCommand:
       
  9234 -				Raptor.Error("No build command for '%s'", engine)
       
  9235  				self.valid = False
       
  9236 +			raise BadMakeEngineException("No build command for '%s'"% engine)
       
  9237  
       
  9238  
       
  9239  		if self.usetalon:
       
  9240 @@ -123,7 +236,7 @@
       
  9241   component='$$COMPONENT_NAME'\
       
  9242   bldinf='$$COMPONENT_META' mmp='$$PROJECT_META'\
       
  9243   config='$$SBS_CONFIGURATION' platform='$$PLATFORM'\
       
  9244 - phase='$$MAKEFILE_GROUP' source='$$SOURCE
       
  9245 + phase='$$MAKEFILE_GROUP' source='$$SOURCE'
       
  9246  export TALON_RECIPEATTRIBUTES TALON_SHELL TALON_TIMEOUT
       
  9247  USE_TALON:=%s
       
  9248  
       
  9249 @@ -135,7 +248,21 @@
       
  9250  """
       
  9251  		
       
  9252  
       
  9253 +		timing_start = "$(info " + \
       
  9254 +				raptor_timing.Timing.custom_string(tag = "start",
       
  9255 +				object_type = "makefile", task = "parse",
       
  9256 +				key = "$(THIS_FILENAME)",
       
  9257 +				time="$(shell date +%s.%N)").rstrip("\n") + ")"
       
  9258 +				
       
  9259 +		timing_end = "$(info " + \
       
  9260 +				raptor_timing.Timing.custom_string(tag = "end",
       
  9261 +				object_type = "makefile", task = "parse",
       
  9262 +				key = "$(THIS_FILENAME)",
       
  9263 +				time="$(shell date +%s.%N)").rstrip("\n") + ")"
       
  9264 +
       
  9265 +
       
  9266  		self.makefile_prologue = """
       
  9267 +
       
  9268  # generated by %s %s
       
  9269  
       
  9270  HOSTPLATFORM:=%s
       
  9271 @@ -143,12 +270,13 @@
       
  9272  OSTYPE:=%s
       
  9273  FLMHOME:=%s
       
  9274  SHELL:=%s
       
  9275 +THIS_FILENAME:=$(firstword $(MAKEFILE_LIST))
       
  9276  
       
  9277  %s
       
  9278  
       
  9279  include %s
       
  9280  
       
  9281 -""" 		% (  raptor.name, raptor_version.Version(),
       
  9282 +""" 		% (  raptor.name, raptor_version.fullversion(),
       
  9283  			 " ".join(raptor.hostplatform),
       
  9284  			 raptor.hostplatform_dir,
       
  9285  			 self.raptor.filesystem,
       
  9286 @@ -157,8 +285,32 @@
       
  9287  			 talon_settings,
       
  9288  			 self.raptor.systemFLM.Append('globals.mk') )
       
  9289  
       
  9290 +		# Unless dependency processing has been eschewed via the CLI, use a .DEFAULT target to
       
  9291 +		# trap missing dependencies (ignoring user config files that we know are usually absent)
       
  9292 +		if not (self.raptor.noDependGenerate or self.raptor.noDependInclude):
       
  9293 +			self.makefile_prologue += """
       
  9294 +
       
  9295 +$(FLMHOME)/user/final.mk:
       
  9296 +$(FLMHOME)/user/default.flm:
       
  9297 +$(FLMHOME)/user/globals.mk:
       
  9298 +
       
  9299 +.DEFAULT::
       
  9300 +	@echo "<warning>Missing dependency detected: $@</warning>"
       
  9301  
       
  9302 -		self.makefile_epilogue = """
       
  9303 +"""
       
  9304 +
       
  9305 +		# Only output timings if requested on CLI
       
  9306 +		if self.raptor.timing:
       
  9307 +			self.makefile_prologue += "\n# Print Start-time of Makefile parsing\n" \
       
  9308 +					+ timing_start + "\n\n"
       
  9309 +	
       
  9310 +	
       
  9311 +			self.makefile_epilogue = "\n\n# Print End-time of Makefile parsing\n" \
       
  9312 +				+ timing_end + "\n"
       
  9313 +		else:
       
  9314 +			self.makefile_epilogue = ""
       
  9315 +
       
  9316 +		self.makefile_epilogue += """
       
  9317  
       
  9318  include %s
       
  9319  
       
  9320 @@ -168,14 +320,17 @@
       
  9321  		"""Generate a set of makefiles, or one big Makefile."""
       
  9322  
       
  9323  		if not self.valid:
       
  9324 -			return
       
  9325 +			return None
       
  9326 +
       
  9327 +		self.raptor.Debug("Writing Makefile '%s'" % (str(toplevel)))
       
  9328  
       
  9329  		self.toplevel = toplevel
       
  9330  
       
  9331  		# create the top-level makefiles
       
  9332 +		makefileset = None
       
  9333  
       
  9334  		try:
       
  9335 -			self.makefileset = MakefileSet(directory = str(toplevel.Dir()),
       
  9336 +			makefileset = MakefileSet(directory = str(toplevel.Dir()),
       
  9337  										   selectors = self.selectors,
       
  9338  										   filenamebase = str(toplevel.File()),
       
  9339  										   prologue = self.makefile_prologue,
       
  9340 @@ -190,11 +345,10 @@
       
  9341  			self.many = not self.raptor.writeSingleMakefile
       
  9342  
       
  9343  			# add a makefile for each spec under each config
       
  9344 -			config_makefileset = self.makefileset
       
  9345 -
       
  9346 +			config_makefileset = makefileset
       
  9347  			for c in configs:
       
  9348  				if self.many:
       
  9349 -					config_makefileset = self.makefileset.createChild(c.name)
       
  9350 +					config_makefileset = makefileset.createChild(c.name)
       
  9351  
       
  9352  				# make sure the config_wide spec item is put out first so that it
       
  9353  				# can affect everything.
       
  9354 @@ -207,16 +361,22 @@
       
  9355  						ordered_specs.append(s)
       
  9356  
       
  9357  				if config_wide_spec is not None:
       
  9358 -					config_wide_spec.Configure(c)
       
  9359 +					config_wide_spec.Configure(c, cache = self.raptor.cache)
       
  9360  					self.WriteConfiguredSpec(config_makefileset, config_wide_spec, c, True)
       
  9361  
       
  9362  				for s in ordered_specs:
       
  9363 -					s.Configure(c)
       
  9364 +					s.Configure(c, cache = self.raptor.cache)
       
  9365  					self.WriteConfiguredSpec(config_makefileset, s, c, False)
       
  9366  
       
  9367 -			self.makefileset.close()
       
  9368 +			makefileset.close()
       
  9369  		except Exception,e:
       
  9370 -			self.raptor.Error("Failed to write makefile '%s': %s" % (str(toplevel),str(e)))
       
  9371 +			tb = traceback.format_exc()
       
  9372 +			if not self.raptor.debugOutput:
       
  9373 +				tb=""
       
  9374 +			self.raptor.Error("Failed to write makefile '%s': %s : %s" % (str(toplevel),str(e),tb))
       
  9375 +			makefileset = None
       
  9376 +
       
  9377 +		return makefileset
       
  9378  
       
  9379  
       
  9380  	def WriteConfiguredSpec(self, parentMakefileSet, spec, config, useAllInterfaces):
       
  9381 @@ -233,9 +393,10 @@
       
  9382  		guard = None
       
  9383  		if hasInterface:
       
  9384  			# find the Interface (it may be a ref)
       
  9385 -			iface = spec.GetInterface()
       
  9386 +			try:
       
  9387 +				iface = spec.GetInterface(self.raptor.cache)
       
  9388  
       
  9389 -			if iface == None:
       
  9390 +			except raptor_data.MissingInterfaceError, e:	
       
  9391  				self.raptor.Error("No interface for '%s'", spec.name)
       
  9392  				return
       
  9393  
       
  9394 @@ -268,12 +429,12 @@
       
  9395  				md5hash.update(value)
       
  9396  
       
  9397  			# parameters required by the interface
       
  9398 -			for p in iface.GetParams():
       
  9399 +			for p in iface.GetParams(self.raptor.cache):
       
  9400  				val = evaluator.Resolve(p.name)
       
  9401  				addparam(p.name,val,p.default)
       
  9402  
       
  9403  			# Use Patterns to fetch a group of parameters
       
  9404 -			for g in iface.GetParamGroups():
       
  9405 +			for g in iface.GetParamGroups(self.raptor.cache):
       
  9406  				for k,v in evaluator.ResolveMatching(g.patternre):
       
  9407  					addparam(k,v,g.default)
       
  9408  
       
  9409 @@ -301,7 +462,7 @@
       
  9410  
       
  9411  		# generate the call to the FLM
       
  9412  		if iface is not None:
       
  9413 -			makefileset.addCall(spec.name, config.name, iface.name, useAllInterfaces, iface.GetFLMIncludePath(), parameters, guard)
       
  9414 +			makefileset.addCall(spec.name, config.name, iface.name, useAllInterfaces, iface.GetFLMIncludePath(self.raptor.cache), parameters, guard)
       
  9415  
       
  9416  		# recursive includes
       
  9417  
       
  9418 @@ -341,7 +502,7 @@
       
  9419  				return False
       
  9420  
       
  9421  		# Save file names to a list, to allow the order to be reversed
       
  9422 -		fileName_list = list(self.makefileset.makefileNames())
       
  9423 +		fileName_list = list(makefileset.makefileNames())
       
  9424  
       
  9425  		# Iterate through args passed to raptor, searching for CLEAN or REALLYCLEAN
       
  9426  		clean_flag = False
       
  9427 @@ -354,6 +515,9 @@
       
  9428  		if clean_flag:
       
  9429  			fileName_list.reverse()
       
  9430  
       
  9431 +		# Report number of makefiles to be built
       
  9432 +		self.raptor.InfoDiscovery(object_type = "makefile", count = len(fileName_list))
       
  9433 +
       
  9434  		# Process each file in turn
       
  9435  		for makefile in fileName_list:
       
  9436  			if not os.path.exists(makefile):
       
  9437 @@ -364,7 +528,7 @@
       
  9438  			command = self.buildCommand
       
  9439  
       
  9440  			if self.makefileOption:
       
  9441 -				command += " " + self.makefileOption + " " + '"' + str(makefile) + '"'
       
  9442 +				command += " " + self.makefileOption + " " + ' "' + str(makefile) + '" '
       
  9443  
       
  9444  			if self.raptor.keepGoing and self.keepGoingOption:
       
  9445  				command += " " + self.keepGoingOption
       
  9446 @@ -377,12 +541,20 @@
       
  9447  			command += " " + self.defaultMakeOptions
       
  9448  			# Can supply options on the commandline to override default settings.
       
  9449  			if len(self.raptor.makeOptions) > 0:
       
  9450 -				command += " " + " ".join(self.raptor.makeOptions)
       
  9451 +				for o in self.raptor.makeOptions:
       
  9452 +					if o.find(";") != -1 or  o.find("\\") != -1:
       
  9453 +						command += "  " + "'" + o + "'"
       
  9454 +					else:
       
  9455 +						command += "  " + o
       
  9456  
       
  9457  			# Switch off dependency file including?
       
  9458 -			if self.raptor.noDependInclude:
       
  9459 +			if self.raptor.noDependInclude or self.raptor.noDependGenerate:
       
  9460  				command += " NO_DEPEND_INCLUDE=1"
       
  9461  			
       
  9462 +			# Switch off dependency file generation (and, implicitly, inclusion)?
       
  9463 +			if self.raptor.noDependGenerate:
       
  9464 +				command += " NO_DEPEND_GENERATE=1"
       
  9465 +			
       
  9466  			if self.usetalon:
       
  9467  				# use the descrambler if we set it up
       
  9468  				command += ' TALON_DESCRAMBLE=' 
       
  9469 @@ -401,7 +573,7 @@
       
  9470  
       
  9471  			# targets go at the end, if the makefile supports them
       
  9472  			addTargets = self.raptor.targets[:]
       
  9473 -			ignoreTargets = self.makefileset.ignoreTargets(makefile)
       
  9474 +			ignoreTargets = makefileset.ignoreTargets(makefile)
       
  9475  			if addTargets and ignoreTargets:
       
  9476  				for target in self.raptor.targets:
       
  9477  					if re.match(ignoreTargets, target):
       
  9478 @@ -410,6 +582,23 @@
       
  9479  			if addTargets:
       
  9480  				command += " " + " ".join(addTargets)
       
  9481  
       
  9482 +			# Send stderr to a file so that it can't mess up the log (e.g.
       
  9483 +			# clock skew messages from some build engines scatter their
       
  9484 +			# output across our xml.
       
  9485 +			stderrfilename = makefile+'.stderr'
       
  9486 +			stdoutfilename = makefile+'.stdout'
       
  9487 +			command += " 2>'%s' " % stderrfilename
       
  9488 +
       
  9489 +			# Keep a copy of the stdout too in the case of using the 
       
  9490 +			# annofile - so that we can trap the problem that
       
  9491 +			# makes the copy-log-from-annofile workaround necessary
       
  9492 +			# and perhaps determine when we can remove it.
       
  9493 +			if self.copyLogFromAnnoFile:
       
  9494 +				command += " >'%s' " % stdoutfilename
       
  9495 +
       
  9496 +			# Substitute the makefile name for any occurrence of #MAKEFILE#
       
  9497 +			command = command.replace("#MAKEFILE#", str(makefile))
       
  9498 +
       
  9499  			self.raptor.Info("Executing '%s'", command)
       
  9500  
       
  9501  			# execute the build.
       
  9502 @@ -417,6 +606,10 @@
       
  9503  			# bufsize=1 means "line buffered"
       
  9504  			#
       
  9505  			try:
       
  9506 +				# Time the build
       
  9507 +				self.raptor.InfoStartTime(object_type = "makefile",
       
  9508 +						task = "build", key = str(makefile))
       
  9509 +				
       
  9510  				makeenv=os.environ.copy()
       
  9511  				if self.usetalon:
       
  9512  					makeenv['TALON_RECIPEATTRIBUTES']="none"
       
  9513 @@ -423,28 +616,55 @@
       
  9514  					makeenv['TALON_SHELL']=self.talonshell
       
  9515  					makeenv['TALON_BUILDID']=str(self.buildID)
       
  9516  					makeenv['TALON_TIMEOUT']=str(self.talontimeout)
       
  9517 +
       
  9518  				if self.raptor.filesystem == "unix":
       
  9519 -					p = subprocess.Popen(command, bufsize=65535,
       
  9520 +					p = subprocess.Popen([command], bufsize=65535,
       
  9521  									     stdout=subprocess.PIPE,
       
  9522  									     stderr=subprocess.STDOUT,
       
  9523  									     close_fds=True, env=makeenv, shell=True)
       
  9524  				else:
       
  9525 -					p = subprocess.Popen(command, bufsize=65535,
       
  9526 +					p = subprocess.Popen(args = 
       
  9527 +						[raptor_data.ToolSet.shell, '-c', command],
       
  9528 +						bufsize=65535,
       
  9529  									     stdout=subprocess.PIPE,
       
  9530  									     stderr=subprocess.STDOUT,
       
  9531 +						shell = False,
       
  9532  									     universal_newlines=True, env=makeenv)
       
  9533  				stream = p.stdout
       
  9534  
       
  9535 +				inRecipe = False
       
  9536  
       
  9537 -				line = " "
       
  9538 -				while line:
       
  9539 -					line = stream.readline()
       
  9540 -					self.raptor.out.write(line)
       
  9541 +				if not self.copyLogFromAnnoFile:
       
  9542 +					for l in XMLEscapeLog(stream):
       
  9543 +						self.raptor.out.write(l)
       
  9544  
       
  9545 -				# should be done now
       
  9546  				returncode = p.wait()
       
  9547 +				else:
       
  9548 +					returncode = p.wait()
       
  9549 +
       
  9550 +					annofilename = self.annoFileName.replace("#MAKEFILE#", makefile)
       
  9551 +					self.raptor.Info("copylogfromannofile: Copying log from annotation file %s to work around a potential problem with the console output", annofilename)
       
  9552 +					try:
       
  9553 +						for l in XMLEscapeLog(AnnoFileParseOutput(annofilename)):
       
  9554 +							self.raptor.out.write(l)
       
  9555 +					except Exception,e:
       
  9556 +						self.raptor.Error("Couldn't complete stdout output from annofile %s for %s - '%s'", annofilename, command, str(e))
       
  9557  
       
  9558  
       
  9559 +				# Take all the stderr output that went into the .stderr file
       
  9560 +				# and put it back into the log, but safely so it can't mess up
       
  9561 +				# xml parsers.
       
  9562 +				try:
       
  9563 +					e = open(stderrfilename,"r")
       
  9564 +					for line in e:
       
  9565 +						self.raptor.out.write(escape(line))
       
  9566 +					e.close()
       
  9567 +				except Exception,e:
       
  9568 +					self.raptor.Error("Couldn't complete stderr output for %s - '%s'", command, str(e))
       
  9569 +				# Report end-time of the build
       
  9570 +				self.raptor.InfoEndTime(object_type = "makefile",
       
  9571 +						task = "build", key = str(makefile))
       
  9572 +
       
  9573  				if returncode != 0  and not self.raptor.keepGoing:
       
  9574  					self.Tidy()
       
  9575  					return False
       
  9576 @@ -452,6 +672,9 @@
       
  9577  			except Exception,e:
       
  9578  				self.raptor.Error("Exception '%s' during '%s'", str(e), command)
       
  9579  				self.Tidy()
       
  9580 +				# Still report end-time of the build
       
  9581 +				self.raptor.InfoEndTime(object_type = "Building", task = "Makefile",
       
  9582 +						key = str(makefile))
       
  9583  				return False
       
  9584  
       
  9585  		# run any shutdown script
       
  9586 @@ -496,7 +719,7 @@
       
  9587  			looking = (os.system(command) != 0)
       
  9588  			tries += 1
       
  9589  		if looking:
       
  9590 -			self.raptor.Error("Failed to initilaise the talon shell for this build")
       
  9591 +			self.raptor.Error("Failed to initialise the talon shell for this build")
       
  9592  			self.talonctl = ""
       
  9593  			return False
       
  9594  		
       
  9595 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/python/raptor_meta.py /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/python/raptor_meta.py
       
  9596 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/python/raptor_meta.py	2010-05-18 19:32:34.793348934 +0100
       
  9597 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/python/raptor_meta.py	2010-05-17 18:47:53.100842000 +0100
       
  9598 @@ -1,5 +1,5 @@
       
  9599  #
       
  9600 -# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
       
  9601 +# Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies).
       
  9602  # All rights reserved.
       
  9603  # This component and the accompanying materials are made available
       
  9604  # under the terms of the License "Eclipse Public License v1.0"
       
  9605 @@ -31,6 +31,7 @@
       
  9606  import generic_path
       
  9607  import subprocess
       
  9608  import zipfile
       
  9609 +from xml.sax.saxutils import escape
       
  9610  from mmpparser import *
       
  9611  
       
  9612  import time
       
  9613 @@ -232,6 +233,19 @@
       
  9614  	return commentDetail
       
  9615  
       
  9616  
       
  9617 +def getSpecName(aFileRoot, fullPath=False):
       
  9618 +	"""Returns a build spec name: this is the file root (full path
       
  9619 +	or simple file name) made safe for use as a file name."""
       
  9620 +
       
  9621 +	if fullPath:
       
  9622 +		specName = str(aFileRoot).replace("/","_")
       
  9623 +		specName = specName.replace(":","")
       
  9624 +	else:
       
  9625 +		specName = aFileRoot.File()
       
  9626 +
       
  9627 +	return specName.lower()
       
  9628 +
       
  9629 +
       
  9630  # Classes
       
  9631  
       
  9632  class MetaDataError(Exception):
       
  9633 @@ -284,9 +298,8 @@
       
  9634  	def call(self, aArgs, sourcefilename):
       
  9635  		""" Override call so that we can do our own error handling."""
       
  9636  		tool = self._ExternalTool__Tool
       
  9637 -		try:
       
  9638  			commandline = tool + " " + aArgs + " " + str(sourcefilename)
       
  9639 -
       
  9640 +		try:
       
  9641  			# the actual call differs between Windows and Unix
       
  9642  			if raptor_utilities.getOSFileSystem() == "unix":
       
  9643  				p = subprocess.Popen(commandline, \
       
  9644 @@ -332,7 +345,7 @@
       
  9645  				raise MetaDataError("Errors in %s" % str(sourcefilename))
       
  9646  
       
  9647  		except Exception,e:
       
  9648 -			raise MetaDataError("Preprocessor exception: %s" % str(e))
       
  9649 +			raise MetaDataError("Preprocessor exception: '%s' : in command : '%s'" % (str(e), commandline))
       
  9650  
       
  9651  		return 0	# all OK
       
  9652  
       
  9653 @@ -398,11 +411,13 @@
       
  9654  	on the selected build platform.  This class provides a generic means of wrapping
       
  9655  	up the preprocessing of such files."""
       
  9656  
       
  9657 -	def __init__(self, aFilename, gnucpp, aRootLocation=None, log=None):
       
  9658 +	def __init__(self, aFilename, gnucpp, depfiles, aRootLocation=None, log=None):
       
  9659  		"""
       
  9660  		@param aFilename	An MMP, bld.inf or other preprocessable build spec file
       
  9661  		@param aDefaultPlatform  Default preprocessed version of this file
       
  9662  		@param aCPP 		location of GNU CPP
       
  9663 +		@param depfiles     	list to add dependency file tuples to
       
  9664 +		@param aRootLocation    where the file is 
       
  9665  		@param log 		A class with Debug(<string>), Info(<string>) and Error(<string>) methods
       
  9666  		"""
       
  9667  		self.filename = aFilename
       
  9668 @@ -410,6 +425,7 @@
       
  9669  		# Dictionary with key of build platform and a text string of processed output as values
       
  9670  		self.__PreProcessedContent = {}
       
  9671  		self.log = log
       
  9672 +		self.depfiles = depfiles
       
  9673  
       
  9674  		self.__gnucpp = gnucpp
       
  9675  		if gnucpp is None:
       
  9676 @@ -436,7 +452,7 @@
       
  9677  			else:
       
  9678  				metatarget = "'$(PARSETARGET)'"
       
  9679  			generateDepsOptions = "-MD -MF%s -MT%s" % (adepfilename, metatarget)
       
  9680 -			aBuildPlatform['METADEPS'].append((adepfilename, metatarget))
       
  9681 +			self.depfiles.append((adepfilename, metatarget))
       
  9682  			try:
       
  9683  				os.makedirs(os.path.dirname(adepfilename))
       
  9684  			except Exception, e:
       
  9685 @@ -515,15 +531,17 @@
       
  9686  	on the selected build platform.  This class provides a generic means of wrapping
       
  9687  	up the preprocessing of such files."""
       
  9688  
       
  9689 -	def __init__(self, aFilename, gnucpp, bldinf, log=None):
       
  9690 +	def __init__(self, aFilename, gnucpp, bldinf, depfiles, log=None):
       
  9691  		"""
       
  9692  		@param aFilename	An MMP, bld.inf or other preprocessable build spec file
       
  9693  		@param gnucpp 		location of GNU CPP
       
  9694 -		@param bldinf   	the bldinf file that this mmp comes from
       
  9695 +		@param bldinf		the bld.inf file this mmp was specified in
       
  9696 +		@param depfiles         list to fill with mmp dependency files
       
  9697  		@param log 			A class with Debug(<string>), Info(<string>) and Error(<string>) methods
       
  9698  		"""
       
  9699 -		super(MMPFile, self).__init__(aFilename, gnucpp, str(bldinf.filename.Dir()), log)
       
  9700 +		super(MMPFile, self).__init__(aFilename, gnucpp, depfiles, str(bldinf.filename.Dir()),  log)
       
  9701  		self.__bldinf = bldinf
       
  9702 +		self.depfiles = depfiles
       
  9703  
       
  9704  		self.__gnucpp = gnucpp
       
  9705  		if gnucpp is None:
       
  9706 @@ -878,8 +896,8 @@
       
  9707  class BldInfFile(MetaDataFile):
       
  9708  	"""Representation of a Symbian bld.inf file"""
       
  9709  
       
  9710 -	def __init__(self, aFilename, gnucpp, log=None):
       
  9711 -		MetaDataFile.__init__(self, aFilename, gnucpp, None, log)
       
  9712 +	def __init__(self, aFilename, gnucpp, depfiles, log=None):
       
  9713 +		MetaDataFile.__init__(self, aFilename, gnucpp, depfiles, None, log)
       
  9714  		self.__Raptor = log
       
  9715  		self.testManual = 0
       
  9716  		self.testAuto = 0
       
  9717 @@ -1194,7 +1212,9 @@
       
  9718  		super(MMPRaptorBackend,self).__init__()
       
  9719  		self.platformblock = None
       
  9720  		self.__Raptor = aRaptor
       
  9721 -		self.BuildVariant = raptor_data.Variant()
       
  9722 +		self.__debug("-----+++++ %s " % aMmpfilename)
       
  9723 +		self.BuildVariant = raptor_data.Variant(name = "mmp")
       
  9724 +		self.ApplyVariants = []
       
  9725  		self.ResourceVariants = []
       
  9726  		self.BitmapVariants = []
       
  9727  		self.StringTableVariants = []
       
  9728 @@ -1208,11 +1228,12 @@
       
  9729  		self.__systeminclude = ""
       
  9730  		self.__bitmapSourcepath = self.__sourcepath
       
  9731  		self.__current_resource = ""
       
  9732 -		self.__capabilities = []
       
  9733  		self.__resourceFiles = []
       
  9734  		self.__pageConflict = []
       
  9735  		self.__debuggable = ""
       
  9736 +		self.__compressionKeyword = ""
       
  9737  		self.sources = []
       
  9738 +		self.capabilities = []
       
  9739  
       
  9740  		self.__TARGET = ""
       
  9741  		self.__TARGETEXT = ""
       
  9742 @@ -1283,16 +1304,15 @@
       
  9743  		elif varname == 'PAGED':
       
  9744  			self.BuildVariant.AddOperation(raptor_data.Set(varname, "1"))
       
  9745  			self.__debug( "Set switch PAGE ON")
       
  9746 +			# PAGED is equivalent to PAGEDCODE
       
  9747  			self.BuildVariant.AddOperation(raptor_data.Set("PAGEDCODE_OPTION", "paged"))
       
  9748  			self.__debug( "Set switch PAGEDCODE ON")
       
  9749 -			self.BuildVariant.AddOperation(raptor_data.Set("PAGEDDATA_OPTION", "paged"))
       
  9750 -			self.__debug( "Set data PAGEDDATA ON")
       
  9751  			self.__pageConflict.append("PAGEDCODE")
       
  9752 -			self.__pageConflict.append("PAGEDDATA")
       
  9753  
       
  9754  		elif varname == 'UNPAGED':
       
  9755  			self.BuildVariant.AddOperation(raptor_data.Set("PAGED", "0"))
       
  9756  			self.__debug( "Set switch PAGED OFF")
       
  9757 +			# UNPAGED is equivalent to UNPAGEDCODE *and* UNPAGEDDATA
       
  9758  			self.BuildVariant.AddOperation(raptor_data.Set("PAGEDCODE_OPTION", "unpaged"))
       
  9759  			self.__debug( "Set switch PAGEDCODE OFF")
       
  9760  			self.BuildVariant.AddOperation(raptor_data.Set("PAGEDDATA_OPTION", "unpaged"))
       
  9761 @@ -1314,6 +1334,7 @@
       
  9762  			self.BuildVariant.AddOperation(raptor_data.Set("PAGEDCODE_OPTION", "unpaged"))
       
  9763  			self.__debug( "Set switch " + varname + " ON")
       
  9764  			self.__pageConflict.append(varname)
       
  9765 +			
       
  9766  		elif varname == 'UNPAGEDDATA':
       
  9767  			self.BuildVariant.AddOperation(raptor_data.Set("PAGEDDATA_OPTION", "unpaged"))
       
  9768  			self.__debug( "Set switch " + varname + " ON")
       
  9769 @@ -1322,6 +1343,7 @@
       
  9770  		elif varname == 'NOLINKTIMECODEGENERATION':
       
  9771  			self.BuildVariant.AddOperation(raptor_data.Set("LTCG",""))
       
  9772  			self.__debug( "Set switch " + varname + " OFF")
       
  9773 +			
       
  9774  		elif varname == 'NOMULTIFILECOMPILATION':
       
  9775  			self.BuildVariant.AddOperation(raptor_data.Set("MULTIFILE_ENABLED",""))
       
  9776  			self.__debug( "Set switch " + varname + " OFF")
       
  9777 @@ -1331,13 +1353,19 @@
       
  9778  				self.__debuggable = "udeb urel"
       
  9779  			else:
       
  9780  				self.__Raptor.Warn("DEBUGGABLE keyword ignored as DEBUGGABLE_UDEBONLY is already specified")
       
  9781 +		
       
  9782  		elif varname == 'DEBUGGABLE_UDEBONLY':
       
  9783  			if self.__debuggable != "":
       
  9784  				self.__Raptor.Warn("DEBUGGABLE keyword has no effect as DEBUGGABLE or DEBUGGABLE_UDEBONLY is already set")
       
  9785  			self.__debuggable = "udeb"
       
  9786 +		
       
  9787  		elif varname == 'FEATUREVARIANT':
       
  9788  			self.BuildVariant.AddOperation(raptor_data.Set(varname,"1"))
       
  9789  			self.featureVariant = True
       
  9790 +		
       
  9791 +		elif varname in ['COMPRESSTARGET', 'NOCOMPRESSTARGET', 'INFLATECOMPRESSTARGET', 'BYTEPAIRCOMPRESSTARGET']:
       
  9792 +			self.resolveCompressionKeyword(varname)
       
  9793 +		
       
  9794  		else:
       
  9795  			self.__debug( "Set switch "+toks[0]+" ON")
       
  9796  			self.BuildVariant.AddOperation(raptor_data.Set(prefix+varname, "1"))
       
  9797 @@ -1423,9 +1451,12 @@
       
  9798  
       
  9799  		elif varname=='CAPABILITY':
       
  9800  			for cap in toks[1]:
       
  9801 -				self.BuildVariant.AddOperation(raptor_data.Append(varname,cap," "))
       
  9802 +				cap = cap.lower()
       
  9803  				self.__debug("Setting  "+toks[0]+": " + cap)
       
  9804 -				self.__capabilities.append(cap.lower())
       
  9805 +				if not cap.startswith("-"):
       
  9806 +					if not cap.startswith("+"):
       
  9807 +						cap = "+" + cap	
       
  9808 +				self.capabilities.append(cap)
       
  9809  		elif varname=='DEFFILE':
       
  9810  			self.__defFileRoot = self.__currentMmpFile
       
  9811  			self.deffile = toks[1]
       
  9812 @@ -1450,8 +1481,10 @@
       
  9813  
       
  9814  				# add in the minor number
       
  9815  				minor = 0
       
  9816 -				if len(version) >  1:
       
  9817 +				if version[1] is not None:
       
  9818  					minor = int(version[2],10)
       
  9819 +				else:
       
  9820 +					self.__Raptor.Warn("VERSION (%s) missing '.minor' in %s, using '.0'" % (toks[1],self.__currentMmpFile))
       
  9821  
       
  9822  				self.__versionhex = "%04x%04x" % (major, minor)
       
  9823  				self.BuildVariant.AddOperation(raptor_data.Set(varname, "%d.%d" %(major, minor)))
       
  9824 @@ -1517,7 +1550,8 @@
       
  9825  					toks1 = re.sub("[,'\[\]]", "", toks1).replace("//","/")
       
  9826  				self.__debug("Set "+toks[0]+" to " + toks1)
       
  9827  				self.BuildVariant.AddOperation(raptor_data.Set(varname,toks1))
       
  9828 -
       
  9829 +		elif varname=='APPLY':
       
  9830 +			self.ApplyVariants.append(toks[1])
       
  9831  		else:
       
  9832  			self.__debug("Set "+toks[0]+" to " + str(toks[1]))
       
  9833  			self.BuildVariant.AddOperation(raptor_data.Set(varname,"".join(toks[1])))
       
  9834 @@ -1687,7 +1721,7 @@
       
  9835  	def getDefaultResourceTargetPath(self, targettype):
       
  9836  		# the different default TARGETPATH values should come from the
       
  9837  		# configuration rather than being hard-coded here.
       
  9838 -		if targettype == "plugin":
       
  9839 +		if targettype in ["plugin", "plugin3"]:
       
  9840  			return "resource/plugins"
       
  9841  		if targettype == "pdl":
       
  9842  			return "resource/printers"
       
  9843 @@ -1884,7 +1918,7 @@
       
  9844  		self.__currentLineNumber += 1
       
  9845  		self.__debug("Start BITMAP "+toks[1])
       
  9846  
       
  9847 -		self.__currentBitmapVariant = raptor_data.Variant(toks[1].replace('.','_'))
       
  9848 +		self.__currentBitmapVariant = raptor_data.Variant(name = toks[1].replace('.','_'))
       
  9849  		# Use BMTARGET and BMTARGET_lower because that prevents
       
  9850  		# confusion with the TARGET and TARGET_lower of our parent MMP
       
  9851  		# when setting the OUTPUTPATH.  This in turn allows us to
       
  9852 @@ -1974,7 +2008,7 @@
       
  9853  		self.__debug("stringtable: " + toks[1])
       
  9854  		self.__debug("adjusted stringtable source=" + source)
       
  9855  
       
  9856 -		self.__currentStringTableVariant = raptor_data.Variant(uniqname)
       
  9857 +		self.__currentStringTableVariant = raptor_data.Variant(name = uniqname)
       
  9858  		self.__currentStringTableVariant.AddOperation(raptor_data.Set("SOURCE", source))
       
  9859  		self.__currentStringTableVariant.AddOperation(raptor_data.Set("EXPORTPATH", ""))
       
  9860  		self.__stringtableExported = False
       
  9861 @@ -2142,6 +2176,9 @@
       
  9862  		self.BuildVariant.AddOperation(raptor_data.Set("DEFFILEKEYWORD", deffile_keyword))
       
  9863  		self.__debug("Set DEFFILEKEYWORD to '%s'",deffile_keyword)
       
  9864  
       
  9865 +		# If target type is "implib" it must have a def file
       
  9866 +		self.checkImplibDefFile(resolvedDefFile)
       
  9867 +
       
  9868  		# if this target type has a default TARGETPATH other than "" for
       
  9869  		# resources then we need to add that default to all resources which
       
  9870  		# do not explicitly set the TARGETPATH themselves.
       
  9871 @@ -2167,16 +2204,20 @@
       
  9872  			self.ResourceVariants[i].AddOperation(raptor_data.Set("MAIN_TARGET_lower", self.__TARGET.lower()))
       
  9873  			self.ResourceVariants[i].AddOperation(raptor_data.Set("MAIN_REQUESTEDTARGETEXT", self.__TARGETEXT.lower()))
       
  9874  
       
  9875 +		# Create Capability variable in one SET operation (more efficient than multiple appends)
       
  9876 +		
       
  9877 +		self.BuildVariant.AddOperation(raptor_data.Set("CAPABILITY","".join(self.capabilities)))
       
  9878 +
       
  9879  		# Resolve combined capabilities as hex flags, for configurations that require them
       
  9880  		capabilityFlag1 = 0
       
  9881  		capabilityFlag2 = 0			# Always 0
       
  9882  
       
  9883 -		for capability in self.__capabilities:
       
  9884 +		for capability in self.capabilities:
       
  9885  			invert = 0
       
  9886  
       
  9887  			if capability.startswith('-'):
       
  9888  				invert = 0xffffffff
       
  9889 -				capability = capability.lstrip('-')
       
  9890 +			capability = capability[1:]
       
  9891  
       
  9892  			if MMPRaptorBackend.supportedCapabilities.has_key(capability):
       
  9893  				capabilityFlag1 = capabilityFlag1 ^ invert
       
  9894 @@ -2205,12 +2246,21 @@
       
  9895  			for x in self.__pageConflict:
       
  9896  				if x == "PAGEDCODE" or x == "UNPAGEDCODE":
       
  9897  					self.__Raptor.Warn("Both PAGEDCODE and UNPAGEDCODE are specified. The last one %s will take effect" % x)
       
  9898 +					if x == "PAGEDCODE":
       
  9899 +						self.resolveCompressionKeyword("BYTEPAIRCOMPRESSTARGET")
       
  9900  					break
       
  9901 +		elif "PAGEDCODE" in self.__pageConflict:
       
  9902 +			self.resolveCompressionKeyword("BYTEPAIRCOMPRESSTARGET")
       
  9903 +				
       
  9904  		if "PAGEDDATA" in self.__pageConflict and "UNPAGEDDATA" in self.__pageConflict:
       
  9905  			for x in self.__pageConflict:
       
  9906  				if x == "PAGEDDATA" or x == "UNPAGEDDATA":
       
  9907  					self.__Raptor.Warn("Both PAGEDDATA and UNPAGEDDATA are specified. The last one %s will take effect" % x)
       
  9908 +					if x == "PAGEDDATA":
       
  9909 +						self.resolveCompressionKeyword("BYTEPAIRCOMPRESSTARGET")
       
  9910  					break
       
  9911 +		elif "PAGEDDATA" in self.__pageConflict:
       
  9912 +			self.resolveCompressionKeyword("BYTEPAIRCOMPRESSTARGET")
       
  9913  
       
  9914  		# Set Debuggable
       
  9915  		self.BuildVariant.AddOperation(raptor_data.Set("DEBUGGABLE", self.__debuggable))
       
  9916 @@ -2229,6 +2279,27 @@
       
  9917  		"""Target type in lower case - the standard format"""
       
  9918  		return self.__targettype.lower()
       
  9919  
       
  9920 +	def resolveCompressionKeyword(self, aCompressionKeyword):
       
  9921 +		"""If a compression keyword is set more than once either explicitly
       
  9922 +		or implicitly a warning is given and the last one takes effect 
       
  9923 +		"""
       
  9924 +		if self.__compressionKeyword and self.__compressionKeyword != aCompressionKeyword:
       
  9925 +			self.__Raptor.Warn("%s keyword in %s overrides earlier use of %s" % \
       
  9926 +						(aCompressionKeyword, self.__currentMmpFile, self.__compressionKeyword))
       
  9927 +			self.BuildVariant.AddOperation(raptor_data.Set(self.__compressionKeyword, ""))
       
  9928 +			self.__debug( "Set switch " + self.__compressionKeyword + " OFF")
       
  9929 +		self.BuildVariant.AddOperation(raptor_data.Set(aCompressionKeyword,"1"))
       
  9930 +		self.__debug( "Set switch " + aCompressionKeyword + " ON")
       
  9931 +		self.__compressionKeyword = aCompressionKeyword
       
  9932 +
       
  9933 +	def checkImplibDefFile(self, defFile):
       
  9934 +		"""Project with target type implib must have DEFFILE defined 
       
  9935 +		explicitly or implicitly, otherwise it is an error
       
  9936 +		""" 
       
  9937 +		if self.getTargetType() == 'implib' and defFile == '':
       
  9938 +			self.__Raptor.Error("No DEF File for IMPLIB target type in " + \
       
  9939 +							self.__currentMmpFile, bldinf=self.__bldInfFilename)
       
  9940 +
       
  9941  	def resolveDefFile(self, aTARGET, aBuildPlatform):
       
  9942  		"""Returns a fully resolved DEFFILE entry depending on .mmp file location and TARGET, DEFFILE and NOSTRICTDEF
       
  9943  		entries in the .mmp file itself (where appropriate).
       
  9944 @@ -2283,6 +2354,32 @@
       
  9945  		return resolvedDefFile
       
  9946  
       
  9947  
       
  9948 +def CheckedGet(self, key, default = None):
       
  9949 +	"""extract a value from an self and raise an exception if None.
       
  9950 +
       
  9951 +	An optional default can be set to replace a None value.
       
  9952 +
       
  9953 +	This function belongs in the Evaluator class logically. But
       
  9954 +	Evaluator doesn't know how to raise a Metadata error. Since
       
  9955 +	being able to raise a metadata error is the whole point of
       
  9956 +	the method, it makes sense to adapt the Evaluator class from
       
  9957 +	raptor_meta for the use of everything inside raptor_meta.
       
  9958 +
       
  9959 +	... so it will be added to the Evaluator class.
       
  9960 +	"""
       
  9961 +
       
  9962 +	value = self.Get(key)
       
  9963 +	if value == None:
       
  9964 +		if default == None:
       
  9965 +			raise MetaDataError("configuration " + self.buildUnit.name +
       
  9966 +							    " has no variable " + key)
       
  9967 +		else:
       
  9968 +			return default
       
  9969 +	return value
       
  9970 +
       
  9971 +raptor_data.Evaluator.CheckedGet = CheckedGet 
       
  9972 +
       
  9973 +
       
  9974  class MetaReader(object):
       
  9975  	"""Entry point class for Symbian metadata processing.
       
  9976  
       
  9977 @@ -2299,10 +2396,10 @@
       
  9978  		# Get the version of CPP that we are using
       
  9979  		metadata = self.__Raptor.cache.FindNamedVariant("meta")
       
  9980  		evaluator = self.__Raptor.GetEvaluator(None, raptor_data.BuildUnit(metadata.name, [metadata]) )
       
  9981 -		self.__gnucpp = self.CheckValue(evaluator, "GNUCPP")
       
  9982 -		self.__defaultplatforms = self.CheckValue(evaluator, "DEFAULT_PLATFORMS")
       
  9983 -		self.__basedefaultplatforms = self.CheckValue(evaluator, "BASE_DEFAULT_PLATFORMS")
       
  9984 -		self.__baseuserdefaultplatforms = self.CheckValue(evaluator, "BASE_USER_DEFAULT_PLATFORMS")
       
  9985 +		self.__gnucpp = evaluator.CheckedGet("GNUCPP")
       
  9986 +		self.__defaultplatforms = evaluator.CheckedGet("DEFAULT_PLATFORMS")
       
  9987 +		self.__basedefaultplatforms = evaluator.CheckedGet("BASE_DEFAULT_PLATFORMS")
       
  9988 +		self.__baseuserdefaultplatforms = evaluator.CheckedGet("BASE_USER_DEFAULT_PLATFORMS")
       
  9989  
       
  9990  		# Only read each variant.cfg once
       
  9991  		variantCfgs = {}
       
  9992 @@ -2321,24 +2418,35 @@
       
  9993  		# with the same "export platform".
       
  9994  		exports = {}
       
  9995  
       
  9996 -		for buildConfig in configsToBuild:
       
  9997 +		# We sort configurations by name here.  This is solely to deal with situations
       
  9998 +		# where macros linked to builds end up being used in preprocessor conditionals
       
  9999 +		# within bld.inf files that then wrap exports under PRJ_EXPORTS statements.
       
 10000 +		# Having exports that are conditional on these macros isn't supported, but
       
 10001 +		# as there are areas of the source base that make this assumption, and
       
 10002 +		# fail if emulator macros are used instead of arm ones, we ensure that arm
       
 10003 +		# configurations come first when multiple configurations are active, and so are
       
 10004 +		# used first for determining exports.
       
 10005 +		sortedConfigsToBuild = sorted(configsToBuild,key=lambda config: config.name)
       
 10006 +
       
 10007 +		self.__Raptor.Debug("MetaReader: sortedConfigsToBuild:  %s", [b.name for b in sortedConfigsToBuild])
       
 10008 +		for buildConfig in sortedConfigsToBuild:
       
 10009  			# get everything we need to know about the configuration
       
 10010  			evaluator = self.__Raptor.GetEvaluator(None, buildConfig)
       
 10011  
       
 10012  			detail = {}
       
 10013 -			detail['PLATFORM'] = self.CheckValue(evaluator, "TRADITIONAL_PLATFORM")
       
 10014 -			epocroot = self.CheckValue(evaluator, "EPOCROOT")
       
 10015 +			detail['PLATFORM'] = evaluator.CheckedGet("TRADITIONAL_PLATFORM")
       
 10016 +			epocroot = evaluator.CheckedGet("EPOCROOT")
       
 10017  			detail['EPOCROOT'] = generic_path.Path(epocroot)
       
 10018  
       
 10019 -			sbs_build_dir = self.CheckValue(evaluator, "SBS_BUILD_DIR")
       
 10020 +			sbs_build_dir = evaluator.CheckedGet("SBS_BUILD_DIR")
       
 10021  			detail['SBS_BUILD_DIR'] = generic_path.Path(sbs_build_dir)
       
 10022 -			flm_export_dir = self.CheckValue(evaluator, "FLM_EXPORT_DIR")
       
 10023 +			flm_export_dir = evaluator.CheckedGet("FLM_EXPORT_DIR")
       
 10024  			detail['FLM_EXPORT_DIR'] = generic_path.Path(flm_export_dir)
       
 10025  			detail['CACHEID'] = flm_export_dir
       
 10026  			if raptor_utilities.getOSPlatform().startswith("win"):
       
 10027 -				detail['PLATMACROS'] = self.CheckValue(evaluator,"PLATMACROS.WINDOWS")
       
 10028 +				detail['PLATMACROS'] = evaluator.CheckedGet("PLATMACROS.WINDOWS")
       
 10029  			else:
       
 10030 -				detail['PLATMACROS'] = self.CheckValue(evaluator,"PLATMACROS.LINUX")
       
 10031 +				detail['PLATMACROS'] = evaluator.CheckedGet("PLATMACROS.LINUX")
       
 10032  
       
 10033  			# Apply OS variant provided we are not ignoring this
       
 10034  			if not self.__Raptor.ignoreOsDetection:
       
 10035 @@ -2350,11 +2458,11 @@
       
 10036  			# is this a feature variant config or an ordinary variant
       
 10037  			fv = evaluator.Get("FEATUREVARIANTNAME")
       
 10038  			if fv:
       
 10039 -				variantHdr = self.CheckValue(evaluator, "VARIANT_HRH")
       
 10040 +				variantHdr = evaluator.CheckedGet("VARIANT_HRH")
       
 10041  				variantHRH = generic_path.Path(variantHdr)
       
 10042  				detail['ISFEATUREVARIANT'] = True
       
 10043  			else:
       
 10044 -				variantCfg = self.CheckValue(evaluator, "VARIANT_CFG")
       
 10045 +				variantCfg = evaluator.CheckedGet("VARIANT_CFG")
       
 10046  				variantCfg = generic_path.Path(variantCfg)
       
 10047  				if not variantCfg in variantCfgs:
       
 10048  					# get VARIANT_HRH from the variant.cfg file
       
 10049 @@ -2369,19 +2477,18 @@
       
 10050  
       
 10051  			detail['VARIANT_HRH'] = variantHRH
       
 10052  			self.__Raptor.Info("'%s' uses variant hrh file '%s'", buildConfig.name, variantHRH)
       
 10053 -			detail['SYSTEMINCLUDE'] = self.CheckValue(evaluator, "SYSTEMINCLUDE")
       
 10054 +			detail['SYSTEMINCLUDE'] = evaluator.CheckedGet("SYSTEMINCLUDE")
       
 10055  
       
 10056 -			detail['METADEPS'] = [] # Dependency targets for all metadata files in this platform
       
 10057  
       
 10058  			# find all the interface names we need
       
 10059 -			ifaceTypes = self.CheckValue(evaluator, "INTERFACE_TYPES")
       
 10060 +			ifaceTypes = evaluator.CheckedGet("INTERFACE_TYPES")
       
 10061  			interfaces = ifaceTypes.split()
       
 10062  
       
 10063  			for iface in interfaces:
       
 10064 -				detail[iface] = self.CheckValue(evaluator, "INTERFACE." + iface)
       
 10065 +				detail[iface] = evaluator.CheckedGet("INTERFACE." + iface)
       
 10066  
       
 10067  			# not test code unless positively specified
       
 10068 -			detail['TESTCODE'] = self.CheckValue(evaluator, "TESTCODE", "")
       
 10069 +			detail['TESTCODE'] = evaluator.CheckedGet("TESTCODE", "")
       
 10070  
       
 10071  			# make a key that identifies this platform uniquely
       
 10072  			# - used to tell us whether we have done the pre-processing
       
 10073 @@ -2390,7 +2497,8 @@
       
 10074  			key = str(detail['VARIANT_HRH']) \
       
 10075  			 	+ str(detail['EPOCROOT']) \
       
 10076  		    	+ detail['SYSTEMINCLUDE'] \
       
 10077 -		    	+ detail['PLATFORM']
       
 10078 +		    	+ detail['PLATFORM'] \
       
 10079 +		    	+ detail['PLATMACROS']
       
 10080  
       
 10081  		    # Keep a short version of the key for use in filenames.
       
 10082  			uniq = hashlib.md5()
       
 10083 @@ -2426,11 +2534,7 @@
       
 10084  			# Is this an unseen build platform?
       
 10085  			# concatenate all the values we care about in a fixed order
       
 10086  			# and use that as a signature for the platform.
       
 10087 -			items = ['PLATFORM', 'EPOCROOT', 'VARIANT_HRH', 'SYSTEMINCLUDE', 'TESTCODE']
       
 10088 -			if raptor_utilities.getOSPlatform().startswith("win"):
       
 10089 -				items.append('PLATMACROS.WINDOWS')
       
 10090 -			else:
       
 10091 -				items.append('PLATMACROS.LINUX')
       
 10092 +			items = ['PLATFORM', 'PLATMACROS', 'EPOCROOT', 'VARIANT_HRH', 'SYSTEMINCLUDE', 'TESTCODE']
       
 10093  
       
 10094  			items.extend(interfaces)
       
 10095  			platform = ""
       
 10096 @@ -2452,20 +2556,8 @@
       
 10097  		# that are supposedly platform independent (e.g. PRJ_PLATFORMS)
       
 10098  		self.defaultPlatform = self.ExportPlatforms[0]
       
 10099  
       
 10100 -	def CheckValue(self, evaluator, key, default = None):
       
 10101 -		"""extract a value from an evaluator and raise an exception if None.
       
 10102 -
       
 10103 -		An optional default can be set to replace a None value."""
       
 10104 -		value = evaluator.Get(key)
       
 10105 -		if value == None:
       
 10106 -			if default == None:
       
 10107 -				raise MetaDataError("configuration " + evaluator.config.name +
       
 10108 -								    " has no variable " + key)
       
 10109 -			else:
       
 10110 -				return default
       
 10111 -		return value
       
 10112  
       
 10113 -	def ReadBldInfFiles(self, aFileList, doExportOnly):
       
 10114 +	def ReadBldInfFiles(self, aComponentList, doexport, dobuild = True):
       
 10115  		"""Take a list of bld.inf files and return a list of build specs.
       
 10116  
       
 10117  		The returned specification nodes will be suitable for all the build
       
 10118 @@ -2475,7 +2567,7 @@
       
 10119  		# we need a Filter node per export platform
       
 10120  		exportNodes = []
       
 10121  		for i,ep in enumerate(self.ExportPlatforms):
       
 10122 -			filter = raptor_data.Filter("export_" + str(i))
       
 10123 +			filter = raptor_data.Filter(name = "export_" + str(i))
       
 10124  
       
 10125  			# what configurations is this node active for?
       
 10126  			for config in ep['configs']:
       
 10127 @@ -2486,7 +2578,7 @@
       
 10128  		# we need a Filter node per build platform
       
 10129  		platformNodes = []
       
 10130  		for i,bp in enumerate(self.BuildPlatforms):
       
 10131 -			filter = raptor_data.Filter("build_" + str(i))
       
 10132 +			filter = raptor_data.Filter(name = "build_" + str(i))
       
 10133  
       
 10134  			# what configurations is this node active for?
       
 10135  			for config in bp['configs']:
       
 10136 @@ -2502,18 +2594,18 @@
       
 10137  
       
 10138  		# check that each bld.inf exists and add a Specification node for it
       
 10139  		# to the nodes of the export and build platforms that it supports.
       
 10140 -		for bif in aFileList:
       
 10141 -			if bif.isFile():
       
 10142 -				self.__Raptor.Info("Processing %s", str(bif))
       
 10143 +		for c in aComponentList:
       
 10144 +			if c.bldinf_filename.isFile():
       
 10145 +				self.__Raptor.Info("Processing %s", str(c.bldinf_filename))
       
 10146  				try:
       
 10147 -					self.AddComponentNodes(bif, exportNodes, platformNodes)
       
 10148 +					self.AddComponentNodes(c, exportNodes, platformNodes)
       
 10149  
       
 10150  				except MetaDataError, e:
       
 10151 -					self.__Raptor.Error(e.Text, bldinf=str(bif))
       
 10152 +					self.__Raptor.Error(e.Text, bldinf=str(c.bldinf_filename))
       
 10153  					if not self.__Raptor.keepGoing:
       
 10154  						return []
       
 10155  			else:
       
 10156 -				self.__Raptor.Error("build info file does not exist", bldinf=str(bif))
       
 10157 +				self.__Raptor.Error("build info file does not exist", bldinf=str(c.bldinf_filename))
       
 10158  				if not self.__Raptor.keepGoing:
       
 10159  					return []
       
 10160  
       
 10161 @@ -2545,6 +2637,7 @@
       
 10162  		# before we can do anything else (because raptor itself must do
       
 10163  		# some exports before the MMP files that include them can be
       
 10164  		# processed).
       
 10165 +		if doexport:
       
 10166  		for i,p in enumerate(exportNodes):
       
 10167  			exportPlatform = self.ExportPlatforms[i]
       
 10168  			for s in p.GetChildSpecs():
       
 10169 @@ -2555,10 +2648,12 @@
       
 10170  					self.__Raptor.Error("%s",e.Text)
       
 10171  					if not self.__Raptor.keepGoing:
       
 10172  						return []
       
 10173 +		else:
       
 10174 +			self.__Raptor.Info("Not Processing Exports (--noexport enabled)")
       
 10175  
       
 10176  		# this is a switch to return the function at this point if export
       
 10177  		# only option is specified in the run
       
 10178 -		if (self.__Raptor.doExportOnly):
       
 10179 +		if dobuild is not True:
       
 10180  			self.__Raptor.Info("Processing Exports only")
       
 10181  			return[]
       
 10182  
       
 10183 @@ -2601,8 +2696,8 @@
       
 10184  
       
 10185  		def LeftPortionOf(pth,sep):
       
 10186  			""" Internal function to return portion of str that is to the left of sep. 
       
 10187 -			The partition is case-insentive."""
       
 10188 -			length = len((pth.lower().partition(sep.lower()))[0])
       
 10189 +			The split is case-insensitive."""
       
 10190 +			length = len((pth.lower().split(sep.lower()))[0])
       
 10191  			return pth[0:length]
       
 10192  			
       
 10193  		modulePath = LeftPortionOf(LeftPortionOf(os.path.dirname(aBldInfPath), "group"), "ongoing")
       
 10194 @@ -2615,37 +2710,30 @@
       
 10195  		return moduleName
       
 10196  
       
 10197  
       
 10198 -	def AddComponentNodes(self, buildFile, exportNodes, platformNodes):
       
 10199 +	def AddComponentNodes(self, component, exportNodes, platformNodes):	
       
 10200  		"""Add Specification nodes for a bld.inf to the appropriate platforms."""
       
 10201 -		bldInfFile = BldInfFile(buildFile, self.__gnucpp, self.__Raptor)
       
 10202 -
       
 10203 -		specName = self.getSpecName(buildFile, fullPath=True)
       
 10204 +		bldInfFile = BldInfFile(component.bldinf_filename, self.__gnucpp, component.depfiles, self.__Raptor)
       
 10205 +		component.bldinf = bldInfFile 
       
 10206  
       
 10207 -		if isinstance(buildFile, raptor_xml.SystemModelComponent):
       
 10208 -			# this component came from a system_definition.xml
       
 10209 -			layer = buildFile.GetContainerName("layer")
       
 10210 -			component = buildFile.GetContainerName("component")
       
 10211 -		else:
       
 10212 -			# this is a plain old bld.inf file from the command-line
       
 10213 -			layer = ""
       
 10214 -			component = ""
       
 10215 +		specName = getSpecName(component.bldinf_filename, fullPath=True)
       
 10216  
       
 10217  		# exports are independent of build platform
       
 10218  		for i,ep in enumerate(self.ExportPlatforms):
       
 10219 -			specNode = raptor_data.Specification(specName)
       
 10220 +			specNode = raptor_data.Specification(name = specName)
       
 10221  
       
 10222  			# keep the BldInfFile object for later
       
 10223 -			specNode.bldinf = bldInfFile
       
 10224 +			specNode.component = component
       
 10225  
       
 10226  			# add some basic data in a component-wide variant
       
 10227 -			var = raptor_data.Variant()
       
 10228 -			var.AddOperation(raptor_data.Set("COMPONENT_META", str(buildFile)))
       
 10229 -			var.AddOperation(raptor_data.Set("COMPONENT_NAME", component))
       
 10230 -			var.AddOperation(raptor_data.Set("COMPONENT_LAYER", layer))
       
 10231 +			var = raptor_data.Variant(name='component-wide')
       
 10232 +			var.AddOperation(raptor_data.Set("COMPONENT_META", str(component.bldinf_filename)))
       
 10233 +			var.AddOperation(raptor_data.Set("COMPONENT_NAME", component.componentname))
       
 10234 +			var.AddOperation(raptor_data.Set("COMPONENT_LAYER", component.layername))
       
 10235  			specNode.AddVariant(var)
       
 10236  
       
 10237  			# add this bld.inf Specification to the export platform
       
 10238  			exportNodes[i].AddChild(specNode)
       
 10239 +			component.exportspecs.append(specNode)
       
 10240  
       
 10241  		# get the relevant build platforms
       
 10242  		listedPlatforms = bldInfFile.getBuildPlatforms(self.defaultPlatform)
       
 10243 @@ -2655,34 +2743,36 @@
       
 10244  													self.__baseuserdefaultplatforms)
       
 10245  
       
 10246  
       
 10247 -
       
 10248 -		outputDir = BldInfFile.outputPathFragment(buildFile)
       
 10249 +		outputDir = BldInfFile.outputPathFragment(component.bldinf_filename)
       
 10250  
       
 10251  		# Calculate "module name"
       
 10252 -		modulename = self.ModuleName(str(buildFile))
       
 10253 +		modulename = self.ModuleName(str(component.bldinf_filename))
       
 10254  
       
 10255  		for i,bp in enumerate(self.BuildPlatforms):
       
 10256 +			plat = bp['PLATFORM']
       
 10257  			if bp['PLATFORM'] in platforms:
       
 10258 -				specNode = raptor_data.Specification(specName)
       
 10259 +				specNode = raptor_data.Specification(name = specName)
       
 10260  
       
 10261 -				# keep the BldInfFile object for later
       
 10262 -				specNode.bldinf = bldInfFile
       
 10263 +				# remember what component this spec node comes from for later
       
 10264 +				specNode.component = component
       
 10265  
       
 10266  				# add some basic data in a component-wide variant
       
 10267 -				var = raptor_data.Variant()
       
 10268 -				var.AddOperation(raptor_data.Set("COMPONENT_META",str(buildFile)))
       
 10269 -				var.AddOperation(raptor_data.Set("COMPONENT_NAME", component))
       
 10270 -				var.AddOperation(raptor_data.Set("COMPONENT_LAYER", layer))
       
 10271 +				var = raptor_data.Variant(name='component-wide-settings-' + plat)
       
 10272 +				var.AddOperation(raptor_data.Set("COMPONENT_META",str(component.bldinf_filename)))
       
 10273 +				var.AddOperation(raptor_data.Set("COMPONENT_NAME", component.componentname))
       
 10274 +				var.AddOperation(raptor_data.Set("COMPONENT_LAYER", component.layername))
       
 10275  				var.AddOperation(raptor_data.Set("MODULE", modulename))
       
 10276  				var.AddOperation(raptor_data.Append("OUTPUTPATHOFFSET", outputDir, '/'))
       
 10277  				var.AddOperation(raptor_data.Append("OUTPUTPATH", outputDir, '/'))
       
 10278  				var.AddOperation(raptor_data.Append("BLDINF_OUTPUTPATH",outputDir, '/'))
       
 10279  
       
 10280 -				var.AddOperation(raptor_data.Set("TEST_OPTION", specNode.bldinf.getRomTestType(bp)))
       
 10281 +				var.AddOperation(raptor_data.Set("TEST_OPTION", component.bldinf.getRomTestType(bp)))
       
 10282  				specNode.AddVariant(var)
       
 10283  
       
 10284  				# add this bld.inf Specification to the build platform
       
 10285  				platformNodes[i].AddChild(specNode)
       
 10286 +				# also attach it into the component
       
 10287 +				component.specs.append(specNode)
       
 10288  
       
 10289  	def ProcessExports(self, componentNode, exportPlatform):
       
 10290  		"""Do the exports for a given platform and skeleton bld.inf node.
       
 10291 @@ -2694,18 +2784,18 @@
       
 10292  		[some MMP files #include exported .mmh files]
       
 10293  		"""
       
 10294  		if exportPlatform["TESTCODE"]:
       
 10295 -			exports = componentNode.bldinf.getTestExports(exportPlatform)
       
 10296 +			exports = componentNode.component.bldinf.getTestExports(exportPlatform)
       
 10297  		else:
       
 10298 -			exports = componentNode.bldinf.getExports(exportPlatform)
       
 10299 +			exports = componentNode.component.bldinf.getExports(exportPlatform)
       
 10300  
       
 10301  		self.__Raptor.Debug("%i exports for %s",
       
 10302 -							len(exports), str(componentNode.bldinf.filename))
       
 10303 +							len(exports), str(componentNode.component.bldinf.filename))
       
 10304  		if exports:
       
 10305  
       
 10306  			# each export is either a 'copy' or 'unzip'
       
 10307  			# maybe we should trap multiple exports to the same location here?
       
 10308  			epocroot = str(exportPlatform["EPOCROOT"])
       
 10309 -			bldinf_filename = str(componentNode.bldinf.filename)
       
 10310 +			bldinf_filename = str(componentNode.component.bldinf.filename)
       
 10311  			exportwhatlog="<whatlog bldinf='%s' mmp='' config=''>\n" % bldinf_filename
       
 10312  			for export in exports:
       
 10313  				expSrc = export.getSource()
       
 10314 @@ -2728,11 +2818,11 @@
       
 10315  							# export the file
       
 10316  							exportwhatlog += self.CopyExport(fromFile, toFile, bldinf_filename)
       
 10317  						else:
       
 10318 -							# unzip the zip
       
 10319 -							exportwhatlog += ("<archive zipfile='" + str(fromFile) + "'>\n")
       
 10320  							members = self.UnzipExport(fromFile, toFile,
       
 10321  									str(exportPlatform['SBS_BUILD_DIR']),
       
 10322  									bldinf_filename)
       
 10323 +							
       
 10324 +							exportwhatlog += ("<archive zipfile='" + str(fromFile) + "'>\n")
       
 10325  							if members != None:
       
 10326  								exportwhatlog += members
       
 10327  							exportwhatlog += "</archive>\n"
       
 10328 @@ -2767,8 +2857,10 @@
       
 10329  
       
 10330  			sourceMTime = 0
       
 10331  			destMTime = 0
       
 10332 +			sourceStat = 0
       
 10333  			try:
       
 10334 -				sourceMTime = os.stat(source_str)[stat.ST_MTIME]
       
 10335 +				sourceStat = os.stat(source_str)
       
 10336 +				sourceMTime = sourceStat[stat.ST_MTIME]
       
 10337  				destMTime = os.stat(dest_str)[stat.ST_MTIME]
       
 10338  			except OSError, e:
       
 10339  				if sourceMTime == 0:
       
 10340 @@ -2782,6 +2874,9 @@
       
 10341  				if os.path.exists(dest_str):
       
 10342  					os.chmod(dest_str,stat.S_IREAD | stat.S_IWRITE)
       
 10343  				shutil.copyfile(source_str, dest_str)
       
 10344 +
       
 10345 +				# Ensure that the destination file remains executable if the source was also:
       
 10346 +				os.chmod(dest_str,sourceStat[stat.ST_MODE] | stat.S_IREAD | stat.S_IWRITE | stat.S_IWGRP ) 
       
 10347  				self.__Raptor.Info("Copied %s to %s", source_str, dest_str)
       
 10348  			else:
       
 10349  				self.__Raptor.Info("Up-to-date: %s", dest_str)
       
 10350 @@ -2845,7 +2940,7 @@
       
 10351  				for file in files:
       
 10352  					if not file.endswith('/'):
       
 10353  						expfilename = str(generic_path.Join(destination, file))
       
 10354 -						exportwhatlog += "<member>" + expfilename + "</member>\n"
       
 10355 +						exportwhatlog += "<member>" + escape(expfilename) + "</member>\n"
       
 10356  
       
 10357  				self.__Raptor.PrintXML("<clean bldinf='" + bldinf_filename + "' mmp='' config=''>\n")
       
 10358  				self.__Raptor.PrintXML("<zipmarker>" + markerfilename + "</zipmarker>\n")
       
 10359 @@ -2876,6 +2971,11 @@
       
 10360  						expfile = open(expfilename, 'wb')
       
 10361  						expfile.write(exportzip.read(file))
       
 10362  						expfile.close()
       
 10363 +						
       
 10364 +						# Resurrect any file execution permissions present in the archived version
       
 10365 +						if (exportzip.getinfo(file).external_attr >> 16L) & 0100:
       
 10366 +							os.chmod(expfilename, stat.S_IMODE(os.stat(expfilename).st_mode) | stat.S_IXUSR | stat.S_IXGRP | stat.S_IXOTH)						
       
 10367 +						
       
 10368  						# Each file keeps its modified time the same as what it was before unzipping
       
 10369  						accesstime = time.time()
       
 10370  						datetime = exportzip.getinfo(file).date_time
       
 10371 @@ -2885,7 +2985,7 @@
       
 10372  						os.utime(expfilename,(accesstime, modifiedtime))
       
 10373  
       
 10374  						filecount += 1
       
 10375 -						exportwhatlog+="<member>" + expfilename + "</member>\n"
       
 10376 +						exportwhatlog+="<member>" + escape(expfilename) + "</member>\n"
       
 10377  					except IOError, e:
       
 10378  						message = "Could not unzip %s to %s: file %s: %s" %(source, destination, expfilename, str(e))
       
 10379  						if not self.__Raptor.keepGoing:
       
 10380 @@ -2899,7 +2999,7 @@
       
 10381  			self.__Raptor.PrintXML("<zipmarker>" + markerfilename +	"</zipmarker>\n")
       
 10382  			self.__Raptor.PrintXML("</clean>\n")
       
 10383  
       
 10384 -		except IOError:
       
 10385 +		except IOError, e:
       
 10386  			self.__Raptor.Warn("Problem while unzipping export %s to %s: %s",source,destination,str(e))
       
 10387  
       
 10388  		self.__Raptor.Info("Unzipped %d files from %s to %s", filecount, source, destination)
       
 10389 @@ -2915,12 +3015,12 @@
       
 10390  			return	# feature variation does not run extensions at all
       
 10391  		
       
 10392  		if buildPlatform["TESTCODE"]:
       
 10393 -			extensions = componentNode.bldinf.getTestExtensions(buildPlatform)
       
 10394 +			extensions = componentNode.component.bldinf.getTestExtensions(buildPlatform)
       
 10395  		else:
       
 10396 -			extensions = componentNode.bldinf.getExtensions(buildPlatform)
       
 10397 +			extensions = componentNode.component.bldinf.getExtensions(buildPlatform)
       
 10398  
       
 10399  		self.__Raptor.Debug("%i template extension makefiles for %s",
       
 10400 -							len(extensions), str(componentNode.bldinf.filename))
       
 10401 +							len(extensions), str(componentNode.component.bldinf.filename))
       
 10402  
       
 10403  		for i,extension in enumerate(extensions):
       
 10404  			if self.__Raptor.projects:
       
 10405 @@ -2999,14 +3099,20 @@
       
 10406  		gnuList = []
       
 10407  		makefileList = []
       
 10408  
       
 10409 +
       
 10410 +		component = componentNode.component
       
 10411 +
       
 10412 +
       
 10413  		if buildPlatform["TESTCODE"]:
       
 10414 -			MMPList = componentNode.bldinf.getTestMMPList(buildPlatform)
       
 10415 +			MMPList = component.bldinf.getTestMMPList(buildPlatform)
       
 10416  		else:
       
 10417 -			MMPList = componentNode.bldinf.getMMPList(buildPlatform)
       
 10418 +			MMPList = component.bldinf.getMMPList(buildPlatform)
       
 10419  
       
 10420 -		bldInfFile = componentNode.bldinf.filename
       
 10421 +		bldInfFile = component.bldinf.filename
       
 10422  
       
 10423  		for mmpFileEntry in MMPList['mmpFileList']:
       
 10424 +			component.AddMMP(mmpFileEntry.filename) # Tell the component another mmp is specified (for this platform)
       
 10425 +
       
 10426  			projectname = mmpFileEntry.filename.File().lower()
       
 10427  
       
 10428  			if self.__Raptor.projects:
       
 10429 @@ -3024,7 +3130,8 @@
       
 10430  
       
 10431  			mmpFile = MMPFile(foundmmpfile,
       
 10432  								   self.__gnucpp,
       
 10433 -								   bldinf = componentNode.bldinf,
       
 10434 +								   component.bldinf,
       
 10435 +								   component.depfiles,
       
 10436  								   log = self.__Raptor)
       
 10437  
       
 10438  			mmpFilename = mmpFile.filename
       
 10439 @@ -3058,7 +3165,7 @@
       
 10440  				continue
       
 10441  			
       
 10442  			# now build the specification tree
       
 10443 -			mmpSpec = raptor_data.Specification(self.getSpecName(mmpFilename))
       
 10444 +			mmpSpec = raptor_data.Specification(generic_path.Path(getSpecName(mmpFilename)))
       
 10445  			var = backend.BuildVariant
       
 10446  
       
 10447  			var.AddOperation(raptor_data.Set("PROJECT_META", str(mmpFilename)))
       
 10448 @@ -3094,7 +3201,7 @@
       
 10449  
       
 10450  			# Although not part of the MMP, some MMP-based build specs additionally require knowledge of their
       
 10451  			# container bld.inf exported headers
       
 10452 -			for export in componentNode.bldinf.getExports(buildPlatform):
       
 10453 +			for export in componentNode.component.bldinf.getExports(buildPlatform):
       
 10454  				destination = export.getDestination()
       
 10455  				if isinstance(destination, list):
       
 10456  					exportfile = str(destination[0])
       
 10457 @@ -3108,6 +3215,16 @@
       
 10458  			mmpSpec.AddVariant(var)
       
 10459  			componentNode.AddChild(mmpSpec)
       
 10460  
       
 10461 +			# if there are APPLY variants then add them to the mmpSpec too
       
 10462 +			for applyVar in backend.ApplyVariants:
       
 10463 +				try:
       
 10464 +					mmpSpec.AddVariant(self.__Raptor.cache.FindNamedVariant(applyVar))
       
 10465 +				except KeyError:
       
 10466 +					self.__Raptor.Error("APPLY unknown variant '%s' in %s",
       
 10467 +								        applyVar,
       
 10468 +								        str(mmpFileEntry.filename),
       
 10469 +								        bldinf=str(bldInfFile))
       
 10470 +
       
 10471  			# resources, stringtables and bitmaps are sub-nodes of this project
       
 10472  			# (do not add these for feature variant builds)
       
 10473  			
       
 10474 @@ -3150,7 +3267,7 @@
       
 10475  					self.projectList.remove(projectname)
       
 10476  
       
 10477  			self.__Raptor.Debug("%i gnumakefile extension makefiles for %s",
       
 10478 -						len(gnuList), str(componentNode.bldinf.filename))
       
 10479 +						len(gnuList), str(componentNode.component.bldinf.filename))
       
 10480  			var = raptor_data.Variant()
       
 10481  			gnuSpec = raptor_data.Specification("gnumakefile " + str(g.getMakefileName()))
       
 10482  			interface = buildPlatform["ext_makefile"]
       
 10483 @@ -3182,7 +3299,7 @@
       
 10484  					projectList.remove(projectname)
       
 10485  
       
 10486  			self.__Raptor.Debug("%i makefile extension makefiles for %s",
       
 10487 -						len(makefileList), str(componentNode.bldinf.filename))
       
 10488 +						len(makefileList), str(componentNode.component.bldinf.filename))
       
 10489  			var = raptor_data.Variant()
       
 10490  			gnuSpec = raptor_data.Specification("makefile " + str(m.getMakefileName()))
       
 10491  			interface = buildPlatform["ext_makefile"]
       
 10492 @@ -3203,17 +3320,6 @@
       
 10493  			gnuSpec.AddVariant(var)
       
 10494  			componentNode.AddChild(gnuSpec)
       
 10495  
       
 10496 -	def getSpecName(self, aFileRoot, fullPath=False):
       
 10497 -		"""Returns a build spec name: this is the file root (full path
       
 10498 -		or simple file name) made safe for use as a file name."""
       
 10499 -
       
 10500 -		if fullPath:
       
 10501 -			specName = str(aFileRoot).replace("/","_")
       
 10502 -			specName = specName.replace(":","")
       
 10503 -		else:
       
 10504 -			specName = aFileRoot.File()
       
 10505 -
       
 10506 -		return specName.lower()
       
 10507  
       
 10508  	def ApplyOSVariant(self, aBuildUnit, aEpocroot):
       
 10509  		# Form path to kif.xml and path to buildinfo.txt
       
 10510 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/python/raptor.py /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/python/raptor.py
       
 10511 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/python/raptor.py	2010-05-18 19:32:34.789348356 +0100
       
 10512 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/python/raptor.py	2010-05-17 18:47:53.092842000 +0100
       
 10513 @@ -1,5 +1,5 @@
       
 10514  #
       
 10515 -# Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
       
 10516 +# Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies).
       
 10517  # All rights reserved.
       
 10518  # This component and the accompanying materials are made available
       
 10519  # under the terms of the License "Eclipse Public License v1.0"
       
 10520 @@ -32,7 +32,9 @@
       
 10521  import raptor_cli
       
 10522  import raptor_data
       
 10523  import raptor_make
       
 10524 +import raptor_makefile
       
 10525  import raptor_meta
       
 10526 +import raptor_timing
       
 10527  import raptor_utilities
       
 10528  import raptor_version
       
 10529  import raptor_xml
       
 10530 @@ -40,7 +42,6 @@
       
 10531  import sys
       
 10532  import types
       
 10533  import time
       
 10534 -import re
       
 10535  import traceback
       
 10536  import pluginbox
       
 10537  from xml.sax.saxutils import escape
       
 10538 @@ -54,15 +55,19 @@
       
 10539  hostplatform_dir = os.environ["HOSTPLATFORM_DIR"]
       
 10540  
       
 10541  # defaults can use EPOCROOT
       
 10542 +
       
 10543  if "EPOCROOT" in os.environ:
       
 10544 -	epocroot = os.environ["EPOCROOT"].replace("\\","/")
       
 10545 +	incoming_epocroot = os.environ["EPOCROOT"]
       
 10546 +	epocroot = incoming_epocroot.replace("\\","/")
       
 10547  else:
       
 10548 -	if 'linux' in hostplatform:
       
 10549 -		epocroot=os.environ['HOME'] + os.sep + "epocroot"
       
 10550 -		os.environ["EPOCROOT"] = epocroot
       
 10551 -	else:
       
 10552 +	if 'win' in hostplatform:
       
 10553 +		incoming_epocroot = os.sep
       
 10554  		epocroot = "/"
       
 10555  		os.environ["EPOCROOT"] = os.sep
       
 10556 +	else:
       
 10557 +		epocroot=os.environ['HOME'] + os.sep + "epocroot"
       
 10558 +		os.environ["EPOCROOT"] = epocroot
       
 10559 +		incoming_epocroot = epocroot
       
 10560  
       
 10561  if "SBS_BUILD_DIR" in os.environ:
       
 10562  	sbs_build_dir = os.environ["SBS_BUILD_DIR"]
       
 10563 @@ -70,7 +75,6 @@
       
 10564  	sbs_build_dir = (epocroot + "/epoc32/build").replace("//","/")
       
 10565  
       
 10566  
       
 10567 -
       
 10568  # only use default XML from the epoc32 tree if it exists
       
 10569  defaultSystemConfig = "lib/config"
       
 10570  epoc32UserConfigDir = generic_path.Join(epocroot, "epoc32/sbs_config")
       
 10571 @@ -105,91 +109,219 @@
       
 10572  		}
       
 10573  
       
 10574  
       
 10575 -class ComponentGroup(object):
       
 10576 -	""" 	Some components that should be built togther 
       
 10577 -		e.g. a Layer in the system definition. 
       
 10578 +
       
 10579 +class ModelNode(object):
       
 10580 +	""" Represents any node in a a tree of build information
       
 10581 +	    e.g. a tree of bld.infs, mmps and finally things like resource blocks and string table blocks.
       
 10582 +	    This is before they are produced into "build" specs.
       
 10583  	""" 
       
 10584 -	def __init__(self, name, componentlist=[]):
       
 10585 -		self.components = componentlist
       
 10586 -		self.name = name
       
 10587 +
       
 10588 +	def __init__(self, id, parent = None):
       
 10589 +		self.id = id
       
 10590 +		self.type = type
       
 10591 +		self.specs = []
       
 10592 +		self.deps = []
       
 10593 +		self.children = set()
       
 10594 +		self.unfurled = False
       
 10595 +		self.parent = parent
       
 10596 +
       
 10597 +	# Allow one to make a set
       
 10598 +	def __hash__(self):
       
 10599 +		return hash(self.id)
       
 10600 +
       
 10601 +	def __cmp__(self,other):
       
 10602 +		return cmp(self.id, other)
       
 10603  
       
 10604  	def __iter__(self):
       
 10605 -		return iter(self.components)
       
 10606 +		return iter(self.children)
       
 10607  
       
 10608  	def __getitem__(self,x):
       
 10609  		if isinstance(x, slice):
       
 10610 -			return self.components[x.start:x.stop]
       
 10611 -		return self.components[x]
       
 10612 +			return self.children[x.start:x.stop]
       
 10613 +		return self.children[x]
       
 10614  
       
 10615  	def __setitem__(self,k, v):
       
 10616 -		self.components[k] = v
       
 10617 +		self.children[k] = v
       
 10618  
       
 10619  	def __len__(self):
       
 10620 -		return len(self.components)
       
 10621 +		return len(self.children)
       
 10622 +
       
 10623 +	def add(self, item):
       
 10624 +		return self.children.add(item)
       
 10625 +
       
 10626 +	def isunfurled(self, c):
       
 10627 +		return self.unfurled == False
       
 10628 +
       
 10629 +	def unfurl(self, build):
       
 10630 +		"""Find any children of this node by processing it, produces specs"""
       
 10631 +		pass
       
 10632 +
       
 10633 +	def unfurl_all(self, build):
       
 10634 +		"""Unfurl self and all children - preparatory e.g for realisation"""
       
 10635 +		if not self.unfurled:
       
 10636 +			self.unfurl(build)
       
 10637 +
       
 10638 +		self.realise_exports(build) # permit communication of dependencies between children
       
 10639 +
       
 10640 +		for c in self.children:
       
 10641 +			c.unfurl_all(build)
       
 10642 +
       
 10643 +
       
 10644 +	def realise_exports(self, build):
       
 10645 +		"""Do the things that are needed such that we can fully unfurl all
       
 10646 +		   sibling nodes.  i.e. this step is here to "take care" of the dependencies
       
 10647 +		   between siblings.
       
 10648 +		"""
       
 10649 +		pass
       
 10650 +
       
 10651 +	def realise_makefile(self, build, specs):
       
 10652 +		makefilename_base = build.topMakefile
       
 10653 +		if self.name is not None:
       
 10654 +			makefile = generic_path.Path(str(makefilename_base) + "_" + raptor_utilities.sanitise(self.name))
       
 10655 +		else:
       
 10656 +			makefile = generic_path.Path(str(makefilename_base))
       
 10657 +
       
 10658 +		# insert the start time into the Makefile name?
       
 10659 +		makefile.path = makefile.path.replace("%TIME", build.timestring)
       
 10660 +
       
 10661 +		build.InfoDiscovery(object_type = "layers", count = 1)
       
 10662 +		build.InfoStartTime(object_type = "layer", task = "parse",
       
 10663 +				key = str(makefile.path))
       
 10664 +		makefileset = build.maker.Write(makefile, specs, build.buildUnitsToBuild)
       
 10665 +		build.InfoEndTime(object_type = "layer", task = "parse",
       
 10666 +				key = str(makefile.path))
       
 10667 +
       
 10668 +		return makefileset
       
 10669 +
       
 10670 +
       
 10671 +
       
 10672 +	def realise(self, build):
       
 10673 +		"""Give the spec trees to the make engine and actually
       
 10674 +		"build" the product represented by this model node"""
       
 10675 +		# Must ensure that all children are unfurled at this point
       
 10676 +		self.unfurl_all(build)
       
 10677 +
       
 10678 +		sp = self.specs
       
 10679  
       
 10680 -	def extend(self, c):
       
 10681 -		self.components.extend(c)
       
 10682 +		build.AssertBuildOK()
       
 10683 +
       
 10684 +		m = self.realise_makefile(build, sp)
       
 10685 +
       
 10686 +		build.InfoStartTime(object_type = "layer", task = "build",
       
 10687 +				key = (str(m.directory) + "/" + str(m.filenamebase)))
       
 10688 +		result = build.Make(m)
       
 10689 +		build.InfoEndTime(object_type = "layer", task = "build",
       
 10690 +				key = (str(m.directory) + "/" + str(m.filenamebase)))
       
 10691 +
       
 10692 +
       
 10693 +		return result
       
 10694 +
       
 10695 +
       
 10696 +
       
 10697 +class Project(ModelNode):
       
 10698 +	"""A project or, in symbian-speak, an MMP
       
 10699 +	"""
       
 10700 +	def __init__(self, filename, parent = None):
       
 10701 +		super(Project,self).__init__(filename, parent = parent)
       
 10702 +		# Assume that components are specified in mmp files for now
       
 10703 +		# One day that tyranny might end.
       
 10704 +		self.mmp_name = str(generic_path.Path.Absolute(filename))
       
 10705 +		self.id = self.mmp_name
       
 10706 +		self.unfurled = False
       
 10707 +
       
 10708 +	def makefile(self, makefilename_base, engine, named = False):
       
 10709 +		"""Makefiles for individual mmps not feasible at the moment"""
       
 10710 +		pass 
       
 10711 +		# Cannot, currently, "unfurl an mmp" directly but do want
       
 10712 +		# to be able to simulate the overall recursive unfurling of a build.
       
 10713 +
       
 10714 +class Component(ModelNode):
       
 10715 +	"""A group of projects or, in symbian-speak, a bld.inf.
       
 10716 +	"""
       
 10717 +	def __init__(self, filename, layername="", componentname=""):
       
 10718 +		super(Component,self).__init__(filename)
       
 10719 +		# Assume that components are specified in bld.inf files for now
       
 10720 +		# One day that tyranny might end.
       
 10721 +		self.bldinf = None # Slot for a bldinf object if we spot one later
       
 10722 +		self.bldinf_filename = generic_path.Path.Absolute(filename)
       
 10723 +
       
 10724 +		self.id = str(self.bldinf_filename)
       
 10725 +		self.exportspecs = []
       
 10726 +		self.depfiles = []
       
 10727 +		self.unfurled = False # We can parse this
       
 10728 +		
       
 10729 +		# Extra metadata optionally supplied with system definition file gathered components
       
 10730 +		self.layername = layername
       
 10731 +		self.componentname = componentname
       
 10732 +
       
 10733 +	def AddMMP(self, filename):
       
 10734 +		self.children.add(Project(filename))
       
 10735 +
       
 10736 +
       
 10737 +class Layer(ModelNode):
       
 10738 +	""" Some components that should be built togther
       
 10739 +		e.g. a Layer in the system definition.
       
 10740 +		
       
 10741 +		Components that come from system definition files can
       
 10742 +		have extra surrounding metadata that we need to pass
       
 10743 +		on for use in log output.
       
 10744 +	"""
       
 10745 +	def __init__(self, name, componentlist=[]):
       
 10746 +		super(Layer,self).__init__(name)
       
 10747 +		self.name = name
       
 10748  	
       
 10749 -	def append(self, c):
       
 10750 -		self.components.append(c)
       
 10751 +		for c in componentlist:
       
 10752 +			if isinstance(c, raptor_xml.SystemModelComponent):
       
 10753 +				# this component came from a system_definition.xml
       
 10754 +				self.children.add(Component(c, c.GetContainerName("layer"), c.GetContainerName("component")))
       
 10755 +			else:
       
 10756 +				# this is a plain old bld.inf file from the command-line
       
 10757 +				self.children.add(Component(c))
       
 10758  
       
 10759 -	def GenerateSpecs(self, genericspecs, configs):
       
 10760 -		"""Return a build spec hierarchy for a ComponentGroup. This involves parsing the component MetaData (bld.infs, mmps). 
       
 10761 +	def unfurl(self, build):
       
 10762 +		"""Discover the children of this layer. This involves parsing the component MetaData (bld.infs, mmps).
       
 10763  		Takes a raptor object as a parameter (build), together with a list of Configurations.
       
 10764  
       
 10765 -		Returns a tuple consisting of a list of specification objects and a list of dependency files
       
 10766 -		that relate to these specs.
       
 10767 +		We currently have parsers that work on collections of components/bld.infs and that cannot
       
 10768 +		parse at a "finer" level.  So one can't 'unfurl' an mmp at the moment.
       
 10769 +
       
 10770 +		Returns True if the object was successfully unfurled.
       
 10771  		"""
       
 10772  
       
 10773 -		self.specs = []
       
 10774 -		self.specs.extend(genericspecs)
       
 10775 -		self.configs = configs
       
 10776 -		self.dependencies = set()
       
 10777 +		# setup all our components
       
 10778 +		for c in self.children:
       
 10779 +			c.specs = []
       
 10780 +
       
 10781 +		self.configs = build.buildUnitsToBuild
       
 10782 +
       
 10783  
       
 10784  		metaReader = None
       
 10785 -		if len (self.components):
       
 10786 +		if len (self.children):
       
 10787  			try:
       
 10788  				# create a MetaReader that is aware of the list of
       
 10789  				# configurations that we are trying to build.
       
 10790 -				metaReader = raptor_meta.MetaReader(build, configs)
       
 10791 +				metaReader = raptor_meta.MetaReader(build, build.buildUnitsToBuild)
       
 10792  
       
 10793  				# convert the list of bld.inf files into a specification
       
 10794  				# hierarchy suitable for all the configurations we are using.
       
 10795 -				self.specs.extend(metaReader.ReadBldInfFiles(self.components,build.doExportOnly))
       
 10796 +				self.specs = list(build.generic_specs)
       
 10797 +				self.specs.extend(metaReader.ReadBldInfFiles(self.children, doexport = build.doExport, dobuild = not build.doExportOnly))
       
 10798  
       
 10799  			except raptor_meta.MetaDataError, e:
       
 10800 -				log.Error(e.Text)
       
 10801 -
       
 10802 -		log.Info("Buildable specification group '%s'", name)
       
 10803 -		build.AttachSpecs(self.specs)
       
 10804 -
       
 10805 -		# Get a unique list of the dependency files that were created
       
 10806 -		if metaReader:
       
 10807 -			for c in metaReader.BuildPlatforms:
       
 10808 -				self.dependencies.update(c["METADEPS"])
       
 10809 -
       
 10810 -
       
 10811 -	def CreateMakefile(self, makefilename_base, engine, named = False):
       
 10812 -		if len(self.specs) <= 0:
       
 10813 -			return None
       
 10814 -
       
 10815 -		if named:
       
 10816 -			makefile = generic_path.Path(str(makefilename_base) + "_" + raptor_utilities.sanitise(self.name))
       
 10817 -		else:
       
 10818 -			makefile = generic_path.Path(str(makefilename_base))
       
 10819 -
       
 10820 -		# insert the start time into the Makefile name?
       
 10821 -		makefile.path = makefile.path.replace("%TIME", build.timestring)
       
 10822 +				build.Error(e.Text)
       
 10823  
       
 10824 -		engine.Write(makefile, self.specs, self.configs)
       
 10825 +		self.unfurled = True
       
 10826  
       
 10827 -		return makefile
       
 10828  
       
 10829 +	def meta_realise(self, build):
       
 10830 +		"""Generate specs that can be used to "take care of" finding out more
       
 10831 +		about this metaunit - i.e. one doesn't want to parse it immediately
       
 10832 +		but to create a makefile that will parse it.
       
 10833 +		In this case it allows bld.infs to be parsed in parallel by make."""
       
 10834  
       
 10835 -	def GenerateMetadataSpecs(self, configs):
       
 10836  		# insert the start time into the Makefile name?
       
 10837  
       
 10838 -		self.configs = build.GetConfig("build").GenerateBuildUnits()
       
 10839 +		self.configs = build.buildUnitsToBuild
       
 10840  
       
 10841  		# Pass certain CLI flags through to the makefile-generating sbs calls
       
 10842  		cli_options = ""
       
 10843 @@ -206,34 +338,53 @@
       
 10844  		if build.quiet == True:
       
 10845  			cli_options += " -q"
       
 10846  
       
 10847 +		if build.timing == True:
       
 10848 +			cli_options += " --timing"
       
 10849  		
       
 10850 -		nc = len(self.components)
       
 10851 -		number_blocks = 16
       
 10852 +		if build.noDependInclude == True:
       
 10853 +			cli_options += " --no-depend-include"
       
 10854 +
       
 10855 +		if build.noDependGenerate == True:
       
 10856 +			cli_options += " --no-depend-generate"
       
 10857 +
       
 10858 +
       
 10859 +		nc = len(self.children)
       
 10860 +		number_blocks = build.jobs
       
 10861  		block_size = (nc / number_blocks) + 1
       
 10862  		component_blocks = []
       
 10863  		spec_nodes = []
       
 10864  		
       
 10865  		b = 0
       
 10866 +		childlist = list(self.children)
       
 10867  		while b < nc:
       
 10868 -			component_blocks.append(self.components[b:b+block_size])
       
 10869 +			component_blocks.append(childlist[b:b+block_size])
       
 10870  			b += block_size
       
 10871  			
       
 10872 -		if len(component_blocks[-1]) <= 0:
       
 10873 +		while len(component_blocks[-1]) <= 0:
       
 10874  			component_blocks.pop()
       
 10875 +			number_blocks -= 1
       
 10876 +
       
 10877 +		build.Info("Parallel Parsing: bld.infs split into %d blocks\n", number_blocks)
       
 10878 +		# Cause the binding makefiles to have the toplevel makefile's
       
 10879 +		# name.  The bindee's have __pp appended.
       
 10880 +		tm = build.topMakefile.Absolute()
       
 10881 +		binding_makefiles = raptor_makefile.MakefileSet(str(tm.Dir()), build.maker.selectors, makefiles=None, filenamebase=str(tm.File()))
       
 10882 +		build.topMakefile = generic_path.Path(str(build.topMakefile) + "_pp")
       
 10883  		
       
 10884  		loop_number = 0
       
 10885  		for block in component_blocks:
       
 10886  			loop_number += 1
       
 10887  			specNode = raptor_data.Specification("metadata_" + self.name)
       
 10888  
       
 10889 -			componentList = " ".join([str(c) for c in block])
       
 10890 -			configList = " ".join([c.name for c in configs])
       
 10891 +			componentList = " ".join([str(c.bldinf_filename) for c in block])
       
 10892 +
       
 10893 +
       
 10894 +			configList = " ".join([c.name for c in self.configs if c.name != "build" ])
       
 10895  			
       
 10896  			makefile_path = str(build.topMakefile) + "_" + str(loop_number)
       
 10897  			try:
       
 10898  				os.unlink(makefile_path) # until we have dependencies working properly
       
 10899 -			except Exception,e:
       
 10900 -				# print "couldn't unlink %s: %s" %(componentMakefileName, str(e))
       
 10901 +			except Exception:
       
 10902  				pass
       
 10903  			
       
 10904  			# add some basic data in a component-wide variant
       
 10905 @@ -242,13 +393,19 @@
       
 10906  			var.AddOperation(raptor_data.Set("MAKEFILE_PATH", makefile_path))
       
 10907  			var.AddOperation(raptor_data.Set("CONFIGS", configList))
       
 10908  			var.AddOperation(raptor_data.Set("CLI_OPTIONS", cli_options))
       
 10909 +
       
 10910 +
       
 10911 +			# Allow the flm to skip exports. Note: this parameter
       
 10912 +			doexport_str = '1'
       
 10913 +			if not build.doExport:
       
 10914 +				doexport_str = ''
       
 10915 +			var.AddOperation(raptor_data.Set("DOEXPORT", doexport_str ))
       
 10916 +
       
 10917  			# Pass on '-n' (if specified) to the makefile-generating sbs calls
       
 10918  			if build.noBuild:
       
 10919  				var.AddOperation(raptor_data.Set("NO_BUILD", "1"))
       
 10920  			specNode.AddVariant(var)
       
 10921  	
       
 10922 -	
       
 10923 -	
       
 10924  			try:
       
 10925  				interface = build.cache.FindNamedInterface("build.makefiles")
       
 10926  				specNode.SetInterface(interface)
       
 10927 @@ -256,15 +413,30 @@
       
 10928  				build.Error("Can't find flm interface 'build.makefiles' ")
       
 10929  				
       
 10930  			spec_nodes.append(specNode)
       
 10931 +			binding_makefiles.addInclude(str(makefile_path)+"_all")
       
 10932  			
       
 10933 +		build.InfoDiscovery(object_type = "layers", count = 1)
       
 10934 +		build.InfoStartTime(object_type = "layer", task = "parse",
       
 10935 +				key = str(build.topMakefile))
       
 10936 +		m = self.realise_makefile(build, spec_nodes)
       
 10937 +		m.close()
       
 10938 +		gen_result = build.Make(m)
       
 10939 +
       
 10940 +		build.InfoEndTime(object_type = "layer", task = "parse",
       
 10941 +				key = str(build.topMakefile))
       
 10942 +		build.InfoStartTime(object_type = "layer", task = "build",
       
 10943 +				key = str(build.topMakefile))
       
 10944 +		build.Debug("Binding Makefile base name is %s ", binding_makefiles.filenamebase)
       
 10945 +		binding_makefiles.close()
       
 10946 +		b = build.Make(binding_makefiles)
       
 10947 +		build.InfoEndTime(object_type = "layer", task = "build",
       
 10948 +				key = str(build.topMakefile))
       
 10949 +		return b
       
 10950  			
       
 10951  
       
 10952 -		## possibly some error handling here?
       
 10953 -
       
 10954 -		self.specs = spec_nodes
       
 10955  
       
 10956  
       
 10957 -class BuildCompleteException(Exception):
       
 10958 +class BuildCannotProgressException(Exception):
       
 10959  	pass
       
 10960  
       
 10961  # raptor module classes
       
 10962 @@ -326,8 +498,8 @@
       
 10963  		# things to initialise
       
 10964  		self.args = []
       
 10965  
       
 10966 -		self.componentGroups = []
       
 10967 -		self.orderComponentGroups = False
       
 10968 +		self.layers = []
       
 10969 +		self.orderLayers = False
       
 10970  		self.commandlineComponents = []
       
 10971  
       
 10972  		self.systemModel = None
       
 10973 @@ -343,8 +515,10 @@
       
 10974  		self.maker = None
       
 10975  		self.debugOutput = False
       
 10976  		self.doExportOnly = False
       
 10977 +		self.doExport = True
       
 10978  		self.noBuild = False
       
 10979  		self.noDependInclude = False
       
 10980 +		self.noDependGenerate = False
       
 10981  		self.projects = set()
       
 10982  
       
 10983  		self.cache = raptor_cache.Cache(self)
       
 10984 @@ -360,6 +534,7 @@
       
 10985  		# what platform and filesystem are we running on?
       
 10986  		self.filesystem = raptor_utilities.getOSFileSystem()
       
 10987  
       
 10988 +		self.timing = False
       
 10989  		self.toolset = None
       
 10990  
       
 10991  		self.starttime = time.time()
       
 10992 @@ -374,6 +549,9 @@
       
 10993  		return True
       
 10994  
       
 10995  	def AddConfigName(self, name):
       
 10996 +		if name == "build":
       
 10997 +			traceback.print_stack((sys.stdout))
       
 10998 +			sys.exit(1)
       
 10999  		self.configNames.append(name)
       
 11000  		return True
       
 11001  
       
 11002 @@ -439,6 +617,16 @@
       
 11003  
       
 11004  	def SetExportOnly(self, TrueOrFalse):
       
 11005  		self.doExportOnly = TrueOrFalse
       
 11006 +		if not self.doExport:
       
 11007 +			self.Error("The --noexport and --export-only options are incompatible - won't to do anything useful")
       
 11008 +			return False
       
 11009 +		return True
       
 11010 +
       
 11011 +	def SetNoExport(self, TrueOrFalse):
       
 11012 +		self.doExport = not TrueOrFalse
       
 11013 +		if self.doExportOnly:
       
 11014 +			self.Error("The --noexport and --export-only options are incompatible - won't to do anything useful")
       
 11015 +			return False
       
 11016  		return True
       
 11017  
       
 11018  	def SetNoBuild(self, TrueOrFalse):
       
 11019 @@ -449,6 +637,10 @@
       
 11020  		self.noDependInclude = TrueOrFalse
       
 11021  		return True
       
 11022  		
       
 11023 +	def SetNoDependGenerate(self, TrueOrFalse):
       
 11024 +		self.noDependGenerate = TrueOrFalse
       
 11025 +		return True
       
 11026 +
       
 11027  	def SetKeepGoing(self, TrueOrFalse):
       
 11028  		self.keepGoing = TrueOrFalse
       
 11029  		return True
       
 11030 @@ -503,10 +695,16 @@
       
 11031  
       
 11032  		return True
       
 11033  
       
 11034 +	def SetTiming(self, TrueOrFalse):
       
 11035 +		self.timing = TrueOrFalse
       
 11036 +		return True
       
 11037 +
       
 11038  	def SetParallelParsing(self, type):
       
 11039  		type = type.lower()
       
 11040  		if type == "on":
       
 11041  			self.doParallelParsing = True
       
 11042 +		elif type == "slave":
       
 11043 +			self.isParallelParsingSlave = True
       
 11044  		elif type == "off":
       
 11045  			self.doParallelParsing = False
       
 11046  		else:
       
 11047 @@ -529,7 +727,7 @@
       
 11048  
       
 11049  	def PrintVersion(self,dummy):
       
 11050  		global name
       
 11051 -		print name, "version", raptor_version.Version()
       
 11052 +		print name, "version", raptor_version.fullversion()
       
 11053  		self.mission = Raptor.M_VERSION
       
 11054  		return False
       
 11055  
       
 11056 @@ -538,7 +736,7 @@
       
 11057  	def Introduction(self):
       
 11058  		"""Print a header of useful information about Raptor"""
       
 11059  
       
 11060 -		self.Info("%s: version %s\n", name, raptor_version.Version())
       
 11061 +		self.Info("%s: version %s\n", name, raptor_version.fullversion())
       
 11062  
       
 11063  		self.Info("%s %s", env, str(self.home))
       
 11064  		self.Info("Set-up %s", str(self.raptorXML))
       
 11065 @@ -546,8 +744,8 @@
       
 11066  		self.Info("Current working directory %s", os.getcwd())
       
 11067  		
       
 11068  		# the inherited environment
       
 11069 -		for e, value in os.environ.items():
       
 11070 -			self.Info("Environment %s=%s", e, value)
       
 11071 +		for e, value in sorted( os.environ.items() ):
       
 11072 +			self.Info("Environment %s=%s", e, value.replace("]]>", "]]&gt;"))
       
 11073  
       
 11074  		# and some general debug stuff
       
 11075  		self.Debug("Platform %s", "-".join(hostplatform))
       
 11076 @@ -659,32 +857,6 @@
       
 11077  
       
 11078  		self.cache.Load(self.systemFLM)
       
 11079  
       
 11080 -	def GetConfig(self, configname):
       
 11081 -		names = configname.split(".")
       
 11082 -
       
 11083 -		cache = self.cache
       
 11084 -
       
 11085 -		base = names[0]
       
 11086 -		mods = names[1:]
       
 11087 -
       
 11088 -		if base in cache.groups:
       
 11089 -			x = cache.FindNamedGroup(base)
       
 11090 -		elif base in cache.aliases:
       
 11091 -			x = cache.FindNamedAlias(base)
       
 11092 -		elif base in cache.variants:
       
 11093 -			x = cache.FindNamedVariant(base)
       
 11094 -		else:
       
 11095 -			raise Exception("Unknown build configuration '%s'" % configname)
       
 11096 -
       
 11097 -		x.ClearModifiers()
       
 11098 -
       
 11099 -
       
 11100 -		try:
       
 11101 -			for m in mods: x.AddModifier( cache.FindNamedVariant(m) )
       
 11102 -		except KeyError:
       
 11103 -			raise Exception("Unknown build configuration '%s'" % configname)
       
 11104 -		return x
       
 11105 -
       
 11106  	def GetBuildUnitsToBuild(self, configNames):
       
 11107  		"""Return a list of the configuration objects that correspond to the 
       
 11108  		   list of configuration names in the configNames parameter.
       
 11109 @@ -700,15 +872,7 @@
       
 11110  			else:
       
 11111  				configNames.append(self.defaultConfig)
       
 11112  
       
 11113 -		buildUnitsToBuild = set()
       
 11114 -
       
 11115 -
       
 11116 -		for c in set(configNames):
       
 11117 -			try:		
       
 11118 -				x = self.GetConfig(c)
       
 11119 -				buildUnitsToBuild.update( x.GenerateBuildUnits() )
       
 11120 -			except Exception, e:
       
 11121 -				self.FatalError(str(e))
       
 11122 +		buildUnitsToBuild = raptor_data.GetBuildUnits(configNames, self.cache, self)
       
 11123  
       
 11124  		for b in buildUnitsToBuild:
       
 11125  			self.Info("Buildable configuration '%s'", b.name)
       
 11126 @@ -770,13 +934,13 @@
       
 11127  				systemModel.DumpLayerInfo(layer)
       
 11128  
       
 11129  				if systemModel.IsLayerBuildable(layer):
       
 11130 -					layersToBuild.append(ComponentGroup(layer,
       
 11131 +					layersToBuild.append(Layer(layer,
       
 11132  							systemModel.GetLayerComponents(layer)))
       
 11133  
       
 11134  		return layersToBuild
       
 11135  
       
 11136  
       
 11137 -	# Add bld.inf or system definition xml to command line componentGroups (depending on preference)
       
 11138 +	# Add bld.inf or system definition xml to command line layers (depending on preference)
       
 11139  	def FindSysDefIn(self, aDir = None):
       
 11140  		# Find a system definition file
       
 11141  
       
 11142 @@ -801,22 +965,12 @@
       
 11143  			dir = generic_path.Path(aDir)
       
 11144  
       
 11145  		bldInf = dir.Append(self.buildInformation)
       
 11146 -		componentgroup = []
       
 11147  
       
 11148  		if bldInf.isFile():
       
 11149  			return bldInf
       
 11150  
       
 11151  		return None
       
 11152  
       
 11153 -	def AttachSpecs(self, groups):
       
 11154 -		# tell the specs which Raptor object they work for (so that they can
       
 11155 -		# access the cache and issue warnings and errors)
       
 11156 -		for spec in groups:
       
 11157 -			spec.SetOwner(self)
       
 11158 -			self.Info("Buildable specification '%s'", spec.name)
       
 11159 -			if self.debugOutput:
       
 11160 -				spec.DebugPrint()
       
 11161 -
       
 11162  	def GenerateGenericSpecs(self, configsToBuild):
       
 11163  		# if a Configuration has any config-wide interfaces
       
 11164  		# then add a Specification node to call each of them.
       
 11165 @@ -832,7 +986,7 @@
       
 11166  					filter.AddConfigCondition(c.name)
       
 11167  				else:
       
 11168  					# create a new node
       
 11169 -					filter = raptor_data.Filter("config_wide")
       
 11170 +					filter = raptor_data.Filter(name = "config_wide")
       
 11171  					filter.AddConfigCondition(c.name)
       
 11172  					for i in iface.split():
       
 11173  						spec = raptor_data.Specification(i)
       
 11174 @@ -842,50 +996,25 @@
       
 11175  					configWide[iface] = filter
       
 11176  					genericSpecs.append(filter)
       
 11177  
       
 11178 -		self.AttachSpecs(genericSpecs)
       
 11179 -
       
 11180  		return genericSpecs
       
 11181  
       
 11182  
       
 11183 -	def WriteMetadataDepsMakefile(self, component_group):
       
 11184 -		""" Takes a list of (filename, target) tuples that indicate where """
       
 11185 -		# Create a Makefile that includes all the dependency information for this spec group
       
 11186 -		build_metamakefile_name = \
       
 11187 -				os.path.abspath(sbs_build_dir).replace('\\','/').rstrip('/') + \
       
 11188 -				'/metadata_%s.mk' % component_group.name.lower()
       
 11189 -		bmkmf = open(build_metamakefile_name, "w+")
       
 11190 -		bmkmf.write("# Build Metamakefile - Dependencies for metadata during the 'previous' build\n\n")
       
 11191 -		bmkmf.write("PARSETARGET:=%s\n" % build_metamakefile_name)
       
 11192 -		bmkmf.write("%s:  \n" % build_metamakefile_name)
       
 11193 -		bmkmf.write("\t@echo -e \"\\nRE-RUNNING SBS with previous parameters\"\n")
       
 11194 -		bmkmf.write("\t@echo pretend-sbs %s\n" % " ".join(self.args))
       
 11195 -		try:
       
 11196 -			for m in component_group.dependencies:
       
 11197 -				filename, target = m
       
 11198 -				bmkmf.write("-include %s\n\n" % filename)
       
 11199 -		finally:
       
 11200 -			bmkmf.close()
       
 11201 -
       
 11202 -		return build_metamakefile_name
       
 11203 -
       
 11204 -
       
 11205  	def GetEvaluator(self, specification, configuration, gathertools=False):
       
 11206  		""" this will perform some caching later """
       
 11207 -		return raptor_data.Evaluator(self, specification, configuration, gathertools=gathertools)
       
 11208 -
       
 11209 -
       
 11210 -	def areMakefilesUptodate(self):
       
 11211 -		return False
       
 11212 +		return raptor_data.Evaluator(specification, configuration, gathertools=gathertools, cache = self.cache)
       
 11213  
       
 11214  
       
 11215 -	def Make(self, makefile):
       
 11216 -
       
 11217 -		if self.maker.Make(makefile):
       
 11218 +	def Make(self, makefileset):
       
 11219 +		if not self.noBuild and makefileset is not None:
       
 11220 +			if self.maker.Make(makefileset):
       
 11221  			self.Info("The make-engine exited successfully.")
       
 11222  			return True
       
 11223  		else:
       
 11224  			self.Error("The make-engine exited with errors.")
       
 11225  			return False
       
 11226 +		else:
       
 11227 +			self.Info("No build performed")
       
 11228 +
       
 11229  
       
 11230  
       
 11231  	def Report(self):
       
 11232 @@ -898,10 +1027,10 @@
       
 11233  		self.Info("Run time %s seconds" % self.runtime)
       
 11234  
       
 11235  	def AssertBuildOK(self):
       
 11236 -		"""Raise a BuildCompleteException if no further processing is required
       
 11237 +		"""Raise a BuildCannotProgressException if no further processing is required
       
 11238  		"""
       
 11239  		if self.Skip():
       
 11240 -			raise BuildCompleteException("")
       
 11241 +			raise BuildCannotProgressException("")
       
 11242  
       
 11243  		return True
       
 11244  
       
 11245 @@ -934,17 +1063,17 @@
       
 11246  			self.out.write("<?xml version=\"1.0\" encoding=\"ISO-8859-1\" ?>\n")
       
 11247  
       
 11248  			namespace = "http://symbian.com/xml/build/log"
       
 11249 +			progress_namespace = "http://symbian.com/xml/build/log/progress"
       
 11250  			schema = "http://symbian.com/xml/build/log/1_0.xsd"
       
 11251  
       
 11252 -			self.out.write("<buildlog sbs_version=\"%s\" xmlns=\"%s\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation=\"%s %s\">\n"
       
 11253 -						   % (raptor_version.Version(), namespace, namespace, schema))
       
 11254 +			self.out.write("<buildlog sbs_version=\"%s\" xmlns=\"%s\" xmlns:progress=\"%s\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation=\"%s %s\">\n"
       
 11255 +						   % (raptor_version.fullversion(), namespace, progress_namespace, namespace, schema))
       
 11256  			self.logOpen = True
       
 11257  		except Exception,e:
       
 11258  			self.out = sys.stdout # make sure that we can actually get errors out.
       
 11259  			self.logOpen = False
       
 11260  			self.FatalError("Unable to open the output logs: %s" % str(e))
       
 11261  
       
 11262 -
       
 11263  	def CloseLog(self):
       
 11264  		if self.logOpen:
       
 11265  			self.out.summary()
       
 11266 @@ -976,6 +1105,30 @@
       
 11267  		self.out.write("<info" + self.attributeString(attributes) + ">" +
       
 11268  		               escape(format % extras) + "</info>\n")
       
 11269  
       
 11270 +	def InfoDiscovery(self, object_type, count):
       
 11271 +		if self.timing:
       
 11272 +			try:
       
 11273 +				self.out.write(raptor_timing.Timing.discovery_string(object_type = object_type,
       
 11274 +						count = count))
       
 11275 +			except Exception, exception:
       
 11276 +				self.Error(exception.Text, function = "InfoDiscoveryTime")
       
 11277 +
       
 11278 +	def InfoStartTime(self, object_type, task, key):
       
 11279 +		if self.timing:
       
 11280 +			try:
       
 11281 +				self.out.write(raptor_timing.Timing.start_string(object_type = object_type,
       
 11282 +						task = task, key = key))
       
 11283 +			except Exception, exception:
       
 11284 +				self.Error(exception.Text, function = "InfoStartTime")
       
 11285 +
       
 11286 +	def InfoEndTime(self, object_type, task, key):
       
 11287 +		if self.timing:
       
 11288 +			try:
       
 11289 +				self.out.write(raptor_timing.Timing.end_string(object_type = object_type,
       
 11290 +						task = task, key = key))
       
 11291 +			except Exception, exception:
       
 11292 +				self.Error(exception.Text, function = "InfoEndTime")
       
 11293 +
       
 11294  	def Debug(self, format, *extras, **attributes):
       
 11295  		"Send a debugging message to the configured channel"
       
 11296  
       
 11297 @@ -1019,28 +1172,11 @@
       
 11298  		if format:
       
 11299  			self.out.write(format % extras)
       
 11300  
       
 11301 -
       
 11302 -	def MakeComponentGroup(self, cg):
       
 11303 -		if not self.maker:
       
 11304 -			self.maker = raptor_make.MakeEngine(self)
       
 11305 -
       
 11306 -		if self.maker == None:
       
 11307 -			self.Error("No make engine present")
       
 11308 -			return None
       
 11309 -
       
 11310 -		makefile = cg.CreateMakefile(self.topMakefile, self.maker, self.systemDefinitionOrderLayers)
       
 11311 -		if (not self.noBuild and makefile is not None) \
       
 11312 -				or self.doParallelParsing:
       
 11313 -			# run the build for a single group of specs
       
 11314 -			self.Make(makefile)
       
 11315 -		else:
       
 11316 -			self.Info("No build performed for %s" % cg.name)
       
 11317 -
       
 11318 -	def GetComponentGroupsFromCLI(self):
       
 11319 -		"""Returns the list of componentGroups as specified by the
       
 11320 +	def GetLayersFromCLI(self):
       
 11321 +		"""Returns the list of layers as specified by the
       
 11322  		   commandline interface to Raptor e.g. parameters
       
 11323  		   or the current directory"""
       
 11324 -		componentGroups=[]
       
 11325 +		layers=[]
       
 11326  		# Look for bld.infs or sysdefs in the current dir if none were specified
       
 11327  		if self.systemDefinitionFile == None and len(self.commandlineComponents) == 0:
       
 11328  			if not self.preferBuildInfoToSystemDefinition:
       
 11329 @@ -1049,38 +1185,39 @@
       
 11330  				if self.systemDefinitionFile == None:
       
 11331  					aComponent = self.FindComponentIn(cwd)
       
 11332  					if aComponent:
       
 11333 -						componentGroups.append(ComponentGroup('default',[aComponent]))
       
 11334 +						layers.append(Layer('default',[aComponent]))
       
 11335  			else:
       
 11336  				aComponent = self.FindComponentIn(cwd)
       
 11337  				if aComponent is None:
       
 11338  					self.systemDefinitionFile = self.FindSysDefIn(cwd)
       
 11339  				else:
       
 11340 -					componentGroups.append(ComponentGroup('default',[aComponent]))
       
 11341 +					layers.append(Layer('default',[aComponent]))
       
 11342  
       
 11343 -			if len(componentGroups) <= 0 and  self.systemDefinitionFile == None:
       
 11344 +			if len(layers) <= 0 and  self.systemDefinitionFile == None:
       
 11345  				self.Warn("No default bld.inf or system definition file found in current directory (%s)", cwd)
       
 11346  
       
 11347  		# If we now have a System Definition to parse then get the layers of components
       
 11348  		if self.systemDefinitionFile != None:
       
 11349  			systemModel = raptor_xml.SystemModel(self, self.systemDefinitionFile, self.systemDefinitionBase)
       
 11350 -			componentGroups = self.GatherSysModelLayers(systemModel, self.systemDefinitionRequestedLayers)
       
 11351 +			layers = self.GatherSysModelLayers(systemModel, self.systemDefinitionRequestedLayers)
       
 11352  			
       
 11353  		# Now get components specified on a commandline - build them after any
       
 11354  		# layers in the system definition.
       
 11355  		if len(self.commandlineComponents) > 0:
       
 11356 -			componentGroups.append(ComponentGroup('commandline',self.commandlineComponents))
       
 11357 +			layers.append(Layer('commandline',self.commandlineComponents))
       
 11358  
       
 11359  		# If we aren't building components in order then flatten down
       
 11360  		# the groups
       
 11361  		if not self.systemDefinitionOrderLayers:
       
 11362  			# Flatten the layers into one group of components if
       
 11363  			# we are not required to build them in order.
       
 11364 -			newcg = ComponentGroup("all")
       
 11365 -			for cg in componentGroups:
       
 11366 -				newcg.extend(cg)
       
 11367 -			componentGroups = [newcg]
       
 11368 +			newcg = Layer("all")
       
 11369 +			for cg in layers:
       
 11370 +				for c in cg:
       
 11371 +					newcg.add(c)
       
 11372 +			layers = [newcg]
       
 11373  
       
 11374 -		return componentGroups
       
 11375 +		return layers
       
 11376  
       
 11377  	def Build(self):
       
 11378  
       
 11379 @@ -1102,20 +1239,24 @@
       
 11380  
       
 11381  			# find out what configurations to build
       
 11382  			self.AssertBuildOK()
       
 11383 -			buildUnitsToBuild = set()
       
 11384  			buildUnitsToBuild = self.GetBuildUnitsToBuild(self.configNames)
       
 11385  
       
 11386 +			if len(buildUnitsToBuild) == 0:
       
 11387 +				raise BuildCannotProgressException("No configurations to build.")
       
 11388 +			
       
 11389 +			self.buildUnitsToBuild = buildUnitsToBuild
       
 11390 +
       
 11391  			# find out what components to build, and in what way
       
 11392 -			componentGroups = []
       
 11393 +			layers = []
       
 11394  
       
 11395  			self.AssertBuildOK()
       
 11396  			if len(buildUnitsToBuild) >= 0:
       
 11397 -				componentGroups = self.GetComponentGroupsFromCLI()
       
 11398 +				layers = self.GetLayersFromCLI()
       
 11399  
       
 11400 -			componentCount = reduce(lambda x,y : x + y, [len(cg) for cg in componentGroups])
       
 11401 +			componentCount = reduce(lambda x,y : x + y, [len(cg) for cg in layers])
       
 11402  
       
 11403  			if not componentCount > 0:
       
 11404 -				raise BuildCompleteException("No components to build.")
       
 11405 +				raise BuildCannotProgressException("No components to build.")
       
 11406  
       
 11407  			# check the configurations (tools versions)
       
 11408  			self.AssertBuildOK()
       
 11409 @@ -1123,35 +1264,36 @@
       
 11410  			if self.toolcheck != 'off':
       
 11411  				self.CheckConfigs(buildUnitsToBuild)
       
 11412  			else:
       
 11413 -				self.Info(" Not Checking Tool Versions")
       
 11414 +				self.Info("Not Checking Tool Versions")
       
 11415  
       
 11416  			self.AssertBuildOK()
       
 11417  
       
 11418 +			# Setup a make engine.
       
 11419 +			if not self.maker:
       
 11420 +				try:
       
 11421 +					self.maker = raptor_make.MakeEngine(self, self.makeEngine)
       
 11422 +				except raptor_make.BadMakeEngineException,e:
       
 11423 +					self.Error("Unable to use make engine: %s " % str(e))
       
 11424  
       
 11425 -			# if self.doParallelParsing and not (len(componentGroups) == 1 and len(componentGroups[0]) == 1):
       
 11426 +
       
 11427 +			self.AssertBuildOK()
       
 11428 +
       
 11429 +			# if self.doParallelParsing and not (len(layers) == 1 and len(layers[0]) == 1):
       
 11430  			if self.doParallelParsing:
       
 11431  				# Create a Makefile to parse components in parallel and build them
       
 11432 -				for cg in componentGroups:
       
 11433 -					cg.GenerateMetadataSpecs(buildUnitsToBuild)
       
 11434 -					self.MakeComponentGroup(cg)
       
 11435 -				if self.noBuild:
       
 11436 -					self.Info("No build performed")
       
 11437 +				for l in layers:
       
 11438 +					l.meta_realise(self)
       
 11439  			else:
       
 11440  				# Parse components serially, creating one set of makefiles
       
 11441  				# create non-component specs
       
 11442 -				self.AssertBuildOK()
       
 11443 -				generic_specs = self.GenerateGenericSpecs(buildUnitsToBuild)
       
 11444 +				self.generic_specs = self.GenerateGenericSpecs(buildUnitsToBuild)
       
 11445  
       
 11446  				self.AssertBuildOK()
       
 11447 -				for cg in componentGroups:
       
 11448 +				for l in layers:
       
 11449  					# create specs for a specific group of components
       
 11450 -					cg.GenerateSpecs(generic_specs, buildUnitsToBuild)
       
 11451 -					self.WriteMetadataDepsMakefile(cg)	
       
 11452 +					l.realise(self)
       
 11453  					
       
 11454 -					# generate the makefiles for one group of specs
       
 11455 -					self.MakeComponentGroup(cg)
       
 11456 -
       
 11457 -		except BuildCompleteException,b:
       
 11458 +		except BuildCannotProgressException,b:
       
 11459  			if str(b) != "":
       
 11460  				self.Info(str(b))
       
 11461  
       
 11462 @@ -1185,6 +1327,8 @@
       
 11463  class BuildStats(object):
       
 11464  
       
 11465  	def __init__(self, raptor_instance):
       
 11466 +		self.incoming_epocroot = incoming_epocroot
       
 11467 +		self.epocroot = epocroot
       
 11468  		self.logFileName = raptor_instance.logFileName
       
 11469  		self.quiet = raptor_instance.quiet
       
 11470  		self.doCheck = raptor_instance.doCheck
       
 11471 @@ -1212,17 +1356,7 @@
       
 11472  	# object which represents a build
       
 11473  	b = Raptor.CreateCommandlineBuild(argv)
       
 11474  
       
 11475 -	# allow all objects to log to the
       
 11476 -	# build they're being used in
       
 11477 -	global build
       
 11478 -	global log
       
 11479 -	build = b
       
 11480 -	log = b
       
 11481 -
       
 11482 -
       
 11483 -	result = b.Build()
       
 11484 -
       
 11485 -	return result
       
 11486 +	return b.Build()
       
 11487  
       
 11488  
       
 11489  def DisplayBanner():
       
 11490 Only in /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/python: raptor_timing.py
       
 11491 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/python/raptor_version.py /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/python/raptor_version.py
       
 11492 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/python/raptor_version.py	2010-05-18 19:32:34.793348934 +0100
       
 11493 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/python/raptor_version.py	2010-05-17 18:47:53.100842000 +0100
       
 11494 @@ -1,5 +1,5 @@
       
 11495  #
       
 11496 -# Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
       
 11497 +# Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies).
       
 11498  # All rights reserved.
       
 11499  # This component and the accompanying materials are made available
       
 11500  # under the terms of the License "Eclipse Public License v1.0"
       
 11501 @@ -13,8 +13,15 @@
       
 11502  #
       
 11503  # Description: 
       
 11504  # raptor version information module
       
 11505 -#
       
 11506  
       
 11507 -def Version():
       
 11508 +# replace CHANGESET with the Hg changeset for ANY release
       
 11509 +
       
 11510 +version=(2,13,0,"2010-04-12","symbian build system","CHANGESET")
       
 11511 +
       
 11512 +def numericversion():
       
 11513 +	"""Raptor version string"""
       
 11514 +	return "%d.%d.%d" % version[:3]
       
 11515 +
       
 11516 +def fullversion():
       
 11517  	"""Raptor version string"""
       
 11518 -	return "2.10.1 [2009-10-27 sf prerelease]"
       
 11519 +	return "%d.%d.%d [%s %s %s]" % version
       
 11520 Only in /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/python: raptor_version.py.bak
       
 11521 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/python/raptor_xml.py /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/python/raptor_xml.py
       
 11522 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/python/raptor_xml.py	2010-05-18 19:32:34.793348934 +0100
       
 11523 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/python/raptor_xml.py	2010-05-17 18:47:53.100842000 +0100
       
 11524 @@ -1,5 +1,5 @@
       
 11525  #
       
 11526 -# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
       
 11527 +# Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies).
       
 11528  # All rights reserved.
       
 11529  # This component and the accompanying materials are made available
       
 11530  # under the terms of the License "Eclipse Public License v1.0"
       
 11531 @@ -144,9 +144,10 @@
       
 11532  	"""Path sub-class that wraps up a component bld.inf file with
       
 11533  	system_definition.xml context information."""
       
 11534  
       
 11535 -	def __init__(self, aBldInfFile, aContainerNames, aSystemDefinitionFile, aSystemDefinitionBase, aSystemDefinitionVersion):
       
 11536 +	def __init__(self, aBldInfFile, aLayerName, aContainerNames, aSystemDefinitionFile, aSystemDefinitionBase, aSystemDefinitionVersion):
       
 11537  		generic_path.Path.__init__(self, aBldInfFile.Absolute().path)
       
 11538  		self.__ContainerNames = aContainerNames
       
 11539 +		self.__LayerName = aLayerName
       
 11540  		self.__SystemDefinitionFile = aSystemDefinitionFile
       
 11541  		self.__SystemDefinitionBase = aSystemDefinitionBase
       
 11542  		self.__SystemDefinitionVersion = aSystemDefinitionVersion
       
 11543 @@ -157,9 +158,12 @@
       
 11544  	def GetSystemDefinitionBase(self):
       
 11545  		return self.__SystemDefinitionBase
       
 11546  
       
 11547 -	def GetSystemDefinitionFile(self):
       
 11548 +	def GetSystemDefinitionVersion(self):
       
 11549  		return self.__SystemDefinitionVersion
       
 11550  
       
 11551 +	def GetLayerName(self):
       
 11552 +		return self.__LayerName
       
 11553 +
       
 11554  	def GetContainerName(self, aContainerType):
       
 11555  		if self.__ContainerNames.has_key(aContainerType):
       
 11556  		  return self.__ContainerNames[aContainerType]
       
 11557 @@ -174,6 +178,7 @@
       
 11558  		self.__SystemDefinitionFile = aSystemDefinitionFile.GetLocalString()
       
 11559  		self.__SystemDefinitionBase = aSystemDefinitionBase.GetLocalString()
       
 11560  		self.__Version = {'MAJOR':0,'MID':0,'MINOR':0}
       
 11561 +		self.__IdAttribute = "name"
       
 11562  		self.__ComponentRoot = ""
       
 11563  		self.__TotalComponents = 0
       
 11564  		self.__LayerList = []
       
 11565 @@ -222,6 +227,10 @@
       
 11566  	def DumpInfo(self):
       
 11567  		self.__Logger.Info("Found %d bld.inf references in %s within %d layers:", len(self.GetAllComponents()), self.__SystemDefinitionFile, len(self.GetLayerNames()))
       
 11568  		self.__Logger.Info("\t%s", ", ".join(self.GetLayerNames()))
       
 11569 +		self.__Logger.InfoDiscovery(object_type = "layers",
       
 11570 +				count = len(self.GetLayerNames()))
       
 11571 +		self.__Logger.InfoDiscovery(object_type = "bld.inf references",
       
 11572 +				count = len(self.GetAllComponents()))
       
 11573  
       
 11574  	def __Read(self):
       
 11575  		if not os.path.exists(self.__SystemDefinitionFile):
       
 11576 @@ -259,42 +268,62 @@
       
 11577  
       
 11578  		if self.__Version['MAJOR'] == 1 and self.__Version['MID'] > 2:
       
 11579  			self.__ComponentRoot = self.__SystemDefinitionBase
       
 11580 -		elif self.__Version['MAJOR'] == 2:
       
 11581 -			# 2.0.0 format supports SOURCEROOT as an environment specified base - we respect this, unless
       
 11582 +		elif self.__Version['MAJOR'] == 2 or self.__Version['MAJOR'] == 3:
       
 11583 +			# 2.0.x and 3.0.0 formats support SOURCEROOT or SRCROOT as an environment specified base - we respect this, unless
       
 11584  			# explicitly overridden on the command line
       
 11585 -			if os.environ.has_key('SOURCEROOT'):
       
 11586 +			if os.environ.has_key('SRCROOT'):
       
 11587 +				self.__ComponentRoot = generic_path.Path(os.environ['SRCROOT'])
       
 11588 +			elif os.environ.has_key('SOURCEROOT'):
       
 11589  				self.__ComponentRoot = generic_path.Path(os.environ['SOURCEROOT'])
       
 11590 +				
       
 11591  			if self.__SystemDefinitionBase and self.__SystemDefinitionBase != ".":
       
 11592  				self.__ComponentRoot = self.__SystemDefinitionBase
       
 11593 -				if os.environ.has_key('SOURCEROOT'):
       
 11594 +				if os.environ.has_key('SRCROOT'):
       
 11595 +					self.__Logger.Info("Command line specified System Definition file base \'%s\' overriding environment SRCROOT \'%s\'", self.__SystemDefinitionBase, os.environ['SRCROOT'])
       
 11596 +				elif os.environ.has_key('SOURCEROOT'):
       
 11597  					self.__Logger.Info("Command line specified System Definition file base \'%s\' overriding environment SOURCEROOT \'%s\'", self.__SystemDefinitionBase, os.environ['SOURCEROOT'])
       
 11598  		else:
       
 11599  			self.__Logger.Error("Cannot process schema version %s of file %s", version.string, self.__SystemDefinitionFile)
       
 11600  			return False
       
 11601  
       
 11602 +		if self.__Version['MAJOR'] >= 3:
       
 11603 +			# id is the unique identifier for 3.0 and later schema
       
 11604 +			self.__IdAttribute = "id"
       
 11605 +
       
 11606  		return True
       
 11607  
       
 11608  	def __Parse(self):
       
 11609 -		# find the <systemModel> element (there can be 0 or 1) and search any <layer> elements for <unit> elements with "bldFile" attributes
       
 11610 +		# For 2.0 and earlier: find the <systemModel> element (there can be 0 or 1) and search any <layer> elements for <unit> elements with "bldFile" attributes
       
 11611  		# the <layer> context of captured "bldFile" attributes is recorded as we go
       
 11612 +		# For 3.0 and later, process any architectural topmost element, use the topmost element with an id as the "layer"
       
 11613  		for child in self.__SystemDefinitionElement.childNodes:
       
 11614 -			if child.localName == "systemModel":
       
 11615 +			if child.localName in ["systemModel", "layer", "package", "collection", "component"]:
       
 11616  				self.__ProcessSystemModelElement(child)
       
 11617  
       
 11618  	def __CreateComponent(self, aBldInfFile, aUnitElement):
       
 11619  		# take a resolved bld.inf file and associated <unit/> element and returns a populated Component object
       
 11620  		containers = {}
       
 11621  		self.__GetElementContainers(aUnitElement, containers)
       
 11622 -		component = SystemModelComponent(aBldInfFile, containers, self.__SystemDefinitionFile, self.__SystemDefinitionBase, self.__Version)
       
 11623 +		layer = self.__GetEffectiveLayer(aUnitElement)
       
 11624 +		component = SystemModelComponent(aBldInfFile, layer, containers, self.__SystemDefinitionFile, self.__SystemDefinitionBase, self.__Version)
       
 11625  
       
 11626  		return component
       
 11627  
       
 11628 +	def __GetEffectiveLayer(self, aElement):
       
 11629 +		#' return the ID of the topmost item which has an ID. For 1.x and 2.x, this will always be layer, for 3.x, it will be the topmost ID'd element in the file
       
 11630 +		# never call this on the root element
       
 11631 +		if aElement.parentNode.hasAttribute(self.__IdAttribute):
       
 11632 +			return self.__GetEffectiveLayer(aElement.parentNode)
       
 11633 +		elif aElement.hasAttribute(self.__IdAttribute):
       
 11634 +			return aElement.getAttribute(self.__IdAttribute)
       
 11635 +		return ""
       
 11636 +
       
 11637  	def __GetElementContainers(self, aElement, aContainers):
       
 11638  		# take a <unit/> element and creates a type->name dictionary of all of its parent containers
       
 11639  		# We're only interested in parent nodes if they're not the top-most node
       
 11640  		if aElement.parentNode.parentNode:
       
 11641  			parent = aElement.parentNode
       
 11642 -			name = parent.getAttribute("name")
       
 11643 +			name = parent.getAttribute(self.__IdAttribute)
       
 11644  
       
 11645  			if name:
       
 11646  				aContainers[parent.tagName] = name
       
 11647 @@ -305,8 +334,9 @@
       
 11648  		"""Search for XML <unit/> elements with 'bldFile' attributes and resolve concrete bld.inf locations
       
 11649  		with an appreciation of different schema versions."""
       
 11650  
       
 11651 -		if aElement.tagName == "layer":
       
 11652 -			currentLayer = aElement.getAttribute("name")
       
 11653 +		# The effective "layer" is the item whose parent does not have an id (or name in 2.x and earlier)
       
 11654 +		if not aElement.parentNode.hasAttribute(self.__IdAttribute) :
       
 11655 +			currentLayer = aElement.getAttribute(self.__IdAttribute)
       
 11656  
       
 11657  			if not self.__LayerDetails.has_key(currentLayer):
       
 11658  				self.__LayerDetails[currentLayer] = []
       
 11659 @@ -320,10 +350,10 @@
       
 11660  			if bldFileValue:
       
 11661  				bldInfRoot = self.__ComponentRoot
       
 11662  
       
 11663 -				if self.__Version['MAJOR'] == 1 and self.__Version['MID'] == 4:
       
 11664 -					# version 1.4.x schema paths can use DOS slashes
       
 11665 +				if self.__Version['MAJOR'] == 1:
       
 11666 +					# version 1.x schema paths can use DOS slashes
       
 11667  					bldFileValue = raptor_utilities.convertToUnixSlash(bldFileValue)
       
 11668 -				elif self.__Version['MAJOR'] == 2:
       
 11669 +				elif self.__Version['MAJOR'] >= 2:
       
 11670  					# version 2.x.x schema paths are subject to a "root" attribute off-set, if it exists
       
 11671  					rootValue = aElement.getAttribute("root")
       
 11672  
       
 11673 @@ -338,8 +368,14 @@
       
 11674  
       
 11675  				group = generic_path.Path(bldFileValue)
       
 11676  
       
 11677 +				if self.__Version['MAJOR'] < 3:
       
 11678 +					# absolute paths are not changed by root var in 1.x and 2.x
       
 11679  				if not group.isAbsolute() and bldInfRoot:
       
 11680  					group = generic_path.Join(bldInfRoot, group)
       
 11681 +				else:
       
 11682 +					# only absolute paths are changed by root var in 3.x
       
 11683 +					if group.isAbsolute() and bldInfRoot:
       
 11684 +						group = generic_path.Join(bldInfRoot, group)
       
 11685  
       
 11686  				bldinf = generic_path.Join(group, "bld.inf").FindCaseless()
       
 11687  
       
 11688 @@ -347,7 +383,7 @@
       
 11689  					self.__Logger.Error("No bld.inf found at %s in %s", group.GetLocalString(), self.__SystemDefinitionFile)
       
 11690  				else:
       
 11691  					component = self.__CreateComponent(bldinf, aElement)
       
 11692 -					layer = component.GetContainerName("layer")
       
 11693 +					layer = component.GetLayerName()
       
 11694  					if layer:
       
 11695  						self.__LayerDetails[layer].append(component)
       
 11696  						self.__TotalComponents += 1
       
 11697 Only in /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor: RELEASE-NOTES.html
       
 11698 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/schema/build/log/1_0.xsd /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/schema/build/log/1_0.xsd
       
 11699 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/schema/build/log/1_0.xsd	2010-05-18 19:32:34.797348465 +0100
       
 11700 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/schema/build/log/1_0.xsd	2010-05-17 18:47:53.100842000 +0100
       
 11701 @@ -3,7 +3,7 @@
       
 11702  
       
 11703  	<xsd:annotation>
       
 11704  		<xsd:documentation xml:lang="en">
       
 11705 -			Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
       
 11706 +			Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies).
       
 11707  			All rights reserved.
       
 11708  			This component and the accompanying materials are made available
       
 11709  			uunder the terms of the License "Eclipse Public License v1.0"
       
 11710 @@ -60,7 +60,8 @@
       
 11711  					<xsd:attribute name="name" type="xsd:string"/>
       
 11712  					<xsd:attribute name="project" type="xsd:string"/>
       
 11713  					<xsd:attribute name="component" type="xsd:string"/>
       
 11714 -					<xsd:attribute name="forcesuccess" type="xsd:string"/>
       
 11715 +					<xsd:attribute name="flags" type="xsd:string"/>
       
 11716 +					<xsd:attribute name="reason" type="xsd:string"/>
       
 11717  				</xsd:complexType>
       
 11718  			</xsd:element>
       
 11719  		</xsd:sequence>
       
 11720 Only in /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor: test
       
 11721 Only in /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/util: build
       
 11722 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/util/config.h /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/util/config.h
       
 11723 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/util/config.h	2010-05-18 19:32:34.797348465 +0100
       
 11724 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/util/config.h	2010-05-17 18:47:53.584842000 +0100
       
 11725 @@ -1,5 +1,5 @@
       
 11726  /*
       
 11727 -* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
       
 11728 +* Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
       
 11729  * All rights reserved.
       
 11730  * This component and the accompanying materials are made available
       
 11731  * under the terms of the License "Eclipse Public License v1.0"
       
 11732 @@ -21,6 +21,7 @@
       
 11733  #define HAS_GETCOMMANDLINE 1
       
 11734  #define HAS_MILLISECONDSLEEP 1
       
 11735  #define HAS_MSVCRT 1
       
 11736 +#define HAS_WINSOCK2 1
       
 11737  #else
       
 11738  #define HAS_POLL 1
       
 11739  #define HAS_SETENV 1
       
 11740 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/util/gccprogram.mk /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/util/gccprogram.mk
       
 11741 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/util/gccprogram.mk	2010-05-18 19:32:35.141349393 +0100
       
 11742 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/util/gccprogram.mk	2010-05-17 18:47:53.976844000 +0100
       
 11743 @@ -1,5 +1,5 @@
       
 11744  #
       
 11745 -# Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
       
 11746 +# Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies).
       
 11747  # All rights reserved.
       
 11748  # This component and the accompanying materials are made available
       
 11749  # under the terms of the License "Eclipse Public License v1.0"
       
 11750 @@ -62,7 +62,7 @@
       
 11751  $(foreach SOURCEFILE,$(SOURCES),$(c2obj))
       
 11752  
       
 11753  $(BINDIR)/$(TARGET)$(PROGRAMEXT): $$(OBJECTS)
       
 11754 -	gcc $(LDFLAGS) $$^ -o $$@
       
 11755 +	gcc  $$^ $(LDFLAGS) -o $$@
       
 11756  	
       
 11757  $$(shell mkdir -p $(OUTPUTPATH)/$(TARGET))
       
 11758  
       
 11759 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/util/install-linux/package_sbs.sh /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/util/install-linux/package_sbs.sh
       
 11760 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/util/install-linux/package_sbs.sh	2010-05-18 19:32:35.141349393 +0100
       
 11761 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/util/install-linux/package_sbs.sh	2010-05-17 18:47:53.984845000 +0100
       
 11762 @@ -1,6 +1,6 @@
       
 11763  #!/bin/bash
       
 11764  
       
 11765 -# Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
       
 11766 +# Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies).
       
 11767  # All rights reserved.
       
 11768  # This component and the accompanying materials are made available
       
 11769  # under the terms of the License "Eclipse Public License v1.0"
       
 11770 @@ -61,7 +61,7 @@
       
 11771  fi
       
 11772  
       
 11773  
       
 11774 -   echo init.xml LICENSE.txt RELEASE-NOTES.txt; cd $SBS_HOME && find bin lib $BINARIES python test schema util |
       
 11775 +   cd $SBS_HOME && find license.txt RELEASE-NOTES.html bin lib notes $BINARIES python test schema util |
       
 11776  	grep -v "$TMPSBS"'/python/\.py$' |
       
 11777  	grep -v 'flm/test'  |
       
 11778  	grep -v 'util/build'  | 
       
 11779 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/util/install-windows/raptorinstallermaker.py /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/util/install-windows/raptorinstallermaker.py
       
 11780 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/util/install-windows/raptorinstallermaker.py	2010-05-18 19:32:35.169348622 +0100
       
 11781 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/util/install-windows/raptorinstallermaker.py	2010-05-17 18:47:54.040845000 +0100
       
 11782 @@ -1,5 +1,5 @@
       
 11783  #
       
 11784 -# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
       
 11785 +# Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
       
 11786  # All rights reserved.
       
 11787  # This component and the accompanying materials are made available
       
 11788  # under the terms of the License "Eclipse Public License v1.0"
       
 11789 @@ -30,40 +30,83 @@
       
 11790  tempdir = ""
       
 11791  
       
 11792  parser = optparse.OptionParser()
       
 11793 -parser.add_option("-s", "--sbs_home", dest="sbs_home",
       
 11794 -                  help="Path to use as SBS_HOME environment variable. If not present the script exits.")
       
 11795 +
       
 11796 +parser.add_option("-s", "--sbs-home", dest="sbshome", help="Path to use as SBS_HOME environment variable. If not present the script exits.")
       
 11797 +
       
 11798 +parser.add_option("-w", "--win32-support", dest="win32support", help="Path to Win32 support directory. If not present the script exits.")
       
 11799 +
       
 11800 +parser.add_option("-b", "--bv", dest="bv", help="Path to Binary variation CPP \"root\" directory. Can be a full/relatitve path; prefix with \"WIN32SUPPORT\\\" to be relative to the Win32 support directory. Omitting this value will assume a default to a path inside the Win32 support directory.")
       
 11801 +
       
 11802 +parser.add_option("-c", "--cygwin", dest="cygwin", help="Path to Cygwin \"root\" directory. Can be a full/relatitve path; prefix with \"WIN32SUPPORT\\\" to be relative to the Win32 support directory. Omitting this value will assume a default to a path inside the Win32 support directory.")
       
 11803 +
       
 11804 +parser.add_option("-m", "--mingw", dest="mingw", help="Path to MinGW \"root\" directory. Can be a full/relatitve path; prefix with \"WIN32SUPPORT\\\" to be relative to the Win32 support directory. Omitting this value will assume a default to a path inside the Win32 support directory.")
       
 11805 +
       
 11806 +parser.add_option("-p", "--python", dest="python", help="Path to Python \"root\" directory. Can be a full/relatitve path; prefix with \"WIN32SUPPORT\\\" to be relative to the Win32 support directory. Omitting this value will assume a default to a path inside the Win32 support directory.")
       
 11807 +
       
 11808 +parser.add_option("--prefix", dest="versionprefix", help="A string to use as a prefix to the Raptor version string. This will be present in the Raptor installer's file name, the installer's pages as well as the in output from sbs -v.", type="string", default="")
       
 11809 +
       
 11810 +parser.add_option("--postfix", dest="versionpostfix", help="A string to use as a postfix to the Raptor version string. This will be present in the Raptor installer's file name, the installer's pages as well as the in output from sbs -v.", type="string", default="")
       
 11811  
       
 11812  (options, args) = parser.parse_args()
       
 11813  
       
 11814 -if options.sbs_home == None:
       
 11815 +# Required directories inside the win32-support repository
       
 11816 +win32supportdirs = {"bv":"bv", "cygwin":"cygwin", "mingw":"mingw", "python":"python264"}
       
 11817 +
       
 11818 +if options.sbshome == None:
       
 11819  	print "ERROR: no SBS_HOME passed in. Exiting..."
       
 11820  	sys.exit(2)
       
 11821  
       
 11822 +if options.win32support == None:
       
 11823 +	print "ERROR: no win32support directory specified. Unable to proceed. Exiting..."
       
 11824 +	sys.exit(2)
       
 11825 +else:
       
 11826 +	# Check for command line overrides to defaults
       
 11827 +	for directory in win32supportdirs:
       
 11828 +		print "TEST %s" % directory
       
 11829 +		value = getattr(options,directory)
       
 11830 +		print "value =  %s" % str(value)
       
 11831 +		if value != None: # Command line override
       
 11832 +			if value.lower().startswith("win32support"):
       
 11833 +				# Strip off "WIN32SUPPORT\" and join to Win32 support location
       
 11834 +				win32supportdirs[directory] = os.path.join(options.win32support, value[13:]) 
       
 11835 +			else:
       
 11836 +				# Relative to current directory
       
 11837 +				win32supportdirs[directory] = value
       
 11838 +
       
 11839 +		else: # Use default location
       
 11840 +			win32supportdirs[directory] = os.path.join(options.win32support, win32supportdirs[directory])
       
 11841 +	
       
 11842 +	print "\n\nwin32supportdirs = %s\n\n" % win32supportdirs
       
 11843 +
       
 11844 +	# Check that all the specified directories exist and exit if any of them is missing.
       
 11845 +	for directory in win32supportdirs:
       
 11846 +		dir = win32supportdirs[directory]
       
 11847 +		if os.path.isdir(dir):
       
 11848 +			print "Found directory %s" % dir
       
 11849 +		else:
       
 11850 +			print "ERROR: directory %s does not exist. Cannot build installer. Exiting..." % dir
       
 11851 +			sys.exit(2)
       
 11852  
       
 11853 -def parseconfig(xmlFile="raptorinstallermaker.xml"):
       
 11854 -	pass
       
 11855 -
       
 11856 -def generateinstallerversionheader(sbs_home = None):
       
 11857 -	os.environ["SBS_HOME"] = sbs_home
       
 11858 -	os.environ["PATH"] = os.path.join(os.environ["SBS_HOME"], "bin") + os.pathsep + os.environ["PATH"]
       
 11859 +def generateinstallerversionheader(sbshome = None):
       
 11860 +	shellenv = os.environ.copy()
       
 11861 +	shellenv["PYTHONPATH"] = os.path.join(sbshome, "python")
       
 11862  	
       
 11863 -	versioncommand = "sbs -v"
       
 11864 +	raptorversioncommand = "python -c \"import raptor_version; print raptor_version.numericversion()\""
       
 11865  	
       
 11866 -	# Raptor version string looks like this
       
 11867 -	# sbs version 2.5.0 [2009-02-20 release]
       
 11868 +	# Raptor version is obtained from raptor_version module's numericversion function.
       
 11869  	sbs_version_matcher = re.compile(".*(\d+\.\d+\.\d+).*", re.I)
       
 11870  	
       
 11871  	# Create Raptor subprocess
       
 11872 -	sbs = subprocess.Popen(versioncommand, shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE)
       
 11873 -	
       
 11874 +	versioncommand = subprocess.Popen(raptorversioncommand, shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, env=shellenv)
       
 11875 +	raptorversion = ""
       
 11876  	# Get all the lines matching the RE
       
 11877 -	for line in sbs.stdout.readlines():
       
 11878 +	for line in versioncommand.stdout.readlines():
       
 11879  		res = sbs_version_matcher.match(line)
       
 11880  		if res:
       
 11881  			raptorversion = res.group(1)
       
 11882  			print "Successfully determined Raptor version %s" % raptorversion
       
 11883  
       
 11884 -	sbs.wait() # Wait for process to end
       
 11885 +	versioncommand.wait() # Wait for process to end
       
 11886  	
       
 11887  	raptorversion_nsis_header_string = "# Raptor version file\n\n!define RAPTOR_VERSION %s\n" % raptorversion
       
 11888  	
       
 11889 @@ -73,6 +116,29 @@
       
 11890  	print "Wrote raptorversion.nsh"
       
 11891  	return 0
       
 11892  	
       
 11893 +def generateinstallerversion(sbshome = None):
       
 11894 +	shellenv = os.environ.copy()
       
 11895 +	shellenv["PYTHONPATH"] = os.path.join(sbshome, "python")
       
 11896 +	
       
 11897 +	raptorversioncommand = "python -c \"import raptor_version; print raptor_version.numericversion()\""
       
 11898 +	
       
 11899 +	# Raptor version is obtained from raptor_version module's numericversion function.
       
 11900 +	sbs_version_matcher = re.compile(".*(\d+\.\d+\.\d+).*", re.I)
       
 11901 +	
       
 11902 +	# Create Raptor subprocess
       
 11903 +	versioncommand = subprocess.Popen(raptorversioncommand, shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, env=shellenv)
       
 11904 +	raptorversion = ""
       
 11905 +	# Get all the lines matching the RE
       
 11906 +	for line in versioncommand.stdout.readlines():
       
 11907 +		res = sbs_version_matcher.match(line)
       
 11908 +		if res:
       
 11909 +			raptorversion = res.group(1)
       
 11910 +			print "Successfully determined Raptor version %s" % raptorversion
       
 11911 +
       
 11912 +	versioncommand.wait() # Wait for process to end
       
 11913 +	
       
 11914 +	return raptorversion
       
 11915 +	
       
 11916  def unzipnsis(pathtozip):
       
 11917      global tempdir
       
 11918      tempdir = tempfile.mkdtemp()
       
 11919 @@ -94,11 +160,22 @@
       
 11920  	global tempdir
       
 11921  	print "Cleaning up temporary directory %s" % tempdir
       
 11922  	shutil.rmtree(tempdir,True)
       
 11923 +	try:
       
 11924 +		os.remove("raptorversion.nsh")
       
 11925 +		print "Successfully deleted raptorversion.nsh."
       
 11926 +	except:
       
 11927 +		print "ERROR: failed to remove raptorversion.nsh - remove manually if needed."
       
 11928  	print "Done."
       
 11929  
       
 11930  makensispath = unzipnsis(".\\NSIS.zip")
       
 11931 -generateinstallerversionheader(options.sbs_home)
       
 11932 -nsiscommand = makensispath + " /DRAPTOR_LOCATION=%s raptorinstallerscript.nsi" % options.sbs_home
       
 11933 +# generateinstallerversionheader(options.sbshome)
       
 11934 +raptorversion = options.versionprefix + generateinstallerversion(options.sbshome) + options.versionpostfix
       
 11935 +nsiscommand = makensispath + " /DRAPTOR_LOCATION=%s /DBV_LOCATION=%s /DCYGWIN_LOCATION=%s /DMINGW_LOCATION=%s /DPYTHON_LOCATION=%s /DRAPTOR_VERSION=%s raptorinstallerscript.nsi" % (options.sbshome, 
       
 11936 +				win32supportdirs["bv"],
       
 11937 +				win32supportdirs["cygwin"],
       
 11938 +				win32supportdirs["mingw"],
       
 11939 +				win32supportdirs["python"],
       
 11940 +				raptorversion)
       
 11941  print "nsiscommand = %s" % nsiscommand
       
 11942  runmakensis(nsiscommand)
       
 11943  cleanup()
       
 11944 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/util/install-windows/raptorinstallerscript.nsi /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/util/install-windows/raptorinstallerscript.nsi
       
 11945 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/util/install-windows/raptorinstallerscript.nsi	2010-05-18 19:32:35.169348622 +0100
       
 11946 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/util/install-windows/raptorinstallerscript.nsi	2010-05-17 18:47:54.040845000 +0100
       
 11947 @@ -1,4 +1,4 @@
       
 11948 -# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
       
 11949 +# Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
       
 11950  # All rights reserved.
       
 11951  # This component and the accompanying materials are made available
       
 11952  # under the terms of the License "Eclipse Public License v1.0"
       
 11953 @@ -44,10 +44,9 @@
       
 11954  
       
 11955  # Custom includes (depend on above variables so much be here)
       
 11956  !include "raptorinstallerutils.nsh" # Functions and macros for handling environment variables
       
 11957 -!include "raptorversion.nsh" # Define the RAPTOR_VERSION variable
       
 11958 +# !include "raptorversion.nsh" # Define the RAPTOR_VERSION variable
       
 11959  
       
 11960  # Defines
       
 11961 -# !define /date DATE_STAMP "%Y-%m-%d-%H-%M-%S"
       
 11962  !define INSTALLER_NAME "Raptor v${RAPTOR_VERSION}"
       
 11963  !define RAPTOR "sbs"
       
 11964  !define INSTALLER_FILENAME "${RAPTOR}-${RAPTOR_VERSION}.exe"
       
 11965 @@ -79,8 +78,7 @@
       
 11966  
       
 11967  ##################### Pages in the installer #####################
       
 11968  !insertmacro MUI_PAGE_WELCOME
       
 11969 -# Temporarily useing RELEASE-NOTES.txt as there is not license.txt
       
 11970 -!insertmacro MUI_PAGE_LICENSE ${RAPTOR_LOCATION}\RELEASE-NOTES.txt
       
 11971 +!insertmacro MUI_PAGE_LICENSE ${RAPTOR_LOCATION}\license.txt
       
 11972  !define MUI_PAGE_HEADER_TEXT "Installation type"
       
 11973  Page custom UserOrSysInstall UserOrSysInstallLeave
       
 11974  !define MUI_PAGE_CUSTOMFUNCTION_LEAVE DirLeave # Directory page exit function - disallow spaces in $INSTDIR
       
 11975 @@ -103,20 +101,30 @@
       
 11976  	
       
 11977      # Install Raptor
       
 11978      SetOutPath "$INSTDIR\bin"
       
 11979 -    File /r ${RAPTOR_LOCATION}\bin\*.* 
       
 11980 +    File /r /x distribution.policy.s60 ${RAPTOR_LOCATION}\bin\*.* 
       
 11981      SetOutPath "$INSTDIR\examples"
       
 11982 -    File /r ${RAPTOR_LOCATION}\examples\*.*
       
 11983 +    File /r /x distribution.policy.s60 ${RAPTOR_LOCATION}\examples\*.*
       
 11984      SetOutPath "$INSTDIR\lib"
       
 11985 -    File /r ${RAPTOR_LOCATION}\lib\*.*
       
 11986 +    File /r /x distribution.policy.s60 ${RAPTOR_LOCATION}\lib\*.*
       
 11987      SetOutPath "$INSTDIR\python"
       
 11988 -    File /r ${RAPTOR_LOCATION}\python\*.*
       
 11989 +    File /r /x distribution.policy.s60 ${RAPTOR_LOCATION}\python\*.*
       
 11990      SetOutPath "$INSTDIR\schema"
       
 11991 -    File /r ${RAPTOR_LOCATION}\schema\*.*
       
 11992 -    SetOutPath "$INSTDIR\win32"
       
 11993 -    File /r ${RAPTOR_LOCATION}\win32\*.*
       
 11994 +    File /r /x distribution.policy.s60 ${RAPTOR_LOCATION}\schema\*.*
       
 11995 +    SetOutPath "$INSTDIR\win32\bin"
       
 11996 +    File /r /x distribution.policy.s60 ${RAPTOR_LOCATION}\win32\bin\*.*
       
 11997 +    SetOutPath "$INSTDIR\win32\bv"
       
 11998 +    File /r /x distribution.policy.s60 /x .hg ${BV_LOCATION}\*.*
       
 11999 +    SetOutPath "$INSTDIR\win32\cygwin"
       
 12000 +    File /r /x distribution.policy.s60 /x .hg ${CYGWIN_LOCATION}\*.*
       
 12001 +    SetOutPath "$INSTDIR\win32\mingw"
       
 12002 +    File /r /x distribution.policy.s60 /x .hg ${MINGW_LOCATION}\*.*
       
 12003 +    SetOutPath "$INSTDIR\win32\python264"
       
 12004 +    File /r /x distribution.policy.s60 /x .hg ${PYTHON_LOCATION}\*.*
       
 12005      
       
 12006      SetOutPath "$INSTDIR"
       
 12007 -    File ${RAPTOR_LOCATION}\RELEASE-NOTES.txt
       
 12008 +    File ${RAPTOR_LOCATION}\RELEASE-NOTES.html
       
 12009 +    SetOutPath "$INSTDIR\notes"
       
 12010 +    File /r /x distribution.policy.s60 ${RAPTOR_LOCATION}\notes\*.*
       
 12011      
       
 12012      
       
 12013      ${Unless} $INSTALL_TYPE == "NO_ENV"
       
 12014 @@ -180,6 +188,7 @@
       
 12015  	
       
 12016  	# Generate batch file to set environment variables for Raptor
       
 12017  	StrCpy $RESULT "@REM Environment variables for ${INSTALLER_NAME}$\r$\nset SBS_HOME=$INSTDIR$\r$\nset PATH=%SBS_HOME%\bin;%PATH%$\r$\n"
       
 12018 +	SetOutPath "$INSTDIR"
       
 12019  	!insertmacro WriteFile "RaptorEnv.bat" "$RESULT"
       
 12020  SectionEnd
       
 12021  
       
 12022 @@ -326,7 +335,8 @@
       
 12023      RmDir /r $INSTDIR\python
       
 12024      RmDir /r $INSTDIR\schema
       
 12025      RmDir /r $INSTDIR\win32
       
 12026 -    Delete $INSTDIR\RELEASE-NOTES.txt
       
 12027 +    Delete $INSTDIR\RELEASE-NOTES.html
       
 12028 +    RmDir /r $INSTDIR\notes
       
 12029      Delete $INSTDIR\RaptorEnv.bat
       
 12030      Delete $INSTDIR\${UNINSTALLER_FILENAME}
       
 12031      
       
 12032 Only in /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/util/talon: chomp.c
       
 12033 Only in /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/util/talon: chomp.h
       
 12034 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/util/talon/lock.c /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/util/talon/lock.c
       
 12035 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/util/talon/lock.c	2010-05-18 19:32:35.173348431 +0100
       
 12036 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/util/talon/lock.c	2010-05-17 18:47:54.048842000 +0100
       
 12037 @@ -12,7 +12,7 @@
       
 12038  * Contributors:
       
 12039  *
       
 12040  * Description: 
       
 12041 -*
       
 12042 +* Test program for grabbing and releasing the talon output semaphore.
       
 12043  */
       
 12044  
       
 12045  
       
 12046 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/util/talon/Makefile /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/util/talon/Makefile
       
 12047 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/util/talon/Makefile	2010-05-18 19:32:35.173348431 +0100
       
 12048 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/util/talon/Makefile	2010-05-17 18:47:54.044845000 +0100
       
 12049 @@ -1,4 +1,4 @@
       
 12050 -# Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
       
 12051 +# Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies).
       
 12052  # All rights reserved.
       
 12053  # This component and the accompanying materials are made available
       
 12054  # under the terms of the License "Eclipse Public License v1.0"
       
 12055 @@ -21,10 +21,17 @@
       
 12056  include $(SBS_HOME:\=/)/util/gccprogram.mk
       
 12057  
       
 12058  ifeq ($(filter win,$(HOSTPLATFORM)),win)
       
 12059 +CHOMP_C:=chomp.c
       
 12060  PROCESS_C:=process_win.c
       
 12061  CFLAGS:=-DHOST_WIN
       
 12062 +ifeq ($(SBS_MINGW),)
       
 12063  LDFLAGS:=$(subst \,/,$(SBS_HOME:\=/)\win32\mingw\lib\libiberty.a)
       
 12064  else
       
 12065 +LDFLAGS:=$(subst \,/,$(SBS_MINGW:\=/)\lib\libiberty.a)
       
 12066 +endif
       
 12067 +LDFLAGS:=$(LDFLAGS) -Wl,-lws2_32
       
 12068 +else
       
 12069 +CHOMP_C:=
       
 12070  PROCESS_C:=process.c
       
 12071  CFLAGS:=-g
       
 12072  linux_PTHREADLIBS:=-lpthread
       
 12073 @@ -39,8 +46,7 @@
       
 12074  MANIFEST:=$(SOURCEDIR)/manifest
       
 12075  
       
 12076  TARGET:=talon
       
 12077 -SOURCES:=$(addprefix $(SOURCEDIR)/,talon.c buffer.c sema.c log.c $(PROCESS_C))
       
 12078 -#$(info $(cprogram))
       
 12079 +SOURCES:=$(addprefix $(SOURCEDIR)/,talon.c buffer.c sema.c log.c $(PROCESS_C) $(CHOMP_C)) 
       
 12080  $(eval $(cprogram))
       
 12081  
       
 12082  TARGET:=talonctl
       
 12083 @@ -59,3 +65,7 @@
       
 12084  SOURCES:=$(addprefix $(SOURCEDIR)/,lock.c sema.c log.c)
       
 12085  $(eval $(cprogram))
       
 12086  
       
 12087 +TARGET:=testchomp
       
 12088 +SOURCES:=$(addprefix $(SOURCEDIR)/,testchomp.c chomp.c log.c)
       
 12089 +$(eval $(cprogram))
       
 12090 +
       
 12091 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/util/talon/process.c /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/util/talon/process.c
       
 12092 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/util/talon/process.c	2010-05-18 19:32:35.173348431 +0100
       
 12093 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/util/talon/process.c	2010-05-17 18:47:54.048842000 +0100
       
 12094 @@ -1,5 +1,5 @@
       
 12095  /*
       
 12096 -* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
       
 12097 +* Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
       
 12098  * All rights reserved.
       
 12099  * This component and the accompanying materials are made available
       
 12100  * under the terms of the License "Eclipse Public License v1.0"
       
 12101 @@ -176,11 +176,15 @@
       
 12102  		p->returncode = WEXITSTATUS(status);
       
 12103  		DEBUG(("process exited normally \n"));
       
 12104  	} else {
       
 12105 +		if (p->causeofdeath == PROC_TIMEOUTDEATH)
       
 12106 +			p->returncode = 128;
       
 12107 +		else {	
       
 12108  		p->causeofdeath = PROC_SOMEODDDEATH;
       
 12109  		if (WIFSIGNALED(status))
       
 12110  			p->returncode = WTERMSIG(status);
       
 12111  		else
       
 12112  			p->returncode = 128;
       
 12113 +		}
       
 12114  		DEBUG(("process terminated \n"));
       
 12115  	}
       
 12116  	
       
 12117 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/util/talon/talon.c /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/util/talon/talon.c
       
 12118 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/util/talon/talon.c	2010-05-18 19:32:35.173348431 +0100
       
 12119 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/util/talon/talon.c	2010-05-17 18:47:54.048842000 +0100
       
 12120 @@ -1,5 +1,5 @@
       
 12121  /*
       
 12122 -* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
       
 12123 +* Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
       
 12124  * All rights reserved.
       
 12125  * This component and the accompanying materials are made available
       
 12126  * under the terms of the License "Eclipse Public License v1.0"
       
 12127 @@ -16,6 +16,11 @@
       
 12128  */
       
 12129  
       
 12130  
       
 12131 +#ifdef HAS_WINSOCK2
       
 12132 +#include <winsock2.h>
       
 12133 +#include <ws2tcpip.h>
       
 12134 +#define WIN32_LEAN_AND_MEAN
       
 12135 +#endif
       
 12136  
       
 12137  
       
 12138  #include <stdlib.h>
       
 12139 @@ -33,17 +38,23 @@
       
 12140  #include "buffer.h"
       
 12141  #include "../config.h"
       
 12142  
       
 12143 +#ifdef HAS_GETCOMMANDLINE
       
 12144 +#include "chomp.h"
       
 12145 +#endif
       
 12146 +
       
 12147  /* The output semaphore. */
       
 12148  sbs_semaphore talon_sem;
       
 12149  
       
 12150  #define TALON_ATTEMPT_STRMAX 32
       
 12151  #define RECIPETAG_STRMAX 2048
       
 12152 -#define STATUS_STRMAX 100
       
 12153 +#define STATUS_STRMAX 120
       
 12154  
       
 12155  #define TALONDELIMITER '|'
       
 12156  #define VARNAMEMAX 100
       
 12157  #define VARVALMAX 1024
       
 12158  
       
 12159 +#define HOSTNAME_MAX 100
       
 12160 +
       
 12161  
       
 12162  #include "log.h"
       
 12163  
       
 12164 @@ -125,7 +137,7 @@
       
 12165  				att++;
       
 12166  			} while ( e < (VARNAMEMAX-1) && (isalnum(*att) || *att == '_'));
       
 12167  			envvarname[e] = '\0';
       
 12168 -/* DEBUG(("envvarname: %s\n", envvarname)); */
       
 12169 +			/* DEBUG(("envvarname: %s\n", envvarname));*/ 
       
 12170  			v = talon_getenv(envvarname);
       
 12171  			if (v)
       
 12172  			{
       
 12173 @@ -229,9 +241,20 @@
       
 12174  	char *recipe = NULL;
       
 12175  	int talon_returncode = 0;
       
 12176  
       
 12177 +#ifdef HAS_WINSOCK2
       
 12178 +	WSADATA wsaData;
       
 12179 +
       
 12180 +	WSAStartup(MAKEWORD(2,2), &wsaData);
       
 12181 +
       
 12182 +	/* We ignore the result as we are only doing this to use gethostname
       
 12183 +	   and if that fails then leaving the host attribute blank is perfectly
       
 12184 +	   acceptable.
       
 12185 +	*/
       
 12186 +
       
 12187 +#endif
       
 12188 +
       
 12189  #ifdef HAS_GETCOMMANDLINE
       
 12190  	char *commandline= GetCommandLine();
       
 12191 -	DEBUG(("talon: commandline: %s\n", commandline));
       
 12192  	/*
       
 12193  	 * The command line should be either,
       
 12194  	 * talon -c "some shell commands"
       
 12195 @@ -240,20 +263,12 @@
       
 12196  	 *
       
 12197  	 * talon could be an absolute path and may have a .exe extension.
       
 12198  	 */
       
 12199 -	recipe = strstr(commandline, "-c");
       
 12200 -	if (recipe)
       
 12201 -	{
       
 12202 -		/* there was a -c so extract the quoted commands */
       
 12203  
       
 12204 -		while (*recipe != '"' && *recipe != '\0')
       
 12205 -			recipe++;
       
 12206  
       
 12207 -		if (*recipe != '"')    /* we found -c but no following quote */
       
 12208 +	recipe = chompCommand(commandline);
       
 12209 +	if (recipe)
       
 12210  		{
       
 12211 -			error("talon: error: unquoted recipe in shell call '%s'\n", commandline);
       
 12212 -			return 1;
       
 12213 -		}
       
 12214 -		recipe++;
       
 12215 +		/* there was a -c so extract the quoted commands */
       
 12216  		
       
 12217  		int recipelen = strlen(recipe);
       
 12218  		if (recipelen > 0 && recipe[recipelen - 1] == '"')
       
 12219 @@ -337,6 +352,20 @@
       
 12220  
       
 12221  	DEBUG(("talon: recipe: %s\n", recipe));
       
 12222  
       
 12223 +	/* Make sure that the agent's hostname can be put into the host attribute */
       
 12224 +	char hostname[HOSTNAME_MAX];
       
 12225 +	int hostresult=0;
       
 12226 +	
       
 12227 +	hostresult = gethostname(hostname, HOSTNAME_MAX-1);
       
 12228 +	if (0 != hostresult)
       
 12229 +	{
       
 12230 +		DEBUG(("talon: failed to get hostname: %d\n", hostresult));
       
 12231 +		hostname[0] = '\0';
       
 12232 +	}
       
 12233 +
       
 12234 +	talon_setenv("HOSTNAME", hostname);
       
 12235 +	DEBUG(("talon: setenv: hostname: %s\n", hostname));
       
 12236 +
       
 12237  	
       
 12238  	char varname[VARNAMEMAX];
       
 12239  	char varval[VARVALMAX];
       
 12240 @@ -549,14 +578,18 @@
       
 12241  
       
 12242  			if (dotagging) 
       
 12243  			{
       
 12244 -				char *forcesuccessstr = force_success == 0 ? "" : " forcesuccess='FORCESUCCESS'";
       
 12245 +				char *flagsstr = force_success == 0 ? "" : " flags='FORCESUCCESS'";
       
 12246 +				char *reasonstr = "" ;
       
 12247 +
       
 12248 +				if (p->causeofdeath == PROC_TIMEOUTDEATH)
       
 12249 +					reasonstr = " reason='timeout'";
       
 12250  
       
 12251  				if (p->returncode != 0)
       
 12252  				{
       
 12253 -					char *exitstr = retries > 0 ? "retry" : "failed";
       
 12254 -					snprintf(status, STATUS_STRMAX - 1, "\n<status exit='%s' code='%d' attempt='%d'%s />", exitstr, p->returncode, attempt, forcesuccessstr );
       
 12255 +					char *exitstr = (force_success || retries <= 0) ? "failed" : "retry";
       
 12256 +					snprintf(status, STATUS_STRMAX - 1, "\n<status exit='%s' code='%d' attempt='%d'%s%s />", exitstr, p->returncode, attempt, flagsstr, reasonstr );
       
 12257  				} else {
       
 12258 -					snprintf(status, STATUS_STRMAX - 1, "\n<status exit='ok' attempt='%d'%s />", attempt, forcesuccessstr );
       
 12259 +					snprintf(status, STATUS_STRMAX - 1, "\n<status exit='ok' attempt='%d'%s%s />", attempt, flagsstr, reasonstr );
       
 12260  				}
       
 12261  				status[STATUS_STRMAX-1] = '\0';
       
 12262  	
       
 12263 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/util/talon/testbuffer.c /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/util/talon/testbuffer.c
       
 12264 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/util/talon/testbuffer.c	2010-05-18 19:32:35.173348431 +0100
       
 12265 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/util/talon/testbuffer.c	2010-05-17 18:47:54.052842000 +0100
       
 12266 @@ -1,5 +1,5 @@
       
 12267  /*
       
 12268 -* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
       
 12269 +* Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
       
 12270  * All rights reserved.
       
 12271  * This component and the accompanying materials are made available
       
 12272  * under the terms of the License "Eclipse Public License v1.0"
       
 12273 @@ -12,7 +12,10 @@
       
 12274  * Contributors:
       
 12275  *
       
 12276  * Description: 
       
 12277 -*
       
 12278 +* This program reads from stdin into a "buffer" structure. It is designed to be
       
 12279 +* run from within valgrind to detect memory corruption errors.
       
 12280 +* The buffer is then written to /tmp/outfile where it can be compared
       
 12281 +* with the input to determine if they are the same
       
 12282  */
       
 12283  
       
 12284  
       
 12285 Only in /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/util/talon: testchomp.c
       
 12286 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/util/talon/testprocess.c /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/util/talon/testprocess.c
       
 12287 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/util/talon/testprocess.c	2010-05-18 19:32:35.177348591 +0100
       
 12288 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/util/talon/testprocess.c	2010-05-17 18:47:54.052842000 +0100
       
 12289 @@ -1,5 +1,5 @@
       
 12290  /*
       
 12291 -* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
       
 12292 +* Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
       
 12293  * All rights reserved.
       
 12294  * This component and the accompanying materials are made available
       
 12295  * under the terms of the License "Eclipse Public License v1.0"
       
 12296 @@ -12,7 +12,11 @@
       
 12297  * Contributors:
       
 12298  *
       
 12299  * Description: 
       
 12300 -*
       
 12301 +* This programs tests the process execution functions in talon.
       
 12302 +* it executes it's first argument with the following arguments 
       
 12303 +* as parameters to it.  Output is buffered and finally printed.
       
 12304 +* Should be run from within valgrind if possible to detect memory
       
 12305 +* corruption errors.
       
 12306  */
       
 12307  
       
 12308  
       
 12309 Only in /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/util/talon/tests: config.sh
       
 12310 Only in /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/util/talon/tests: run.sh
       
 12311 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/util/talon/tests/t3.mk /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/util/talon/tests/t3.mk
       
 12312 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/util/talon/tests/t3.mk	2010-05-18 19:32:35.177348591 +0100
       
 12313 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/util/talon/tests/t3.mk	2010-05-17 18:47:54.052842000 +0100
       
 12314 @@ -1,5 +1,5 @@
       
 12315  #
       
 12316 -# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
       
 12317 +# Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
       
 12318  # All rights reserved.
       
 12319  # This component and the accompanying materials are made available
       
 12320  # under the terms of the License "Eclipse Public License v1.0"
       
 12321 @@ -13,8 +13,8 @@
       
 12322  #
       
 12323  # Description: 
       
 12324  #
       
 12325 +include settings.mk
       
 12326  
       
 12327 -SHELL:=$(TALON)
       
 12328  TALON_RECIPEATTRIBUTES:=name='$$RECIPENAME' host='$$HOSTNAME'
       
 12329  export TALON_RECIPEATTRIBUTES
       
 12330  
       
 12331 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/util/talon/tests/t4.mk /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/util/talon/tests/t4.mk
       
 12332 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/util/talon/tests/t4.mk	2010-05-18 19:32:35.177348591 +0100
       
 12333 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/util/talon/tests/t4.mk	2010-05-17 18:47:54.052842000 +0100
       
 12334 @@ -1,5 +1,5 @@
       
 12335  #
       
 12336 -# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
       
 12337 +# Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
       
 12338  # All rights reserved.
       
 12339  # This component and the accompanying materials are made available
       
 12340  # under the terms of the License "Eclipse Public License v1.0"
       
 12341 @@ -14,7 +14,7 @@
       
 12342  # Description: 
       
 12343  #
       
 12344  
       
 12345 -SHELL:=$(TALON)
       
 12346 +include settings.mk
       
 12347  TALON_TIMEOUT:=4000
       
 12348  TALON_RETRIES:=4
       
 12349  TALON_RECIPEATTRIBUTES:=platform='$$PLATFORM' mmp='$$MMP' bldinf='$$BLDINF'
       
 12350 @@ -23,6 +23,11 @@
       
 12351  $(info testing timeouts)
       
 12352  $(info )
       
 12353  
       
 12354 -all:
       
 12355 +.PHONY: all passed
       
 12356 +
       
 12357 +all: passed
       
 12358 +	@echo "t4-PASSED"
       
 12359 +
       
 12360 +passed:
       
 12361  	@|PLATFORM=armv5;MMP=barney.mmp;BLDINF=somebld.inf;|echo "Started a slow command under talon (attempt $$TALON_ATTEMPT):";echo "SHELL=$$SHELL";if (( $$TALON_ATTEMPT <4 )); then echo sleeping 6; sleep 6; echo "hi"; else echo "Not sleeping this time"; fi; echo "this should not appear in the recipe tags unless you try 4 times."
       
 12362  
       
 12363 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/util/talon/tests/t5.mk /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/util/talon/tests/t5.mk
       
 12364 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/util/talon/tests/t5.mk	2010-05-18 19:32:35.177348591 +0100
       
 12365 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/util/talon/tests/t5.mk	2010-05-17 18:47:54.052842000 +0100
       
 12366 @@ -1,5 +1,5 @@
       
 12367  #
       
 12368 -# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
       
 12369 +# Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
       
 12370  # All rights reserved.
       
 12371  # This component and the accompanying materials are made available
       
 12372  # under the terms of the License "Eclipse Public License v1.0"
       
 12373 @@ -13,6 +13,7 @@
       
 12374  #
       
 12375  # Description: 
       
 12376  #
       
 12377 +include settings.mk
       
 12378  
       
 12379  all:
       
 12380  	||"echo this command should cause a bash error which should be visible"
       
 12381 Only in /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/util/talon/tests: t6.mk
       
 12382 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/util/talon/tests/t.mk /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/util/talon/tests/t.mk
       
 12383 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/util/talon/tests/t.mk	2010-05-18 19:32:35.177348591 +0100
       
 12384 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/util/talon/tests/t.mk	2010-05-17 18:47:54.052842000 +0100
       
 12385 @@ -14,6 +14,7 @@
       
 12386  # Description: 
       
 12387  #
       
 12388  
       
 12389 +include settings.mk
       
 12390  
       
 12391  HOSTNAME:=fred
       
 12392  COMPONENT_LAYER:=base
       
 12393 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/util/talon/tests/xcopystdin.mk /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/util/talon/tests/xcopystdin.mk
       
 12394 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/util/talon/tests/xcopystdin.mk	2010-05-18 19:32:35.177348591 +0100
       
 12395 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/util/talon/tests/xcopystdin.mk	2010-05-17 18:47:54.056843000 +0100
       
 12396 @@ -1,5 +1,5 @@
       
 12397  #
       
 12398 -# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
       
 12399 +# Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
       
 12400  # All rights reserved.
       
 12401  # This component and the accompanying materials are made available
       
 12402  # under the terms of the License "Eclipse Public License v1.0"
       
 12403 @@ -14,9 +14,7 @@
       
 12404  # Description: 
       
 12405  #
       
 12406  
       
 12407 -SHELL:=$(SBS_HOME)/win32/bin/talon.exe
       
 12408 -TALON_SHELL:=$(SBS_HOME)/win32/cygwin/bin/bash.exe
       
 12409 -TALON_BUILDID:=1
       
 12410 +include settings.mk
       
 12411  TALON_RECIPEATTRIBUTES:=123
       
 12412  
       
 12413  export
       
 12414 Binary files /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/win32/bin/ransleep.exe and /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/win32/bin/ransleep.exe differ
       
 12415 Binary files /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/win32/bin/talonctl.exe and /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/win32/bin/talonctl.exe differ
       
 12416 Binary files /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/win32/bin/talon.exe and /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/win32/bin/talon.exe differ
       
 12417 Only in /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/win32/bin: unhide_ci_refs.exe