Error while building sisx file



  • 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++ Problem

    In 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.lib

    appreciate you responses... thanks in advance...

    regards,
    Sundar



  • 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 .



  • 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 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



  • [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...



  • 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 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



  • [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

    http://pastebin.com/Fs7tXx97

    could you please go through it and please let us know where are we making mistake



  • 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 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>&1

    and 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/f4uMSxGk

    since 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....



  • 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 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.



  • [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 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...


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.