[MacPorts] #65100: weechat @3.5_0+ruby: error: invalid arch name '-arch -lx86_64'

MacPorts noreply at macports.org
Sun Jan 22 02:28:48 UTC 2023

#65100: weechat @3.5_0+ruby: error: invalid arch name '-arch -lx86_64'
  Reporter:  hexadecagram  |      Owner:  cardi
      Type:  defect        |     Status:  assigned
  Priority:  Normal        |  Milestone:
 Component:  ports         |    Version:  2.7.2
Resolution:                |   Keywords:
      Port:  weechat       |

Comment (by cardi):

 I poked around some more to understand why the architecture is being
 prefixed with `-l`, e.g., `-arch -l{arm64,x86_64}`, and I think I've
 figured it out.

 The `RUBY_LDFLAGS` is copied from `/opt/local/lib/pkgconfig/ruby-3.0.pc`:
 DLDFLAGS=-L/opt/local/libexec/openssl11/lib -L/opt/local/lib
 -Wl,-syslibroot,/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk -arch
 arm64 -Wl,-multiply_defined,suppress -Wl,-undefined,dynamic_lookup

 When CMake finds Ruby (using
 FindPkgConfig.cmake]), it copies the value of `DLDFLAGS` and replaces all
 spaces (` `) with semicolons (`;`). This leads to the following
 :info:configure -- Checking for one of the modules 'ruby-3.0'
 :info:configure -- CMAKE_SYSTEM_NAME="Darwin"
 :info:configure --

 Note in particular: `-arch;arm64;`.

 When the semicolons are converted back into spaces, `arm64` gets prefixed
 with `-l`: I'm not quite sure where this happens.

 Nonetheless, I think I'll have a patch that will remove `-arch;arm64;`
 since the architecture is already specified earlier in the command.

 Moving forward, either upstream will need to handle the space in `-arch
 arm64` or the MacPorts build of Ruby (or upstream Ruby?) needs to remove
 the space between the `-arch` flag and its value when writing the
 pkgconfig: I'm not sure what the "right" way should be.

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

More information about the macports-tickets mailing list