diff -aur otp_src_R8B_2002-07-31/erts/emulator/beam/elib_malloc.c otp_src_R8B_2002-07-31.fixed/erts/emulator/beam/elib_malloc.c --- otp_src_R8B_2002-07-31/erts/emulator/beam/elib_malloc.c 2002-07-22 15:29:07.000000000 +0200 +++ otp_src_R8B_2002-07-31.fixed/erts/emulator/beam/elib_malloc.c 2002-08-01 21:53:15.000000000 +0200 @@ -118,7 +118,12 @@ #if USE_RECURSIVE_MUTEX pthread_mutexattr_t attr; pthread_mutexattr_init(&attr); +#if defined(__linux__) + /* at least for linux setkind_np is deprecated */ + pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE_NP); +#else pthread_mutexattr_setkind_np(&attr, PTHREAD_MUTEX_RECURSIVE_NP); +#endif pthread_mutex_init(&malloc_mutex, &attr); pthread_mutexattr_destroy(&attr); #else @@ -1282,7 +1287,7 @@ } if (nw <= szp) { - split_block(p, nw, szp); + split_block((FreeBlock *)p, nw, szp); STAT_ALLOCED_BLOCK(SIZEOF(p)); return p; } @@ -1303,7 +1308,7 @@ while(sz--) *pp++ = *dp++; } - split_block(p, nw, szp); + split_block((FreeBlock *)p, nw, szp); STAT_ALLOCED_BLOCK(SIZEOF(p)); return p; }