Skip to content
Snippets Groups Projects
Unverified Commit 2c5ab05b authored by Ludovic Courtès's avatar Ludovic Courtès
Browse files

gnu: wordnet: Build with gcc@6 to prevent chunked literal strings.

* gnu/packages/wordnet.scm (wordnet)[arguments]: Remove
-fno-builtin-strcpy.
[native-inputs]: New field.
parent aba5182c
No related branches found
No related tags found
No related merge requests found
...@@ -23,6 +23,7 @@ (define-module (gnu packages wordnet) ...@@ -23,6 +23,7 @@ (define-module (gnu packages wordnet)
#:use-module (guix licenses) #:use-module (guix licenses)
#:use-module (guix download) #:use-module (guix download)
#:use-module (gnu packages) #:use-module (gnu packages)
#:use-module (gnu packages gcc)
#:use-module (gnu packages tcl)) #:use-module (gnu packages tcl))
(define-public wordnet (define-public wordnet
...@@ -51,22 +52,7 @@ (define-public wordnet ...@@ -51,22 +52,7 @@ (define-public wordnet
;; Provide the `result' field in `Tcl_Interp'. ;; Provide the `result' field in `Tcl_Interp'.
;; See <https://bugs.gentoo.org/show_bug.cgi?id=452034>. ;; 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 #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'install 'post-install (add-after 'install 'post-install
...@@ -93,6 +79,12 @@ (define-public wordnet ...@@ -93,6 +79,12 @@ (define-public wordnet
#t)))))) #t))))))
(outputs '("out" (outputs '("out"
"tk")) ; for the Tcl/Tk GUI "tk")) ; for the Tcl/Tk GUI
;; Build with a patched GCC to work around <http://bugs.gnu.org/24703>.
;; (Specifically the 'DEFAULTPATH' string literal is what we want to
;; prevent from being chunked so that grafting can "see" it and patch it.)
(native-inputs `(("gcc@6" ,gcc-6)))
(inputs `(("tk" ,tk) (inputs `(("tk" ,tk)
("tcl" ,tcl))) ("tcl" ,tcl)))
(home-page "http://wordnet.princeton.edu/") (home-page "http://wordnet.princeton.edu/")
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment