Commit Graph

995 Commits

Author SHA1 Message Date
John Polstra
d1c02bccdc Update the asm statements to use the "+" modifier instead of
matching constraints where appropriate.  This makes the dynamic
linker buildable at -O0 again.

Thanks to Bruce Evans for identifying the cause of the build
problem.

MFC after:	1 week
2002-06-24 23:19:18 +00:00
Jake Burkholder
cf85da5c68 Add needed include of mman.h to fix sparc64 buildworld. 2002-06-24 05:23:46 +00:00
Matthew Dillon
b6801e6b54 The last bits of the alloca -> mmap fix. IA64 and SPARC64 (current only).
Untested (testing request went unanswered), but sparc64 is not expected to
cause problems.  IA64 is not expected to cause problems but the patch was
slightly more complex so the possibility exists.

Approved by:    jdp
2002-06-22 18:36:21 +00:00
Matthew Dillon
eebf98659e This is the same alloca() fix as was committed for i386. David O'Brien
tested the patch on -stable.

Reviewed by:	obrien
Approved by:	jdp
MFC after:	3 days
2002-06-18 05:42:33 +00:00
John Polstra
5f8aa32e1b Dillon's recent commits to the dynamic linker without running them
by me first have given me a good excuse to drop my MAINTAINERship.

MFC after:	1 week
2002-06-10 21:51:16 +00:00
Matthew Dillon
b08440e568 Correct a bug in the last commit. The whole point of creating a 'done:'
goto target was so the cache could be freed.  So free the cache after
done: rather then before done: (!)

Submitted by:	Gavin Atkinson <gavin@ury.york.ac.uk>
2002-06-10 21:15:50 +00:00
Matthew Dillon
b603db3019 In tracking down an installation seg fault with then openoffice port
Martin Blapp determined that the elf dynamic loader was at fault.  In
particular, the loader uses alloca() to allocate a symbol cache on the
stack.  Normally this would work just fine, but if the loader is called
from a threaded program and the object being loaded is fairly large the
alloca() can blow away the thread stack and effect other nearby thread
stacks as well.  My testing showed that the symbol cache can be as large
as 250KBytes during the openoffice port build and install sequence.  Martin
was able to work around the problem by disabling the symbol cache
(cache = NULL;).  However, this solution is not adequate for commit because
it can cause an enormous cpu burden for applications which do a lot of
dynamic loading (e.g. like konqueror).

The solution is to use anonymous mmap() to temporarily allocate space to
hold the symbol cache.  In testing I found that replacing the alloca()
with mmap() has no observable degredation in performance.

It should be noted that this bug does not necessarily cause an immediate
crash but can instead result in long term corruption and instability in
applications that load modules from threads.  The bug is almost certainly
responsible for some of the instabilities found in konqueror, for example,
and possibly netscape too.

Sleuthing work by: Martin Blapp <mb@imp.ch>
X-MFC after:	Before or after the 4.6 release depending on the release engineers
2002-06-10 18:52:31 +00:00
Garrett Wollman
f24b479854 Add used include of <string.h>.
Delete unused include of <strings.h>.
2002-05-30 21:35:39 +00:00
Alfred Perlstein
3613e24cdc Assume __STDC__, remove non-__STDC__ code. 2002-05-28 18:57:20 +00:00
Alfred Perlstein
f74779bdab Assume __STDC__, remove non-__STDC__ code. Remove private __P. 2002-05-28 18:39:53 +00:00
Alfred Perlstein
91180daf65 Assume __STDC__, remove non-__STDC__ code.
Remove private __P.
2002-05-28 18:37:43 +00:00
Alfred Perlstein
f19d047aec This code defined a private __P, nuke it. 2002-05-28 18:36:43 +00:00
Alfred Perlstein
5ed136e814 Assume __STDC__, remove non-__STDC__ code.
Reviewed by: md5
2002-05-28 18:31:41 +00:00
Juli Mallett
2061e87111 Don't risk catching a signal while handling a signal for a dying child, as we
can then end up not properly clearing wtmp/utmp entries.

