# README.porting,v 1.1.1.1 1995/06/16 21:10:40 seth Exp ********************************************************************* * PORTING * ********************************************************************* We tried fairly hard to make sure that our code was very portable across all modern Unix systems. We did this through a combination of POSIX compilent code and outright replacement of routines that were not standardized with a common freely available version (e.g. the NIH time zone library). However, if your system has problems compiling parts of the code, we hope to give you a few hints here to help you on your path. First of all, make sure that you are using all recommended packages. If you are trying to use your OS's compiler instead of gcc, or if you are not using the NIH time zone library, you are simply shooting yourself in the foot. Get the packages and try again. Next, you should try very very hard to avoid making large numbers of changes in the actual C code. We were able, with very few exceptions, to make all of the OS dependent changes in unix_decl.h (from esos) and in the sos.mk makefile. Please try to preserve these semantics. If you do come up with some clean patches, please send them in and we will consider including them in the next version. The more ``dirty'' the patch (e.g. the more it clutters up the code path) the less likely we are to include them. We are not likely to include patches for things which are taken care of by the recommended packages (e.g. we probably will not implement support for fooOS's timezone library). ********************************************************************* * Timezone problems * ********************************************************************* If you are having timezone problems--for example your compiler tells you that tm_zone and tm_gmtoff are not present in your struct tm, you need to modify your time.h include file (or make a copy somewhere and modify that): -------------------------------------------------- struct tm { /* see ctime(3) */ int tm_sec; int tm_min; int tm_hour; int tm_mday; int tm_mon; int tm_year; int tm_wday; int tm_yday; int tm_isdst; #ifdef _NEWTIME char *tm_zone; long tm_gmtoff; #endif /*_NEWTIM*/ }; -------------------------------------------------- The NIH time zone libraries should have been compiled so that they would use the latter two elements. They are required by Freestone to perform time computation properly. ********************************************************************* * Other problems * ********************************************************************* setenv missing: You miscompiled (or failed to compile) lib44bsd.a which is part of the bind distribution (in the compat directory). The default Make variables for your architecture (which you must manually uncomment) should define what utilities you need.