Windows Vista
Article Metadata
This article discusses some issues that may appear when using Symbian S60 v9.2 3rd Edition Feature Pack 1 under Windows Vista. Its intended to provide some temporary patches to make things work until official support is provided.
Please note that the actual patched versions of these files are available Using Nokia SDKs and Tools on Windows Vista
Contents |
PATH environment variable
The way Windows Vista uses default paths defined with the PATH variable is slightly different from older versions. You should check that the following paths are included in it.
<CSL Arm Toolchain install path>\bin;
<CSL Arm Toolchain install path>\arm-none-symbianelf\bin;
<CSL Arm Toolchain install path>\libexec\gcc\arm-none-symbianelf\3.4.3;
Also note that the path
C:\Program Files\Common Files\Symbian\Tools;
shouldn't be declared before them. If you get an error like as.exe was called but is not supported in this release then you don't have the path variables set up correctly.
You can change the PATH variable at My Computer > Properties > Advanced System Configuration > Environment Variables > System Variables. You'll be asked to give Administrator Permission during the process.
cl_bpabi.pm Issues
This is one of the script that helps creating the makefile of your project. You'll have to apply some patches to it before getting a correct makefile and being able to compile and link your projects.
GCCLibPath and GCCInstallPath subs
These two subs are intended to provide the absolute CSL Arm Toolchain install path. They try to extract the path from this call:
arm-none-symbianelf-g++ -print-libgcc-file-name
Under systems older than Windows Vista, this call should return the absolute path to libgcc.a. GCCLibPath and GCCInstallPath rely on this fact to get CSL Arm Toolchain install path.
However, under Windows Vista, that call will just return the name of the library, so they can't extract any path and return libgcc.a. Thus cl_bpabi.pm will end up generating a corrupt makefile.
A simple way to get around it is to manually provide those paths. You can just enter the following line at the beginning of each sub (you also can replace all their code, but I always find interesting keeping previous versions)
return "<CSL Arm Toolchain install path>/bin";
and
return "<CSL Arm Toolchain install path>/lib/gcc/arm-none-symbianelf/3.4.3";
at GCCInstallPath and GCCLibPath respectively. This way you should be able to compile your project.
Debugging with Carbide.c++
For debugging to work on Carbide.c++ you must put the application into XP compatibility mode. Otherwise you might get errors like Error starting debug process 87 57.
Hopefully some future version of Carbide/S60 SDK will be Vista compatible from the start.


Great article, thank you very much!
I have Windows Vista Business and S60 SDK 3rd FP1.
I made the changes the article proposes. Particularly I changed sub GCCLibPath in cl_bpapi.pm to return "C:\\Program Files\\CSL Arm Toolchain\\lib";
Still the GCCE linker gave error: arm-none-symbianelf-ld: cannot find -lgcc
I had to change in cl_bpapi.pm the line "\tGCC_LIB_PATH=",$libpath,"\n", to "\tGCC_LIB_PATH=",$libpath,"\\gcc\\arm-none-symbianelf\\3.4.3\n",
After this change the linking succeeded. I don't know, if this is the optimal or logical place to make the change, though.
- Jyrki
Hi,
I am still not able to get my program to work and get the following error.
perl.exe -S ABLD.PL \Symbian\Carbide\workspace\SIAS_MOBILE\group\ target gcce urel
arm-none-symbianelf-ld: cannot find -lsupc++ make[1]: *** [\S60\devices\S60_3rd_FP2_SDK\epoc32\release\GCCE\urel\SIAS_MOBILE.exe] Error 1 make: *** [TARGETSIAS_MOBILE] Error 2 make -j 4 -s -r -f "\S60\devices\S60_3rd_FP2_SDK\EPOC32\BUILD\Symbian\Carbide\workspace\SIAS_MOBILE\group\SIAS_MOBILE\GCCE\SIAS_MOBILE.GCCE" UREL
Total Time: 1 sec
Can you help?
- chin