Re: tcpdump(1) additions.

1999-06-30 Thread John Polstra

In article <[EMAIL PROTECTED]>,
Matthew Hunt  <[EMAIL PROTECTED]> wrote:
> 
> I think the point is that when root is running tcpdump on host A, a bad
> guy on host B can create a packet which makes tcpdump on A execute his
> code (as root, since that's who's running it).  This is not desirable.

I would say it is not _acceptable_.  The code shouldn't go into our
source tree until the known buffer overflow problems have been fixed.
It's just stupid to add buffer overflow problems to a program that is
always run as root.

John
-- 
  John Polstra   [EMAIL PROTECTED]
  John D. Polstra & Co., Inc.Seattle, Washington USA
  "Self-interest is the aphrodisiac of belief."   -- James V. DeLong


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message



Re: dlopen returns non NULL

1999-06-30 Thread John Polstra

In article <[EMAIL PROTECTED]>,
Max Khon  <[EMAIL PROTECTED]> wrote:
> 
> in the following code `dlopen' returns NULL
> on the first iteration (because g() is not defined) -- it's ok
> but on the second iteration `dlopen' returns "valid" dlh

ELF or a.out?  Which version of FreeBSD?

For a.out, it's a known bug and there is already an open PR on it.
I wouldn't be surprised if the bug existed in ELF too.

John
-- 
  John Polstra   [EMAIL PROTECTED]
  John D. Polstra & Co., Inc.Seattle, Washington USA
  "Self-interest is the aphrodisiac of belief."   -- James V. DeLong


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message



Re: dlopen returns non NULL

1999-06-30 Thread John Polstra

Max Khon wrote:

>> For a.out, it's a known bug and there is already an open PR on it.
>> I wouldn't be surprised if the bug existed in ELF too.
> 
> 3.2-STABLE built on 10 Jun, ELF

Thanks for the info.  Could you please do a send-pr on this bug, and
tell me the PR number?  Then I'll assign myself as the resposible
person.  Please be sure to state that it's the ELF dynamic linker.

If you're in a big hurry and would like to work on it yourself, the
relevant code is in "src/libexec/rtld-elf/rtld.c" in the function
dlopen() near the comment that says "XXX - Clean up properly after an
error." :-) The fix may be as simple as calling unref_object_dag()
from the failure cases there, but it will need careful checking.

Some additional changes may be needed in load_needed_objects() near
the comment that says "XXX - cleanup." :-)

Thanks,
John
---
  John Polstra   [EMAIL PROTECTED]
  John D. Polstra & Co., Inc.Seattle, Washington USA
  "No matter how cynical I get, I just can't keep up."-- Nora Ephron



To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message



Pictures from USENIX

1999-07-03 Thread John Polstra

I put a handful of pictures from this year's USENIX conference at
<http://www.freebsd.org/~jdp/usenix1999/>.

John
---
  John Polstra   [EMAIL PROTECTED]
  John D. Polstra & Co., Inc.Seattle, Washington USA
  "No matter how cynical I get, I just can't keep up."-- Nora Ephron



To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message



Re: Login.conf (Whose problem is this) ?

1999-07-03 Thread John Polstra

In article <[EMAIL PROTECTED]>,
Gustavo V G C Rios  <[EMAIL PROTECTED]> wrote:
> i am trying to get a login classes for my users, so i decided to edit
> /etc/login.conf.
> 
> Among other, i have yma classes this way:
> 
> 
> shell:\
> :maxproc=5:\
> :tc=auth-default:
> 
> 
> Looking for auth-default, i saw the following:
> 
> ## Authentication methods
> ## Note that these are disabled by default, and libutil must
> ## be rebuilt with LOGIN_CAP_AUTH defined to use them.

This stuff is old and obsolete.  LOGIN_CAP_AUTH isn't supported any
more.  (It never was fully supported, actually.)  Don't use it.

> That's happened cause i turn on LOGIN_CAP_AUTH!
> My doubt is: Shouldn't it be -DLOGIN_CAP_AUTH?

Yes, of course.  That's what "with LOGIN_CAP_AUTH defined" means.
But it's broken, so don't bother.

If you want login classes all you need to do is "vipw" and insert
the correct class in the class field.  (See passwd(5) for details.)
If you want to create a new class, just edit it into your login.conf
file and then run cap_mkdb as instructed in the comment at the top
of that file.

John
-- 
  John Polstra   [EMAIL PROTECTED]
  John D. Polstra & Co., Inc.Seattle, Washington USA
  "No matter how cynical I get, I just can't keep up."-- Nora Ephron


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message



Re: Login.conf (Whose problem is this) ?

1999-07-05 Thread John Polstra

Sheldon Hearn wrote:
>> This stuff is old and obsolete.  LOGIN_CAP_AUTH isn't supported any
>> more.  (It never was fully supported, actually.)  Don't use it.
> 
> There's an open PR for this, PR 10115. I assume all that's required is
> that we smack the outdated comments from login.conf?

Yes, I think so.

John
---
  John Polstra   [EMAIL PROTECTED]
  John D. Polstra & Co., Inc.Seattle, Washington USA
  "No matter how cynical I get, I just can't keep up."-- Nora Ephron



To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message



Re: poll() vs select()

1999-07-06 Thread John Polstra

In article <[EMAIL PROTECTED]>,
Archie Cobbs  <[EMAIL PROTECTED]> wrote:
> 
> A new, faster event notification system would be great. But don't forget
> to include *all* events, not just file descriptor readability/writability.

Yes!  Yes!  Yes!  (I agree.)

John
-- 
  John Polstra   [EMAIL PROTECTED]
  John D. Polstra & Co., Inc.Seattle, Washington USA
  "No matter how cynical I get, I just can't keep up."-- Nora Ephron


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message



Re: poll() vs select()

1999-07-06 Thread John Polstra

In article <[EMAIL PROTECTED]>,
Brian F. Feldman <[EMAIL PROTECTED]> wrote:
> On Sun, 4 Jul 1999, Archie Cobbs wrote:
> 
> > A new, faster event notification system would be great. But don't forget
> > to include *all* events, not just file descriptor readability/writability.
> > I.e., signal delivery, child exit notification, maybe even support for
> > an arbitrary number of (independent) timers. And make the events independent
> > from each other -- to avoid problems like when an application completely
> > hangs for 90 seconds when it calls gethostbyname().
> 
> An async thread to do hostname lookups would be great! Wouldn't be too
> hard in libc_r, would it?

The application itself has to get involved if it wants to do async
name lookups, or async anything else, for that matter.  Suppose you
do have an async thread to do hostname lookups as you propose.  What
is the application going to do while that thread is waiting for the
lookup to complete?  It depends on the application, and thus it has
to be coded into the application.  Maybe there's nothing useful the
application could do until the lookup returns.

I've been told that it works fine to use libc_r and put the name
lookups into a separate thread.  But to take advantage of it, the
application has to have something useful it wants to do (and can do)
in the meantime.

John
-- 
  John Polstra   [EMAIL PROTECTED]
  John D. Polstra & Co., Inc.Seattle, Washington USA
  "No matter how cynical I get, I just can't keep up."-- Nora Ephron


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message



Re: Dynamic linking

1999-07-06 Thread John Polstra

In article <[EMAIL PROTECTED]>,
Andrew Iltchenko  <[EMAIL PROTECTED]> wrote:
> Hi everyone!
> 
> Is there a way of making dlopen return an error from the shared object's
> _init function?

No.  The _init function by definition is "void _init(void)", and so
it cannot return a value.

John
-- 
  John Polstra   [EMAIL PROTECTED]
  John D. Polstra & Co., Inc.Seattle, Washington USA
  "No matter how cynical I get, I just can't keep up."-- Nora Ephron


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message



Re: mmap question

1999-07-06 Thread John Polstra

In article <000101bec73c$e20e3660$[EMAIL PROTECTED]>,
Kelly Yancey <[EMAIL PROTECTED]> wrote:
> 
>   Also, in case it hasn't been notice already (I'm running -stable from May
> 18th), the mmap(2) manpage has a typo: it has "#include "

So what's the typo, exactly?

John
-- 
  John Polstra   [EMAIL PROTECTED]
  John D. Polstra & Co., Inc.Seattle, Washington USA
  "No matter how cynical I get, I just can't keep up."-- Nora Ephron


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message



Re: poll() vs select()

1999-07-06 Thread John Polstra

Brian F. Feldman wrote:
> On Tue, 6 Jul 1999, John Polstra wrote:
> 
>> In article <[EMAIL PROTECTED]>,
>> 
>> The application itself has to get involved if it wants to do async
>> name lookups, or async anything else, for that matter.  Suppose you
>> do have an async thread to do hostname lookups as you propose.  What
>> is the application going to do while that thread is waiting for the
>> lookup to complete?  It depends on the application, and thus it has
>> to be coded into the application.  Maybe there's nothing useful the
>> application could do until the lookup returns.
>> 
>> I've been told that it works fine to use libc_r and put the name
>> lookups into a separate thread.  But to take advantage of it, the
>> application has to have something useful it wants to do (and can do)
>> in the meantime.
> 
> It would let the other threads run more while the lookup is occurring.
> Wouldn't that be the most natural expectation of it? Or would this
> be too hard without kernel-assisted threading?

What I'm saying is, we already have that in multi-threaded
applications.  The system can't just provide it automatically to
single-threaded applications; they wouldn't know how to take advantage
of it.  In other words:

* Multi-threaded applications already have it.
* Single-threaded applications can't use it.

John
---
  John Polstra   [EMAIL PROTECTED]
  John D. Polstra & Co., Inc.Seattle, Washington USA
  "No matter how cynical I get, I just can't keep up."-- Nora Ephron



To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message



Re: a BSD identd

1999-07-11 Thread John Polstra

In article <[EMAIL PROTECTED]>,
Warner Losh  <[EMAIL PROTECTED]> wrote:
> 
> Some ftpd and sendmail servers make the queries.  When I have my fake
> identd in place, they go much faster... :-)

Are you sure?  If you simply don't run an identd, the queries will get
an instant connection refused error.  That's even faster than sending
back a bogus response.

The only way a long timeout can occur is if you have a filter rule
installed that drops the incoming packets without responding to them.
You can block the incoming packets but still avoid the timeout with a
filter rule that sends back a reset:

add reset tcp from any to any auth setup in via etha16

John
-- 
  John Polstra   [EMAIL PROTECTED]
  John D. Polstra & Co., Inc.Seattle, Washington USA
  "No matter how cynical I get, I just can't keep up."-- Nora Ephron


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message



Re: a BSD identd

1999-07-11 Thread John Polstra

Doug wrote:
> John Polstra wrote:
>> 
>> Are you sure?  If you simply don't run an identd, the queries will
>> get an instant connection refused error.  That's even faster than
>> sending back a bogus response.
>
>   Many daemons that request ident, and almost all IRC daemons
> that I'm aware of don't take "NO" for an answer. They sit waiting
> for a valid response, and timeout after X seconds, where X is c. 30
> seconds.

Really??  Even though their connect() call failed?  Ick!  I know
sendmail doesn't behave that way.  I'll take your word about the IRC
daemons -- I don't know anything about them.

> Whether this behavior is good or not begs the question,

Agreed.

John
---
  John Polstra   [EMAIL PROTECTED]
  John D. Polstra & Co., Inc.Seattle, Washington USA
  "No matter how cynical I get, I just can't keep up."-- Nora Ephron



To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message



Re: Why 'dd' does not seek over 'char' devs (specifically raw disk

1999-07-13 Thread John Polstra

In article <[EMAIL PROTECTED]>,
Brian F. Feldman <[EMAIL PROTECTED]> wrote:
> On Tue, 13 Jul 1999, Luigi Rizzo wrote:
> 
> > couldn't we first try lseek and only do the reads on char devs where
> > the lseek fails ?
> 
> lseek() won't usually fail unless it's something like EBADF. It merely
> sets the current fd's offset. It would be nice to be able to tell from
> a device driver if it supports seeking (da) or not (sa). Hmm... actually,
> if we just specify somehow that we support either direct or sequential
> access... this would be possible.

It would be a big improvement if dd could handle seeking on character
disk devices.  I'm reasonably certain there exists some ioctl (perhaps
related to reading disk labels) which could be used to figure out
whether a character device was a disk or not.  A simple fix like that
would make dd a lot more useful for the case Luigi brought up.

John
-- 
  John Polstra   [EMAIL PROTECTED]
  John D. Polstra & Co., Inc.Seattle, Washington USA
  "No matter how cynical I get, I just can't keep up."-- Nora Ephron


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message



Re: a BSD identd

1999-07-13 Thread John Polstra

In article <[EMAIL PROTECTED]>,
Ian Dowse  <[EMAIL PROTECTED]> wrote:
> 
> Why not actually store the fake ID in a symbolic link? That way you just
> do a readlink(), which would be safer, neater and faster than reading a
> file. A user can set up a fake ID with something like:
>   
>   ln -s "Warm-Fuzzy" .fakeid

Ick.  Please, no more abuse of symbolic links!  Once (malloc) was
enough.

Data is held in files, not in filenames.

