Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!csd4.milw.wisc.edu!uakari.primate.wisc.edu!ctrsol!ginosko!uunet!applix!jim From: jim@applix.UUCP (Jim Morton) Newsgroups: comp.unix.xenix Subject: Re: Difference in dbm Summary: change in compiler alignment in >= 2.2.1/386 Keywords: dbm, 2.2 and 2.3 Message-ID: <994@applix.UUCP> Date: 4 Aug 89 14:01:06 GMT References: <146@kepler1.UUCP> Organization: APPLiX Inc., Westboro MA Lines: 21 In article <146@kepler1.UUCP>, vipoon@kepler1.UUCP (Victor I Poon) writes: } It seems that SCO has changed some of the dbm subroutines } between release 2.2 and release 2.3 of the Development System. The } new routines are not compatible with the old ones so if you have } made a database using the old compiler, any program compiled with } the new one will not fetch properly. } One good thing is that the .pag file is about half as small } in the new compiler so they obviously did some optimization. This may not be the cause of the problem but is worth noting: As of the 2.2.1 386 Development system, alignment of structures within structures changed. If have programs compiled on both 2.2.0/386 and 2.2.1 or greater, there may be problems with on-disk data. Note: 2.2.1 DS was the 2.2.0 DS with update #1 applied (UFC1). A simple test program that just does a sizeof(struct) compiled under both will NOT show the difference, you must print out the address of each structure member and see if they match up. This only affects structure members that were not on 4 byte boundaries. -- Jim Morton, APPLiX Inc., Westboro, MA ...uunet!applix!jim jim@applix.com