Daily blurbs Jun. 2007


daily blurbs

30 Jun 2007 (Sat)

14:09:41 # Life lib64 on amd64. On debian amd64, there is /usr/lib64 directory which is symlinked to /usr/lib. It's useful since many upstream expect /usr/lib64 to exist, and changing every single upstream isn't possible. However, there is one problem. Many libraries explicitly specify /usr/lib64, and that goes into libtool .la files and will generate a -rpath of /usr/lib64. libtool will ignore a set of pre-defined paths from -rpath, which is defined as sys_lib_dlsearch_path_spec, which is probably pulled from /etc/ld.so.conf on linux systems. The problem is, /usr/lib64 is a symlink to /usr/lib, and it is not included in library search path (although effectively, /usr/lib is included in the search path, so libraries in /usr/lib64 is searched). I am suspecting that this results in many -rpath set for /usr/lib64 on amd64 system. I think this is currently solved by running chrpath in debian/rules, but not all of them is fixed. Another way to fix it would be to patch libtool to ignore lib64. Hmm..

27 Jun 2007 (Wed)

07:02:35 # Life cowdancer segv on amd64. glibc dlsym doesn't set dlerror() on error when RTLD_NEXT is used. Hmm... When glibc fails to tell me there is a problem, what can I do to work around it? 430732

24 Jun 2007 (Sun)

03:07:00 # Life apt-listbugs changes for easier use by clients. Having had a little discussion with Stefano Zacchiroli about debian/changelog editing and bug number completion, I decided I'll make the 'apt-listbugs list' command a bit more useful. It now has two new features. --severity all option to specify all severities, and you can specify the current version with PACKAGE/VERSION syntax. These functionalities should be available in the 0.0.79 upload. It also uses the shiny new BTS SOAP interface, and no longer relies on merkel.debian.org, thanks to help from Don Armstrong. To find a bug that is not yet closed on apt-listbugs 0.0.79, you'll ask for it like this: apt-listbugs list -s all apt-listbugs 0.0.79

18 Jun 2007 (Mon)

17:55:19 # Life About debbugs by Don Armstrong.

17 Jun 2007 (Sun)

17:02:15 # Life I managed to use the washing machine at Budget Backpackers. On the way I managed to wash and dry the Debconf badge, but it seems like it survived. Good news.

16 Jun 2007 (Sat)

04:04:03 # Life Running user-mode emulation with qemu on a chroot. If you're running on i386, and want to hack on mips, using user-mode emulation rather than the chunky system-mode emulation of qemu, I have a good news for you. If not, well, please read on.

Say you have the mips root filesystem at /mnt (try debootstrap --cross). Copy qemu-mips into the chroot, and copy the required i386 libraries into the chroot, in a path that is only executed by the i386 ELF loader (I used, /lib/i686/cmov here), and copy ld-linux.so.2 to /mnt/lib. (this hack works because mips uses /lib/ld.so.1 while i386 uses /lib/ld-linux.so.2)

# ls -l /mnt/bin/qemu-mips
-rwxr-xr-x 1 root root 555648 Jun 16 03:49 /mnt/bin/qemu-mips
# ldd /mnt/bin/qemu-mips
        linux-gate.so.1 =>  (0xffffe000)
        libm.so.6 => /lib/i686/cmov/libm.so.6 (0xb7f86000)
        librt.so.1 => /lib/i686/cmov/librt.so.1 (0xb7f7d000)
        libasound.so.2 => /usr/lib/libasound.so.2 (0xb7ebb000)
        libc.so.6 => /lib/i686/cmov/libc.so.6 (0xb7d78000)
        /lib/ld-linux.so.2 (0xb7fc1000)
        libpthread.so.0 => /lib/i686/cmov/libpthread.so.0 (0xb7d61000)
        libdl.so.2 => /lib/i686/cmov/libdl.so.2 (0xb7d5d000)
# ls -l /mnt/lib/i686/cmov/
total 4440
-rw-r--r-- 1 root root  785548 Jun 16 03:56 libasound.so.2
-rw-r--r-- 1 root root  785548 Jun 16 03:55 libasound.so.2.0.0
-rw-r--r-- 1 root root 1315328 Jun 16 03:52 libc-2.5.so
-rwxr-xr-x 1 root root 1315144 Jun 16 03:57 libc.so.6
-rw-r--r-- 1 root root    9684 Jun 16 03:57 libdl.so.2
-rw-r--r-- 1 root root  153424 Jun 16 03:55 libm.so.6
-rwxr-xr-x 1 root root  107995 Jun 16 03:57 libpthread.so.0
-rw-r--r-- 1 root root   30624 Jun 16 03:55 librt.so.1
# ls -l /mnt/lib/ld
ld-2.5.so      ld-linux.so.2  ld.so.1

You can now run qemu-mips through chrooting.

# chroot . /bin/qemu-mips /bin/bash
cannot set up thread-local storage: unknown error

oops. qemu in unstable today doesn't actually work with mips user-mode emulation. Try the more recent CVS snapshot instead ... To be continued ?

15:31:02 # Life Trying to update the kernel on macbook. I was sitting on, so I tried updating to Internal mouse doesn't seem to work, might be due to X settings. Wireless with madwifi doesn't seem to get DHCP, I wonder why. UPDATE: Noel Kothe wrote in mactel linux mailing list that we need a newer version of madwifi than that in unstable today.

5 Jun 2007 (Tue)

22:57:17 # Life Playing with qemubuilder. I didn't notice qemu only built on i386, amd64, and ppc. It's good enough, but not perfect. On the other news, I moved cowdancer git repos to pbuilder repos.

4 Jun 2007 (Mon)

06:57:20 # Life qemubuilder now in sid. There's a lack of documentation, so here's a little note. You need to find a kernel image for the architecture you are running, and ooooh, specify undocumented configuration option (ARCH=xxx). Silly me. Uploading a fixed version.

1 Jun 2007 (Fri)

22:46:56 # Life Playing with USL-5P. I've decided to play with this compact machine, which is a SH4 device which boots of CF, and has 5 USB ports. The rest of hardware is apparently mostly similar to LANTANK and LANDISK. If you want to play with it at debconf, I might bring extra machines, it's not expensive, at around $100 a piece.

Junichi Uekawa

$Id: 200706.html.en,v 1.20 2007/06/30 05:15:04 dancer Exp $