Comment 4 for bug 1218674

Revision history for this message
Loïc Minier (lool) wrote : Re: Need to make .click world readable before passing to click install

So I don't really understand why the preloading doesn't seem work on arm; it seems to work on x86; I've run gdb on dpkg-split with:
set environment CLICK_PACKAGE_FD=0
set environment CLICK_PACKAGE_PATH=ar.com.beuno.hello-world-0.6.click
set environment LD_PRELOAD=/usr/lib/arm-linux-gnueabihf/click/libclickpreload.so
break open
run -Qao /foobar ar.com.beuno.hello-world-0.6.click

but backtrace isn't in the right library:
Starting program: /usr/bin/dpkg-split -Qao /foobar /ar.com.beuno.hello-world-0.6.click

Breakpoint 1, 0x401c2710 in open () from /lib/arm-linux-gnueabihf/libc.so.6
(gdb) bt
#0 0x401c2710 in open () from /lib/arm-linux-gnueabihf/libc.so.6
#1 0x4018bce6 in _IO_file_open () from /lib/arm-linux-gnueabihf/libc.so.6
#2 0x4018be3c in _IO_file_fopen () from /lib/arm-linux-gnueabihf/libc.so.6
#3 0x40183df6 in ?? () from /lib/arm-linux-gnueabihf/libc.so.6

on x86 this works:
Breakpoint 1, open64 () at ../sysdeps/unix/syscall-template.S:81
81 ../sysdeps/unix/syscall-template.S: Aucun fichier ou dossier de ce type.
(gdb) bt
#0 open64 () at ../sysdeps/unix/syscall-template.S:81
#1 0x00007ffff7ddfd0f in open_verify (name=0x7ffff7ff94a0 "/usr/lib/x86_64-linux-gnu/click/libclickpreload.so", fbp=fbp@entry=0x7fffffffdbc8, loader=<optimized out>,
    whatcode=whatcode@entry=0, found_other_class=found_other_class@entry=0x7fffffffdbb0, free_name=free_name@entry=true) at dl-load.c:1924
#2 0x00007ffff7de28e2 in _dl_map_object (loader=0x7ffff7ffe268, name=0x7fffffffe100 "/usr/lib/x86_64-linux-gnu/click/libclickpreload.so", type=type@entry=1,
    trace_mode=trace_mode@entry=0, mode=67108864, nsid=nsid@entry=0) at dl-load.c:2544
#3 0x00007ffff7ddb81e in map_doit (a=a@entry=0x7fffffffe0b0) at rtld.c:632
#4 0x00007ffff7de96e6 in _dl_catch_error (objname=objname@entry=0x7fffffffe0a0, errstring=errstring@entry=0x7fffffffe0a8, mallocedp=mallocedp@entry=0x7fffffffe09f,
    operate=operate@entry=0x7ffff7ddb800 <map_doit>, args=args@entry=0x7fffffffe0b0) at dl-error.c:177
#5 0x00007ffff7ddb087 in do_preload (fname=0x7fffffffe100 "/usr/lib/x86_64-linux-gnu/click/libclickpreload.so", main_map=<optimized out>, where=0x7ffff7df6725 "LD_PRELOAD")
    at rtld.c:821
#6 0x00007ffff7dddac2 in dl_main (phdr=<optimized out>, phnum=0, user_entry=0x0, auxv=<optimized out>) at rtld.c:1635
#7 0x00007ffff7df076e in _dl_sysdep_start (start_argptr=start_argptr@entry=0x7fffffffe340, dl_main=dl_main@entry=0x7ffff7ddbe00 <dl_main>) at ../elf/dl-sysdep.c:241
#8 0x00007ffff7ddf208 in _dl_start_final (arg=0x7fffffffe340) at rtld.c:337
#9 _dl_start (arg=0x7fffffffe340) at rtld.c:563
#10 0x00007ffff7ddb638 in _start () from /lib64/ld-linux-x86-64.so.2
#11 0x0000000000000004 in ?? ()