Opened 2 years ago

Closed 2 years ago

#59416 closed defect (fixed)

webkit2-gtk @2.26.1: on 10.12: error: reference to 'Handle' is ambiguous

Reported by: kencu (Ken) Owned by: kencu (Ken)
Priority: Normal Milestone:
Component: ports Version:
Keywords: Cc: dbevans (David B. Evans)
Port: webkit2-gtk


This is a name collision from MacTypes.h polluting the global namespace. It doesn't happen on 10.13+, interestingly. It did happen on 10.6.8, but not when built with clang-5.0. We'll see what systems show this error, and then decide on where to sanitize MacTypes.h (see details in the PR).

n file included from DerivedSources/JavaScriptCore/unified-sources/UnifiedSource-0284c6ac-1.cpp:8:
/opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_www_webkit2-gtk/webkit2-gtk/work/webkitgtk-2.26.1/Source/JavaScriptCore/tools/JSDollarVM.cpp:182:37: error: reference to 'Handle' is ambiguous
    bool isReachableFromOpaqueRoots(Handle<JSC::Unknown> handle, void*, SlotVisitor& visitor, const char** reason) override
/usr/include/MacTypes.h:249:41: note: candidate found by name lookup is 'Handle'
typedef Ptr *                           Handle;
/opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_www_webkit2-gtk/webkit2-gtk/work/webkitgtk-2.26.1/Source/JavaScriptCore/heap/Handle.h:109:29: note: candidate found by name lookup is 'JSC::Handle'
template <typename T> class Handle : public HandleBase, public HandleConverter<Handle<T>, T> {
1 error generated.

Change History (2)

comment:1 Changed 2 years ago by kencu (Ken)

I'm not sure about this one, yet. For reasons not fully clear, building with clang-5.0 avoids this error, whereas building with clang-9.0 shows it. Obviously something remains to be discovered, and as yet, I'm not ready to claim full success with the quartz variants either.

comment:2 Changed 2 years ago by kencu (Ken)

Resolution: fixed
Status: assignedclosed

fixed by the latest commmits to webkit2-gtk-devel upstream, and backported into webkit2-gtk

Note: See TracTickets for help on using tickets.