#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 ryandesign@…): Replying to [comment:2 frederic.devernay@…]:
Here's the proper reference for the gcc 4.2/4.3 bug with OpenMP: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36242#c4 [[br]] [[br]] to cite Jakup, GCC OpenMP guru: [[br]] "Jakub Jelinek 2008-06-11 20:29:19 UTC [[br]] [[br]] Using OpenMP pragmas in multiple pthread_create created threads concurrently isn't supported in 4.2/4.3. There is a support for it on the trunk since a few days ago though."
And does ImageMagick use OpenMP pragmas in multiple pthread_create-created threads concurrently? What is the consequence—is there a crash? If so, can you attach a crash log? How can I reproduce the problem on my own system? I am on Snow Leopard with Xcode 3.2.6 so my ImageMagick is compiled with Apple gcc 4.2.1 so it should exhibit the problem.
gcc 4.2 is for old geezers anyway (gcc 4.2.1 was released almost five years ago!)
Apple's version of gcc 4.2.1 is the default compiler in Xcode 3.2.6, the last free version of Xcode for Snow Leopard. It's also the last version of gcc Apple will ever ship in Xcode. For these reasons it's still a relevant version of gcc for OS X users.
here's another report about that OpenMP bug in another context: http://lists.apple.com/archives/coreaudio-api/2009/May/msg00035.html
I don't think that's the same problem. They're talking about problems using OpenMP from a "time constraint thread" which "is very different from a normal thread context" and the guess is "that OpenMP has some baseline incompatibility when running in this context". The thread also says gcc 4.4 still exhibits the problem, whereas the problem you're describing should be fixed by that version. If there is really a problem with OpenMP when compiled by gcc 4.2.1 and earlier, then in light of the requests in #15945 and #24944 to provide options to enable or disable OpenMP at install time, what we should do is add an openmp variant, make it on by default when the compiler is clang or llvm-gcc-4.2, and off by default otherwise. That should enable OpenMP on Lion and later, and on Snow Leopard with Xcode 4, and disable it otherwise. Furthermore perhaps we could offer Xcode 3 users on Leopard and Snow Leopard the option of turning on OpenMP support by changing the compiler to llvm-gcc-4.2 or clang, if that works—the version of clang in Xcode 3 is old so I'm a little skeptical of that anyway. -- Ticket URL: <https://trac.macports.org/ticket/34231#comment:3> MacPorts <http://www.macports.org/> Ports system for Mac OS