Opened 15 months ago

Closed 15 months ago

Last modified 15 months ago

#68036 closed defect (fixed)

lib2geom: build failure for 10.13: cannot use parentheses when declaring variable with deduced class template specialization type

Reported by: dyne2meter Owned by: mascguy (Christopher Nielsen)
Priority: Normal Milestone:
Component: ports Version: 2.8.1
Keywords: Cc:
Port: lib2geom

Description (last modified by mascguy (Christopher Nielsen))

Details:

.../work/lib2geom-1.3/src/2geom/self-intersect.cpp:156:12:
error: cannot use parentheses when declaring variable with deduced class template specialization type
    Sweeper(intersector).process();
           ^

Attachments (1)

main.log.gz (11.6 KB) - added by dyne2meter 15 months ago.
main.log

Download all attachments as: .zip

Change History (13)

Changed 15 months ago by dyne2meter

Attachment: main.log.gz added

main.log

comment:1 Changed 15 months ago by mascguy (Christopher Nielsen)

This port built successfully for 10.13 on our buildbots, and binaries should be available now.

Can you retry updating?

comment:2 Changed 15 months ago by mascguy (Christopher Nielsen)

Owner: set to mascguy
Status: newassigned

comment:3 in reply to:  1 Changed 15 months ago by mascguy (Christopher Nielsen)

Replying to mascguy:

This port built successfully for 10.13 on our buildbots, and binaries should be available now.

Actually I'm mistaken, the 10.13 buildbot hasn't built this yet. But I'm able to successfully build locally for 10.13, so I don't expect an issue.

You might want to wait 24-ish hours, and then try again.

comment:4 Changed 15 months ago by mascguy (Christopher Nielsen)

Description: modified (diff)
Summary: lib2geom build failurelib2geom: build failure for 10.13: cannot use parentheses when declaring variable with deduced class template specialization type

While we're waiting for the 10.13 buildbot to catch up, I'll see if there's anything obvious from your logs. More to follow.

comment:5 Changed 15 months ago by mascguy (Christopher Nielsen)

A few observations from the log:

  • You have Xcode 10.1 installed, which includes the macOS 10.14 SDK. And since the latter targets 10.14 - while you're building ports to run on 10.13 - that's not optimal. And indeed, it may cause unexpected issues, due to the version mismatch.
    • So I'd strongly recommend that you downgrade Xcode to the last release which includes a 10.13 SDK, which is 9.4.1.
  • As for the issue specifics: Based on some quick Googling, this may be a bug in the version of Clang shipped with Xcode 10.x.
    • So I suppose we can blacklist just Xcode Clang 10.x, to sidestep the issue.
    • I've also checked with upstream, and there doesn't appear to be a patch for this issue. Nor should it be necessary, as the code in question is correct, per the Cxx 2017 standard.

So if you're in a hurry to get this fixed, downgrade to Xcode 9.4.1.

Otherwise, I'll update the port to blacklist Xcode Clang 10.x. Though that may not happen until this evening, or over the weekend at the latest. (And by that time, buildbot binaries should be available for 10.13.)

comment:6 Changed 15 months ago by Christopher Nielsen <mascguy@…>

Resolution: fixed
Status: assignedclosed

In dc647d37dfcc3ec4c502e498d95660127a67d2d7/macports-ports (master):

lib2geom: blacklist xcode clang 10.x

Fixes: #68036

comment:7 Changed 15 months ago by dyne2meter

I'm downgrading to 9.4.1; if I keep the 10.3 in a utility folder elsewhere, will that satisfy the system?

If macports is looking for Xcode.app in /Applications and the SDKs in the same path, I should be OK, right?

Last edited 15 months ago by dyne2meter (previous) (diff)

comment:8 in reply to:  7 Changed 15 months ago by mascguy (Christopher Nielsen)

Replying to dyne2meter:

I'm downgrading to 9.4.1; if I keep the 10.3 in a utility folder elsewhere, will that satisfy the system?

If macports is looking for xcodebuild in /Applications, I should be OK, right?

Yes, that's fine. But you should verify that 9.4.1 is the active version, by running xcode-select -p:

$ xcode-select -p
/Applications/Xcode.app/Contents/Developer

Be sure it's outputting the path to 9.4.1 (which should be /Applications/Xcode.app/...), rather than the path to wherever you moved 10.x to.

comment:9 Changed 15 months ago by kencu (Ken)

Don't forget that your command line tools have to match your Xcode...

you probably upgraded them, so now you would have to downgrade them again and ignore the endless reminders from MacOS to upgrade them forever more.

(Personally, I added the MacOSX10.13.sdk to Xcode 10.x instead of downgrading.)

comment:10 in reply to:  9 Changed 15 months ago by mascguy (Christopher Nielsen)

Replying to kencu:

Don't forget that your command line tools have to match your Xcode...

You probably upgraded them, so now you would have to downgrade them again and ignore the endless reminders from MacOS to upgrade them forever more.

Ah, yep, great point Ken!

comment:11 Changed 15 months ago by dyne2meter

Downgrading solved the problem. I deleted the CommandLineTools folder and then reinstalled the tools after downgrading. I guess we can close this ticket, then. Thanks for the help, everyone!

I'm really sorry this had to happen. I've run afoul of this in the past and then somehow never got around to downgrading. Thanks, again.

comment:12 in reply to:  11 Changed 15 months ago by mascguy (Christopher Nielsen)

Replying to dyne2meter:

Downgrading solved the problem. I deleted the CommandLineTools folder and then reinstalled the tools after downgrading. I guess we can close this ticket, then. Thanks for the help, everyone!

I'm really sorry this had to happen. I've run afoul of this in the past and then somehow never got around to downgrading. Thanks, again.

Actually it was good that you encountered this issue, as it's a legitimate bug in Xcode Clang 10.x. (One which we definitely needed to add a workaround for.)

And it's good that you downgraded Xcode to 9.4.1, as that will help make things work more smoothly.

Glad we could help you quickly resolve this issue!

Note: See TracTickets for help on using tickets.