More problems with libiberty on 4.3BSD

Jeffrey A Law law@cygnus.com
Tue Apr 11 13:36:00 GMT 2000


  In message < 0004102318.AA00311@ivan.Harhan.ORG >you write:
  > Hi there,
  > 
  > Having posted a patch for libiberty/Makefile.in, I'm now tackling the libib
  > erty
  > code, with the same goal of making it build on 4.3BSD. Here are the problem
  > s:
  > 
  > * getruntime.c #includes both <time.h> and <sys/time.h>. On 4.3BSD neither 
  > is
  > protected against multiple inclusion and hence neither can be included more
  > than once. <time.h> defines struct tm and the related libc functions, but
  > doesn't include anything. <sys/time.h>, OTOH, defines struct timeval and ot
  > her
  > time-related kernel structs, operations, and constants, and then at the end
  > includes <time.h>. This means that it's an error on 4.3BSD to #include both
  >  of
  > them, and if you need the definitions from both, #include <sys/time.h> only
  > .
  > 
  > * mkstemps.c uses size_t. 4.3BSD uses the original K&R C compiler from Bell
  > Labs (pcc) that doesn't have size_t. However, 4.3BSD does typedef size_t in
  > <sys/types.h>. mkstemps.c, however, doesn't include <sys/types.h> or any ot
  > her
  > headers that include it.
  > 
  > * pexecute.c, strtol.c, and strtoul.c use errno. They #include <errno.h>, b
  > ut
  > on 4.3BSD this file only defines the error codes and not the errno global
  > variable. The latter is not declared in any header file and must be declare
  > d
  > manually.
  > 
  > * strtol.c and strtoul.c #include <limits.h>, which doesn't exist on 4.3BSD
  > .
  > Apparently it is wanted for ULONG_MAX, LONG_MAX, and LONG_MIN. Under 4.3BSD
  > these are defined in <sys/param.h> and strtol.c and strtoul.c provide their
  >  own
  > definitions anyway when the system doesn't.
  > 
  > I have fixed the above problems manually on my machine and built libiberty,
  >  but
  > I can't figure out how to fix them in a way that's acceptable for a patch,
  > i.e., how to add 4.3BSD support to libiberty that can coexist with whatever
  >  it
  > supports now (portability isn't my forte). Any suggestions? TIA a lot.
You should be using autoconf for most/all of these things.  If you look at
other files you'll probably see enough examples to get you started.
jeff



More information about the Gcc-patches mailing list