Opened 4 years ago

Closed 3 years ago

Last modified 3 years ago

#61327 closed defect (fixed)

py-rpy2 build fails with clang: error: unsupported option '-fopenmp'

Reported by: essandess (Steve Smith) Owned by: stromnov (Andrey Stromnov)
Priority: Normal Milestone:
Component: ports Version: 2.6.3
Keywords: Cc: chrstphrchvz (Christopher Chavez)
Port: py-rpy2

Description

Build of py-rp2 is passing a bad flag to clang:

:info:build /usr/bin/clang -bundle -undefined dynamic_lookup -L/opt/local/lib -W
l,-headerpad_max_install_names -Wl,-syslibroot,/Library/Developer/CommandLineToo
ls/SDKs/MacOSX10.15.sdk -isysroot/Applications/Xcode.app/Contents/Developer/Plat
forms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk build/temp.macosx-10.15-x86
_64-3.7/build/temp.macosx-10.15-x86_64-3.7/_rinterface_cffi_api.o -L/opt/local/l
ib -L/opt/local/lib -lpcre2-8 -llzma -lbz2 -lz -ldl -lm -liconv -licuuc -licui18
n -o build/lib.macosx-10.15-x86_64-3.7/_rinterface_cffi_api.abi3.so -fopenmp -Wl
,-headerpad_max_install_names -Wl,-syslibroot,/Applications/Xcode.app/Contents/D
eveloper/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk -arch x86_64 -
F/opt/local/Library/Frameworks/R.framework/.. -framework R
:info:build clang: error: unsupported option '-fopenmp'

While we're at it, this could use a version bump, and delete obsolete python versions:

port livecheck py-rpy2
py-rpy2 seems to have been updated (port version: 3.3.5, new version: 3.3.6)

Change History (6)

comment:1 Changed 4 years ago by mf2k (Frank Schima)

Cc: stromnov removed
Owner: set to stromnov
Status: newassigned

comment:2 Changed 4 years ago by chrstphrchvz (Christopher Chavez)

I don't see in rpy2 source code where it uses OpenMP, so I'm not sure whether it should be forced to use an OpenMP-capable compiler (by setting compiler.openmp_version). I wonder if this is due to the +openmp variant recently added and made default in the R port (#61256) and if that is leaving behind -fopenmp as a flag for R extensions to compile with (possibly assuming that extensions will be compiled using the same compiler as R itself).

comment:3 Changed 4 years ago by chrstphrchvz (Christopher Chavez)

Cc: chrstphrchvz added

comment:4 Changed 4 years ago by kencu (Ken)

Here we go. Once we open up the openmp can of worms, we have to follow whereever it all leads. This means sorting out that anything that leaves flags behind in pkgconfig files, etc, needs to somehow always force an openmp compiler to be used with anything that might ever access those pkgconfig files, and we have no such mechanism in place at present.

And because no Apple clang compilers can use the openmp flags, they all fail.

And Ryan has made it clear he does not want every build to be forced to a macports clang compiler as that causes the drives on the buildbots to die prematurely due to all the installing and uninstalling of macports-clang-9.0 (or whichever is the head of the line at that time).

And this is indeed how we came to disable openmp in virtually all builds, until Apple clangs supported openmp (which we all thought might happen before now, but has not happened).

I would suggest we go back to disabling openmp for 99.99% of cases, unless people can sort this out for a specific lonely build, in a specific case, that can affect no other software.

Version 0, edited 4 years ago by kencu (Ken) (next)

comment:6 Changed 3 years ago by essandess (Steve Smith)

Resolution: fixed
Status: assignedclosed

In b4aa8b2166a93b177815077c912a3df9d0d58d0d/macports-ports (master):

py-rpy2: Update to version 3.4.5, Remove Python 35, Add Python 39, Bugfix

  • Update to version 3.4.5
  • Remove Python 35
  • Add Python 39
  • Fixes: #61327
Note: See TracTickets for help on using tickets.