John
-- 
  John Polstra   [EMAIL PROTECTED]
  John D. Polstra & Co., Inc.Seattle, Washington USA
  "No matter how cynical I get, I just can't keep up."-- Nora Ephron


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message



Re: glibc

1999-07-19 Thread John Polstra

In article <[EMAIL PROTECTED]>,
Brian F. Feldman <[EMAIL PROTECTED]> wrote:
> 
[GNU getopt]
> If you give me documentation on it, I'll implement it for the BSD libc.

Note, we already have GNU getopt in the source tree in libiberty (in
two different places -- binutils and gdb).  It might be better just
to install libiberty from one of those places.

Left as an exercise for the reader: Figure out how the two differ
and which one is "better". :-)

John
-- 
  John Polstra   [EMAIL PROTECTED]
  John D. Polstra & Co., Inc.Seattle, Washington USA
  "No matter how cynical I get, I just can't keep up."-- Nora Ephron


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message



Re: glibc

1999-07-19 Thread John Polstra

Brian F. Feldman wrote:
> On Mon, 19 Jul 1999, John Polstra wrote:
> 
>> Left as an exercise for the reader: Figure out how the two differ
>> and which one is "better". :-)
> 
> I'd rather hurt myself severely.

Of course.  That's a prerequisite for becoming a committer. :-)

John
---
  John Polstra   [EMAIL PROTECTED]
  John D. Polstra & Co., Inc.Seattle, Washington USA
  "No matter how cynical I get, I just can't keep up."-- Nora Ephron



To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message



Re: PAM & LDAP in FreeBSD

1999-07-20 Thread John Polstra

In article <[EMAIL PROTECTED]>,
Oscar Bonilla  <[EMAIL PROTECTED]> wrote:

> Couldn't we do this with /etc/auth.conf?

The plan when PAM was brought in was to eliminate auth.conf.  I don't
think we should be looking for new uses for it.

John
-- 
  John Polstra   [EMAIL PROTECTED]
  John D. Polstra & Co., Inc.Seattle, Washington USA
  "No matter how cynical I get, I just can't keep up."-- Nora Ephron


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message



Re: if_dl.h in stable causes sendmail segmentation

1999-07-20 Thread John Polstra

In article <[EMAIL PROTECTED]>,
Reinier Bezuidenhout  <[EMAIL PROTECTED]> wrote:

> I have the following situation...
... [various userland SEGVs traced down to a change in if_dl.h]

Just a guess: it sounds like the kind of thing that would happen if
you updated your kernel without also rebuilding userland.

John
-- 
  John Polstra   [EMAIL PROTECTED]
  John D. Polstra & Co., Inc.Seattle, Washington USA
  "No matter how cynical I get, I just can't keep up."-- Nora Ephron


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message



Re: PAM & LDAP in FreeBSD

1999-07-20 Thread John Polstra

Oscar Bonilla wrote:
> 
> ok, so this clarifies a lot of things... let's get rid of /etc/auth.conf
> and go with /etc/pam.conf for the authentication and /etc/nsswitch.conf
> for the info on where to obtain the databases from.

That seems reasonable to me.

PAM actually is designed to serve four separate but related functions.
We're only using the authentication function currently.  For an
overview of PAM, see PAM(8) in the manual pages.  There is also a spec
in "src/contrib/libpam/doc/specs/rfc86.0.txt".

John
---
  John Polstra   [EMAIL PROTECTED]
  John D. Polstra & Co., Inc.Seattle, Washington USA
  "No matter how cynical I get, I just can't keep up."-- Nora Ephron



To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message



Re: linking question...

1999-07-21 Thread John Polstra

In article <[EMAIL PROTECTED]>,
David E. Cross <[EMAIL PROTECTED]> wrote:
> 
> The problem indeed was conflicting libraries... (in /usr/X11R6/lib).. however
> I did place on the line *immediately* before the -lwcs a -L/usr/local/lib,
> however it appeared to take the /usr/X11R6/lib (which was in a previous -L
> statement) version instead.  Is this correct?

Yes, it's correct.  The -L options can appear anywhere relative to the
-l options -- even after them -- and it doesn't make any difference.
The relative ordering among the -L options with respect to *each
other* is all ld cares about.  That's been the traditional behavior
on every Unix system I've ever used that supported -L at all.

John
-- 
  John Polstra   [EMAIL PROTECTED]
  John D. Polstra & Co., Inc.Seattle, Washington USA
  "No matter how cynical I get, I just can't keep up."-- Nora Ephron


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message



Re: PAM & LDAP in FreeBSD, and userfs too.

1999-07-22 Thread John Polstra

In article <[EMAIL PROTECTED]>,
Dominic Mitchell  <[EMAIL PROTECTED]> wrote:
> On Thu, Jul 22, 1999 at 04:59:59PM +0700, Max Khon wrote:
> > 
> > PAM is also "using masses of weird shared objects" but nevertheless it's
> > quite usable
> 
> By statically linked binaries?

Our PAM implementation works for static binaries too.  See the
sources for the gory details.  Basically it creates a library that
includes all the possible modules, and selects the right one at
runtime.  There's some linker set magic involved.

Concerning "masses of weird shared objects," you'd really better get
used to it.  It was the wave of the future 10 years ago.  It's not
going away.  Dynamic linking provides flexibility and modularity that
you just can't get from static linking.

John
-- 
  John Polstra   [EMAIL PROTECTED]
  John D. Polstra & Co., Inc.Seattle, Washington USA
  "No matter how cynical I get, I just can't keep up."-- Nora Ephron


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message



Re: Proposed substitution for ACLs

1999-07-23 Thread John Polstra

In article <[EMAIL PROTECTED]>,
Daniel C. Sobral <[EMAIL PROTECTED]> wrote:
> 
> Do whatever you want: as a fs layer.

That would be good advice, if FS layers worked.

John
-- 
  John Polstra   [EMAIL PROTECTED]
  John D. Polstra & Co., Inc.Seattle, Washington USA
  "No matter how cynical I get, I just can't keep up."-- Nora Ephron


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message



Re: NSS Project

1999-08-04 Thread John Polstra

In article <[EMAIL PROTECTED]>,
Peter Jeremy  <[EMAIL PROTECTED]> wrote:
> Assar Westerlund <[EMAIL PROTECTED]> wrote:
> >Peter Jeremy <[EMAIL PROTECTED]> writes:
> >> We need to be able to build an application that has no dynamically
> >> loaded code for recovery purposes (/stand and /sbin) as well as for
> >> security.
> >
> >Isn't that the same problem as with PAM?
> 
> Quite probably PAM has the same problem.  I haven't bumped into it
> with PAM, so I can't be sure.

When you're not sure, it's really best to find out or keep quiet
on the mailing list.  As it is, you've just created a dozen or so
new people all over the world who will go around saying, "Hmm, I
seem to remember reading that PAM doesn't work in statically-linked
executables" -- which is false.  It works fine.  It is implemented
using a linker set approach which you are encouraged to investigate in
the sources.

> the situation where init can fail to load (or be unable to validate
> the single-user password for a secure console) because the appropriate
> encryption library is on a partition that isn't mounted yet

If that happened, it would have to be considered a severe design
error.

> (or has been corrupted somehow).

Many things can get corrupted to make the system unrecoverable.  For
example: the kernel, init itself, entries in the /dev directory, and
various combinations of cp, fsck, newfs, restore, ...

> The idea of being able to dynamically add new password encrytion
> schemes (PAM) or database access methods (NSS) is generally good.
> The problems appear when you try to marry these schemes with the
> system security and initialisation/recovery tools (which need to
> rely on and trust a minimal subset of the system).

Well, dynamic linking is here to stay, and that enlarges the scope
of "minimal subset" somewhat.  But nothing would be qualitatively
different if we went to an all-dynamic scheme (which I hope we will do
some day).  In any case, your system has to be working to a certain
degree to be recovered, or else you have to use external media such as
the fixit disk.

John
-- 
  John Polstra   [EMAIL PROTECTED]
  John D. Polstra & Co., Inc.Seattle, Washington USA
  "No matter how cynical I get, I just can't keep up."-- Nora Ephron


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message



Re: login.conf restrictions for suid processes possible? (fwd)

1999-08-05 Thread John Polstra

In article <[EMAIL PROTECTED]>,
Mike Smith  <[EMAIL PROTECTED]> wrote:
> > I am working on some resource limit stuff and would like to be
> > able to use login.conf to restrict the number of cgi processes that
> > certain users can run. Unfortunately, the proprietary cgi product we use
> > is owned by root and suid's to the user who owns the script that it is
> > called to run. (This is not what I would call a "good idea," but it's what
> > I have to work with.)
[...]
> You need to pester the vendor to correctly switch limits when they 
> switch UIDs.
> 
> Alternatively, if this is unlikely _and_ the application is dynamically 
> linked, you could produce a library containing patched set*id functions 
> and force it into the app using LD_PRELOAD. 

N.B., LD_PRELOAD won't work if the program is setuid or setgid.  I'm
not 100% sure from the original post whether that's the case or not.

John
-- 
  John Polstra   [EMAIL PROTECTED]
  John D. Polstra & Co., Inc.Seattle, Washington USA
  "No matter how cynical I get, I just can't keep up."-- Nora Ephron


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message



Re: How the `struct linker_set' is used in building an ELF kernel?

1999-08-05 Thread John Polstra

In article <[EMAIL PROTECTED]>,
Joe Jih-Shien Lu  <[EMAIL PROTECTED]> wrote:
> I started studying 3.2-stable kernel source for days. There are
> some questions I cannot figure out in an ordinary C programmer's
> point of view:
> 
>   * In cninit(), it references a global variable `cons_set' of
> the type `struct linker_set,' but I don't see its definition
> in any of the source files except the setdef0.c generated by
> /usr/bin/gensetdefs. It is defined by the .long asm psuedo-op,
> and seems to have the size of 4 bytes. However, in
> /sys/i386/i386/cons.h, it is declared as of the type `struct
> linker_set' which is 8-byte long. This inconsistency confused
> me.
> 
>   * Similar problem is encountered when I'm poking around the
> system initializing for-loop in main().  sysinit_set, declared
> as struct linker_set, is referenced, but I can't get into the
> way how this variable is initialized.
> 
> I guess it is the linker who did all the magic, since the comment in
> /sys/sys/linker_set.h mentioned about it. After studying the linker
> script (/sys/i386/conf/kernel.script) and ld.info, though, I still
> don't have any idea about the details behind the scene.

Linker sets are basically arrays of pointers that are constructed by
the linker using values that can come from many object files.  The
first word contains the number of elements (pointers) in the set.
Then come the pointers themselves.  Finally, a NULL pointer appears
at the end of the set.

The old a.out linker supported linker sets directly, and did all the
bookkeeping necessary to keep track of the set sizes and so forth.
The ELF linker does not directly support linker sets.  However, it
does support an arbitrary number of independent sections.  Using that
along with a little help from gensetdefs, we can get a.out-style
linker sets using the ELF tools.

setdef0.o must appear first on the linker command line.  It
contributes the leading count word to each set.  Then come the
"normal" object files, which may contribute pointers to various
sets.  These are just appended to special sections, one per linker
set.  Finally comes setdef1.o, which emits the terminating NULL
pointers.

> I notice that gensetdefs looks for the sections by the `.set.'-prefixed
> name in all the ELF kernel object files, and produces the setdef[12].c
> accordingly. Does the `.set.'-prefixed section name have any special
> meaning in an ELF object file?

No, it is just a convention we use for naming the sections that
contain linker sets.  gensetdefs knows this convention, and so do the
macros in .  The compiler, assembler, and linker
aren't aware of anything special about the names.

John
-- 
  John Polstra   [EMAIL PROTECTED]
  John D. Polstra & Co., Inc.Seattle, Washington USA
  "No matter how cynical I get, I just can't keep up."-- Nora Ephron


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message



Re: NSS Project

1999-08-05 Thread John Polstra

Peter Jeremy wrote:

> I apologize if I gave anyone the impression that you couldn't build
> statically linked executables with libpam.

Sorry I was so prickly about it.

> I recall having a similar static-vs-dynamic discussion with you a couple
> of years ago.

Yow, your memory is better than mine.  Premature senility is a sad,
sad thing. :-}

