This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

CGT 7.2.3 Linker Problem - "warning: conservatively using trampoline for call destination ..."

Hello,

In C64x+, I moved from CGT 6.0.8 to CGT 7.2.3, and encountered the following linking problem:

Lets say I have a function named "FunctionA" which has two optional implementations:  "FunctionA_Implementation1" and "FunctionA_Implementation2".

I want that the call to "FunctionA" will be translated to a call to one of the two implementations, according to the linkage parameters.

In CGT 6.0.8, I accomplished this by using a cmd file as a parameter to the linker. However, this doesn't work anymore in CGT 7.2.3, the linker gives a "trampoline warning", and in run-time "FunctionA" is translated to NULL instead of to one of the implementations.

How can I accomplish this linking technique (using cmd to specify function) using CGT 7.2.3?

Details:

1) Code: Contains a call to FunctionA and two implementations for the function.

main.c:             FunctionA (....);

Implement1.c: void FunctionA_Implementation1(...) {...}

Implement2.c: void FunctionA_Implementation2(...) {...}

2) Linking: Using a cmd file to specify the implementation.

lnk6.exe ... config.cmd ....

config.cmd: _FunctionA = _FunctionA_Implementation1

3) Linking warning:

"warning: conservatively using trampoline for call destination "_FunctionA";
   generation and use of this trampoline can potentially be avoided if the
   --symbol_map option is used to re-direct symbol references instead of using
   symbol assignments"

 4) In runtime:

FunctionA is translated to NULL.

 

Thanks,