Bug 252994 - graphics/GraphicsMagick gcc-c++11-lib not needed for OPENMP
Summary: graphics/GraphicsMagick gcc-c++11-lib not needed for OPENMP
Status: New
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: arm64 Any
: --- Affects Many People
Assignee: Po-Chuan Hsieh
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2021-01-25 12:07 UTC by rasmus
Modified: 2021-03-03 18:50 UTC (History)
1 user (show)

See Also:
bugzilla: maintainer-feedback? (sunpoet)


Attachments
Omit gcc-c11+11-lib dependency, thereby omitting gcc dependency (438 bytes, text/plain)
2021-01-25 12:07 UTC, rasmus
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description rasmus 2021-01-25 12:07:46 UTC
Created attachment 221899 [details]
Omit gcc-c11+11-lib dependency, thereby omitting gcc dependency

FreeBSD 12.2 - aarch64

gcc is a dependency for GraphicsMagick (recently bumped from gcc9 to gcc10) if OPENMP is chosen (default). It's a massive unneeded (AFAIK) dependency. 

Omitting:

OPENMP_USES=           compiler:gcc-c++11-lib

from Makefile, makes GraphicsMagick compile and OPENMP works fine:

$ gm benchmark -stepthreads 1 -duration 10 convert \
>   -size 2048x1080 pattern:granite -operator all Noise-Gaussian 30% null:
Results: 1 threads 23 iter 8.97s user 10.083170s total 2.281 iter/s 2.564 iter/cpu 1.00 speedup 1.000 karp-flatt
Results: 2 threads 41 iter 16.70s user 10.192252s total 4.023 iter/s 2.455 iter/cpu 1.76 speedup 0.134 karp-flatt
$

Example of OPENMP taken from GM documentation:

http://www.graphicsmagick.org/OpenMP.html

I have only aarch64 machines to test on.

Patchfile included.
Comment 1 VVD 2021-01-25 20:43:10 UTC
amd64 too.

And a lot of other ports too:
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=252379
Comment 2 Po-Chuan Hsieh freebsd_committer 2021-03-03 18:50:22 UTC
(In reply to rasmus from comment #0)
(In reply to VVD from comment #1)

I believe it works on amd64 and aarch64. However, Jan pointed out that "some Clang architectures like armv6 and armv7 still lack libomp thus use GCC via USES=compiler:gcc-c++11-lib" in bug #252379 comment #38. That means the complete patch might need a check for ARCH.