on these platforms so far:
- alpha, arm, i386, mipseb, mipsel, sparc64
built but not yet tested on:
- armeb, sparc, amd64
build errors (mostly not related) on:
- hppa, m68000, m68k, macppc, sh3el, sh3eb, vax
XXX again this is not everything required; many other changes in
XXX already used files are left out.
is moving here, keeping everything together.
tested with: vax (old config), mac68k (old config), i386 (new config)
and shark (new config). tested i386 binaries only so far, but the
system seems to be surviving the self-hosted test.
XXX: note that this isn't *all* the bits required to run a binutils
2.14 world for arm or i386; these will come soon enough...
* Don't bother prefixing commands with a line of ${_MKCMD}\
and instead rely upon "make -s". This is less intrusive on
all the Makefiles than the former. Idea from David Laight.
* Rename the variables use to print messages. The scheme now is:
_MKMSG_FOO Run _MKMSG 'foo'
_MKTARGET_FOO Run _MKMSG_FOO ${.TARGET}
From discussion with Alistair Crooks.
seems to mostly work.. libcurses.so fails to link with an out of memory
error i haven't looked at yet, and nothing has actually been run..
XXX: gdb53 missing.
* DPSRCS contains extra dependencies, but is _NOT_ added to CLEANFILES.
This is a change of behaviour. If a Makefile wants the clean semantics
it must specifically append to CLEANFILES.
Resolves PR toolchain/5204.
* To recap: .d (depend) files are generated for all files in SRCS and DPSRCS
that have a suffix of: .c .m .s .S .C .cc .cpp .cxx
* If YHEADER is set, automatically add the .y->.h to DPSRCS & CLEANFILES
* Ensure that ${OBJS} ${POBJS} ${LOBJS} ${SOBJS} *.d depend upon ${DPSRCS}
* Deprecate the (short lived) DEPENDSRCS
Update the various Makefiles to these new semantics; generally either
adding to CLEANFILES (because DPSRCS doesn't do that anymore), or replacing
specific .o dependencies with DPSRCS entries.
Tested with "make -j 8 distribution" and "make distribution".
case:
MKBFD If set to "no", disables building of libbfd, libiberty,
and all things that depend on them (binutils/gas/ld, gdb,
dbsym, mdsetimage).
MKGDB If set to "no", disables bulding of gdb.
MKGCC If set to "no", disables building of gcc and the
gcc-related libraries (libg2c, libgcc, libobjc, libstdc++).
These are useful for building platforms for which either of the following
situations are true:
(1) You have no userland from which to run toolchain2netbsd
in order to build the appropriate toolchain build framework.
(2) The platform which you are building requires a newer set
of tools than are currently in the tree (e.g. x86-64, ia64).
* Regen files with proper OS names and version numbers.
* Clean up toolchain2netbsd somewhat, to get it ready to be cross-host
compatible (more work to be done here, but it's getting closer).
* Add framework for gdbreplay and gdbserver, but hold off on enabling these
by default until low-nbsd.c is verified to work everywhere.
the target "native toolchain" if BOOTSTRAP_NEW_TOOLCHAIN is set.
This is important if you don't have any userland at all, and you're
trying to make one from which you can run toolchain2netbsd.
dist .y and .c files reversed.
1. Move the .y.c and other assorted implicit rule overrides out of Makefile.inc
and into local Makefile's. The system Makefile (bsd.sys.mk) sets up .l.c and
.y.c rules so unless these come after all inclusions they just get ignored.
2. Add @true as the command for any of the rule overrides. Otherwise make
still bails complaining about not knowing how to build the requisite .c or
.h file.
This obviously wasn't tested before as it couldn't have worked as-is.
From Rafal's commit for mipseb (which applies here too):
WARNING: Binutils 2.11.2 (maybe earlier) changed the MIPS ABI, so any
shared libs built by this toolchain WILL NOT WORK without either a whack
to BFD to fix that or a patch to ld_elf.so to work around it. I need to
chase the binutils folks on this issue still.