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_at_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_DTRACE_TESTS and I ran into this linker issue below. I have no idea (yet) why it’s trying to compile an x64 object when I specify powerpc/powerpc — 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 “make 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 broadly and >>>>> there to be a lot more reports if there was a problem with buildworld >>>>> cross compiling. >>>>> >>>>>> % make buildworld TARGET=powerpc TARGET_ARCH=powerpc >>>>>> … >>>>>> ===> cddl/usr.sbin/dtrace/tests/common/json (all) >>>>>> (cd /usr/src/svn/cddl/usr.sbin/dtrace/tests/common/json && DEPENDFILE=.depend.tst.usdt.exe NO_SUBDIR=1 make -f /usr/src/svn/cddl/usr.sbin/dtrace/tests/common/json/Makefile _RECURSING_PROGS= PROG=tst.usdt.exe ) >>>>>> cc -O2 -pipe -fno-strict-aliasing -O2 -pipe -O0 -g -I/usr/obj/powerpc.powerpc/usr/src/svn/cddl/usr.sbin/dtrace/tests/common/json -std=gnu99 -fstack-protector-strong -c /usr/src/svn/cddl/contrib/opensolaris/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/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 >> >> The problem looks specific to compiling of .d files using dtrace(1). It >> must not have cross-compile support. >> >> The manpage does say: "The D compiler produces programs using the native >> 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. > > 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. > 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/common/json -name tst.usdt.o -exec file {} + /scratch/tmp/ngie/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 /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/dtrace/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/dtrace/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.sbin/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.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 >>>>>> >>>> >>>> I ran a buildworld with TARGET=powerpc 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_pathfds.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 (FreeBSD), >>>> 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 >>> >> >> >> -- >> Regards, >> Bryan Drewery >> > > -- Regards, Bryan Drewery
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:41:00 UTC