[dev] stali and static surf binary

From: Ersin Akinci <ersin.akinci_AT_gmail.com>
Date: Sat, 15 May 2010 17:11:48 -0400

Hi all,

I've dropped by in the IRC channel once or twice but that's unreliable, so I
thought that I'd send an e-mail to the list, as well. I discovered suckless
through stali a week ago when I was searching for information on statically
building WebKit browsers for--believe it or not--a new, all-statically
linked, uClibc-based distro that I've been working on in private for the
past month or two. I wanted to give a shout out to the stali developers
(and in general to suckless, I really like your projects and attitude) and
to offer whatever limited services or knowledge that I might have.

To be honest, however, I've almost abandoned my distro project because of
one last stumbling block: how to build a static web browser binary. There
are many that claim to have "static builds" (e.g., Seamonkey, Opera, WebKit
browsers), but those still rely on the dynamic library loader to bring up
X11 and assorted libs (only the web browser engine is built into the
binary). My question is if anyone has had luck in getting a browser like
surf to build as a _truly_ static binary and if they could share the secrets
of their success with me.

I've tried hacking around in WebKit on and off for about a month, and I
think the last segfaults that I got while trying to run the included sample
GtkBrowser had to do with calls to dlopen, so I'm totally lost. I also
tried a compromise. Right now, I'm putting all binaries in /bin (like
stali) and all config files in individual program directories under
/etc/programs (like Windows, in theory), so I tried to build individual
toolchains for each program under /etc/programs/foobar and set the
lib/include paths and rpaths to the appropriate directories in GCC's specs
file. Thus, dynamic libraries would still be used, but at least they would
be duplicated, independent, and isolated for each program that needed it.
Unfortunately, either due to my inexperience or perhaps more likely some
unfortunate hardcoded assumptions about /lib or /usr/lib, I keep getting an
error from the dynamic lib loader about libcairo, "can't handle reloc type
0xe in lib". Any ideas here would be greatly appreciated.

Best,
Ersin

-- 
What Digital Revolution? -- www.whatdigitalrevolution.com
Thinking critically about digital worlds.
Received on Sat May 15 2010 - 21:11:48 UTC

This archive was generated by hypermail 2.2.0 : Sat May 15 2010 - 21:24:02 UTC