On May 23, 2014, at 6:26 AM, Ian Lepore <ian@FreeBSD.org> wrote:
> On Fri, 2014-05-23 at 08:56 +0200, Luigi Rizzo wrote:
>> Hi,
>> I have recently hit a problem when building stable/10 with
>> "make -j 8" which i tracked down to svn 264303, the
>> MFC of the SUBDIR_PARALLEL build feature.
>> =
>> With a large number of parallel tasks (and GCC;
>> it is a race condition so timing matters), the build fails
>> during the toolchain target with this:
>> =
>> --- sig_party.o ---
>> cc -O2 -pipe -I/usr/home/luigi/FreeBSD/R10/lib/libngatm/../../sys/con=
trib/ngatm -I/usr/home/luigi/FreeBSD/R10/../usr/obj-pico-amd64/usr/home/lui=
gi/FreeBSD/R10/lib/libngatm
>> -I/usr/home/luigi/FreeBSD/R10/lib/libngatm/../../contrib/ngatm/libngatm =
-std=3Dgnu99 -fstack-protector -Wsystem-headers -Werror -Wall -Wno-format-=
y2k -W -Wno-unused-parameter -
>> Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Wreturn-type -W=
cast-qual -Wwrite-strings -Wswitch -Wshadow -Wunused-parameter -Wcast-align=
-Wchar-subscripts -Winline
>> -Wnested-externs -Wredundant-decls -Wold-style-definition -Wno-pointer-s=
ign -c /usr/home/luigi/FreeBSD/R10/lib/libngatm/../../sys/contrib/ngatm/net=
natm/sig/sig_party.c -o sig_
>> party.o
>> --- all_subdir_libproc ---
>> /usr/home/luigi/FreeBSD/R10/../usr/obj-pico-amd64/usr/home/luigi/FreeBSD=
/R10/tmp/usr/bin/ld: cannot find -lsupc++
>> *** [libproc.so.2] Error code 1
>> =
>> make[5]: stopped in /usr/home/luigi/FreeBSD/R10/lib/libproc
>> 1 error
>> ...
>> =
>> =
>> Turns out that before SUBDIR_PARALLEL, libsupc++ was built
>> before libproc thus satisfying the dependency; but with
>> -j XXX we cannot guarantee the ordering and there is no
>> explicit constraint or .ORDER in the makefiles to build
>> things in the correct order.
>> =
>> This is a race condition so you may or may not see the problem
>> depending on what you are building and where.
>> =
>> I am seeing the problem consistently on stable/10 after 264303
>> when building toolchain with GCC (not clang) on an 8-core machine
>> and make -j 8
>> =
>> Building the above with -j 4 seem to work fine,
>> as it works building HEAD with -j 8
>> =
>> cheers
>> luigi
> =
> Aha. I asked for exactly this info on the commit list (so you can
> ignore that request). Warner & I kicked around some ideas on how to
> solve this a while back, I'll see if I can make some progress towards
> better dependency controls for SUBDIR_PARALLEL this weekend.
I committed a half-assed fix to current that could be MFC=92d to fix this.
Warner
_______________________________________________
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to "freebsd-stable-unsubscribe@freebsd.org"