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
This commit is contained in:
Sergei Trofimovich 2021-09-29 20:15:38 +01:00
parent 26dae21e57
commit 884ebdc49c
2 changed files with 15 additions and 1 deletions

@ -18,7 +18,10 @@ stdenv.mkDerivation {
nativeBuildInputs = [ pkg-config ]; nativeBuildInputs = [ pkg-config ];
buildInputs = [ glib libxml2 gtk-doc ]; buildInputs = [ glib libxml2 gtk-doc ];
propagatedBuildInputs = [glib libxml2]; propagatedBuildInputs = [glib libxml2];
patches = [ ./xml-document.patch ]; patches = [
./xml-document.patch
./fno-common.patch
];
meta = with lib; { meta = with lib; {
homepage = "http://gdome2.cs.unibo.it/"; homepage = "http://gdome2.cs.unibo.it/";

@ -0,0 +1,11 @@
On gcc-10 -fno-common is the default which forbids miltiple definitions.
--- a/libgdome/xpath/gdome-xpath-xpnsresolv.h
+++ b/libgdome/xpath/gdome-xpath-xpnsresolv.h
@@ -42,6 +42,6 @@ void gdome_xpath_xpnsresolv_ref (GdomeXPathNSResolver *self, GdomeException *exc
void gdome_xpath_xpnsresolv_unref (GdomeXPathNSResolver *self, GdomeException *exc);
GdomeDOMString * gdome_xpath_xpnsresolv_lookupNamespaceURI( GdomeXPathNSResolver *self, GdomeDOMString *prefix, GdomeException *exc);
-const GdomeXPathNSResolverVtab gdome_xpath_xpnsresolv_vtab;
+extern const GdomeXPathNSResolverVtab gdome_xpath_xpnsresolv_vtab;
#endif /* GDOME_XPNSRESOLV_FILE */