Hello --

Thanks for the reply

I am using visual studio .net 2003, or vc 7.1 -- It is fully installed and all
service packs applied

This version of visual studio I think was published in the fall of 2002, so its
10 years old


I unloaded the tar ball, then "cd" to the nt directory, ran "configure.bat" like
this:

configure.bat --with-msvc --no-opt --enable-checking --ldflags -map
--without-png --without-jpeg --without-gif --without-tiff
--without-xpm

then I ran

nmake -a -f makefile

these tools did build --

addpm.exe
ddeclient.exe
runemacs.exe


cmdproxy.obj did fail with the missing externs --


I did find if I modified the makefile and made USE_CRT_DLL a comment,
then the make used

libcmt.lib

and __pctype resolved

NOTE: there were issues with etags.c and ctags.c -- they need "include
<stddef.h> in them

But there were other errors -- I can reproduce it if you like --

also, in the code segment in the makefile


!ifdef USE_CRT_DLL
libc            = msvcrt$(D).lib
EMACS_EXTRA_C_FLAGS= -D_DLL -D_MT -DUSE_CRT_DLL=1
!else
libc            = libcmt$(D).lib
EMACS_EXTRA_C_FLAGS= -D_MT
!endif


I think you want "!if" -- this is false if the expression is 0, true
otherwise -- using
!ifdef is alway true since the item USE_CRT_DLL is defined no matter
what its value is

I have attached the console session run these commands / batch files

Thanks

Frank Esposito


On Mon, Nov 19, 2012 at 2:10 PM, Fabrice Popineau
<[email protected]> wrote:
>
>> > When trying to build v24.2  with visual c 7.1 the file  cmdproxy.c
>> > fails to link due to --
>
>
>  What is visual c 7.1 ? The  Microsoft Windows SDK 7.1 ?
>
> What do you get with :
>
> C:\Source\XEmTeX\emacs\emacsw32\nt>cl
> Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 16.00.40219.01 for
> 80x86
> Copyright (C) Microsoft Corporation.  All rights reserved.
>
> cl : Command line error D8003 : missing source filename
>
> C:\Source\XEmTeX\emacs\emacsw32\nt>link
> Microsoft (R) Incremental Linker Version 10.00.40219.01
> Copyright (C) Microsoft Corporation.  All rights reserved.
>
>  usage: LINK [options] [files] [@commandfile]
>
>> >
>> > LINK : warning LNK4044: unrecognized option '/manifest'; ignored
>> > LINK : warning LNK4044: unrecognized option '/dynamicbase:no'; ignored
>
>
> Annoying that your linker does not grok these options. They are not that
> new.
>
>>
>> > cmdproxy.obj : error LNK2001: unresolved external symbol __pctype
>> > cmdproxy.obj : error LNK2001: unresolved external symbol ___mb_cur_max
>> > obj/i386/cmdproxy.exe : fatal error LNK1120: 2 unresolved externals
>> > NMAKE : fatal error U1077: 'link' : return code '0x460'
>> > Stop.
>
>
> Problem : msvcrt is missing. Check if  USE_CRT_DLL=1 .
>
> Send a full log of the commands emitted.
>
> Regards,
>
> Fabrice
>
>>
>> >
>> > What library do I need to resolve these links
>>
>> Fabrice, could you please help out here?  TIA.
>
>
<(fpe1001)o:\sandbox(0,0)>e:


<(fpe1001)e:\dev\emacs\emacs-24.2\lib-src(0,0)>cd ..


<(fpe1001)e:\dev\emacs\emacs-24.2(0,0)>cd nt



<(fpe1001)e:\dev\emacs\emacs-24.2\nt(0,0)>cl

Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 13.10.6030 for 80x86

Copyright (C) Microsoft Corporation 1984-2002. All rights reserved.



usage: cl [ option... ] filename... [ /link linkoption... ]



<(fpe1001)e:\dev\emacs\emacs-24.2\nt(0,0)>echo This is visual studio 7.1 (.net 
2003)

This is visual studio 7.1 (.net 2003)



