[MacPorts] #63717: vecLibFort @0.4.2_0: error: conflicting types for 'sdsdot_'

MacPorts noreply at macports.org
Sun Jan 16 02:23:55 UTC 2022


#63717: vecLibFort @0.4.2_0: error: conflicting types for 'sdsdot_'
-------------------------+----------------------
  Reporter:  Nevensky    |      Owner:  tenomoto
      Type:  defect      |     Status:  assigned
  Priority:  Normal      |  Milestone:
 Component:  ports       |    Version:  2.7.1
Resolution:              |   Keywords:  monterey
      Port:  vecLibFort  |
-------------------------+----------------------

Comment (by rshuston):

 The problem isn't necessarily Monterey, but rather it's due to changes
 that Apple made to the `vecLib.framework` in the MacSDK12.x.sdk SDK
 folder, which was brought in with Xcode 13.2 (might even be Xcode 13, but
 I don't know). So the problem also exists on Big Sur if you have Xcode
 13.2 installed.

 If you examine

 {{{
 /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.1.sdk/System/Library/Frameworks/Accelerate.framework/Frameworks/vecLib.framework/Headers/vecLib.h
 }}}

 you'll see a new entry at line 50:

 `#include <vecLib/fortran_blas.h>`

 First of all, this line is unguarded without an "#if defined" block, so it
 brings in `fortran_blas.h` no matter what. Looking at the contents of
 `fortran_blas.h` reveals the definitions for all of the prototypes that
 `vecLibFort` is trying to wrap.

 If you install the "Command Line Tools for Xcode 13.2" download from
 Apple, you'll find that it installs SDKs for both MacOSX11 and MacOSX12:

 `/Library/Developer/CommandLineTools/SDKs/MacOSX11.sdk  -> MacOSX11.3.sdk`
 `/Library/Developer/CommandLineTools/SDKs/MacOSX12.sdk  -> MacOSX12.1.sdk`

 Examining the `vecLib.h` file in the `MacOSX11.sdk` tree shows that it's
 the older version that does not include `fortran_blas.h`. So, adding

 `-isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX11.3.sdk`

 to the `CFLAGS` variable in the vecLibFort `Makefile` allows the project
 to build the way is used to.

 I'm not sure how to yet handle the Apple change, and also if the new Apple
 change even alleviates the need for vecLibFort entirely, but this
 modification may help people who need to get the library to build.

-- 
Ticket URL: <https://trac.macports.org/ticket/63717#comment:18>
MacPorts <https://www.macports.org/>
Ports system for macOS


More information about the macports-tickets mailing list