kFreeBSD 6.0 packages

Robert Millan rmh at aybabtu.com
Mon Sep 5 07:57:02 UTC 2005


On Sun, Sep 04, 2005 at 03:09:01PM -0400, Robert Edmonds wrote:
> Robert Millan wrote:
> > On Sun, Sep 04, 2005 at 03:58:53AM -0400, Robert Edmonds wrote:
> > >   - has no hwpmc[2] driver, which caused build errors.  But this driver
> > >     is not present in 5.x.
> > 
> > Strange.  What kind of build errors?  Could you paste?
> 
> Argh, I didn't log them.
> 
> > >   - does not have SMP support.
> > 
> > Why not?
> 
> Performance on UP (my kFreeBSD development box is a snapshotted VMware 5
> image), also the 5.x kernels don't have this enabled.

Ah I see.  Well, Linux builds in Debian include separate smp and non-smp images.
I guess we'll have to do the same when we release, but personaly I wouldn't
bother for now.

> > Sounds like ktrace output could help a lot.  Glibc openpty obtains a path string
> > using pts_name(), and then attempts to open() it.  Later there's termios magic
> > and an ioctl.  Which of them returns EINVAL?
> 
> The ioctl:
> 
>    228 sshd     CALL  open(0xbfbfd930,0x2,0)
>    228 sshd     NAMI  "/dev/ptyp0"
>    228 sshd     RET   open 6
>    228 sshd     CALL  ioctl(0x6,TIOCSCTTY,0)
>    228 sshd     RET   ioctl -1 errno 35 Resource temporarily unavailable
>    228 sshd     CALL  nfstat(0x6,0xbfbfd340)
>    228 sshd     RET   nfstat 0
>    228 sshd     CALL  close(0x6)
>    228 sshd     RET   close 0
>    228 sshd     CALL  write(0x2,0xbfbfd97c,0x1b)
>    228 sshd     GIO   fd 2 wrote 27 bytes
>        "openpty: Invalid argument\r
>        "
>    228 sshd     RET   write 27/0x1b
>    228 sshd     CALL  write(0x2,0xbfbfd99c,0x29)
>    228 sshd     GIO   fd 2 wrote 41 bytes
>        "session_pty_req: session 0 alloc failed\r
>        "

But the ioctl in openpty() is TIOCSWINSZ instead, and "Resouce temporarily
unavailable" is EAGAIN IIRC, not EINVAL.

TIOCSCTTY is, however, found in login_tty().  I don't see why the ioctl fails,
but there's fallback code below.  What happens if you do:

--- glibc-2.3/login/login_tty.c~        1999-06-09 05:48:46.000000000 +0200
+++ glibc-2.3/login/login_tty.c 2005-09-05 09:51:53.000000000 +0200
@@ -42,7 +42,7 @@
        int fd;
 {
        (void) setsid();
-#ifdef TIOCSCTTY
+#if 0
        if (ioctl(fd, TIOCSCTTY, (char *)NULL) == -1)
                return (-1);
 #else

-- 
Robert Millan



More information about the Glibc-bsd-devel mailing list