> My position was (and still is) that for most purposes dynamic
> linking is a definite advantage, but we should continue to permit
> static linking for applications that want it (which Sun doesn't).

I generally agree, except I feel that when there are cases where we
can do useful things which rely on dynamic linking, we shouldn't let
static linking hold us back.  Plenty of people disagree with me,
though.

John
---
  John Polstra   [EMAIL PROTECTED]
  John D. Polstra & Co., Inc.Seattle, Washington USA
  "No matter how cynical I get, I just can't keep up."-- Nora Ephron



To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message



Re: NSS Project

1999-08-05 Thread John Polstra

In article <[EMAIL PROTECTED]>,
Brian F. Feldman <[EMAIL PROTECTED]> wrote:
> 
> Mind pointing me to the technical reason why (I'm sure you've explained
> it before) we can't use the dl* calls in any way without linking
> against ld-elf.so.1? I mean, have them in libc, for instance...

The versions in libc are just stubs.  Take a look at
"src/lib/libc/gen/dlfcn.c".  The implementations are in the dynamic
linker.

> One option I don't think anyone's brought up: why don't we _just_
> have ld-elf.so.1 in the root, but not libraries? That way, we
> don't bloat root excessively, but we can let people depend on
> being able to build -static/-Bstatic binaries that make everything
> static except the rtld? And modify gcc/ld to have static link with
> the rtld, so we have the benefit of those calls, can have static
> binaries still, and be able to depend on having an rtld (even for
> single-user mode.)

I think you have some misconceptions about how it all fits together.
Executables aren't "linked with" the dynamic linker.  It's a
separate shared object that is loaded directly by the kernel.  It
gets control before the main executable gets control.  Look at
"src/sys/kern/imgact_elf.c" and at the dynamic linker.

Also, programs that are linked (at "ld" time) with dynamic libraries
are different from programs that are linked with static libraries.
I.e., "ld" does very different things in the two cases.  You can't
take a statically-linked program and suddenly decide to treat it as
dynamically-linked at runtime.  It's too late at that point.

Finally, shared "libraries" aren't really libraries at all in the
traditional sense.  They're monolithic whereas traditional archive
libraries are made up of separate object files which are subsetted by
the linker.

To really understand the issues I think it's necessary to read through
the dynamic linker sources and understand what it's doing.  There used
to be books that described how it all worked (Prentice-Hall "System V
Application Binary Interface"), but as far as I know they're out of
print now.

John
-- 
  John Polstra   [EMAIL PROTECTED]
  John D. Polstra & Co., Inc.Seattle, Washington USA
  "No matter how cynical I get, I just can't keep up."-- Nora Ephron


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message



Re: cvs

1999-08-07 Thread John Polstra

In article <[EMAIL PROTECTED]>,
Bill Fumerola  <[EMAIL PROTECTED]> wrote:
> On Sat, 7 Aug 1999, Mike Pritchard wrote:
> 
> > *default umask=002
> 
>  SetAttrs CVSROOT/commitlogs/other.981201.gz
> 
> That seems to be doing the trick for everything. Thanks.

Note, if you would have just _run_ the program with a umask of 2
then it would have worked too.  It honors the umask setting unless
overridden in the supfile.

John
-- 
  John Polstra   [EMAIL PROTECTED]
  John D. Polstra & Co., Inc.Seattle, Washington USA
  "No matter how cynical I get, I just can't keep up."-- Nora Ephron


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message



Re: quad_t and portability

1999-08-07 Thread John Polstra

In article <[EMAIL PROTECTED]>,
Bernd Walter  <[EMAIL PROTECTED]> wrote:
> On Sat, Aug 07, 1999 at 05:38:48PM +0800, Peter Wemm wrote:
> > 
> > But not on the Alpha...  int64_t is a long there, and gcc complains unless
> > you use %ld.
> Mmm and long is 32Bit it seems.

No, longs are 64 bits on the Alpha.  Ints are 32 bits, though.

John
-- 
  John Polstra   [EMAIL PROTECTED]
  John D. Polstra & Co., Inc.Seattle, Washington USA
  "No matter how cynical I get, I just can't keep up."-- Nora Ephron


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message



Re: prototypes with __P

1999-08-07 Thread John Polstra

In article <[EMAIL PROTECTED]>,
Bill Fumerola  <[EMAIL PROTECTED]> wrote:
> On Fri, 6 Aug 1999, Matthew Hunt wrote:
> 
> > I have no idea how much of the FreeBSD code would actually build on
> > a K&R compiler.
> 
> Thanks to Bruce, a lot of it.

Note, the use of __P is discouraged in new code.  From style(9):

  Only use the __P macro from the include file  if
  the source file in general is (to be) compilable with a K&R
  Old testament compiler.  Use of the __P macro in new code is
  discouraged, although modifications to existing files should be
  consistent with that file's conventions.

John
-- 
  John Polstra   [EMAIL PROTECTED]
  John D. Polstra & Co., Inc.Seattle, Washington USA
  "No matter how cynical I get, I just can't keep up."-- Nora Ephron


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message



Re: cvs

1999-08-08 Thread John Polstra

Mike Pritchard wrote:
>> 
>> Note, if you would have just _run_ the program with a umask of 2
>> then it would have worked too.  It honors the umask setting unless
>> overridden in the supfile.
> 
> Yes, but if I ever run cvsup by hand I wind up with cvsup
> going through my whole tree and resetting attributes because
> my default umask isn't 2.  I once started up a cvsup by hand, sat
> down to eat/watch TV, came back and realized that cvsup had reset
> all of my file permissions.

That just shows that watching TV is _bad_. ;-)

> Putting it in the cvsup file help to make sure you don't screw
> yourself up by accident.

Yep -- that's why I added the feature.

John


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message



Re: STAILQ macros..

1999-08-12 Thread John Polstra

In article <[EMAIL PROTECTED]>,
Daniel O'Connor <[EMAIL PROTECTED]> wrote:

> I am looking at the STAILQ macros defined in  and I am
> curious why it is necessary to declare stqh_last in the STAILQ_HEAD
> as a pointer to pointer, rather than just a pointer? (like the head
> pointer)

When the list is empty, stqh_last points at stqh_first (which means it
must be a pointer to pointer).  That way, STAILQ_INSERT_TAIL doesn't
have to treat an empty list as a special case.

John
-- 
  John Polstra   [EMAIL PROTECTED]
  John D. Polstra & Co., Inc.Seattle, Washington USA
  "No matter how cynical I get, I just can't keep up."-- Nora Ephron


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message



Getting device and inode number from a vnode

1999-08-15 Thread John Polstra

I have two VFS-related questions which are probably pretty basic.

1. I have a pointer to a vnode and I want to get the corresponding
dev_t and inode number.  Is there a non-sleazy way to do that other
than calling vn_stat?

2. The first action of vn_stat is to call VOP_GETATTR.  VOP_GETATTR(9)
says, "The file should not be locked on entry."  But when stat calls
vn_stat, the vnode is locked.  Which is correct -- or doesn't it
matter?

Thanks,
John
---
  John Polstra   [EMAIL PROTECTED]
  John D. Polstra & Co., Inc.Seattle, Washington USA
  "No matter how cynical I get, I just can't keep up."-- Nora Ephron



To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message



Re: Getting device and inode number from a vnode

1999-08-15 Thread John Polstra

Alfred Perlstein wrote:
> On Sun, 15 Aug 1999, John Polstra wrote:
>> 
>> 1. I have a pointer to a vnode and I want to get the corresponding
>> dev_t and inode number.  Is there a non-sleazy way to do that other
>> than calling vn_stat?
> 
> use vn_todev from "vfs_subr.c" ~line 2970 of 2976 if you just
> need the dev_t.

Thanks.  I didn't make it clear in my question, but I want the dev_t
of the filesystem containing the file (st_dev rather than st_rdev).

> but you may wind up needing the GETATTR call for the inode lookup.

OK.

>> 2. The first action of vn_stat is to call VOP_GETATTR.  VOP_GETATTR(9)
>> says, "The file should not be locked on entry."  But when stat calls
>> vn_stat, the vnode is locked.  Which is correct -- or doesn't it
>> matter?
> 
> the lookup at the begininngin of the stat() call's side-effect is to 
> lock the vnode it returns but kern/vnode.src seems to indicate
> that the vnode's locking state doesn't matter...

Ah, good.  That helps.

> so does the various states that vnodes are in when called from
> vfs_syscalls, such as the lseek syscall.

Yes, and fstat doesn't lock it either.

> it's slighly confusing, if the vnode is locked for "access" calls
> why is it not locked for attribute calls?

I'm confused too. :-)

John
---
  John Polstra   [EMAIL PROTECTED]
  John D. Polstra & Co., Inc.Seattle, Washington USA
  "No matter how cynical I get, I just can't keep up."-- Nora Ephron



To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message



Re: buildfailure -current on Alpha?

1999-09-23 Thread John Polstra

In article <[EMAIL PROTECTED]>,
Kenneth D. Merry <[EMAIL PROTECTED]> wrote:
> 
> I take it you haven't rebuilt world in the past few months?  There was a
> change that went in in June, I think, that requires that you reinstall
> ld-elf.so.1 manually before you can buildworld on an Alpha.  Kinda
> annoying, I think.

Annoying but unavoidable.  There's no way to override the location of
the dynamic linker at make world time, for security-related reasons.
An important bugfix to the Alpha binutils required an updated dynamic
linker to handle the new relocation type.  The new dynamic linker was
committed well before the binutils changes that required it.  But
still it can bite people who aren't tracking -current very closely.
That's life in currentland.

John
-- 
  John Polstra   [EMAIL PROTECTED]
  John D. Polstra & Co., Inc.Seattle, Washington USA
  "No matter how cynical I get, I just can't keep up."-- Nora Ephron


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message



Re: Netscape Bus Error

1999-09-28 Thread John Polstra

In article <[EMAIL PROTECTED]>,
Darren R. Davis <[EMAIL PROTECTED]> wrote:

> I believe that a Bus Error is specifically referencing miss aligned
> data vs segmentation violation (SIGSEGV) which is accessing data
> that is either free'd or not yours, etc.

That was the traditional distinction, but it's different on
FreeBSD/i386.  SIGSEGV means you accessed memory that is unmapped.
SIGBUS means you accessed memory that is mapped, but protected
(unwritable and/or unreadable).  To further confuse matters,
FreeBSD/alpha generates SIGSEGV for both cases.

John
-- 
  John Polstra   [EMAIL PROTECTED]
  John D. Polstra & Co., Inc.Seattle, Washington USA
  "No matter how cynical I get, I just can't keep up."-- Nora Ephron


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message



Re: Developer assessment (was Re: A bike shed ...)

1999-10-07 Thread John Polstra

In article <[EMAIL PROTECTED]>,
Darryl Okahata  <[EMAIL PROTECTED]> wrote:
> 
>  There's the problem.  While I agree with you about persistent,
> annoying, and utterly clueless newbies, I don't agree with the apparent
> sentiment (with which you may or may not agree) where all newbies (and
> not just in -hackers) should be flamed and roasted.  I've seen perfectly 
> innocent questions (asked once), from non-persistent/non-annoying
> newbies, get flamed in -questions.

Darryl is right, folks.  Please either be nice or keep quiet.  I swear
I've seen more unjustified crabby answers in our mailing lists during
the past month than at any other time during my involvement with the
project.  A few of you -- and you know who you are -- seem to make
a point of writing something utterly rude every day.  If you are so
stressed out that you can't help it, then please just take a break
from the lists entirely for a couple of weeks.  You're not doing a
thing to help our reputation.

Remember, the _individual_ you are replying to is not personally
responsible for the sum total of annoyances you have endured lately.

John
-- 
  John Polstra   [EMAIL PROTECTED]
  John D. Polstra & Co., Inc.Seattle, Washington USA
  "No matter how cynical I get, I just can't keep up."-- Nora Ephron


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message



Re: FreeBSD CVS mirror

1999-10-12 Thread John Polstra

In article <[EMAIL PROTECTED]>,
Sameh Ghane  <[EMAIL PROTECTED]> wrote:
> On Tue, Oct 12, 1999 at 04:36:39PM +0700, Max Khon wrote:
> > hi, there!
> > 
> > maybe i'm posting into wrong list, but how is FreeBSD
> > CVS repository mirrored?
> > We probably will have an opportunity to set up local FreeBSD mirror here
> > (we do not have space for full mirror but some parts, including
> > CVS repository is desired)
> 
> For the set up of mirrors, send your request to: [EMAIL PROTECTED]

That mailing list doesn't exist any more.  For CVSup mirrors, send the
request to [EMAIL PROTECTED] or [EMAIL PROTECTED]

John Polstra
CVSup Mirrormeister
-- 
  John Polstra   [EMAIL PROTECTED]
  John D. Polstra & Co., Inc.Seattle, Washington USA
  "No matter how cynical I get, I just can't keep up."-- Nora Ephron


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message



Re: Search a symbol in the source tree

1999-10-13 Thread John Polstra

In article <[EMAIL PROTECTED]>,
W Gerald Hicks  <[EMAIL PROTECTED]> wrote:
> I find it ironic that nobody has suggested global yet;
> 
> That sure would make a nice port, especially since we could
> easily recommend gozilla as a nice way to browse and search
> the source tree.

Er, global is part of the base system. :-)

John
-- 
  John Polstra   [EMAIL PROTECTED]
  John D. Polstra & Co., Inc.Seattle, Washington USA
  "No matter how cynical I get, I just can't keep up."-- Nora Ephron


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message



Re: paper on fine-grained OS timers

1999-10-13 Thread John Polstra

In article <[EMAIL PROTECTED]>,
Mohit Aron  <[EMAIL PROTECTED]> wrote:

>   I'd like to tell the BSD community about my paper entitled 
> "Soft timers: efficient microsecond software timer support for network
> processing" that's going to appear in SOSP 1999. The abstract for the paper
> is attached below. The gzip'd postcript for the paper can be downloaded from:
>http://www.cs.rice.edu/~aron/papers/soft-timers.ps.gz