PR:		bin/37934
Submitted by:	Sandeep Kumar <skumar@juniper.net>
Reviewed by:	markm
MFC after:	2 weeks
2002-05-27 08:10:24 +00:00
Marcel Moolenaar
5c8e25383a Include machine/ia64_cpu.h because we use ia64_mf().
Submitted by: ru
2002-05-21 00:04:08 +00:00
Brian Somers
629d0dd5e0 Understand the new NGM_PPPOE_SESSIONID message and set SESSIONID
in the environment to it's value.

Approved by:	archie (after a very cursory glance)
2002-05-14 12:33:40 +00:00
Ruslan Ermilov
cdcafd0335 Fixed CLEANFILES. 2002-05-13 15:21:51 +00:00
Dag-Erling Smørgrav
99b82bb76a Use <paths.h> rather than "pathnames.h", and fix a couple of whitespace nits.
Sponsored by:	DARPA, NAI Labs
2002-05-08 00:47:01 +00:00
Dag-Erling Smørgrav
57b7631cb8 PAMify.
Sponsored by:	DARPA, NAI Labs
2002-05-08 00:43:46 +00:00
Dag-Erling Smørgrav
d6551d89a2 Unbreak static build and remove usage() that isn't usage().
Reviewed by:	bde
2002-05-03 13:12:06 +00:00
Dag-Erling Smørgrav
7f5e4ed359 PAMify rexecd(8).
Sponsored by:	DARPA, NAI Labs
2002-05-02 05:06:32 +00:00
Dag-Erling Smørgrav
f249dbcc71 Spell void * as void * rather than caddr_t. This is complicated by the
fact that caddr_t is often misspelled as char *.

Sponsored by:	DARPA, NAI Labs
2002-04-28 15:18:50 +00:00
Marcel Moolenaar
2aba02382e Fix handling of weak references to undefined symbols on ia64:
o  Set st_shndx for sym_zero to SHN_UNDEF instead of SHN_ABS.
   This gives us something to reliably test against.
o  For weak references to undefined sysmbols (as indicated by
   having st_shndx equals SHN_UNDEF) in the context of OPDs,
   the address of the OPD is to be zero, not the address of
   the function it contains.
o  For weak references to undefined symbols in all other cases
   (only DIR64LSB at this time), the actual relocated value is
   to be zero, not the value prior to relocating.

Roughly speaking, weak references to undefined symbols are no-ops.

Tested on: i386, ia64
2002-04-27 05:32:51 +00:00
Marcel Moolenaar
c7e3bd1ce6 Now that local symbols aren't looked up with the symbol hash table,
binding works for local symbols. Remove the workaround...
2002-04-27 02:53:31 +00:00
Marcel Moolenaar
9d4f27148f Don't do symbol lookups for local symbols. The symbol index in the
relocation identifies the symbol to which we need to bind. This
solves a problem seen on ia64 where the symbol hash table does not
contain local symbols and thus resulted in unresolved symbols.

Tested on: alpha, i386, ia64
2002-04-27 02:48:29 +00:00
Hajimu UMEMOTO
739c041c5d Correct indent. 2002-04-26 12:27:55 +00:00
Dag-Erling Smørgrav
d397408818 Usage style sweep: spell "usage" with a small 'u'.
Also change one case of blatant __progname abuse (several more remain)
This commit does not touch anything in src/{contrib,crypto,gnu}/.
2002-04-22 13:44:47 +00:00
Hajimu UMEMOTO
b2b1845212 When opieverify() is fail, fallback to try unix password.
Tested by:	kuriyama
2002-04-16 10:54:30 +00:00
Hajimu UMEMOTO
859be0911a Add an IPv6 support.
I dunno if there is an IPv6 supported rexec client.  So, it was
tested that this change doesn't break an IPv4.

Tested by:	kuriyama (IPv4 only)
2002-04-16 10:15:30 +00:00
Jun Kuriyama
0d652d42ca Make this compilable without -DOPIE.
Hint by:	ume
2002-04-16 07:53:42 +00:00
Hajimu UMEMOTO
4dac6235cf IPv6 support for tftp/tftpd.
Obtained from:	KAME
MFC after:	2 weeks
2002-04-11 17:14:22 +00:00
Doug Ambrisko
ff93f08c06 Better handle the case with a network that drops packets by retrying
with a back off.  This was discovered when Luigi sent me code to
handle this for Etherboot.  The Etherboot patch worked okay but
FreeBSD's tftpd had trouble handling it and would fail to transfer
the file since it would abort on send and not retry.

