Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 2 Apr 2015 08:41:50 -0700
From:      Warner Losh <imp@bsdimp.com>
To:        Craig Rodrigues <rodrigc@FreeBSD.org>
Cc:        "freebsd-testing@freebsd.org" <freebsd-testing@freebsd.org>, FreeBSD Toolchain <freebsd-toolchain@freebsd.org>
Subject:   Re: Failed to build rescue with gcc 4.9
Message-ID:  <A3B17175-A59C-4A03-A722-ED1EB3AF97BA@bsdimp.com>
In-Reply-To: <CAG=rPVcfUFme=9BzTHCKtV2bT8ASHX0JPcczp343mjE9=Kfoug@mail.gmail.com>
References:  <CAG=rPVeUQ0mm8JKEWDcdw2trqOrUtDx0pGwm8FqbEzuf9P39rA@mail.gmail.com> <CAG=rPVcfUFme=9BzTHCKtV2bT8ASHX0JPcczp343mjE9=Kfoug@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help

[-- Attachment #1 --]

> On Apr 2, 2015, at 8:27 AM, Craig Rodrigues <rodrigc@FreeBSD.org> wrote:
> 
> On Sat, Mar 28, 2015 at 2:34 PM, Craig Rodrigues <rodrigc@freebsd.org>
> wrote:
> 
>> Hi,
>> 
>> The build host VM that I used was FreeBSD 10.1-RELEASE, amd64.
>> 
>> I took this patch for libc++ and applied it to my tree:
>> 
>> http://reviews.llvm.org/D8461
>> 
>> I used this script to build with gcc 4.9:
>> 
>> 
>> https://github.com/freebsd/freebsd-ci/blob/master/scripts/build/cross-build.sh
>> 
>> Building rescue failed.  You can see the full build log here:
>> 
>> 
>> https://jenkins.freebsd.org/job/FreeBSD_HEAD_external_toolchain_gcc/26/console
>> 
>> The relevant section seems to be this:
>> 
>> --- rescue ---
>> /usr/local/bin/x86_64-portbld-freebsd10.0-gcc -isystem
>> 
>> /builds/FreeBSD_HEAD_external_toolchain_gcc/obj/builds/FreeBSD_HEAD_external_toolchain_gcc/tmp/usr/include
>> 
>> -L/builds/FreeBSD_HEAD_external_toolchain_gcc/obj/builds/FreeBSD_HEAD_external_toolchain_gcc/tmp/usr/lib
>> 
>> --sysroot=/builds/FreeBSD_HEAD_external_toolchain_gcc/obj/builds/FreeBSD_HEAD_external_toolchain_gcc/tmp
>> -B/usr/local/x86_64-freebsd/bin/ -static -o rescue rescue.o cat.lo
>> chflags.lo chio.lo chmod.lo cp.lo date.lo dd.lo df.lo echo.lo ed.lo
>> expr.lo getfacl.lo hostname.lo kenv.lo kill.lo ln.lo ls.lo mkdir.lo
>> mv.lo pkill.lo ps.lo pwd.lo realpath.lo rm.lo rmdir.lo setfacl.lo
>> sh.lo sleep.lo stty.lo sync.lo test.lo rcp.lo csh.lo badsect.lo
>> camcontrol.lo ccdconfig.lo clri.lo devfs.lo dmesg.lo dump.lo dumpfs.lo
>> dumpon.lo fsck.lo fsck_ffs.lo fsck_msdosfs.lo fsdb.lo fsirand.lo
>> gbde.lo geom.lo ifconfig.lo init.lo kldconfig.lo kldload.lo kldstat.lo
>> kldunload.lo ldconfig.lo md5.lo mdconfig.lo mdmfs.lo mknod.lo
>> mount.lo mount_cd9660.lo mount_msdosfs.lo mount_nfs.lo mount_nullfs.lo
>> mount_udf.lo mount_unionfs.lo newfs.lo newfs_msdos.lo nos-tun.lo
>> ping.lo reboot.lo restore.lo rcorder.lo route.lo routed.lo rtquery.lo
>> rtsol.lo savecore.lo spppcontrol.lo swapon.lo sysctl.lo tunefs.lo
>> umount.lo atmconfig.lo ping6.lo ipf.lo zfs.lo zpool.lo bsdlabel.lo
>> fdisk.lo dhclient.lo head.lo mt.lo nc.lo sed.lo tail.lo tee.lo
>> gzip.lo bzip2.lo less.lo xz.lo tar.lo vi.lo id.lo zdb.lo chroot.lo
>> chown.lo
>> 
>> /builds/FreeBSD_HEAD_external_toolchain_gcc/obj/builds/FreeBSD_HEAD_external_toolchain_gcc/rescue/rescue/../librescue/exec.o
>> 
>> /builds/FreeBSD_HEAD_external_toolchain_gcc/obj/builds/FreeBSD_HEAD_external_toolchain_gcc/rescue/rescue/../librescue/getusershell.o
>> 
>> /builds/FreeBSD_HEAD_external_toolchain_gcc/obj/builds/FreeBSD_HEAD_external_toolchain_gcc/rescue/rescue/../librescue/login_class.o
>> 
>> /builds/FreeBSD_HEAD_external_toolchain_gcc/obj/builds/FreeBSD_HEAD_external_toolchain_gcc/rescue/rescue/../librescue/popen.o
>> 
>> /builds/FreeBSD_HEAD_external_toolchain_gcc/obj/builds/FreeBSD_HEAD_external_toolchain_gcc/rescue/rescue/../librescue/rcmdsh.o
>> 
>> /builds/FreeBSD_HEAD_external_toolchain_gcc/obj/builds/FreeBSD_HEAD_external_toolchain_gcc/rescue/rescue/../librescue/sysctl.o
>> 
>> /builds/FreeBSD_HEAD_external_toolchain_gcc/obj/builds/FreeBSD_HEAD_external_toolchain_gcc/rescue/rescue/../librescue/system.o
>> -lcrypt -ledit -ljail -lkvm -ll -ltermcapw -lutil -lxo -lalias -lcam
>> -lncursesw -ldevstat -lipsec -llzma -lavl -lzpool -lzfs_core -lzfs
>> -lnvpair -lpthread -luutil -lumem -lgeom -lbsdxml -lkiconv -lmt
>> -lsbuf -lufs -lz -lbz2 -larchive -lcrypto -lmd -lm cat.lo: file not
>> recognized: File truncated collect2: error: ld returned 1 exit
>> status *** [rescue] Error code 1
>> 
>> make[5]: stopped in
>> 
>> /builds/FreeBSD_HEAD_external_toolchain_gcc/obj/builds/FreeBSD_HEAD_external_toolchain_gcc/rescue/rescue
>> 1 error
>> 
>> 
>> I double checked.  cat.lo is not a truncated file.
>> # ls -l cat.lo ; file cat.lo
>> -rw-r--r--  1 jenkins  wheel  13112 Mar 28 21:17 cat.lo
>> cat.lo: ELF 64-bit LSB relocatable, x86-64, version 1 (FreeBSD), stripped
>> 
>> Any ideas?
>> --
>> Craig
>> 
>> 
> 
> On Tue, Mar 31, 2015 at 1:41 PM, Dimitry Andric <dim@freebsd.org> wrote:
> 
>> 
>> I'm suspecting this might have something to do with crunchide, or least,
>> the copy of crunchide that is run for this:
>> 
>> --- cat.lo ---
>> /usr/local/x86_64-freebsd/bin/ld -dc -r -o cat.lo cat_stub.o
>> /builds/FreeBSD_HEAD_external_toolchain_gcc/obj/builds/FreeBSD_HEAD_external_toolchain_gcc/rescue/rescue//builds/FreeBSD_HEAD_external_toolchain_gcc/bin/cat/cat.o
>> crunchide -k _crunched_cat_stub cat.lo
>> 
>> If I look at my own build logs, it seems to pick the crunchide
>> executable in /usr/bin, and Makefile.inc1 does *not* build it during the
>> cross-tools stage if ${TARGET_ARCH} is the same as ${MACHINE_ARCH}:
>> 
>> .if ${TARGET_ARCH} != ${MACHINE_ARCH}
>> .if ${MK_RESCUE} != "no" || defined(RELEASEDIR)
>> _crunchide=     usr.sbin/crunch/crunchide
>> .endif
>> 
>> However, this does not explain why my /usr/bin/crunchide seems to not
>> screw up cat.lo, while yours does.  As far as I can see, we're both
>> building this on a stable/10 amd64 box...
>> 
>> Maybe, as a hack, you can force cross-tools to build crunchide, by
>> patching Makefile.inc1 to ignore the arch check, and see what that
>> results in?
>> 
>> 
> Actually, I am building on a 10.1-RELEASE box.
> 
> I was able to get this successful build:
> https://jenkins.freebsd.org/job/FreeBSD_HEAD_external_toolchain_gcc/38/console
> 
> by applying this  patch (the ${TARGET_ARCH} != ${MACHINE_ARCH} checks
> seemed wrong to me):

Why do they seem wrong. The intent is that you’d only build these tools when
you are cross building. A long time ago, they were in the bootstrap path, but
every FreeBSD system for a long time now has adequate versions of them.

If that’s not the case, then we perhaps need to revisit the logic here. If we’ve
suddenly started needing newer versions, that should be expressed in the
logic as well.

Warner

> Index: Makefile.inc1
> ===================================================================
> --- Makefile.inc1       (revision 280979)
> +++ Makefile.inc1       (working copy)
> @@ -1457,12 +1457,9 @@
> # we get done with the earlier stages. It is the last set of tools needed
> # to begin building the target binaries.
> #
> -.if ${TARGET_ARCH} != ${MACHINE_ARCH}
> .if ${TARGET_ARCH} == "amd64" || ${TARGET_ARCH} == "i386"
> _btxld=                usr.sbin/btxld
> .endif
> -.endif
> -.if ${TARGET_ARCH} != ${MACHINE_ARCH}
> .if ${MK_RESCUE} != "no" || defined(RELEASEDIR)
> _crunchide=    usr.sbin/crunch/crunchide
> .endif
> @@ -1469,7 +1466,6 @@
> .if ${TARGET_ARCH} == "i386" && defined(RELEASEDIR)
> _kgzip=                usr.sbin/kgzip
> .endif
> -.endif
> 
> # If we're given an XAS, don't build binutils.
> .if ${XAS:M/*} == ""
> 
> 
> --
> Craig
> _______________________________________________
> freebsd-toolchain@freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-toolchain
> To unsubscribe, send any mail to "freebsd-toolchain-unsubscribe@freebsd.org"


[-- Attachment #2 --]
-----BEGIN PGP SIGNATURE-----
Comment: GPGTools - https://gpgtools.org

iQIcBAEBCgAGBQJVHWM+AAoJEGwc0Sh9sBEAP/YP/RYs/abLU74nd3LgbTSexke/
sUIB83gfr1PHOqaYVRmXfwm8H3a64BUpWzsgQ67z98a3T+GRC8Be7WGm59rwOBAF
9otI2SCL9E6Tmi13HldcEzSMJL79mmx2wWQr60vHt3XlMXf8gFljIQ5c117pZnXg
r0+mkTPp7ZM5ibjxn/Q/0wadx9ONLdZXC3mEbmfitz+eHyU6vn3TJGfxyeT+my5C
yjEEwT0B1hV1BzzyAlAMU3uohV/eZjsWWancnp4U8CA29+SfYDhOSjnv7tdbqkWQ
yXK4IBYYEXTYDOipSbThOtNj/EBCINiTxG9v6aiua6vuxPQ92q0AxCq9rpAlkm8x
vz8WScrAxO8OL3EU3PRHVY8WHW71BnhFCNXW0UQmL2jmtU3V8PmbJ/fyzLzKNQmf
7mgmf+hNaR5gbHpdipGlb07S1Ig7fgyNLZjTchA46Bqpmq75wwNi1/HvRmVrdh2Z
f6M61PVfpTSv35qfOcKrZZZlSL/Oc/vgxrUKrKQq5LkMgYsJyqr4x3q/b0+qQ6mE
L/xYKmnSq2VsYSMc4mGyawOfTXPVZniATyQyqb/7XsF12BNGQdrmqY7X4WreB7P9
RMQmZHWyJxYTpzOnl8ssd1Xy20MxBdX6XubK4baL8Z8GGjayT0jaOtzxMS3+y8DK
ovssSbmQKO9opSSPa1XN
=uhe9
-----END PGP SIGNATURE-----

Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?A3B17175-A59C-4A03-A722-ED1EB3AF97BA>