Changes between Initial Version and Version 4 of Ticket #67681


Ignore:
Timestamp:
Jun 25, 2023, 8:36:55 AM (11 months ago)
Author:
ryandesign (Ryan Carsten Schmidt)
Comment:

The _sf_ symbols are from libsndfile. openal-soft doesn't declare a dependency on libsndfile, but it looks like openal-soft tries to use libsndfile anyway if you already had it installed. That would be a bug that I would need to fix. The undefined symbols are being encountered when compiling uhjencoder.cpp and uhjdecoder.cpp and those files only get compiled when libsndfile is found.

If you already had libsndfile installed for x86_64 only but were trying to build openal-soft universal (for both x86_64 and i386), that would explain the message "Undefined symbols for architecture i386" in regard to these symbols.

We usually want to see the entire main.log to analyze a problem. It might show us something like "libsndfile found" that would confirm such a diagnosis. In this case, though, I'm confident I've identified what happened so a log is no longer necessary.

What happened after you filed this ticket is that Josh forced a build of wine's dependencies with the universal variant on our macOS 10.13 build machine to see if it encountered the same problem you did. It didn't, and so a binary archive of openal-soft with the universal variant became available. Binary archives are normally only produced with a port's default set of variants, which does not normally include the universal variant.

I'm not sure why a from-source build now succeeds for you as well unless you either uninstalled libsndfile or installed libsndfile with the universal variant.

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #67681

    • Property Status changed from new to accepted
    • Property Keywords openal-soft wine i386 arch removed
    • Property Owner set to ryandesign
    • Property Summary changed from wine on High Sierra blocked by failed "openal-soft +universal" builds to openal-soft: opportunistic use of libsndfile
  • Ticket #67681 – Description

    initial v4  
    1 "port install openal-soft" works fine.
    2 "port install wine" asks for a "+universal" ?? variant of openal-soft (if available, which it is), which adds a "-arch i386" compiler flag, which creates warnings "ld: warning: The i386 architecture is deprecated for macOS (remove from the Xcode build setting: ARCHS)", but when linking creates the error "Undefined symbols for architecture i386:", (_sf_close, sf_command, _sf_open, _sf_readf_float).
     1`port install openal-soft` works fine. \\
     2`port install wine` asks for a "+universal" ?? variant of openal-soft (if available, which it is), which adds a `-arch i386` compiler flag, which creates warnings `ld: warning: The i386 architecture is deprecated for macOS (remove from the Xcode build setting: ARCHS)`, but when linking creates the error `Undefined symbols for architecture i386:`, (_sf_close, sf_command, _sf_open, _sf_readf_float).
    33
    4 macOS 10.13.6 17G14042
     4macOS 10.13.6 17G14042 \\
    55Xcode 10.1 10B
    66
    7 "port -s install openal-soft" works.
    8 "port -s install openal-soft +universal" fails.
     7`port -s install openal-soft` works. \\
     8`port -s install openal-soft +universal` fails.
    99
    1010Suggested fix: remove broken +universal from openal-soft on High Sierra, or track down missing i386 linked file.