The build failure is: […]/NetworkMDNSRegister.cpp:106:53: error: use of undeclared identifier 'dispatch_get_main_queue' error = DNSServiceSetDispatchQueue(service, dispatch_get_main_queue()); ^ Indeed, on GNU/Linux systems we do not have libdispatch! After a bit of investigation, I have found the following snippet inside “Source/WebKit/webrtc/NetworkProcess/NetworkMDNSRegister.h”: #if defined __has_include && __has_include(<dns_sd.h>) #define ENABLE_MDNS 1 #else #define ENABLE_MDNS 0 #endif It turns our that in systems with Avahi installed, it may optionally supply a <dns_sd.h> header which provides a certain degree of compatibility with Apple's libdns_sd but it is lacks functionality needed by WebKit (see https://github.com/lathiat/avahi/tree/master/avahi-compat-libdns_sd). We should detect when Avahi's version is installed, and if that is the case set ENABLE_MDNS to 0.
Oh I see, maybe the short term fix would be to add a PLATFORM(COCOA) check?
(In reply to youenn fablet from comment #1) > Oh I see, maybe the short term fix would be to add a PLATFORM(COCOA) check? Yes, exactly my plan. Later on down the line we may want to implement MDNS support using Avahi's full API instead of its libdns_sd compatibility API.
Created attachment 338154 [details] Patch
Filed bug #184713 to track implementing the functionality using Avahi, this one is only for the build failure fix.
Comment on attachment 338154 [details] Patch Clearing flags on attachment: 338154 Committed r230739: <https://trac.webkit.org/changeset/230739>
All reviewed patches have been landed. Closing bug.
<rdar://problem/39509941>