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

--Apple-Mail=_121E348A-F3E2-4DB3-ADB8-0B3ABFD4A1B9
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=utf-8


> On Apr 2, 2015, at 8:27 AM, Craig Rodrigues <rodrigc@FreeBSD.org> =
wrote:
>=20
> On Sat, Mar 28, 2015 at 2:34 PM, Craig Rodrigues <rodrigc@freebsd.org>
> wrote:
>=20
>> Hi,
>>=20
>> The build host VM that I used was FreeBSD 10.1-RELEASE, amd64.
>>=20
>> I took this patch for libc++ and applied it to my tree:
>>=20
>> http://reviews.llvm.org/D8461
>>=20
>> I used this script to build with gcc 4.9:
>>=20
>>=20
>> =
https://github.com/freebsd/freebsd-ci/blob/master/scripts/build/cross-buil=
d.sh
>>=20
>> Building rescue failed.  You can see the full build log here:
>>=20
>>=20
>> =
https://jenkins.freebsd.org/job/FreeBSD_HEAD_external_toolchain_gcc/26/con=
sole
>>=20
>> The relevant section seems to be this:
>>=20
>> --- rescue ---
>> /usr/local/bin/x86_64-portbld-freebsd10.0-gcc -isystem
>>=20
>> =
/builds/FreeBSD_HEAD_external_toolchain_gcc/obj/builds/FreeBSD_HEAD_extern=
al_toolchain_gcc/tmp/usr/include
>>=20
>> =
-L/builds/FreeBSD_HEAD_external_toolchain_gcc/obj/builds/FreeBSD_HEAD_exte=
rnal_toolchain_gcc/tmp/usr/lib
>>=20
>> =
--sysroot=3D/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
>>=20
>> =
/builds/FreeBSD_HEAD_external_toolchain_gcc/obj/builds/FreeBSD_HEAD_extern=
al_toolchain_gcc/rescue/rescue/../librescue/exec.o
>>=20
>> =
/builds/FreeBSD_HEAD_external_toolchain_gcc/obj/builds/FreeBSD_HEAD_extern=
al_toolchain_gcc/rescue/rescue/../librescue/getusershell.o
>>=20
>> =
/builds/FreeBSD_HEAD_external_toolchain_gcc/obj/builds/FreeBSD_HEAD_extern=
al_toolchain_gcc/rescue/rescue/../librescue/login_class.o
>>=20
>> =
/builds/FreeBSD_HEAD_external_toolchain_gcc/obj/builds/FreeBSD_HEAD_extern=
al_toolchain_gcc/rescue/rescue/../librescue/popen.o
>>=20
>> =
/builds/FreeBSD_HEAD_external_toolchain_gcc/obj/builds/FreeBSD_HEAD_extern=
al_toolchain_gcc/rescue/rescue/../librescue/rcmdsh.o
>>=20
>> =
/builds/FreeBSD_HEAD_external_toolchain_gcc/obj/builds/FreeBSD_HEAD_extern=
al_toolchain_gcc/rescue/rescue/../librescue/sysctl.o
>>=20
>> =
/builds/FreeBSD_HEAD_external_toolchain_gcc/obj/builds/FreeBSD_HEAD_extern=
al_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
>>=20
>> make[5]: stopped in
>>=20
>> =
/builds/FreeBSD_HEAD_external_toolchain_gcc/obj/builds/FreeBSD_HEAD_extern=
al_toolchain_gcc/rescue/rescue
>> 1 error
>>=20
>>=20
>> 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
>>=20
>> Any ideas?
>> --
>> Craig
>>=20
>>=20
>=20
> On Tue, Mar 31, 2015 at 1:41 PM, Dimitry Andric <dim@freebsd.org> =
wrote:
>=20
>>=20
>> I'm suspecting this might have something to do with crunchide, or =
least,
>> the copy of crunchide that is run for this:
>>=20
>> --- 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_extern=
al_toolchain_gcc/rescue/rescue//builds/FreeBSD_HEAD_external_toolchain_gcc=
/bin/cat/cat.o
>> crunchide -k _crunched_cat_stub cat.lo
>>=20
>> 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}:
>>=20
>> .if ${TARGET_ARCH} !=3D ${MACHINE_ARCH}
>> .if ${MK_RESCUE} !=3D "no" || defined(RELEASEDIR)
>> _crunchide=3D     usr.sbin/crunch/crunchide
>> .endif
>>=20
>> 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...
>>=20
>> 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?
>>=20
>>=20
> Actually, I am building on a 10.1-RELEASE box.
>=20
> I was able to get this successful build:
> =
https://jenkins.freebsd.org/job/FreeBSD_HEAD_external_toolchain_gcc/38/con=
sole
>=20
> by applying this  patch (the ${TARGET_ARCH} !=3D ${MACHINE_ARCH} =
checks
> seemed wrong to me):

Why do they seem wrong. The intent is that you=E2=80=99d 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=E2=80=99s not the case, then we perhaps need to revisit the =
logic here. If we=E2=80=99ve
suddenly started needing newer versions, that should be expressed in the
logic as well.

Warner

> Index: Makefile.inc1
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> --- 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} !=3D ${MACHINE_ARCH}
> .if ${TARGET_ARCH} =3D=3D "amd64" || ${TARGET_ARCH} =3D=3D "i386"
> _btxld=3D                usr.sbin/btxld
> .endif
> -.endif
> -.if ${TARGET_ARCH} !=3D ${MACHINE_ARCH}
> .if ${MK_RESCUE} !=3D "no" || defined(RELEASEDIR)
> _crunchide=3D    usr.sbin/crunch/crunchide
> .endif
> @@ -1469,7 +1466,6 @@
> .if ${TARGET_ARCH} =3D=3D "i386" && defined(RELEASEDIR)
> _kgzip=3D                usr.sbin/kgzip
> .endif
> -.endif
>=20
> # If we're given an XAS, don't build binutils.
> .if ${XAS:M/*} =3D=3D ""
>=20
>=20
> --
> 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"


--Apple-Mail=_121E348A-F3E2-4DB3-ADB8-0B3ABFD4A1B9
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment;
	filename=signature.asc
Content-Type: application/pgp-signature;
	name=signature.asc
Content-Description: Message signed with OpenPGP using GPGMail

-----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-----

--Apple-Mail=_121E348A-F3E2-4DB3-ADB8-0B3ABFD4A1B9--



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