родитель
be0bf9c27d
Коммит
e6345aeac6
@ -26,7 +26,8 @@
|
|||||||
#elif defined(HAVE_SYSCALL)
|
#elif defined(HAVE_SYSCALL)
|
||||||
#include <syscall.h>
|
#include <syscall.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#elif defined(HAVE_DLSYM)
|
#endif
|
||||||
|
#if defined(HAVE_DLSYM)
|
||||||
#ifndef __USE_GNU
|
#ifndef __USE_GNU
|
||||||
#define __USE_GNU
|
#define __USE_GNU
|
||||||
#endif
|
#endif
|
||||||
@ -60,7 +61,8 @@ munmap(void* addr, size_t len)
|
|||||||
int
|
int
|
||||||
opal_mem_free_ptmalloc2_munmap(void *start, size_t length, int from_alloc)
|
opal_mem_free_ptmalloc2_munmap(void *start, size_t length, int from_alloc)
|
||||||
{
|
{
|
||||||
#if !defined(HAVE___MUNMAP) && !defined(HAVE_SYSCALL) && defined(HAVE_DLSYM)
|
#if !defined(HAVE___MUNMAP) && \
|
||||||
|
!(defined(HAVE_SYSCALL) && defined(__NR_munmap)) && defined(HAVE_DLSYM)
|
||||||
static int (*realmunmap)(void*, size_t);
|
static int (*realmunmap)(void*, size_t);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -70,7 +72,7 @@ opal_mem_free_ptmalloc2_munmap(void *start, size_t length, int from_alloc)
|
|||||||
return __munmap(start, length);
|
return __munmap(start, length);
|
||||||
#elif defined(HAVE_SYSCALL)
|
#elif defined(HAVE_SYSCALL)
|
||||||
return syscall(__NR_munmap, start, length);
|
return syscall(__NR_munmap, start, length);
|
||||||
#elif defined(HAVE_DLSYM)
|
#elif defined(HAVE_DLSYM) && defined(__NR_munmap)
|
||||||
if (NULL == realmunmap) {
|
if (NULL == realmunmap) {
|
||||||
union {
|
union {
|
||||||
int (*munmap_fp)(void*, size_t);
|
int (*munmap_fp)(void*, size_t);
|
||||||
|
@ -145,7 +145,9 @@ static void opal_show_stackframe (int signo, siginfo_t * info, void * p)
|
|||||||
case FPE_FLTDIV: si_code_str = "Floating point divide-by-zero"; break;
|
case FPE_FLTDIV: si_code_str = "Floating point divide-by-zero"; break;
|
||||||
case FPE_FLTOVF: si_code_str = "Floating point overflow"; break;
|
case FPE_FLTOVF: si_code_str = "Floating point overflow"; break;
|
||||||
case FPE_FLTUND: si_code_str = "Floating point underflow"; break;
|
case FPE_FLTUND: si_code_str = "Floating point underflow"; break;
|
||||||
|
#ifdef FPE_FLTRES
|
||||||
case FPE_FLTRES: si_code_str = "Floating point inexact result"; break;
|
case FPE_FLTRES: si_code_str = "Floating point inexact result"; break;
|
||||||
|
#endif
|
||||||
#ifdef FBE_FLTINV
|
#ifdef FBE_FLTINV
|
||||||
case FPE_FLTINV: si_code_str = "Invalid floating point operation"; break;
|
case FPE_FLTINV: si_code_str = "Invalid floating point operation"; break;
|
||||||
#endif
|
#endif
|
||||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user