[Top][All Lists]

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

Re: Arguments to configure

From: Nick Bowler
Subject: Re: Arguments to configure
Date: Wed, 3 Oct 2018 14:19:11 -0400


Responding to part of your message...

On 2018-10-03, Sébastien Hinderer <address@hidden> wrote:
> In the same vein, I was wondering why the 'AC_SYS_INTERPRETER' macro
> doesn't come in three variants, one for build, one for host and one for
> target because I imagine that one may want to know whether #! is
> supported on each of these platforms. Well perhaps not on the build
> system, but, at least for us, that would matter for both host and
> target.

I would imagine that it's simply impossible for configure to determine
whether #! scripts work on anything other the build system.

So in the cross-compilation case, if your goal is to portably install
scripts that run on the host or target system, you will presumably need
to use a pessimistic default: that is, you must assume that #! scripts
are not supported.  You could add an option to override this behaviour
(typically configure scripts implement these sorts of overrides via the
cache variable mechanism).

POSIX demands that when any command is executed (by the shell, anyway),
if it does not start with #! and is not recognized as an executable
binary file then it is executed as a shell script.  So in the portable
pessimistic default case the only kinds of scripts you can install are
shell scripts that do not start with #!.  The same behaviour is also
mandated in recent editions for the execvp and execlp functions (I
imagine this was standardizing widespread practice at the time).

In practice I imagine (without proof) that something like #!/bin/sh is
widely portable: that is implementations will either not support #! at
all (and thus execute it as a shell script) or they will support it in
the expected manner (also executing it as a shell script).


reply via email to

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