<(fpe1001)e:\dev\emacs\emacs-24.2\nt(0,0)>echo c compiler

c compiler



<(fpe1001)e:\dev\emacs\emacs-24.2\nt(0,0)>cl

Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 13.10.6030 for 80x86

Copyright (C) Microsoft Corporation 1984-2002. All rights reserved.


usage: cl [ option... ] filename... [ /link linkoption... ]



<(fpe1001)e:\dev\emacs\emacs-24.2\nt(0,0)>echo This version of cl does not 
support manifests

This version of cl does not support manifests



<(fpe1001)e:\dev\emacs\emacs-24.2\nt(0,0)>del *.BAK

Deleting E:\dev\emacs\emacs-24.2\nt\cmdproxy.bak

Deleting E:\dev\emacs\emacs-24.2\nt\makefile.bak

     2 files deleted


<(fpe1001)e:\dev\emacs\emacs-24.2\nt(0,0)>pre-go.btm

call configure.bat --with-msvc --no-opt --enable-checking --ldflags -map 
--without-png --without-jpeg --without-gif --without-tiff --without-xpm

Checking for 'cp'...

Checking for 'rm'...

Checking for libgnutls...

...gnutls.h not found, building without TLS support.

Generating makefiles

E:\dev\emacs\emacs-24.2\nt\config.nt => E:\dev\emacs\emacs-24.2\nt\config.tmp

     1 file copied

Deleting E:\dev\emacs\emacs-24.2\nt\config.tmp

     1 file deleted

E:\dev\emacs\emacs-24.2\nt\config.settings => 
E:\dev\emacs\emacs-24.2\nt\makefile

E:\dev\emacs\emacs-24.2\nt\nmake.defs =>> E:\dev\emacs\emacs-24.2\nt\makefile

E:\dev\emacs\emacs-24.2\nt\makefile.w32-in =>> 
E:\dev\emacs\emacs-24.2\nt\makefile

     3 files copied

E:\dev\emacs\emacs-24.2\nt\config.settings => 
E:\dev\emacs\emacs-24.2\admin\unidata\makefile

E:\dev\emacs\emacs-24.2\nt\nmake.defs =>> 
E:\dev\emacs\emacs-24.2\admin\unidata\makefile

E:\dev\emacs\emacs-24.2\admin\unidata\makefile.w32-in =>> 
E:\dev\emacs\emacs-24.2\admin\unidata\makefil

e

     3 files copied

E:\dev\emacs\emacs-24.2\nt\config.settings => 
E:\dev\emacs\emacs-24.2\lib-src\makefile

E:\dev\emacs\emacs-24.2\nt\nmake.defs =>> 
E:\dev\emacs\emacs-24.2\lib-src\makefile

E:\dev\emacs\emacs-24.2\lib-src\makefile.w32-in =>> 
E:\dev\emacs\emacs-24.2\lib-src\makefile

     3 files copied

E:\dev\emacs\emacs-24.2\nt\config.settings => 
E:\dev\emacs\emacs-24.2\lib\makefile

E:\dev\emacs\emacs-24.2\nt\nmake.defs =>> E:\dev\emacs\emacs-24.2\lib\makefile

E:\dev\emacs\emacs-24.2\lib\makefile.w32-in =>> 
E:\dev\emacs\emacs-24.2\lib\makefile

     3 files copied

E:\dev\emacs\emacs-24.2\nt\config.settings => 
E:\dev\emacs\emacs-24.2\src\makefile

E:\dev\emacs\emacs-24.2\nt\nmake.defs =>> E:\dev\emacs\emacs-24.2\src\makefile

E:\dev\emacs\emacs-24.2\src\makefile.w32-in =>> 
E:\dev\emacs\emacs-24.2\src\makefile

     3 files copied

E:\dev\emacs\emacs-24.2\nt\config.settings => 
E:\dev\emacs\emacs-24.2\doc\emacs\makefile

E:\dev\emacs\emacs-24.2\nt\nmake.defs =>> 
E:\dev\emacs\emacs-24.2\doc\emacs\makefile

