Subject: Re: pkg/36441: www/thttpd build fails in current pkgsrc
To: None <gnats-bugs@NetBSD.org>
From: Aleksej Saushev <asau@hotbox.ru>
List: pkgsrc-bugs
Date: 06/05/2007 23:19:36
"OBATA Akio" <obache@netbsd.org> writes:

> Build problem isn't happened on my environment(NetBSD 3.1 and pkgsrc-HEAD).
> What is occured on your environment? Please present a error message.

I use netbsd-HEAD and pkgsrc-HEAD.

To be more informative, I ran it with 'make MAKE_JOBS=1 >build.log 2>&1'
since I have 'MAKE_JOBS?=2' in my /etc/mk.conf, I get this, in short:

creating cache ./config.cache
checking host system type... i386--netbsdelf
checking target system type... i386--netbsdelf
checking build system type... i386--netbsdelf

   [Lots of configuration]

checking for a BSD compatible install... /usr/bin/install -c -o root -g wheel
updating cache ./config.cache
creating ./config.status
creating Makefile
creating cgi-src/Makefile
creating extras/Makefile
===> Building for thttpd-2.25bnb5
for i in cgi-src extras ; do (  cd $i ;  pwd ;  /usr/bin/make   -j 1  WEBDIR=/usr/pkg/share/thttpd  CGIBINDIR=/usr/pkg/libexec/cgi-bin  MANDIR=/usr/pkg/man  WEBGROUP=www  ) ; done
/usr/pkgsrc/www/thttpd/work/thttpd-2.25b/cgi-src
cc -O2 -O3 -march=i686 -O2 -DHAVE__PROGNAME=1 -DHAVE_FCNTL_H=1 -DHAVE_GRP_H=1 -DHAVE_MEMORY_H=1 -DHAVE_PATHS_H=1 -DHAVE_POLL_H=1 -DHAVE_SYS_POLL_H=1 -DHAVE_SYS_EVENT_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_DIRENT_H=1 -DHAVE_LIBCRYPT=1 -DHAVE_STRERROR=1 -DHAVE_WAITPID=1 -DHAVE_VSNPRINTF=1 -DHAVE_DAEMON=1 -DHAVE_SETSID=1 -DHAVE_SETLOGIN=1 -DHAVE_GETADDRINFO=1 -DHAVE_GETNAMEINFO=1 -DHAVE_GAI_STRERROR=1 -DHAVE_KQUEUE=1 -DHAVE_SIGSET=1 -DHAVE_ATOLL=1 -DHAVE_UNISTD_H=1 -DHAVE_GETPAGESIZE=1 -DHAVE_MMAP=1 -DHAVE_SELECT=1 -DHAVE_POLL=1 -DHAVE_TM_GMTOFF=1 -DHAVE_INT64T=1 -DHAVE_SOCKLENT=1 -I.. -c redirect.c
cc -O2 -O3 -march=i686 -O2 -DHAVE__PROGNAME=1 -DHAVE_FCNTL_H=1 -DHAVE_GRP_H=1 -DHAVE_MEMORY_H=1 -DHAVE_PATHS_H=1 -DHAVE_POLL_H=1 -DHAVE_SYS_POLL_H=1 -DHAVE_SYS_EVENT_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_DIRENT_H=1 -DHAVE_LIBCRYPT=1 -DHAVE_STRERROR=1 -DHAVE_WAITPID=1 -DHAVE_VSNPRINTF=1 -DHAVE_DAEMON=1 -DHAVE_SETSID=1 -DHAVE_SETLOGIN=1 -DHAVE_GETADDRINFO=1 -DHAVE_GETNAMEINFO=1 -DHAVE_GAI_STRERROR=1 -DHAVE_KQUEUE=1 -DHAVE_SIGSET=1 -DHAVE_ATOLL=1 -DHAVE_UNISTD_H=1 -DHAVE_GETPAGESIZE=1 -DHAVE_MMAP=1 -DHAVE_SELECT=1 -DHAVE_POLL=1 -DHAVE_TM_GMTOFF=1 -DHAVE_INT64T=1 -DHAVE_SOCKLENT=1 -I.. -c ssi.c
cc -O2 -O3 -march=i686 -O2 -DHAVE__PROGNAME=1 -DHAVE_FCNTL_H=1 -DHAVE_GRP_H=1 -DHAVE_MEMORY_H=1 -DHAVE_PATHS_H=1 -DHAVE_POLL_H=1 -DHAVE_SYS_POLL_H=1 -DHAVE_SYS_EVENT_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_DIRENT_H=1 -DHAVE_LIBCRYPT=1 -DHAVE_STRERROR=1 -DHAVE_WAITPID=1 -DHAVE_VSNPRINTF=1 -DHAVE_DAEMON=1 -DHAVE_SETSID=1 -DHAVE_SETLOGIN=1 -DHAVE_GETADDRINFO=1 -DHAVE_GETNAMEINFO=1 -DHAVE_GAI_STRERROR=1 -DHAVE_KQUEUE=1 -DHAVE_SIGSET=1 -DHAVE_ATOLL=1 -DHAVE_UNISTD_H=1 -DHAVE_GETPAGESIZE=1 -DHAVE_MMAP=1 -DHAVE_SELECT=1 -DHAVE_POLL=1 -DHAVE_TM_GMTOFF=1 -DHAVE_INT64T=1 -DHAVE_SOCKLENT=1 -I.. -c match.c
gcc: match.c: No such file or directory
gcc: no input files
*** [../match.o] Error code 1
1 error

make: stopped in /usr/pkgsrc/www/thttpd/work/thttpd-2.25b/cgi-src


Note what happens when actual build starts: make starts building
from cgi-src subdirectory.  Examination of Makefile.in shows this
(again, in short):

ALL =		thttpd
...
all:		this subdirs
this:		$(ALL)
thttpd: ...
...
subdirs:
	for i in $(SUBDIRS) ; do ( \
        ...

Note empty dependency list for "subdirs" target.  
But "subdirs" require match.o!
This is stated in cgi-src/Makefile.in

As I understand, make(1) ordered targets arbitrarily, as
described in Makefile, but this description is wrong in 
its incompleteness.

From ident output I see that make has been changed since 3.1,
thus it may be related to make. Is it bug in make?
Should I provide more information?