Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 30 Oct 2015 16:09:57 -0700
From:      Bryan Drewery <bdrewery@FreeBSD.org>
To:        Mark Johnston <markj@freebsd.org>
Cc:        NGie Cooper <yaneurabeya@gmail.com>, "Simon J. Gerraty" <sjg@freebsd.org>, Ed Maste <emaste@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:  <5633F8C5.6040500@FreeBSD.org>
In-Reply-To: <20151030230817.GA3845@wkstn-mjohnston.west.isilon.com>
References:  <653F31AA-982B-4026-BEF5-F608BCFFFD3A@gmail.com> <5633DF51.1070305@FreeBSD.org> <5633E27C.6000101@FreeBSD.org> <CAGHfRMD=rzpPKWh_8qhf=5oft_N=8ZZLQf7fuygfq87nga%2BVKA@mail.gmail.com> <5633F6C7.4080500@FreeBSD.org> <20151030230817.GA3845@wkstn-mjohnston.west.isilon.com>

next in thread | previous in thread | raw e-mail | index | archive | help
This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--BdiK8hFnKoaetNS77MaHoeVdAhQhG9Ofl
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On 10/30/2015 4:08 PM, Mark Johnston wrote:
> On Fri, Oct 30, 2015 at 04:01:27PM -0700, Bryan Drewery wrote:
>> On 10/30/2015 3:03 PM, NGie Cooper wrote:
>>> On Fri, Oct 30, 2015 at 2:34 PM, Bryan Drewery <bdrewery@freebsd.org>=
 wrote:
>>>> On 10/30/2015 2:21 PM, Bryan Drewery wrote:
>>>>> On 10/30/2015 1:57 PM, NGie Cooper wrote:
>>>>>> Hi Bryan/Simon!
>>>>>>      I tried doing buildworld on powerpc/powerpc with -DWITH_DTRAC=
E_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/power=
pc =E2=80=94 and more importantly, why is the object not being put in obj=
=2Epowerpc?
>>>>>>      I ran into the same issue on ref11-amd64.freebsd.org when I r=
an =E2=80=9Cmake tinderbox".
>>>>>> Thanks!
>>>>>> -NGie
>>>>>>
>>>>>
>>>>> Have you modified any of your local toolchain handling, or skipped
>>>>> CLANG_BOOTSTRAP? I would expect this to be failing much more broadl=
y and
>>>>> there to be a lot more reports if there was a problem with buildwor=
ld
>>>>> cross compiling.
>>>>>
>>>>>> % make buildworld TARGET=3Dpowerpc TARGET_ARCH=3Dpowerpc
>>>>>> =E2=80=A6
>>>>>> =3D=3D=3D> cddl/usr.sbin/dtrace/tests/common/json (all)
>>>>>> (cd /usr/src/svn/cddl/usr.sbin/dtrace/tests/common/json &&  DEPEND=
FILE=3D.depend.tst.usdt.exe  NO_SUBDIR=3D1 make -f /usr/src/svn/cddl/usr.=
sbin/dtrace/tests/common/json/Makefile _RECURSING_PROGS=3D  PROG=3Dtst.us=
dt.exe )
>>>>>> cc  -O2 -pipe -fno-strict-aliasing -O2 -pipe   -O0 -g -I/usr/obj/p=
owerpc.powerpc/usr/src/svn/cddl/usr.sbin/dtrace/tests/common/json -std=3D=
gnu99 -fstack-protector-strong    -c /usr/src/svn/cddl/contrib/opensolari=
s/cmd/dtrace/test/tst/common/json/tst.usdt.c -o tst.usdt.o
>>>>>> dtrace -C -x nolibs -G -o usdt.o -s /usr/src/svn/cddl/contrib/open=
solaris/cmd/dtrace/test/tst/common/json/usdt.d tst.usdt.o
>>>>>> dtrace: failed to link script /usr/src/svn/cddl/contrib/opensolari=
s/cmd/dtrace/test/tst/common/json/usdt.d: incorrect ELF machine type for =
object file: tst.usdt.o
>>>>>> *** Error code 1
>>
>> The problem looks specific to compiling of .d files using dtrace(1). I=
t
>> must not have cross-compile support.
>>
>> The manpage does say: "The D compiler produces programs using the nati=
ve
>> data model of the operating system kernel.".
>>
>> So these will need to be disabled for non-native builds.
>>
>> I don't know if it would be possible to build a cross-compile version =
of
>> dtrace(1) and drop it in WORLDTMP/usr/sbin and have it work.
>=20
> In the snippet above, tst.usdt.o is generated by cc, not dtrace(1).
> dtrace is complaining that the input file doesn't have the expected
> machine type, which seems valid given the file(1) output below.
>=20

The example output must be a mistake as they are correct on ref11:

