autoconf and ISC Unix

Andy Smith abs at maunsell.co.uk
Mon Nov 23 19:22:34 GMT 1998


The good news is that the latest code (cvs'd from the HEAD branch on
sunday Nov 22 11:49 GMT) does configure and build perfectly on my old
Solaris 2.4 Sun SS20's.

There is also a lot of progress on ISC Unix, but it needs some nudging
along still.

Firstly, on my ISC systems at least (4.1, no maintenance update), I need
to set the following :-

CFLAGS="-O -D_POSIX_SOURCE -D_XOPEN_SOURCE -D_SYSV3 -DISC"
LIBS="-lsec -lcrypt -linet -lcposix"

Not too much of a hardship, but it would be nice to clue configure in to
this Unix.  Like my Solaris 2.4 suns, the ISC systems will be with me
for a while yet to come.

Secondly, ISC defines a lot of necessary stuff in <sys/bsdtypes.h> and
<sys/stream.h> and I expect you would be after a more elegant way of
dealing with this than my rather crude approach in include/includes.h :-

--------------------------begin included patch -------------------------
*** current/source/include/includes.h.orig      Mon Nov 23 17:16:21 1998
--- current/source/include/includes.h   Mon Nov 23 13:59:40 1998
***************
*** 47,52 ****
--- 47,56 ----
  
  
  #include <sys/types.h>
+ #ifdef ISC
+ #include <sys/bsdtypes.h>
+ #include <sys/stream.h>
+ #endif
  
  #ifdef TIME_WITH_SYS_TIME
  #include <sys/time.h>
--------------------------end included patch -------------------------

Now, because configure didn't know about bsdtypes.h, it mis-defined these 
in include/config.h :-

#define uid_t int
#define pid_t int
#define mode_t int
#define gid_t int

Again, I am not sure of the most elegant way of dealing with this in
configure, I could do something along the lines of the '#if STDC_HEADERS'
conditional includes.

I also found ONLCR was not defined in smbd/chgpasswd.c.  I could have
used -D_XOPEN_SOURCE, which would have included it from <termios.h>, or
what I in fact did, which was to define it manually in config.h.

Finally, the only other change necessary to get all the objects to
compile is to lib/util_sock.c, where EINPROGRESS and EALREADY are
defined on ISC in <net/errno.h>.  I got round this temporarily
by including the file in lib/util_sock.c, again, I presume you have
a better way of dealing with this sort of platform specific stuff.

Previous code (with the above mods) did link and run, I have binaries
dated Nov 15 23:01 GMT.  Unfortunately, yesterdays code wont link at
all because of the dependance on mmap() in sys/system.c and fchmod() in
rpc_server/srv_sid.c, neither of which I have.  Anyone any suggestions?

Thanks.
-- 
  _          __         Maunsell Ltd, IT Unit    Tel  : 0181-663-6565
 /_|   _/   (  _  '_//  160 Croydon Road,        Fax  : 0181-663-6723
(  |/)(/(/ __)//)/ //)  Beckenham, Kent BR3 4DE  Email: abs at maunsell.co.uk
        /               England.                 -or- abs at maunsl00.demon.co.uk


More information about the samba-ntdom mailing list