Subject: Re: MACHINE_GNU_PLATFORM now forced to --netbsdelf in
To: Todd Vierling <>
From: Frederick Bruckman <>
List: tech-pkg
Date: 09/20/2001 23:09:15
On Thu, 20 Sep 2001, Todd Vierling wrote:

> This means that -netbsdelf is used on platforms that were historically a.out
> and are now ELF.
> The reason for this is that I will be sending a revamped config.guess and
> config.sub back to the FSF folks, which will continue to assume a.out for
> -netbsd as opposed to ELF for -netbsdelf.

I see.

> There are many situations where
> you need to know the difference, particularly in the toolchain itself, as
> well as in the cases of binary compatibility issues, and this defines two
> distinct GNU platform names for architectures that have multiple object file
> formats.

Is it your intention for NetBSD/i386/1.5.x to be guessed as
"i386--netbsdelf"? You currently have "pkgsrc" setting
MACHINE_GNU_PLATFORM on these hosts to "i386--${LOWER_OPSYS}", that is
"i386--netbsd", and passing that as the value to --host= for all GNU
configure packages, overriding config.guess. This ought to be
rethinked before it becomes a big deal (at some future time, when
updated packages start to supply custom linker arguments depending on
"*--netbsd" or "*--netbsdelf").

> I see arena's mishandling of the GNU data in PR 13957, and in that
> particular case, it might be necessary to set an explicit --host flag in
> CONFIGURE_ARGS.  But what the program is doing here is just plain wrong ...
> if it wants to use the value of --host, it should be using the *entire*
> value, not just one component.

"arena" is an aberration. The modern style of running "configure"
from within the build directory doesn't seem to be supported (or I
can't figure out how), and if it were really necessary to have
configure create multiple build directories, they should probably be
by "target", not "host", but it isn't, so it doesn't matter. It
wouldn't matter at all if "arena" supplied a useful install target.
All we really need to do is figure out where arena decided to build
the executable, and I think I've got that covered now.