Subject: x11/tk build failure
To: None <tech-pkg@netbsd.org>
From: Nathan J. Williams <nathanw@wasabisystems.com>
List: tech-pkg
Date: 02/17/2004 13:39:22
I recently had a pkgsrc build of Tk blow out as soon as it started
trying to compile something, on a -current i386 box:

===> Building for tk-8.3.4
libtool  --mode=compile gcc -pipe -c -O2 -I/usr/pkg/include -O2 -I/usr/pkg/include -O -Wall -Wconversion -Wno-implicit-int -fPIC  -I/u1/nbsd/pkgsrc/x11/tk/work.i386/tk8.3.4/unix -I/u1/nbsd/pkgsrc/x11/tk/work.i386/tk8.3.4/unix/../generic  -I/u1/nbsd/pkgsrc/x11/tk/work.i386/tk8.3.4/unix/../bitmaps -I/u1/usr/pkg/lib/../include/tcl/generic -I/usr/X11R6/include  -DHAVE_UNISTD_H=1 -DHAVE_LIMITS_H=1 -DSTDC_HEADERS=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_PW_GECOS=1      -DTCL_NO_DEPRECATED  /u1/nbsd/pkgsrc/x11/tk/work.i386/tk8.3.4/unix/../generic/tk3d.c
mkdir .libs
 gcc -pipe -c -O2 -I/u1/nbsd/pkgsrc/x11/tk/work.i386/.buildlink/include -O2 -O -Wall -Wconversion -Wno-implicit-int -fPIC -I/u1/nbsd/pkgsrc/x11/tk/work.i386/tk8.3.4/unix -I/u1/nbsd/pkgsrc/x11/tk/work.i386/tk8.3.4/unix/../generic -I/u1/nbsd/pkgsrc/x11/tk/work.i386/tk8.3.4/unix/../bitmaps -I/u1/nbsd/pkgsrc/x11/tk/work.i386/.x11-buildlink/include -DHAVE_UNISTD_H=1 -DHAVE_LIMITS_H=1 -DSTDC_HEADERS=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_PW_GECOS=1 -DTCL_NO_DEPRECATED /u1/nbsd/pkgsrc/x11/tk/work.i386/tk8.3.4/unix/../generic/tk3d.c  -fPIC -DPIC -o .libs/tk3d.o

In file included from /u1/nbsd/pkgsrc/x11/tk/work.i386/tk8.3.4/generic/tkPort.h:32,
                 from /u1/nbsd/pkgsrc/x11/tk/work.i386/tk8.3.4/generic/tkInt.h:27,
                 from /u1/nbsd/pkgsrc/x11/tk/work.i386/tk8.3.4/generic/tk3d.h:18,
                 from /u1/nbsd/pkgsrc/x11/tk/work.i386/tk8.3.4/generic/tk3d.c:16:
/u1/nbsd/pkgsrc/x11/tk/work.i386/tk8.3.4/unix/tkUnixPort.h:222:20: tclInt.h: No such file or directory
*** Error code 1

Notably, the -I/u1/usr/pkg/lib/../include/tcl/generic bit from the
libtool invocation disappeared entirely; I would have expected it to
be redirected into the buildlink area somewhere, but it didn't. A
little grepping around found this in
work.i386/.buildlink/bin/.cache-add-trans: 

-I/u1/usr/pkg/lib/../include/tcl/generic)       # /u1/nbsd/pkgsrc/x11/tk/work.i386/.buildlink/bin/libtool
        cachearg="" 
        arg="$cachearg"; cachehit=yes
        ;;

which looks like it just blows away the argument instead of
translating it.  My best guess is that the "lib/../include" pattern
isn't being parsed or matched by something else, but I'm not exactly
up to speed on the buildlink stuff. Ideas?

        - Nathan