This looks like it would be a nice solution to a known problem with
dummynet.  From dummynet(4):

 dummynet performs its task once per timer tick. The granularity
 of operation is thus controlled by the kernel option

 options HZ

 whose default value (100) means a granularity of 10ms.  For an
 accurate simulation of high data rates it might be necessary
 to reduce the timer granularity to 1ms or less. Consider,
 however, that some interfaces using programmed I/O may require
 a considerable time to output packets. So, re- ducing the
 granularity too much might actually cause ticks to be missed thus
 reducing the accuracy of operation.

John
-- 
  John Polstra   [EMAIL PROTECTED]
  John D. Polstra & Co., Inc.Seattle, Washington USA
  "No matter how cynical I get, I just can't keep up."-- Nora Ephron


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message



FreeBSDCon pictures

1999-10-24 Thread John Polstra

I put a few pictures from FreeBSDCon here for your enjoyment:

http://www.freebsd.org/~jdp/freebsdcon1999/

John



To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message



Re: cvsup not being updated?

1999-10-24 Thread John Polstra

In article <[EMAIL PROTECTED]>,
Julian Elischer  <[EMAIL PROTECTED]> wrote:

> I checked in stuff about 3 hours ago but it's still not showing up on
> either of cvsup2 or svsup3
> 
> anything funny going on?

Yes, freefall was screwed up again.  Something has been causing its
amd to hang occasionally, and that hoses the updates to cvsup-master.
I intend to add a monitoring process to raise the alarm sooner, but
FreeBSDCon week wasn't a likely time for that to happen.

To everybody: when you think something is wrong with our mirror system
as a whole, please tell me, <[EMAIL PROTECTED]>.  Writing to a list like
-hackers generally won't cut it.  You need to let me personally know
as soon as possible.

John
-- 
  John Polstra   [EMAIL PROTECTED]
  John D. Polstra & Co., Inc.Seattle, Washington USA
  "No matter how cynical I get, I just can't keep up."-- Nora Ephron


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message



Re: ip forwarding broken on alpha

1999-10-28 Thread John Polstra

In article <[EMAIL PROTECTED]>, Andrew
Gallatin <[EMAIL PROTECTED]> wrote:

> I have an older AlphaStation 600 5/266 running -current (cvsupped
> last week) which is setup as a router between 2 100mb networks.
> When the machine is pushed fairly hard (like running a netperf
> -tUDP_STREAM -- -m 100 across the router, eg about 10-20k 100byte
> packets/sec ) the alpha falls over almost instantly.  I have not
> enabled any NAT or firewall functionality, just ip forwarding.
>
> It generally crashes in MCLGET down in the ethernet driver's
> receiver interrupt handler.

I'm probably way off the mark, but I have to ask.  Are you sure
you're not simply running out of mbufs?  I noticed your maxusers is
only 32 and I didn't see an options line to raise NMBCLUSTERS.

John
-- 
  John Polstra   [EMAIL PROTECTED]
  John D. Polstra & Co., Inc.Seattle, Washington USA
  "No matter how cynical I get, I just can't keep up."-- Nora Ephron


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message



Re: RTLD_GLOBAL/RTLD_LOCAL dlopen mode flags

1999-11-01 Thread John Polstra

In article <[EMAIL PROTECTED]>,
Max Khon  <[EMAIL PROTECTED]> wrote:

> Are there any plans to implement RTLD_GLOBAL/RTLD_LOCAL mode flags for
> dlopen?

RTLD_GLOBAL has been supported in -current since around the
beginning of September.

What is RTLD_LOCAL, and which OS supports it?  I've never heard of
that one.

John
-- 
  John Polstra   [EMAIL PROTECTED]
  John D. Polstra & Co., Inc.Seattle, Washington USA
  "No matter how cynical I get, I just can't keep up."-- Nora Ephron


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message



Re: gas pseudo-ops

1999-11-02 Thread John Polstra

In article <[EMAIL PROTECTED]>,
Stephane E. Potvin <[EMAIL PROTECTED]> wrote:
> Does anyone have any idea where I could find some documentation about
> the following gas pseudo-ops?
>   .type ,@object

There is a type associated with symbol in the object files.  It can be
function (obvious), object (data), or other/unknown.  This pseudo-op
sets the type of a given symbol.

>   .previous

The assembler maintains a stack of sections.  Each time you change
to a new section, it pushes the previous one onto the stack.  The
".previous" pseudo-op pops the stack and changes back to the previous
section.

John
-- 
  John Polstra   [EMAIL PROTECTED]
  John D. Polstra & Co., Inc.Seattle, Washington USA
  "No matter how cynical I get, I just can't keep up."-- Nora Ephron


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message



Re: aio Functions

1999-11-03 Thread John Polstra

In article <[EMAIL PROTECTED]>,
Christopher Sedore  <[EMAIL PROTECTED]> wrote:
> 
> I've got a set of patches that fix this and the fact that signals don't
> get issued for completion on certain types of requests.  I'm hoping to get
> it committed, but feel free to contact me for the latest stuff until then.
> I just finished updating and consolidating my patches so they cleanly
> apply to -current of a week ago.  Testing thus far appears promising--I'm
> balancing more than a few sockets and pushing 10MB/sec through them (disk
> to socket and the inverse).  I killed the last bug I knew of this week
> (occasionally paniced under some wierd process shutdown conditions).
> 
> I hope to try 1000 descriptors soon.

That's great news!  So have you gotten rid of some of these absurdly
low fixed limits?

vfs.aio.max_aio_per_proc: 32
vfs.aio.max_aio_queue_per_proc: 256
vfs.aio.max_aio_procs: 32
vfs.aio.max_aio_queue: 1024
vfs.aio.max_buf_aio: 16

And worst of all:

#define AIO_LISTIO_MAX  16

John
-- 
  John Polstra   [EMAIL PROTECTED]
  John D. Polstra & Co., Inc.Seattle, Washington USA
  "No matter how cynical I get, I just can't keep up."-- Nora Ephron


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message



Re: Missing symbols in LIBC ???

1999-11-14 Thread John Polstra

In article <[EMAIL PROTECTED]>,
Nils M Holm  <[EMAIL PROTECTED]> wrote:
> 
> Hello!
> 
> I am currently porting my compiler to the release 3.3. My RT lib depends
> on /usr/lib/libc.a. When attempting to link a program, I get messages about
> unresolved externals (it DOES work on release 2.x).
> 
> I have seen that the C compiler no longer generates underscores on
> symbols by default and consequently, '_printf' in /usr/lib/libc.a has
> become simply 'printf'. There seem to exist kind of 'compatibility
> entries' for some functions, though.
> 
> However, (at least) the symbols _creat, _lseek, and _memmove are not
> defined in /usr/lib/libc.a. (creat, lseek, and memove are defined.)
> 
> Is this a bug or a feature? Will underscores vanish totally in the
> future? Do I have to create a workaround for the 3.x branch??

Yes, the underscores are gone permanently because we switched from
a.out to ELF as the object file format.

You can test for it at compile time with #ifdef __ELF__.

John
-- 
  John Polstra   [EMAIL PROTECTED]
  John D. Polstra & Co., Inc.Seattle, Washington USA
  "No matter how cynical I get, I just can't keep up."-- Nora Ephron


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message



Re: gas pseudo-ops

1999-01-16 Thread John Polstra

In article <01bf260d$837c8770$[EMAIL PROTECTED]>,
Stephane Potvin <[EMAIL PROTECTED]> wrote:
> 
> Do you think it would be possible to change the
>   .type ,@object
> for
>   .type ,object
> in gensetdef? By looking in the gas code I found that the assembler just
> ignores the @ character.

I think it would be much better to remove all of the platform-specific
asm statements from gensetdefs and put them into a header
.  Gensetdefs would then emit an include of that
header to get the needed definitions.

This isn't very high on my personal priority list, though.

John
-- 
  John Polstra   [EMAIL PROTECTED]
  John D. Polstra & Co., Inc.Seattle, Washington USA
  "No matter how cynical I get, I just can't keep up."-- Nora Ephron


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message



Re: Portable way to compare struct stat's?

1999-01-16 Thread John Polstra

In article
<[EMAIL PROTECTED]>, Robert
Watson <[EMAIL PROTECTED]> wrote:
> On Mon, 15 Nov 1999, Wes Peters wrote:
>
> > On a single system, if st_dev and st_ino are equal, you must be
> > referring to the same object.  If not, I'd like to hear about it.
>
> This assumption has always caused lots of pain and suffering for
> distributed file system people -- in a distributed file system, the
> requirement that you can generate a unique 32 bit number for each
> file or directory visible in the FS is a fairly arduous one.

I don't dispute that point, but it is worth mentioning that POSIX
specifically guarantees that st_dev and st_ino "taken together
uniquely identify the file within the system."  So it is OK for
applications to rely on that.

John
-- 
  John Polstra   [EMAIL PROTECTED]
  John D. Polstra & Co., Inc.Seattle, Washington USA
  "No matter how cynical I get, I just can't keep up."-- Nora Ephron


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message



Re: Portable way to compare struct stat's?

1999-01-16 Thread John Polstra

Garance A Drosihn wrote:
> At 10:40 AM -0800 11/18/99, John Polstra wrote:
>>I don't dispute that point, but it is worth mentioning that POSIX
>>specifically guarantees that st_dev and st_ino "taken together
>>uniquely identify the file within the system."  So it is OK for
>>applications to rely on that.
> 
> Given how many people have files mounted from foreign file systems,
> I would think that applications should not rely on that.  Sure, it's
> a nice guarantee for a completely stand-alone system, but a "general
> purpose" application should consider that it may be dealing with
> files in NFS, AFS, or some other file system, and plan accordingly.

We must be interpreting the requirement differently, because it
doesn't seem onerous at all to me.  The st_dev value needn't be the
same on two different hosts which both mount the same filesystem.  I
also doubt that the requirement has to hold across remounts.  Under
that interpretation, it's simple to meet the requirement.  Just create
a locally-unique st_dev value whenever you mount a filesystem, and
if the filesystem is remote then record a mapping between (remote
hostname, remote host's idea of the "device") and the local st_dev
value.  (I've never used AFS, so I may be missing something crucial
here.)

> If the program is only for you in your organization, then the
> POSIX promise is helpful.  If you're sending the code off to "the
> world", then you should not rely on that posix promise.  Just my own
> opinion, of course.

Well, the POSIX requirement isn't optional.  If a system doesn't
meet it then it is not POSIX-compliant.  So any application that is
targeted toward POSIX systems is perfectly within its rights to rely
on the requirement.

John
---
  John Polstra   [EMAIL PROTECTED]
  John D. Polstra & Co., Inc.Seattle, Washington USA
  "No matter how cynical I get, I just can't keep up."-- Nora Ephron



To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message



Re: Practical limit for number of TCP connections?

1999-12-19 Thread John Polstra

In article <[EMAIL PROTECTED]>, Daniel C. Sobral
<[EMAIL PROTECTED]> wrote:

> "Ronald F. Guilmette" wrote:
>
> > As I say, my understanding is that FreeBSD still doesn't have real
> > and/or complete thread support in the kernel.  So if you have a
> > multi-threaded application and one thread blocks (e.g. on I/O)
> > then the whole thing is blocked.

[...]

> Not to dismiss FreeBSD's kernel problems, but that thing about
> blocking is absurdly untrue.

It is in fact partially true.  If a thread blocks on disk I/O then
the whole process (all threads) blocks.  That can be significant for
applications that are disk intensive.  I believe it to be the most
significant bottleneck in current versions of CVSup, for example.
(CVSup doesn't use FreeBSD's threads library, but it uses Modula-3's
built-in threads package which is similar in design.)

Once our aio support is knocked into shape, it should be possible for
userland threads packages to use that in preference to select().  Then
threads could run while one or more others were blocked on disk I/O.
Of course kernel thread support may improve soon enough so that this
approach isn't necessary.

For CVSup I plan to experiment with using a small farm of disk I/O
subprocesses (processes, not threads), communicating with the master
process via shared memory and/or pipes.  Without trying it, I can't
say for sure whether it will yield a net win or a net loss in speed.

John
-- 
  John Polstra   [EMAIL PROTECTED]
  John D. Polstra & Co., Inc.Seattle, Washington USA
  "No matter how cynical I get, I just can't keep up."-- Nora Ephron


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message



Re: Practical limit for number of TCP connections?

1999-12-20 Thread John Polstra

In article <[EMAIL PROTECTED]>,
Ronald F. Guilmette <[EMAIL PROTECTED]> wrote:
> 
> Is there code somewhere, perhaps within the libc implementation of read(2)
> that looks to see what kind of device I am reading from, and then does two
> different things if the read is for a disk file versus a read for a terminal?

No.  It's simply that the read() and write() system calls are willing
to return EAGAIN or only do a portion of the requested I/O for pipes
and sockets and terminals, but they are not willing to do that for
disk I/O.  There is a long-standing distinction in Unix between "slow"
I/O devices and "fast" ones.  Disks are "fast" ones, and the process
always blocks until the full I/O has completed.

This is not some kind of brokenness particular to FreeBSD; it's the
way Unix has always behaved.

John
-- 
  John Polstra   [EMAIL PROTECTED]
  John D. Polstra & Co., Inc.Seattle, Washington USA
  "No matter how cynical I get, I just can't keep up."-- Nora Ephron


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message



Re: Practical limit for number of TCP connections?

1999-12-20 Thread John Polstra

In article <[EMAIL PROTECTED]>,
Ronald F. Guilmette <[EMAIL PROTECTED]> wrote:
> 
> The other way is just have your server be a single thread/process, and to
> have it keep one big list of all of the connections (i.e. socket fds) that
> it has open at present.  Then it just executes mail loop, over and over
> again.  At the top of the main look is one big honkin' call to select()
> in which you find out which of your connections is ready to be read or
> written.  Then you go off and read/write those as appropriate, and then
> just come back and do the big select() again.  (You could do this using
> calls to poll() instead of calls to select(), and that might be a bit
> more efficient.)
> 
> The only real problem with doing things this way is that you have to diddle
> some things to make sure the bit arrays that you pass to select() are big
> enough to handle the maximum number of connections you ever anticipate
> having to service/maintain at one time.
[... etc]

The "eventlib" package is pretty nice for this style of programming.
It takes care of all these gory details for you.  It's part of BIND
(www.isc.org) and it might be distributed separately too -- I forget.

John
-- 
  John Polstra   [EMAIL PROTECTED]
  John D. Polstra & Co., Inc.Seattle, Washington USA
  "No matter how cynical I get, I just can't keep up."-- Nora Ephron


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message



Re: YES: it works..

1999-12-31 Thread John Polstra

In article <[EMAIL PROTECTED]>,
Wilko Bulte  <[EMAIL PROTECTED]> wrote:
> Fri Dec 31 23:59:56 CET 1999
> Fri Dec 31 23:59:57 CET 1999
> Fri Dec 31 23:59:58 CET 1999
> Fri Dec 31 23:59:59 CET 1999
> Sat Jan  1 00:00:00 CET 1900
> Sat Jan  1 00:00:01 CET 1900
> Sat Jan  1 00:00:02 CET 1900
> Sat Jan  1 00:00:03 CET 1900
  
> 
> In short: yes it works.
> 
> Happy New Millenium to all of you!

Huh?  That doesn't look so good to me!

(Just kidding, just kidding. ;-)

John
-- 
  John Polstra   [EMAIL PROTECTED]
  John D. Polstra & Co., Inc.Seattle, Washington USA
  "Disappointment is a good sign of basic intelligence."  -- Chögyam Trungpa



To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message



Re: Concept check: iothreads addition to pthreads for MYSQL+FreeBSD.

2000-01-10 Thread John Polstra

In article <1a6101bf5bc1$4e364b20$[EMAIL PROTECTED]>,
Scott Hess <[EMAIL PROTECTED]> wrote:
> 
> I've implemented a rough fix, which is to rfork() processes which I label
> "iothreads" to handle the disk I/O.  The parent process running pthreads
> has a socketpair() to each of the iothreads.  The iothreads wait for
> requests on the socketpair, and since socketpairs can block, pthreads can
> handle them efficiently.
...
> Unfortunately, I'm concerned about using this code in production, because
> it needs a fair amount of cleanup to handle signals and administrative
> functions correctly.  For this reason and others, I'm starting a project to
> move it into the pthreads library itself.  Before I embark on that effort,
> I have a couple questions:
> 
> 1) Does this seem like a reasonable approach?  [It _works_, and well.  But
> it tastes strongly of hack.]

