[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: pure ansi/iso or posix environments

From: Paul Edwards
Subject: Re: pure ansi/iso or posix environments
Date: Tue, 31 Oct 2006 06:00:08 +1100

> > Is it possible to tell configure that I have an arbitrary C89
> > environment, and it's none of its business what the name
> > of my C compiler is or what operating system it is, just
> > assume it is a C89 environment and act accordingly?
> Sorry, that functionality isn't there now.  Demand for such
> an ability is small, since Autoconf is oriented towards
> build environments where you can easily run a compiler.

That's a shame.  Can I put that in as a feature request?

> > My arbitrary C89 environment happens to be on MVS 3.8.
> > I don't have the ability to run "configure" myself, but I know
> > someone who can run "configure" for me and send me the
> > output files.  But they come with non-C89 rubbish
> I guess I don't understand the problem then.  If someone
> else can run "configure" for you, and if the "configure"
> output is suitable for MVS 3.8, then why do you care whether
> the resulting program uses features of MVS 3.8 that are
> beyond what C89 requires?

The configure output is not suitable for MVS 3.8.  The
configure output is suitable for his environment, not mine.

> Here's another way to put it.  Few programs are really
> portable to all C89 hosts without any change.  But if you
> have such a program, then you don't need Autoconf, so why
> use Autoconf?

Programs such as gcc with -S option read in text files and
output another text file.  It should be possible to write that
in C89.  I have modified gcc 3.2.3 so that it is is C89
compliant, in preparation for porting to an enviornment
that is C89 with no extensions whatsoever.  It is successful
BTW, I have gcc running on MVS 3.8.  My problem is I
want configure to generate a corresponding config.h that 
assumes C89, ie automatically sets HAVE_STDLIB_H to
1 etc etc.

> > More generally, I want to be able to specify:
> > 1. Arbitrary C89 environment.
> > 2. Arbitrary C99 environment.
> > 3. Arbitrary Posix environment.
> That's not general enough, I'm afraid.  There are multiple
> flavors of C89 (with and without amendment 1, hosted vs
> freestanding, etc.), and the same will be true for C99.  And
> there are thousands of flavors of POSIX.

The sort of checks that configure does can easily be answered
with reference to the C89/C90 standard.  E.g. stdlib.h is
there.  sys/types.h isn't.  malloc() works.  etc, etc etc.

Similarly there is a Posix standard, where sys/types does
exist.  Configure can answer all these questions by itself,
it doesn't need to check my environment.  It's enough to
be told that it is Posix.

> It is kind of a mess.  (Which is why we have Autoconf -- a
> mess of a different sort.  :-)

What I want is for programs to come out of the box as C89
compliant.  Unfortunately they usually come out of the box
with config.h missing.  It wouldn't be so bad if configure
would generate a C89-compliant config.h.  Annoying, but
no so bad.  Or if it does directory manipulation, then come
out of the box as Posix-compliant.

BFN.  Paul.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]