ref11-amd64% find
/scratch/tmp/ngie/obj/*/scratch/tmp/ngie/svn/cddl/usr.sbin/dtrace/tests/c=
ommon/json
-name tst.usdt.o -exec file {} +
/scratch/tmp/ngie/obj/arm.arm/scratch/tmp/ngie/svn/cddl/usr.sbin/dtrace/t=
ests/common/json/tst.usdt.o:
          ELF 32-bit LSB relocatable, ARM, EABI5 version 1 (FreeBSD),
not stripped
/scratch/tmp/ngie/obj/arm.armeb/scratch/tmp/ngie/svn/cddl/usr.sbin/dtrace=
/tests/common/json/tst.usdt.o:
        ELF 32-bit MSB relocatable, ARM, EABI5 version 1 (FreeBSD), not
stripped
/scratch/tmp/ngie/obj/arm.armv6/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
/scratch/tmp/ngie/obj/arm.armv6hf/scratch/tmp/ngie/svn/cddl/usr.sbin/dtra=
ce/tests/common/json/tst.usdt.o:
      ELF 32-bit LSB relocatable, ARM, EABI5 version 1 (FreeBSD), not
stripped
/scratch/tmp/ngie/obj/arm64.aarch64/scratch/tmp/ngie/svn/cddl/usr.sbin/dt=
race/tests/common/json/tst.usdt.o:
    ELF 64-bit LSB relocatable, ARM aarch64, version 1 (FreeBSD), not
stripped
/scratch/tmp/ngie/obj/i386.i386/scratch/tmp/ngie/svn/cddl/usr.sbin/dtrace=
/tests/common/json/tst.usdt.o:
        ELF 32-bit LSB relocatable, Intel 80386, version 1 (FreeBSD),
not stripped
/scratch/tmp/ngie/obj/pc98.i386/scratch/tmp/ngie/svn/cddl/usr.sbin/dtrace=
/tests/common/json/tst.usdt.o:
        ELF 32-bit LSB relocatable, Intel 80386, version 1 (FreeBSD),
not stripped
/scratch/tmp/ngie/obj/powerpc.powerpc/scratch/tmp/ngie/svn/cddl/usr.sbin/=
dtrace/tests/common/json/tst.usdt.o:
  ELF 32-bit MSB relocatable, PowerPC or cisco 4500, version 1
(FreeBSD), not stripped
/scratch/tmp/ngie/obj/powerpc.powerpc64/scratch/tmp/ngie/svn/cddl/usr.sbi=
n/dtrace/tests/common/json/tst.usdt.o:
ELF 64-bit MSB relocatable, 64-bit PowerPC or cisco 7500, version 1
(FreeBSD), not stripped

[sorry for bad mail client]



>>
>>>>>> $ find /usr/obj/usr/src/svn/ -name tst.usdt.o
>>>>>> /usr/obj/usr/src/svn/cddl/usr.sbin/dtrace/tests/common/json/tst.us=
dt.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.us=
dt.o: ELF 64-bit LSB relocatable, x86-64, version 1 (FreeBSD), not stripp=
ed
>>>>>>
>>>>
>>>> I ran a buildworld with TARGET=3Dpowerpc just a few days ago and it =
seemed
>>>> to be fine with PROGS.  Here's a test object built via PROGS:
>>>>
>>>> ~/git/freebsd # find /usr/obj/powerpc.powerpc -name ld_library_pathf=
ds.o
>>>> /usr/obj/powerpc.powerpc/root/git/freebsd/libexec/rtld-elf/tests/ld_=
library_pathfds.o
>>>> ~/git/freebsd # file
>>>> /usr/obj/powerpc.powerpc/root/git/freebsd/libexec/rtld-elf/tests/ld_=
library_pathfds.o
>>>> /usr/obj/powerpc.powerpc/root/git/freebsd/libexec/rtld-elf/tests/ld_=
library_pathfds.o:
>>>> ELF 32-bit MSB relocatable, PowerPC or cisco 4500, version 1 (FreeBS=
D),
>>>> not stripped
>>>> -rw-r--r--  1 root  wheel  21136 Oct 23 17:08
>>>> /usr/obj/powerpc.powerpc/root/git/freebsd/libexec/rtld-elf/tests/ld_=
library_pathfds.o
>>>>
>>>> I see nothing special with the DTRACE_TESTS to change any of this.
>>>
>>> I could see there being a possible issue with my host VM, but I
>>> haven't modified my environment in ref11-amd64.freebsd.org at all.
>>>
>>> Could you please try reproing it there with your user?
>>>
>>> Thanks,
>>> -NGie
>>>
>>
>>
>> --=20
>> Regards,
>> Bryan Drewery
>>
>=20
>=20


--=20
Regards,
Bryan Drewery


--BdiK8hFnKoaetNS77MaHoeVdAhQhG9Ofl
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="signature.asc"

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2

iQEcBAEBAgAGBQJWM/jFAAoJEDXXcbtuRpfPudAH/2I4Ob3+N1srMvuiHd3LNx7Z
D/sfzv9GzPDDu2L/AJzEVH1nQ6/t4u8LqOL1yraQRK8VQZ2UZaViIJcaHq6cMUCK
Py8NwufZRrbZHHGlIVgECDLPNVdAfzqyZk7XakXA7SuydyczKEw2ENLzto+u3ahY
Xl1/JwyUgY4hFhA34wXgFKA/v6nA+r+dVHeGmrEFZbYCITRItDoxKrQ/3181L7hm
LnSbzA6Jfk21Jl6/yhAH2Epkijoe3JlxnL5XHLgl71InILhSF/PIt5d4QLyD0tgx
ZRkz37yEZbdJPlozql23GlrqBqWTu1+cQcw6YTiSzqp5O4dLyR+z6JwyE3BuAD4=
=X8kP
-----END PGP SIGNATURE-----

--BdiK8hFnKoaetNS77MaHoeVdAhQhG9Ofl--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?5633F8C5.6040500>