gnu: gcj: Add $libdir to RUNPATH.
* gnu/packages/gcc.scm (gcj)[arguments]: Add build phase to add library output directory to RUNPATH.
This commit is contained in:
parent
aa2e989e1e
commit
ad12c43e97
@ -415,38 +415,47 @@ Go. It also includes runtime support libraries for these languages.")
|
||||
"--enable-languages=java"
|
||||
,@(remove (cut string-match "--enable-languages.*" <>)
|
||||
,flags))))
|
||||
((#:phases phases)
|
||||
`(alist-cons-after
|
||||
'install 'install-javac-and-javap-wrappers
|
||||
(lambda _
|
||||
(let* ((javac (assoc-ref %build-inputs "javac.in"))
|
||||
(ecj (assoc-ref %build-inputs "ecj-bootstrap"))
|
||||
(gcj (assoc-ref %outputs "out"))
|
||||
(gcjbin (string-append gcj "/bin/"))
|
||||
(jvm (string-append gcj "/lib/jvm/"))
|
||||
(target (string-append jvm "/bin/javac")))
|
||||
((#:phases phases)
|
||||
`(modify-phases ,phases
|
||||
(add-after
|
||||
'unpack 'add-lib-output-to-rpath
|
||||
(lambda _
|
||||
(substitute* "libjava/Makefile.in"
|
||||
(("libgcj_bc_dummy_LINK = .* -shared" line)
|
||||
(string-append line " -Wl,-rpath=$(libdir)"))
|
||||
(("libgcj(_bc)?_la_LDFLAGS =" ldflags _)
|
||||
(string-append ldflags " -Wl,-rpath=$(libdir)")))))
|
||||
(add-after
|
||||
'install 'install-javac-and-javap-wrappers
|
||||
(lambda _
|
||||
(let* ((javac (assoc-ref %build-inputs "javac.in"))
|
||||
(ecj (assoc-ref %build-inputs "ecj-bootstrap"))
|
||||
(gcj (assoc-ref %outputs "out"))
|
||||
(gcjbin (string-append gcj "/bin/"))
|
||||
(jvm (string-append gcj "/lib/jvm/"))
|
||||
(target (string-append jvm "/bin/javac")))
|
||||
|
||||
(symlink (string-append gcjbin "jcf-dump")
|
||||
(string-append jvm "/bin/javap"))
|
||||
(symlink (string-append gcjbin "jcf-dump")
|
||||
(string-append jvm "/bin/javap"))
|
||||
|
||||
(copy-file ecj (string-append gcj "/share/java/ecj.jar"))
|
||||
(copy-file ecj (string-append gcj "/share/java/ecj.jar"))
|
||||
|
||||
;; Create javac wrapper from the template javac.in by
|
||||
;; replacing the @VARIABLES@ with paths.
|
||||
(copy-file javac target)
|
||||
(patch-shebang target)
|
||||
(substitute* target
|
||||
(("@JAVA@")
|
||||
(string-append jvm "/bin/java"))
|
||||
(("@ECJ_JAR@")
|
||||
(string-append gcj "/share/java/ecj.jar"))
|
||||
(("@RT_JAR@")
|
||||
(string-append jvm "/jre/lib/rt.jar"))
|
||||
(("@TOOLS_JAR@")
|
||||
(string-append jvm "/lib/tools.jar")))
|
||||
(chmod target #o755)
|
||||
#t))
|
||||
(alist-cons-after
|
||||
;; Create javac wrapper from the template javac.in by
|
||||
;; replacing the @VARIABLES@ with paths.
|
||||
(copy-file javac target)
|
||||
(patch-shebang target)
|
||||
(substitute* target
|
||||
(("@JAVA@")
|
||||
(string-append jvm "/bin/java"))
|
||||
(("@ECJ_JAR@")
|
||||
(string-append gcj "/share/java/ecj.jar"))
|
||||
(("@RT_JAR@")
|
||||
(string-append jvm "/jre/lib/rt.jar"))
|
||||
(("@TOOLS_JAR@")
|
||||
(string-append jvm "/lib/tools.jar")))
|
||||
(chmod target #o755)
|
||||
#t)))
|
||||
(add-after
|
||||
'install 'remove-broken-or-conflicting-files
|
||||
(lambda _
|
||||
(let ((out (assoc-ref %outputs "out")))
|
||||
@ -456,8 +465,7 @@ Go. It also includes runtime support libraries for these languages.")
|
||||
"libjawt.so")
|
||||
(find-files (string-append out "/bin")
|
||||
".*(c\\+\\+|cpp|g\\+\\+|gcc.*)"))))
|
||||
#t)
|
||||
,phases)))))))
|
||||
#t))))))))
|
||||
|
||||
(define ecj-bootstrap-4.8
|
||||
(origin
|
||||
|
Loading…
Reference in New Issue
Block a user