Package: schroot Version: 1.6.0-1 Both methods in question works fine outside schroot.
=== nekoc CALL __sysctl(0xbfbfe8f4,0x4,0x804c060,0xbfbfe8f0,0,0) nekoc SCTL "kern.proc.pathname.-1" -- schroot -- nekoc RET __sysctl 0 -- outside -- nekoc RET __sysctl -1 errno 2 No such file or directory Attached code to reproduce it (from http://patch-tracker.debian.org/patch/series/view/neko/1.8.1-6/kfreebsd-executable-path.diff). === nekoc CALL readlink(0x804a334,0x804c060,0x400) nekoc NAMI "/proc/self/exe" -- schroot -- nekoc RET readlink -1 errno 2 No such file or directory -- outside -- nekoc RET readlink 14/0xe -- schroot -- # ls -l /proc/self/exe ls: cannot read symbolic link /proc/self/exe: No such file or directory lr--r--r-- 1 root root 0 Jul 14 14:39 /proc/self/exe -- outside -- # ls -l /proc/self/exe lr--r--r-- 1 root root 0 Jul 14 16:39 /proc/self/exe -> /bin/ls === This causes haxe FTBFS (haxe uses neko) that made haxe removed from testing. http://bugs.debian.org/621890
#include <stdio.h> #include <sys/sysctl.h> main() { int mib[4]; mib[0] = CTL_KERN; mib[1] = KERN_PROC; mib[2] = KERN_PROC_PATHNAME; mib[3] = -1; static char path[1024]; size_t length = sizeof(path); sysctl(mib, 4, path, &length, NULL, 0); if( length < 0 || length >= 1024 ) { printf ("sysctl error\n"); return 1; } path[length] = '\0'; printf ("%s\n", path); }