I think the approach is reasonable, but it shouldn't go into the
pthreads library.  It's too heavyweight for that -- too much machinery
when your average client just wants to read from a file.

Pthreads will eventually handle disk I/O better than it does now,
using aio calls or some other technique.

John
-- 
  John Polstra   [EMAIL PROTECTED]
  John D. Polstra & Co., Inc.Seattle, Washington USA
  "Disappointment is a good sign of basic intelligence."  -- Chögyam Trungpa



To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message



Re: LD_PRELOAD

2000-01-21 Thread John Polstra

In article <[EMAIL PROTECTED]>,
Tony Finch  <[EMAIL PROTECTED]> wrote:
> I'm experimenting with using LD_PRELOAD to implement "shim" wrappers
> around functions in libc. It's really easy to do on Solaris but I'm
> having some difficulty on FreeBSD.
> 
> The first problem I had was compiling my shim library so that the rtld
> would accept it.

The right way to do it on FreeBSD is like this:

gcc -fpic -c *.c
gcc -shared -o libshim.so *.o

> This brings me on to the second problem. I want to do some
> initialization of my library before the real action starts. On Solaris
> the linker calls a function in the object called _init() when it is
> loaded; it's easy to make this work. I can see similar functionality
> in FreeBSD's rtld but it looks like I have to jump through obscure
> hoops to make it work (an ELF DT_INIT section if I understand it
> correctly).

The names "_init" and "_fini" are "reserved for the implementation"
in ANSI/ISO-speak.  You shouldn't use them.  You can get what you
want like this with gcc:

void myInitFunction(void) __attribute__ ((constructor));

void
myInitFunction(void)
{
/* Your initialization code here. */
}

Or, write it in C++ and use a global constructor.

> code like
>   if (!initialized)
>   init_me_baby();
> at the start of entry-point functions. This seems grotty and
> inefficient to me and I'd like to avoid it if possible.

Fine, but then you're venturing into areas not covered by the relevant
standards.  That will make your code less portable.

> I also note a user-interface incompatibility between FreeBSD's
> implementation of LD_PRELOAD and Solaris's: on Solaris the filenames
> listed in LD_PRELOAD are space-separated, but on FreeBSD they are
> colon or semicolon separated.

That could be a bug.  You're probably the first person on earth to
have more than one library in LD_PRELOAD. :-)  What does Linux do?

John
-- 
  John Polstra   [EMAIL PROTECTED]
  John D. Polstra & Co., Inc.Seattle, Washington USA
  "Disappointment is a good sign of basic intelligence."  -- Chögyam Trungpa



To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message



Re: LD_PRELOAD

2000-01-22 Thread John Polstra

In article <[EMAIL PROTECTED]>,
Tony Finch  <[EMAIL PROTECTED]> wrote:
> John Polstra <[EMAIL PROTECTED]> wrote:

> >The right way to do it on FreeBSD is like this:
> >gcc -fpic -c *.c
> >gcc -shared -o libshim.so *.o
> 
> That works fine, thanks! Any idea why my clumsy success worked and why
> my clumsy failures didn't?

Nah, I didn't pay that much attention to what you did.  I just
noticed that it wasn't right. :-)

The "gcc -fpic" makes the object code position-independent.  I am not
sure, but probably you would also benefit (performance-wise) by using
that on Solaris.

The "gcc -shared" turns it into a shared library instead of a normal
object file.  In the process it also links in some extra little .o
files which are necessary to hold it all together.  You can use "gcc
-v" to get the gory details.

> >The names "_init" and "_fini" are "reserved for the implementation"
> >in ANSI/ISO-speak.  You shouldn't use them.
> 
> I don't have any choice on Solaris, unfortunately (and my code has to
> be portable between FreeBSD and Solaris). I suppose in that case
> Solaris is the implementation and they have reserved it for my use. I
> gather from the linker errors that FreeBSD has reserved the names for
> a different use?

The machinery that supports C++ constructors uses them.

> >Or, write it in C++ and use a global constructor.
> 
> No. Never. No way. NO. :-)

I didn't mean write everything in C++ -- just the
initialization hook.  It's not that bad.  There's an example in
"src/lib/libc_r/uthread/uthread_autoinit.cc".

The advantage of using C++ for this is that you're using a portable
mechanism instead of a gcc extension.

> >> I also note a user-interface incompatibility between FreeBSD's
> >> implementation of LD_PRELOAD and Solaris's: on Solaris the filenames
> >> listed in LD_PRELOAD are space-separated, but on FreeBSD they are
> >> colon or semicolon separated.
> >
> >That could be a bug.  You're probably the first person on earth to
> >have more than one library in LD_PRELOAD. :-)  What does Linux do?
> 
> According to the documentation I looked at it uses arbitrary
> whitespace as the separator. I haven't looked at the code to check.

I took a look.  They accept white space or colons.  I'll change ours
to be similarly tolerant.  The semicolons are a vestige from SVR4.0,
and should probably be ditched.

John
-- 
  John Polstra   [EMAIL PROTECTED]
  John D. Polstra & Co., Inc.Seattle, Washington USA
  "Disappointment is a good sign of basic intelligence."  -- Chögyam Trungpa



To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message



Re: java -> ld-elf.so.1: assert failed: ... lockdflt.c:55

2000-01-28 Thread John Polstra

In article <[EMAIL PROTECTED]>,
Chad David  <[EMAIL PROTECTED]> wrote:
> 
> Since the ~Jan 25 I have been getting an error while
> running any java programs on 3.4-stable.  I cvsup'd,and 
> ran a make world this afternoon and it still fails. It doesn't
> always hit... about 50% of the time.
> 
> The errors is:
> 
> ld-elf.so.1: assert failed: /usr/src/libexec/rtld-elf/lockdflt.c:55
[...]
> FreeBSD stronghold.guild.ab.ca 3.4-STABLE FreeBSD 3.4-STABLE #0: Thu Jan
> 27 17:04:43 MST 2000

I believe I fixed this one in -current 3 days ago, but I haven't
merged it into -stable yet.  I would appreciate it if you would try
the patch below and let me know whether it clears up the problem for
you.

John

Index: lockdflt.c
===
RCS file: /home/ncvs/src/libexec/rtld-elf/lockdflt.c,v
retrieving revision 1.3.2.1
diff -u -r1.3.2.1 lockdflt.c
--- lockdflt.c  2000/01/21 02:31:50 1.3.2.1
+++ lockdflt.c  2000/01/28 18:25:01
@@ -28,10 +28,9 @@
 /*
  * Default thread locking implementation for the dynamic linker.  It
  * is used until the client registers a different implementation with
- * dllockinit().  The default implementation does mutual exclusion
- * by blocking the SIGVTALRM, SIGPROF, and SIGALRM signals.  This is
- * based on the observation that most userland thread packages use one
- * of these signals to support preemption.
+ * dllockinit().  The default implementation does mutual exclusion by
+ * blocking almost all signals.  This is based on the observation that
+ * most userland thread packages use signals to support preemption.
  */
 
 #include 
@@ -63,10 +62,13 @@
 
 l = NEW(LockDflt);
 l->depth = 0;
-sigemptyset(&l->lock_mask);
-sigaddset(&l->lock_mask, SIGVTALRM);
-sigaddset(&l->lock_mask, SIGPROF);
-sigaddset(&l->lock_mask, SIGALRM);
+sigfillset(&l->lock_mask);
+sigdelset(&l->lock_mask, SIGTRAP);
+sigdelset(&l->lock_mask, SIGABRT);
+sigdelset(&l->lock_mask, SIGBUS);
+sigdelset(&l->lock_mask, SIGSEGV);
+sigdelset(&l->lock_mask, SIGKILL);
+sigdelset(&l->lock_mask, SIGSTOP);
 return l;
 }
 


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message



Re: java -> ld-elf.so.1: assert failed: ... lockdflt.c:55

2000-01-28 Thread John Polstra

In article <[EMAIL PROTECTED]>,
Chad David  <[EMAIL PROTECTED]> wrote:
> 
> Yes this fixed it.  Thanks.

Thanks for testing it.  I have merged the fix into -stable now.

John
-- 
  John Polstra   [EMAIL PROTECTED]
  John D. Polstra & Co., Inc.Seattle, Washington USA
  "Disappointment is a good sign of basic intelligence."  -- Chögyam Trungpa



To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message



Re: porting linux app. Syscalls

2000-02-03 Thread John Polstra

In article <[EMAIL PROTECTED]>,
Chuck Robey <[EMAIL PROTECTED]> wrote:

> The modula-3 port is about the same size as yours, and it
> bootstraps, but (like you said) it does it from C.

Actually, the standard Modula-3 bootstraps contain assembly-language
sources generated by a cross-compiler, not C.

John
-- 
  John Polstra   [EMAIL PROTECTED]
  John D. Polstra & Co., Inc.Seattle, Washington USA
  "Disappointment is a good sign of basic intelligence."  -- Chögyam Trungpa



To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message



Re: how to compile without libc (so not static)

2000-02-07 Thread John Polstra

In article <[EMAIL PROTECTED]>,
Marco van de Voort <[EMAIL PROTECTED]> wrote:
> 
> I finished the syscalls, so now I moved on the initialisation code.
> 
> To test that I try to create an empty binary, which doesn't link to libc:
> 
> I've put in an hour effort, and wrote the following C file:
> 
> int main (void) {
>  return 0;
> }
> 
> gcc -nostdlib empty.c /usr/lib/crti.o /usr/lib/crt0.o -o empty
> 
> results in:
> 
> /usr/lib/crt1.o: In function `_start':
> /usr/lib/crt1.o(.text+0x4f): undefined reference to `atexit'
> /usr/lib/crt1.o(.text+0x5c): undefined reference to `atexit'
> /usr/lib/crt1.o(.text+0x6f): undefined reference to `exit'

I suspect that "gcc" isn't the standard FreeBSD C compiler in your
case.  Try "which gcc" and find out.  It works fine for me on both
-stable and -current with "cc":


