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