E:\dev\emacs\emacs-24.2\doc\emacs\makefile.w32-in =>> 
E:\dev\emacs\emacs-24.2\doc\emacs\makefile

     3 files copied

E:\dev\emacs\emacs-24.2\nt\config.settings => 
E:\dev\emacs\emacs-24.2\doc\misc\makefile

E:\dev\emacs\emacs-24.2\nt\nmake.defs =>> 
E:\dev\emacs\emacs-24.2\doc\misc\makefile

E:\dev\emacs\emacs-24.2\doc\misc\makefile.w32-in =>> 
E:\dev\emacs\emacs-24.2\doc\misc\makefile

     3 files copied

E:\dev\emacs\emacs-24.2\nt\config.settings => 
E:\dev\emacs\emacs-24.2\doc\lispref\makefile

E:\dev\emacs\emacs-24.2\nt\nmake.defs =>> 
E:\dev\emacs\emacs-24.2\doc\lispref\makefile

E:\dev\emacs\emacs-24.2\doc\lispref\makefile.w32-in =>> 
E:\dev\emacs\emacs-24.2\doc\lispref\makefile

     3 files copied

E:\dev\emacs\emacs-24.2\nt\config.settings => 
E:\dev\emacs\emacs-24.2\doc\lispintro\makefile

E:\dev\emacs\emacs-24.2\nt\nmake.defs =>> 
E:\dev\emacs\emacs-24.2\doc\lispintro\makefile

E:\dev\emacs\emacs-24.2\doc\lispintro\makefile.w32-in =>> 
E:\dev\emacs\emacs-24.2\doc\lispintro\makefil

e

     3 files copied

E:\dev\emacs\emacs-24.2\nt\config.settings => 
E:\dev\emacs\emacs-24.2\lisp\makefile

E:\dev\emacs\emacs-24.2\nt\nmake.defs =>> E:\dev\emacs\emacs-24.2\lisp\makefile

E:\dev\emacs\emacs-24.2\lisp\makefile.w32-in =>> 
E:\dev\emacs\emacs-24.2\lisp\makefile

     3 files copied

E:\dev\emacs\emacs-24.2\nt\config.settings => 
E:\dev\emacs\emacs-24.2\leim\makefile

E:\dev\emacs\emacs-24.2\nt\nmake.defs =>> E:\dev\emacs\emacs-24.2\leim\makefile

E:\dev\emacs\emacs-24.2\leim\makefile.w32-in =>> 
E:\dev\emacs\emacs-24.2\leim\makefile

     3 files copied

Deleting E:\dev\emacs\emacs-24.2\nt\config.settings

     1 file deleted



Emacs successfully configured.

Run %MAKECMD%' to build, then run nmake install' to install.


<(fpe1001)e:\dev\emacs\emacs-24.2\nt(0,0)>go.btm

nmake -a -f makefile


Microsoft (R) Program Maintenance Utility Version 7.10.3077

Copyright (C) Microsoft Corporation.  All rights reserved.


Using C:\JPSoft\TCMD14\TCC.EXE as shell.

        mkdir obj



TCC: (Sys) Cannot create a file when that file already exists.

 "E:\dev\emacs\emacs-24.2\nt\obj"

        mkdir "obj/i386"



TCC: (Sys) Cannot create a file when that file already exists.

 "E:\dev\emacs\emacs-24.2\nt\obj\i386"

        echo obj/i386 > stamp_BLD



        cl -I. -nologo -D_X86_=1 -c -Zl -Zp8 -W2 -Od -Gd -Zi  -DEMACSDEBUG 
-DENABLE_CHECKING -DXASSERTS

   -Foobj/i386\ addpm.c



addpm.c

        link -out:obj/i386/addpm.exe  -nologo -manifest -dynamicbase:no -debug 
-incremental:no -version

:3.10 -swaprun:cd -swaprun:net setargv.obj -debug -map obj/i386/addpm.obj 
msvcrtd.lib  oldnames.lib adv

