gdome2: fix build on -fno-common toolchains

Example of such toolchain is clang-12:

$ nix-build -E 'with import ./. { }; gdome2.override { stdenv = clang12Stdenv; }'
...
libgdome/xpath/gdome-xpath-xpnsresolv.c:33:
multiple definition of `gdome_xpath_xpnsresolv_vtab';
gdome-xpath.lo:libgdome/xpath/gdome-xpath-xpnsresolv.h:45: first defined here

+15 -1
+4 -1
pkgs/development/libraries/gdome2/default.nix
··· 18 nativeBuildInputs = [ pkg-config ]; 19 buildInputs = [ glib libxml2 gtk-doc ]; 20 propagatedBuildInputs = [glib libxml2]; 21 - patches = [ ./xml-document.patch ]; 22 23 meta = with lib; { 24 homepage = "http://gdome2.cs.unibo.it/";
··· 18 nativeBuildInputs = [ pkg-config ]; 19 buildInputs = [ glib libxml2 gtk-doc ]; 20 propagatedBuildInputs = [glib libxml2]; 21 + patches = [ 22 + ./xml-document.patch 23 + ./fno-common.patch 24 + ]; 25 26 meta = with lib; { 27 homepage = "http://gdome2.cs.unibo.it/";
+11
pkgs/development/libraries/gdome2/fno-common.patch
···
··· 1 + On gcc-10 -fno-common is the default which forbids miltiple definitions. 2 + --- a/libgdome/xpath/gdome-xpath-xpnsresolv.h 3 + +++ b/libgdome/xpath/gdome-xpath-xpnsresolv.h 4 + @@ -42,6 +42,6 @@ void gdome_xpath_xpnsresolv_ref (GdomeXPathNSResolver *self, GdomeException *exc 5 + void gdome_xpath_xpnsresolv_unref (GdomeXPathNSResolver *self, GdomeException *exc); 6 + GdomeDOMString * gdome_xpath_xpnsresolv_lookupNamespaceURI( GdomeXPathNSResolver *self, GdomeDOMString *prefix, GdomeException *exc); 7 + 8 + -const GdomeXPathNSResolverVtab gdome_xpath_xpnsresolv_vtab; 9 + +extern const GdomeXPathNSResolverVtab gdome_xpath_xpnsresolv_vtab; 10 + 11 + #endif /* GDOME_XPNSRESOLV_FILE */