×

Discussion Board

Results 1 to 4 of 4
  1. #1
    Registered User
    Join Date
    Mar 2003
    Posts
    6

    allmul, allshl, allshr, alldiv

    When porting a rather large application to the Nokia 7650, the compiler spits out, beside several _chkstk that I know, these other errors. I was unable to find any further clarification. The _chkstk is actually reported before all the other. Also, what's the purpose of the EPOCSTACKSIZE directive? Can be used to increase the limits of automatic variables creation?
    Thanks a lot.

  2. #2
    Nokia Developer Expert
    Join Date
    Mar 2003
    Posts
    457
    Hope this answer is of use for someone, as the original question was asked a long time ago. I just came across this problem and found no answer anywhere.

    It is apparently only a WINS problem. Of some reason in some cases the compiler emit calls to these functions (__chkstk, __allmul etc.) and these functions are not defined in any Symbian libraries.

    A workaround is to add the following to your .mmp-file.

    START
    WIN32_LIBRARY msvcrt.lib
    END

    Note that this may lead to other problems, at least, if you use the Symbian posix library. Namely, the linker may pick symbols from the Windows library and not from a Symbian library, which obviously will lead to problems.

    A workaround for that is to take the statically linked Windows library (libcmt.lib), extract the relevant objects (build\intel\mt_obj\[chkstk.obj|lldiv.obj|llmul.obj|llrem.obj|llshl.obj|llshr.obj] from the library, and link a custom library containing only the relevant symbols.

  3. #3
    Regular Contributor
    Join Date
    Dec 2003
    Posts
    74

    same problem

    I have the following errors:

    Code:
       Creating library \Symbian\6.1\Series60\EPOC32\BUILD\MYPROJ\SEMADLL\GROUP\SEMADLL\WINS\UDEB\SEMACODELIB.lib and object \Symbian\6.1\Series60\EPOC32\BUILD\MYPROJ\SEMADLL\GROUP\SEMADLL\WINS\UDEB\SEMACODELIB.exp
    ECC200DECODER.obj : error LNK2019: unresolved external symbol __allshr referenced in function "void __cdecl evaluatefitline2(class simplevector<struct Point> *,int,int,double,double,double,double,double *,double *,double *,double *,int,int,int)" (?evaluatefitline2@@YAXPAV?$simplevector@UPoint@@@@HHNNNNPAN111HHH@Z)
    L1LINEFIT.obj : error LNK2001: unresolved external symbol __allshr
    ECC200DECODER.obj : error LNK2019: unresolved external symbol __allmul referenced in function "void __cdecl evaluatefitline2(class simplevector<struct Point> *,int,int,double,double,double,double,double *,double *,double *,double *,int,int,int)" (?evaluatefitline2@@YAXPAV?$simplevector@UPoint@@@@HHNNNNPAN111HHH@Z)
    L1LINEFIT.obj : error LNK2001: unresolved external symbol __allmul
    ECC200DECODER.obj : error LNK2019: unresolved external symbol __allshl referenced in function "void __cdecl evaluatefitline2(class simplevector<struct Point> *,int,int,double,double,double,double,double *,double *,double *,double *,int,int,int)" (?evaluatefitline2@@YAXPAV?$simplevector@UPoint@@@@HHNNNNPAN111HHH@Z)
    L1LINEFIT.obj : error LNK2001: unresolved external symbol __allshl
    L1LINEFIT.obj : error LNK2019: unresolved external symbol __alldiv referenced in function "__int64 __cdecl int64median(__int64 *,int)" (?int64median@@YA_JPA_JH@Z)
    \Symbian\6.1\Series60\EPOC32\BUILD\MYPROJ\SEMADLL\GROUP\SEMADLL\WINS\UDEB\SEMACODELIB.DLL : fatal error LNK1120: 4 unresolved externals
    NMAKE : fatal error U1077: 'link.exe' : return code '0x460'
    Stop.
    I can't understand what you are doing to fix it. Is there any other way, like can I change my code?

    simon

  4. #4
    Registered User
    Join Date
    May 2004
    Posts
    39

    _chkstk

    #define _PAGESIZE_ 0x1000

    #if !defined (__MARM__)
    void __declspec(naked) _chkstk(void)
    {
    _asm
    {
    push ecx
    cmp eax,_PAGESIZE_
    lea ecx,[esp] + 8
    jb short lastpage

    probepages:
    sub ecx,_PAGESIZE_
    sub eax,_PAGESIZE_

    test dword ptr [ecx],eax

    cmp eax,_PAGESIZE_
    jae short probepages

    lastpage:
    sub ecx,eax
    mov eax,esp

    test dword ptr [ecx],eax

    mov esp,ecx

    mov ecx,dword ptr [eax]
    mov eax,dword ptr [eax + 4]

    push eax
    ret
    }
    }
    #endif

Posting Permissions

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