Submitted by:	luigi
MFC after:	1 week
2002-04-09 19:13:43 +00:00
David E. O'Brien
d2c10ccbd8 Allow to compile with both GCC 2.95 and 3.1. 2002-04-08 21:22:58 +00:00
Peter Wemm
968253905e Fix a relocation bug in the ia64 ld.so. Weak function pointers in shared
objects were not being correctly set to zero.  Instead, the function
descriptor pointer was set to the load address of the .so object.  This
caused gcc generated binaries to segfault on exit when crtbegin.asm's
_fini code tested the __cxa_finalize() function pointer for zero.

This is a bit of a hack because of a problem nearby workaround for
find_symdef and its quirks (failures) for local symbols.  This still
needs to be fixed.
2002-04-07 04:16:35 +00:00
Dag-Erling Smørgrav
425dd8accb Fix warnings.
Sponsored by:	DARPA, NAI Labs
2002-04-06 19:08:02 +00:00
Jake Burkholder
2da08e795e Minor changes to make this work on sparc64.
Approved by:	jdp
Tested on:	alpha, i386, sparc64
2002-04-02 02:19:02 +00:00
Mike Barcroft
467a0b0647 Include <string.h> for some prototypes, rather than depending on
pollution from <strings.h>.
2002-04-01 21:13:17 +00:00
Warner Losh
58c804ff25 Add missing commas. At least I didn't miss a period. 2002-03-18 16:10:00 +00:00
Warner Losh
79723020c0 o MAXPATHLEN is the correct constant to use for path names, it includes
the NULL.
o use snprintf in preference to unchecked strcat in a couple of places that
  likely can't overflow.  Makes it easier to grep for strcpy :-)
2002-03-18 07:14:59 +00:00
Maxim Konovalov
7d0babda6d Teach REST how to restart a file transfer after 2^31 bytes: now yylex()
returns off_t in yylval.u.o. REST is the only user of yylval.u.o at the
moment.

NB: seems lukemftpd has the same bug.

PR:		misc/28629
Reviewed by:	ru
Approved by:	ru
MFC after:	1 month
2002-03-14 16:05:06 +00:00
Jake Burkholder
e4c9dc6770 rtld support for sparc64.
Largely obtained from:	netbsd
Submitted by:	jake, tmm
2002-03-13 02:40:39 +00:00
Maxim Konovalov
39e992262c Remove duplicated yacc nonterminals declarations, sort includes.
No functional changes from rev. 1.31.

Reviewed by:	ru
Approved by:	ru
MFC after:	1 week
2002-03-11 11:48:55 +00:00
Dag-Erling Smørgrav
c53d09b102 YA patch I forgot to commit last night. 2002-03-06 15:23:18 +00:00
David E. O'Brien
4d307e631d *sigh* while the last commit made GCC 3.1 happy, it upset GCC 2.95.
back out last commit to un-break world.
2002-03-01 17:30:01 +00:00
David E. O'Brien
6a0f754781 CPP v3.1 has different rules for processing #lines directives. This
sometimes causes fewer directories to be searched for includes.  Thus
we have to be more explicit in our search list.

Pointy at to:	GCC 3.1
2002-02-28 23:12:44 +00:00
Dag-Erling Smørgrav
e211585c77 When searching an object that was opened with RTLD_GLOBAL, search its DAG too.
PR:		bin/25059
Approved by:	jdp
MFC after:	3 weeks
2002-02-27 23:44:50 +00:00
David E. O'Brien
5c4ff40599 Add lukemftpd to the mix. 2002-02-27 18:37:21 +00:00
David E. O'Brien
eb07a1d9ff Build LukeM's ftpd. 2002-02-27 18:35:26 +00:00
David E. O'Brien
0c934a5eed Put the last added source file in proper order.
(and dcc the committer a dictionary)
2002-02-27 18:29:11 +00:00
Dag-Erling Smørgrav
60769b19cd Rewrite the part of the conversation function that allocates the reply array;
it was inelegant and neglected to check the return value from malloc(3).

Sponsored by:	DARPA, NAI Labs
2002-02-25 16:39:34 +00:00