×

Discussion Board

Results 1 to 9 of 9

Thread: gcce

  1. #1
    Registered User
    Join Date
    Sep 2006
    Location
    Beijing, China
    Posts
    386

    gcce

    I'm a little confused about what compiler is being used and it's location.

    I've done some development in near-enough the usual symbian way - ie bldmake bldfiles, abld build gcce urel etc etc. and that has been working just fine.

    However, my next project is to port a brew app over to symbian. This project is more conventional and uses regular makefiles, so I'm now wondering where the gcce compiler(s) are located.

    I found this but it seems to suggest that I have to manually install the compiler. Since I've been doing regular development (using the gcce option to abld) shouldn't I already have it/them installed?

    I'm trying to use S60_3RD_MR.

  2. #2
    Super Contributor
    Join Date
    Mar 2004
    Location
    Singapore
    Posts
    9,968

    Re: gcce

    The New GCCE compile is moved to "C:\Program Files\CSL Arm Toolchain" in V3

  3. #3
    Registered User
    Join Date
    Sep 2006
    Location
    Beijing, China
    Posts
    386

    Re: gcce

    Quote Originally Posted by skumar_rao
    The New GCCE compile is moved to "C:\Program Files\CSL Arm Toolchain" in V3
    Oh, great. Look at all those spaces :((

    Any idea how a gnumakefile is supposed to handle spaces??? I can't make it work...

  4. #4
    Regular Contributor
    Join Date
    May 2005
    Posts
    75

    Re: gcce

    That directory probably should be added to your system path already, so that's no problem (but you will need to include that directory name in the compiler option).

    But you might need to add the necessary compiler options to the makefiles. To find out which compiler options are used, first try to build a project as usual, with abld build. Look for the lines which call the generated makefiles, e.g. something looking like this:

    make -s -r -f "\Symbian\9.2\S60_3rd_FP1\EPOC32\BUILD\myproject\group\PROJECTNAME\GCCE\PROJECTNAME.GCCE" UREL

    Call this manually on the commandline, but remove the "-s" (silent) switch. Then you'll see the full command lines used for compiling, which look like this:

    arm-none-symbianelf-g++ -O2 -fno-unit-at-a-time -Wall -Wno-ctor-dtor-privacy -Wno-unknown-pragmas -fexceptions -march=armv5t -mapcs -pipe -nostdinc -c -msoft-float -DNDEBUG -D_UNICODE -D__GCCE__ -D__SYMBIAN32__ -D__SERIES60_31__ -D__SERIES60_3X__ -D__GCCE__ -D__EPOC32__ -D__MARM__ -D__EABI__ -D__MARM_ARMV5__ -D__DLL__ -D__SUPPORT_CPP_EXCEPTIONS__ -D__MARM_ARMV5__ -D__PRODUCT_INCLUDE__=\"/Symbian/9.2/S60_3rd_FP1/epoc32/include/variant/Symbian_OS_v9.2.hrh\" -x c++ -include /Symbian/9.2/S60_3rd_FP1/EPOC32/INCLUDE/GCCE/GCCE.h -I /myproject/src -I /myproject/inc -I /Symbian/9.2/S60_3rd_FP1/EPOC32/include -I /Symbian/9.2/S60_3rd_FP1/epoc32/include/variant -I "C:/Program Files/CSL Arm Toolchain/bin/../lib/gcc/arm-none-symbianelf/3.4.3/include" -o /Symbian/9.2/S60_3rd_FP1/EPOC32/BUILD/myproject/group/PROJECTNAME/GCCE/UREL/file.o /myproject/src/file.cpp

    Similarly, you're able to find out the linker options.

    If you really want to, you might also be able to include parts of the generated makefiles (\Symbian\9.2\S60_3rd_FP1\EPOC32\BUILD\myproject\group\PROJECTNAME\GCCE\PROJECTNAME.GCCE in this case), so you don't need to hardcode all of that. But I'm not sure how well that works...

    // Martin

  5. #5
    Registered User
    Join Date
    Sep 2006
    Location
    Beijing, China
    Posts
    386

    Re: gcce

    That's all very useful stuff, thanks.

    It's meant I've made some progress. I'm now getting some warnings about #define conflicts between lines in c://Symbian//9.1//S60_3rd_MR//Epoc32//include/e32def.h and c:/Symbian/9.1/S60_3rd_MR/Epoc32/include/gcce/gcce.h ; for example, __NORETURN__, __NORETURN_TERMINATOR__, IMPORT_C, NONSHARABLE_CLASS, NONSHARABLE_STRUCT, __NO_THROW, and __THROW. Actually, that is the complete list of the warnings, but I also get some errors :

    Code:
    c://Symbian//9.1//S60_3rd_MR//Epoc32//include/e32cmn.h:5822: error: declaration of `TAny* operator new(TUint)' throws different exceptions
    c:/Symbian/9.1/S60_3rd_MR/Epoc32/include/gcce/..\symcpp.h:21: error: than previous declaration `TAny* operator new(TUint) throw ()'
    c://Symbian//9.1//S60_3rd_MR//Epoc32//include/e32cmn.h:5834: error: declaration of `void operator delete(TAny*)' throws different exceptions
    c:/Symbian/9.1/S60_3rd_MR/Epoc32/include/gcce/..\symcpp.h:29: error: than previous declaration `void operator delete(TAny*) throw ()'
    c://Symbian//9.1//S60_3rd_MR//Epoc32//include/e32cmn.h:5841: error: declaration of `TAny* operator new [](TUint)' throws different exceptions
    c:/Symbian/9.1/S60_3rd_MR/Epoc32/include/gcce/..\symcpp.h:23: error: than previous declaration `TAny* operator new [](TUint) throw ()'
    c://Symbian//9.1//S60_3rd_MR//Epoc32//include/e32cmn.h:5847: error: declaration of `void operator delete [](TAny*)' throws different exceptions
    c:/Symbian/9.1/S60_3rd_MR/Epoc32/include/gcce/..\symcpp.h:31: error: than previous declaration `void operator delete [](TAny*) throw ()'
    My compile line is now :

    Code:
    arm-none-symbianelf-g++ -c src/xmlreader.cpp       -Wall 
    -Wno-ctor-dtor-privacy -Wno-unknown-pragmas  -c -fexceptions -mapcs 
    -march=armv5t -msoft-float -nostdinc -pipe -x c++ -include 
    c:/Symbian/9.1/S60_3rd_MR/Epoc32/include/gcce/gcce.h -DEM_FRAMEWORK
     -DNDEBUG -D_UNICODE -D__DLL__ -D__EABI__ -D__EPOC32__ -D__GCC32__
     -D__GCCE__ -D__MARM_ARMV5__ -D__MARM___ 
    -D__PRODUCT_INCLUDE__=\"/Symbian/9.1/S60_3rd_MR/epoc32/include/variant/Symbian_OS_v9.1.hrh\"
    -D__SERIES60_30__ -D__SERIES60_3X__ -D__SUPPORT_CPP_EXCEPTIONS__ 
    -D__SYMBIAN32__     -DEM_FRAMEWORK -o../../../file.o -I. -I../../../include  
    -Ic:\\Symbian\\9.1\\S60_3rd_MR\\Epoc32\\include 
    -Ic:\\Symbian\\9.1\\S60_3rd_MR\\Epoc32\\include\\ecom 
    -Ic:\\Symbian\\9.1\\S60_3rd_MR\\Epoc32\\include\\libc 
    -Ic:\\Symbian\\9.1\\S60_3rd_MR\\Epoc32\\include\\variant
    -I"C:\Program Files\CSL Arm Toolchain\lib\gcc\arm-none-symbianelf\3.4.3\include"  -I../../../External/toolchain/opengles -I../../../External/lib/emstl/include 
    ../../lib/emlibxml2/include/libxml ../../../Framework/include
    Any idea what's going on?

  6. #6
    Registered User
    Join Date
    Sep 2006
    Location
    Beijing, China
    Posts
    386

    Re: gcce

    Code:
    -include c:/Symbian/9.1/S60_3rd_MR/Epoc32/include/gcce/gcce.h
    Things seems to go better if I remove the above options from the compile line, but I'm still left with :

    Code:
    src/xmlreader.cpp:688: sorry, unimplemented: inter-module optimisations not implemented yet
    src/xmlreader.cpp:690:1: ../../lib/emlibxml2/include/libxml: Permission denied
    Any idea what that's trying to tell me?

    EDIT: I see the problem is some include directories without '-I''s on them. I had to stop it from automatically adding them using some 'subst' make command because of the spaces in the paths, and instead have it add -I before each thing it's adding. I'd forgotted a couple that are added in a different file. Seems to be much better now....of course there are other problems, but that's for later :D Thanks!
    Last edited by davidmaxwaterman; 2007-07-20 at 10:58.

  7. #7
    Regular Contributor
    Join Date
    May 2005
    Posts
    75

    Re: gcce

    I don't think you should remove the gcce include, try removing the __GCC32__ define instead. I didn't see any such define in compile command from the SDK, where did it come from?

    On a side note, I noticed you've got two -c options in the command line. Probably no harm in this case, but might lead to confusing problems in some case if you want to do something else than just a plain compile.

    // Martin

  8. #8
    Registered User
    Join Date
    Sep 2006
    Location
    Beijing, China
    Posts
    386

    Re: gcce

    Removing __GCC32__ cause some errors. It seems that it comes from the Makefiles I already have.

    In any case, it seems to be working much better now - the CPU fan speeded up at one point :)

    However, I now have a strange problem. It seems the compiler thinks one of the specified include directories (-I../../../tmp/symbian/debug/iap/) doesn't exist, and so it fails to find the file (startup.lua.inc) needed from that location.

    More explicitly, when compiling iapSystem.cpp, a file that has the line :

    Code:
    namespace Framework
    {
    
    #include "startup.lua.inc"
    ...
    and the compile line is :

    Code:
    arm-none-symbianelf-g++ -c iapSystem.cpp  -O0 -g 
    -Wno-unknown-pragmas -c -fexceptions -mapcs -march=armv5t
    -msoft-float -nostdinc -pipe  -Wno-ctor-dtor-privacy  -DEM_FRAMEWORK
    -DNDEBUG -D_UNICODE -D__DLL__ -D__EABI__ -D__EPOC32__
    -D__GCC32__ -D__GCCE__ -D__MARM_ARMV5__ -D__MARM___
    -D__PRODUCT_INCLUDE__=/c/Symbian/9.1/S60_3rd_MR/epoc32/include/variant/Symbian_OS_v9.1.hrh
    -D__SERIES60_30__ -D__SERIES60_3X__ -D__SUPPORT_CPP_EXCEPTIONS__
    -D__SYMBIAN32__  -D__wchar_t_defined  -DEM_FRAMEWORK 
    -o../../../tmp/symbian/debug/iap/iapSystem.O -I. 
    -I../../../External/lib/emstl/include -I../../../External/toolchain/opengles 
    -Ic:\\Symbian\\9.1\\S60_3rd_MR\\Epoc32\\include 
    -Ic:\\Symbian\\9.1\\S60_3rd_MR\\Epoc32\\include\\ecom 
    -Ic:\\Symbian\\9.1\\S60_3rd_MR\\Epoc32\\include\\libc 
    -Ic:\\Symbian\\9.1\\S60_3rd_MR\\Epoc32\\include\\variant -I"c:\Program Files\CSL Arm Toolchain\lib\gcc\arm-none-symbianelf\3.4.3\include"
    -I../../../External/toolchain/opengles -I../../include 
    -I../../../External/lib/emlibxml2/include -I../../../External/lib/emz/include 
    -I../../../External/lib/drm/include -I../../../External/lib/zlib/include 
    -I../../../External/lib/iconv/include -I../../../External/lib/lua/src 
    -I../../../tmp/symbian/debug/iap/
    when I compile it, it produces the error :

    Code:
    ignoring nonexistent directory "../../../tmp/symbian/debug/iap/"
    #include "..." search starts here:
    #include <...> search starts here:
     .
    ....
    iapSystem.cpp:54:27: startup.lua.inc: No such file or directory
    ...and yet, the file is clearly there :

    Code:
    $ ls -l ../../../tmp/symbian/debug/iap/startup.lua.inc
    -rw-r--r-- 1 max None 181452 Jul 26 12:58
                                     ../../../tmp/symbian/debug/iap/startup.lua.inc
    I wondering if it's some strangeness with the Cygwin environment I'm in.

    Any ideas?

  9. #9
    Registered User
    Join Date
    Sep 2006
    Location
    Beijing, China
    Posts
    386

    Re: gcce

    Quote Originally Posted by davidmaxwaterman
    ...the compile line is :

    Code:
    --------------------------------v
    -I../../../tmp/symbian/debug/iap/
    when I compile it, it produces the error :

    Code:
    ignoring nonexistent directory "../../../tmp/symbian/debug/iap/"
    Any ideas?
    Seems like the final '/' in that include path confuses the compiler. Removing it fixes the problem.

    Sigh.

Similar Threads

  1. GCCE issues
    By apsaarin in forum Symbian Tools & SDKs
    Replies: 18
    Last Post: 2010-06-18, 13:13
  2. Cannot run command line GCCE HelloWorldBasic on Emulator
    By loginssuck in forum Symbian Tools & SDKs
    Replies: 33
    Last Post: 2008-06-21, 12:58
  3. Problems compiling GCCE Release with Carbide.c++ and Windows Vista
    By spietari in forum Symbian Tools & SDKs
    Replies: 7
    Last Post: 2007-11-03, 20:13
  4. Error with makesis.exe and creating the .pkg file
    By gramya87 in forum Symbian Tools & SDKs
    Replies: 7
    Last Post: 2007-10-10, 13:53
  5. Replies: 1
    Last Post: 2006-02-05, 18:43

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
×