Mailinglist Archive: opensuse-buildservice (244 mails)

< Previous Next >
[opensuse-buildservice] Re: qemu Cross Compilation Instructions
  • From: Troy Telford <ttelford.groups@xxxxxxxxx>
  • Date: Wed, 20 Jun 2012 16:46:15 -0600
  • Message-id: <jrtjrm$b57$>
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
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/ line 608. (repeated many times)

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.

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.
Troy Telford

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

< Previous Next >
Follow Ups