Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 06 Feb 2002 19:32:39 -0800
From:      Peter Wemm <peter@wemm.org>
To:        Terry Lambert <tlambert2@mindspring.com>
Cc:        Julian Elischer <julian@elischer.org>, Mike Barcroft <mike@FreeBSD.ORG>, Wilko Bulte <wkb@freebie.xs4all.nl>, Alfred Perlstein <bright@mu.org>, current@FreeBSD.ORG
Subject:   Re: Non 386 testers REALLY NEEDED 
Message-ID:  <20020207033239.480313BAC@overcee.wemm.org>
In-Reply-To: <3C61EC5E.C3E6BF54@mindspring.com> 

next in thread | previous in thread | raw e-mail | index | archive | help
Terry Lambert wrote:
> Julian Elischer wrote:
> > how about a port that uses the installed sources
> > together with some uploaded parts to 'reconstitute' gcj as if it had been
> > compiled wit the rest of the system.
> 
> FreeBSD does a fairly evil thing: it takes the compiler
> source code post-config instead of pre-config.
> 
> It's really an incredibly bad idea to import *after* a
> config instead of before.

Terry, you have no f*cking idea what we do.  The last time this
happened was with gcc-2.6.1 / 2.6.3 about 8 years ago.  We do not import
after a configure.  We import direct from the distributed tarballs.

The following files:
  src/gnu/usr.bin/cc/cc_tools/auto-host.h
  src/gnu/usr.bin/cc/cc_tools/freebsd-native.h
.. are vaguely based on stuff that configure generated and are hand tweaked
to deal with the *freebsd* environment (eg: whether printf supports %p
etc), rather than compiler configuration.  The compiler and language
configuration is done at runtime in the bmake files.  eg:

config.h hconfig.h:
        echo '#include "auto-host.h"'                   > ${.TARGET}
        echo '#include "gansidecl.h"'                   >> ${.TARGET}
        echo '#include "${GCC_ARCH}/xm-${GCC_ARCH}.h"'  >> ${.TARGET}
        echo '#include "hwint.h"'                       >> ${.TARGET}
..
tm.h:
        echo '#include "${GCC_ARCH}/${GCC_ARCH}.h"'     > ${.TARGET}
.if ${GCC_ARCH} == "i386"
        echo '#include "${GCC_ARCH}/att.h"'             >> ${.TARGET}
.endif
        echo '#include <freebsd.h>'                     >> ${.TARGET}
        echo '#include "dbxelf.h"'                      >> ${.TARGET}
.if exists(${GCCDIR}/config/${GCC_ARCH}/elf.h)
        echo '#include "${GCC_ARCH}/elf.h"'             >> ${.TARGET}
.endif
        echo '#include "${GCC_ARCH}/freebsd.h"'         >> ${.TARGET}
.if ${GCC_ARCH} == "i386"
        echo '#include "${GCC_ARCH}/perform.h"'         >> ${.TARGET}
.endif
        echo '#include <freebsd-native.h>'              >> ${.TARGET}

About 8 years ago, this stuff was imported as generated by configure.

Cheers,
-Peter
--
Peter Wemm - peter@FreeBSD.org; peter@yahoo-inc.com; peter@netplex.com.au
"All of this is for nothing if we don't go to the stars" - JMS/B5


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?20020207033239.480313BAC>