This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

ERROR L128: REFERENCE MADE TO UNRESOLVED EXTERNAL SYMBOL: ?C?LIMUL

I just ordered the PK51 tool chain.

Installed it and tried to compile some code on an old project.

The files appear to compile, but the linking step is throwing the error shown below.

I searched the project for LIMUL and no occurrence was found.

Is there any process I can use to find  the source of this error?

The project is large and I cant publish the code.

Any help would be very much appreciated.

Thanks

.....

compiling ....c...
linking...
*** ERROR L127: UNRESOLVED EXTERNAL SYMBOL
SYMBOL: ?C?LIMUL
MODULE: main.obj (MAIN)
*** ERROR L128: REFERENCE MADE TO UNRESOLVED EXTERNAL
SYMBOL: ?C?LIMUL
MODULE: main.obj (MAIN)
ADDRESS: 100233CH
Program Size: data=104.1 xdata=5121 const=18 code=13610
Target not created.
Build Time Elapsed: 00:00:02

Parents
  • rkopsch,

    Thanks for the link. But we have two machines that need to compile the code.

    The older toolchain builds fine. But the new toolchain does not build the code

    I also searched the project for files for LIMUL. Cant find it.

    Where is this error coming from?

    Thanks for your help

    BUILD is okay

    LX51 LINKER/LOCATER V4.25                                                               02/06/2023  11:04:27  PAGE 1

     

    LX51 LINKER/LOCATER V4.25, INVOKED BY:

    C:\KEIL_V5\C51\BIN\LX51.EXE traceIf.obj, commApp.obj, linkLevel.obj, main.obj, regIf.obj, asyncDriver.obj, STARTUP.obj,

    >> Coherent.obj, SfrRegs.obj, MotorCtrl.obj, globals.obj, ResolverIntfc.obj, IsOddParity.obj, eeprom.obj, miscLoad.obj,

    >> Timer1.obj, HallIntfc.obj, .\C51FPL.LIB, .\C51L.LIB TO Vector_Drive NODEFAULTLIBRARY CLASSES (XDATA (X:0XB000-X:0XBFF

    >> F, X:0XF800-X:0XFFFF), HDATA (X:0XB000-X:0XBFFF, X:0XF800-X:0XFFFF), CODE (C:0X0-C:0XAFFF), CONST (C:0X0-C:0XAFFF), E

    >> CODE (C:0X0-C:0XAFFF), HCONST (C:0X0-C:0XAFFF))

    New toolchain does not build

    LX51 LINKER/LOCATER V4.66.97.0                                                          02/06/2023  10:58:55  PAGE 1 

    LX51 LINKER/LOCATER V4.66.97.0, INVOKED BY:

    C:\KEIL_V5\C51\BIN\LX51.EXE traceIf.obj, commApp.obj, linkLevel.obj, main.obj, regIf.obj, asyncDriver.obj, STARTUP.obj,

    >> Coherent.obj, SfrRegs.obj, MotorCtrl.obj, globals.obj, ResolverIntfc.obj, IsOddParity.obj, eeprom.obj, miscLoad.obj,

    >> Timer1.obj, HallIntfc.obj, .\C51FPL.LIB, .\C51L.LIB TO Vector_Drive NODEFAULTLIBRARY CLASSES (XDATA (X:0XB000-X:0XBFF

    >> F, X:0XF800-X:0XFFFF), HDATA (X:0XB000-X:0XBFFF, X:0XF800-X:0XFFFF), CODE (C:0X0-C:0XAFFF), CONST (C:0X0-C:0XAFFF), E

    >> CODE (C:0X0-C:0XAFFF), HCONST (C:0X0-C:0XAFFF))

Reply
  • rkopsch,

    Thanks for the link. But we have two machines that need to compile the code.

    The older toolchain builds fine. But the new toolchain does not build the code

    I also searched the project for files for LIMUL. Cant find it.

    Where is this error coming from?

    Thanks for your help

    BUILD is okay

    LX51 LINKER/LOCATER V4.25                                                               02/06/2023  11:04:27  PAGE 1

     

    LX51 LINKER/LOCATER V4.25, INVOKED BY:

    C:\KEIL_V5\C51\BIN\LX51.EXE traceIf.obj, commApp.obj, linkLevel.obj, main.obj, regIf.obj, asyncDriver.obj, STARTUP.obj,

    >> Coherent.obj, SfrRegs.obj, MotorCtrl.obj, globals.obj, ResolverIntfc.obj, IsOddParity.obj, eeprom.obj, miscLoad.obj,

    >> Timer1.obj, HallIntfc.obj, .\C51FPL.LIB, .\C51L.LIB TO Vector_Drive NODEFAULTLIBRARY CLASSES (XDATA (X:0XB000-X:0XBFF

    >> F, X:0XF800-X:0XFFFF), HDATA (X:0XB000-X:0XBFFF, X:0XF800-X:0XFFFF), CODE (C:0X0-C:0XAFFF), CONST (C:0X0-C:0XAFFF), E

    >> CODE (C:0X0-C:0XAFFF), HCONST (C:0X0-C:0XAFFF))

    New toolchain does not build

    LX51 LINKER/LOCATER V4.66.97.0                                                          02/06/2023  10:58:55  PAGE 1 

    LX51 LINKER/LOCATER V4.66.97.0, INVOKED BY:

    C:\KEIL_V5\C51\BIN\LX51.EXE traceIf.obj, commApp.obj, linkLevel.obj, main.obj, regIf.obj, asyncDriver.obj, STARTUP.obj,

    >> Coherent.obj, SfrRegs.obj, MotorCtrl.obj, globals.obj, ResolverIntfc.obj, IsOddParity.obj, eeprom.obj, miscLoad.obj,

    >> Timer1.obj, HallIntfc.obj, .\C51FPL.LIB, .\C51L.LIB TO Vector_Drive NODEFAULTLIBRARY CLASSES (XDATA (X:0XB000-X:0XBFF

    >> F, X:0XF800-X:0XFFFF), HDATA (X:0XB000-X:0XBFFF, X:0XF800-X:0XFFFF), CODE (C:0X0-C:0XAFFF), CONST (C:0X0-C:0XAFFF), E

    >> CODE (C:0X0-C:0XAFFF), HCONST (C:0X0-C:0XAFFF))

Children
  • ?C?LIMUL is almost certainly a runtime support function,which is called by compiled code to implement elementary functions that the CPU core cannot do on its own.

    My guess would be that it's the implementation of Long Integer MULtiplication.  You may have shot yourself in the foot by issuing that "NODEFAULTLIB" option, as it's exactly the default libraries supplied by the compiler that are supposed to contain such functions.