Is it possible to create a forwarder export in a DLL's export table, by using GoLink? The way forwarding a function works, is it has to do with the entries in the Export Address Table. The MS documentation at
https://docs.microsoft.com/en-us/windows/win32/debug/pe-format explains it.
The entries in the EAT (Export Address Table) can either be normal export entries
The address of the exported symbol when loaded into memory, relative to the image base. For example, the address of an exported function.
or forwarding entries
The pointer to a null-terminated ASCII string in the export section. This string must be within the range that is given by the export table data directory entry. See Optional Header Data Directories (Image Only). This string gives the DLL name and the name of the export (for example, "MYDLL.expfunc") or the DLL name and the ordinal number of the export (for example, "MYDLL.#27").
So basically, if a given EAT entry is the first type of entry (it points to a location outside of the exports directory) then it is treated as pointing to an exported function from within the current DLL file.
However, if a given EAT entry is the second type of entry (it points to a location inside of the exports directory), then it is treated as pointing to a string which must be in the following format. The string names a DLL file (without the ".dll" at the end of the filename), followed by a period, followed by the name or ordinal of the function (if it's an ordinal, it must have the # symbol immediately before the ordinal number).
If at all possible, I would like GoLink to support generating the second type of EAT entry, so that I can make my DLL forward useful functions from other DLLs, that are related to the functionality of the DLL that I'm making.
If this is not currently possible with GoLink. Please add this feature.