Search Wiki

User Actions

Page Actions

Introduction

We urgently need to agree on the runtime linker path for the various ARM hard-float ports that distros are working on right now. Without doing this, we'll break binary compatibility between the distros at just the point when we might have achieved it. Let's have a call for all the interested parties to make a decision.

When?

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?

Minutes

Meeting: 13th April 2012, 15:00 UTC

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 [email protected] 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.