×

Discussion Board

Results 1 to 9 of 9
  1. #1
    Registered User
    Join Date
    Jun 2007
    Posts
    17

    Much bigger raccoon_.sis

    Hi !

    I can build raccoon for emulator, but when i build for target, it is possibel to install but then the applciation will crash right at startup...
    ...but what I noticed is that the raccon_0_10_0_3rdEd.sis is almost twice as big as the one released, and that is working on my phone.

    Can anyone have a guess why ?

  2. #2
    Nokia Developer Expert
    Join Date
    Mar 2003
    Posts
    457

    Re: Much bigger raccoon_.sis

    Quote Originally Posted by MikaelWT View Post
    Can anyone have a guess why ?
    Which compiler are you using? RVCT or GCCE?

    Johan

  3. #3
    Registered User
    Join Date
    Jun 2007
    Posts
    17

    Re: Much bigger raccoon_.sis

    That is my next question almost...

    I use the "std setup from the raccon doc" meaning I run "abld build gcce urel". ( is this what you asked for)

    ...my next question: when I ido this with the raccoon the dll files will end up under ../epoc32/releses/gcce/ but when I try with my on libs and module it will end up under ../epoc32/releses/arm5v ?

    This is mayby not the forum for basic symbian knowleage, but you might be able to point me to some documentation about it?

    Yet another thing... I try to port a apche module, lua, and it works on the emulator, but it seems that the disk access is very slow, like a second for reading a 5k file and my harddisk is working really hard, is this something to consider evean on targer slow and expensive disk access ?

    thanks,
    Mikael

  4. #4
    Nokia Developer Expert
    Join Date
    Mar 2003
    Posts
    457

    Re: Much bigger raccoon_.sis

    Quote Originally Posted by MikaelWT View Post
    ...I use the "std setup from the raccon doc" meaning I run "abld build gcce urel". ( is this what you asked for)
    Yep, that's what I asked for and that also explains what you see...

    First the size. The RVCT (or ARM) compiler generates smaller code than GCCE. I'm not exactly sure what the reason is - RVCT using thumb instructions(?), RVCT optimizing better for space, wrong flags used for GCCE, something else - but the fact is that at least currently you get much smaller binaries with RVCT.

    Then the non-workingness. On Symbian version 9, there are actually two Application Binary Interfaces (ABI); called ABIv1 and ABIv2. They are linktime incompatible but runtime compatible, that is, e.g. if you build an EXE a.exe using ABIv1 you cannot link against an ABIv2 built import library of some DLL b.dll, but if you have an ABIv1 built import libary of that b.dll, thus being able to link your a.exe, then at runtime a.exe can use b.dll regardless of whether it was built using a ABIv1 or ABIv2 toolchain. If this sounds confusing, it's because it is. You'll find more information in the S60 documentation: Symbian OS v9.1 » Symbian OS Tools And Utilities » Build tools guide » The native build targets » ABIv1 to ABIv2 toolchain changes.

    If you use abld build armv5 then you'll build using the ABIv1 toolchain and the RVCT compiler. abld build gcce implies the ABIv2 toolchain and the gcce compiler, and abld build armv5_abiv2 also implies the ABIv2 toolchain but the RVCT compiler.

    Then some background. Apache comes from Unix where you always have been able to use static data in shared libraries (DLLs). Before Symbian version 9 it was not possible to have static data in Symbian DLLs. Since Apache uses static data and the mechanism for dynamically loading modules depends upon that, before S60v3 dynamic modules where not supported by Raccoon but everything was linked into one big binary.

    Symbian 9 (that is, S60v3) changed that and it became possible to have static data in DLLs, thus making it possible to build Apache the way it's supposed to be built - as a set of DLLs - and also to support the dynamic loading of modules.

    Now, the problem is that something seems to be broken in the ABIv2 toolchain. I havn't been able to pinpoint it exactly, but it seems that if a DLL contains too much (exactly how much I don't know) static data, then some relocations are not done propely and data used across DLL boundaries (even if the address of that data is returned via a function) contains garbage when accessed from somewhere else but the DLL where the data is defined.

    So, currently you cannot build Raccoon using gcce (or armv5_abiv2) but have to use armv5 (RVCT). However, if you download the SDK then you can build modules (provided they don't contain too much static data) using gcce.

    Namely, for the SDK I build Raccoon using both armv5 (that works) and gcce (that doesn't work) in order to get import libaries for both ABIv1 and ABIv2. Thus you can build a module using gcce and later load it into the pre-built (RVCT) Raccoon.

    ...my next question: when I ido this with the raccoon the dll files will end up under ../epoc32/releses/gcce/ but when I try with my on libs and module it will end up under ../epoc32/releses/arm5v?
    It depends on what you build. If you build a DLL using gcce, then it should end up under ../epoc32/release/gcce, and if you build it using armv5, then it should end up under ../epoc32/release/armv5.

    However, if you build a static libary it will always end up in ../epoc32/release/armv5/lib and if you build with both armv5 and gcce the libraries will stomp on each other. That's why there's some trickery in some of the Raccoon mmp-files to prefix static librarynames with either abiv1_ or abiv2_ depending on which toolchain is used. Incidentally, ABIv1 and ABIv2 static libraries are not linktime compatible either.

    Yet another thing... I try to port a apche module, lua, and it works on the emulator, but it seems that the disk access is very slow, like a second for reading a 5k file and my harddisk is working really hard, is this something to consider evean on targer slow and expensive disk access ?
    That's an OpenC problem. Currently file I/O using OpenC is extremely slow on the emulator. But there's no problem when running on the target.

    Johan

  5. #5
    Registered User
    Join Date
    Jun 2007
    Posts
    17

    Re: Much bigger raccoon_.sis

    Thanks for the answer... I'll work through that....

    thanks,
    Mikael

  6. #6
    Registered User
    Join Date
    Jun 2007
    Posts
    17

    Re: Much bigger raccoon_.sis

    Quote Originally Posted by jhnwkmn View Post
    So, currently you cannot build Raccoon using gcce (or armv5_abiv2) but have to use armv5 (RVCT).
    But my abld command is only supporting "WINSCW GCCXML EDG GCCE ARMV5_ABIV2 GCCE ARMV6_ABIV2 VS6 CW_IDE VS2003", do I need to install this armv5 support in order to have the RVCT alternative, are we talking of ADS ?

    /Mikael

  7. #7
    Nokia Developer Expert
    Join Date
    Mar 2003
    Posts
    457

    Re: Much bigger raccoon_.sis

    Quote Originally Posted by MikaelWT View Post
    But my abld command is only supporting "WINSCW GCCXML EDG GCCE ARMV5_ABIV2 GCCE ARMV6_ABIV2 VS6 CW_IDE VS2003", do I need to install this armv5 support in order to have the RVCT alternative, are we talking of ADS ?
    Yes, you must buy the RVCT compiler.

    Johan

  8. #8
    Nokia Developer Expert
    Join Date
    Mar 2003
    Posts
    457

    Re: Much bigger raccoon_.sis

    Quote Originally Posted by MikaelWT View Post
    But my abld command is only supporting "WINSCW GCCXML EDG GCCE ARMV5_ABIV2 GCCE ARMV6_ABIV2 VS6 CW_IDE VS2003", do I need to install this armv5 support in order to have the RVCT alternative, are we talking of ADS ?
    Have you tried building mod_lua using gcce and loading it into the RVCT pre-built Raccoon?

    Johan

  9. #9
    Registered User
    Join Date
    Jun 2007
    Posts
    17

    Re: Much bigger raccoon_.sis

    I'm trying...

    Have the module is loaded and the code is excecuted, but I have some problem with the command_rec which is not excecuted as they where in emulator... and some crashes

    /Mikael

Similar Threads

  1. Replies: 2
    Last Post: 2009-07-14, 01:16
  2. Multiple programs within single SIS file dilema
    By LongSteve in forum Symbian
    Replies: 6
    Last Post: 2008-03-20, 06:05
  3. Mobile Virus Info and Solution
    By kunalshastry in forum General Development Questions
    Replies: 16
    Last Post: 2007-08-07, 11:12
  4. Replies: 4
    Last Post: 2006-06-30, 14:51
  5. Sending a sis from phone to phone.
    By Priju Jacob Paul in forum Symbian
    Replies: 0
    Last Post: 2006-05-17, 17:26

Posting Permissions

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