Date: Sat, 31 Oct 2015 15:37:18 -0700 From: NGie Cooper <yaneurabeya@gmail.com> To: "Simon J. Gerraty" <sjg@juniper.net> Cc: Bryan Drewery <bdrewery@freebsd.org>, Ed Maste <emaste@freebsd.org>, Mark Johnston <markj@freebsd.org>, FreeBSD CURRENT <current@freebsd.org> Subject: Re: 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 Message-ID: <5AEBE041-4AAC-49F4-BE34-C92EBD736092@gmail.com> In-Reply-To: <3957F6B6-275D-4A63-8406-A5AAECF3F131@gmail.com> References: <653F31AA-982B-4026-BEF5-F608BCFFFD3A@gmail.com> <6585.1446248620@chaos> <9192D4AA-FCF1-4841-89FD-A4E5D93C6941@gmail.com> <3957F6B6-275D-4A63-8406-A5AAECF3F131@gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
> On Oct 31, 2015, at 14:37, NGie Cooper <yaneurabeya@gmail.com> wrote: >=20 >=20 >> On Oct 30, 2015, at 23:51, NGie Cooper <yaneurabeya@gmail.com> wrote: >>=20 >>=20 >>> On Oct 30, 2015, at 16:43, Simon J. Gerraty <sjg@juniper.net> wrote: >>>=20 >>> NGie Cooper <yaneurabeya@gmail.com> wrote: >>>> I tried doing buildworld on powerpc/powerpc with = -DWITH_DTRACE_TESTS and I ran into this linker issue below. I have no = idea (yet) why it=E2=80=99s trying to compile an x64 object when I = specify powerpc/powerpc =E2=80=94 and more importantly, why is the = object not being put in obj.powerpc? >>>> I ran into the same issue on ref11-amd64.freebsd.org when I ran = =E2=80=9Cmake tinderbox". >>>=20 >>> Is it possible that the file is left over from a previous build (of = amd64?) >>>=20 >>> Does your log show it being built? >>>=20 >>>=20 >>>> dtrace -C -x nolibs -G -o usdt.o -s = /usr/src/svn/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/json/usdt= .d tst.usdt.o >>>> dtrace: failed to link script = /usr/src/svn/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/json/usdt= .d: incorrect ELF machine type for object file: tst.usdt.o >>>> *** Error code 1 >>>> $ find /usr/obj/usr/src/svn/ -name tst.usdt.o >>>> = /usr/obj/usr/src/svn/cddl/usr.sbin/dtrace/tests/common/json/tst.usdt.o >>>> $ file = /usr/obj/usr/src/svn/cddl/usr.sbin/dtrace/tests/common/json/tst.usdt.o >>>> = /usr/obj/usr/src/svn/cddl/usr.sbin/dtrace/tests/common/json/tst.usdt.o: = ELF 64-bit LSB relocatable, x86-64, version 1 (FreeBSD), not stripped >>=20 >> Still running into issues on ref11-amd64: >>=20 >> cc1: error: unrecognized command line option "-m64" >> dtrace: failed to compile script = /scratch/tmp/ngie/svn/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/= json/usdt.d: Preprocessor failed to process input program >> --- usdt.h --- >> *** [usdt.h] Error code 1 >>=20 >> Let=E2=80=99s see what happens if I use make buildenv >=20 > =E2=80=A6 >=20 > Deleting the lines that pass -m32/-m64 gets me back to the same point = I was at before: >=20 > 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 > --- usdt.o --- > *** [usdt.o] Error code 1 >=20 > I=E2=80=99ll need to check .PATH, but I think it=E2=80=99s picking up = the host copy by accident: >=20 > $ find ../obj/ -name tst.usdt.o | xargs file > = ../obj/arm.armv6hf/scratch/tmp/ngie/svn/cddl/usr.sbin/dtrace/tests/common/= json/tst.usdt.o: ELF 32-bit LSB relocatable, ARM, EABI5 version 1 = (FreeBSD), not stripped > = ../obj/arm.arm/scratch/tmp/ngie/svn/cddl/usr.sbin/dtrace/tests/common/json= /tst.usdt.o: ELF 32-bit LSB relocatable, ARM, EABI5 version 1 = (FreeBSD), not stripped > = ../obj/arm.armeb/scratch/tmp/ngie/svn/cddl/usr.sbin/dtrace/tests/common/js= on/tst.usdt.o: ELF 32-bit MSB relocatable, ARM, EABI5 version 1 = (FreeBSD), not stripped > = ../obj/powerpc.powerpc/scratch/tmp/ngie/svn/cddl/usr.sbin/dtrace/tests/com= mon/json/tst.usdt.o: ELF 32-bit MSB relocatable, PowerPC or cisco = 4500, version 1 (FreeBSD), not stripped > = ../obj/arm.armv6/scratch/tmp/ngie/svn/cddl/usr.sbin/dtrace/tests/common/js= on/tst.usdt.o: ELF 32-bit LSB relocatable, ARM, EABI5 version 1 = (FreeBSD), not stripped > = ../obj/scratch/tmp/ngie/svn/cddl/usr.sbin/dtrace/tests/common/json/tst.usd= t.o: ELF 64-bit LSB relocatable, x86-64, version 1 = (FreeBSD), not stripped > = ../obj/i386.i386/scratch/tmp/ngie/svn/cddl/usr.sbin/dtrace/tests/common/js= on/tst.usdt.o: ELF 32-bit LSB relocatable, Intel 80386, version = 1 (FreeBSD), not stripped > = ../obj/pc98.i386/scratch/tmp/ngie/svn/cddl/usr.sbin/dtrace/tests/common/js= on/tst.usdt.o: ELF 32-bit LSB relocatable, Intel 80386, version = 1 (FreeBSD), not stripped > = ../obj/powerpc.powerpc64/scratch/tmp/ngie/svn/cddl/usr.sbin/dtrace/tests/c= ommon/json/tst.usdt.o: ELF 64-bit MSB relocatable, 64-bit PowerPC or = cisco 7500, version 1 (FreeBSD), not stripped > = ../obj/arm64.aarch64/scratch/tmp/ngie/svn/cddl/usr.sbin/dtrace/tests/commo= n/json/tst.usdt.o: ELF 64-bit LSB relocatable, ARM aarch64, version = 1 (FreeBSD), not stripped And here=E2=80=99s the real issue =E2=80=94 .PATH is completely broken = when TARGET/TARGET_ARCH are specified as explicit values: $ env MAKEOBJDIRPREFIX=3D/scratch/tmp/ngie/obj/ make buildenv = TARGET=3Dpowerpc TARGET_ARCH=3Dpowerpc 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=3D.depend.tst.usdt.exe NO_SUBDIR=3D1 make -f = /scratch/tmp/ngie/svn/cddl/usr.sbin/dtrace/tests/common/json/Makefile = _RECURSING_PROGS=3D PROG=3Dtst.usdt.exe depend) $ make all (cd /scratch/tmp/ngie/svn/cddl/usr.sbin/dtrace/tests/common/json && = DEPENDFILE=3D.depend.tst.usdt.exe NO_SUBDIR=3D1 make -f = /scratch/tmp/ngie/svn/cddl/usr.sbin/dtrace/tests/common/json/Makefile = _RECURSING_PROGS=3D PROG=3Dtst.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 *** Error code 1 Stop. make[3]: stopped in = /scratch/tmp/ngie/svn/cddl/usr.sbin/dtrace/tests/common/json *** Error code 1 Stop. make[2]: stopped in = /scratch/tmp/ngie/svn/cddl/usr.sbin/dtrace/tests/common/json $ make -V.PATH . /scratch/tmp/ngie/svn/cddl/usr.sbin/dtrace/tests/common/json = /scratch/tmp/ngie/svn/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/= json Something seems broken with cross-building via `make tinderbox`/`make = buildworld`=E2=80=A6=
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?5AEBE041-4AAC-49F4-BE34-C92EBD736092>