It seems that longrun and similar programs (procmeter3 longrun support, etc) are broken by the new libc. This program should read the transmeta vendor cpuid: #define CPUID_DEVICE "/dev/cpu/0/cpuid" #define CPUID_TMx86_VENDOR_ID 0x80860000 #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <unistd.h> #include <stdlib.h> #include <stdint.h> main () { int fd = open(CPUID_DEVICE, O_RDONLY); uint32_t data[4]; if (pread(fd, &data, 16, CPUID_TMx86_VENDOR_ID) != 16) { perror("pread"); } } If I strace this, the pread looks like this: pread(3, 0xbffff834, 16, 18446744071570849792) = -1 EINVAL (Invalid argument) If I build the same program in a woody chroot, and strace it, I get: pread(3, "\7\0\206\200TranaCPUsmet", 16, 2156265472) = 16 ltrace on the unstable system shows, much as I expected: pread(3, 0xbffff814, 16, 0x80860000, 0x40108622) = -1 Not sure what is happening with the pread offset here, but it looks like it is getting mangled on the way to the syscall? -- see shy jo
Attachment:
pgpYxGu7ZaTpm.pgp
Description: PGP signature