with the exception of indirect function calls, are assumed to be
intra load module and thus that GP will be the same. This avoids
saving, setting and restoring GP for each function call and
reduces the kernel with ~320KB. There's obviously a performance
benefit as well.
Note that since we generally don't know if calls will be intra or
inter load module when we're compiling kernel modules, -mconstant-gp
cannot be used for modules.
Fix the "@gprel relocation against dynamic symbol xxx" linker error.
Variables defined in the link unit and small enough to be put in the
short data section will have a gp-relative access sequence (using the
@gprel relocation). It is invalid to have @gprel relocations in shared
libraries, because they are to be resolved by the static linker and
not the dynamic linker. The -fpic option will cause @ltoff relocations
for @gprel relocations, but the side-effects are untested (if any).
Instead, disable/eliminate the short data section to achieve the same.
middle of this header.
o Remove unneeded conditionals to hide SIG* in the POSIX case.
(C allows implementations to define additional SIG* constants.)
o Add comments about missing features.
o Move the location of the sigset_t typedef.
o Update standards visibility conditionals.
o Fix some assumptions about what pid_t and uid_t are defined as.
o Remove size_t typedef and use __size_t in struct sigaltstack
instead.
the predicate registers. Even though the ITLB and DTLB interrupts
happen often enough, this bug didn't do much harm. The reason
is that the interrupt handlers only modify p1 and since this is
a preserved (callee-saved) register it is hardly used in code
generated by the compiler. Compilers use scratch registers by
default. Changing the interrupt handlers to use p6 (ie a scratch
register) proved that the bug was in fact fatal.
o Replace KSTACK_PAGES with pages on panic() in pmap_new_thread(),
o Fix style bugs in adjacent code,
o Use NULL instead of 0 for pointers,
o Save the virtual kstack address if we create an alternate
kstack because 1) we can derive the physical (RR7) address
from it and 2) we need the virtual address for contigfree()
in pmap_dispose_thread(). Thus td_altkstack saves
td_md.md_kstackvirt.
as a trivial function that only calls ia64_tpa() and hence requires
the prototype of ia64_tpa(), but by defining pmap_kextract as
ia64_tpa. This solves the inclusion ordering issue in ddb/db_watch.c
time before the release (novel concept for me, I know :( )
Translation updates:
hardware/alpha/proc-alpha.sgml: 1.41 -> 1.44
hardware/common/dev.sgml: 1.91 -> 1.106
hardware/i386/proc-i386.sgml: 1.2 -> 1.3
relnotes/common/new.sgml: 1.355 -> 1.432
relnotes/common/relnotes.ent: 1.2 -> 1.3
Translation fixes:
hardware/sparc64/proc-sparc64.sgml
installation/common/install.sgml
installation/common/trouble.sgml
installation/sparc64/install.sgml
readme/article.sgml
Affected by the removal of the seperate release.ent file (FINALLY!):
errata/article.sgml
hardware/alpha/article.sgml
hardware/i386/article.sgml
hardware/ia64/article.sgml
hardware/sparc64/article.sgml
installation/alpha/article.sgml
installation/i386/article.sgml
installation/sparc64/article.sgml
relnotes/alpha/article.sgml
relnotes/i386/article.sgml
relnotes/sparc64/article.sgml
share/sgml/catalog
share/sgml/release.dsl
share/sgml/release.ent
Changed for the addition of the PC98 release notes, German version
hardware/Makefile
installation/Makefile
relnotes/Makefile
hardware/common/hw.ent
(and of course all the new files for pc98)
Thanks again to Martin Heinen for cleanup.
o Add typedefs for gid_t, off_t, pid_t, and uid_t in the non-standards
case.
o Add struct iovec (also defined in <sys/uio.h>).
o Add visibility conditionals to avoid defining non-standard
extentions in the standards case.
o Change spelling of some types so they work without including
<sys/types.h> (u_char -> unsigned char, u_short -> unsigned short,
int64 -> __int64, caddr_t -> char *)
o Add comments about missing restrict type-qualifiers and missing
function.