blake$ cc -v -nostdlib hello.c
Using builtin specs.
gcc version 2.95.2 19991024 (release)
 /usr/libexec/cpp -lang-c -v -D__GNUC__=2 -D__GNUC_MINOR__=95 -Di386 -Dunix 
-D__FreeBSD__=4 -D__FreeBSD_cc_version=44 -D__i386__ -D__unix__ -D__FreeBSD__=4 
-D__FreeBSD_cc_version=44 -D__i386 -D__unix -Acpu(i386) -Amachine(i386) 
-Asystem(unix) -Asystem(FreeBSD) -Acpu(i386) -Amachine(i386) -Di386 -D__i386 
-D__i386__ -D__ELF__ hello.c /tmp/cciRD216.i
GNU CPP version 2.95.2 19991024 (release) (i386 FreeBSD/ELF)
#include "..." search starts here:
#include <...> search starts here:
 /usr/include
 /usr/include
End of search list.
The following default directories have been omitted from the search path:
 /usr/include/g++
End of omitted list.
 /usr/libexec/cc1 /tmp/cciRD216.i -quiet -dumpbase hello.c -version -o /tmp/ccbyU216.s
GNU C version 2.95.2 19991024 (release) (i386-unknown-freebsd) compiled by GNU C 
version 2.95.2 19991024 (release).
 /usr/libexec/elf/as -v -o /tmp/ccWvs216.o /tmp/ccbyU216.s
GNU assembler version 2.9.1 (i386-unknown-freebsdelf), using BFD version 2.9.1
 /usr/libexec/elf/ld -m elf_i386 -dynamic-linker /usr/libexec/ld-elf.so.1 
-L/usr/libexec/elf -L/usr/libexec -L/usr/lib /tmp/ccWvs216.o
/usr/libexec/elf/ld: warning: cannot find entry symbol _start; defaulting to 08048074
/tmp/ccWvs216.o: In function `main':
/tmp/ccWvs216.o(.text+0xf): undefined reference to `printf'

John
-- 
  John Polstra   [EMAIL PROTECTED]
  John D. Polstra & Co., Inc.Seattle, Washington USA
  "Disappointment is a good sign of basic intelligence."  -- Chögyam Trungpa



To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message



Re: how to compile without libc (so not static)

2000-02-08 Thread John Polstra

In article <[EMAIL PROTECTED]>,
Marco van de Voort <[EMAIL PROTECTED]> wrote:
> > I suspect that "gcc" isn't the standard FreeBSD C compiler in your
> > case.  Try "which gcc" and find out.  It works fine for me on both
> > -stable and -current with "cc":
> 
> It is an older one indeed.
[...]
> Still doesn't work though with the newer one :-)
> (try some arithmetic to see if that works.

What do you mean, "Still doesn't work"?  If you are using the
/usr/bin/cc that comes with FreeBSD, and if -nostdlib causes the
crt* files and libc to be omitted from the link, then it works.

Making it do something useful is _your_ problem, not ours. :-) We
don't recommend or support linking that way.

John
-- 
  John Polstra   [EMAIL PROTECTED]
  John D. Polstra & Co., Inc.Seattle, Washington USA
  "Disappointment is a good sign of basic intelligence."  -- Chögyam Trungpa



To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message



Re: empty lists in for

2000-03-06 Thread John Polstra

In article <[EMAIL PROTECTED]>,
W Gerald Hicks  <[EMAIL PROTECTED]> wrote:
> 
> Convince me that nothing like the following exists in the
> ports framework and /usr/src and I'd be ok with a change
> *after* 4.0 release (repeats himself)
> 
> # Makefile.foo
> 
> FOOVAR=
> 
>   .
>   .
>   .
> 
> BARVAR=${FOOVAR}
> 
> baz:
>  for i in ${BARVAR} ; do \
>${BLAP} $$i ; \
>  done
> 
> 
> To me, changing it right now on the eve of -release
> would be gratuitous. Later I would be fine with it.

I agree that this is not the time to change it.  But in the long run,
if the ports framework is misusing /bin/sh then the framework needs to
be fixed.  We shouldn't let bugs there influence what we do with the
shell.

John
-- 
  John Polstra   [EMAIL PROTECTED]
  John D. Polstra & Co., Inc.Seattle, Washington USA
  "Disappointment is a good sign of basic intelligence."  -- Chögyam Trungpa



To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message



Re: ijppp for isdn, ppp compression, and netgraph (also: load balancing)

2000-03-07 Thread John Polstra

In article <[EMAIL PROTECTED]>,
Archie Cobbs  <[EMAIL PROTECTED]> wrote:

>  I already have code for MPPC/MPPE, minus the proprietary STAC
>  code and the patented RC4 algorithm,

I have read in several places that only the name "RC4" is trademarked,
and that the algorithm itself is not patented.  Is that not the case?

John
-- 
  John Polstra   [EMAIL PROTECTED]
  John D. Polstra & Co., Inc.Seattle, Washington USA
  "Disappointment is a good sign of basic intelligence."  -- Chögyam Trungpa



To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message



Re: Keeping using locally modified source

2000-03-05 Thread John Polstra

In article <[EMAIL PROTECTED]>,
Bill Fenner  <[EMAIL PROTECTED]> wrote:
> 
> I've got this program in my head that takes a CVS tree and turns it
> into a branch ofanother CVS tree (e.g. FreeBSD rev 1.7 turns into
> rev 1.1.1.7) but it's never managed to make it out of my head, so
> it must be harder than I keep thinking it is =)

I've had the same idea for CVSup for quite awhile but haven't gotten
around to implementing it.  It would be a new "import mode" where
the updates you fetched were "imported" onto the vendor branch of
your local repository.  It would be great for maintaining local
modifications.  I've been thinking about it for a long time and
haven't found a reason yet why it wouldn't work.

John


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message



Re: empty lists in for

2000-03-05 Thread John Polstra

In article <[EMAIL PROTECTED]>,
Doug Barton  <[EMAIL PROTECTED]> wrote:
> 
>   Given that Bash in both standard and POSIX mode complains about 'for i
> in ; do echo $i; done', I would say that it's not POSIX compatible. What
> could/does depend on this behavior "working?"

It works for the realistic cases that might actually be useful.  E.g.,:

x=
for i in $x; do
echo $i
done

works fine.  I don't think it matters very much that the pathological
case "for i in ; ..." doesn't work.

John


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message



Re: empty lists in for

2000-03-05 Thread John Polstra

Doug Barton wrote:
> 
>   Agreed on all counts. By "this behavior" I was referring to the
> example.

Yep -- I was agreeing with you. :-)

John


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message



Re: Lazy binding

2000-05-07 Thread John Polstra

In article <[EMAIL PROTECTED]>,
Arun Sharma  <[EMAIL PROTECTED]> wrote:

> Is there a strong reason why FreeBSD rtld uses lazy binding by default ?

1. Faster start-up times for programs.

2. Better interversion library compatibility.  It doesn't matter if
   a function is missing from a library, as long as the program never
   calls it at runtime.

3. It's what everybody else has always done by default.  I.e., it's
   what users expect.

> In a multithreaded environment, this could make things pretty complex.
> What if a thread holds locks and fails at runtime due to a missing
> symbol ?

*shrug* The same thing that happens if a thread holds locks and
fails for any other reason.

> Also, is there a significant performance benefit to doing lazy binding ?

Start-up time is faster.  Overall runtime might be faster or slower,
depending on the ratio of called functions to total functions.

John
-- 
  John Polstra   [EMAIL PROTECTED]
  John D. Polstra & Co., Inc.Seattle, Washington USA
  "Disappointment is a good sign of basic intelligence."  -- Chögyam Trungpa



To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message



Re: need to borrow a clue re: rtld

2000-05-16 Thread John Polstra

In article <[EMAIL PROTECTED]>,
Jacques A . Vidrine <[EMAIL PROTECTED]> wrote:
> Messing about with Dante (the SOCKS5 replacement), I've encountered
> some difficulty with run-time linking that I don't understand.
> 
> In brief:
>  
>  $ env LD_PRELOAD=libdsocks.so telnet # works
>  $ env LD_PRELOAD=libdsocks.so xchat  # undefined symbol '_gethostbyname'
>  $ env LD_PRELOAD=libc.so:libdsocks.so xchat # works

Which version of FreeBSD?

If you have time, please rebuild "src/libexec/rtld-elf" with
DEBUG_FLAGS=-DDEBUG.  Make a copy of your existing
"/usr/libexec/ld-elf.so.1" and then install the debugging version.
Run your first test case like this:

script Log.1
env LD_DEBUG=1 LD_PRELOAD=libdsocks.so telnet
(exit telnet and get out of "script")

and likewise for the failing test case (with a different filename
for script, of course).  Send the output to me and I'll try to
figure out what's happening.

After you're done, you should restore your original (non-debugging)
rtld.  It's more efficient and also probably more secure.

John
-- 
  John Polstra   [EMAIL PROTECTED]
  John D. Polstra & Co., Inc.Seattle, Washington USA
  "Disappointment is a good sign of basic intelligence."  -- Chögyam Trungpa



To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message



Re: dlopen failure

1999-05-20 Thread John Polstra
In article <373c3f3f.a99db...@cablenet.net>,
Damian Hamill   wrote:
> I have a program that is dumping core.  
> 
> ---
> Here's the gdb output;
> 
> Program terminated with signal 6, Abort trap.
> #0  0x800b728 in _kill ()
> (gdb) bt
> #0  0x800b728 in _kill ()
> #1  0x800b34c in abort ()
> #2  0x8004aa2 in __assert ()
> #3  0x8003b4b in map_object ()
> #4  0x8002e9e in find_symdef ()
> #5  0x800334d in dlopen ()
> #6  0x8049a68 in Get_SQL_Driver (name=0x804c7e4 "mysql") at Vdb.c:150
> #7  0x8049ff9 in GetDefaultDriver () at Vdb.c:254
> #8  0x804a141 in VdbInit (user=0x804bfb1 "nobody", passwd=0x0) at
> Vdb.c:329
> #9  0x8049316 in main ()
> #10 0x8048be5 in _start ()

I don't know what's going on here, but this stack trace can't be
right.  dlopen doesn't call find_symdef, and find_symdef doesn't
call map_object.

John
-- 
  John Polstra   j...@polstra.com
  John D. Polstra & Co., Inc.Seattle, Washington USA
  "Self-interest is the aphrodisiac of belief."   -- James V. DeLong


To Unsubscribe: send mail to majord...@freebsd.org
with "unsubscribe freebsd-hackers" in the body of the message



Re: dlopen failure

1999-05-21 Thread John Polstra

Doug Rabson wrote:
> On Thu, 20 May 1999, John Polstra wrote:
> 
>> In article <373c3f3f.a99db...@cablenet.net>,
>> Damian Hamill   wrote:
>> > I have a program that is dumping core.  
>> > 
>> > ---
>> > Here's the gdb output;
>> > 
>> > Program terminated with signal 6, Abort trap.
>> > #0  0x800b728 in _kill ()
>> > (gdb) bt
>> > #0  0x800b728 in _kill ()
>> > #1  0x800b34c in abort ()
>> > #2  0x8004aa2 in __assert ()
>> > #3  0x8003b4b in map_object ()
>> > #4  0x8002e9e in find_symdef ()
>> > #5  0x800334d in dlopen ()
>> > #6  0x8049a68 in Get_SQL_Driver (name=0x804c7e4 "mysql") at Vdb.c:150
>> > #7  0x8049ff9 in GetDefaultDriver () at Vdb.c:254
>> > #8  0x804a141 in VdbInit (user=0x804bfb1 "nobody", passwd=0x0) at
>> > Vdb.c:329
>> > #9  0x8049316 in main ()
>> > #10 0x8048be5 in _start ()
>> 
>> I don't know what's going on here, but this stack trace can't be
>> right.  dlopen doesn't call find_symdef, and find_symdef doesn't
>> call map_object.
> 
> Isn't map_object() part of the a.out rtld?

Both rtlds have functions named find_symdef() and map_object().  He
indicated that it was an ELF system, so I assumed he was using the
ELF rtld.  In any case, my statement about the stack trace would be
equally true for the a.out dynamic linker. :-)

John
---
  John Polstra   j...@polstra.com
  John D. Polstra & Co., Inc.Seattle, Washington USA
  "Self-interest is the aphrodisiac of belief."   -- James V. DeLong



To Unsubscribe: send mail to majord...@freebsd.org
with "unsubscribe freebsd-hackers" in the body of the message



Re: dlopen failure

1999-05-22 Thread John Polstra
In article <37458ff0.fc9b2...@cablenet.net>,
Damian Hamill   wrote:
> I have found the problem and it is a problem with make.  By chance I did
> an ls -l of the directory and noticed the shared object was only 371
> bytes and thought no that can't be right.

Thanks for letting us know.  I'm glad it's solved now.

> My makefile sez.
> 
> mysqlacc.so : mysqlacc.o
>   ld -Bshareable -o $@ $< -u _floor ../../lib/libV.a ... {other libs}

By the way, don't use "ld -Bshareable" to build shared libraries.
Use "cc -shared".  There are some special .o files from /usr/lib
that need to be linked in, and "cc -shared" will do that for you
automatically.

