Re: Compiling xemacs with Visual Studio 2015 Community ('free') edition

[email protected] (Henry S. Thompson) Mon, 27 Jul 2015 13:31:18 +0100
Newsgroups gmane.emacs.xemacs.beta
Message-ID <[email protected]>
ht writes:

> Sean MacLennan <[email protected]> writes:
>
>> On Sun, 26 Jul 2015 19:58:09 +0100
>> [email protected] (Henry S. Thompson) wrote:
>>> Large numbers of _-prefixed fns are showing is unavailable, but I
>>> can't see where they're coming from.
>>
>> Could you list a couple of the _-prefixed functions. Usually the
>> problem is the other way around... they want _ functions instead of the
>> normal functions.
>
> 1> bscmake -nologo -oC:\C64\usr\local\src\xemacs-21.5-upstream\src\temacs.bsc @C:\C64\usr\local\src\xemacs-21.5-upstream\nt\obj\bscmake.tmp
> 1> del C:\C64\usr\local\src\xemacs-21.5-upstream\nt\obj\bscmake.tmp
> 1> link.exe @C:\Users\ht\AppData\Local\Temp\nm5FE7.tmp
> ...
> 1>win32.obj: error LNK2001: unresolved external symbol _memcpy
> ...
> 1>text.obj: error LNK2001: unresolved external symbol __imp__wcslen
> ...
> 1>win32.obj: error LNK2001: unresolved external symbol _strcmp
>
> And so on -- dozens of symbols, most referenced from dozens of files.
> Google/stackoverflow suggest this is something to do with the various
> flavours of MSVCRT, but I'd expect VS to take care of that sort of
> thing. . .

OK, by creating a tiny test project and comparing its linking
behaviour, I identified at least four fixable problems in xemacs.mak:

1) _strlen and friends are defined in a previously unused library ucrt(d).lib;
2) _memcpy and friends are defined in a previously
   unused library vcruntime(d).lib;
3) We don't have manifest files (yet), so the calls to mt -manifest...
    need to be conditionalized on their existence, i.e. by prefixing
    with
     @if exist [email protected]
4) Some of the extension libraries, compiled against older VS
    version(s), reference no-longer-supported symbols, so config.inc
    changed to avoid postgresql, png and tiff for the time being.

Having made those changes, I can compile and get past all the earlier
missing symbols, but alas Xpm.lib is _also_ stale, and required, so
I'll have to stop and rebuild that before further progress.

ht
-- 
       Henry S. Thompson, School of Informatics, University of Edinburgh
      10 Crichton Street, Edinburgh EH8 9AB, SCOTLAND -- (44) 131 650-4440
                Fax: (44) 131 650-4587, e-mail: [email protected]
                       URL: http://www.ltg.ed.ac.uk/~ht/
 [mail from me _always_ has a .sig like this -- mail without it is forged spam]