Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 29 Aug 2014 10:06:58 -0700 (PDT)
From:      Don Lewis <truckman@FreeBSD.org>
To:        ian@FreeBSD.org
Cc:        stable@FreeBSD.org
Subject:   Re: building an 8.4-STABLE i386 poudriere jail on an 10.0-STABLE amd64 host
Message-ID:  <201408291707.s7TH6wTV072468@gw.catspoiler.org>
In-Reply-To: <201408290707.s7T77kah070122@gw.catspoiler.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On 29 Aug, To: ian@freebsd.org wrote:
> On 28 Aug, To: ian@freebsd.org wrote:
>> On 28 Aug, Ian Lepore wrote:
>>> On Wed, 2014-08-27 at 18:45 -0700, Don Lewis wrote:
>>>> I'm trying to create an 8.4-STABLE i386 poudriere jail on a host that is
>>>> running 10.0-STABLE amd64.  I'm running the following commmand:
>>>> 
>>>> poudriere jail -c -j 84STABLEi386 -m svn -v stable/8 -a i386 -p default
>>>> 
>>>> Unfortuantely, I'm getting stuck at this point:
>>>> 
>>>> ===> gnu/usr.bin/gperf/doc (obj)
>>>> /usr/obj/i386/var/poudriere/jails/84STABLEi386/usr/src/tmp/var/poudriere/jails/84STABLEi386/usr/src/gnu/usr.bin/gperf/doc created for /var/poudriere/jails/84STABLEi386/usr/src/gnu/usr.bin/gperf/doc
>>>> rm -f .depend
>>>> mkdep -f .depend -a    -I/usr/obj/i386/var/poudriere/jails/84STABLEi386/usr/src/tmp/legacy/usr/include -I/var/poudriere/jails/84STABLEi386/usr/src/gnu/usr.bin/gperf/../../../contrib/gperf/lib -I/var/poudriere/jails/84STABLEi386/usr/src/gnu/usr.bin/gperf  /var/poudriere/jails/84STABLEi386/usr/src/gnu/usr.bin/gperf/../../../contrib/gperf/src/bool-array.cc /var/poudriere/jails/84STABLEi386/usr/src/gnu/usr.bin/gperf/../../../contrib/gperf/src/hash-table.cc /var/poudriere/jails/84STABLEi386/usr/src/gnu/usr.bin/gperf/../../../contrib/gperf/src/input.cc /var/poudriere/jails/84STABLEi386/usr/src/gnu/usr.bin/gperf/../../../contrib/gperf/src/keyword-list.cc /var/poudriere/jails/84STABLEi386/usr/src/gnu/usr.bin/gperf/../../../contrib/gperf/src/keyword.cc /var/poudriere/jails/84STABLEi386/usr/src/gnu/usr.bin/gperf/../../../contrib/gperf/src/main.cc /var/poudriere/jails/84STABLEi386/usr/src/gnu/usr.bin/gperf/../../../contrib/gperf/src/options.cc /var/poudriere/jails/84STABLEi386/usr!
 /!
