From 9d50da70608de32d9db0c29859caec6f2cddb95f Mon Sep 17 00:00:00 2001
From: Ludovic Courtès <ludo@gnu.org>
Date: Wed, 5 Oct 2016 18:34:39 +0200
Subject: gnu: wordnet: Make sure the self-reference is visible to the GC.

Before that, "guix gc --references $(guix build wordnet)" would not show
WordNet itself, erroneously so.

* gnu/packages/wordnet.scm (wordnet)[arguments]: Add -fno-builtin-strcpy
  to #:configure-flags.
---
 gnu/packages/wordnet.scm | 17 ++++++++++++++++-
 1 file changed, 16 insertions(+), 1 deletion(-)

(limited to 'gnu')

diff --git a/gnu/packages/wordnet.scm b/gnu/packages/wordnet.scm
index dd3cdf3008..357c19351b 100644
--- a/gnu/packages/wordnet.scm
+++ b/gnu/packages/wordnet.scm
@@ -51,7 +51,22 @@
 
                                ;; Provide the `result' field in `Tcl_Interp'.
                                ;; See <https://bugs.gentoo.org/show_bug.cgi?id=452034>.
-                               "CFLAGS=-DUSE_INTERP_RESULT -O2")
+                               ;;
+                               ;; The 'DEFAULTPATH' string literal, which
+                               ;; contains the output path, only appears as
+                               ;; the operand of one 'strcpy' call.  As a
+                               ;; consequence, GCC does not store the string
+                               ;; literal as is but instead introduces "gaps"
+                               ;; for alignment reasons presumably---like
+                               ;; "/gnu/sto?????re/8jp8b??????ky105…".  This
+                               ;; makes this string invisible to the GC, which
+                               ;; in turns causes problems when running a
+                               ;; grafted WordNet because that grafted WordNet
+                               ;; keeps referring to the ungrafted variant,
+                               ;; which is not protected from GC.  Thus,
+                               ;; disable use of '__builtin_strcpy' to avoid
+                               ;; that.
+                               "CFLAGS=-DUSE_INTERP_RESULT -O2 -fno-builtin-strcpy")
        #:phases
        (modify-phases %standard-phases
          (add-after 'install 'post-install
-- 
cgit v1.2.3