Error while building sisx file
-
wrote on 16 Dec 2010, 06:23 last edited by
Hi Folks,
We are using Carbide C++ V2.3, QT for Symbian, QT V4.7.0 and S60 3rd Release FP2 and we are using GCCE for the Phone release build...
While building "sisx" for Nokia E72 and E52 we are getting the following error and the sisx is not building
relocation truncated to fit: R_ARM_THM_CALL against symbol
_ZN4User15HandleExceptionEPv@@euser{000a0000}[100039e5].dll' defined in ER_RO section in \S60\devices\S60_3rd_FP2_SDK_v1.1\epoc32\release\A RMV5\LIB\euser.dso Message line 0 C/C++ Problem 1292422505001 relocation truncated to fit: R_ARM_THM_CALL against symbol
_ZN4User4ExitEi@@euser{000a0000}[100039e5].dll' defined in ER_RO section in \S60\devices\S60_3rd_FP2_SDK_v1.1\epoc32\release\A RMV5\LIB\euser.dso Message line 0 C/C++ Problem
1292422505000 relocation truncated to fit: R_ARM_THM_CALL against symbol_ZN8UserHeap15SetupThreadHeapEiR24SStdEpocThreadC reateInfo@@euser{000a0000}[100039e5].dll' defined in ER_RO section in \S60\devices\S60_3rd_FP2_SDK_v1.1\epoc32\release\A RMV5\LIB\euser.dso Message line 0 C/C++ Problem 1292422504998 relocation truncated to fit: R_ARM_THM_CALL against symbol
_ZN4User9InvariantEv@@euser{000a0000}[100039e5].dll' defined in ER_RO section in \S60\devices\S60_3rd_FP2_SDK_v1.1\epoc32\release\A RMV5\LIB\euser.dso Message line 0 C/C++ ProblemIn some other forum, we have been asked to use the updated eexe.lib while building and if that doesn't work, have been asked to build in ARM mode (by adding ALWAYS_BUILD_AS_ARM in the MMP file) ...
but that method also failed.... could someone help us to build .sisx... we could build the .sisx, if it doesn't exceed 1.7MB... if we add more classes/code, .sisx fails to build and shows the above said error...
and the following is the list of libraries we are using in our MMP file
LIBRARY eikcore.lib
LIBRARY euser.lib
LIBRARY apgrfx.lib
LIBRARY cone.lib
LIBRARY apmime.lib
LIBRARY PlatformEnv.lib
LIBRARY efsrv.lib
LIBRARY commondialogs.lib
LIBRARY esock.lib
LIBRARY commdb.lib
LIBRARY apengine.lib
LIBRARY apsettingshandlerui.lib
LIBRARY insock.lib
LIBRARY aknnotify.lib
LIBRARY eiksrv.lib
LIBRARY libstdcpp.lib
LIBRARY QtSql.lib
LIBRARY QtXml.lib
LIBRARY QtGui.lib
LIBRARY QtNetwork.lib
LIBRARY QtCore.lib
LIBRARY libpthread.lib
LIBRARY libc.lib
LIBRARY libm.lib
LIBRARY libdl.lib
STATICLIBRARY qtmain.libappreciate you responses... thanks in advance...
regards,
Sundar -
wrote on 19 Dec 2010, 10:55 last edited by
Hi, I already answered in Forum Nokia (as jakoskin).
Modifying MMP file won't work as qmake will overwrite it (unless you invoke abld directly).
Use MMP_RULES += ALWAYS_BUILD_AS_ARM in pro file.You still need to look at the flags passed to the compiler to verify that indeed you are building in arm mode. Look for -mthumb and if it exists the you are building in thumb mode. IIRC abld insists building for thumb when using GCCE so you might need to modify the build scripts.
do qmake && make release-gcce > log.txt 2>&1
and post the full build log to e.g. pastebin.com . -
wrote on 19 Dec 2010, 12:40 last edited by
Something that I just remembered. You need to delete the outputted .o files when changing the mode, otherwise they won't get recompiled. Delete epoc32\build<your project> - directory and rebuild everything after adding MMP_RULES += ALWAYS_BUILD_AS_ARM.
note: If you are using compiled-in resources remove them from exe and use separate qrc files. While resource embedding works on other platforms nicely in Symbian you get into trouble fast.
-
wrote on 20 Dec 2010, 05:19 last edited by
[quote author="koshui" date="1292762451"]Something that I just remembered. You need to delete the outputted .o files when changing the mode, otherwise they won't get recompiled. Delete epoc32\build<your project> - directory and rebuild everything after adding MMP_RULES += ALWAYS_BUILD_AS_ARM.
note: If you are using compiled-in resources remove them from exe and use separate qrc files. While resource embedding works on other platforms nicely in Symbian you get into trouble fast.[/quote]
Thank you for the suggestion ... we have tried the first option of deleting project directory from the BUILD path/directory and added MMP_RULES += ALWAYS_BUILD_AS_ARM ... this method still fails and and the same error is creeping up during the sisx build
-
wrote on 20 Dec 2010, 05:23 last edited by
[quote author="koshui" date="1292756136"]Hi, I already answered in Forum Nokia (as jakoskin).
Modifying MMP file won't work as qmake will overwrite it (unless you invoke abld directly).
Use MMP_RULES += ALWAYS_BUILD_AS_ARM in pro file.You still need to look at the flags passed to the compiler to verify that indeed you are building in arm mode. Look for -mthumb and if it exists the you are building in thumb mode. IIRC abld insists building for thumb when using GCCE so you might need to modify the build scripts.
do qmake && make release-gcce > log.txt 2>&1
and post the full build log to e.g. pastebin.com .[/quote]How do we see the flags/parameters which are passed to the compiler.. we are compiling our Symbian application through the Carbide C++ IDE...
-
wrote on 20 Dec 2010, 07:56 last edited by
Carbide has "Console" Window which shows all the commands, but I think it is bit hard to use and I would recommend building from command line directly with qmake && make release-gcce > log.txt 2>&1 .
GCCE toolchain all exes are prefixed with "arm-none-symbianelf-" so they are easy to spot from the output. -
wrote on 20 Dec 2010, 08:42 last edited by
[quote author="koshui" date="1292831773"]Carbide has "Console" Window which shows all the commands, but I think it is bit hard to use and I would recommend building from command line directly with qmake && make release-gcce > log.txt 2>&1 .
GCCE toolchain all exes are prefixed with "arm-none-symbianelf-" so they are easy to spot from the output.
[/quote]Thank you ... i will try and let you know the result
-
wrote on 22 Dec 2010, 03:58 last edited by
[quote author="koshui" date="1292756136"]Hi, I already answered in Forum Nokia (as jakoskin).
Modifying MMP file won't work as qmake will overwrite it (unless you invoke abld directly).
Use MMP_RULES += ALWAYS_BUILD_AS_ARM in pro file.You still need to look at the flags passed to the compiler to verify that indeed you are building in arm mode. Look for -mthumb and if it exists the you are building in thumb mode. IIRC abld insists building for thumb when using GCCE so you might need to modify the build scripts.
do qmake && make release-gcce > log.txt 2>&1
and post the full build log to e.g. pastebin.com .[/quote]We have posted the "log.txt" @ PasteBin.com and the link is
could you please go through it and please let us know where are we making mistake
-
wrote on 22 Dec 2010, 19:07 last edited by
Hi, it says : "nothing to do" as you've already compiled all .o files. You need to clean and redo the build to get the compiler output.
From current state in the project directory do this:
abld reallyclean gcce urel
abld build -v gcce urel > log.txt 2>&1
and post that. The log should have much more stuff in it.
For abld reference see http://library.forum.nokia.com/index.jsp?topic=/S60_5th_Edition_Cpp_Developers_Library/GUID-35228542-8C95-4849-A73F-2B4F082F0C44/sdk/doc_source/ToolsAndUtilities94/BuildTools/UsingAbld.guide.html -
wrote on 23 Dec 2010, 05:04 last edited by
[quote author="koshui" date="1293044847"]Hi, it says : "nothing to do" as you've already compiled all .o files. You need to clean and redo the build to get the compiler output.
From current state in the project directory do this:
abld reallyclean gcce urel
abld build -v gcce urel > log.txt 2>&1
and post that. The log should have much more stuff in it.
For abld reference see http://library.forum.nokia.com/index.jsp?topic=/S60_5th_Edition_Cpp_Developers_Library/GUID-35228542-8C95-4849-A73F-2B4F082F0C44/sdk/doc_source/ToolsAndUtilities94/BuildTools/UsingAbld.guide.html[/quote]As instructed by you, we did the
abld reallyclean gcce urel
abld build -v gcce urel > log.txt 2>&1and posted the log.txt @ patebin.com
the links are
( first part ) http://pastebin.com/jHFTwvWX
( second part ) http://pastebin.com/bxtTyQ6D
( final part of log.txt ) http://pastebin.com/f4uMSxGksince the log.txt is longer, pastebin.com was throwing error and we had to paste the log.txt in three parts..
Could you go throug the log.txt and please let us know what to do and in the mean time thank you for your time....
-
wrote on 23 Dec 2010, 11:28 last edited by
From the logs we can see that your application is now correctly built in arm mode but the static library eexe.lib is built in thumb mode and thus cannot reach the functions in euser.dso.
That means, you need to get your hands on arm built eexe.lib which was the starting point of the issue in FN thread.
edit:
I still recommend trying to get your hands on to the latest versions of S60 SDKs and try copying the library from there. ARM built eexe.lib used to be available from Symbian for this exact reason, but alas Symbian websites don't exist anymore. -
wrote on 23 Dec 2010, 14:24 last edited by
[quote author="koshui" date="1293103695"]From the logs we can see that your application is now correctly built in arm mode but the static library eexe.lib is built in thumb mode and thus cannot reach the functions in euser.dso.
That means, you need to get your hands on arm built eexe.lib which was the starting point of the issue in FN thread.
edit:
I still recommend trying to get your hands on to the latest versions of S60 SDKs and try copying the library from there. ARM built eexe.lib used to be available from Symbian for this exact reason, but alas Symbian websites don't exist anymore.[/quote]We are using S60_3rd_FP2_SDK_v1.1, and hope we are using the latest version in this category and we tried the latest library available with N97 SDK ( but we are not sure whether its ARM built eexe.lib ) ... but the same error popped-up with the N97 SDk too.
-
wrote on 28 Dec 2010, 11:15 last edited by
[quote author="pazhs" date="1293114294"]
We are using S60_3rd_FP2_SDK_v1.1, and hope we are using the latest version in this category and we tried the latest library available with N97 SDK ( but we are not sure whether its ARM built eexe.lib ) ... but the same error popped-up with the N97 SDk too.
[/quote]Sorry for late answer... Christmas...
I checked my 5.0 and N97 SDKs both of them had THUMB built eexe.lib. Sorry if I mislead you to think upgrading to those would work :S
Good news is that Symbian3 SDK eexe.lib is built as ARM. I checked Forum Nokia Symbian3 0.8 SDK.
Easy way to verify is to open the eexe.lib in your favorite text editor and search for "--thumb" or "THUMB" (upper case). If you don't find it then it is built for arm.
-
wrote on 28 Dec 2010, 14:47 last edited by
[quote author="koshui" date="1293534906"][quote author="pazhs" date="1293114294"]
We are using S60_3rd_FP2_SDK_v1.1, and hope we are using the latest version in this category and we tried the latest library available with N97 SDK ( but we are not sure whether its ARM built eexe.lib ) ... but the same error popped-up with the N97 SDk too.
[/quote]Sorry for late answer... Christmas...
I checked my 5.0 and N97 SDKs both of them had THUMB built eexe.lib. Sorry if I mislead you to think upgrading to those would work :S
Good news is that Symbian3 SDK eexe.lib is built as ARM. I checked Forum Nokia Symbian3 0.8 SDK.
Easy way to verify is to open the eexe.lib in your favorite text editor and search for "--thumb" or "THUMB" (upper case). If you don't find it then it is built for arm.
[/quote]Hi thanks for your time and reply... As suggested by you, we tried the eexe.lib which is available with Symbian ^ 3 SDK... and it worked....
Thank you very much for your valuable time
Happy Holidays and wish you a very happy New Year...
1/14