Hello Adrian, On 28/03/12 04:49, Adrian Schröter wrote:
Am Dienstag, 27. März 2012, 22:43:35 schrieb Hector Oron:
Debian ARM arches: - Debian 'armel', which defaults to ARMv4t (soft) maps to armv[4567]l - Debian 'armhf', which defaults to ARMv7 (hard-float) maps to armv7hl
Note Ubuntu 'armel' deprecated after 'precise' release, defaults to ARMv7 (softfp). So Ubuntu 'armel' should really map armv7l, but its out of scope for this patch.
Hm, doesnt it make sense to map armv7l and armv7hl to armhf ? AFAIK there are no arm cpus on v7 level without hardware fp.
On the other hand this is about optimization level here and not hardware capabilities...
As I understand armv7hl is hard-float ABI, hence 'armhf'.
armv7l can be ARMv7/softfp as Ubuntu was doing on their ARM port (armel), hence makes sense to me to map armv7l to 'armel'.
OTOH, Debian armel can run on any of those platforms, armv[4567]l, maybe armv[4567]el should be added to the list. In other words, if I am building armv7l debian packages I would expect them to use 'armel' dependencies, while if I am building armv7hl, I would expect to build against 'armhf' dependencies.
As a side note, I also see 'armv8el', I think that one comes from MeeGo, and it should be deprecated and mapped in the future to aarch64 (64-bit ARM architecture).
That one is pure fantasy and will have nothing in common with real upcomming armv8, I think.
But also architectures like armv7hl or armhf are fantasy when it comes to the linux kernel. They are just a hack in the packagemanagement to avoid to handle ABI compatibility on dependency level. But it makes for example impossible to install static binaries armv7l on armv7hl and vice versa. Even though it would run on real hardware.
Impossible unless your packaging system allows to install armv7l on armv7hl environment under certain conditions and viceversa.
Or it would be thinkable to have also an entire set of packages with softfp on hardfp and vice versa. For that reason I selected just "armv7l" for our hardfp optimized distribution. But I agree that we seems to be special in the arm world with that way (so in worst case we need to switch to armv7hl as well and need to make armv7l and armv7hl as equivalent to avoid the describe problems) :/
In my case, imagine I have a build dependency foo [armel] | bar [armhf] and I am using armv7l in OBS. If I am building against Ubuntu armel distro, I would like the resolver to resolve foo [armel] instead of bar. Also I thought armv7*h*l, *h* stands for hard, right?
In any case we have the problem now that we can not detect the ABI from the architecture now...
Indeed, thats a problem.
We can take your patch now, but armhf will not be selected right in our default settings.
Not sure why is that.
I would be happy, if anyone has a better proposal here.
If I come up with better ideas, I'll resend a patch, as someone might want to build optimized distro for R-PI (armv6 hard-float) and current mapping would not allow for that.
Signed-off-by: Hector Oron <hector.oron@collabora.co.uk> --- Build/Deb.pm | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-)
diff --git a/Build/Deb.pm b/Build/Deb.pm index b6c7cc6..3878fd4 100644 --- a/Build/Deb.pm +++ b/Build/Deb.pm @@ -26,6 +26,8 @@ sub parse { $arch = 'i386' if $arch =~ /^i[456]86$/; $arch = 'powerpc' if $arch eq 'ppc'; $arch = 'amd64' if $arch eq 'x86_64'; + $arch = 'armel' if $arch =~ /^armv[4567]l$/; + $arch = 'armhf' if $arch eq 'armv7hl';
if (ref($fn) eq 'ARRAY') { @control = @$fn;
-- Hector Oron Collabora Ltd Kett House, Station Road, Cambridge CB1 2JH, United Kingdom Telephone: +44 (0)1223 362967 Fax: +44 (0) 1223 351966 -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-buildservice+owner@opensuse.org