punning the pcb to an array of ints and using magic indices to
access values in it. This should prevent silent breakage from
changes in the pcb.
Supply 0 for unavailable registers instead of punning the tss to
an array of ints and using magic indices to access garbage values
in it. (The registers are in the pcb; there is nothing interesting
in the tss. This should change someday. At least for dumps, all
the registers should be saved, and common_tss is a good place to
put them.)
Removed ancient wrong (disabled) method for reading eip.
sense to have a weak symbol that is not externally visible. This
fixes many of the "relocation burb" warnings produced when compiling
C++ code with "-fpic". Beyond eliminating warnings, it also makes
some things work that didn't work before.
(ignored :-() errors for `make depend' in /sys/i386/boot/*. It's
natural for there to be no libraries there and inconvenient to check
for this in bsd.prog.mk.
ld-specific flags. LDFLAGS is really for ld-related flags for cc,
not for ld, and some flags, e.g., -Bshareable, mean completely
different things to cc and ld. Having the wrong things in LDFLAGS
also broke the standard ${PROG} target. This was kludged around
by using a special rule that depended on LDFLAGS being bogus.
Fixing `make depend' broke the special rule but fixed the standard
rule (except in the DESTDIR case, which was handled more strictly
here than elsewhere).
dependency on `bar' is very unlikely to be correct.
This is a quick fix for broken dependencies in gdb and many other
places. The dependencies on internal libraries are now missing
instead of wrong when `make depend' is run before the libraries
are created.
directory. config.h is always in the current (= object) directory,
so don't search for it.
config.h is not a source for the library, so don't put it in SRCS and
don't make the library depend on it.
Don't put unused flags in CFLAGS.
Simplify using INTERNALLIB*.
- LDADD was wrong for non-uniform obj trees.
- DPADD was wrong for separate obj tres.
Cleaned up nearby messes, mostly ones invoving paths:
- ../libtxi was useless.
- there were too many redefinitions and too many different names for the
same paths.
- use INTERNALLIB* to simplify libtxi/Makefile.
- LDADD was wrong for non-uniform obj trees.
- DPADD was wrong for separate obj tres.
Cleaned up nearby messes, mostly ones invoving paths:
- -I../libtxi was useless.
- there were too many redefinitions and too many different names for the
same paths.
- use INTERNALLIB* to simplify libtxi/Makefile.
UPAGES layout.. it was entirely too comfortable with reading and writing
the U area before. I've changed it to use PT_GETREGS/PT_PUTREGS
ptrace ops instead of READ_U etc. The code to read the registers from
core dumps is a bandaid at best. It seems to have problems reading
core dumps from dynamic linked executables still, but at least static
dumps work.
I desperately need help from a gdb/bfd expert. :-) HELP!!
of binutils. For all architectures and object file formats,
".p2align n" aligns to the next multiple of 2**n. Thus for FreeBSD,
it does exactly the same thing as the traditional ".align".
The old ".align" directive has different meanings in different
object formats, and even in different variants of a.out. Sometimes
is aligns to a multiple of n, and other times it aligns to a multiple
of 2**n. ".p2align" is preferable for use in assembly language
sources, since it makes them more portable to object formats other
than a.out.