Hi,
I've finally managed to compile some stuff under Windows Vista and I've had many issues with the SDK, so I thought I could share my experience with everybody.
Most issues are related to the file cl_bpapi.pm that can be found at Epoc32/tools path. Here we've got 2 things to fix.
First, subs GCCLibPath and GCCInstallPath will fail under Windows Vista because they rely on the fact that arm-nonesymbian-elf-g++ -print-libgcc-file-name should return the complete path to libgcc.a. This works under systems older than Vista, but under Windows Vista the result is just the library filename (libgcc.a) so path detection will fail for both items, libraries and binaries.
I fixed this adding the following line at the beginning of each sub:
Now you'll probably be able to compile all objects but linker will crash, because it can't find libgcc.aCode:return "C:\\Program Files\\CSL Arm Toolchain\\bin";
I fixed this issue modifying the sub PMBld. First, you should find the next piece of code:
Now, you can manually add the option "-L" to the linker parameters and manually specify the path to libgcc.a. The result should look like this:Code:if ($Bld =~ /DEB/) { &main::Output( "\t\$(LD) ","\$(STATIC_LIBS) ","\$(SYMBIAN_UDEB_LINK_FLAGS) ", "\$(SHARED_OBJECT_OPTION) ", "\$(CODE_SEGMENT_START) ", "\$(DATA_SEGMENT_START) 0x400000 ", "\$(SYMVER_OPTION) ","\$(SO_NAME_OPTION) ","$LinkAs" ); } else { &main::Output( "\t\$(LD) ","\$(STATIC_LIBS) ","\$(SYMBIAN_UREL_LINK_FLAGS) ","\$(SHARED_OBJECT_OPTION) ", "\$(CODE_SEGMENT_START) ", "\$(DATA_SEGMENT_START) 0x400000 ", "\$(SYMVER_OPTION) ","\$(SO_NAME_OPTION) ","$LinkAs" ); }
You may find other issues related to defalut paths. Check your PATH environment variable and check you've got the following paths at the beginning:Code:if ($Bld =~ /DEB/) { &main::Output( "\t\$(LD) ","\$(STATIC_LIBS) ","\$(SYMBIAN_UDEB_LINK_FLAGS) ", "\$(SHARED_OBJECT_OPTION) ", "\$(CODE_SEGMENT_START) ", "\$(DATA_SEGMENT_START) 0x400000 ", "\$(SYMVER_OPTION) ","\$(SO_NAME_OPTION) ","$LinkAs", " -L\"C:\\Program Files\\CSL Arm ToolChain\\lib\\gcc\\arm-none-symbianelf\\3.4.3\"" ); } else { &main::Output( "\t\$(LD) ","\$(STATIC_LIBS) ","\$(SYMBIAN_UREL_LINK_FLAGS) ","\$(SHARED_OBJECT_OPTION) ", "\$(CODE_SEGMENT_START) ", "\$(DATA_SEGMENT_START) 0x400000 ", "\$(SYMVER_OPTION) ","\$(SO_NAME_OPTION) ","$LinkAs", " -L\"C:\\Program Files\\CSL Arm ToolChain\\lib\\gcc\\arm-none-symbianelf\\3.4.3\"" ); }
Remember you should restart your IDE after changing the PATH environment variable.Code:C:\Program Files\CSL Arm Toolchain\bin; C:\Program Files\CSL Arm Toolchain\arm-none-symbianelf\bin; C:\Program Files\CSL Arm Toolchain\libexec\gcc\arm-none-symbianelf\3.4.3;
In these examples, the Toolchain is installed at "C:\Program Files\CSL Arm Toolchain" You should replace it with your own installation path.
Good luck!
sync



