Compilation failure with WITH_DTRACE_TESTS on mips/mips and powerpc/powerpc; it's trying to compile a host object on mips/powerpc because MAKEOBJDIRPREFIX is incorrect

Simon J. Gerraty sjg at juniper.net
Sun Nov 1 18:19:20 UTC 2015


NGie Cooper <yaneurabeya at gmail.com> wrote:

> And here’s the real issue — .PATH is completely broken when
> TARGET/TARGET_ARCH are specified as explicit values:

It would help if you could indicate what you think the right value
should be.
 
> $ env MAKEOBJDIRPREFIX=/scratch/tmp/ngie/obj/ make buildenv TARGET=powerpc TARGET_ARCH=powerpc
> Entering world for powerpc:powerpc
> $ cd cddl/usr.sbin/dtrace/tests/common/json
> $ make -V.OBJDIR
> /scratch/tmp/ngie/obj//powerpc.powerpc/scratch/tmp/ngie/svn/cddl/usr.sbin/dtrace/tests/common/json
> $ make -VMAKEOBJDIRPREFIX
> /scratch/tmp/ngie/obj//powerpc.powerpc
> $ make depend
> (cd /scratch/tmp/ngie/svn/cddl/usr.sbin/dtrace/tests/common/json &&  DEPENDFILE=.depend.tst.usdt.exe  NO_SUBDIR=1 make -f /scratch/tmp/ngie/svn/cddl/usr.sbin/dtrace/tests/common/json/Makefile _RECURSING_PROGS=  PROG=tst.usdt.exe  depend)

If you are doing this on current (ie MAKE_VERSION==20151020), adding -w
would be useful, since will report entering src and obj dirs.

> $ make all
> (cd /scratch/tmp/ngie/svn/cddl/usr.sbin/dtrace/tests/common/json &&  DEPENDFILE=.depend.tst.usdt.exe  NO_SUBDIR=1 make -f /scratch/tmp/ngie/svn/cddl/usr.sbin/dtrace/tests/common/json/Makefile _RECURSING_PROGS=  PROG=tst.usdt.exe )
> dtrace -C -x nolibs -G -o usdt.o -s /scratch/tmp/ngie/svn/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/json/usdt.d tst.usdt.o
> dtrace: failed to link script /scratch/tmp/ngie/svn/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/json/usdt.d: incorrect ELF machine type for object file: tst.usdt.o

> Stop.
> make[2]: stopped in /scratch/tmp/ngie/svn/cddl/usr.sbin/dtrace/tests/common/json
> $ make -V.PATH

what dir do you execute that in?
I'm *guessing* cddl/usr.sbin/dtrace/tests/common/json.

It's actually quite useful when reporting/describing problems to do
everything from src eg.

make -w -C cddl/usr.sbin/dtrace/tests/common/json

leaves very little room for confusion.


> . /scratch/tmp/ngie/svn/cddl/usr.sbin/dtrace/tests/common/json /scratch/tmp/ngie/svn/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/json

What else do you expect in .PATH?
I didn't see anything in the Makefile or ../../Makefile.inc1 to add
anything else

You may also find it useful to set MAKE_PRINT_VAR_ON_ERROR
to a list of variables - that will be reported when make dies.
eg.

MAKE_PRINT_VAR_ON_ERROR=".CURDIR .OBJDIR MACHINE MACHINE_ARCH .PATH"



More information about the freebsd-current mailing list