This patch fixes the lookup_dcookie for the MIPS o32 ABI. Although I only tested with little-endian, the big-endian case needed fixing as well but is untested (but what are the chances that this is not the correct fix?). This is the only patch I needed to get the user space oprofile programs to work for mipsel-linux. I am CCing the linux-mips list as this may be of interest there as well. David Daney. 2005-10-17 David Daney <ddaney@xxxxxxxxxx> * daemon/opd_cookie.c (lookup_dcookie): Handle MIPS o32 for both big and little endian. Index: oprofile/daemon/opd_cookie.c =================================================================== RCS file: /cvsroot/oprofile/oprofile/daemon/opd_cookie.c,v retrieving revision 1.19 diff -p -a -u -r1.19 opd_cookie.c --- oprofile/daemon/opd_cookie.c 26 May 2005 00:00:02 -0000 1.19 +++ oprofile/daemon/opd_cookie.c 17 Oct 2005 21:29:13 -0000 @@ -60,12 +60,21 @@ #endif /* __NR_lookup_dcookie */ #if (defined(__powerpc__) && !defined(__powerpc64__)) || defined(__hppa__)\ - || (defined(__s390__) && !defined(__s390x__)) + || (defined(__s390__) && !defined(__s390x__)) \ + || (defined(__mips__) && (_MIPS_SIM == _MIPS_SIM_ABI32) \ + && defined(_MIPSEB)) static inline int lookup_dcookie(cookie_t cookie, char * buf, size_t size) { return syscall(__NR_lookup_dcookie, (unsigned long)(cookie >> 32), (unsigned long)(cookie & 0xffffffff), buf, size); } +#elif (defined(__mips__) && (_MIPS_SIM == _MIPS_SIM_ABI32)) /*_MIPSEL */ +static inline int lookup_dcookie(cookie_t cookie, char * buf, size_t size) +{ + return syscall(__NR_lookup_dcookie, + (unsigned long)(cookie & 0xffffffff), + (unsigned long)(cookie >> 32), buf, size); +} #else static inline int lookup_dcookie(cookie_t cookie, char * buf, size_t size) {