Opened 13 months ago

Last modified 12 months ago

#68363 new defect

soxr @0.1.3_0 build problem

Reported by: ith140 (Ian Hoffman) Owned by:
Priority: Normal Milestone:
Component: ports Version: 2.8.1
Keywords: sonoma Cc: mkuron (Michael Kuron)
Port: soxr

Description (last modified by ith140 (Ian Hoffman))

Failure to build during installation as dependency of ffmpeg6 port. Build reports missing omp.h but I have the libomp package installed on my system (and tried with +top_level variant) but it still fails.

Attachments (1)

main.log (38.7 KB) - added by ith140 (Ian Hoffman) 13 months ago.
fresh build log

Download all attachments as: .zip

Change History (7)

comment:1 Changed 13 months ago by ith140 (Ian Hoffman)

Description: modified (diff)

comment:2 Changed 13 months ago by ryandesign (Ryan Carsten Schmidt)

Keywords: sonoma added
Summary: soxr @soxr-0.1.3_0 build problemsoxr @0.1.3_0 build problem

There are several build attempts in your log. All but the last failed due to undefined symbols; the last failed because omp.h was not found. Just to make sure we're troubleshooting the correct issue, could you please sudo port clean soxr, try again, and attach the fresh main.log?

Changed 13 months ago by ith140 (Ian Hoffman)

Attachment: main.log added

fresh build log

comment:3 Changed 13 months ago by ith140 (Ian Hoffman)

Sorry I was trying a couple things to get it to build but they all failed. I've attached a fresh build log.

comment:4 Changed 13 months ago by zzanderr

For me, soxr build fails when libomp is built with the +top_level variant, but succeeds when the variant is turned off.

(MacBook Pro M2 Max)

Version 0, edited 13 months ago by zzanderr (next)

comment:5 Changed 13 months ago by kencu (Ken)

when libomp is built with the +top_level variant, then openmp will be opportunistically found by soxr.

However, Xcode clang doesn't know much about openmp, and although the -fopenmp flag is added to the build, the library is not added... you can manually add the openmp library to the build to fix that, inelegant, but works.

The opensource clang knows what to do with openmp -- building soxr with macports-clang-17 works, even if libopenmp is installed with the +top_level variant, as the library is added.

All of this requires attention to set up deterministically for builds that might or might not want openmp. If it is decided that soxr always should be built with openmp, then the build can be set up that way, and suitable compilers required.

MacPorts has not fully explored how to do this correctly as yet. Some type of unifying approach for comprehensive openmp support is needed, where libraries can indicate to ports that request them that openmp is needed, etc.

If you use libopenmp with the +top_level variant, it would not be surprising to run into similar issues with other ports, possibly quite frequently.

comment:6 Changed 12 months ago by mkuron (Michael Kuron)

Cc: mkuron added
Note: See TracTickets for help on using tickets.