Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 14 May 2002 22:32:57 -0700
From:      Terry Lambert <tlambert2@mindspring.com>
To:        obrien@FreeBSD.ORG
Cc:        Bruce Evans <bde@zeta.org.au>, Ruslan Ermilov <ru@FreeBSD.ORG>, current@FreeBSD.ORG
Subject:   Re: [PATCH] cross-arch bootstrapping is broken by GCC 3.1
Message-ID:  <3CE1F309.508593BD@mindspring.com>
References:  <20020514120758.D31896@dragon.nuxi.com> <20020515130406.S6466-100000@gamplex.bde.org> <20020514210705.A36814@dragon.nuxi.com>

next in thread | previous in thread | raw e-mail | index | archive | help
David O'Brien wrote:
> Personally I do not mind requiring latest 4-STABLE to build -CURRENT
> (either for cross or simple `world').  I think that is all we can
> officially support.  I know RU wants to be able to upgrade from say 4.1 to
> 5-CURRENT.  I think that is a nice thing; but if it is going to be a
> requirement it should become an officially stated one.

I'm actually with RU on cross-building.  Crossbuilding is right
next door to porting, and it finds compilation/link platform
portability problems for things like Alpha and SPARC on x86
boxes, which is all to the good.

I'm all for the minimum build requirement being Xenix 2.2 or
VMS 3.4.  8-).


> The only fix is to import all of libiberty and create a config.h that
> implies Version 7.

It's annoying.  But I think that this annoyance comes from
automake/autoconf, and it's not ever going to get better,
since these programs don't make software portable, they aid in
porting software, which is a very different thing, and grossly
inferior to other approaches (e.g "imake" and "xmkmf" out of
X11 out of Project Athena out of MIT).


> > The problem is the usual one with committing files generated by
> > autoconfig.
> 
> It would be the same problem without autoconf, the code could have been
> written only the the 5-CURRENT API.

The GNU tools have never been very cross-friendly, except in
single instances.  Very much unlike the NCR tools, which would
let you specify target in the Makefiles.  8-(.


> > This gives a configuration that might only be valid for the host
> > machine that ran autoconfig.  Cross-compiling of even portable
> > cross-compile-aware sources like gcc is broken by this.
> 
> I personally believe we should build GCC in the normal manner, but this
> is no longer my decision to make.

FWIW, I think that building things in the normal manner is the
way to go; that's why I occasionally (one or two times a year) take
passes through ports, clean up the easy patches (the ones that don't
result in the code being FreeBSD specific instead of Linux specific),
and send them back to the various project maintainers.

Integrating actively maintained code into the project, not on a
vendor branch (a vendor branch is the best we can do with the tools
we have, since CVSup can't update to a vendor branch from a remote
primary archive), is really evil, as we can see with the fun with
sendmail, ssh, SSL, and the resolver library, among others.

Archie and Julian can probably provide a lot of information on
how to deal with vendor code as external modules, with version
tagging to allow "stickiness" in the build process.

Doing it that way, though, is a trade-off, since it means active
access to a CVS archive during the build process itself, rather
than just to get a code cut.  No CVS is also possible (a code cut
from a checked out archive with a "make checkout" run to get the
modules).  It may not be worth it, depending on your point of view.

I don't know if Julian and Archie have postable copies of the
Whistle/IBM InterJet .mk files, or if they would have to be recreated
for legal reasons, but it's a nice framework: the Makefile is responsible
for checking out the un-config'ed sources, and running the "configure"
with the set of options listed in the Makefile.

For things like "bind", this would including patching the two
non-overridable paths in the FreeBSD Make template files, as
distributed with bind itself, etc..  I'm sure there would be
other similar local hacks, but they could be seconded back to
the original code maintainers, like most people try to do with
ports these days.

-- Terry

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3CE1F309.508593BD>