alias `pcb_cr3' instead. That is still one alias too many, but is convenient
for me since I've replaced the tss in the pcb by a few scalar variables in
the pcb.
need this.
Consider the following code:
case 'O':
output_filename = malloc(strlen(arg)+4);
strcpy(output_filename, arg);
strcat(output_filename, ".tmp");
real_output_filename = arg;
return;
The idea here is to malloc() a buffer big enough to hold the name of
a supplied file name, plus ".tmp". So we malloc() 'size of filename'
bytes plus 4, right? Wrong! ".tmp" is _FIVE_ bytes long! There's a
traling '\0' which strcat() gleefully tacks on _outside_ the bounds
of the buffer. Result: program corrupts own memory. Program SEGVs at
seemingly random times. Bill not like random SEGVs. Bill smash.
Know how I found this? I've been trying to bootstrap -current on my
2.1.0-RELEASE machine at work and I couldn't seem to get libc.a built
because the linker would intermittently blow chunks while executing
things like 'ld -O foo.o -X -r foo.o'. Since this is an initial
bootstrap version of ld, it was linked against the 2.1.0 libc, who's
malloc() behaves differently than that in -current.
Presumeably ld -O doesn't blow up in -current, otherwise someone would
have spotted this already. I don't know if this is a bug or a feature.
Anyway. I'm changing the strlen(arg)+4 to strlen(arg)+5. Bah.
-O filename
Specifies the name of the output file. The file is created as
filename.tmp and when output is complete renamed to filename.
This allows us to:
ld -O ${.TARGET} -x -r ${.TARGET}
file. The field formerly contained random garbage, leading to spurious
differences between otherwise identical executables and libraries.
Submitted by: Bruce Evans <bde@freebsd.org>
been loaded, look for a match by device and inode number if the
traditional pathname comparisons don't find a match. This detects
the case in which a library is requested using two different names
which are really links to the same file, and avoids loading it
twice.
Requested by: peter@freebsd.org
Reviewed by: peter@freebsd.org
matched the filename. Now put the list after the filename. E.g.
filename: vt220keys.1
Keyword: vt220
was: vt220(1), vt220keys(1) - define SHIFTED [...]
now: vt220keys(1), vt220(1) - define SHIFTED [...]
Submitted by: invalid opcode <coredump@nervosa.com>
makewhatis.local - start makewhatis(1) only for file systems
physically mounted on the system
Running makewhatis from /etc/weekly for rw nfs-mounted /usr may kill
your NFS server -- all clients start makewhatis at the same time!
So use this wrapper instead calling makewhatis directly.
Pointed out by: Bruce
"-X" must survive, because of references from relocations, don't
qualify the symbol name with the name of the input file. This
saves some string space. It makes libc_pic.a about 2.4% smaller.
Adapted from a suggestion by Bruce Evans.
descriptions of LD_NO_INTERN_SEARCH and LD_NOSTD_PATH from the manual
page, since they are not supported.
Submitted by: Doug Ambrisko <ambrisko@ambrisko.roble.com>
DITEM_FAILURE - formerly they would simply act as an implicit "continue",
but this is wrong. If you want this behavior, you should now return
with the DITEM_CONTINUE flag set.
Also make the semantics of DITEM_RESTORE quite a bit different - rather
than restore the screen back to pre-menu state, we restore the menu
itself. This is more correct for a variety of reasons when dealing with
nested menus (whoops!).
robust. The new "fire" actions, while affording signficantly more
interactivity to libdialog, come at a cost - if the fire action trashes
the screen then you're not going to be in Kansas anymore when you
come back to the menu and there had better be considerable extra
smarts in place for coping with such a situation. These changes are my
attempt to do just that.
with valid names, the ***/---names were taken first.
this broke eg:
Index: foo/Makefile
==========
RCS <blah>
Retrieving <blah>
diff <blah>
*** Makefile <blah>
--- Makefile <blah>
By trying to patch the Makefile in the _curent_ directory, rather than
the one in the foo/ directory.
man pages up to mdoc guidelines and fix some minor formatting glitches.
Also fixed a number of man pages to not abuse the .Xr macro to
display functions and path names and a lot of other junk.
. rename the function to main'gethostname, so it can be called unqualified,
. strip the trailing \0 character, closes PR # bin/1084,
. a better way to express an insane long string.
Submitted by: Giles Lean <giles@topaz.nemeton.com.au> (except the 1st)
This solves the problem of being unable to use shared libraries with dots
in their names before the ".so.<version>" code.
This should be brought into -stable.
There are more changes from Paul that look like they should be included,
but they change the format of the hints file, so I'm not going to bring them
in now (but we should in the future).
Obtained from: pk@netbsd.org
.Fx version.rel { , . ; : ( ) [ ]
Example:
The
.Nm xyzzy
command first appeared in
.Fx 2.2 .
Produces:
The xyzzy command first appeared in FreeBSD 2.2.
Suggested by wollman.
Also corrected a few minor formatting errors, file location and cross
references in some of the section 3 man pages.
This shuts up a lot of the output from "manck" for section 3.
.Os FreeBSD 2.1
will now display "FreeBSD 2.1" at the bottom of the man page,
instead of just "FreeBSD".
Added a bunch of missing standards to the .St macro.
4.4BSD is no longer "BSD Experimental".
Obtained from: Partially obtained from NetBSD & 4.4BSD-lite2
It addresses a number of problems that were present in earlier
versions.
The calls to the "init" and "fini" functions of shared libraries
have been reordered, so that they are called in a strictly nested
fashion, as is required for C++ constructors and destructors. In
addition, the "init" functions are called in better order relative
to each other. That makes the system more tolerant of C++ programs
which depend on a library's being initialized before its clients.
The dynamic linker is now more tolerant of shared libraries in
which dependencies on other shared libraries are incompletely
recorded.
Cleanup in the event of errors has been improved throughout the
dynamic linker. A number of memory leaks were eliminated.
The warning message for a shared library whose minor version number
is too old has been clarified.
The code dealing with the "ld.so.hints" file has been cleaned up.
A bug that caused the hints file to be unmapped incompletely has
been fixed. A different bug that could potentially cause the hints
file to be mapped on top of a loaded object has been fixed.
The code that searches for shared libraries has been cleaned up.
The searching is now more compatible with that done by SunOS and
SVR4. Also, some unnecessary and useless searches of both the
hints file and library directories have been eliminated.
Reviewed by: nate@freebsd.org
and add selection traversal callbacks so context-sensitive behavior can
even be implemented for individual menu items. These work around the two
largest issues holding me back with some of my sysinstall changes.
last time. I should have pulled these in last time as it allows easier
comparison of "where we are at" relative to the current version from
cyclic.com. Since this is in a 4.4BSD style tree layout, the changelogs
dont exactly match the file layout, but it's close enough.
-mprofiler-epilogue to support it and documented the option.
cc.1:
Listed all the machine-dependent options, even the temporary
debugging ones.
invoke.texi:
Fixed the sense of -mno-ieee-fp.
Sorted the machine-dependent options.
Two uninitialised variables were causing a phkmalloc warning (another notch
in phkmalloc's belt) and caused the full rcstemplate to not be constructed
for commits on freefall.
(Note that you need to have either done a 'make world' or explicitly
run a 'make distrib-dirs' (in src/etc) to get some needed directories in
/usr/share/examples/cvs to be built.)
The code, as written, appears to load the new database data into a new
hash file and renames the two.
Due to a run of bugs and lack of error checking, it's going a whole
mess of unlink() and rename() calls that are failing. It only
worked in the first place because the data was being inserted into a
"live" hash file. (I wonder how much stale data has assumulated?)
Submitted by: Laurence Lopez <lopez@mv.mv.com>
plus a couple of minor changes..
Some highlights of the new stuff that was not in the old version:
- remote access support.. full checkout/commit/log/etc..
- much improved dead file support..
- speed improvements
- better $CVSROOT handling
- $Name$ support
- support for a "cvsadmin" group to cut down rampant use of "cvs admin -o"
- safer setuid/setgid support
- many bugs fixed.. :-)
- probably some new ones.. :-(
- more that I cannot remember offhand..
plus a couple of minor changes..
Some highlights of the new stuff that was not in the old version:
- remote access support.. full checkout/commit/log/etc..
- much improved dead file support..
- speed improvements
- better $CVSROOT handling
- $Name$ support
- support for a "cvsadmin" group to cut down rampant use of "cvs admin -o"
- safer setuid/setgid support
- many bugs fixed.. :-)
- probably some new ones.. :-(
- more that I cannot remember offhand..
plus a couple of minor changes..
Some highlights of the new stuff that was not in the old version:
- remote access support.. full checkout/commit/log/etc..
- much improved dead file support..
- speed improvements
- better $CVSROOT handling
- $Name$ support
- support for a "cvsadmin" group to cut down rampant use of "cvs admin -o"
- safer setuid/setgid support
- many bugs fixed.. :-)
- probably some new ones.. :-(
- more that I cannot remember offhand..
Changed beforeinstall rule to use `install -C' instead of `cmp -s'
and `install -c'. `install -C' has exactly the right semantics
for installing headers and should be used elsewhere.
vector. Now it is called the "symbol caching" vector. This was made
possible and unconfusing by other changes that allowed me to localize
everything having to do with the caching vector in the function
reloc_map().
Switched to alloca() for allocating the caching vector, and eliminated
the special mmap-based allocation routines. Although this was motivated
by performance reasons, it led to significant simplification of the
code, and made it possible to confine the symbol caching code to the
single function reloc_map().
Got rid of the unnecessary and inefficient division loop at the
beginning of rtld().
Reduced the number of calls to getenv("LD_LIBRARY_PATH") to just 1, on
suggestion from <davidg@root.com>.
Added breaks out of the relocation loops when the relocation address is
found to be 0. A relocation address of 0 is caused by an unused
relocation entry. Unused relocation entries are caused by linking a
shared object with the "-Bsymbolic" switch. The runtime linker itself
is linked that way, and the last 40% of its relocation entries are
unused. Thus, breaking out of the loop on the first such entry is a
performance win when ld.so relocates itself. As a side benefit, it
permits removing a test from md_relocate_simple() in
../i386/md-static-funcs.c.
Unused relocation entries in other shared objects (linked with
"-Bsymbolic") caused even bigger problems in previous versions of the
runtime linker. The runtime linker interpreted the unused entries as if
they were valid. That caused it to perform repeated relocations of the
first byte of the shared object. In order to do that, it had to remap
the text segment writable. Breaking out of the loop on the first unused
relocation entry solves that.
Submitted by: John Polstra <jdp@polstra.com>
them. Good greif! This was causing an unimaginable amount of brain-damage!
The mere fact that I griped about $ Log $ in a previous commit (misspelled
deliberately here) meant that the blasted thing was being expanded from the
middle of the log entry as well as the beginning, and using " * All these"
as the comment leader.. AARGH!!!! We *really* need to prevent these from
being expanded! (or remove the magic identifier from the source).
All those $Log$ entries, combined with the whitespace changes are a real
pain.
I'm committing this now, before it's completely finished to get it compiling
and working again ASAP. Some of the FreeBSD specific features are not working
in this commit yet (mainly rlog stuff and $FreeBSD$ support)
This is going to be pretty messy.... Although the vendor import was correct,
both the vendor and release tags are the same "gnu"... :-/
Getting cvs to choose the correct one might be rather interesting...
Note, this is going to be messy.. 2.3 was vendor-branch imported, while
2.6 was done as a delta. Sigh. I'm importing this on a vendor branch so
that it will be easier to deal with next time..
(cvs-1.6 wants rcs-5.7, and rcs-5.7 suggests diffutils-2.7)
Implemented symbol memorizing to reduce the number of calls to lookup(),
making relocation go faster. While relocating a given shared object,
the dynamic linker maintains a memorizing vector that is directly
indexed by the symbol number in the relocation entry. The first time a
given symbol is looked up, the memorizing vector is filled in with a
pointer to the symbol table entry, and a pointer to the so_map of the
shared object in which the symbol was defined. On subsequent uses of
the same symbol, that information is retrieved directly from the
memorizing vector, without calling lookup() again.
A symbol that is referenced in a relocation entry is typically
referenced in many relocation entries, so this memorizing reduces the
number of calls to lookup() dramatically. The overall improvement in
the speed of dynamic linking is also dramatic -- as much as a factor of
three for programs that use many shared libaries.
Submitted by: jdp@polstra.com "John Polstra"
bsd.man.mk when I change the latter to use `::' instead of `:'
dependencies. (bsd.man.mk is included because NOMAN isn't defined.
The maninstall target is supposed to be private to bsd.man.mk so
bsd.man.mk doesn't bother testing if it is already defined. The
test for redefinition in Makefile.dev was too early to do anything.)
Change install target to a beforeinstall target (perhaps there should
be an `extrainstall' target so that Makefiles don't have to abuse
one of beforeinstall, install, realinstall or afterinstall). Don't
bother testing for the install target already being defined. Rewrite
the shell loop as a make loop (this reduces the time for installing
groff from 78s to 65s here).
include this in the old makefiles.
I intended to fix only the private maninstall rule but found a lot of
other bogons and bugs:
- strong resistance to installing the program anywhere other than
${DESTDIR}/usr/bin (first, ../../Makefile.inc was not included.
../Makefile/inc was redundantly included instead. Second, /usr/bin
was hard coded).
- the owner, group and permissions were hard coded.
- the man page was installed twice.
- MANDEPEND wasn't necessary.
- calculations to determine the obj directory weren't necessary.
- there were unnecessary private rules for depend, rcsfreeze and tags.
We don't support the rcsfreeze target.
- there was an extra, bogus, rule for `all'.
The final version uses suffix rules to eliminate the remaining verboseness
involving directories (${.CURDIR}) and to potentially allow multiple
shell programs in one directory.
We already check for (and reject entries with) '+' or '-' as the first
character of the key side of the key/data pair; we should check the data
side too. (Letting spurious +/- entries into the NIS maps is bad karma.)
I got tired of see ``UNIX System Managers Manual''
NOTE: There still a couple of UNIXs left in here. There deal with the
documents. We may want to change there also, even though VERY little of there
even pertain to FreeBSD.
instead of the uninitialized one $(DEVICE).
I hoped these changes would fix some of the large runtime macro processing
bugs, but they seem to only fix some small build-time macro substitution
bugs. E.g., `man ms' now tells you to invoke groff with the flags `-ms'
instead of the bogus flags `-m'; `man groff now tells you that the default
device is `ps' instead of the bogus device `'.
shared library. Formerly, the message looked like this:
ld.so: run: libjdp1.so.1.0: Undefined error: 0
The new message looks like this:
ld.so: run: Can't find shared library "libjdp1.so.1.0"
(Where "run" is the name of the program being executed.)
Submitted by: jdp@polstra.com (John Polstra)
symbols.
An easy example to see this is to develop an X program which links
against Xt, but doesn't add -lX11 to the link line. It will link fine,
but cause run-time errors by ld.so because of missing symbols used by Xt
defined in X11. This patch makes the errors more readable.
Submitted by: jdp@polstra.com (John Polstra)
#ifdef out a number of calls to free() left over from the original
GNU ypserv implementation. As near as I can tell, the Berkeley DB
package does its own garbage collection, hence the caller doesn't
have to worry about free()ing the memory returned in the DBT
structures during lookups (I'm still not 1005 sure about this:
the DB code is very hard to follow. I must use dynamically
allocated memory since you can retreive arbitrarily large records
from a database, but I'm not sure where it ends up letting go
of it). This was not true with GDBM; you had
to do your own garbage collection.
The general rule is that if you allocate memory inside an RPC
service routine, you have to free() it the next time the routine is
called since the underlying XDR routines won't do it for you.
But if the DB package does this itself, then we don't need to do
it in the main program.
Note that with the original malloc(), there were never any errors
flagged. phkmalloc complained quite loudly.
in the diff. This makes it so that diffs containing files in different
subdirectories that have the same name not patch the same file. For example
a diff with patches to Makefile, des/Makefile, usr.bin/Makefile would attempt
to patch Makefile three times.
"update -jHEAD" when a file has been added on the specified tag.
It doesn't actually make cvs 'handle' it, it just stops it from dying
and leaving stray locks and other wreckage.
This was suggested by the CVS maintainers, and is in cvs-1.5.1-950901.
1: It stops invalid files being created in the cvs tree
2: It stops the import from aborting without mailing a commit message..
The first is simple, it opens the file for reading before touching the
repository, and the second catches the pieces when it hits an unreadable
file rather than just aborting mid-way through, leaving the repository in
a bit mess.
Reviewed by: rgrimes
specified in the top level Makefiles.
Previously I missed dozens of Makefiles that skip the install after
using `cmp -s' to decide that the install isn't necessary.
LINK_SPEC. This solves a problem with the f77 frontend where
aproviding the -r8 option (use REAL*8) caused `cc' to ``forget'' to
pass the entry point to the linker.
Closes PR #gnu/644: f77 -r8
Reviewed by: watanabe@komadori.earth.s.kobe-u.ac.jp (Takeshi WATANABE)
In ypserv:
yp_svc.c:
- small signal handler tweak (hopefully the last): just use sigemptyset()
to clear sa_mask.
Makefile.yp:
- Let the user specify the location of master.passwd when updating
maps (e.g. make MASTER_PASSWD=/some/path/to/master.passwd). Editing
the file to change the location of master.passwd still works. This
is mostly to let yppassswdd specify the name of the master.passwd
file itself.
In yppasswdd:
yppasswdd.c:
- Roll in some minor changes (mostly casts) from Olaf Kirch's latest
yppasswd package release (version 0.7).
- Use daemon() instead of doing all the deamonizing gruntwork ourselves.
- Call pw_init() after daemonizing ourselves. pw_init() sets up some
resource limits and blocks some signals for us. We used to do this before
every password change, but there's really no point in calling it more
than once during the life of the program.
- Change install_reaper() so that we can use it to de-install the SIGCHLD
handler if we need to (and we do in pw_mkdb() -- this is what I get for
splicing code from two different programs together).
- Use sigemptyset(&act.sa_mask) rather than act.sa_mask = 0: the latter is
decidedly non-portable. (In IRIX, HP-UX and Solaris, sigset_t is an
array of longs, not an int.)
update.c:
- Roll in change from new version (check that we're not modifying an NIS
entry in validate_args()).
- Get rid of call to pw_init() (moved to yppasswdd.c).
- Check return values from pw_util routines and return error status to
yppasswd clients if there's a problem.
- Straighten out password file copying mechanism a little. Keep a grip
on the original password file rather than summarily overwriting it so
that we can restore everything if we fail to fork() a process to update
the NIS maps.
- Pass the name of the password template file (specified with -m or
/etc/master.passwd by default) to the yppwupdate script, which in
turn should now pass it to /var/yp/Makefile.
pw_util.c:
- Nuke the pw_edit() and pw_prompt() functions -- we don't need them.
- Change all warn()s, warnx()s and err()s to syslog()s.
- Make sure we return error status to caller rather than bailing out
in pw_lock() and pw_tmp().
- Don't block SIGTERM in pw_init() (by ignoring SIGTERM, we prevent
yppasswdd from being shut down cleanly).
- Don't let pw_error() exit. (This stuff was stolen from chpass and vipw
which are interactive programs; it's okay to let pw_error() bail out
for these programs, but not in a daemon like yppasswdd).
- Fix signal handling in pw_mkdb (we need to temporarily de-install the
SIGCHLD handler so that we can wait on the pwd_mkdb child ourselves).
pw_copy.c:
- Change all warn()s, warnx()s and err()s to syslog()s.
- Add a bunch of returns() and make pw_copy() return and int ( 0 on success,
-1 on failure) so that update.c can flag errors properly.
- Return -1 after calling pw_error() to signal failures rather than
relying on pw_error() to bail out.
- Abort copying if we discover that we've been asked to change an entry
for a user that exists in the NIS passwd maps but not in the master.passwd
template file. This can happen if the passwd maps and the template file
fall out of sync with each other (or if somebody tries to spoof
us). The old behavior was to create add the entry to the password file,
which yppasswdd should not do under any circumstances.
Makefile:
- update VERSION to 0.7
yppasswdd.8:
- fix typo (forgot a carriage return somewhere)
- remove bogus reference to pwunconv(8) which FreeBSD doesn't have.
- bump version from 0.5 to 0.7
- Reflect changes in password file handling.
yppwupdate:
- Log map rebuilds to /var/yp/ypupdate.log.
- Pass the name of the template password file to /var/yp/Makefile as
$MASTER_PASSWD.
syslog connections unless they were rejected. This helps save wear and
tear on the syslog facility in large networks with many clienst systems.
yp_svc.c: Be a little smarter about using sigaction() -- set the SA_RESTART
flag.
svc_run: Be doubly paranoid about killing off child processes. Do a flag
chack and a pid check before letting child 'threads' self-destruct.
- There are two cases where the server can potentially block for a long
time while servicing a request: when handling a yp_all() request, which
could take a while to complete if the map being transfered is large
(e.g. 'ypcat passwd' where passwd.byname has 10,000 entries in it),
and while doing DNS lookups when in SunOS compat mode (with the -dns
flag), since some DNS lookups can take a long time to complete. While
ypserv is blocked, other clients making requests to the server will
also block. To fix this, we fork() ypall and DNS lookups into subprocesses
and let the parent ypserv process go on servicing other incoming
requests.
We place a cap on the number of simultaneous processes that ypserv can
fork (set at 20 for now) and go back to 'linear mode' if it hits the
limit (which just means it won't fork() anymore until the number of
simultaneous processes drops under 20 again). The cap does not apply
to fork()s done as a result of ypxfr calls, since we want to do our
best to insure that map transfers from master servers succeed.
To make this work, we need our own special copy of svc_run() so that
we can properly terminate child processes once the RPC dispatch
functions have run.
(I have no idea what SunOS does in this situation. The only other
possibility I can think of is async socket I/O, but that seems
like a headache and a half to implement.)
- Do the politically correct thing and use sigaction() instead of
signal() to install the SIGCHLD handler and to ignore SIGPIPEs.
- Doing a yp_all() is sometimes slow due to the way read_database() is
implemented. This is turn is due to a certain deficiency in the DB
hash method: the R_CURSOR flag doesn't work, which means that when
handed a key and asked to return the key/data pair for the _next_
key in the map, we have to reset the DB pointer to the start of the
database, step through until we find the requested key, step one
space ahead to the _next_ key, and then use that. (The original ypserv
code used GDBM has a function called gdbm_nextkey() that does
this for you.) This can get really slow for large maps. However,
when doing a ypall, it seems that all database access are sequential,
so we can forgo the first step (the 'search the database until we find
the key') since the database should remain open and the cursor
should be positioned at the right place until the yp_all() call
finishes. We can't make this assumption for arbitrary yp_first()s
and yp_next()s however (since we may have requests from several clients
for different maps all arriving at different times) so those we have
to handle the old way.
(This would be much easier if R_CURSOR really worked. Maybe I should
be using something other than the hash method.)
Fix the use of /usr/X386 to ${X11BASE}. Fix the pathname /usr/bin/chess
to /usr/games/chess.
XCircle.c:
Fix the comment after an ifdef to make it a real comment to silent gcc.
std.h:
Comment out a private definition of sys_errlist.
texinfo-3.6 distribution to enable the use of the cursor keys.
Since there is an open problem report (gnu/289) for this it might be
of interest for (some of) you.
I (Joerg) have also added a minor hack that makes info recognizing a
window size change while it has been suspended.
Submitted by: thomas@ghpc8.ihf.rwth-aachen.de (Thomas Gellekum)
constructors and destructors.
Add -lgcc_pic to LDADD for the shared library since C++ code uses stuff from
libgcc and we no longer have a shared libgcc. Should this be done by
CPLUSPLUSLIB?
platform, I discovered the following: if you use ypcat (or anything that
does a yp_all() for that matter) to dump out a map and then hit ^C before
it finishes, ypserv gets hit with a SIGPIPE and dies. (The ypall() service
is implemented using TCP.)
Fix: ignore SIGPIPEs.
bootparam_prot.x was changed for nfsv3 but bootparamd and callbootd
kept using the old version which fortunately failed at build time.
Copying hasn't been necessary since path handling was fixed in
rpcgen/rpc_main.c some time ago.
- Use one sprintf() to put together the path to the map database instead
of strcat()s and strcpy()s.
- Make the 'error opening database' Perror() statement sane.
on dlclose. Also correctly call constructors and destructors for libraries
linked with /usr/lib/c++rt0.o.
Change interpretation of dlopen manpage to call _init() rather than init()
for dlopened objects.
Change c++rt0.o to avoid using atexit to call destructors, allowing dlclose to
call destructors when an object is unloaded.
Change interface between crt0 and ld.so to allow crt0 to call a function on
exit to call destructors for shared libraries explicitly.
These changes are backwards compatible. Old binaries will work with the new
ld.so and new binaries will work with the old ld.so. A version number has
been introduced in the crt0-ld.so interface to allow for future changes.
Reviewed by: GAWollman, Craig Struble <cstruble@singularity.bevc.blacksburg.va.us>
cpio/copyout.c:
Don't output a file if the major, minor or totality of its rdev would be
truncated. Print a message about the skipped files to stderr but don't
report the error in the exit status. cpio's abysmal error handling doesn't
allow continuing after an error, and the rdev checks had to be misplaced
to avoid the problem of returning an error code from routines that return
void.
pax/pax.h:
Use the system macros for major(), minor() and makedev().
pax already checks _all_ output conversions for overflow. This has the
undesirable effect that failure to convert relatively useless fields
such as st_dev for regular files causes files not to be output. pax
doesn't report exactly which fields couldn't be converted.
tar/create.c:
Don't output a file if the major or minor its rdev would be truncated.
Print a message about the skipped files to stderr and report the error
in the exit status.
tar/tar.c:
For not immediately fatal errors, exit with status 1, not the error count
(mod 256).
All:
Minor numbers are limited to 21 bits in pax's ustar format and to 18
bits in archives created by gnu tar (gnu tar wastes 3 bits for padding).
pax's and cpio's ustar format is incompatible with gnu tar's ustar
format for other reasons (see cpio/README).
now safely add a line like
ldconfig -m ${PREFIX}/lib
in ports' Makefiles and packing lists without throwing away some
directories the user may have added.
Submitted by: Mostly by Paul Kranenburg <pk@cs.few.eur.nl>
Add a NOMAN= . It doesn't have a manual page yet.
Please don't cry :-). I ask Rod first. the whole isdn subdir is not
used in the moment and is only dead source code in the tree.
In the case where ypserv is started with the -dns flag, fall through to
the DNS lookup code only if asked to match a map with the word 'host'
in its name. This prevents failed matches on non-host maps from being
incorrectly handed off to DNS.
>Number: 364
>Category: bin
>Synopsis: Interrupting man results in half-baked man page
>Description:
Interrupting man while it is waiting for the page to be formatted
results in a zero length file or a half-baked file.
>How-To-Repeat:
Inetrrupt man while it is formatting a page.
>Fix:
Pay more attention to the return value from the system command.
Submitted by: John Capo <jc@irbs.com>
examination, I'm not entirely sure this was meant to be public. It's not
idempotent or anything. I'll make pkg_manage deal with it another way
until it's been confirmed one way or the other by Marc.
like "3DBorder" and "[". (NB, the "3DBorder" problem has actually
been intention, it allowed for weird section names like "3xyzzy". We
don't have them, either.)
(Partially) Submitted by: taob@gate.sinica.edu.tw (Brian Tao)
file specifications when they've been extracted (enabling you to get a file
fast if it occurs somewhere close to the front).
Submitted by: Marc van Kempen <wmbfmk@urc.tue.nl>
> * the gdb-4.13 of current (compiled and used under 2.0R) can not attach to my
> own processes (it works only then i'm root - else i get open failed - for my
> own processes)
how embarassing ! This turns out to be a bug in infptrace.c. Below
is a patch. Could some kind soul apply it ?
Submitted by: "Gary J." <garyj@rks32.pcs.dec.com>
of the linker to enforce linking of modules in command line order it is
not possible to link gdb shared with -lcompat.
*HACK ALERT*
Removed -lcompat from LDADD and bring in the necessary functions out of
libcompat as a source module until the linker can be fixed.
underlying bugs which are caused by mixing static/shared libraries with
this change in place.
The shlib code is not capable of supporting this feature in it's present
state and will need significant modifications in order to do so.
register ourselves as an NIS version 1 UDP server to pacify older SunOS 4
ypbinds that seem to insist on having one around. All this does is allow
ypserv to respond to DOMAIN_NONACK requests that are periodically
transmitted by ypbind: the server will not actually work as an NIS v1
server in any other way.
Unlike the mainline code, which implements this as a compile-time
option, this feature can be turned on with the newly-added -k flag
at runtime.
Bunped version number to 0.13. (What the hell.)
Updated the man page to reflect this change, also made a couple of small
edits to reflect the recent changes in the /etc/rc* setup.
ypxfr can't easily be reduced down to one file like yppush because it
needs to do certain special things (such as binding to a specific
machine (the NIS master)) which the yp_*() functions in libc don't
allow.
in libc, we can get rid of the private/special copies of yp_*.c
files and rpcgen them at compile time instead. This leaves us with
just one unique source files: yppush.c
date: 1995/02/04 20:27:23; author: phk; state: Exp; lines: +1 -1
added *.info and *.db to the default "ignore" list in cvs to avoid obviously
common mistakes.
that ypxfr is supposed to log messages to /var/yp/ypxfr.log if it exists,
using syslog() makes more sense, especially since ypserv does the same
thing already. Try to use stderr by default, and use syslog() if stderr
is not a tty.
Also update the man page to reflect this change.
NIS maps (get rid of extraneous slash a la /var/yp//domainname).
Have ypxfr log all output to /var/yp/ypxfr.log if stdin is not a
tty. This should allow logging to be done when ypxfr is called from
inside ypserv in response to a yppush request.
Update man page to reflect the change (and fix a typo).
use it. :-)
It now explicitly requires the specification of a directory to import
from, either as an argument to the script, or by asking the user about
it. (Previously, it implicitly used `.', like cvs import does.)
Also implemented an option `-n', which does essentially the same like
the overall CVS option `-n': show only what would have been done,
don't do any commitment. Note that since the modules' database is
checked out in place (and not commited back), it will erroneously be
reported as to be imported, too:
cvs import: Importing /home/ncvs/ports/foobar/foo/modules
I ports/foobar/foo/modules/CVS
N ports/foobar/foo/modules/modules
This is an unwanted side-effect, but gives the user the option to see
if the `ed' magic did the right thing when editing modules/modules.
Rod, can you please check the function ``checktag'' in the script if it
will be restritctive enough?
interpret it. I've preserved the bugs that perl must be installed
to build part of perl and that it must be installed in the wrong place
(no ${DESTDIR}).
members over shared library members. This modification causes the linker
to use the first definition it sees for a symbol instead of having
priorities based on the library type. This modification should allow
gdb to compile again.
Obtained from:
Email conversation with Paul Kranenbury, but implemented completely by
me. If it doesn't work, it's my fault not his.
Remove private mkdir command for /usr/include/g++, this is now
handled by mtree.
Make the whole file fit in 80 column output, sort the SRCS list and
split into .c and .cc sources.
Use $Id$ instead of $FreeBSD$ since we pulled support for this.
Add DPADD to match LDADD and now include <bsd.prog.mk> to define
the DPADD values (This is a hack until the .mk stuff can be corrected
so that ${LIB*} is visiable in bsd.lib.mk.)
Optimize beforeinstall target by eliminating a subshell.
default switches, template functions get EXTERNAL linkage in each file
in which they occur, causing multiple definition errors during
linking. The enclosed patch (from gnu.g++.bug) appears to solve the
problem (I enclose the accompanying message as well).
This patch fixes the multiply defined template functions bug
which was introduced in 2.6.1.
Submitted by: "Justin T. Gibbs" <gibbs@estienne.cs.berkeley.edu>
Obtained from: Jason Merrill at cygnus support on G++ mailing list
one is much more intelligent, not only that it would accept multiple
man page locations, it also behaves like ``make'' in that it will only
deal with cat pages that are out of date (by default).
Wolfram also wrote a man page for it.
Submitted by: wosch@cs.tu-berlin.de (Wolfram Schneider)
- Don't define NO_IMPLICIT_EXTERN_C here. It is already the default
(defined in i386/bsd.h).
- Don't lose the fixed comment about FUNCTION_PROFILER.
- Don't lose the define of NO_PROFILE_DATA.
Replace the unused define of COMMENT_BEGIN by the less-unused define
of ASM_COMMENT_START. COMMENT_BEGIN was only defined in i386-specific
files and was not used in any part of gcc-2.6.3. ASM_COMMENT_START
is defined for several targets and is used for stuff that we don't
support (dwarf).
stuff. I'd like to have it in CVS, and i figured that this might be
the best place to go.
Someone (phk?) could install it into /usr/local/bin on freefall, for
convenience.
Suggested by: phk
basic-block profiling:
1. use a .stabs(25) symbol to link all the data structures together with.
The regular method isn't safe for the kernel.
2. add a BB before the prologue and add a BB after the epilogue, this
alows us to find the length of any counted BB. This is a cheap and somewhat
reasonable measure of actual cost.
if a signal is received.
This fixes a bug where killing the process would cause a
"No manual entry for XXX" to be printed even if the manpage
was found.
first place and we were too long in finding out. Now we know, and the
damage is hard to fix. This is part one: ld will not link gcc dynamic,
if specified as "-lgcc".
Suggested by: dyson & davidg
disables dysfunctional disinformed namei's,
needlessly negating namei cache."
These hacks cuts the number futile attempts made by cc and ccp to find
cross-compilers and other weird stuff. A make of the BOOTFLP kernel
has 20% less namei calls now, that is from 30647 down to 24563 calls.
NetBSD ld code except for local changes for dlopen() and friends and
the hashing on the minor value of the shlibs. We should be binary
compatible now with all their libraries.
Obtained from: NetBSD
the same as the changes made in the repository. This is often seen by
people with remote CVS trees that have applied their local patches to the
master site. a 'cvs update' will show bogus conflicts.
Obtained from: CVS mailing list, Stig<stig@inse.com>
In diffutils 2.6 and 2.7, diff3 -A complains about identical overlapping
changes. They're different from the ancestor but not from each other...
Why bother? The patch below fixes this nonsense and preserves [B]ackwards
compatiblity with the -B flag (also --show-bogus-conflicts).
Party on...
Stig
i reported today earlier..tested and works OK..
( To those who want to experience bug try running aub
with old version of socket.ph and with new one or just any
perl script "requiring " <sys/socket.ph> or <sys/cdefs.ph> )
correctly (specified wrong fields to awk). Note that the files in question
are noe the local /etc/master.passwd and /etc/passwd files: this Makefile
expects there to be a seperate master.passwd file under /var/yp for NIS
database creation.
executes after it finishes updating the raw master.passwd file. The script
is just there to invoke /var/yp/Makefile to build new maps and yppush them.
We could have yppasswdd run /var/yp/Makefile directly, but this allws a bit
more flexibility: the user may decide to run some other commands too.
This is a ported/modified version of the yppush program from the
yps-0.21 package from the NYS project. This program is used to propagate
updated NIS maps from an NIS master to an NIS slave. It's normally invoked
by /var/yp/Makefile.
This version of yppush has been modified in the following ways:
- Cleared up several Linux/BSD incompatibilities, largely involving
header files.
- converted from GDBM to DB with extreme predjudice. (well, not really...)
- removed lots of ugly debugging code that really didn't do anyone any good.
- Fixed a couple of inaccurate/badly formatted error messages.
- Renamed some functions to avoid collisions with certain YP routines
hidden inside libc.
- Small signal handling kludge: Linux has different struct sigaction
that us.
- Incorporated some functions from the yps-0.21 library that yppush was
dependent on.
Like ypxfr, this works, but could use come cleaning up.
This is a ported/modified version of the ypxfr program from the yps-0.21
package from the NYS project. This program is normally invoked by ypserv
when it receives a yppush command from an NIS master. It can also be
run from the command line to grab copies of maps when initializing a
slave server.
This program has been hacked in the following ways:
- rpcgen'ed new yp_xdr.c, yp_svc.c and yp_clnt.c files. The old ones were
rather grody.
- Changed certain function names (prefended a _ to them) to avoid conflicts
with certain functions lurking within libc. One major problem here is
that ypxfr needs to bind to a YP master in order to work correctly,
but it can't use the _yp_bind function inside libc because that
function only lets you bind to a domain, not a specific host. Lots
of head scratching here.
- Converted from GDBM to DB at gunpoint.
- Removed lots of really nasty looking DEBUG code to try to reduce clutter.
- Incorporated some of the library code supplied with yps-0.21 on which
ypxfr was dependent.
This program still needs to be cleaned up just as a matter of principle:
I get all icky just looking at it sometimes.
This is a ported/modified version of yppasswd from the NYS yppasswd-0.5
package. This package has code in it from both Olaf Kirch and Theo
de Raadt. There are GPL references and BSD-style copyright all over the
place... hopefully I won't get flamed into oblivion for commiting this.
This program has been modified from the original in the following ways:
- Changed the ALLOW_CHFN and ALLOW_CHSH compile-time options into
run-time options.
- Demolished the password update functions and replaced them with
routines to handle FreeBSD-style passwordd databases. It is expected
that a seperate master.passwd file will be maintained for use with
the NIS maps. yppasswd will have to be told where it is:
% yppasswdd -m /var/yp/master.passwd
A /var/yp/passwd file will be generated from /var/yp/master.passwd by
/var/yp/Makefile. When yppasswdd has finished modifying the master.passwd
file, it will invoke /usr/libexec/yppwupdate, which is a script that
will run /var/yp/Makefile to generate new maps and push them.
Note that there are copies if pw_util.c and pw_copy.c here. This is
deliberate: they are *not* identical to the originals. Very similar, yes,
but not identical. *sigh*
This is a hacked-up port of the ypserv-0.11 server from the NYS project
written by Peter Eriksson.
The original package included some map creating and dumping tools and
was based on GDBM. This version has been modified in the following
ways:
- GDBM replaced with DB and many weird hacks made to the read_database()
function because of this.
- implimented the ypxfr service (using ypxfr from the yps-0.21 package,
aso from the NYS project)
- added code to check the TCP port from which NIS requests originate:
the server will refuse to serve the master.passwd.{byname|byuid} maps
if the request doesn't come from a privileged port. Normally, only the
superuser can issue such a request. Requests for the passwd.{bynam|byuid}
maps aren't affected. There will be a small change made to getpwent.c
in libc to complement this.
- added code to do DNS lookups via actual resolver queries instead of
relying on gethostbyname() and friends. The author noted in the original
documentation that a loop condition could arise where the server would
query itself for hostsname lookups. Using direct DNS lookups prevents
this from happening.
- added code to properly fork() the server into the background unless
invoked with the -debug flag.
- Added combined syslog/perror function.
- fixed a few bugs (which were probably introduced by all the other
changes)
- Created a bmake Makefile.
Note that this package can be linked against the tcp_wrapper package
to provide address-based authentication, but this isn't done by default
since the tcp_wrapper package isn't part of FreeBSD.
This program is used for both generating and dumping NIS maps. It's very
similar to the 'makedbm' command in SunOS. This program was ported from
the yps-0.21 package. It's close to the original except for the GDBM to
DB conversions. This was simple compared to the other YP components.
the version installed from /usr/share. It's hard to eliminate old versions
- few Makefiles have `uninstall' targets and sup/ctm tends to blow away
old Makefiles.
This Makefile needs more work. Stuff is built at install time...
Don't initialize CLEANFILES here. Many FONTFILES are sources and required
special clean rules to avoid cleaning.
Makefile.tty:
Initialize CLEANFILES. All tty FONTFILES are objects.
misfeature caused troubles when a program attempted to access a shlib
where one with a higher minor number has been hashed. Ldconfig does
only include the highest-numbered shlib anyway, so this is in no way a
limitation of generality.
Caution: after installing the new programs, your /var/run/ld.so.hints
needs to be rebuiult; run ldconfig again as it's done from /etc/rc.
perl setuid scripts don't work in 2.1-current for the same reason they were
not working in 1.1.5.1.
Perl 5 has the same "problem" of course.
We have almost POSIX saved uids but we must undefine the following symbols
in order to get setuid perl scripts :
Submitted by: roberto@blaise.ibp.fr (Ollivier Robert)
This might be useful for debugging applications that use a special LDT.
However, printing of all segment registers is currently broken.
Don't print "last exception: " before the FPU opcode and pc, etc. The
opcode and pc, etc., are for the last FPU _instruction_.
Pass the saved exception status word to print_387_status() so that the
exception(s) that caused or will cause a trap can be seen. The kernel
has supported this since 1.1 or before. The kernel still clobbers the
tag word if a trap occurs.
Remove unused null function clear_regs().
cvs is not being used effectively for gdb. Our old changes get clobbered
and our new changes are mixed with "vendor" changes in the same updates
so they will be difficult to untangle for the next release of gdb. The
revision logs get spammed for each release of gdb.
the wild, slippery orgy commence!
Gary Jennejohn, too studly for his own good, has finally come through with
the new, improved gdb 4.13. This gdb features:
o kgdb support - if this works (and I urge folks to test it), we can
finally purge the old and hateful version of kgdb from our source
tree.
o attach/detach support. See comments in README.FreeBSD for more
details.
o Well, it's newer. Our previous version was 4.11.
Comments and flames to gj, of course! :-)
Thanks, Gary. Much appreciated. The previous state of gdb/kgdb has been a
thorn in all of our sides for some time..
Submitted by: gj
warning handling and allows for link-time warnings with a modified
version of gas.
Note: Not all of the newer bits were updated such as some of the non-x86
machine-dependant code is relevant to FreeBSD right now.
Obtained from: NetBSD
Change a round to a truncate. Problem reported from Christoph Kukulies:
9.8 2 / p did an IOT trap.
There is one remaining problem.: 9.8 2 % p shows on other machines 1.8
but does here in the moment 1.
in getting mirror-2.3 to work with FreeBSD, i found that timelocal.pl has
a bug. a patch is included below. this needs to be applied to both
src/gnu/usr.bin/perl/lib/timelocal.pl and
src/usr.sbin/xntpd/scripts/monitoring/timelocal.pl
Submitted by: jmb
already C++ safe, or C++ header files.
This fixes the problem with parse errors in header files when compiling C++
files.
Recompiling libg++ also solves the undefined synbols problem.
Notice that the libgcc DOESN'T change number, because there are no
changes.
Also now the gnu2bmake stuff is synchronized again.
I commit this so that others can test too.
You might want to postpone any "make worlds" until tomorrow, to
avoid any problems I didn't see in the first pass.
Thanks to Bruce for rounding up our changes to gcc.
more like binaries. This is hard to do using a general rules because
the natural `.sh:' rule has a null suffix and null suffixes are broken.
(With 1.1.5's make they sometimes work and sometimes cause core dumps.
2.0's make has a botched fixed and they never work.)
profiling and wchar_t. Profiled libraries will shrink.
tm.h:
Our wchar_t is int, not unsigned short.
Always link statically if profiling.
Define all the SPECs together.
final.c, tm.h:
Don't emit unused profiling code and data.
aux-output.c:
Always preserve the PIC register if profiling.
aux-output.c, tm.h:
Implement FUNCTION_PROFILER_EPILOGUE (currently not used).
New:
tm.h:
Set the target defaults in the correct way.
When we get an EN8 response while we're already sending the file using
the i protocol, this can happen:
In send.c, flocal_send_await_reply() is called. This function calls
flocal_send_fail() to process the aborted transfer. After this, we run
into the branch that calls ffileseekend() to force the end of the
actual transfer.
Now flocal_send_fail() frees qtrans, but qtrans is still used later!
I propose to fix this by moving the usfree_send(qtrans) out of
flocal_send_fail(), as in the patch I append to this mail.
...
I have found a race condition in the uucp 1.05 code. The typical result
is that the connections mysteriously fails with "conversation failed",
even while all files were transmitted. This is the problem:
At least for the i protocol, the code to send a packet can receive and
process packets after sending.
In several places in the code, we send a command and then prepare to
receive an answer.
Now the answer might already arrive during the call that sends the
command while we aren't ready to process it.
The general solution is IMHO first to do all preparations and only as a
last step to send out the command.
Reviewed by: John Dyson
Submitted by: Johannes Stille
I know that many of these entries are bogus and need to be revisited,
but let's get the tree working again for now and then do a pass through
looking at all the __FreeBSD__ entries, shall we?
GCC-2.6.1 COMES TO FREEBSD-current
----------------------------------
Everybody needs to 'make world'.
Oakland, Nov 2nd 1994. In a surprise move this sunny afternoon, the release-
engineer for the slightly delayed FreeBSD-2.0, Poul-Henning Kamp (28),
decided to pull in the new version 2.6.1 of the GNU C-compiler.
The new version of the compiler was release today at noon, and hardly 9
hours later it was committed into the FreeBSD-current source-repository.
"It's is simply because we have had too much trouble with the version 2.6.0
of the compiler" Poul-Henning told the FreeBSD-Gazette, "we took a gamble
when we decided to use that as our compiler for the 2.0 release, but it
seems to pay of in the end now" he concludes.
The move has not been discussed on the "core" list at all, and will come as
a surprise for most Poul-Hennings peers. "I have only discussed it with
Jordan [J. K. Hubbard, the FreeBSD's resident humourist], and we agreed that
we needed to do it, so ... I did it!". After a breath he added with a grin:
"My email will probably get an all time 'disk-full' now!".
This will bring quite a flag-day to the FreeBSD developers, the patch-file
is almost 1.4 Megabyte, and they will have to run "make world" to get
entirely -current again. "Too bad, but we just had to do this." Was
the only comment from Poul-Henning to these problems.
When asked how this move would impact the 2.0 release-date, Poul-Hennings
face grew dark, he mumbled some very Danish words while he moved his fingers
in strange geometrical patterns. Immediately something ecclipsed the Sun, a
minor tremor shook the buildings, and the temperature fell significantly.
We decided not to pursure the question.
-----------
JOB-SECTION
-----------
Are you a dedicated GCC-hacker ?
We BADLY need somebody to look at the 'freebsd' OS in gcc, sanitize it and
carry the patches back to the GNU people. In particular, we need to get
out of the "i386-only" spot we are in now. I have the stuff to take a
gnu-dist into bmake-form, and will do that part.
Please apply to phk@freebsd.org
No Novice Need Apply.
Perl's scripts are still trying to execute perl out of /usr/gnu/bin/perl.
The hack Larry was using for h2ph.1 doesn't work with the new macros, so
make it a real man page.
Also, we weren't building the .ph files, add them as an afterinstall rule
in the x2p subdirectory.
and /usr/share/perl (library). The latter was chosen as analogous to other
directories already present in /usr/share, like /usr/share/groff_font and
(particularly) /usr/share/mk.
no longer link against the whole library, since they don't require much
from it, but just compile the few small modules they actually need static.
This should save a measurable amount of space; compare:
-r-xr-xr-x 1 bin bin 155648 Sep 18 18:00 cc1*
-r-xr-xr-x 1 root bin 1048576 Sep 18 17:33 cc1.noshae*
Of course, the library takes up a bit of space, but when you add in the
savings from the C++ compiler, you more than make up the difference:
-r--r--r-- 1 bin bin 1157344 Sep 18 18:27 /usr/lib/libcc_int.so.26.0
-r-xr-xr-x 1 bin bin 491520 Sep 18 18:27 /usr/libexec/cc1plus*
completely when ldconfig unlinks it. If init is shared, then the
referenced unlinked copy of the hints file created by running
ldconfig in /etc/rc caused the file system to be unclean after
every reboot.
You need to fix the libio/_G_config.h file around lines 42-44. After
that everything should be OK. You should have seen many warning error
messages about this file. There are missing "short" "char" keywords
the file.
Michael:
Apply the following patch
rgrimes:
The patch to include/_G_config.h is highly questionable and has been
marked as such.
Reviewed by: rgrimes
Submitted by: L Jonas Olsson <ljo@ljo-slip.DIALIN.CWRU.Edu>
Submitted by: Michael Reifenberger <root@rz-wb.fh-sw.de>
we're not ready for yet. gcc and all profiled libraries will need
to be recompiled. I suspect that the dependencies aren't complete
enough to do this automatically.
automagically. -lfoo has to be right to work, but ${LIBFO0} is too
easy to forget or misspell; nothing checks it and it should be
different for shared libraries.
Several files in uucp/libunix included <sys/dir.h> and defined dirent
as direct, but <sys/dir.h> defines direct as dirent. This macro
recursion is not allowed by cpp in traditional mode. The 2.0 mkdep
uses cpp in traditional mode (another bug) so cpp prints a error
message and exits with a nonzero status. The error status leaks out
of the pipe (another bug) so mkdep "succeeds". It may even succeed.
being created and config.h depended on Makefile.inc being in the wrong
directory so real dependencies were not being checked. The "depend"
target was not created either so "make depend" always found work to do.
Subject: man returns 1
In 1.1.5.1, man returns a status of 1 if the lookup succeeds and 0 if
it fails. Here is a patch for what I believe is a simple oversight:
Submitted by: jkh
FreeBSD system sources installs itself as the standard cc and c++. I've
fixed c++ to call cc instead of gcc and removed all the symlinks
that get created to g** version of the binaries. This means that
you can install a second version of gcc that does use the g prefix
alongside the "system" version of gcc. The only conflict is libgcc
but since we install it as libcc.so.26 and nothing else is likely
to that should be ok.
Reviewed by:
Submitted by:
saying that 4.4 uses f_size in statfs, yet we're using b_size. Anyway,
I've configured things to match our current environment.
Reviewed by:
Submitted by:
moved to the logical name.
libg++-2.6.patch:
FOO_MAX in limits.h isn't in hex under 2.0 (for the time being ??)
libg++-2.6.tcl:
it works on my 1.1.5.1 system. I cannot test it here until gcc-2.6.0
is installed.
gnu2bmake.tcl:
enhanced various ways.
README:
says "don't hack the bmaked sources"
gcc-2.6.0.tcl:
added the gen-* and md files to the bmaked sources. Not used by
makefiles. Do I need to add other files Garrett ?
I know that I said earlier that this should be unconditional behaviour,
but I thought about it a little more and concluded that the principle of least
surprise dictates that I make it an option.
handling of errors through the standard err() and warn()
more fixes for Geoff Rehmet's NULL pointer bug.
fixes NULL pointer bugs when linking mono and nested X servers.
supports a `-nostdlib' option.
accept object files without a symbol table
don't attempt dynamic linking when `-A' is given
a few variable names have chaged (desc -> fd), and the formatting has
changed which should make it much easier to track his sources.
I tested 'make world' for /usr/src and X twice with these changes.
Paul Kranenburg's description:
ld is in error here, assuming that symbols with N_EXT set always have an
entry in the (global) symbol table: this is not the case for C++ generated
constructor/destructor symbols. I can reproduce your failure by fudging
a "multiply defined" constructor symbol by hand. Checking for `g == NULL'
seems to be a ok as a fence for now.
So:
for now, in do_file_warnings() we check if g == NULL, before trying to generate
any warning messages. This prevents a NULL pointer dereference.
called with -K-Keoptions -Kioptions. This should fix the problem with
$Id$ still getting changed.
I am also install both ncvs and ocvs on freefall with this change as
ocvs still had the bug with -I \! which I fixed but did not reinstall.
This is a greatly pared down version of the full gdb-4.12, all the
config stuff has been removed and the supporting libraries have
been stripped to a minimum. This is a 1.1.5 only port, I'll do a
more complete port for 2.0 which will have all the config stuff
and will install the gnu support libraries as system libraries like
we do for readline.
There wasn't much point for 1.1.5 since only gdb would use them so I
went for saving space instead. For 2.0 I'll config all the
other gnu tools to use them as well.
The following two patches should allow the documented "-I !" option to
skip the ignore lists and import/update all files in the directory.
I need it to force certain files to import (ie, csh.a which is part of
the csh documentation).
NOT touched by cvs. Only takes effect if -DFREEBSD_DEVELOPER, and installs
as ncvs when this is defined. You must also have the changes to rcs
for this to work.
Really we don't need copy of this library into each program
(gdb f.e.)
P.S. it is much cleaner port than /usr/ports version and based
on /usr/ports version. /usr/ports version will be removed.
Message-Id: <199404171501.LAA01245@stark.UUCP>
To: freebsd-hackers@freefall.cdrom.com
Subject: Make world and UUCP
Sender: freebsd-hackers-owner@freefall.cdrom.com
Precedence: bulk
It would be much more convenient if "make world" didn't clobber my
UUCP configuration files in /etc/uucp. Perhaps the easiest fix would
be to change the names of the sample configuration files:
config -> config.sample
ports -> ports.sample
...
Message-Id: <199404241154.OAA00260@tigger.cirion.fi>
Subject: uucp error
Index: gun/libexec/uucp FreeBSD-1.1-GAMMA
Apparently-To: FreeBSD-bugfiler@freefall.cdrom.com
Sender: freebsd-bugs-owner@freefall.cdrom.com
Precedence: bulk
Description:
When calling remote uucp site dialing succeeds, but standard
login chat fails. Debug file shows that uucico does not see
any characters send from remote.
Repeat-By:
use sio drivers, 16450 base serial and standard taylor configuration
provided with the GAMMA release. Run uucico and observer.
Fix:
define HAVE_BSD_TTY instead of HAVE_POSIX_TTY in common_source/policy.h
and recompile.
to public. These functions are also used in /usr/include/link.h,
so it looks, like they shouldn't be private.
I will ask Paul about that, if this is correct.
now, DO_COMPRESS. This controls whether or not catpages are compressed or
not (on by default, since little else uses the catpages and those few things
that do can always configure in a `zmore' in place of more or something, and
saving space is more important, IMHO).
Uncompression support is now on by default since that's the only way to support
mixed-mode environments. If you don't like it, just don't compress your man
pages and it won't be used! :-). Supports gzip. You can also compress
the man pages themselves (or gzip them) now and it will work.
late stage due to the fact that link.h was copyright Sun Microsystems.
This version of ld sync's us up with NetBSD's ld and supports compatablily
with NetBSD's -[zZ] flags (which we had reversed). Compiling with this
new ld will give you RRS warnings for libraries which do not contain .type
infomation - these wsarnings are harmless and will go away as soon as you
recompile your libraries (cd /usr/src; make libraries).
Message-Id: <199402111717.SAA05326@strider.st.dsi.unimi.it>
Subject: Re: cpio bug ?
Quoting from J Wunsch:
> | From the man page:
> |
> | -l, --link
> | Link files instead of copying them, when possible.
>
> (Usable only with the -p option.)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
This is not in cpio man page. Someone please add it.
patch file had absolute pathnames in it and went and patched /usr/src directly
(first time this has happened, I'll watch for it now), so I thought I might
as well just commit it and clean up the .orig files and whatnot left behind.
Sorry - this is the first time this has happened to me. Very confusing.
These files aren't really necessary to us, but should be kept in sync anyway.
patch file had absolute pathnames in it and went and patched /usr/src directly
(first time this has happened, I'll watch for it now), so I thought I might
as well just commit it and clean up the .orig files and whatnot left behind.
Sorry - this is the first time this has happened to me. Very confusing.
You write that
LDFLAGS+= -Xlinker -Bstatic
no more needed, but you have
CFLAGS += -static -I$(.CURDIR) -I$(.CURDIR)/$(MACHINE)
This -static doesn't make any sense in your version,
because it not passed to linker's state (LDFLAGS),
so we have SHARED /usr/bin/ld in this case.
(Older Makefile produce non-shared ld).
I suppose, that -static in CFLAGS was introduced to
make non-shared ld, so I restore previous LDFLAGS
to have non-shared ld. If we want to have shared ld
we need to remove -static from CFLAGS too, not only LDFLAGS,
but this need special issue and corresponding
commit log. Your current version hang into intermediate
state (beetween two sides), so I move it to one side.
Second, I restore NOPIC dependance again from older Makefile:
.if !defined(NOPIC)
SUBDIR+= rtld
.endif
We don't need ld.so, if NOPIC
P.S. I don't see any purpose to commit new makefile, old version
is better.
commented out in #ifdef DEBUG
As Paul told me, it is only informational, nothing more.
I don't want several screens of this information
on each linking (netstat f.e.)
On any other system -z means "standard" ZMAGIC format and is the
default. Therefore I've made -z be standard ZMAGIC and -Z be ZMAGIC
stored in the new a_midmag format.
The "standard" ZMAGIC format is now the default as well.
lib.c:
Pull in archives containing definitions needed by shared objects.
warnings.c:
Less spurious "undefined symbol" msgs for shared library defined
symbols.
ld.c:
Do a better job of recognising data in text segments, eg. `const char []'.
shlib.c,ld/rtld/{Makefile rtld.c}
Use strsep() in stead of strtok() and restore colons in eg. env. vars.
Subject: man pages for diff et al.
I finally got tired of not having man pages for diff and friends, so I
edited the appropriate sections of the texinfo manual into man format.
to output the same QMAGIC format as BSDI does. This is triggered by
a new '-q' flag ('-Xlinker -q' in gcc). The default can be changed from
ZMAGIC to QMAGIC by defining DEFAULT_MAGIC=QMAGIC when building ld.
if any are referenced.
libc's malloc.o contains malloc(), free() and realloc(). And libc
refers to realloc which will cause the linker to pull in redundant
malloc() and free() definitions from malloc.o if it isn't already
linked in from GNU malloc. Rich
Date: Fri, 24 Sep 1993 10:19:20 -0700
Fixed bug that was reported (with patch) on gnu.utils.bug.
Immediate operands of the pushw instruction were being output as 32
bits, rather than the 16 bits they were supposed to be.
ld won't generate output if there are two .o files with the same
name. It thinks they are multiply defined external references. This
patch explictly allows multiple /file names/ with the same value.
This can happen if you do a two stage link or if you link in file
names that are identical to files in libc.
Otherwise ld.c exits with a status=1 and non error message. Rich
the system default compiler. The move of gcc1 in the cvs repository will
be done specially to retain all history. You will only see a commit
message for it's removal, the addition of it to ports will be done, you
just won't see the commit.
copying the same files to multiple directories. This should make
things easier when it comes time to update to a newer version of
diffutils.
With this checkin, this brings the netbsd and freebsd diff dists
into sync.
centralize obj/noobj conditional in Makefile.inc
use DPADD
don't compile profiling library
install rcsfreeze correctly
After this commit, the freebsd and netbsd rcs distribution will be in sync.
The enclosed diffs implement printing of the floating point state for
the version of gdb-3.5 in 386BSD-0.0. I don't have gdb for 386BSD-0.1
but I've been told that it is also missing this feature.
The changes are small. Code to read the FP state from the kernel was
#ifdef'ed out, but it essentially works. Code to change the FP regs
is still #ifdef'ed out. It is close to working too. Printing of the
FP regs was broken because hard reg numbers were confused with stack
offsets.
4. The emulator does not handle FP errors right, and it does not
communicate the emulated FP state to the rest of the kernel, so
"info float" shows garbage.