>  s!
>>  r!
>>>  c/!
>>>>  gnu/usr.bin/gperf/../../../contrib/gperf/src/output.cc /var/poudriere/jails/84STABLEi386/usr/src/gnu/usr.bin/gperf/../../../contrib/gperf/src/positions.cc /var/poudriere/jails/84STABLEi386/usr/src/gnu/usr.bin/gperf/../../../contrib/gperf/src/search.cc /var/poudriere/jails/84STABLEi386/usr/src/gnu/usr.bin/gperf/../../../contrib/gperf/src/version.cc /var/poudriere/jails/84STABLEi386/usr/src/gnu/usr.bin/gperf/../../../contrib/gperf/lib/getline.cc /var/poudriere/jails/84STABLEi386/usr/src/gnu/usr.bin/gperf/../../../contrib/gperf/lib/hash.cc   
>>>> echo gperf: /usr/lib/libc.a /usr/obj/i386/var/poudriere/jails/84STABLEi386/usr/src/tmp/legacy/usr/lib/libegacy.a >> .depend
>>>> echo gperf: /usr/lib/libstdc++.a >> .depend
>>>> ===> gnu/usr.bin/gperf/doc (depend)
>>>> make: don't know how to make /usr/lib/libstdc++.a. Stop
>>>> *** Error code 2
>>>> 1 error
>>>> *** Error code 2
>>>> 1 error
>>>> *** [buildworld] Error code 2
>>>> 1 error
>>>> ====>> Error: Failed to 'make buildworld'
>>>> ====>> Error while creating jail, cleaning up.
>>>> ====>> Removing 84STABLEi386 jail... done
>>>> 
>>>> 
>>>> There's no /usr/lib/libstdc++.a on this machine because libstdc++ has
>>>> been removed from /usr/src on FreeBSD 10.  If I set WITH_GCC=yes in
>>>> /etc/src.conf, I get /usr/bin/gcc, but no g++ or libstdc++.  And why are
>>>> gperf and groff bootstrap tools anyway???
>>>> 
>>> 
>>> Try adding WITH_GNUCXX.
>> 
>> That worked, thanks!
> 
> Spoke too soon B-(
> 
> ===> usr.sbin/wpa/hostapd_cli (depend)
> rm -f .depend
> mkdep -f .depend -a    -I/var/poudriere/jails/84STABLEi386/usr/src/usr.sbin/wpa/hostapd_cli -I/var/poudriere/jails/84STABLEi386/usr/src/usr.sbin/wpa/hostapd_cli/../../../contrib/wpa//src -I/var/poudriere/jails/84STABLEi386/usr/src/usr.sbin/wpa/hostapd_cli/../../../contrib/wpa//src/common -I/var/poudriere/jails/84STABLEi386/usr/src/usr.sbin/wpa/hostapd_cli/../../../contrib/wpa//src/crypto -I/var/poudriere/jails/84STABLEi386/usr/src/usr.sbin/wpa/hostapd_cli/../../../contrib/wpa//src/l2_packet -I/var/poudriere/jails/84STABLEi386/usr/src/usr.sbin/wpa/hostapd_cli/../../../contrib/wpa//src/utils -DCONFIG_CTRL_IFACE -DCONFIG_CTRL_IFACE_UNIX -DCONFIG_CTRL_IFACE -DCONFIG_CTRL_IFACE_UNIX -I/var/poudriere/jails/84STABLEi386/usr/src/usr.sbin/wpa/hostapd_cli -I/var/poudriere/jails/84STABLEi386/usr/src/usr.sbin/wpa/hostapd_cli/../../../contrib/wpa//src -I/var/poudriere/jails/84STABLEi386/usr/src/usr.sbin/wpa/hostapd_cli/../../../contrib/wpa//src/common -I/var/poudriere/jails/84STABLEi38!
 6/!
>  usr/src/usr.sbin/wpa/hostapd_cli/../../../contrib/wpa//src/crypto -I/var/poudriere/jails/84STABLEi386/usr/src/usr.sbin/wpa/hostapd_cli/../../../contrib/wpa//src/l2_packet -I/var/poudriere/jails/84STABLEi386/usr/src/usr.sbin/wpa/hostapd_cli/../../../contrib/wpa//src/utils -DCONFIG_CTRL_IFACE -DCONFIG_CTRL_IFACE_UNIX /var/poudriere/jails/84STABLEi386/usr/src/usr.sbin/wpa/hostapd_cli/../../../contrib/wpa//hostapd/hostapd_cli.c /var/poudriere/jails/84STABLEi386/usr/src/usr.sbin/wpa/hostapd_cli/../../../contrib/wpa//src/common/wpa_ctrl.c /var/poudriere/jails/84STABLEi386/usr/src/usr.sbin/wpa/hostapd_cli/../../../contrib/wpa//src/utils/os_unix.c
> echo hostapd_cli: /usr/obj/i386/var/poudriere/jails/84STABLEi386/usr/src/tmp/usr/lib/libc.a  >> .depend
> ===> usr.sbin/wpa/ndis_events (depend)
> rm -f .depend
> mkdep -f .depend -a    -I/var/poudriere/jails/84STABLEi386/usr/src/usr.sbin/wpa/ndis_events -I/var/poudriere/jails/84STABLEi386/usr/src/usr.sbin/wpa/ndis_events/../../../contrib/wpa//src -I/var/poudriere/jails/84STABLEi386/usr/src/usr.sbin/wpa/ndis_events/../../../contrib/wpa//src/common -I/var/poudriere/jails/84STABLEi386/usr/src/usr.sbin/wpa/ndis_events/../../../contrib/wpa//src/crypto -I/var/poudriere/jails/84STABLEi386/usr/src/usr.sbin/wpa/ndis_events/../../../contrib/wpa//src/l2_packet -I/var/poudriere/jails/84STABLEi386/usr/src/usr.sbin/wpa/ndis_events/../../../contrib/wpa//src/utils -DCONFIG_CTRL_IFACE -DCONFIG_CTRL_IFACE_UNIX /var/poudriere/jails/84STABLEi386/usr/src/usr.sbin/wpa/ndis_events/ndis_events.c
> echo ndis_events: /usr/obj/i386/var/poudriere/jails/84STABLEi386/usr/src/tmp/usr/lib/libc.a  >> .depend
> 1 error
> *** Error code 2
> 1 error
> *** [buildworld] Error code 2
> 1 error
> ====>> Error: Failed to 'make buildworld'
> ====>> Error while creating jail, cleaning up.
> ====>> Removing 84STABLEi386 jail... done
> 
> 
> Nothing obvious went wrong.  That last echo command succeeded:
> 
> %cat /usr/obj/i386/var/poudriere/jails/84STABLEi386/usr/src/usr.sbin/wpa/ndis_events/.depend 
> # -I/var/poudriere/jails/84STABLEi386/usr/src/usr.sbin/wpa/ndis_events -I/var/poudriere/jails/84STABLEi386/usr/src/usr.sbin/wpa/ndis_events/../../../contrib/wpa//src -I/var/poudriere/jails/84STABLEi386/usr/src/usr.sbin/wpa/ndis_events/../../../contrib/wpa//src/common -I/var/poudriere/jails/84STABLEi386/usr/src/usr.sbin/wpa/ndis_events/../../../contrib/wpa//src/crypto -I/var/poudriere/jails/84STABLEi386/usr/src/usr.sbin/wpa/ndis_events/../../../contrib/wpa//src/l2_packet -I/var/poudriere/jails/84STABLEi386/usr/src/usr.sbin/wpa/ndis_events/../../../contrib/wpa//src/utils -DCONFIG_CTRL_IFACE -DCONFIG_CTRL_IFACE_UNIX /var/poudriere/jails/84STABLEi386/usr/src/usr.sbin/wpa/ndis_events/ndis_events.c
> ndis_events.o:  \
>  /var/poudriere/jails/84STABLEi386/usr/src/usr.sbin/wpa/ndis_events/ndis_events.c \
>   /usr/obj/i386/var/poudriere/jails/84STABLEi386/usr/src/tmp/usr/include/sys/cdefs.h \
>   /usr/obj/i386/var/poudriere/jails/84STABLEi386/usr/src/tmp/usr/include/sys/types.h \
>   /usr/obj/i386/var/poudriere/jails/84STABLEi386/usr/src/tmp/usr/include/machine/endian.h \
>   /usr/obj/i386/var/poudriere/jails/84STABLEi386/usr/src/tmp/usr/include/sys/_types.h \
>   /usr/obj/i386/var/poudriere/jails/84STABLEi386/usr/src/tmp/usr/include/machine/_types.h \
>   /usr/obj/i386/var/poudriere/jails/84STABLEi386/usr/src/tmp/usr/include/sys/_pthreadtypes.h \
>   /usr/obj/i386/var/poudriere/jails/84STABLEi386/usr/src/tmp/usr/include/sys/select.h \
>   /usr/obj/i386/var/poudriere/jails/84STABLEi386/usr/src/tmp/usr/include/sys/_sigset.h \
>   /usr/obj/i386/var/poudriere/jails/84STABLEi386/usr/src/tmp/usr/include/sys/_timeval.h \
>   /usr/obj/i386/var/poudriere/jails/84STABLEi386/usr/src/tmp/usr/include/sys/timespec.h \
>   /usr/obj/i386/var/poudriere/jails/84STABLEi386/usr/src/tmp/usr/include/sys/param.h \
>   /usr/obj/i386/var/poudriere/jails/84STABLEi386/usr/src/tmp/usr/include/sys/_null.h \
>   /usr/obj/i386/var/poudriere/jails/84STABLEi386/usr/src/tmp/usr/include/sys/syslimits.h \
>   /usr/obj/i386/var/poudriere/jails/84STABLEi386/usr/src/tmp/usr/include/sys/signal.h \
>   /usr/obj/i386/var/poudriere/jails/84STABLEi386/usr/src/tmp/usr/include/machine/_limits.h \
>   /usr/obj/i386/var/poudriere/jails/84STABLEi386/usr/src/tmp/usr/include/machine/signal.h \
>   /usr/obj/i386/var/poudriere/jails/84STABLEi386/usr/src/tmp/usr/include/machine/trap.h \
>   /usr/obj/i386/var/poudriere/jails/84STABLEi386/usr/src/tmp/usr/include/machine/param.h \
>   /usr/obj/i386/var/poudriere/jails/84STABLEi386/usr/src/tmp/usr/include/sys/limits.h \
>   /usr/obj/i386/var/poudriere/jails/84STABLEi386/usr/src/tmp/usr/include/sys/socket.h \
>   /usr/obj/i386/var/poudriere/jails/84STABLEi386/usr/src/tmp/usr/include/sys/_iovec.h \
>   /usr/obj/i386/var/poudriere/jails/84STABLEi386/usr/src/tmp/usr/include/sys/ioctl.h \
>   /usr/obj/i386/var/poudriere/jails/84STABLEi386/usr/src/tmp/usr/include/sys/ioccom.h \
>   /usr/obj/i386/var/poudriere/jails/84STABLEi386/usr/src/tmp/usr/include/sys/filio.h \
>   /usr/obj/i386/var/poudriere/jails/84STABLEi386/usr/src/tmp/usr/include/sys/sockio.h \
>   /usr/obj/i386/var/poudriere/jails/84STABLEi386/usr/src/tmp/usr/include/sys/ttycom.h \
>   /usr/obj/i386/var/poudriere/jails/84STABLEi386/usr/src/tmp/usr/include/sys/errno.h \
>   /usr/obj/i386/var/poudriere/jails/84STABLEi386/usr/src/tmp/usr/include/sys/sysctl.h \
>   /usr/obj/i386/var/poudriere/jails/84STABLEi386/usr/src/tmp/usr/include/sys/queue.h \
>   /usr/obj/i386/var/poudriere/jails/84STABLEi386/usr/src/tmp/usr/include/net/if.h \
>   /usr/obj/i386/var/poudriere/jails/84STABLEi386/usr/src/tmp/usr/include/sys/time.h \
>   /usr/obj/i386/var/poudriere/jails/84STABLEi386/usr/src/tmp/usr/include/time.h \
>   /usr/obj/i386/var/poudriere/jails/84STABLEi386/usr/src/tmp/usr/include/net/if_dl.h \
>   /usr/obj/i386/var/poudriere/jails/84STABLEi386/usr/src/tmp/usr/include/net/if_var.h \
>   /usr/obj/i386/var/poudriere/jails/84STABLEi386/usr/src/tmp/usr/include/sys/lock.h \
>   /usr/obj/i386/var/poudriere/jails/84STABLEi386/usr/src/tmp/usr/include/sys/_lock.h \
>   /usr/obj/i386/var/poudriere/jails/84STABLEi386/usr/src/tmp/usr/include/sys/mutex.h \
>   /usr/obj/i386/var/poudriere/jails/84STABLEi386/usr/src/tmp/usr/include/sys/_mutex.h \
>   /usr/obj/i386/var/poudriere/jails/84STABLEi386/usr/src/tmp/usr/include/machine/mutex.h \
>   /usr/obj/i386/var/poudriere/jails/84STABLEi386/usr/src/tmp/usr/include/sys/rwlock.h \
>   /usr/obj/i386/var/poudriere/jails/84STABLEi386/usr/src/tmp/usr/include/sys/_rwlock.h \
>   /usr/obj/i386/var/poudriere/jails/84STABLEi386/usr/src/tmp/usr/include/sys/lock_profile.h \
>   /usr/obj/i386/var/poudriere/jails/84STABLEi386/usr/src/tmp/usr/include/sys/lockstat.h \
>   /usr/obj/i386/var/poudriere/jails/84STABLEi386/usr/src/tmp/usr/include/sys/sx.h \
>   /usr/obj/i386/var/poudriere/jails/84STABLEi386/usr/src/tmp/usr/include/sys/_sx.h \
>   /usr/obj/i386/var/poudriere/jails/84STABLEi386/usr/src/tmp/usr/include/sys/event.h \
>   /usr/obj/i386/var/poudriere/jails/84STABLEi386/usr/src/tmp/usr/include/sys/_task.h \
>   /usr/obj/i386/var/poudriere/jails/84STABLEi386/usr/src/tmp/usr/include/altq/if_altq.h \
>   /usr/obj/i386/var/poudriere/jails/84STABLEi386/usr/src/tmp/usr/include/netinet/in.h \
>   /usr/obj/i386/var/poudriere/jails/84STABLEi386/usr/src/tmp/usr/include/netinet6/in6.h \
>   /usr/obj/i386/var/poudriere/jails/84STABLEi386/usr/src/tmp/usr/include/arpa/inet.h \
>   /usr/obj/i386/var/poudriere/jails/84STABLEi386/usr/src/tmp/usr/include/netdb.h \
>   /usr/obj/i386/var/poudriere/jails/84STABLEi386/usr/src/tmp/usr/include/net/route.h \
>   /usr/obj/i386/var/poudriere/jails/84STABLEi386/usr/src/tmp/usr/include/net/radix.h \
>   /usr/obj/i386/var/poudriere/jails/84STABLEi386/usr/src/tmp/usr/include/stdio.h \
>   /usr/obj/i386/var/poudriere/jails/84STABLEi386/usr/src/tmp/usr/include/string.h \
>   /usr/obj/i386/var/poudriere/jails/84STABLEi386/usr/src/tmp/usr/include/strings.h \
>   /usr/obj/i386/var/poudriere/jails/84STABLEi386/usr/src/tmp/usr/include/stdlib.h \
>   /usr/obj/i386/var/poudriere/jails/84STABLEi386/usr/src/tmp/usr/include/unistd.h \
>   /usr/obj/i386/var/poudriere/jails/84STABLEi386/usr/src/tmp/usr/include/sys/unistd.h \
>   /usr/obj/i386/var/poudriere/jails/84STABLEi386/usr/src/tmp/usr/include/err.h \
>   /usr/obj/i386/var/poudriere/jails/84STABLEi386/usr/src/tmp/usr/include/syslog.h \
>   /usr/obj/i386/var/poudriere/jails/84STABLEi386/usr/src/tmp/usr/include/stdarg.h
> ndis_events: /usr/obj/i386/var/poudriere/jails/84STABLEi386/usr/src/tmp/usr/lib/libc.a
> 
> 
> The next thing should have been "make depend" for ypbind.  I actually
> see a correct looking .depend file there, but why wasn't that logged?
> All the rest rest of the yp* directories have valid-looking .depend
> files as well, as do zic/zdump and zic/zic.  There's not a zzz/.depend
> file, though.  Looks like this is optional, but spkrtest is under the
> same switch and I do see a .depend for that.  Oh ... probably because
> zzz is a shell script.  There's also a bunch of SUBDIR+='s, the last of
> which is pkg and I see a valid pkg/.depend.
> 
> The stage 4.4 command that is supposed to be doing this stuff is:
> 
> cd /var/poudriere/jails/84STABLEi386/usr/src; MAKEOBJDIRPREFIX=/usr/obj/i386  MACHINE_ARCH=i386  MACHINE=i386  CPUTYPE=  GROFF_BIN_PATH=/usr/obj/i386/var/poudriere/jails/84STABLEi386/usr/src/tmp/legacy/usr/bin  GROFF_FONT_PATH=/usr/obj/i386/var/poudriere/jails/84STABLEi386/usr/src/tmp/legacy/usr/share/groff_font  GROFF_TMAC_PATH=/usr/obj/i386/var/poudriere/jails/84STABLEi386/usr/src/tmp/legacy/usr/share/tmac  _SHLIBDIRPREFIX=/usr/obj/i386/var/poudriere/jails/84STABLEi386/usr/src/tmp  _LDSCRIPTROOT=  VERSION="FreeBSD 10.0-STABLE amd64 1000714"  INSTALL="sh /var/poudriere/jails/84STABLEi386/usr/src/tools/install.sh"  PATH=/usr/obj/i386/var/poudriere/jails/84STABLEi386/usr/src/tmp/legacy/usr/sbin:/usr/obj/i386/var/poudriere/jails/84STABLEi386/usr/src/tmp/legacy/usr/bin:/usr/obj/i386/var/poudriere/jails/84STABLEi386/usr/src/tmp/legacy/usr/games:/usr/obj/i386/var/poudriere/jails/84STABLEi386/usr/src/tmp/usr/sbin:/usr/obj/i386/var/poudriere/jails/84STABLEi386/usr/src/tmp/usr/bin!
 :/!
>  usr/obj/i386/var/poudriere/jails/84STABLEi386/usr/src/tmp/usr/games:/sbin:/bin:/usr/sbin:/usr/bin /usr/obj/var/poudriere/jails/84STABLEi386/usr/src/make.amd64/make -f Makefile.inc1 DESTDIR=/usr/obj/i386/var/poudriere/jails/84STABLEi386/usr/src/tmp par-depend
> 
> If I try to run it manually, I don't even get this far:
> 
> "/var/poudriere/jails/84STABLEi386/usr/src/Makefile.inc1", line 361: Malformed conditional (${MK_BIND_LIBS} != "no")
> "/var/poudriere/jails/84STABLEi386/usr/src/Makefile.inc1", line 364: if-less endif
> make: fatal errors encountered -- cannot continue

If I add the -m option to the make command line to get the 8.4-STABLE
versions of bsd.*.mk, then I see the actual error:

patch -s -b .orig -o context.c < /var/poudriere/jails/84STABLEi386/usr/src/gnu/u
sr.bin/diff/context.c.diff /var/poudriere/jails/84STABLEi386/usr/src/gnu/usr.bin
/diff/../../../contrib/diff/src/context.c
  I can't seem to find a patch in there anywhere.
*** Error code 2
1 error
*** Error code 2
===> kerberos5 (depend)

I also see the same in the buildworld that poudriere does, but for some
reason the "make depend" phase continues on much longer.

I don't see any problem with the patch file.  This appears to be an
incompatibility between GNU patch and BSD patch.  The -b option to
GNU patch takes an argument that is interpreted as the extension for the
backup file.  The default is .orig, so why are we specifying it?  The -b
option to BSD patch does not take an argument, and tells patch to make
a backup copy, and is also the default.  Because -b does not take an
argument, then the argument list parsing is getting messed up and patch
probably thinks that one of the other arguments is the patch file
instead of stdin.

I removed the "-o .orig" arguments from the patch command in
gnu/usr.bin/diff/Makefile and discovered that the same issue is present
in for diff3 and sdiff.  Fixing all of those allows me to get all the
way through "make depend".

Now how do I fix this for poudriere since it wants to do a clean
checkout of src from svn every time I run it to create the jail?





Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201408291707.s7TH6wTV072468>