Blog

Still just a white screen

05.10.2009 at 23:49

As I mentioned in the last blog post recent svn versions of edje require lua. The lua build by default just creates a static liblua.a I wondered what the reason for this is. And it is once again libtool related. It seems like people who actually have kind of taste don't want to use libtool. I am not yet sure whether building a shared variant is useful at all in my particular case because currently the only user is edje (for now I don't install the lua interpreter).

Posted my initial attempt at adding support for source control management systems to FWL. I don't care about the actual implementation but the functionality should be available in one way or another.

Unfortunately my elementary test application still just shows a completely white screen. Ran the whole thing under strace to check whether it tries to open some thing which isn't there, but saw nothing suspicious so far. Played a bit with fbset and /etc/fb.modes but no look. Need to ping the enlightenment folks and finally post an RFC about the whole thing to the openmoko-devel list.

Marc

» read more » comments

More automake and libtool mystery

01.10.2009 at 11:02

Initially I based my bootmenu system around the EFL Snapshots from Juli 29th. The idea was to start with some known to work state instead of a randomly picked svn revision. Once I had everything compiled I wanted to run the elementary hello world application. Unfortunately all I got was a completely white screen. But hey it didn't segfault which is progress.

I then decided to update to a more recent svn revision to see whether it was an upstream error which got fixed in the meantime or if it was an error on my side. I choose the same revision as the OpenWRT folks. Again with the idea that it had worked for others before. Because I was now checking out upstream sources I needed to run aclocal, auto{header,conf,make} and libtoolize to generate the actual Makefiles etc. Unfortunately this didn't quite work out for me because apperently automake-1.11 does't like trailing slashes. This just shows how fragile the whole autohell system actually is.

I then decided to update to current svn HEAD because the latest and greatest should have all the bugs fixed, right? By the way this added lua as dependency. Unfortunately this resulted in build errors whenever a library package had it's library compiled and wanted to link against it later during the build. For some yet unknown reason libtool wasn't linking the binaries against the required libraries. After some head scratching I compared the libtool script as shipped with the EFL snapshots from Juli and the one generated by me locally. The crucial difference was the following line:

# Whether libtool must link a program against all its dependency libraries.
link_all_deplibs=no

Don't know yet why it was set to no in the first place but I decided to go with the quick and dirty solution for now and added a sed one liner to set the variable value to unknown after the ./configure stage. The build succeeded, Yay!

With this whole thing I wasted another few hours and unfortunately the end result was the same (the elementary hello world application just showed a white screen).

On the upside I am now on the bleeding edge enlightenment stuff which was the only sane thing to do in the long run anyway.

Marc

» read more » comments

Cross compiling revival

28.09.2009 at 19:33

While the idea of avoiding cross compilation is certainly desirable it's currently not really feasible performance wise for my poor little macbook. I therefore adjusted my scripts to support cross compilation. That means additional pain but once it works it should be relatively fast.

libtool madness

Of course I ran into some common cross compiling pitfalls were some part of the build tries to pull in various bits from the host system. In my particular case it was libtool that had some wrong paths in it's *.la files which then tried to link against libraries from the host system which obviously is doomed to fail. Of course I spent considerable time reading through configure and finally libtool shell scripts before finding out what was going on. The lesson here is probably: always ask Google if the problem isn't solved within 5-10 minutes. However what gave me the rest was the number one motivation / design goal of libtool which is:

The system must be as elegant as possible.

Epic fail!

pkg-config sysroot support

A similar problem exists with pkg-config which also has some paths in it's *.pc files. In the latest release (0.23) there is support for a PKG_CONFIG_SYSROOT_DIR environment variable which will prefix any -L -I compiler options with the specified value. Unfortunately for some reason Debian unstable which I have installed on my macbook is still stuck with version 0.22 albeit 0.23 was released back in January 2008. I'm wondering what's the reason for this delay. Anyway I have added a workaround for the problem in my build scripts.

boot distro status

I so far have cross compiled all the necessary dependencies of elementary but for some reason an elementary hello world app doesn't yet work.

Back to debugging.

Marc

» read more » comments

OpenExpo 2009 Winterthur

24.09.2009 at 10:18

Although the feedback from the openmoko-community was well non-existent I nevertheless decided to make a trip to Winterthur and attend the OpenExpo Social Event. To raise awareness and do some advertisement I was wearing my OpenMoko T-shirt. Unfortunately the reactions I got were rather negative the most common question I had to answer was probably "Is it dead yet?" or "when will it die?". My answer was of course that it's alive and doing well. That SHR is getting usable as a daily phone. That #gta02-core makes good progress and breaks now ground in the territory of Open Hardware Design.

To my surprise I actually also met 2 active community members. Sebastian Spaeth (spaetz) from the SHR Team and Ben Hagen who was responsible for the OpenMoko booth at previous OpenExpo's.

Besides these OpenMoko related contacts I also had some good conversations with Adriaan de Groot a FSFE employee and KDE hacker. He ported KDE to OpenSolaris so we talked about OpenSolaris, software patents and the relationship between the FSF and the FSFE.

On the downside it didn't seem like there were a lot of people who support the suckless philosophy. The OpenBSD folks are probably the closest ones to share the same kind of spirit. Unfortunately I didn't manage to talk to them at their booth (I should have asked how the pcc development is going on) and couldn't find them later at the social event.

I was rather sceptical of the event but the few interesting discussion made it a worthwhile stay.

Marc

» read more » comments

On the way towards a minimal elementary based boot system

23.09.2009 at 00:48

Now that I have a working toolchain I also built a full system image for qemu which contains a native toolchain. This avoids the broken by design approach of cross compiling (configure and friends analyse the host system and then based on these wrong assumption draw conclusions about the target system) by using emulation. Of course this also has a price: slower build times.

FWL has a neat trick though which at least in theory should speed up compilation: it uses distcc to call out to the host system (over the virtual network of qemu) where the distccd instance compiles the passed source code with the cross compiler. This means that the CPU intensive compiling process bypasses emulation but the environment dependent steps (./configure etc) are still run within a target environment and therefore can't leak in bits from the host system.

You might wonder why I said "in theory" above. Well in practice this works best for large compilation units where the overhead of the emulated network and hard disk (I/O) has a smaller influence. And there are also cases where distcc fails to compile something and then falls back to the native compiler (which runs under emulation) if that happens the time spent for distcc is of course wasted. The solution here seems to be throw more/faster hardware at the problem. Unfortunately that's hardware I currently don't have. Oh well.

Building a framebuffer based elementary with minimal dependencies

One idea for the boot menu application is to use elementary with the framebuffer backend as a GUI toolkit. This would provide an nice looking touchscreen aware user interface. However I am not really familiar with the whole EFL software stack and therefore don't know how small/big all required dependencies would be. Some research lead to the following "dependency graph" for elementary:

So it seems like this is getting quite complex/large. Maybe link everything static and let the compiler do some magic to eliminate all the unnecessary code paths? Anyway we will see. Spent a few hours configuring every package and disabling lot's and lot's of compile time options. During this process I also found some problems in ecore's touchscreen detection code and submitted the changes back to the enlightenment folks.

Hope this will eventually work in one way or another.

Marc

» read more » comments

<< 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 >>