ports/172745: The port sessreg does not compile in 9.1-PRERELEASE #23
Jason E. Hale
jhale at freebsd.org
Tue Oct 16 03:50:01 UTC 2012
The following reply was made to PR ports/172745; it has been noted by GNATS.
From: "Jason E. Hale" <jhale at freebsd.org>
To: Joao Rocha Braga Filho <goffredo at gmail.com>, bug-followup at freebsd.org
Cc:
Subject: Re: ports/172745: The port sessreg does not compile in 9.1-PRERELEASE #23
Date: Mon, 15 Oct 2012 23:45:28 -0400
On Tuesday, October 16, 2012 00:12:45 Joao Rocha Braga Filho wrote:
> On Mon, Oct 15, 2012 at 11:45 PM, Jason E. Hale <jhale at freebsd.org> wrote:
> > This looks similar to ports/144525. Could try the advice in that PR and
> > run: # cd /usr/src && make delete-old
> >
> Is the same problem, with other FreeBSD version (9.0) and port version
> (sessreg 1.0.5 x sessreg 1.0.7).
>
> I searched in pr list, and missed it.
>
> In my computer:
>
> "
> root:[152] find /usr/obj/ -name 'ttyslot*' -ls
> 1183232 4 -rw-r--r-- 1 root wheel
> 1344 Oct 13 15:46 /usr/obj/usr/src/lib/libc/ttyslot.o
> 1184362 4 -rw-r--r-- 1 root wheel
> 1344 Oct 13 15:47 /usr/obj/usr/src/lib/libc/ttyslot.So
> 1189387 4 -rw-r--r-- 1 root wheel
> 1488 Oct 13 17:15 /usr/obj/usr/src/lib/libc/ttyslot.po
> 1508043 4 -rw-r--r-- 1 root wheel
> 810 Oct 13 17:49 /usr/obj/lib32/usr/src/lib/libc/ttyslot.o
> 1509178 4 -rw-r--r-- 1 root wheel
> 892 Oct 13 17:50 /usr/obj/lib32/usr/src/lib/libc/ttyslot.po
> 1510314 4 -rw-r--r-- 1 root wheel
> 810 Oct 13 17:51 /usr/obj/lib32/usr/src/lib/libc/ttyslot.So
> root:[153]
> "
>
> But is more strange:
>
> "
> root:[161] l /usr/lib/libc.*
> 3456 -r--r--r-- 1 root wheel 3511792 Oct 13 16:16 /usr/lib/libc.a
> 0 lrwxr-xr-x 1 root wheel 14 Oct 13 16:16 /usr/lib/libc.so
> -> /lib/libc.so.7
> root:[162] nm /usr/lib/libc.a | grep ttyslot
> ttyslot.o:
> 0000000000000000 T __ttyslot
> 0000000000000000 T ttyslot at FBSD_1.0
> root:[163] nm /lib/libc.so.7 | grep ttyslot
> nm: /lib/libc.so.7: no symbols
> root:[164] l /lib/libc.so.7
> 1344 -r--r--r-- 1 root wheel 1358392 Oct 13 16:16 /lib/libc.so.7
> "
>
> Why didn't compiled?
>
Because the ttyslot() function has been removed.
> "
> root:[173] make
> ===> Building for sessreg-1.0.7
> make all-recursive
> Making all in man
> CCLD sessreg
> sessreg.o: In function `main':
> sessreg.c:(.text+0xc7a): undefined reference to `ttyslot'
> *** [sessreg] Error code 1
>
> Stop in /usr/ports/x11/sessreg/work/sessreg-1.0.7.
> *** [all-recursive] Error code 1
>
> Stop in /usr/ports/x11/sessreg/work/sessreg-1.0.7.
> *** [all] Error code 1
>
> Stop in /usr/ports/x11/sessreg/work/sessreg-1.0.7.
> *** [do-build] Error code 1
>
> Stop in /usr/ports/x11/sessreg.
> "
>
If you upgraded this machine from FreeBSD < 9.0 at any point then you probably
have some leftovers that need to be removed which is why I suggested running
make delete-old
> Or:
>
> "
> goffredo:[1019] cc -s -o ttyslot_test3 ttyslot_test.c
> /tmp//ccFx55lb.o: In function `main':
> ttyslot_test.c:(.text+0xa): undefined reference to `ttyslot'
> goffredo:[1020] cat ttyslot_test.c
>
> #include <stdio.h>
> #include <unistd.h>
>
>
> main()
> {
> printf( "%d\n",ttyslot() );
> }
>
> goffredo:[1021] cc -s -o ttyslot_test ttyslot_test.c
> /tmp//ccKUda6b.o: In function `main':
> ttyslot_test.c:(.text+0xa): undefined reference to `ttyslot'
> goffredo:[1022]
> "
That won't compile since ttyslot is not in stdlib.h anymore in FreeBSD 9.x.
All ttyslot() does now is return 0. See:
http://svnweb.freebsd.org/base/release/9.0.0/lib/libc/gen/ttyslot.c?view=log
More information about the freebsd-ports-bugs
mailing list