All of lore.kernel.org
 help / color / mirror / Atom feed
From: Denys Dmytriyenko <denis@denix.org>
To: Patches and discussions about the oe-core layer
	<openembedded-core@lists.openembedded.org>
Cc: Patches and discussions about the oe-core layer
	<openembedded-core@lists.linuxtogo.org>,
	openembeded-devel <Openembedded-devel@lists.openembedded.org>
Subject: Re: ARM hard-float linker path - consensus
Date: Fri, 13 Apr 2012 15:50:32 -0400	[thread overview]
Message-ID: <20120413195032.GJ13291@denix.org> (raw)
In-Reply-To: <CAMKF1srwijBorqM1e8Ck=PaV82GoPABpqsjnvpevEXYinQ+6YQ@mail.gmail.com>

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@linaro.org>
> Date: Fri, Apr 13, 2012 at 10:37 AM
> Subject: ARM hard-float linker path - consensus
> To: cross-distro@lists.linaro.org
> Cc: libc-ports@sourceware.org, gcc-patches@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@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@canonical.com>
> and Michael Hope <michael.hope@linaro.org>
> 
> 2012-04-13 Steve McIntyre <steve.mcintyre@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@linaro.org
> <http://www.linaro.org/> Linaro.org | Open source software for ARM SoCs
> 
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core




WARNING: multiple messages have this Message-ID (diff)
From: Denys Dmytriyenko <denis@denix.org>
To: Patches and discussions about the oe-core layer
	<openembedded-core@lists.openembedded.org>
Cc: Patches and discussions about the oe-core layer
	<openembedded-core@lists.linuxtogo.org>,
	openembeded-devel <Openembedded-devel@lists.openembedded.org>
Subject: Re: [OE-core] Fwd: ARM hard-float linker path - consensus
Date: Fri, 13 Apr 2012 15:50:32 -0400	[thread overview]
Message-ID: <20120413195032.GJ13291@denix.org> (raw)
In-Reply-To: <CAMKF1srwijBorqM1e8Ck=PaV82GoPABpqsjnvpevEXYinQ+6YQ@mail.gmail.com>

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@linaro.org>
> Date: Fri, Apr 13, 2012 at 10:37 AM
> Subject: ARM hard-float linker path - consensus
> To: cross-distro@lists.linaro.org
> Cc: libc-ports@sourceware.org, gcc-patches@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@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@canonical.com>
> and Michael Hope <michael.hope@linaro.org>
> 
> 2012-04-13 Steve McIntyre <steve.mcintyre@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@linaro.org
> <http://www.linaro.org/> Linaro.org | Open source software for ARM SoCs
> 
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core




  reply	other threads:[~2012-04-13 20:00 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20120413173704.GG2880@linaro.org>
2012-04-13 18:11 ` ARM hard-float linker path - consensus Khem Raj
2012-04-13 19:50   ` Denys Dmytriyenko [this message]
2012-04-13 19:50     ` [OE-core] Fwd: " Denys Dmytriyenko
2012-04-13 19:58     ` Khem Raj
2012-04-13 19:58       ` [OE-core] Fwd: " Khem Raj

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20120413195032.GJ13291@denix.org \
    --to=denis@denix.org \
    --cc=Openembedded-devel@lists.openembedded.org \
    --cc=openembedded-core@lists.linuxtogo.org \
    --cc=openembedded-core@lists.openembedded.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.