This is a -j 6 buildworld context. In the following sequence the -lcapsicum use when linking libcasper.so.0.full does not use /usr/obj/usr/src/tmp/lib/libcapsicum.so because that file and the link to it at /usr/obj/usr/src/tmp/usr/lib/libcapsicum.so are only created (installed) later. (See the sequence later below.)
This can lead to use of /lib/libcapsicum.so instead if it is found, which for my context it is. In my case of updating from 11.0-CURRENT from back on 2015-Apr-18 /lib/libcapsicum.so use ends up complaining about undefined references, such as to nvlist_getf_binary that existed back then but do not now. That is what exposed the time-order problem. > --- all_subdir_libcasper --- > /usr/local/bin/powerpc64-portbld-freebsd11.0-gcc > -L/usr/obj/usr/src/tmp/usr/lib/. -L/usr/obj/usr/src/lib/libc++/. -L/usr/lib/. > -fstack-protector-strong -shared -Wl,-x -Wl,--fatal-warnings > -Wl,--warn-shared-textrel -o libcasper.so.0.full -Wl,-soname,libcasper.so.0 > `NM='/usr/local/powerpc64-freebsd/bin/nm' NMFLAGS='' lorder libcasper.So | > tsort -q` -lcapsicum -lnv -lpjdlog . . . > ===> lib/libcapsicum (install) > --- _libinstall --- > --- _INCSINS --- > --- _libinstall --- > sh /usr/src/tools/install.sh -C -o root -g wheel -m 444 libcapsicum.a > /usr/obj/usr/src/tmp/usr/lib/ > --- _INCSINS --- > sh /usr/src/tools/install.sh -C -o root -g wheel -m 444 > /usr/src/lib/libcapsicum/libcapsicum.h > /usr/src/lib/libcapsicum/libcapsicum_dns.h > /usr/src/lib/libcapsicum/libcapsicum_grp.h > /usr/src/lib/libcapsicum/libcapsicum_pwd.h > /usr/src/lib/libcapsicum/libcapsicum_random.h > /usr/src/lib/libcapsicum/libcapsicum_service.h > /usr/src/lib/libcapsicum/libcapsicum_sysctl.h > /usr/obj/usr/src/tmp/usr/include/ > --- _libinstall --- > sh /usr/src/tools/install.sh -s -o root -g wheel -m 444 libcapsicum.so.0 > /usr/obj/usr/src/tmp/lib/ > sh /usr/src/tools/install.sh -T debug -o root -g wheel -m 444 > libcapsicum.so.0.debug /usr/obj/usr/src/tmp/usr/lib/debug/lib/ > sh /usr/src/tools/install.sh -l rs /usr/obj/usr/src/tmp/lib/libcapsicum.so.0 > /usr/obj/usr/src/tmp/usr/lib/libcapsicum.so The -L's ending with /.'s are from my /etc/src.conf . They are associated with trying to self-build on a powerpc64 PowerMac using only powerpc64-xtoolchain-gcc's powerpc64-gcc WITH_LIBCPLUSPLUS: powerpc64-gcc is acting as both the host toolchain and the CROSS_TOOLCHAIN. No 4.2.1 gcc is present. I know this is not a usual way of doing things. There may be better ways. But if I manage to expose some missing dependency tracking some good came of it. The make command was: > make -j 6 WITH_FAST_DEPEND= CROSS_TOOLCHAIN=powerpc64-gcc WITH_LIBCPLUSPLUS= > WITHOUT_CLANG_BOOTSTRAP= WITH_CLANG= WITH_CLANG_IS_CC= WITH_LLDB= > WITHOUT_GCC_BOOTSTRAP= WITHOUT_GCC= WITHOUT_GNUCXX= WITHOUT_BOOT= > WITHOUT_LIB32= buildworld buildkernel KERNCONF=GENERIC64vtsc-NODEBUG > TARGET=powerpc TARGET_ARCH=powerpc64 Context details if you care: > # freebsd-version -ku; uname -aKU > 11.0-CURRENT > 11.0-CURRENT > FreeBSD FBSDG5C0 11.0-CURRENT FreeBSD 11.0-CURRENT #12 r281630M: Sat Apr 18 > 01:15:13 PDT 2015 > root@FBSDG5C0:/usr/obj/usr/src/sys/GENERIC64vtsc-NODEBUG powerpc 1100070 > 1100070 I am attempting an update after having been away from the PowerMacs for months. > # svnlite info /usr/src > Path: /usr/src > Working Copy Root Path: /usr/src > URL: https://svn0.us-west.freebsd.org/base/head > Relative URL: ^/head > Repository Root: https://svn0.us-west.freebsd.org/base > Repository UUID: ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f > Revision: 291443 > Node Kind: directory > Schedule: normal > Last Changed Author: nwhitehorn > Last Changed Rev: 291442 > Last Changed Date: 2015-11-28 23:16:08 -0800 (Sat, 28 Nov 2015) > # more /etc/src.conf > NO_WERROR= > WITH_DEBUG= > WITH_DEBUG_FILES= > MALLOC_PRODUCTION= > CC=/usr/local/bin/powerpc64-portbld-freebsd11.0-gcc > CXX=/usr/local/bin/powerpc64-portbld-freebsd11.0-g++ > CPP=/usr/local/bin/powerpc64-portbld-freebsd11.0-cpp > CROSS_BINUTILS_PREFIX=/usr/local/powerpc64-freebsd/bin/ > X_COMPILER_TYPE=gcc > DEPFLAGS+=-isystem /usr/obj/usr/src/tmp/usr/include/. > -I/usr/obj/usr/src/tmp/usr/include/c++/v1/. -I/usr/include/c++/v1/. > L/usr/obj/usr/src/tmp/usr/lib/lib32/. > CFLAGS+=-isystem /usr/obj/usr/src/tmp/usr/include/. > -L/usr/obj/usr/src/tmp/usr/lib/. -L/usr/obj/usr/src/tmp/lib/. > LDFLAGS+=-L/usr/obj/usr/src/tmp/usr/lib/. -L/usr/obj/usr/src/tmp/lib/. > CXXFLAGS+=-isystem /usr/obj/usr/src/tmp/usr/include/. > -I/usr/obj/usr/src/tmp/usr/include/c++/v1/. -std=gnu++11 > -L/usr/obj/usr/src/lib/libc++/. > LDFLAGS+=-L/usr/obj/usr/src/lib/libc++/. > CXXFLAGS+=-I/usr/include/c++/v1/. -std=gnu++11 -L/usr/lib/. > LDFLAGS+=-L/usr/lib/. > # svnlite info /usr/ports/ > Path: /usr/ports > Working Copy Root Path: /usr/ports > URL: https://svn0.us-west.freebsd.org/ports/head > Relative URL: ^/head > Repository Root: https://svn0.us-west.freebsd.org/ports > Repository UUID: 35697150-7ecd-e111-bb59-0022644237b5 > Revision: 402562 > Node Kind: directory > Schedule: normal > Last Changed Author: rene > Last Changed Rev: 402562 > Last Changed Date: 2015-11-28 15:08:03 -0800 (Sat, 28 Nov 2015) === Mark Millard markmi at dsl-only.net _______________________________________________ [email protected] mailing list https://lists.freebsd.org/mailman/listinfo/freebsd-toolchain To unsubscribe, send any mail to "[email protected]"
