Mailinglist Archive: opensuse-buildservice (252 mails)

< Previous Next >
Re: [opensuse-buildservice] [PATCH] [build] Map Debian ARM arches to OBS
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@xxxxxxxxxxxxxxx>
---
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@xxxxxxxxxxxx
To contact the owner, e-mail: opensuse-buildservice+owner@xxxxxxxxxxxx

< Previous Next >