Missed providing other details: # Build host env $ uname -a Darwin C02V341YHTD8 19.2.0 Darwin Kernel Version 19.2.0: Sat Nov 9 03:47:04 PST 2019; root:xnu-6153.61.1~20/RELEASE_X86_64 x86_64 i386 MacBookPro14,3 Darwin # Configure options $ configure CC=clang --with-imagemagick # ImageMagic details $ MagickWand-config --cflags --ldflags -Xpreprocessor -fopenmp -DMAGICKCORE_HDRI_ENABLE=1 -DMAGICKCORE_QUANTUM_DEPTH=16 -Xpreprocessor -fopenmp -DMAGICKCORE_HDRI_ENABLE=1 -DMAGICKCORE_QUANTUM_DEPTH=16 -I/usr/local/Cellar/imagemagick/7.0.9-10/include/ImageMagick-7 -L/usr/local/Cellar/imagemagick/7.0.9-10/lib -lMagickWand-7.Q16HDRI -lMagickCore-7.Q16HDRI On Mon, Dec 23, 2019 at 1:59 PM Dhruva Krishnamurthy wrote: > Loading image.el segfaults when ImageMagick is enabled on MacOS (do not > have access to other platforms) since image magic environment is not > initialized yet. The following patch on HEAD fixes the crash by > initializing it before use. > > -dhruva > > diff --git a/src/image.c b/src/image.c > index 70d932f9ed..50d90ccb55 100644 > --- a/src/image.c > +++ b/src/image.c > @@ -8603,6 +8603,20 @@ #define DrawRectangle DrawRectangleGif > MagickPixelPacket *); > #endif > > +/* Initialize the ImageMagick environment if not initialized. */ > + > +static void > +imagemagick_initialize(void) > +{ > + /* Initialize the ImageMagick environment. */ > + static bool imagemagick_initialized; > + if (!imagemagick_initialized) > + { > + MagickWandGenesis(); > + imagemagick_initialized = !!IsMagickWandInstantiated(); > + } > +} > + > /* Log ImageMagick error message. > Useful when an ImageMagick function returns the status `MagickFalse'. > */ > > @@ -8876,12 +8890,7 @@ imagemagick_load_image (struct frame *f, struct > image *img, > char *filename_hint = NULL; > > /* Initialize the ImageMagick environment. */ > - static bool imagemagick_initialized; > - if (!imagemagick_initialized) > - { > - imagemagick_initialized = true; > - MagickWandGenesis (); > - } > + imagemagick_initialize(); > > /* Handle image index for image types who can contain more than one > image. > Interface :index is same as for GIF. First we "ping" the image to > see how > @@ -9290,6 +9299,9 @@ DEFUN ("imagemagick-types", Fimagemagick_types, > Simagemagick_types, 0, 0, 0, > char **imtypes; > size_t i; > > + /* Initialize the ImageMagick environment. */ > + imagemagick_initialize(); > + > ex = AcquireExceptionInfo (); > imtypes = GetMagickList ("*", &numf, ex); > DestroyExceptionInfo (ex); > > >