api32.lib  user32.lib ole32.lib uuid.lib shell32.lib



LINK : warning LNK4044: unrecognized option '/manifest'; ignored

LINK : warning LNK4044: unrecognized option '/dynamicbase:no'; ignored

setargv.obj : warning LNK4099: PDB 'libc.pdb' was not found with 'c:\program 
files\microsoft visual stu

dio .net 2003\vc7\lib\setargv.obj' or at 
'E:\dev\emacs\emacs-24.2\nt\obj\i386\libc.pdb'; linking object

 as if no debug info

        cl -I. -nologo -D_X86_=1 -c -Zl -Zp8 -W2 -Od -Gd -Zi  -DEMACSDEBUG 
-DENABLE_CHECKING -DXASSERTS

   -Foobj/i386\ ddeclient.c



ddeclient.c

        link -out:obj/i386/ddeclient.exe  -nologo -manifest -dynamicbase:no 
-debug -incremental:no -ver

sion:3.10 -swaprun:cd -swaprun:net setargv.obj -debug -map 
obj/i386/ddeclient.obj msvcrtd.lib  oldnames

.lib advapi32.lib user32.lib



LINK : warning LNK4044: unrecognized option '/manifest'; ignored

LINK : warning LNK4044: unrecognized option '/dynamicbase:no'; ignored

setargv.obj : warning LNK4099: PDB 'libc.pdb' was not found with 'c:\program 
files\microsoft visual stu

dio .net 2003\vc7\lib\setargv.obj' or at 
'E:\dev\emacs\emacs-24.2\nt\obj\i386\libc.pdb'; linking object

 as if no debug info

        rc -Foobj/i386/emacs.res emacs.rc



        cl -I. -nologo -D_X86_=1 -c -Zl -Zp8 -W2 -Od -Gd -Zi  -DEMACSDEBUG 
-DENABLE_CHECKING -DXASSERTS

   -Foobj/i386\ runemacs.c



runemacs.c

        link -out:obj/i386/runemacs.exe -subsystem:windows  -nologo -manifest 
-dynamicbase:no -debug -i

ncremental:no -version:3.10 -swaprun:cd -swaprun:net setargv.obj -debug -map 
obj/i386/runemacs.obj obj/

i386/emacs.res msvcrtd.lib  oldnames.lib advapi32.lib user32.lib



LINK : warning LNK4044: unrecognized option '/manifest'; ignored

LINK : warning LNK4044: unrecognized option '/dynamicbase:no'; ignored

setargv.obj : warning LNK4099: PDB 'libc.pdb' was not found with 'c:\program 
files\microsoft visual stu

dio .net 2003\vc7\lib\setargv.obj' or at 
'E:\dev\emacs\emacs-24.2\nt\obj\i386\libc.pdb'; linking object

 as if no debug info

        cl -I. -nologo -D_X86_=1 -c -Zl -Zp8 -W2 -Od -Gd -Zi  -DEMACSDEBUG 
-DENABLE_CHECKING -DXASSERTS

   -Foobj/i386\ cmdproxy.c



cmdproxy.c

        link -out:obj/i386/cmdproxy.exe  -nologo -manifest -dynamicbase:no 
-debug -incremental:no -vers

ion:3.10 -swaprun:cd -swaprun:net setargv.obj -debug -map obj/i386/cmdproxy.obj 
msvcrtd.lib  oldnames.l

ib user32.lib



LINK : warning LNK4044: unrecognized option '/manifest'; ignored

LINK : warning LNK4044: unrecognized option '/dynamicbase:no'; ignored

cmdproxy.obj : error LNK2001: unresolved external symbol __pctype

cmdproxy.obj : error LNK2001: unresolved external symbol ___mb_cur_max

obj/i386/cmdproxy.exe : fatal error LNK1120: 2 unresolved externals

NMAKE : fatal error U1077: 'link' : return code '0x460'

Stop.



<(fpe1001)e:\dev\emacs\emacs-24.2\nt(0,2)>cd ..



