NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

toolchain/51389: Kyua framework does not build up with traditional /usr/obj

>Number:         51389
>Category:       toolchain
>Synopsis:       Kyua framework does not build up with traditional /usr/obj
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    toolchain-manager
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Fri Aug 05 15:45:00 +0000 2016
>Originator:     Antoine Leca
>Release:        7.0_STABLE
(self) + MINIX
NetBSD localhost 7.0_STABLE NetBSD 7.0_STABLE (NB100) #0: Wed Jul 27 16:59:52 CEST 2016  antoine@localhost:/usr/obj/sys/arch/i386/compile/NB100 i386

When the option MKKYUA is activated, and the build is performed to the traditional /usr/obj directory (not using MAKEOBJDIR* or the equivalent -O), the build fails at external/bsd/kyua-testers/libexec/kyua-atf-tester

Reading the Makefile, we found line 14:


and if we look at the corresponding external/bsd/kyua-testers/lib directory, the objdir operation was not performed there so there is no obj symlink in that directory; as a result, after the cd, PRINTOBJDIR returns ${.CURDIR}, which is not the correct place to find the just-compiled libraries.

# mkdir /usr/obj && chown user /usr/obj
$ cd /usr/src
$ make MKKYUA=yes obj
. . .
obj ===> external/bsd/kyua-testers
obj ===> external/bsd/kyua-testers/lib
obj ===> external/bsd/kyua-testers/lib/libtester
#    objdir  /usr/obj/external/bsd/kyua-testers/lib/libtester
obj ===> external/bsd/kyua-testers/lib/libatf_tester
#    objdir  /usr/obj/external/bsd/kyua-testers/lib/libatf_tester
obj ===> external/bsd/kyua-testers/libexec
obj ===> external/bsd/kyua-testers/libexec/kyua-atf-tester
#    objdir  /usr/obj/external/bsd/kyua-testers/libexec/kyua-atf-tester
obj ===> external/bsd/kyua-testers/libexec/kyua-plain-tester
#    objdir  /usr/obj/external/bsd/kyua-testers/libexec/kyua-plain-tester
obj ===> external/bsd/kyua-testers/share
obj ===> external/bsd/kyua-testers/share/doc
obj ===> external/bsd/kyua-testers/share/doc/kyua-testers
#    objdir  /usr/obj/external/bsd/kyua-testers/share/doc/kyua-testers
. . .
$ make MKKYUA=yes build
. . .
dependall ===> external/bsd/kyua-testers/libexec/kyua-atf-tester
     create  kyua-atf-tester/atf_main.d
     create  kyua-atf-tester/.depend
    compile  kyua-atf-tester/atf_main.o
make[9]: don't know how to make /usr/src/external/bsd/kyua-testers/lib/libatf_tester/libatf_tester.a. Stop

It just occurs to me that I was using a statically-linked system; I hope this does not affect the problem.
Manually adding the symlink does the trick:

$ cd /usr/src
$ cd external/bsd/kyua-testers/lib
$ ln -s /usr/obj/external/bsd/kyua-testers/lib obj
$ cd -
$ make MKKYUA=yes build
. . . success

The following patch seems to do the work, but I am unsure of the consequences.

diff -u -r1.1 Makefile
--- Makefile    19 Feb 2013 06:04:42 -0000      1.1
+++ Makefile    5 Aug 2016 15:38:19 -0000
@@ -2,4 +2,5 @@

 SUBDIR= libtester libatf_tester

+.include <>
 .include <>

Home | Main Index | Thread Index | Old Index