non-PIC libgcc.a. Linking non-pic code into a shared library is not
a good thing. It happens to break amd64 at compile time, and the ppc
folks want it too. The problem is mainly with C++ code, unwind-dw2.c
in particular. Most of the other functions in libgcc.a are self
contained so most of the time it isn't a problem. The dwarf2 unwinder
is not safe though since it does make global variable references.
Reviewed by: kan
cat ${.ALLSRC} > ${.TARGET}
rather than
ln -sf ${.ALLSRC} ${.TARGET}
not to depends on absolute-path of symbolic links.
Commented by: marcel, obrien, bde
give the cvs tree a surviving a 'make world'. One of the two diff chunks
is already in gcc-3.3, the other has been committed to gcc's HEAD and
is in the pipeline for gcc-3.3.1 (but has not been committed yet).
The first chunk simplifies an excessively complex assembler statement
when generating switch jump tables. The use of '.' causes as(1) to choke
on big files. Use a simpler form instead. This is only an issue for
TARGET_64BIT mode.
The second chunk fixes an internal compiler error when compiling
libc/stdio/vfprinf.c. While this is supposedly only an issue for
64 bit mode, it does touch the 32 bit i386 code paths, so this patch
is only applied for TARGET_ARCH == amd64 to keep the risks down.
Breaking gcc at the 11th hour would suck.
This will be removed when it is time to import gcc-3.3.
Discussed with: kan
Approved by: re (jhb)
As far as binutils is concerned, the amd64 platform is still called
"x86-64"/"x86_64". Setting things from ${MACHINE_ARCH} breaks that.
Approved by: re (scottl)
FreeBSD. This method attempts to centralize all the necessary hacks
or work arounds in one of two places in the tree (src/Makefile.inc1
and src/tools/build). We build a small compatibility library
(libbuild.a) as well as selectively installing necessary include
files. We then include this directory when building host binaries.
This removes all the past release compatibilty hacks from various
places in the tree. We still build on tip of stable and current. I
will work with those that want to support more, although I anticipate
it will just work.
Many thanks to ru@, obrien@ and jhb@ for providing valuable input at
various stage of implementation, as well as for working together to
positively effect a change for the better.
or dead kernel core is loaded into gdb. This extends gdb's existing
shared library support, so the "info sharedlibrary", "sharedlibrary"
and "nosharedlibrary" commands can be used to view and change the
list of loaded symbol files.
The current implementation is more than a kludge however, and it
will not always manage to find the .ko.debug file corresponding to
the loaded module. In particular, for modules whose build directory
cannot be easily guessed from the module name such as all the
netgraph modules, the debug version of the .ko will not be found
automatically.
The logic for finding the module file first attempts to guess at
the module build directory by parsing the version[] string. Then
using that directory ($DIR), it tries the following paths in turn:
./<module>.ko.debug ./<module>.ko
$DIR/<module>.ko.debug $DIR/<module>.ko
/boot/kernel/<module>.ko.debug /boot/kernel/<module>.ko
Approved by: obrien, mp
options.h to config.h.in and set via ./configure when built normally.
Export some of the build knobs to the Makefile here, overridable
from /etc/make.conf. Also get the version strings right.
config.h was repocopied to config.h.proto, and we do a limited sed on it
at build time now.
for more detailed information about sdiff(1). Hopefully this will
make it easier to find how `interactive merging' works with sdiff.
PR: docs/30618
Submitted by: mark@summersault.com
now only produce ELF objects. It also makes us closer to stock GCC, and
simplifies the set of changes we still need from stock GCC on every import.
Applauded by: peter
Approved by: re
Don't gratuitously pipe thru a cat(1) if NODOCCOMPRESS.
Only create _stamp.extra when necessary.
Get rid of SOELIMPP and OBJS.
Use Groff version of soelim(1); we need its -I option
for the following to work.
Don't needlessly chdir to SRCDIR. Only a few documents
need CD_HACK, and those that need it either use refer(1)
or .PSPIC macro which internally uses the .psbb call.
We are seeing "/usr/libexec/ld-elf.so.1: groff: too few PT_LOAD segments",
however it appears that there really is only one PT_LOAD segment in the groff
binary. It is unclear if `rtld' or `ld' is at fault here -- but using an
RELENG_4 `ld' binary allows one to build a working dynamic groff binary.
Submitted by: gallatin
contrib/binutils/include/getopt.h
/* Many other libraries have conflicting prototypes for getopt, with
differences in the consts, in stdlib.h. To avoid compilation
errors, only prototype getopt for the GNU C library. */
so manually define HAVE_DECL_GETOPT since configure doesn't offer any way
to set it... and its unistd.h not stdlib.h dang it.
than piping thru tr(1). Also prefer case over for+test, as case will
handle regex's nicely.
Note we can't exactly follow the real 2.13 genscripts.sh as we wind up with
multiple "'s in search paths. It is too late tonight to track down why.
In "nroff" mode, italic font renders as an underlined text, which
makes it indistinguishable from the bold text on color monitors
(cons25 terminal type), yet it requires the less(1)'s -R option.
(Refer to the new grotty(1) manpage for details.)
So turn off the color support for now (when generating catpages),
until we figure out what do we do with this new feature. I have
a patch for grotty(1) that tells it to use the "reverse video"
attribute to render the italic font. Once this is accepted, we
can turn color support back on (if there won't be any objections
from the community).
interface setbuffer(), and emulates setbuffer() on USG systems using a
#define of setbuffer() in terms of setvbuf(). The #define is correctly
ifdefed in some places but was not correctly ifdefed here -- i.e., BSD
was essentially configured as USG here. This became fatal when <stdio.h>
was de-__P(())ified without testing. This file gets included before
<stdio.h>, so the #define now affects (and breaks)
`setbuffer<left parentheses>' in <stdio.h> where it didn't affect
`setbuffer<whitespace>'.
Murdered by members of: a.out.die.die.die
ELF is the 1 true path now. So make good on the src/Makefile threat that
building a.out will not be supported post 4.x. These bits should either
resurface as a port, or a new port using the latest Binutils bits. The
later will not support our SunOS-style shared a.out libs; but we shouldn't
need such support by this point in time.
under way to move the remnants of the a.out toolchain to ports. As the
comment in src/Makefile said, this stuff is deprecated and one should not
expect this to remain beyond 4.0-REL. It has already lasted WAY beyond
that.
Notable exceptions:
gcc - I have not touched the a.out generation stuff there.
ldd/ldconfig - still have some code to interface with a.out rtld.
old as/ld/etc - I have not removed these yet, pending their move to ports.
some includes - necessary for ldd/ldconfig for now.
Tested on: i386 (extensively), alpha
internal buffer management somehow (an off by one perhaps). HAVE_MMAP
wasn't detected because configure has a bogus declaration of malloc
which conflicted with stdlib.h. Sigh.