John
-- 
  John Polstra   j...@polstra.com
  John D. Polstra & Co., Inc.Seattle, Washington USA
  "Self-interest is the aphrodisiac of belief."   -- James V. DeLong


To Unsubscribe: send mail to majord...@freebsd.org
with "unsubscribe freebsd-hackers" in the body of the message



Re: more on the pcmcia saga.

1999-05-27 Thread John Polstra
In article <199905270619.qaa09...@cheops.anu.edu.au>,
Darren Reed   wrote:
> In some mail from Wes Peters, sie said:
> [...]
> > PC-Card Intel 82365 (5 mem & 2 I/O windows)
> > pcic: controller irq 3
> > ^^
> > Initializing PC-card drivers: sio
> 
> Why does it list "sio" here ?  I don't see where sio is actually
> used with PCMCIA here...why doesn't it list ed0 too ?  (Is this a
> bug ?)

Yes, this was a bug.  I committed the fix on April 27:

jdp 1999/04/27 11:34:14 PDT

  Modified files:
sys/pccard   pccard.c 
  Log:
  Fix the code that prints the "Initializing PC-card drivers" message
  so that the list of drivers is correct.  This is a slightly
  simplified version of the patch from the PR.
  
  PR:   misc/10544
  Submitted by: Christophe Colle 
  
  Revision  ChangesPath
  1.75  +3 -4  src/sys/pccard/pccard.c


jdp 1999/04/27 11:39:25 PDT

  Modified files:(Branch: RELENG_3)
sys/pccard   pccard.c 
  Log:
  MFC 1.74 -> 1.75: Print correct list of PC-Card drivers.
  
  Revision  ChangesPath
  1.68.2.3  +3 -4  src/sys/pccard/pccard.c

John
-- 
  John Polstra   j...@polstra.com
  John D. Polstra & Co., Inc.Seattle, Washington USA
  "Self-interest is the aphrodisiac of belief."   -- James V. DeLong


To Unsubscribe: send mail to majord...@freebsd.org
with "unsubscribe freebsd-hackers" in the body of the message



Re: PAM: Undefined symbols at runtime

1999-05-30 Thread John Polstra
In article <19990529151511.a34...@wopr.caltech.edu>,
Matthew Hunt   wrote:
> I have been running 3.x and 4.0-CURRENT for some time, but have
> never bothered using PAM.

If you are running 3.1 or later, or -current, you _are_ using PAM.
Login uses it automatically, and it's not something you enable or
disable.  If you don't have a valid /etc/pam.conf file then login
issues loud and repeated complaints to syslog, which will appear on
the system console.

> Yesterday, after a build of 4.0-CURRENT of that day, I decided to
> try enabling PAM by copying /usr/src/pam.conf to /etc.

There is no file /usr/src/pam.conf.  Do you mean
/usr/src/etc/pam.conf?

> My problem is that login fails, due to undefined symbols in the PAM
> modules:

I don't know what's going on with your system, but something is messed
up.  Maybe you're trying to mix and match a.out and ELF files.  Try
running "file" on /usr/bin/login as well as your libpam and pam
modules.

John
-- 
  John Polstra   j...@polstra.com
  John D. Polstra & Co., Inc.Seattle, Washington USA
  "Self-interest is the aphrodisiac of belief."   -- James V. DeLong


To Unsubscribe: send mail to majord...@freebsd.org
with "unsubscribe freebsd-hackers" in the body of the message



Re: PAM: Undefined symbols at runtime

1999-06-01 Thread John Polstra
Matthew Hunt wrote:
> If I add "-export-dynamic" to LDADD in usr.bin/login/Makefile, everything
> is groovy.
> 
> I've noticed that dynamic linking in Perl also doesn't work for me,
> likely for the same reason.  I haven't tried rebuilding perl with
> "-export-dynamic" yet, though.
> 
> So, the question now is:  Why do I need "-export-dynamic", when
> evidently nobody else does?

I don't know.  Maybe you have something unusual in your
/etc/make.conf file?

John
---
  John Polstra   j...@polstra.com
  John D. Polstra & Co., Inc.Seattle, Washington USA
  "Self-interest is the aphrodisiac of belief."   -- James V. DeLong



To Unsubscribe: send mail to majord...@freebsd.org
with "unsubscribe freebsd-hackers" in the body of the message



Re: Partitioning a freebsd partition on the fly

1999-06-05 Thread John Polstra
In article <19990601131050.a27...@falcon.sourcee.com>, Evan Tsoukalas
 wrote:

> My question is, can I shrink my /usr partition down without losing
> what is on it?  It is a 3.8 gig partition that only has 900 meg or
> so on it.  I would like to trim about a gigabyte off of it so that
> I can install Windoze.  Is this going to be possible, or should I
> start from scratch installing Winoze first?

The only way to shrink it is like this:

* back up the filesystem to someplace using dump
* shrink the partition
* run newfs to create a filesystem on the resized partition
* restore the data from your backup

John
-- 
  John Polstra   j...@polstra.com
  John D. Polstra & Co., Inc.Seattle, Washington USA
  "Self-interest is the aphrodisiac of belief."   -- James V. DeLong


To Unsubscribe: send mail to majord...@freebsd.org
with "unsubscribe freebsd-hackers" in the body of the message



Re: where is variable edata defined ?

1999-06-05 Thread John Polstra
In article <000201beacec$98086960$85343...@k>, fretre  wrote:

> The variable such as _edata, _etext,_gdt are defined in the
> file asnames.h(/usr/include/machine/asnames.h),but
> 1. Where is the file that the variable such as edata,etext,gdt
>are defined in? and

I don't know about gdt.  But edata and etext are provided
automatically by the linker ("ld").

John
-- 
  John Polstra   j...@polstra.com
  John D. Polstra & Co., Inc.Seattle, Washington USA
  "Self-interest is the aphrodisiac of belief."   -- James V. DeLong


To Unsubscribe: send mail to majord...@freebsd.org
with "unsubscribe freebsd-hackers" in the body of the message



Re: m3socks and cvsup

1999-06-16 Thread John Polstra
In article <19990608084217.a5...@alaska.cert.siemens.de>,
Udo Schweigert   wrote:

> I'm using it (runsocks cvsup -P m) for a year now and it works
> without any problems. (Since cvsup 16 the "-P m" is not needed, so
> "runsocks cvsup" should so it).

Just to make sure I understand: You're using standard socks rather
than m3socks, right?

I believe that standard socks should work with cvsup's multiplexed
mode, but I've never tried it.  It would probably be necessary to add
"@M3novm" to the command line, though.  If standard socks works, then
I want to eliminate m3socks.  There are some problems with m3socks
that I just found out about recently.

John
-- 
  John Polstra   j...@polstra.com
  John D. Polstra & Co., Inc.Seattle, Washington USA
  "Self-interest is the aphrodisiac of belief."   -- James V. DeLong


To Unsubscribe: send mail to majord...@freebsd.org
with "unsubscribe freebsd-hackers" in the body of the message



Re: m3socks and cvsup

1999-06-17 Thread John Polstra
Udo Schweigert wrote:

> I'm not using m3socks, I use the standard socks5 from ports (current
> version is socks5-1.0.8). To use it (the runsocks program) with
> cvsup one has to build cvsup with dynamic linking (by building port
> net/cvsup), the precompiled package from CD-ROM and the one from
> net/cvsup-bin port will not work.
> 
> For example I changed in /usr/local/etc/cvsup/update.sh (contained in 
> net/cvsup-mirror port):
> 
>   < cvsup -1gL 1 -c ${colldir} -h ${host} supfile
>   ---
>   > runsocks cvsup -P m -1gL 1 -c ${colldir} -h ${host} supfile
> 
> As stated before, this works since approx. one year without any problems.

Thanks for the information.  I was pretty sure that multiplexed mode
had eliminated the need for a special socks package, but I hadn't
checked it myself.

I recommend adding "@M3novm" to the cvsup command line when using
socks.  Otherwise you might get "Bad address" errors occasionally.

John
---
  John Polstra   j...@polstra.com
  John D. Polstra & Co., Inc.Seattle, Washington USA
  "Self-interest is the aphrodisiac of belief."   -- James V. DeLong



To Unsubscribe: send mail to majord...@freebsd.org
with "unsubscribe freebsd-hackers" in the body of the message



Re: dlopen returns non NULL

1999-06-30 Thread John Polstra
In article ,
Max Khon   wrote:
> 
> in the following code `dlopen' returns NULL
> on the first iteration (because g() is not defined) -- it's ok
> but on the second iteration `dlopen' returns "valid" dlh

ELF or a.out?  Which version of FreeBSD?

For a.out, it's a known bug and there is already an open PR on it.
I wouldn't be surprised if the bug existed in ELF too.

John
-- 
  John Polstra   j...@polstra.com
  John D. Polstra & Co., Inc.Seattle, Washington USA
  "Self-interest is the aphrodisiac of belief."   -- James V. DeLong


To Unsubscribe: send mail to majord...@freebsd.org
with "unsubscribe freebsd-hackers" in the body of the message



Re: tcpdump(1) additions.

1999-06-30 Thread John Polstra
In article <19990630092358.a51...@wopr.caltech.edu>,
Matthew Hunt   wrote:
> 
> I think the point is that when root is running tcpdump on host A, a bad
> guy on host B can create a packet which makes tcpdump on A execute his
> code (as root, since that's who's running it).  This is not desirable.

I would say it is not _acceptable_.  The code shouldn't go into our
source tree until the known buffer overflow problems have been fixed.
It's just stupid to add buffer overflow problems to a program that is
always run as root.

John
-- 
  John Polstra   j...@polstra.com
  John D. Polstra & Co., Inc.Seattle, Washington USA
  "Self-interest is the aphrodisiac of belief."   -- James V. DeLong


To Unsubscribe: send mail to majord...@freebsd.org
with "unsubscribe freebsd-hackers" in the body of the message



Re: dlopen returns non NULL

1999-06-30 Thread John Polstra
Max Khon wrote:

>> For a.out, it's a known bug and there is already an open PR on it.
>> I wouldn't be surprised if the bug existed in ELF too.
> 
> 3.2-STABLE built on 10 Jun, ELF

Thanks for the info.  Could you please do a send-pr on this bug, and
tell me the PR number?  Then I'll assign myself as the resposible
person.  Please be sure to state that it's the ELF dynamic linker.

If you're in a big hurry and would like to work on it yourself, the
relevant code is in "src/libexec/rtld-elf/rtld.c" in the function
dlopen() near the comment that says "XXX - Clean up properly after an
error." :-) The fix may be as simple as calling unref_object_dag()
from the failure cases there, but it will need careful checking.

Some additional changes may be needed in load_needed_objects() near
the comment that says "XXX - cleanup." :-)

Thanks,
John
---
  John Polstra   j...@polstra.com
  John D. Polstra & Co., Inc.Seattle, Washington USA
  "No matter how cynical I get, I just can't keep up."-- Nora Ephron



To Unsubscribe: send mail to majord...@freebsd.org
with "unsubscribe freebsd-hackers" in the body of the message



Pictures from USENIX

1999-07-03 Thread John Polstra
I put a handful of pictures from this year's USENIX conference at
<http://www.freebsd.org/~jdp/usenix1999/>.

John
---
  John Polstra   j...@polstra.com
  John D. Polstra & Co., Inc.Seattle, Washington USA
  "No matter how cynical I get, I just can't keep up."-- Nora Ephron



To Unsubscribe: send mail to majord...@freebsd.org
with "unsubscribe freebsd-hackers" in the body of the message



Re: Login.conf (Whose problem is this) ?

1999-07-03 Thread John Polstra
In article <377e34f9.ca198...@tdnet.com.br>,
Gustavo V G C Rios   wrote:
> i am trying to get a login classes for my users, so i decided to edit
> /etc/login.conf.
> 
> Among other, i have yma classes this way:
> 
> 
> shell:\
> :maxproc=5:\
> :tc=auth-default:
> 
> 
> Looking for auth-default, i saw the following:
> 
> ## Authentication methods
> ## Note that these are disabled by default, and libutil must
> ## be rebuilt with LOGIN_CAP_AUTH defined to use them.

This stuff is old and obsolete.  LOGIN_CAP_AUTH isn't supported any
more.  (It never was fully supported, actually.)  Don't use it.

> That's happened cause i turn on LOGIN_CAP_AUTH!
> My doubt is: Shouldn't it be -DLOGIN_CAP_AUTH?

Yes, of course.  That's what "with LOGIN_CAP_AUTH defined" means.
But it's broken, so don't bother.

If you want login classes all you need to do is "vipw" and insert
the correct class in the class field.  (See passwd(5) for details.)
If you want to create a new class, just edit it into your login.conf
file and then run cap_mkdb as instructed in the comment at the top
of that file.

John
-- 
  John Polstra   j...@polstra.com
  John D. Polstra & Co., Inc.Seattle, Washington USA
  "No matter how cynical I get, I just can't keep up."-- Nora Ephron


To Unsubscribe: send mail to majord...@freebsd.org
with "unsubscribe freebsd-hackers" in the body of the message



Re: Login.conf (Whose problem is this) ?

