Opened 4 years ago
Closed 4 years ago
#61650 closed defect (fixed)
webkit2-gtk @2.28.2_1+minibrowser+quartz fails to build on 10.15.7
Reported by: | p-bro | Owned by: | dbevans (David B. Evans) |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | |
Keywords: | Cc: | kencu (Ken) | |
Port: | webkit2-gtk |
Description
When migrating from High Sierra to Catalina (10.15.7), webkit2-gtk @2.28.2_1+minibrowser+quartz fails in the build stage with the error
In file included from DerivedSources/WebCore/JSMessageChannel.cpp:41: DerivedSources/ForwardingHeaders/wtf/PointerPreparations.h:37:53: error: cannot initialize return object of type 'void *' with an rvalue of type 'const void *' ALWAYS_INLINE void* getVTablePointer(T* o) { return __builtin_get_vtable_pointer(o); } ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ DerivedSources/WebCore/JSMessageEvent.cpp:460:33: note: in instantiation of function template specialization 'WTF::getVTablePointer<WebCore::MessageEvent>' requested here void* actualVTablePointer = getVTablePointer(impl.ptr()); ^ 1 error generated.
Full build log from sudo port -d install webkit2-gtk +minibrowser+quartz is attached.
Attachments (1)
Change History (7)
Changed 4 years ago by p-bro
Attachment: | webkit2-gtk_build.log added |
---|
comment:1 Changed 4 years ago by mf2k (Frank Schima)
Cc: | dbevans removed |
---|---|
Owner: | set to dbevans |
Status: | new → assigned |
comment:2 Changed 4 years ago by p-bro
Downgrading Xcode to 11.7 and Command Line Tools to 11.5 (and selecting them with sudo xcode-select -s /Library/Developer/CommandLineTools/
) allowed this package to compile. Thanks to Ryan Schmidt (@ryandesign) for his description of a solution in #61653. Leaving the bug open as this is not sustainable in the long run.
comment:3 Changed 4 years ago by kencu (Ken)
Most likely this has been fixed upstream already to compile with the newer compilers. It's been a while since I went at this port... it's a big job.
FYI -- you can often find a simpler way to build things with older or other versions of compilers by using the MacPorts-supplied line of llvm/clang compilers.
For this port, either clang-9.0 or clang-10 probably would have worked. Many people already have llvm-9.0 installed for one reason or another anyway, so you can do this if you like, instead of changing your Xcode around:
sudo port install clang-9.0 sudo port -v install webkit2-gtk configure.compiler=macports-clang-9.0
Now perhaps you don't mind moving your Xcode's around -- I find it very hard to keep track of what I left where, and mismatched Xcodes and CLTs can be a terrible mess. So this is a (probably easier) alternative.
For really old and unmaintained ports, sometimes going back to clang-5.0 is effective; I forget just now how far back clangs can go on Catalina.
comment:4 Changed 4 years ago by p-bro
Thanks Ken. I don't need XCode for anything but macports, so I don't mind keeping 11.7 around until all/most ports compile with 12. IMHO better than manually remembering to change the compiler whenever one of the packages needs recompiling.
comment:5 Changed 4 years ago by michaellass (Michael Lass)
The problem was fixed upstream quite a while ago and the fix should be included in version 2.3.0: https://bugs.webkit.org/show_bug.cgi?id=207871
For now, it can also be solved with a simple patch: https://github.com/macports/macports-ports/pull/9517
comment:6 Changed 4 years ago by Michael Lass <michael.lass@…>
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
Log from sudo port -d install webkit2-gtk +minibrowser+quartz