--- linux-user/syscall.c.orig 2006-11-05 07:07:19.000000000 +0200 +++ linux-user/syscall.c 2006-11-05 07:07:25.000000000 +0200 @@ -173,6 +175,7 @@ extern int getresuid(uid_t *, uid_t *, u extern int setresgid(gid_t, gid_t, gid_t); extern int getresgid(gid_t *, gid_t *, gid_t *); extern int setgroups(int, gid_t *); +extern int uselib(const char*); static inline long get_errno(long ret) { @@ -2742,7 +2745,11 @@ long do_syscall(void *cpu_env, int num, } break; case TARGET_NR_uselib: - goto unimplemented; + p = lock_user_string(arg1); + ret = get_errno(uselib(path(p))); + unlock_user(p, arg1, 0); + break; + case TARGET_NR_swapon: p = lock_user_string(arg1); ret = get_errno(swapon(p, arg2));