Mailinglist Archive: opensuse-buildservice (244 mails)

< Previous Next >
Re: [opensuse-buildservice] Re: qemu Cross Compilation Instructions
  • From: Adrian Schröter <adrian@xxxxxxx>
  • Date: Thu, 21 Jun 2012 08:36:56 +0200
  • Message-id: <2497077.CBStNp6SBy@scherben>
Am Mittwoch, 20. Juni 2012, 16:46:15 schrieb Troy Telford:
On 2012-06-20 02:55:06 +0000, Robert Schiele said:

On Wed, Jun 20, 2012 at 2:35 AM, Troy Telford
<ttelford.groups@xxxxxxxxx> wrote:
So it appears that while OBS is at least attempting to build the package,
I'm not seeing any indication that qemu is being invoked. It seems that the
worker is just trying to execute the ARM-architecture 'rpm' as native
x86_64
code - and dies.

In fact it tries to invoke /usr/bin/qemu-arm-binfmt which likely does
not exist in your qemu package.

Yup; qemu-arm exists, but qemu-arm-binfmt does not.

To solve this there are two options:
Either you just use the qemu package from openSUSE or if you prefer to
use the Fedora qemu you might want to create a separate package in
addition that has the qemu-arm-binfmt (taking the source code or
binary from the openSUSE package).


That is very helpful!

I'm nearly there, I think, but I have a few outstanding issues I don't
know how to explain:

1.) My worker nodes (SLES 11SP2) report a warning - I do not get the
warning if a user uses 'osc build' (from an openSUSE 12.1 system).
registering binfmt handlers
Warning: could not register binfmt handlers

That looks like a problem. Are you sure that you have binfmtmisc handler
available here? Some debugging here may give some insight ..

Warning: mmap_min_addr is != 0. If programs fail at mmap this could be
the reason
Use of uninitialized value in string eq at
/var/run/obs/worker/1/build/Build.pm line 608. (repeated many times)

not nice, but most likely not important here.

When the build gets past the 'preinst' packages - and tries to execute
'rpm' (using the native ARM rpm binary), it fails as before.

I've tried:
* updating OBS (I'm using 2.3 stable)
* restarting OBS on the server
* stopped the workers
* removed /var/run/obs and /var/tmp/obs_workers (ie. everything
that's stored on the worker's filesystem)
* re-started the workers

I still get the same problem - the buildroot only partially builds on
the worker nodes, but works fine if a 'local' build using 'osc build'
is done.

the setup works in the same way on local build as on the servers. So
something must be different on your installations.

I have to admit that I have not tested the workers on SP2 yet ...

2.) When using 'osc build' to do a local build, instead of installing
the compiler to /usr/bin/g++ (which is what rpm -ql gcc-c++ shows the
installation path *should* be), the compiler is instead installed to
/usr/bin/armv5tel-redhat-linux-gnueabi-c++, with no symlink to the
corresponding 'short' compiler name.

Does anybody know why this is? It certainly plays havoc with makefiles
expecting to call gcc, g++, cc, c++, etc.

This must be caused by your project configuration. build is just installing
packages. Either your compiler package is not installed or some other other
package is messing it up ...

--
Adrian Schroeter
SUSE Linux Products GmbH
email: adrian@xxxxxxx

--
To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@xxxxxxxxxxxx
To contact the owner, e-mail: opensuse-buildservice+owner@xxxxxxxxxxxx

< Previous Next >