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.
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,
Gilad Z said: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.
I don't know how that's possible. Could you show us the linker command file that used to work?