1999-07-05 Thread John Polstra
Sheldon Hearn wrote:
>> This stuff is old and obsolete.  LOGIN_CAP_AUTH isn't supported any
>> more.  (It never was fully supported, actually.)  Don't use it.
> 
> There's an open PR for this, PR 10115. I assume all that's required is
> that we smack the outdated comments from login.conf?

Yes, I think so.

John
---
  John Polstra   j...@polstra.com
  John D. Polstra & Co., Inc.Seattle, Washington USA
  "No matter how cynical I get, I just can't keep up."-- Nora Ephron



To Unsubscribe: send mail to majord...@freebsd.org
with "unsubscribe freebsd-hackers" in the body of the message



Re: poll() vs select()

1999-07-06 Thread John Polstra
In article <199907050103.saa51...@bubba.whistle.com>,
Archie Cobbs   wrote:
> 
> A new, faster event notification system would be great. But don't forget
> to include *all* events, not just file descriptor readability/writability.

Yes!  Yes!  Yes!  (I agree.)

John
-- 
  John Polstra   j...@polstra.com
  John D. Polstra & Co., Inc.Seattle, Washington USA
  "No matter how cynical I get, I just can't keep up."-- Nora Ephron


To Unsubscribe: send mail to majord...@freebsd.org
with "unsubscribe freebsd-hackers" in the body of the message



Re: poll() vs select()

1999-07-06 Thread John Polstra
In article ,
Brian F. Feldman  wrote:
> On Sun, 4 Jul 1999, Archie Cobbs wrote:
> 
> > A new, faster event notification system would be great. But don't forget
> > to include *all* events, not just file descriptor readability/writability.
> > I.e., signal delivery, child exit notification, maybe even support for
> > an arbitrary number of (independent) timers. And make the events independent
> > from each other -- to avoid problems like when an application completely
> > hangs for 90 seconds when it calls gethostbyname().
> 
> An async thread to do hostname lookups would be great! Wouldn't be too
> hard in libc_r, would it?

The application itself has to get involved if it wants to do async
name lookups, or async anything else, for that matter.  Suppose you
do have an async thread to do hostname lookups as you propose.  What
is the application going to do while that thread is waiting for the
lookup to complete?  It depends on the application, and thus it has
to be coded into the application.  Maybe there's nothing useful the
application could do until the lookup returns.

I've been told that it works fine to use libc_r and put the name
lookups into a separate thread.  But to take advantage of it, the
application has to have something useful it wants to do (and can do)
in the meantime.

John
-- 
  John Polstra   j...@polstra.com
  John D. Polstra & Co., Inc.Seattle, Washington USA
  "No matter how cynical I get, I just can't keep up."-- Nora Ephron


To Unsubscribe: send mail to majord...@freebsd.org
with "unsubscribe freebsd-hackers" in the body of the message



Re: Dynamic linking

1999-07-06 Thread John Polstra
In article <3780aeb2.20616...@agama.com>,
Andrew Iltchenko   wrote:
> Hi everyone!
> 
> Is there a way of making dlopen return an error from the shared object's
> _init function?

No.  The _init function by definition is "void _init(void)", and so
it cannot return a value.

John
-- 
  John Polstra   j...@polstra.com
  John D. Polstra & Co., Inc.Seattle, Washington USA
  "No matter how cynical I get, I just can't keep up."-- Nora Ephron


To Unsubscribe: send mail to majord...@freebsd.org
with "unsubscribe freebsd-hackers" in the body of the message



Re: mmap question

1999-07-06 Thread John Polstra
In article <000101bec73c$e20e3660$291c4...@kbyanc.alcnet.com>,
Kelly Yancey  wrote:
> 
>   Also, in case it hasn't been notice already (I'm running -stable from May
> 18th), the mmap(2) manpage has a typo: it has "#include "

So what's the typo, exactly?

John
-- 
  John Polstra   j...@polstra.com
  John D. Polstra & Co., Inc.Seattle, Washington USA
  "No matter how cynical I get, I just can't keep up."-- Nora Ephron


To Unsubscribe: send mail to majord...@freebsd.org
with "unsubscribe freebsd-hackers" in the body of the message



Re: poll() vs select()

1999-07-06 Thread John Polstra
Brian F. Feldman wrote:
> On Tue, 6 Jul 1999, John Polstra wrote:
> 
>> In article ,
>> 
>> The application itself has to get involved if it wants to do async
>> name lookups, or async anything else, for that matter.  Suppose you
>> do have an async thread to do hostname lookups as you propose.  What
>> is the application going to do while that thread is waiting for the
>> lookup to complete?  It depends on the application, and thus it has
>> to be coded into the application.  Maybe there's nothing useful the
>> application could do until the lookup returns.
>> 
>> I've been told that it works fine to use libc_r and put the name
>> lookups into a separate thread.  But to take advantage of it, the
>> application has to have something useful it wants to do (and can do)
>> in the meantime.
> 
> It would let the other threads run more while the lookup is occurring.
> Wouldn't that be the most natural expectation of it? Or would this
> be too hard without kernel-assisted threading?

What I'm saying is, we already have that in multi-threaded
applications.  The system can't just provide it automatically to
single-threaded applications; they wouldn't know how to take advantage
of it.  In other words:

* Multi-threaded applications already have it.
* Single-threaded applications can't use it.

John
---
  John Polstra   j...@polstra.com
  John D. Polstra & Co., Inc.Seattle, Washington USA
  "No matter how cynical I get, I just can't keep up."-- Nora Ephron



To Unsubscribe: send mail to majord...@freebsd.org
with "unsubscribe freebsd-hackers" in the body of the message



Re: a BSD identd

1999-07-11 Thread John Polstra
In article <199907102150.paa33...@harmony.village.org>,
Warner Losh   wrote:
> 
> Some ftpd and sendmail servers make the queries.  When I have my fake
> identd in place, they go much faster... :-)

Are you sure?  If you simply don't run an identd, the queries will get
an instant connection refused error.  That's even faster than sending
back a bogus response.

The only way a long timeout can occur is if you have a filter rule
installed that drops the incoming packets without responding to them.
You can block the incoming packets but still avoid the timeout with a
filter rule that sends back a reset:

add reset tcp from any to any auth setup in via etha16

John
-- 
  John Polstra   j...@polstra.com
  John D. Polstra & Co., Inc.Seattle, Washington USA
  "No matter how cynical I get, I just can't keep up."-- Nora Ephron


To Unsubscribe: send mail to majord...@freebsd.org
with "unsubscribe freebsd-hackers" in the body of the message



Re: a BSD identd

1999-07-11 Thread John Polstra
Doug wrote:
> John Polstra wrote:
>> 
>> Are you sure?  If you simply don't run an identd, the queries will
>> get an instant connection refused error.  That's even faster than
>> sending back a bogus response.
>
>   Many daemons that request ident, and almost all IRC daemons
> that I'm aware of don't take "NO" for an answer. They sit waiting
> for a valid response, and timeout after X seconds, where X is c. 30
> seconds.

Really??  Even though their connect() call failed?  Ick!  I know
sendmail doesn't behave that way.  I'll take your word about the IRC
daemons -- I don't know anything about them.

> Whether this behavior is good or not begs the question,

Agreed.

John
---
  John Polstra   j...@polstra.com
  John D. Polstra & Co., Inc.Seattle, Washington USA
  "No matter how cynical I get, I just can't keep up."-- Nora Ephron



To Unsubscribe: send mail to majord...@freebsd.org
with "unsubscribe freebsd-hackers" in the body of the message



Re: Why 'dd' does not seek over 'char' devs (specifically raw disk

1999-07-13 Thread John Polstra
In article ,
Brian F. Feldman  wrote:
> On Tue, 13 Jul 1999, Luigi Rizzo wrote:
> 
> > couldn't we first try lseek and only do the reads on char devs where
> > the lseek fails ?
> 
> lseek() won't usually fail unless it's something like EBADF. It merely
> sets the current fd's offset. It would be nice to be able to tell from
> a device driver if it supports seeking (da) or not (sa). Hmm... actually,
> if we just specify somehow that we support either direct or sequential
> access... this would be possible.

It would be a big improvement if dd could handle seeking on character
disk devices.  I'm reasonably certain there exists some ioctl (perhaps
related to reading disk labels) which could be used to figure out
whether a character device was a disk or not.  A simple fix like that
would make dd a lot more useful for the case Luigi brought up.

John
-- 
  John Polstra   j...@polstra.com
  John D. Polstra & Co., Inc.Seattle, Washington USA
  "No matter how cynical I get, I just can't keep up."-- Nora Ephron


To Unsubscribe: send mail to majord...@freebsd.org
with "unsubscribe freebsd-hackers" in the body of the message



Re: a BSD identd

1999-07-13 Thread John Polstra
In article <199907132004.aa08...@salmon.maths.tcd.ie>,
Ian Dowse   wrote:
> 
> Why not actually store the fake ID in a symbolic link? That way you just
> do a readlink(), which would be safer, neater and faster than reading a
> file. A user can set up a fake ID with something like:
>   
>   ln -s "Warm-Fuzzy" .fakeid

Ick.  Please, no more abuse of symbolic links!  Once (malloc) was
enough.

Data is held in files, not in filenames.

John
-- 
  John Polstra   j...@polstra.com
  John D. Polstra & Co., Inc.Seattle, Washington USA
  "No matter how cynical I get, I just can't keep up."-- Nora Ephron


To Unsubscribe: send mail to majord...@freebsd.org
with "unsubscribe freebsd-hackers" in the body of the message



Re: glibc

1999-07-19 Thread John Polstra
In article ,
Brian F. Feldman  wrote:
> 
[GNU getopt]
> If you give me documentation on it, I'll implement it for the BSD libc.

Note, we already have GNU getopt in the source tree in libiberty (in
two different places -- binutils and gdb).  It might be better just
to install libiberty from one of those places.

Left as an exercise for the reader: Figure out how the two differ
and which one is "better". :-)

John
-- 
  John Polstra   j...@polstra.com
  John D. Polstra & Co., Inc.Seattle, Washington USA
  "No matter how cynical I get, I just can't keep up."-- Nora Ephron


To Unsubscribe: send mail to majord...@freebsd.org
with "unsubscribe freebsd-hackers" in the body of the message



Re: glibc

1999-07-19 Thread John Polstra
Brian F. Feldman wrote:
> On Mon, 19 Jul 1999, John Polstra wrote:
> 
>> Left as an exercise for the reader: Figure out how the two differ
>> and which one is "better". :-)
> 
> I'd rather hurt myself severely.

Of course.  That's a prerequisite for becoming a committer. :-)

John
---
  John Polstra   j...@polstra.com
  John D. Polstra & Co., Inc.Seattle, Washington USA
  "No matter how cynical I get, I just can't keep up."-- Nora Ephron



To Unsubscribe: send mail to majord...@freebsd.org
with "unsubscribe freebsd-hackers" in the body of the message



Re: PAM & LDAP in FreeBSD

1999-07-20 Thread John Polstra
In article <19990720082825.b...@fisicc-ufm.edu>,
Oscar Bonilla   wrote:

> Couldn't we do this with /etc/auth.conf?

The plan when PAM was brought in was to eliminate auth.conf.  I don't
think we should be looking for new uses for it.

John
-- 
  John Polstra   j...@polstra.com
  John D. Polstra & Co., Inc.Seattle, Washington USA
  "No matter how cynical I get, I just can't keep up."-- Nora Ephron


To Unsubscribe: send mail to majord...@freebsd.org
with "unsubscribe freebsd-hackers" in the body of the message



Re: if_dl.h in stable causes sendmail segmentation

1999-07-20 Thread John Polstra
In article <199907201542.raa02...@oskar.nanoteq.co.za>,
Reinier Bezuidenhout   wrote:

> I have the following situation...
... [various userland SEGVs traced down to a change in if_dl.h]

Just a guess: it sounds like the kind of thing that would happen if
you updated your kernel without also rebuilding userland.

John
-- 
  John Polstra   j...@polstra.com
  John D. Polstra & Co., Inc.Seattle, Washington USA
  "No matter how cynical I get, I just can't keep up."-- Nora Ephron


To Unsubscribe: send mail to majord...@freebsd.org
with "unsubscribe freebsd-hackers" in the body of the message



Re: PAM & LDAP in FreeBSD

1999-07-20 Thread John Polstra
Oscar Bonilla wrote:
> 
> ok, so this clarifies a lot of things... let's get rid of /etc/auth.conf
> and go with /etc/pam.conf for the authentication and /etc/nsswitch.conf
> for the info on where to obtain the databases from.

That seems reasonable to me.

PAM actually is designed to serve four separate but related functions.
We're only using the authentication function currently.  For an
overview of PAM, see PAM(8) in the manual pages.  There is also a spec
in "src/contrib/libpam/doc/specs/rfc86.0.txt".

John
---
  John Polstra   j...@polstra.com
  John D. Polstra & Co., Inc.Seattle, Washington USA
  "No matter how cynical I get, I just can't keep up."-- Nora Ephron



To Unsubscribe: send mail to majord...@freebsd.org
with "unsubscribe freebsd-hackers" in the body of the message



  1   2   3   >