<(fpe1001)e:\dev\emacs\emacs-24.2(0,0)>cd nt



<(fpe1001)e:\dev\emacs\emacs-24.2\nt(0,0)>cd obj



<(fpe1001)e:\dev\emacs\emacs-24.2\nt\obj(0,0)>dir



 Volume in drive E is Disk-2T        Serial number is 2ca2:3009

 Directory of  E:\dev\emacs\emacs-24.2\nt\obj\*



11/19/2012  14:01         <DIR>    .

11/19/2012  14:01         <DIR>    ..

11/19/2012  14:35         <DIR>    i386

                 0 bytes in 0 files and 3 dirs

 1,014,911,639,552 bytes free



<(fpe1001)e:\dev\emacs\emacs-24.2\nt\obj(0,0)>cd i386



<(fpe1001)e:\dev\emacs\emacs-24.2\nt\obj\i386(0,0)>dir *.map



 Volume in drive E is Disk-2T        Serial number is 2ca2:3009

 Directory of  E:\dev\emacs\emacs-24.2\nt\obj\i386\*.map



11/19/2012  14:35          34,090  addpm.map

11/19/2012  14:35               0  cmdproxy.map

11/19/2012  14:35           9,554  ddeclient.map

11/19/2012  14:35          11,451  runemacs.map

            55,095 bytes in 4 files and 0 dirs    61,440 bytes allocated

 1,014,911,639,552 bytes free


<(fpe1001)e:\dev\emacs\emacs-24.2\nt\obj\i386(0,0)>echo -- library is here -- 
msvcrtd --

-- library is here -- msvcrtd --


<(fpe1001)e:\dev\emacs\emacs-24.2\nt\obj\i386(0,0)>list addpm.map

  addpm.map                           % F1 Help %                          
Col 0    Line 119       25%

 0002:00000060       __imp____p___initenv       00402060     
msvcrtd:MSVCR71D.dll

 0002:00000064       __imp___cexit              00402064     
msvcrtd:MSVCR71D.dll

 0002:00000068       __imp__sprintf             00402068     
msvcrtd:MSVCR71D.dll

 0002:0000006c       __imp___XcptFilter         0040206c     
msvcrtd:MSVCR71D.dll

 0002:00000070       __imp___exit               00402070     
msvcrtd:MSVCR71D.dll

 0002:00000074       __imp___c_exit             00402074     
msvcrtd:MSVCR71D.dll

 0002:00000078       __iob                      00402078     
msvcrtd:MSVCR71D.dll

 0002:00000078       __imp___iob                00402078     
msvcrtd:MSVCR71D.dll

 0002:0000007c       __imp__strrchr             0040207c     
msvcrtd:MSVCR71D.dll

 0002:00000080       __imp__fprintf             00402080     
msvcrtd:MSVCR71D.dll

 0002:00000084       __imp__exit                00402084     
msvcrtd:MSVCR71D.dll

 0002:00000088       __imp__strcat              00402088     
msvcrtd:MSVCR71D.dll

 0002:0000008c       __imp__strlen              0040208c     
msvcrtd:MSVCR71D.dll

 0002:00000090       __imp____set_app_type      00402090     
msvcrtd:MSVCR71D.dll

 0002:00000094       __imp___stricmp            00402094     
msvcrtd:MSVCR71D.dll

 0002:00000098       \177MSVCR71D_NULL_THUNK_DATA 00402098     
msvcrtd:MSVCR71D.dll

 0002:0000009c       __imp__SHGetSpecialFolderPathA@16 0040209c     
shell32:SHELL32.dll

 0002:000000a0       \177SHELL32_NULL_THUNK_DATA 004020a0     
shell32:SHELL32.dll

 0002:000000a4       __imp__DdeDisconnect@4     004020a4     user32:USER32.dll

 0002:000000a8       __imp__DdeClientTransaction@32 004020a8     
