diff -ru blender-2.78.orig/CMakeLists.txt blender-2.78a/CMakeLists.txt --- blender-2.78.orig/CMakeLists.txt 2016-10-25 12:09:56.000000000 +0000 +++ blender-2.78a/CMakeLists.txt 2017-02-07 14:50:03.967828817 +0000 @@ -181,6 +181,18 @@ set(_init_SDL OFF) set(_init_FFTW3 OFF) set(_init_OPENSUBDIV OFF) + # musl-libc related checks (missing execinfo.h, and feenableexcept()) + include(CheckIncludeFiles) + check_include_files(execinfo.h HAVE_EXECINFO_H) + if (HAVE_EXECINFO_H) + add_definitions(-DHAVE_EXECINFO_H) + endif() + + include(CheckLibraryExists) + check_library_exists(m feenableexcept "fenv.h" HAVE_FEENABLEEXCEPT) + if (HAVE_FEENABLEEXCEPT) + add_definitions(-DHAVE_FEENABLEEXCEPT) + endif() elseif(WIN32) set(_init_JACK OFF) elseif(APPLE) diff -ru blender-2.78.orig/intern/guardedalloc/intern/mallocn_intern.h blender-2.78a/intern/guardedalloc/intern/mallocn_intern.h --- blender-2.78.orig/intern/guardedalloc/intern/mallocn_intern.h 2016-09-28 09:26:55.000000000 +0000 +++ blender-2.78a/intern/guardedalloc/intern/mallocn_intern.h 2017-02-07 14:44:35.213040733 +0000 @@ -52,7 +52,7 @@ #undef HAVE_MALLOC_STATS #define USE_MALLOC_USABLE_SIZE /* internal, when we have malloc_usable_size() */ -#if defined(__linux__) || (defined(__FreeBSD_kernel__) && !defined(__FreeBSD__)) || defined(__GLIBC__) +#if (defined(__linux__) && defined(HAVE_EXECINFO_H)) || (defined(__FreeBSD_kernel__) && !defined(__FreeBSD__)) || defined(__GLIBC__) # include # define HAVE_MALLOC_STATS #elif defined(__FreeBSD__) diff -ru blender-2.78.orig/source/blender/blenlib/intern/system.c blender-2.78a/source/blender/blenlib/intern/system.c --- blender-2.78.orig/source/blender/blenlib/intern/system.c 2016-10-25 09:59:23.000000000 +0000 +++ blender-2.78a/source/blender/blenlib/intern/system.c 2017-02-07 14:44:35.213040733 +0000 @@ -31,7 +31,7 @@ #include "MEM_guardedalloc.h" /* for backtrace */ -#if defined(__linux__) || defined(__APPLE__) +#if (defined(__linux__) && defined(HAVE_EXECINFO_H)) || defined(__APPLE__) # include #elif defined(WIN32) # include @@ -77,7 +77,7 @@ { /* ------------- */ /* Linux / Apple */ -#if defined(__linux__) || defined(__APPLE__) +#if (defined(__linux__) && defined(HAVE_EXECINFO_H)) || defined(__APPLE__) #define SIZE 100 void *buffer[SIZE]; diff -ru blender-2.78.orig/source/creator/creator_signals.c blender-2.78a/source/creator/creator_signals.c --- blender-2.78.orig/source/creator/creator_signals.c 2016-10-24 14:13:56.000000000 +0000 +++ blender-2.78a/source/creator/creator_signals.c 2017-02-07 14:47:01.888625973 +0000 @@ -309,7 +309,7 @@ * set breakpoints on sig_handle_fpe */ signal(SIGFPE, sig_handle_fpe); -# if defined(__linux__) && defined(__GNUC__) +# if defined(__linux__) && defined(__GNUC__) && defined(HAVE_FEENABLEEXCEPT) feenableexcept(FE_DIVBYZERO | FE_INVALID | FE_OVERFLOW); # endif /* defined(__linux__) && defined(__GNUC__) */ # if defined(OSX_SSE_FPE)