The OPENMP option forces GraphicsMagick to be built with GCC via USES=compiler:gcc-c++11-lib. GCC 6 builds C++ code with -std=gnu++14 by default instead of -std=gnu++98 it used before. This causes libGraphicsMagick++.so to be generated with a relocation for `operator delete(void*, size_t)', which is new in C++14, instead of the traditional `operator delete(void*)'. This works fine for GraphicsMagick itself, but not for ports that depend on it, which are generally built with base's clang (which does not default to C++14 at least at the moment), which leads to linking errors such as the ones in the bugs this one is marked as blocking. For example, graphics/cimg: /usr/local/lib/libGraphicsMagick++.so: undefined reference to `operator delete(void*, unsigned long)' c++: error: linker command failed with exit code 1 (use -v to see invocation)
Created attachment 184792 [details] Proposed patch The attached patch forces the use of C++03 (which was the default before) when the OPENMP option is enabled. This generates a relocation for the older `operator delete' overload in libGraphicsMagick++.so. graphics/cimg, graphics/photivo and textproc/htmltolatex all built fine on HEAD-amd64 with clang after building GraphicsMagick with GCC 6.
A commit references this bug: Author: sunpoet Date: Sun Jul 30 13:16:46 UTC 2017 New revision: 446932 URL: https://svnweb.freebsd.org/changeset/ports/446932 Log: Use C++03 for OPENMP option PR: 221065 Submitted by: rakuco Changes: head/graphics/GraphicsMagick/Makefile
Committed. Thanks!