Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 20 Jan 2016 16:17:29 -0800
From:      Mark Millard <markmi@dsl-only.net>
To:        freebsd-arm <freebsd-arm@freebsd.org>, FreeBSD Toolchain <freebsd-toolchain@freebsd.org>
Cc:        mmel@freebsd.org, tvijlbrief@gmail.com
Subject:   make buildworld failed with error "relocation truncated to fit: R_ARM_JUMP24 against symbol `_fini'"
Message-ID:  <EED734D6-460D-4859-B10E-30FA4759D214@dsl-only.net>

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

Wed Jan 20 10:29:06 UTC 2016 Michal Meloun wrote:

> Dne 20.01.2016 v 8:00 Tom Vijlbrief napsal(a):
> . . .
> >=20
> > The buildworld on the RPI failed:
> >=20
> > http://www.v7f.eu/public/freebsd/world371.log
> >=20
> > The same tree build ok when cross compiling. I can supply the log if =
needed.
> >=20
> > My previous succesfull build on the RPI was jan 14, just before the
> > introduction of the long-call flag for clang but after the long-call =
change
> > for crt1.o on jan 10th.
> >=20
> > Could this partial introduction of the long-call flag in the =
installed
> > world be the cause of the issue? I would expect a buildworld to use =
only
> > libs from /usr/obj but the failing link refers to /usr/lib.
> >=20
> > I will try installing the new cross compiled world to see if that =
fixes the
> > native build.
> >=20
> >>
> > _______________________________________________
> > freebsd-arm at freebsd.org mailing list
> > https://lists.freebsd.org/mailman/listinfo/freebsd-arm
> > To unsubscribe, send any mail to "freebsd-arm-unsubscribe at =
freebsd.org"
> >=20
>=20
> Confirmed. Native build of fresh current fails on bootstrap clang link
> phase.
>=20
> The bootstrap clang is now build with -mlong-calls and is =
significantly
> longer that previous one (without -mlong-calls). Also, bootstrap clang
> is linked with original "/usr/lib/crti.o" (which is compiled without
> -mlong-calls), so link fails.
>=20
> This is also reason, why the problem is not seen with crossbuild  -
> bootstrap clang is builded for host architecture and final (target)
> clang is linked with right (new, compiled with -mlong-calls) crti.o.
>=20
> Michal


For on-arm buildworld with clang/clang++ (self hosted) . . .
(Warning that I've not tried the below.)

It appears that one can back out the -mlong-calls additions and get back =
to something that builds and installs without needing any cross builds =
from a different type of host.

Going the other way: If one already has clang/clang++ 3.7.1 one does not =
need WITH_CLANG_BOOTSTRAP=3D involved as the existing system =
clang/clang++ can already do the compiles.

So try an explicit WITHOUT_CLANG_BOOTSTRAP=3D to avoiding having a =
version built that ends up linked with /usr/lib/crti.o (that is not =
based on -mlong-calls yet) but mixed that with having the -mlong-calls =
in place for the non-bootstrap clang build to use.

The above might be a workaround sufficient for bootstrapping into a =
-mlong-calls based environment when the arm itself is to build clang =
and/or lldb.


=3D=3D=3D
Mark Millard
markmi at dsl-only.net




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?EED734D6-460D-4859-B10E-30FA4759D214>