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>