×

Discussion Board

Page 1 of 2 12 LastLast
Results 1 to 15 of 23

Thread: Writing modules

  1. #1
    Registered User
    Join Date
    Dec 2006
    Posts
    35

    Writing modules

    I'm have a lot of trouble writing a new module for raccoon. I've looked at the modules included w/ raccoon's source and read "apache_modules.html" in the docs folder but its a bit thin on details (at least for a newbie like me).

    Part of the problem is that I want to write a single dynamically loaded module and it looks like everything in raccoon was compiled together. (I'm not really having trouble with writing the module itself but compiling/packaging for symbian.)

    If anyone can point me to src for a single "hello world" type apache module that compiles easly in carbide.c++ (or even better a carbide.c++ project that can be imported) I'd REALLY appreciated it.

    Thank you,

    Eitan

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

    Re: Writing modules

    First, my apologies for the terseness of apache_modules.html. I will try to expand it...

    The default way for creating an Apache module is to define a statically allocated module structure containing a bunch of function pointers. That module structure is then loaded dynamically and inserted into Apache's data structures.

    Now, that arrangement has been a no-no on Symbian where you up until version 9 (on which S60v3 is based) in principle cannot have statically allocated data in DLLs (shared libraries). In practice there are ways around that restriction, but I have found them not to be worth the trouble. That is the reason why everything has been built into one giant monolith.

    The restriction on statically allocated data in DLLs was relaxed in Symbian version 9 and I have for some time been working with enabling dynamically loadable native Apache modules. The latest release of Raccoon (0.8.0) supports dynamically loadable modules fully, but only if you use the RVCT compiler, that is, build using the armv5 platform.

    Unfortunately, it seems that there is a tool chain bug of some sort that causes the dynamic loading to fail when building using the gcce and armv5_abiv2 platforms. Both adhere to abiv2 and also share parts of the toolchain. If anyone feels an itch to investigate the case I would appreciate it

    Anyway, before continuing, could you tell whether you are using S60v2.x or S60v3 and what compilers you have.

    Johan
    Last edited by jhnwkmn; 2006-12-14 at 14:53.

  3. #3
    Registered User
    Join Date
    Dec 2006
    Posts
    35

    Re: Writing modules

    Thank you for your quick response (and my apologies for my slow follow up - it is the holidays...).

    I am developing for s60v3 (N80s to be exact) and am using carbide.c++ (which I think is using a gcc derived compiler).

    You write:
    The latest release of Raccoon (0.8.0) supports dynamically loadable modules fully, but only if you use the RVCT compiler, that is, build using the armv5 platform.

    Does this mean DLLs loaded by Raccoon must be built using RVCT or that Raccoon itself must be built using RVCT. If its the former, I should be able to get my own DLLs working using carbide.c++ and the dowloaded binary install of raccoon. (correct?) If you meant the latter, I guess I am out of luck.

    Thank you for continued help,

    Eitan

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

    Re: Writing modules

    Quote Originally Posted by redfoodegm
    Does this mean DLLs loaded by Raccoon must be built using RVCT or that Raccoon itself must be built using RVCT. If its the former, I should be able to get my own DLLs working using carbide.c++ and the dowloaded binary install of raccoon. (correct?) If you meant the latter, I guess I am out of luck.
    I expressed myself sloppily I sort of meant the former, but I now realized that it is probably possible, after all, to create modules of your own using gcce.

    But let's backtrack a little bit...

    The problem when building using the gcce platform is that when a module is dynamically loaded, the module structure (static data) that should contain a bunch of function pointers etc., actually contains garbage. It seems that some relocations that should be done, are either not done properly or not at all. However, since I havn't been able to reproduce this behaviour outside Apache, I'm not completely sure that that's really the problem.

    Anyway, the behaviour is the same when using the armv5_abiv2 platform, which suggests that this is a abiv2 toolchain problem since gcce and armv5_abiv2 share the same backend. With the armv5 platform - uses the RVCT compiler and the abiv1 toolchain - there are no problems at all.

    Now, abiv1 and abiv2 binaries are linktime incompatible, but runtime compatible. So, in principle it would be possible to build Raccoon using RVCT and a module using gcce and use them together. However, because of the linktime incompatibility of the toolchains, you would have to build Raccoon using gcce to get the libraries to link your module against, but you would not have to install the gcce built Raccoon binaries. If this sounds somewhat confusing, it's because it is

    I'm pretty certain the problem of the abiv2 toolchain is related to the incorrect handling of static data. When considering existing Apache modules it's infeasible to get rid of that static data, since it would require extensive modifications. However, if you are writing a completely new module, it's straightforward not to use any static data at all, in which case I'm fairly certain the problem would go away. That is, using a gcce built module together with an RVCT built Raccoon would after all be possible.

    I'm going to try this myself in the near future and then write a follow-up. My intention is to provide an SDK using which modules can be created without having to first build the whole software.

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

    Re: Writing modules

    I tried loading gcce-built default Apache modules into an RVCT built Raccoon, but that fails. However, the loading of a simple gcce-built custom module succeeds, so to manifest itself the problem seems to require more than just the presense of static data. Perhaps the amount of static data plays some role?

    Anyway, the attached ZIP contains an example module that you can build with gcce and later load into an RVCT built Raccoon. Here are the steps:
    • Download the latest (0.8.0) Raccoon sources.
    • In mws/phone/httpd/options.conf, change
      Code:
      #if defined(ARMCC) || defined(WINSCW)
      #undef  BUILD_AS_MONOLITH
      #else
      #define BUILD_AS_MONOLITH
      #endif
      into
      Code:
      #if defined(ARMCC) || defined(WINSCW)
      #undef  BUILD_AS_MONOLITH
      #else
      #undef BUILD_AS_MONOLITH
      #endif
      That is, regardless of compiler, the BUILD_AS_MONOLITH is undefined.
    • Enter mws/phone/group and
      Code:
      bldmake bldfiles
      abld build gcce urel
      This builds Raccoon and thus will create the necessary gcce libraries. The stuff built in this step will not be installed anywhere.
    • Unzip the attached zip-file right next to the epoc32 directory. If you unzip it somewhere else you will have to edit the pkg-file using which the installation SIS is created.
    • Follow the instructions in the README.TXT file.

    Please let me know how it goes.
    Attached Files Attached Files

  6. #6
    Registered User
    Join Date
    Dec 2006
    Posts
    35

    Re: Writing modules

    Well, this brings me back to one of my original problems (which doesn't really have anything to do with the MWS). I can't seem to build from the command line using carbide.c++.

    When I type:
    Code:
    bldmake bldfiles
    I get:
    Code:
    WARNING: Cannot determine the version of the RVCT Compiler.
    WARNING: When building for ARMV5 platform Compiler RVCT2.2 or later is required.
    The last posting on this thread, http://discussion.forum.nokia.com/fo...p/t-74943.html , implies that its not possible. The page entitled "Invoking Command-Line Tools" in the carbide.c++ documentation seems to imply that compiling from the command line is possible but I haven't how to run make first.

    I also tried to import Raccoon's bld.inf into carbide.c++ (which seems to be the recommended route) but I just got a bunch of errors. *Sigh* Any suggestions would be appreciated.

    Thank you,

    Eitan

  7. #7
    Registered User
    Join Date
    Dec 2006
    Posts
    35

    Re: Writing modules

    Ok. I just realize I misunderstood that other thread. It is saying that the GUI does not support command line building (because it doesn't maintain the mmp).

    Also I noticed a ABLD.BAT which tried to performed a build when I typed
    Code:
    ABLD.BAT BUILD
    (was this file created by the "bldmake bldfiles" despite the error message?) Unfortunately running bat file generated a bunch of errors also. Here is the first:
    Code:
    WARNING: Cannot determine the version of the RVCT Compiler.
    WARNING: Frozen .DEF file \Symbian\9.1\S60_3rd\mws\phone\mwsutil\EABI\mwsutilU.DEF not found - project not frozen
    cpp: C:\Symbian\9.1\S60_3rd\EPOC32\INCLUDE\RVCT0_0\RVCT0_0.H: No such file or directory
    ERROR: cpp.EXE failure

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

    Re: Writing modules

    Try
    Code:
    abld build gcce urel

  9. #9
    Registered User
    Join Date
    Dec 2006
    Posts
    35

    Re: Writing modules

    Sorry, I should have tried that with the correct arguments - I was so primed for things not to work I just assumed the bldmake wasn't working.

    Well, using abld with the correct arguments almost worked. It seems to be looking for some libraries that I don't have. Specificially: pcre.lib. I looked around I couldn't find the lib in any of the other epoc directories.


    Here is some of the output from abld if it helps:
    Code:
    C:\Symbian\9.1\S60_3rd\mws\phone\group>abld build gcce urel
    make -r  -f "\Symbian\9.1\S60_3rd\EPOC32\BUILD\Symbian\9.1\S60_3rd\mws\phone\group\EXPORT.make" EXPORT VERBOSE=-s
    make: Nothing to be done for `EXPORT'.
      make -r  -f "\Symbian\9.1\S60_3rd\EPOC32\BUILD\Symbian\9.1\S60_3rd\mws\phone\group\GCCE.make" MAKEFILE VERBOSE=-s
    perl -S makmake.pl  -D \Symbian\9.1\S60_3rd\mws\phone\mwsutil\group\MWSUTIL GCCE
    WARNING: Cannot determine the version of the RVCT Compiler.
    WARNING: Frozen .DEF file \Symbian\9.1\S60_3rd\mws\phone\mwsutil\EABI\mwsutilU.DEF not found - project not frozen
    perl -S makmake.pl  -D \Symbian\9.1\S60_3rd\mws\phone\httpd\httpd-2.0\srclib\pcre\PCRE GCCE
    WARNING: Cannot determine the version of the RVCT Compiler.
    perl -S makmake.pl  -D 
    
    [... a lot of almost identically lines deleted ...]
    
    Not attempting to create "..\..\..\EPOC32\RELEASE\ARMV5\LIB\mwsutil.dso"
    from frozen .DEF file, since EXPORTUNFROZEN specified.
    make -s  -r -f "\Symbian\9.1\S60_3rd\EPOC32\BUILD\Symbian\9.1\S60_3rd\mws\phone\group\PCRE\GCCE\PCRE.GCCE" LIBRARY
    process_begin: CreateProcess((null), cr ..\..\..\EPOC32\RELEASE\ARMV5\UREL\pcre.lib ..\..\..\EPOC32\BUILD\Symbian\9.1\S60_3rd\mws\phone\group\PCRE\GCCE\UREL\get.o ..\..\..\EPOC32\B
    UILD\Symbian\9.1\S60_3rd\mws\phone\group\PCRE\GCCE\UREL\maketables.o ..\..\..\EPOC32\BUILD\Symbian\9.1\S60_3rd\mws\phone\group\PCRE\GCCE\UREL\pcre.o ..\..\..\EPOC32\BUILD\Symbian\9
    .1\S60_3rd\mws\phone\group\PCRE\GCCE\UREL\study.o, ...) failed.
    make (e=2): The system cannot find the file specified.
    make[1]: *** [..\..\..\EPOC32\RELEASE\ARMV5\UREL\pcre.lib] Error 2
    make: *** [LIBRARYPCRE] Error 2
      make -r  -f "\Symbian\9.1\S60_3rd\EPOC32\BUILD\Symbian\9.1\S60_3rd\mws\phone\group\GCCE.make" RESOURCE CFG=UREL VERBOSE=-s
    make -s  -r -f
    
    [... a lot of almost identically lines deleted ...]
    
    "\Symbian\9.1\S60_3rd\EPOC32\BUILD\Symbian\9.1\S60_3rd\mws\phone\group\MWSUTIL\GCCE\MWSUTIL.GCCE" UREL
    make -s  -r -f "\Symbian\9.1\S60_3rd\EPOC32\BUILD\Symbian\9.1\S60_3rd\mws\phone\group\PCRE\GCCE\PCRE.GCCE" UREL
    process_begin: CreateProcess((null), cr ..\..\..\EPOC32\RELEASE\ARMV5\UREL\pcre.lib ..\..\..\EPOC32\BUILD\Symbian\9.1\S60_3rd\mws\phone\group\PCRE\GCCE\UREL\get.o ..\..\..\EPOC32\B
    UILD\Symbian\9.1\S60_3rd\mws\phone\group\PCRE\GCCE\UREL\maketables.o ..\..\..\EPOC32\BUILD\Symbian\9.1\S60_3rd\mws\phone\group\PCRE\GCCE\UREL\pcre.o ..\..\..\EPOC32\BUILD\Symbian\9
    .1\S60_3rd\mws\phone\group\PCRE\GCCE\UREL\study.o, ...) failed.
    make (e=2): The system cannot find the file specified.
    make[1]: *** [..\..\..\EPOC32\RELEASE\ARMV5\UREL\pcre.lib] Error 2
    make: *** [TARGETPCRE] Error 2
      make -r  -f "\Symbian\9.1\S60_3rd\EPOC32\BUILD\Symbian\9.1\S60_3rd\mws\phone\group\GCCE.make" FINAL CFG=UREL VERBOSE=-s

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

    Re: Writing modules

    Actually, all those
    process_begin: CreateProcess((null)...
    tell that the build system is trying to invoke some tool, which is not found. To pinpoint which one, please invoke abld with the flag -v, as in verbose. To limit the amount of errors, you could do that in the group directory of some sub-component. E.g.:
    Code:
    cd mws\phone\mwsutil\group
    bldmake bldfiles
    abld -v build gcce urel
    Btw, do you have a C:\Program Files\CSL ARM Toolchain directory? If not, do you have a menu-item Start->Programs->S60 Developer Tools->3rd Edition SDK->1.1 MR->Tools->CSL Toolchain (GCCE) - Install?

  11. #11
    Registered User
    Join Date
    Dec 2006
    Posts
    35

    Re: Writing modules

    Here is what I got:
    Code:
    C:\Symbian\9.1\S60_3rd\mws\phone\mwsutil\group>abld -v build gcce urel
      make -r  -f "\Symbian\9.1\S60_3rd\EPOC32\BUILD\Symbian\9.1\S60_3rd\mws\phone\mwsutil\group\EXPORT.make" EXPORT
    Nothing to do
      make -r  -f "\Symbian\9.1\S60_3rd\EPOC32\BUILD\Symbian\9.1\S60_3rd\mws\phone\mwsutil\group\GCCE.make" MAKEFILE
    perl -S makmake.pl  -D \Symbian\9.1\S60_3rd\mws\phone\mwsutil\group\MWSUTIL GCCE
    WARNING: Cannot determine the version of the RVCT Compiler.
    WARNING: Frozen .DEF file \Symbian\9.1\S60_3rd\mws\phone\mwsutil\EABI\mwsutilU.DEF not found - project not frozen
      make -r  -f "\Symbian\9.1\S60_3rd\EPOC32\BUILD\Symbian\9.1\S60_3rd\mws\phone\mwsutil\group\GCCE.make" LIBRARY
    make   -r -f "\Symbian\9.1\S60_3rd\EPOC32\BUILD\Symbian\9.1\S60_3rd\mws\phone\mwsutil\group\MWSUTIL\GCCE\MWSUTIL.GCCE" LIBRARY
    make[1]: Entering directory `C:/Symbian/9.1/S60_3rd/mws/phone/mwsutil/group'
    Not attempting to create "..\..\..\..\EPOC32\RELEASE\ARMV5\LIB\mwsutil.dso"
    from frozen .DEF file, since EXPORTUNFROZEN specified.
    make[1]: Leaving directory `C:/Symbian/9.1/S60_3rd/mws/phone/mwsutil/group'
      make -r  -f "\Symbian\9.1\S60_3rd\EPOC32\BUILD\Symbian\9.1\S60_3rd\mws\phone\mwsutil\group\GCCE.make" RESOURCE CFG=UREL
    make   -r -f "\Symbian\9.1\S60_3rd\EPOC32\BUILD\Symbian\9.1\S60_3rd\mws\phone\mwsutil\group\MWSUTIL\GCCE\MWSUTIL.GCCE" RESOURCEUREL
    make[1]: Entering directory `C:/Symbian/9.1/S60_3rd/mws/phone/mwsutil/group'
    make[1]: Nothing to be done for `RESOURCEUREL'.
    make[1]: Leaving directory `C:/Symbian/9.1/S60_3rd/mws/phone/mwsutil/group'
      make -r  -f "\Symbian\9.1\S60_3rd\EPOC32\BUILD\Symbian\9.1\S60_3rd\mws\phone\mwsutil\group\GCCE.make" TARGET CFG=UREL
    make   -r -f "\Symbian\9.1\S60_3rd\EPOC32\BUILD\Symbian\9.1\S60_3rd\mws\phone\mwsutil\group\MWSUTIL\GCCE\MWSUTIL.GCCE" UREL
    make[1]: Entering directory `C:/Symbian/9.1/S60_3rd/mws/phone/mwsutil/group'
    make[1]: Nothing to be done for `UREL'.
    make[1]: Leaving directory `C:/Symbian/9.1/S60_3rd/mws/phone/mwsutil/group'
      make -r  -f "\Symbian\9.1\S60_3rd\EPOC32\BUILD\Symbian\9.1\S60_3rd\mws\phone\mwsutil\group\GCCE.make" FINAL CFG=UREL
    Quote Originally Posted by jhnwkmn
    Btw, do you have a C:\Program Files\CSL ARM Toolchain directory? If not, do you have a menu-item Start->Programs->S60 Developer Tools->3rd Edition SDK->1.1 MR->Tools->CSL Toolchain (GCCE) - Install?
    I do have a CSL ARM Toolchain directory. The entry in the start menu is 1.0 and not 1.1 MR if that makes a difference.

    Thank you,

    Eitan

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

    Re: Writing modules

    The output you got is puzzling, because there are no errors. The warning about no mwsutilU.def not being found is ok, as is the note about EXPORTUNFROZEN having been specified. It seems as if the build would succeed.

    Please run abld -v ... in the same place where you the first time got those process_begin: CreateProcess((null)... lines in the output. Sorry for having redirected you elsewhere.

    Do you have C:\Program Files\Common Files\Symbian\Tools and C:\Program Files\CSL Arm Toolchain\bin in your PATH?

  13. #13
    Registered User
    Join Date
    Dec 2006
    Posts
    35

    Re: Writing modules

    My path appears correct.

    Here is what I get from abld:
    Code:
    C:\Symbian\9.1\S60_3rd\mws\phone\group>abld -v build gcce urel
      make -r  -f "\Symbian\9.1\S60_3rd\EPOC32\BUILD\Symbian\9.1\S60_3rd\mws\phone\group\EXPORT.make" EXPORT
    make: Nothing to be done for `EXPORT'.
      make -r  -f "\Symbian\9.1\S60_3rd\EPOC32\BUILD\Symbian\9.1\S60_3rd\mws\phone\group\GCCE.make" MAKEFILE
    perl -S makmake.pl  -D \Symbian\9.1\S60_3rd\mws\phone\mwsutil\group\MWSUTIL GCCE
    WARNING: Cannot determine the version of the RVCT Compiler.
    WARNING: Frozen .DEF file \Symbian\9.1\S60_3rd\mws\phone\mwsutil\EABI\mwsutilU.DEF not found - project not frozen
    perl -S makmake.pl  -D \Symbian\9.1\S60_3rd\mws\phone\httpd\httpd-2.0\srclib\pcre\PCRE GCCE
    WARNING: Cannot determine the version of the RVCT Compiler.
    perl -S makmake.pl  -D \Symbian\9.1\S60_3rd\mws\phone\httpd\httpd-2.0\srclib\pcre\PCREPOSIX GCCE
    WARNING: Cannot determine the version of the RVCT Compiler.
    ... pretty much the same over and over again and then ...
    Code:
    WARNING: Frozen .DEF file \Symbian\9.1\S60_3rd\mws\phone\httpd\httpdc\EABI\httpdcU.DEF not found - project not frozen
    perl -S makmake.pl  -D \Symbian\9.1\S60_3rd\mws\phone\connector\connector\group\CONNECTOR GCCE
    WARNING: Cannot determine the version of the RVCT Compiler.
    WARNING: Frozen .DEF file \Symbian\9.1\S60_3rd\mws\phone\connector\connector\EABI\connectorU.DEF not found - project not frozen
    perl -S makmake.pl  -D \Symbian\9.1\S60_3rd\mws\phone\connector\connectorc\group\CONNECTORC GCCE
    WARNING: Cannot determine the version of the RVCT Compiler.
    WARNING: Frozen .DEF file \Symbian\9.1\S60_3rd\mws\phone\connector\connectorc\EABI\connectorcU.DEF not found - project not frozen
    perl -S makmake.pl  -D \Symbian\9.1\S60_3rd\mws\phone\connector\connectors\group\CONNECTORS GCCE
    WARNING: Cannot determine the version of the RVCT Compiler.
    ... pretty much the same over and over again and then...
    Code:
    perl -S makmake.pl  -D \Symbian\9.1\S60_3rd\mws\phone\ui\s60\mwsui\group\MWSUI GCCE
    WARNING: Cannot determine the version of the RVCT Compiler.
      make -r  -f "\Symbian\9.1\S60_3rd\EPOC32\BUILD\Symbian\9.1\S60_3rd\mws\phone\group\GCCE.make" LIBRARY
    make   -r -f "\Symbian\9.1\S60_3rd\EPOC32\BUILD\Symbian\9.1\S60_3rd\mws\phone\group\MWSUTIL\GCCE\MWSUTIL.GCCE" LIBRARY
    make[1]: Entering directory `C:/Symbian/9.1/S60_3rd/mws/phone/group'
    Not attempting to create "..\..\..\EPOC32\RELEASE\ARMV5\LIB\mwsutil.dso"
    from frozen .DEF file, since EXPORTUNFROZEN specified.
    make[1]: Leaving directory `C:/Symbian/9.1/S60_3rd/mws/phone/group'
    make   -r -f "\Symbian\9.1\S60_3rd\EPOC32\BUILD\Symbian\9.1\S60_3rd\mws\phone\group\PCRE\GCCE\PCRE.GCCE" LIBRARY
    make[1]: Entering directory `C:/Symbian/9.1/S60_3rd/mws/phone/group'
    cr  ..\..\..\EPOC32\RELEASE\ARMV5\UREL\pcre.lib ..\..\..\EPOC32\BUILD\Symbian\9.1\S60_3rd\mws\phone\group\PCRE\GCCE\UREL\get.o ..\..\..\EPOC32\BUILD\Symbian\9.1\S60_3rd\mws\phone\group\PCRE\GCCE\UREL\maketables.o ..\..\..\EPOC32\BUILD\Symbian\9.1\S60_3rd\mws\phone\group\PCRE\GCCE\UREL\pcre.o ..\..\..\EPOC32\BUILD\Symbian\9.1\S60_3rd\mws\phone\group\PCRE\GCCE\UREL\study.o
    process_begin: CreateProcess((null), cr ..\..\..\EPOC32\RELEASE\ARMV5\UREL\pcre.lib ..\..\..\EPOC32\BUILD\Symbian\9.1\S60_3rd\mws\phone\group\PCRE\GCCE\UREL\get.o ..\..\..\EPOC32\BUILD\Symbian\9.1\S60_3rd\mws\phone\group\PCRE\GCCE\UREL\maketables.o ..\..\..\EPOC32\BUILD\Symbian\9.1\S60_3rd\mws\phone\group\PCRE\GCCE\UREL\pcre.o ..\..\..\EPOC32\BUILD\Symbian\9.1\S60_3rd\mws\phone\group\PCRE\GCCE\UREL\study.o, ...) failed.
    make (e=2): The system cannot find the file specified.
    make[1]: *** [..\..\..\EPOC32\RELEASE\ARMV5\UREL\pcre.lib] Error 2
    make[1]: Leaving directory `C:/Symbian/9.1/S60_3rd/mws/phone/group'
    make: *** [LIBRARYPCRE] Error 2
      make -r  -f "\Symbian\9.1\S60_3rd\EPOC32\BUILD\Symbian\9.1\S60_3rd\mws\phone\group\GCCE.make" RESOURCE CFG=UREL
    make   -r -f "\Symbian\9.1\S60_3rd\EPOC32\BUILD\Symbian\9.1\S60_3rd\mws\phone\group\MWSUTIL\GCCE\MWSUTIL.GCCE" RESOURCEUREL
    make[1]: Entering directory `C:/Symbian/9.1/S60_3rd/mws/phone/group'
    make[1]: Nothing to be done for `RESOURCEUREL'.
    make[1]: Leaving directory `C:/Symbian/9.1/S60_3rd/mws/phone/group'
    make   -r -f "\Symbian\9.1\S60_3rd\EPOC32\BUILD\Symbian\9.1\S60_3rd\mws\phone\group\PCRE\GCCE\PCRE.GCCE" RESOURCEUREL
    make[1]: Entering directory `C:/Symbian/9.1/S60_3rd/mws/phone/group'
    make[1]: Nothing to be done for `RESOURCEUREL'.
    make[1]: Leaving directory `C:/Symbian/9.1/S60_3rd/mws/phone/group'
    make   -r -f "\Symbian\9.1\S60_3rd\EPOC32\BUILD\Symbian\9.1\S60_3rd\mws\phone\group\PCREPOSIX\GCCE\PCREPOSIX.GCCE" RESOURCEUREL
    make[1]: Entering directory `C:/Symbian/9.1/S60_3rd/mws/phone/group'
    ... more repetition removed ...
    Code:
    make   -r -f "\Symbian\9.1\S60_3rd\EPOC32\BUILD\Symbian\9.1\S60_3rd\mws\phone\group\MWSUTIL\GCCE\MWSUTIL.GCCE" UREL
    make[1]: Entering directory `C:/Symbian/9.1/S60_3rd/mws/phone/group'
    make[1]: Nothing to be done for `UREL'.
    make[1]: Leaving directory `C:/Symbian/9.1/S60_3rd/mws/phone/group'
    make   -r -f "\Symbian\9.1\S60_3rd\EPOC32\BUILD\Symbian\9.1\S60_3rd\mws\phone\group\PCRE\GCCE\PCRE.GCCE" UREL
    make[1]: Entering directory `C:/Symbian/9.1/S60_3rd/mws/phone/group'
    cr  ..\..\..\EPOC32\RELEASE\ARMV5\UREL\pcre.lib ..\..\..\EPOC32\BUILD\Symbian\9.1\S60_3rd\mws\phone\group\PCRE\GCCE\UREL\get.o ..\..\..\EPOC32\BUILD\Symbian\9.1\S60_3rd\mws\phone\group\PCRE\GCCE\UREL\maketables.o ..\..\..\EPOC32\BUILD\Symbian\9.1\S60_3rd\mws\phone\group\PCRE\GCCE\UREL\pcre.o ..\..\..\EPOC32\BUILD\Symbian\9.1\S60_3rd\mws\phone\group\PCRE\GCCE\UREL\study.o
    process_begin: CreateProcess((null), cr ..\..\..\EPOC32\RELEASE\ARMV5\UREL\pcre.lib ..\..\..\EPOC32\BUILD\Symbian\9.1\S60_3rd\mws\phone\group\PCRE\GCCE\UREL\get.o ..\..\..\EPOC32\BUILD\Symbian\9.1\S60_3rd\mws\phone\group\PCRE\GCCE\UREL\maketables.o ..\..\..\EPOC32\BUILD\Symbian\9.1\S60_3rd\mws\phone\group\PCRE\GCCE\UREL\pcre.o ..\..\..\EPOC32\BUILD\Symbian\9.1\S60_3rd\mws\phone\group\PCRE\GCCE\UREL\study.o, ...) failed.
    make (e=2): The system cannot find the file specified.
    make[1]: *** [..\..\..\EPOC32\RELEASE\ARMV5\UREL\pcre.lib] Error 2
    make[1]: Leaving directory `C:/Symbian/9.1/S60_3rd/mws/phone/group'
    make: *** [TARGETPCRE] Error 2
      make -r  -f "\Symbian\9.1\S60_3rd\EPOC32\BUILD\Symbian\9.1\S60_3rd\mws\phone\group\GCCE.make" FINAL CFG=UREL
    Quote Originally Posted by jhnwkmn
    The output you got is puzzling, because there are no errors. The warning about no mwsutilU.def not being found is ok, as is the note about EXPORTUNFROZEN having been specified. It seems as if the build would succeed.

    Please run abld -v ... in the same place where you the first time got those process_begin: CreateProcess((null)... lines in the output. Sorry for having redirected you elsewhere.

    Do you have C:\Program Files\Common Files\Symbian\Tools and C:\Program Files\CSL Arm Toolchain\bin in your PATH?

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

    Re: Writing modules

    Code:
    ...
    cr  ..\..\..\EPOC32\RELEASE\ARMV5\UREL\pcre.lib ..\..\..\EPOC32\BUILD\Symbian\9.1\S60_3rd\mws\phone\group\PCRE\GCCE\UREL\get.o ..\..\..\EPOC32\BUILD\Symbian\9.1\S60_3rd\mws\phone\group\PCRE\GCCE\UREL\maketables.o ..\..\..\EPOC32\BUILD\Symbian\9.1\S60_3rd\mws\phone\group\PCRE\GCCE\UREL\pcre.o ..\..\..\EPOC32\BUILD\Symbian\9.1\S60_3rd\mws\phone\group\PCRE\GCCE\UREL\study.o
    process_begin: CreateProcess((null), cr ..\..\..\EPOC32\RELEASE\ARMV5\UREL\pcre.lib ..\..\..\EPOC32\BUILD\Symbian\9.1\S60_3rd\mws\phone\group\PCRE\GCCE\UREL\get.o ..\..\..\EPOC32\BUILD\Symbian\9.1\S60_3rd\mws\phone\group\PCRE\GCCE\UREL\maketables.o ..\..\..\EPOC32\BUILD\Symbian\9.1\S60_3rd\mws\phone\group\PCRE\GCCE\UREL\pcre.o ..\..\..\EPOC32\BUILD\Symbian\9.1\S60_3rd\mws\phone\group\PCRE\GCCE\UREL\study.o, ...) failed.
    ...
    That line is supposed to build the pcre.lib library. When I build in the same location the output looks like:
    Code:
    arm-none-symbianelf-ar  cr  ..\..\..\..\..\..\EPOC32\RELEASE\ARMV5\UDEB\pcre.lib
    So, for whatever reason the actual command is left out.

    If you invoke arm-none-symbianelf-ar on your command-line, is it found or do you get an error? It should be found, since C:\Program Files\CSL Arm Toolchain\bin is in your path.

    Perhaps you should try installing the 3rd Edition, Maintenance Release SDK and see if the problem goes away.

  15. #15
    Registered User
    Join Date
    Dec 2006
    Posts
    35

    Re: Writing modules

    Quote Originally Posted by jhnwkmn

    If you invoke arm-none-symbianelf-ar on your command-line, is it found or do you get an error? It should be found, since C:\Program Files\CSL Arm Toolchain\bin is in your path.
    Yes it is there:
    Code:
    C:\Symbian\9.1\S60_3rd\mws\phone\group>arm-none-symbianelf-ar V
    GNU ar 2.15.96 20050323
    Copyright 2005 Free Software Foundation, Inc.
    This program is free software; you may redistribute it under the terms of
    the GNU General Public License.  This program has absolutely no warranty.
    Quote Originally Posted by jhnwkmn
    Perhaps you should try installing the 3rd Edition, Maintenance Release SDK and see if the problem goes away.
    Ok. I installed it this problem went away but I got a new one. Here is the output from abld.
    Code:
    C:\Symbian\9.1\S60_3rd\mws\phone\group>abld build gcce urel
      make -r  -f "\Symbian\9.1\S60_3rd_MR\EPOC32\BUILD\Symbian\9.1\S60_3rd\mws\phone\group\EXPORT.make" EXPORT VERBOSE=-s
    make: Nothing to be done for `EXPORT'.
      make -r  -f "\Symbian\9.1\S60_3rd_MR\EPOC32\BUILD\Symbian\9.1\S60_3rd\mws\phone\group\GCCE.make" MAKEFILE VERBOSE=-s
    perl -S makmake.pl  -D \Symbian\9.1\S60_3rd\mws\phone\mwsutil\group\MWSUTIL GCCE
    WARNING: Frozen .DEF file \Symbian\9.1\S60_3rd\mws\phone\mwsutil\EABI\mwsutilU.DEF not found - project not frozen
    perl -S makmake.pl  -D \Symbian\9.1\S60_3rd\mws\phone\httpd\httpd-2.0\srclib\pcre\PCRE GCCE
    perl -S makmake.pl  -D \Symbian\9.1\S60_3rd\mws\phone\httpd\httpd-2.0\srclib\pcre\PCREPOSIX GCCE
    ...
    Code:
    perl -S makmake.pl  -D \Symbian\9.1\S60_3rd\mws\phone\httpd\httpd-2.0\modules\metadata\MOD_SETENVIF GCCE
    perl -S makmake.pl  -D \Symbian\9.1\S60_3rd\mws\phone\httpd\mod_python-3.1\MOD_PYTHON GCCE
    
    MMPFILE "\Symbian\9.1\S60_3rd\mws\phone\httpd\mod_python-3.1\MOD_PYTHON.MMP"
    WARNING: \Symbian\9.1\S60_3rd\mws\phone\httpd\mod_python-3.1\MOD_PYTHON.MMP(51) : SYSTEMINCLUDE path "\Symbian\9.1\S60_3rd_MR\EPOC32\include\python\" not found
    
    WARNING: \Symbian\9.1\S60_3rd\mws\phone\httpd\mod_python-3.1\MOD_PYTHON.MMP(54) : USERINCLUDE path "\Symbian\9.1\S60_3rd_MR\EPOC32\include\python\" not found
    
    
    WARNING: Can't find following headers in System Include Path
     <Python.h>
    (Sys Inc Paths "\Symbian\9.1\S60_3rd_MR\EPOC32\include\" "\Symbian\9.1\S60_3rd_MR\EPOC32\include\libc\" "\Symbian\9.1\S60_3rd_MR\EPOC32\include\apache\httpd\include\" "\Symbian\9.1\S60_3rd_MR\EPOC32\include\apache\httpd\srclib\apr\include\" "\Symbian\9.1\S60_3rd_MR\EPOC32\include\apache\httpd\srclib
    \apr-util\include\" "\Symbian\9.1\S60_3rd_MR\EPOC32\include\apache\httpd\os\symbian\" "\Symbian\9.1\S60_3rd_MR\EPOC32\include\python\" "\Symbian\9.1\S60_3rd_MR\epoc32\include\variant" "C:\Program Files\CSL Arm Toolchain\bin\..\lib\gcc\arm-none-symbianelf\3.4.3\include\")
    Dependency list for "\Symbian\9.1\S60_3rd\mws\phone\httpd\mod_python-3.1\src\_pspmodule.c" may be incomplete
    
    
    WARNING: Can't find following headers in System Include Path
     <cspyinterpreter.h>
    (Sys Inc Paths "\Symbian\9.1\S60_3rd_MR\EPOC32\include\" "\Symbian\9.1\S60_3rd_MR\EPOC32\include\libc\" "\Symbian\9.1\S60_3rd_MR\EPOC32\include\apache\httpd\include\" "\Symbian\9.1\S60_3rd_MR\EPOC32\include\apache\httpd\srclib\apr\include\" "\Symbian\9.1\S60_3rd_MR\EPOC32\include\apache\httpd\srclib
    \apr-util\include\" "\Symbian\9.1\S60_3rd_MR\EPOC32\include\apache\httpd\os\symbian\" "\Symbian\9.1\S60_3rd_MR\EPOC32\include\python\" "\Symbian\9.1\S60_3rd_MR\epoc32\include\variant" "C:\Program Files\CSL Arm Toolchain\bin\..\lib\gcc\arm-none-symbianelf\3.4.3\include\")
    Dependency list for "\Symbian\9.1\S60_3rd\mws\phone\httpd\mod_python-3.1\src\mod_python_symbian.cpp" may be incomplete
    
    
    WARNING: Can't find following headers in System Include Path
     <Python.h>
    (Sys Inc Paths "\Symbian\9.1\S60_3rd_MR\EPOC32\include\" "\Symbian\9.1\S60_3rd_MR\EPOC32\include\libc\" "\Symbian\9.1\S60_3rd_MR\EPOC32\include\apache\httpd\include\" "\Symbian\9.1\S60_3rd_MR\EPOC32\include\apache\httpd\srclib\apr\include\" "\Symbian\9.1\S60_3rd_MR\EPOC32\include\apache\httpd\srclib
    \apr-util\include\" "\Symbian\9.1\S60_3rd_MR\EPOC32\include\apache\httpd\os\symbian\" "\Symbian\9.1\S60_3rd_MR\EPOC32\include\python\" "\Symbian\9.1\S60_3rd_MR\epoc32\include\variant" "C:\Program Files\CSL Arm Toolchain\bin\..\lib\gcc\arm-none-symbianelf\3.4.3\include\")
    Dependency list for "\Symbian\9.1\S60_3rd\mws\phone\httpd\mod_python-3.1\src\psp_parser.c" may be incomplete
    
    perl -S makmake.pl  -D \Symbian\9.1\S60_3rd\mws\phone\httpd\httpds\group\HTTPDS GCCE
    perl -S makmake.pl  -D \Symbian\9.1\S60_3rd\mws\phone\httpd\httpdc\group\HTTPDC GCCE
    WARNING: Frozen .DEF file \Symbian\9.1\S60_3rd\mws\phone\httpd\httpdc\EABI\httpdcU.DEF not found - project not frozen
    ...
    Code:
    perl -S makmake.pl  -D \Symbian\9.1\S60_3rd\mws\phone\ui\s60\mwsui\group\MWSUI GCCE
      make -r  -f "\Symbian\9.1\S60_3rd_MR\EPOC32\BUILD\Symbian\9.1\S60_3rd\mws\phone\group\GCCE.make" LIBRARY VERBOSE=-s
    make -s  -r -f "\Symbian\9.1\S60_3rd_MR\EPOC32\BUILD\Symbian\9.1\S60_3rd\mws\phone\group\MWSUTIL\GCCE\MWSUTIL.GCCE" LIBRARY
    Not attempting to create "..\..\..\..\S60_3rd_MR\EPOC32\RELEASE\ARMV5\LIB\mwsutil.dso"
    from frozen .DEF file, since EXPORTUNFROZEN specified.
    make -s  -r -f "\Symbian\9.1\S60_3rd_MR\EPOC32\BUILD\Symbian\9.1\S60_3rd\mws\phone\group\PCRE\GCCE\PCRE.GCCE" LIBRARY
    make -s  -r -f "\Symbian\9.1\S60_3rd_MR\EPOC32\BUILD\Symbian\9.1\S60_3rd\mws\phone\group\PCREPOSIX\GCCE\PCREPOSIX.GCCE" LIBRARY
    make -s  -r -f "\Symbian\9.1\S60_3rd_MR\EPOC32\BUILD\Symbian\9.1\S60_3rd\mws\phone\group\LIBAPR\GCCE\LIBAPR.GCCE" LIBRARY
    make -s  -r -f "\Symbian\9.1\S60_3rd_MR\EPOC32\BUILD\Symbian\9.1\S60_3rd\mws\phone\group\LIBAPRUTIL\GCCE\LIBAPRUTIL.GCCE" LIBRARY
    make -s  -r -f "\Symbian\9.1\S60_3rd_MR\EPOC32\BUILD\Symbian\9.1\S60_3rd\mws\phone\group\APACHE\GCCE\APACHE.GCCE" LIBRARY
    Main.c
    cc1.exe: warning: command line option "-Wno-ctor-dtor-privacy" is valid for C++/ObjC++ but not for C
    In file included from ..//..//..//..//S60_3rd_MR//EPOC32//include//apache//httpd//srclib//apr//include/apr.h:52,
                     from ..\\httpd\\httpd-2.0\\server\\Main.c:17:
    ..//..//..//..//S60_3rd_MR//EPOC32//include/e32def.h:2769: error: initializer element is not constant
    make[1]: *** [..\..\..\..\S60_3rd_MR\EPOC32\BUILD\Symbian\9.1\S60_3rd\mws\phone\group\APACHE\GCCE\UREL\main.o] Error 1
    make: *** [LIBRARYAPACHE] Error 2
      make -r  -f "\Symbian\9.1\S60_3rd_MR\EPOC32\BUILD\Symbian\9.1\S60_3rd\mws\phone\group\GCCE.make" RESOURCE CFG=UREL VERBOSE=-s
    make -s  -r -f "\Symbian\9.1\S60_3rd_MR\EPOC32\BUILD\Symbian\9.1\S60_3rd\mws\phone\group\MWSUTIL\GCCE\MWSUTIL.GCCE" RESOURCEUREL
    make -s  -r -f "\Symbian\9.1\S60_3rd_MR\EPOC32\BUILD\Symbian\9.1\S60_3rd\mws\phone\group\PCRE\GCCE\PCRE.GCCE" RESOURCEUREL
    make -s  -r -f "\Symbian\9.1\S60_3rd_MR\EPOC32\BUILD\Symbian\9.1\S60_3rd\mws\phone\group\PCREPOSIX\GCCE\PCREPOSIX.GCCE" RESOURCEUREL
    ...
    Code:
    make -s  -r -f "\Symbian\9.1\S60_3rd_MR\EPOC32\BUILD\Symbian\9.1\S60_3rd\mws\phone\group\PCREPOSIX\GCCE\PCREPOSIX.GCCE" UREL
    make -s  -r -f "\Symbian\9.1\S60_3rd_MR\EPOC32\BUILD\Symbian\9.1\S60_3rd\mws\phone\group\LIBAPR\GCCE\LIBAPR.GCCE" UREL
    Apr_atomic.c
    cc1.exe: warning: command line option "-Wno-ctor-dtor-privacy" is valid for C++/ObjC++ but not for C
    In file included from ..//..//..//..//S60_3rd_MR//EPOC32//include//apache//httpd//srclib//apr//include/apr.h:52,
                     from ..\\httpd\\httpd-2.0\\srclib\\apr\\atomic\\unix\\Apr_atomic.c:16:
    ..//..//..//..//S60_3rd_MR//EPOC32//include/e32def.h:2769: error: initializer element is not constant
    make[1]: *** [..\..\..\..\S60_3rd_MR\EPOC32\BUILD\Symbian\9.1\S60_3rd\mws\phone\group\LIBAPR\GCCE\UREL\apr_atomic.o] Error 1
    make: *** [TARGETLIBAPR] Error 2
      make -r  -f "\Symbian\9.1\S60_3rd_MR\EPOC32\BUILD\Symbian\9.1\S60_3rd\mws\phone\group\GCCE.make" FINAL CFG=UREL VERBOSE=-s
    Thanks for the continued help!

    Eitan

Similar Threads

  1. ImportError when adding modules
    By insyte in forum Symbian
    Replies: 3
    Last Post: 2006-09-07, 17:33
  2. Tip: Loading modules in a background thread
    By bercobeute in forum Symbian
    Replies: 1
    Last Post: 2006-02-27, 05:19
  3. File Writing Problem
    By _nomad_ in forum Symbian
    Replies: 2
    Last Post: 2005-04-19, 10:29
  4. Conditional compilation: managing set of modules
    By doctordwarf in forum Symbian
    Replies: 3
    Last Post: 2004-08-31, 14:01
  5. Modules
    By stenlik in forum Symbian Networking & Messaging (Closed)
    Replies: 1
    Last Post: 2004-06-09, 09:30

Posting Permissions

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