Fix the behaviour of native and tools gcc when MKPIC=no is specified for
platforms that mknative has determined support shared libraries.
XXX distrib/sets/sets.subr doesn't support MKPIC=no
and exception handling have a chance of working properly.
- creates libgcc, libgcc_eh and libgcc_s
- updates LIBGCC_SPEC to use them appropriately.
There's a hack in here at the moment with respect to libgcc_so in that it
is preferable to link against libgcc_so will only when -shared-libgcc is
specified (the c++ frontend does this automatically.) Configurations where
LINK_EH_SPEC is defined already do this. The gcc configuration for
NetBSD/alpha and another NetBSD platform (I forget which) actually define
LINK_EH_SPEC probably by accident rather than design.
- updates share/mk to use the compiler's knowledge of what needs linking into
libraries and executables. This removes an hppa hack.
- updates the sets for the newly created libgcc* files.
- support for linking against the _pg version of libgcc has been removed.
default broken flags. groff 1.19 defaulted to this value off, whereas
groff 1.18.1 and earlier defaulted to this being on. Setting this value
fixes postscript printing to my HP LJ4m.
Note: BROKEN_SPOOLER_FLAGS was previously `7', so we were already enabling
workarounds for other issues...
and without Kerberos 4 & 5 (MKKERBEROS=no). Previously checkflist
complained of missing files.
* move kerberos- and kerberos 4-only files into new flists,
distrib/sets/lists/*/krb.*
* make the flist generators grok MKKERBEROS{,4} variables
* fix Makefiles which treat MKKERBEROS=no as MKKERBEROS5=no.
9 out of 10 experts agree that it is ludicrous to build w/
KERBEROS4 and w/o KERBEROS5.
* fix header files, also, which treat MKKERBEROS=no as MKKERBEROS5=no.
* omit some Kerberos-only subdirectories from the build as
MKKERBEROS{,4} indicate
(I acknowledge the sentiment that flists are the wrong way to go,
and that the makefiles should produce the metalog directly. That
sounds to me like the right way to go, but I am not prepared to do
revamp all the makefiles. While my approach is expedient, it fits
painlessly within the current build architecture until we are
delivered from flist purgatory, and it does not postpone our
delivery. Fair enough?)
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...
it because sh3 ports don't provide PT_STEP. It is finally possible to
run programs under gdb now, though there are still issues to be
resolved. It was deemed useful enough to commit early, while the work
is still in progress. Tested on hpcsh.
Blessed by christos@.
directory, thus saving the trouble of doing distclean and cvs update.
Item 4 - it's defs.mk, not defs.h.
New bullet - in defs.mk set G_BFD_CPPFLAGS from `tdefaults' variable
of the generated bfd/Makefile.
XXX - gcc3/backend/ra-colorize.c gets built wrong and the backend programs
XXX fail to link.
XXX - mdsetimage & installboot/ffs.c get an unrecogised instruction ICE.
* 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.
* Implement GROFFYSRCS, which contain a list of .y files to convert into
.cpp and _tab.h. Simplifies .y -> .cpp (et al) .
* Use "realall" target instead of "dependall"/"install" to ensure that
various files are created correctly.