From: Michael D. Ober [obermd.@.alum.mit.edu.nospam] Sent: Wednesday, August 17, 2005 10:34 AM To: Info-VAX@Mvb.Saic.Com Subject: Re: SAMBA for VMS (The saga continues!) JYC's page talks about this specific issue and there is a download for it. Mike Ober. "John Malmberg" wrote in message news:fPHMe.10496$ng2.3581@news.cpqcorp.net... > Bill Gunshannon wrote: > > Well, I am about out of time for this. It is not looking good. > > > > After running BUILD.COM I get: > > > > %LINK-W-USEUNDEF, undefined symbol SNPRINTF referenced > > in psect $CODE offset %X000006A1 > > in module TALLOC file USERS:[HOME.SYSTEM.SAMBA.SOURCE.BIN]SAMBA.OLB;1 > > > > I can understand the VSNPRINTF references as I can't find that one anywhere > > in the sources, but SNPRINTF is in SAMBA.OLB as verified by running "LIBRARY > > /LIST SAMBA.OLB". > > > > So, one last time. Is there anywhere I can find a version of SAMBA that > > will actually build and run on a VAX or am I really wasting my time? > > There are people on the SAMBA-VMS mailing list that claim to be running > this version of SAMBA on VAX. And the SAMBA-VMS mailing list appears to > be the forum that the person maintaining that distribution is reading. > They are clearly not reading comp.os.vms. > > The missing routines are a result of something being wrong in the > config.h file and a file being missing from the build that contains the > replacement routines. > > This bug is showing up primarily because those replacement routines will > cause problems with current versions of OpenVMS Alpha and I64 because > they were coded incorrectly to have the exact same names as routines > defined by the X/Open group that are now in the 64 bit versions of OpenVMS. > > So instead of fixing their symbol names to be unique, and using macros > for conditional use, the module was just removed from the build procedure. > > The quick fix is to add the missing file to the build procedure, I think > it is called SNPRINTF.C and should be present in the sources. > > The correct fix is to make sure that the replacement routines are always > named SAMBA_SNPRINTF and SAMBA_VSNPRINTF in the SNPRINTF.C routine, and > then in config.h there should be: > > #ifdef __CRTL_VER > #if __CRTL_VER < 70312000 > #define snprintf samba_snprintf > #define vsnprintf samba_vsnprintf > #endif > #else > #define snprintf samba_snprintf > #define vsnprintf samba_vsnprintf > #endif > > Then the same build procedure can be used on VAX/ALPHA and that part > should still work with older versions of VMS. > > The build procedure only needs to add that object file to the library > for older versions of VMS, but once it is coded properly it can be > present with out causing problems. > > This bug in SNPRINTF.C for using the incorrect symbols has been fixed in > the UNIX version of SAMBA for quite a while because it also causes > problems on some versions of UNIX. > > -John > malmberg@dskwld.zko.dec.compaq.hp > Personal Opinion Only >