Mailinglist Archive: opensuse-arm (69 mails)

< Previous Next >
Re: [opensuse-arm] ARM status




On 24.11.2011, at 16:56, Alexander Graf <agraf@xxxxxxx> wrote:


On 24.11.2011, at 16:53, Alexander Graf wrote:

Hi guys,

It's time for a small status update. This won't be an extensive list, but at
least give you an overview of what has happened since the last time :).

*** We can successfully build ~3500 out of ~4700 Factory packages! ***

Unfortunately Factory is updating so fast that we just haven't managed to do
a full build of all these shina packages for the last 3 weeks, so packages
you see in the download repository are from 3 weeks ago. To fetch the newer
builds, just run "osc getbinaries ...". Beware of dragons though :).

Also, there are a couple of things we have now that weren't there before:

* Lots of qemu fixes to get stuff building
* Kernel rpms so we can generate kernels for the following flavors: default,
tegra, omap2plus (Pandaboard), imx51 (EFIKA MX)
* Build fixes for a number of packages (otherwise we wouldn't get 3.5k!)
* U-boot package for pandaboard (thanks Joop!)
* Probably a lot of stuff I can't remember atm. If you have worked on
something and want to add it to the list, please reply to this mail so we
have more overview :).

So what is still missing from here? Well, these are the pieces I'm tracking
right now:

* Kiwi support (Marcus is on it!)
* Kernel testing and making-it-work [1]
* Exception handling [1] keeps us from building Java, keeps us from building
most of the other 1200 packages
* hwinfo probably needs some love for ARM
* yast2 could use some love as well :)
* X drivers are probably still missing
* Fixing broken packages, there are still a few that are not broken because
of exception handling :)


[1] To handle exceptions we need to be able to unwind state at certain
points in the code. This unwinding requires special tables which are
different on ARM than on any other platform out there. Now the problem is
that even a program as simple as:

#include <stdio.h>

int main(int argc, char **argv)
{
try {
throw -1;
}

catch (int) {
fprintf(stderr, "We caught an exception of type int\n");
}
}

fails to execute on our current builds. Thus gmp and gcj don't build
properly and everything depending on Java just doesn't even get built. I'm
trying to reproduce this with Linaro's gcc to maybe get some help from them.
Once we have that, the kernel might end up working and we should have an
almost-completely-built distro (no guarantees for actually working code).

Update: It works with Linaro's g++.

I have good and bad news here :).

I managed to have a small reproducably failing test case. Every time I compile
this small c++ program on a pandaboard it generates invalid unwind tables and
the program fails executing.

However with the exact same compiler and system binaries executed on a
different machine through qemu-arm, the program compiles properly!

So my guess is that gcc is using uninitialized memory somewhere. Unfortunately,
valgrind is missing some thumb instructions which I have to report upstream
now. But things are progressing...

Alex



Alex

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

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

< Previous Next >
List Navigation
Follow Ups