user32:USER32.dll

 0002:000000ac       __imp__DdeFreeStringHandle@8 004020ac     user32:USER32.dll

 0002:000000b0       __imp__DdeUninitialize@4   004020b0     user32:USER32.dll

 0002:000000b4       __imp__DdeInitializeA@16   004020b4     user32:USER32.dll

 0002:000000b8       __imp__DdeCreateStringHandleA@12 004020b8     
user32:USER32.dll

 0002:000000bc       __imp__DdeConnect@16       004020bc     user32:USER32.dll

 0002:000000c0       __imp__MessageBoxA@16      004020c0     user32:USER32.dll

 0002:000000c4       \177USER32_NULL_THUNK_DATA 004020c4     user32:USER32.dll

 0002:000000c8       __imp__CoCreateInstance@20 004020c8     ole32:ole32.dll

 0002:000000cc       __imp__CoUninitialize@0    004020cc     ole32:ole32.dll

 0002:000000d0       __imp__CoInitialize@4      004020d0     ole32:ole32.dll

 0002:000000d4       \177ole32_NULL_THUNK_DATA  004020d4     ole32:ole32.dll

 0002:0000012c       _IID_IInitializeSpy        0040212c     uuid:objidl_i.obj

 0002:0000013c       _IID_IProcessInitControl   0040213c     uuid:objidl_i.obj

 0002:0000014c       _IID_IComThreadingInfo     0040214c     uuid:objidl_i.obj

 0002:0000015c       _IID_ISurrogateService     0040215c     uuid:objidl_i.obj

 0002:0000016c       _IID_IProcessLock          0040216c     uuid:objidl_i.obj

 0002:0000017c       _IID_IObjContext           0040217c     uuid:objidl_i.obj

 0002:0000018c       _IID_IContext              0040218c     uuid:objidl_i.obj

 0002:0000019c       _IID_IEnumContextProps     0040219c     uuid:objidl_i.obj

 0002:000001ac       _IID_IDummyHICONIncluder   004021ac     uuid:objidl_i.obj

 0002:000001bc       _IID_IThumbnailExtractor   004021bc     uuid:objidl_i.obj

 0002:000001cc       _IID_AsyncIPipeDouble      004021cc     uuid:objidl_i.obj

 0002:000001dc       _IID_IPipeDouble           004021dc     uuid:objidl_i.obj

 0002:000001ec       _IID_AsyncIPipeLong        004021ec     uuid:objidl_i.obj

 0002:000001fc       _IID_IPipeLong             004021fc     uuid:objidl_i.obj

 0002:0000020c       _IID_AsyncIPipeByte        0040220c     uuid:objidl_i.obj

 0002:0000021c       _IID_IPipeByte             0040221c     uuid:objidl_i.obj

 0002:0000022c       _IID_IAddrExclusionControl 0040222c     uuid:objidl_i.obj

 0002:0000023c       _IID_IAddrTrackingControl  0040223c     uuid:objidl_i.obj

 0002:0000024c       _IID_IForegroundTransfer   0040224c     uuid:objidl_i.obj

 0002:0000025c       _IID_IUrlMon               0040225c     uuid:objidl_i.obj

 0002:0000026c       _IID_IWaitMultiple         0040226c     uuid:objidl_i.obj

 0002:0000027c       _IID_IReleaseMarshalBuffers 0040227c     uuid:objidl_i.obj

 0002:0000028c       _IID_IRpcHelper            0040228c     uuid:objidl_i.obj

 0002:0000029c       _IID_ICallFactory          0040229c     uuid:objidl_i.obj

 0002:000002ac       _IID_IAsyncManager         004022ac     uuid:objidl_i.obj

 0002:000002bc       _IID_ICancelMethodCalls    004022bc     uuid:objidl_i.obj

 0002:000002cc       _IID_ISynchronizeMutex     004022cc     uuid:objidl_i.obj

 0002:000002dc       _IID_ISynchronizeContainer 004022dc     uuid:objidl_i.obj

 0002:000002ec       _IID_ISynchronizeEvent     004022ec     uuid:objidl_i.obj



<(fpe1001)e:\dev\emacs\emacs-24.2\nt\obj\i386(0,0)>


Reply via email to