#34231: ImageMagick: should not depend on pango + fix openMP ---------------------------------------+------------------------------------ Reporter: frederic.devernay@… | Owner: ryandesign@… Type: defect | Status: new Priority: Normal | Milestone: Component: ports | Version: 2.0.4 Keywords: haspatch | Port: ImageMagick ---------------------------------------+------------------------------------ Comment(by frederic.devernay@…): OK I just attached the test file from the gcc bug https://trac.macports.org/attachment/ticket/34231/test.cpp . Compilation instructions are in the comments of the file. This file is very short, and very easy to understand: launch a secondary thread, do some openmp stuff in it. This situation will happen in IM whenever you call an IM function that may do some OpenMP from a secondary thread (I always do that, and most image processing software with a GUI will do that, because the main thread usually handles the GUI). It consistently crashes in the same function (gomp_resolve_num_threads) with: gcc-4.2 from XCode 3.2.6 on x86_64 gcc-4.2 from XCode 3.1.4 on PowerPC llvm-g++-4.2 from XCode 4.3.1 on x86_64 (which means that llvm-g++ is not a good option either) you can add many different combinations to this list: anything based on gcc-4.2 will just crashed, because OpenMP was buggy in GCC 4.2 and 4.3, as I explained. Shouldn't we avoid compiler bugs? It doesn't crash with clang 3.1 from XCode 4.3.1 on x86_64 I don't know about the clang from XCode 3.2.6, but XCode 3.1.4 doesn't have clang You say "The only compilers ImageMagick might be compiled with today are the ones that come with Xcode", but port that rely on recent compiler functionality, such as R, build by default with recent gcc versions (macports-gcc-4.5 in the case of R). I think there are two options for the IM port: - build without OpenMP by default if the compiler is gcc-4.2 or llvm- gcc-4.2, and if the openmp variant is requested build with a more recent gcc (or add a default "+gcc45" variant to do so, which can be desactivated: if the user really wants a buggy IM he/she can do a "sudo port install ImageMagick +openmp -gcc45") - build with openmp by default but add a +gcc45 variant if clang is not available (the openmp and gcc45 variants can still be disactivated anyway). In the above, replace gcc45 with you preferred gcc version, as long as it's >= 4.4 -- Ticket URL: <https://trac.macports.org/ticket/34231#comment:6> MacPorts <http://www.macports.org/> Ports system for Mac OS