Mailinglist Archive: opensuse-buildservice (348 mails)

< Previous Next >
Re: [opensuse-buildservice] [PATCH 4/6] obs-server, webui: update SPARC definitions
  • From: Martin Mohring <martin.mohring@xxxxxxxxxxxx>
  • Date: Thu, 15 Apr 2010 01:38:25 +0200
  • Message-id: <4BC651F1.7080404@xxxxxxxxxxxx>
Jan-Simon Möller wrote:
Am Mittwoch, 14. April 2010 17:57:21 schrieb Ludwig Nussel:

Ludwig Nussel wrote:

Martin Mohring wrote:

Ludwig Nussel wrote:

Martin Mohring wrote:

Ludwig Nussel wrote:

There's a hack for ARM in the build script, it looks at
'changetarget' in prjconf in order to define the target I think.
Maybe that feature could be used here too.

This is not a hack, it is due to the behavior of rpm. We found no other
way working with all rpm versions to handle this. And: the problem
solved with this is not limited to ARM.

Atm it is both a hack (conflicts with ABUILD_TARGET_ARCH AFAICS) and
is limited to ARM :-)

1613 # case arm, extract changetarget
1614 # this is restricted to arm to make sure it doesn't
interfere with x86
1615 if [ "$BUILD_ARCH" != "${BUILD_ARCH#arm}" ]; then

Ok. Let me say it another way: Yes, it is of course a hack (and the #arm
is a hack). But how does the "solution" instead of the hack look like? I
the only solution we found is to pass in worst case the full triple to
rpm. If the implementation of this is a hack, lets fix it.

Well, I guess that solution is fine if it integrates with
ABUILD_TARGET_ARCH. I'd probably rename the option to
'defaulttarget' or just 'target' instead of 'changetarget' though.

Since --target is buggy in rpm anyways what about using
buildarchtranslate instead? The default rpmrc on 11.2 contains
the line "buildarchtranslate: armv5tel: armv4l". Which is the reason
you need to change the target I guess.
'getoptflags' writes a ~/.rpmrc anyways so if we'd change it to also
extract buildarchtranslate from the config you could specify
"buildarchtranslate: armv5tel: armv5tel" in the prjconf instead of having to
pass --target to rpmbiuld.

Nack. Partly. The reason is: qemu-user advertizes armv7 as cpu and rpm's
autodetection would (try to) build
armv7 even on armv5 userspace (btw - cool for bootstrapping). Also think vice
Older qemu-user advertized armv5 but also executed armv7.
But the idea is good, lets elaborate it further.

The point is: we need to make _sure_ the architecture chosen gets
built and not screwed up by e.g. autodetection returning "wrong"
results - which is not the fault of the autodetection per se.
And keep in mind: it has to work with different distros !

Lets look at an example:
So we'd need to set for arm

buildarchtranslate: armv5tel: armv5tel
buildarchtranslate: armv5tevl: armv5tel
[...]tejl tejvl ... whatever other string. Mess!
buildarchtranslate: armv6l: armv5tel
buildarchtranslate: armv6vl: armv5tel
buildarchtranslate: armv7l: armv5tel
buildarchtranslate: armv7vl: armv5tel

basically all arches that _might_ show up within the autodetection (emulated
or native).
An we'd have to make sure that part of the macro inclusion chain wins also
for conflicting definitions.

Is that easier than one --target ??


my 2 cent also:

Last but not least: for boostrapping, it is *always needed to be able to
force a specific architecture independent of the host*. That is not only
true for ARM but also for other systems. Like x86.


To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@xxxxxxxxxxxx
For additional commands, e-mail: opensuse-buildservice+help@xxxxxxxxxxxx

< Previous Next >