Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 21 Jan 2016 17:18:08 -0800
From:      Mark Millard <markmi@dsl-only.net>
To:        Warner Losh <imp@bsdimp.com>
Cc:        freebsd-arm <freebsd-arm@freebsd.org>, FreeBSD Toolchain <freebsd-toolchain@freebsd.org>, Andrew Turner <andrew@fubar.geek.nz>
Subject:   Re: make buildworld failed with error "relocation truncated to fit: R_ARM_JUMP24 against symbol `_fini'"
Message-ID:  <D6B454CB-19AB-42FC-8B75-081CAE3D3D5D@dsl-only.net>
In-Reply-To: <1870E0DF-2EF5-4A04-A994-95E4F1D5F754@bsdimp.com>
References:  <358D5606-3B91-4050-9BE4-CF3E23A253E5@dsl-only.net> <1870E0DF-2EF5-4A04-A994-95E4F1D5F754@bsdimp.com>

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

On 2016-Jan-21, at 3:39 PM, Warner Losh <imp@bsdimp.com> wrote:
>=20
>> On Jan 21, 2016, at 2:41 PM, Mark Millard <markmi@dsl-only.net> =
wrote:
>>=20
>> On Thu Jan 21 13:11:03 UTC 2016 Andrew Turner andrew at fubar.geek.nz =
wrote"
>>=20
>>> I've disabled setting -mlong-calls on the clang libraries for now,
>>> however I expect we will need to enable it again when clang 3.8.0 is
>>> imported. As such I would recommend anyone wishing to run buildworld =
on
>>> arm to update before this is imported.
>>=20
>>=20
>> It seems that folks that later progress from 10.x-??? (or before) to =
11.0-RELELASE at some point for arm elf-hosted buildworld activity will =
face the issue without having the opportunity to build a -mlong-calls =
enabled context with a smaller clang first:
>>=20
>> BEAGLEBONE
>> CUBOX-HUMMINGBOARD
>> GUMSTIX
>> RPI-B
>> PANDABOARD
>> WANDBOARD
>>=20
>> So does the "all but clang libraries" -mlong-calls use need to be =
MFC'd? Even this may require updating from older 10.x's to a 10.y that =
has those -mlong-calls in place before going to 11.0-RELEASE (or later).
>>=20
>> A similar point will be an issue for switching from such a 10.x (or =
before) to 11.0-CURRENT once clang 3.8.0 has been imported: it may =
require a middle stage of switching to a then-older 11.0-CURRENT first =
(such as -r294499).
>=20
> Personally, I think we should make the dependent on the compiler =
version when we bring them back / before we MFC things.
>=20
> Warner

As I understand the investigation results: the live system's =
/usr/lib/crt1.o (for example) must already have long-call support built =
in in order to then build (link) clang 3.8.0 in the normal sequencing of =
things.

A similar point may apply for the live /usr/lib/libc++.a content --at =
least if lldb is also part of the attempted build.



=46rom what I see only one of the arm -mlong-calls was removed by =
-r294499:

> Modified: head/lib/clang/clang.lib.mk
> =
=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=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
> --- head/lib/clang/clang.lib.mk	Thu Jan 21 12:42:31 2016	=
(r294498)
> +++ head/lib/clang/clang.lib.mk	Thu Jan 21 12:59:54 2016	=
(r294499)
> @@ -7,7 +7,8 @@ LLVM_SRCS=3D ${.CURDIR}/../../../contrib/l
>  INTERNALLIB=3D
> =20
>  .if ${MACHINE_CPUARCH} =3D=3D "arm"
> -STATIC_CXXFLAGS+=3D -mlong-calls
> +# This will need to be enabled to link clang 3.8
> +#STATIC_CXXFLAGS+=3D -mlong-calls
>  .endif
> =20
>  .include <bsd.lib.mk>

The other arm -mlong-calls are all still in place:

head/lib/csu/arm/Makefile
head/lib/libc++/Makefile
head/usr.bin/clang/clang/Makefile
head/usr/bin/clang/lldb/Makefile

This allows getting to the state of the live system's /usr/lib/crt1.o =
(for example) and /usr/lib/libc++.a content already having long-call =
support before attempting a build of clang 3.8.0.

I'm not sure how one would test compiler versions to achieve such an =
overall sequencing that has proper live-system content at the right =
time. It is too bad that the requirement for the live-system is =
involved: only depending on /usr/obj/ content would simplify the =
sequencing requirements by removing the live-system requirement.


=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?D6B454CB-19AB-42FC-8B75-081CAE3D3D5D>