[OpenAFS-devel] OpenAFS 1-2.9-rc2 build with W2k, Visual Studio.net 7, Oct 2002 SDK

Shigeki Misawa misawa@bnl.gov
Tue, 11 Feb 2003 13:43:59 -0500 (EST)


For what its worth, I have spent some time trying to compile
openafs-1.2.9-rc2 for Microsoft Windows 2000 with no success. Some of
the problems have been mentioned in previous messages in
openafs-devel, others have not.


System (Fresh install)
  Microsoft Windows 2000
  5.00.2195
  Service Pack 3

Compiler: (Fresh install)
  Visual Studio.Net 2002
    Microsoft Development Environment 2002
    Microsoft .NET Framework 1.0

SDK : (Fresh install)
  Microsoft Platform SDK October 2002

DDK
  Not Installed.
  netmpr.h - not in any .h and .c files in OpenAFS source 1.2.9-rc2
  netspi.h - in afslog95.c. We assume that it is not built in 1.2.9-rc2 on Windows 2000
  npapi.h is shipped with Platform SDK, at least with October 2002 version

ntbuild.bat
  set SYS_NAME=i386_nt40
  set MSVCDIR="C:\Program Files\Microsoft Visual Studio .NET\Vb7"

NTMakefile.i386_nt40
  AFSPRODUCT_VERSION=1.2.9rc2
  CELLNAME_DEFAULT=openafs.org
  CELLSERVDB_INSTALL=CellServDB.GrandCentral
  CELLSERVDB_WEB=http://grand.central.org/dl/cellservdb/CellServDB

Compile time errors:

pioctl_nt.c
   largeint.h in osi.h not found
      - comment out include of largeint.h
   largeint.h in osistatl.h not found
      - comment out include of largeint.h

   Some of the definitions in largeint.h have been put into winnt.h
   Unknown if commenting out include is harmless or not.

viced.c
   softsig.h cannot be found
      - copied util/softsig.h to DEST/include

   #elsif defined(AFS_NT40_ENV)
      - should be #elif defined(AFS_NT40_ENV)

   softsig.h issue in viced.c pops up again when creating the
   fileserver.exe executable (see next entry)

fileserver.exe
   _softsig_signal in _main
   _softsig_init in _main
   _osi_AssertFailU in _setThreadId
      - Unresolved externals. ifndef out offending lines with
        softsig_signal and softsig_int. In viced.c in function
        ResetCheckSignal(void) use #ifndef AFS_NT40_ENV 
        just like in ResetCheckDescriptors(void) anc comment out the
        whole signal/softsig_signal lines (i.e., surround
        #if defined(AFS_PTHREAD_ENV with #ifndef AFS_NT40_ENV). In
        main.c comment out softsig_init lines. In setThreadId comment
        out everything surrounded by AFS_PTHREAD_ENV

At this point, things rapidly go down hill due to the non-existance of
the largeint.h include file. Problems start in client_osi, but exist
in other directories. largeint.h and the associated library
largeint.lib were apparently part of earlier Microsoft Platform SDK
versions but have been removed in later Platform SDK
versions. largeint.h was subsequently removed from compiler
distribution. (Present in Visual C++ 6.0 but removed in VC 7.0)
largeint.lib library is present in VC7.0, but this is apparently a
mistake on the part of Microsoft. It appears that future compilers
will not ship with largeint.lib

(See URL:http://groups.google.com/groups?q=largeint.h&hl=en&selm=epfeXXOYBHA.2060%40tkmsftngp07&rnum=1)

So far I have been unable to get workaround (copy files from older compiler
distribution) to work, but this is with minimal effort.

Shigeki Misawa
RHIC Computing Facility
Brookhaven National Laboratory
Upton, NY