[oe] [OE-core] Fwd: ARM hard-float linker path - consensus
Denys Dmytriyenko
denis at denix.org
Fri Apr 13 19:50:32 UTC 2012
On Fri, Apr 13, 2012 at 11:11:02AM -0700, Khem Raj wrote:
> FYI this will impact us in coming time. If someone has questions
> please bring it up
While it's a slightly unexpected outcome (/lib/ld-linux-armhf.so.3) it's still
good to see some agreement here.
Do we want to make the necessary toolchain changes right away, or wait for
them to propagate from upstream?
--
Denys
> ---------- Forwarded message ----------
> From: Steve McIntyre <steve.mcintyre at linaro.org>
> Date: Fri, Apr 13, 2012 at 10:37 AM
> Subject: ARM hard-float linker path - consensus
> To: cross-distro at lists.linaro.org
> Cc: libc-ports at sourceware.org, gcc-patches at gcc.gnu.org
>
>
> Hi folks,
>
> As promised, here's minutes from the call we had this
> afternoon. Spoiler: the result we've agreed is
>
> /lib/ld-linux-armhf.so.3
>
> And here's a transcription of the minutes from
>
> https://wiki.linaro.org/OfficeofCTO/HardFloat/LinkerPathCallApr2012
>
> ========================================
>
> Meeting: 13th April 2012, 15:00 UTC
>
> Agenda
> ------
>
> * Debian/Ubuntu have so far built using /lib/arm-linux-gnueabihf/ld-linux.so.3
> * Some other distros (Fedora, OpenSUSE) are still using
> /lib/ld-linux.so.3 option which matches the older soft-float ABI
> * Some people are proposing /libhf/ld-linux.so.3 or
> /libhfp/ld-linux.so.3 (multilib)
> * Some people proposed /lib/ld-arm-linux-gnueabihf.so.3 (similar to
> x86_64, libs still in /lib, from Michael Hope)
> * What should we do as a community?
>
> Present
> -------
>
> Name Affiliations
>
> Steve McIntyre ARM, Debian, Linaro
> Wookey ARM, Debian, Linaro
> Richard Earnshaw ARM, gcc
> Jeff Law Fedora, Red Hat, gcc, glibc
> Jon Masters Fedora, Red Hat
> Andrew Haley Fedora, Red Hat, gcc
> Andreas Jaeger SUSE, openSUSE, glibc
> Carlos O'Donnell Mentor, gcc
> Steve Langasek Canonical, Ubuntu, Debian
> Dann Frazier Canonical, Ubuntu, Debian
> Adam Conrad Canonical, Ubuntu, Debian
> Matthias Klose Canonical, Ubuntu, Debian
> Mike Frysinger Gentoo
> Dennis Gilmore Fedora, Red Hat
>
> Discussion
> ----------
>
> We started with a couple of questions up front to establish the
> grounds for discussion:
>
> * We believed that decision makers were present for all the important
> parties, i.e. all the arm hard-float distros, plus toolchain
> developers. This meant that a decision taken at the meeting could
> be implemented without needing further arguments/negotiations.
>
> * All the people present understood the importance of cross-distro
> binary compatibility, and they all wanted it. This led to agreement
> that we needed to agree on a standard path for the runtime linker
> for ARM hard-float Linux binaries.
>
> Debian and Ubuntu had so far been using the "multi-arch" path of
> /lib/arm-linux-gnueabihf/ld-linux.so.3. Fedora and OpenSUSE were thus
> far using /lib/ld-linux.so.3, the same as the soft-float ABI. Others
> had proposed alternative paths such as /libhf/ld-linux.so.3 or
> /libhfp/ld-linux.so.3 (multilib) or
> /lib/ld-arm-linux-gnueabihf.so.3. Discussion showed that none of these
> were found to be universally acceptable.
>
> Two parties were likely to be soon affected by an agreement here:
>
> 1. Ubuntu 12.04 (releasing with armhf in ~2 weeks)
>
> Adam/Steve L agreed that all efforts would be put in to switch the
> compilers in Ubuntu to a new path before release. Default things like
> gcc would be correct, but less common tools might still be targetting
> the old path /lib/arm-linux-gnueabihf/ld-linux.so. at release. They
> could be fixed in the longer term and would not stop progress here.
>
> 2. Mentor (Codebench due for release in ~1 week)
>
> Carlos mentioned this - Codebench has been using /lib/ld-linux.so.3
> for hard-float binaries for some time and it was too late to change
> that for this upcoming release. Next release due in October. Suggested
> and accepted that this should be mentioned in release notes: if people
> want to use Codebench on some systems (Debian/Ubuntu and derivatives),
> they'll need to tweak their system setup. He may be able to do the
> linker change and rebuild in a point release in a few weeks.
>
> It was briefly suggested that the soft-float linker should be renamed
> away from /lib/ld-linux.so.3 as well at this time, but that idea was
> quickly shot down.
>
> Proposal #1: /lib/ld-armhf.so.3 (not generally liked)
>
> Proposal #2: /lib/ld-linux-armhf.so.3 (not favourite, but considered
> an acceptable compromise by all)
>
> No need to go any further.
>
> Conclusion
> ----------
>
> All the people in the meeting agreed: the new runtime linker path for
> ARM hard-float Linux binaries was to be
>
> /lib/ld-linux-armhf.so.3
>
> ACTION: People at the meeting to present this decision to their
> companies / communities and get the appropriate changes made.
>
> Further discussion
> ------------------
>
> General unhappiness with the mess that led to this meeting. Future
> planning needs to be better between the various groups for the next
> time we have a new CPU/ABI/whatever.
>
> ACTION: Jon Masters to talk to the Linux Foundation about setting up a
> forum for such discussions.
>
> In the meantime, strong consensus to use the
> cross-distro at lists.linaro.org mailing list for any more conversations
> now we have people in contact.
>
> ACTION: Steve McIntyre to write up the minutes and circulate. Include
> an updated linker path patch for gcc to match the decision
> made here.
>
> More discussion about triplets and naming, but nothing came of it in
> the end. Distro folks have already decided what they're using and have
> patched various software to build appropriately. Richard wants to move
> gcc's config.guess to use arm-linux-gnueabihf; no strong objections to
> that.
>
> Linker path patch for gcc
> -------------------------
>
> Adapted from earlier work by Dann Frazier <dann.frazier at canonical.com>
> and Michael Hope <michael.hope at linaro.org>
>
> 2012-04-13 Steve McIntyre <steve.mcintyre at linaro.org>
>
> * config/arm/linux-eabi.h (GLIBC_DYNAMIC_LINKER_HARD_FLOAT): Define.
> (GLIBC_DYNAMIC_LINKER): Redefine to use the hard float path.
>
> diff --git a/gcc/config/arm/linux-eabi.h b/gcc/config/arm/linux-eabi.h
> index 80bd825..8c9d2e7 100644
> --- a/gcc/config/arm/linux-eabi.h
> +++ b/gcc/config/arm/linux-eabi.h
> @@ -62,7 +62,11 @@
> /* Use ld-linux.so.3 so that it will be possible to run "classic"
> GNU/Linux binaries on an EABI system. */
> #undef GLIBC_DYNAMIC_LINKER
> -#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.3"
> +#define GLIBC_DYNAMIC_LINKER_SOFT_FLOAT "/lib/ld-linux.so.3"
> +#define GLIBC_DYNAMIC_LINKER_HARD_FLOAT "/lib/ld-linux-armhf.so.3"
> +#define GLIBC_DYNAMIC_LINKER \
> + "%{mfloat-abi=hard:" GLIBC_DYNAMIC_LINKER_HARD_FLOAT "} \
> + %{!mfloat-abi=hard:" GLIBC_DYNAMIC_LINKER_SOFT_FLOAT "}"
>
> /* At this point, bpabi.h will have clobbered LINK_SPEC. We want to
> use the GNU/Linux version, not the generic BPABI version. */
>
>
> Post-meeting on IRC
> -------------------
>
> Suggested that Richard should push the change into gcc trunk
> ASAP. Steve McIntyre agreed to work on that with Richard.
>
> Also suggested that we want to get a patch into glibc too to change
> the installation path for ARM hard-float. Andrew agreed to push glibc
> upstream for that.
>
> Cheers,
> --
> Steve McIntyre steve.mcintyre at linaro.org
> <http://www.linaro.org/> Linaro.org | Open source software for ARM SoCs
>
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core at lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
More information about the Openembedded-devel
mailing list