From: craig.berry@signaltreesolutions.com Sent: Thursday, September 12, 2002 6:50 PM To: Info-VAX@Mvb.Saic.Com Subject: Re: Help: Error Linking Samba 2.2.4 for VMS "Michael D. Ober" wrote in message news:7v3g9.19$zV6.26421@news.uswest.net... > Below is the results of attempting to link Samba 2.2.4 for VMS. I've never built Samba, but there are some common porting gotchas. > SYSTEM>set def [.source.vms] > SYSTEM>@link Are you sure there are no configuration parameters that are supposed to be passed to the link? > Linking SMBD > %LINK-W-MULDEF, symbol DECC$UTIME multiply defined > in module DECC$SHR file SYS$COMMON:[SYSLIB]DECC$SHR.EXE;1 That's because before v7.3, VMS did not have a utime() in the C RTL but now it does, and it looks like Samba supplies its own version. One option would be to recompile with /PREFIX=EXCEPT=(utime) to prevent it from looking for the version in the C RTL. Or you could rename the home-made version to my_utime and do a #define utime my_utime in a header that will be seen everywhere. Or you could put an #ifdef around the home-grown utime() so that it is only visible to the compiler for VMS versions 7.3 and greater (actually __CRTL_VER would be the predefined macro to check), thus causing the C RTL version to be used on VMS v7.3. There is no way of knowing without extensive testing whether the C RTL version will be as good as or better than the home-grown version at doing what Samba wants to do. More than likely the Samba version needs to be updated to fiddle with the FIB appropriately on ODS-5 volumes, which is to say set the new access time field in the file information block when it's available. > %LINK-W-NUDFSYMS, 1 undefined symbol: > %LINK-I-UDFSYM, SNPRINTF This appears to be a Samba-specific function and in fact there is a snprintf.c file in the distribution. Possibly an oversight that this didn't get built and included in the object library, but that's only one possibility. > When we attempted to compile from source we got the following: Are there any configuration options that should be passed to the compilation procedure? > Compiling INTERFACES in LIB > > if (!(ifr[i].ifr_flags & IFF_UP)) { > .........................................^ > %CC-E-UNDECLARED, In this statement, "IFF_UP" is not declared. > at line number 132 in file DKA300:[SAMBA$2_2_4.SOURCE.LIB]INTERFACES.C;1 Traditional and tedious methods for finding out where and whether this is defined and why that declaration (if it exists) is not visible to the compilation unit in question are really the only alternative. CC/LIST/SHOW=ALL may provide useful information.