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

"Link-Time Optimization" creates errors

Hello,

I' m working on a project using LPC4367, I use µVision  MDK-ARM Professional V5.30.0.0, compiler is V6.14. The latest packs are installed:

Keil::LPC4300_DFP 2.9.0

Keil::MDK-Middleware 7.11.1

I would like to use Link-Time Optimization to reduce the code space, but I get some errors/warnings.

Therefore I tried to reproduce this with an example from the pack: USB Device Mass Storage (MBC4300)

.\Debug\MassStorage.axf: Warning: L6124W: Linker asked to preserve internal global: 'USBD_GetVersion'
.\Debug\MassStorage.axf: Warning: L6124W: Linker asked to preserve internal global: 'USBD_Uninitialize'
.\Debug\MassStorage.axf: Warning: L6124W: Linker asked to preserve internal global: 'USBD_EndpointStall'
.\Debug\MassStorage.axf: Error: L6137E: Symbol USBD_Initialize was not preserved by the LTO codegen but is needed by the image.
.\Debug\MassStorage.axf: Error: L6137E: Symbol USBD_GetVersion was not preserved by the LTO codegen but is needed by the image.
.\Debug\MassStorage.axf: Error: L6137E: Symbol USBD_Uninitialize was not preserved by the LTO codegen but is needed by the image.
.\Debug\MassStorage.axf: Error: L6137E: Symbol USBD_EndpointStall was not preserved by the LTO codegen but is needed by the image.

All this functions are part of the pack.

Does this mean I can't use LTO with this pack/drivers, or is there a setting which I need to change?

Thank you.

0