[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Use of config.h: summary of responses.
From: |
Bob Friesenhahn |
Subject: |
Re: Use of config.h: summary of responses. |
Date: |
Mon, 13 Sep 2004 13:11:28 -0500 (CDT) |
On Mon, 13 Sep 2004, Daniel Reed wrote:
Ideally, interface files will conform to some specific environment, have
that environment documented, and rely on dependent projects to use something
like the autotools to ensure their build environment conforms.
Changes to the compiler, CPU, or OS should not cause interface files to
change. The interface files should assume reasonable details about the
environment.
With that said, can you provide an example of an OS-, CPU-, or compiler-
dependent attribute that must be recorded in installed interface files to
ensure ABI and unambiguous API?
1) Large file interface (off_t,fpos_t,rlim_t, etc., size changes).
2) 'const' support
3) 'inline' support
4) Big/little endian CPU type.
5) User supplied configuration options which influence available
interfaces.
gnu89 and C99 provide guarantees about types and non-C89 routines that can
be documented and simulated by the autotools.
Autoconf is not about guarantees. It is all about survival without
guarantees.
POSIX and various other environment standards provide guarantees about
networking, file system interaction, and other low-level operations that can
be simulated by support libraries, as with the Cygwin kernel or Solaris'
libnsl.
Everything would be easier if we all used operating systems designed
to the exact same standards and which provided the exact same APIs.
Unfortunately, this will never happen. Standards have created a
kinder and gentler world, but there will always be variances. In many
cases we must compile on systems which are frozen in time so they
conform to very old standards (if at all).
The availability of extension libraries can be hidden through the API
itself, and good software design can make it possible for extension
I agree that good design and forethought can go a long way at reducing
chaos.
Notice that I mention LF issues as the first item. Libraries which
expose types which are influenced by large-file compilation do not
illustrate good design and forethought.
Bob
======================================
Bob Friesenhahn
address@hidden
http://www.simplesystems.org/users/bfriesen
- Use of config.h: summary of responses., Dale Mellor, 2004/09/13
- Re: Use of config.h: summary of responses., Ralf Corsepius, 2004/09/13
- Re: Use of config.h: summary of responses., Thomas Dickey, 2004/09/13
- Re: Use of config.h: summary of responses., Dale Mellor, 2004/09/13
- Re: Use of config.h: summary of responses., Thomas Dickey, 2004/09/13
- Re: Use of config.h: summary of responses., Daniel Reed, 2004/09/13
- Re: Use of config.h: summary of responses.,
Bob Friesenhahn <=
- Re: Use of config.h: summary of responses., Daniel Reed, 2004/09/13
- Re: Use of config.h: summary of responses., Bob Friesenhahn, 2004/09/13
- Re: Use of config.h: summary of responses., Daniel Reed, 2004/09/13
- Re: Use of config.h: summary of responses., Russ Allbery, 2004/09/13
- Re: Use of config.h: summary of responses., Andre Caldas, 2004/09/13
- Re: Use of config.h: summary of responses., Daniel Reed, 2004/09/14
Re: Use of config.h: summary of responses., Simon Josefsson, 2004/09/13
Re: Use of config.h: summary of responses., Braden McDaniel, 2004/09/13
Re: Use of config.h: summary of responses., Russ Allbery, 2004/09/13