gnu: Remove GCJ.
* gnu/packages/patches/gcj-arm-mode.patch: Remove file. * gnu/local.mk (dist_patch_DATA): Delete it. * gnu/packages/gcc.scm (javac.in, gcj, ecj-bootstrap): Remove variables.master
parent
e441fc564b
commit
9117448e76
|
@ -607,7 +607,6 @@ dist_patch_DATA = \
|
|||
%D%/packages/patches/gcc-5-source-date-epoch-2.patch \
|
||||
%D%/packages/patches/gcc-6-arm-none-eabi-multilib.patch \
|
||||
%D%/packages/patches/gcc-6-cross-environment-variables.patch \
|
||||
%D%/packages/patches/gcj-arm-mode.patch \
|
||||
%D%/packages/patches/gdk-pixbuf-list-dir.patch \
|
||||
%D%/packages/patches/gd-fix-gd2-read-test.patch \
|
||||
%D%/packages/patches/gd-fix-tests-on-i686.patch \
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org>
|
||||
;;; Copyright © 2014, 2015, 2016 Ricardo Wurmus <rekado@elephly.net>
|
||||
;;; Copyright © 2014, 2015, 2016, 2017 Ricardo Wurmus <rekado@elephly.net>
|
||||
;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
|
||||
;;; Copyright © 2015, 2016 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;; Copyright © 2016 Carlos Sánchez de La Lama <csanchezdll@gmail.com>
|
||||
|
@ -559,140 +559,6 @@ as the 'native-search-paths' field."
|
|||
;; a cyclic dependency. <http://debbugs.gnu.org/18101>
|
||||
#:separate-lib-output? #f))
|
||||
|
||||
(define javac.in
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "http://sources.gentoo.org/cgi-bin/viewvc.cgi/"
|
||||
"gentoo-x86/dev-java/gcj-jdk/files/javac.in?revision=1.1"))
|
||||
(file-name "javac.in")
|
||||
(sha256 (base32
|
||||
"1c3dk4z5yfj6ic2fn3lyxs27n6pmn2wy9k0r1s17lnkf1bzkrciv"))))
|
||||
|
||||
(define-public gcj
|
||||
(package (inherit gcc)
|
||||
(name "gcj")
|
||||
(version (package-version gcc))
|
||||
(inputs
|
||||
`(("fastjar" ,fastjar)
|
||||
("perl" ,perl)
|
||||
("javac.in" ,javac.in)
|
||||
("ecj-bootstrap" ,ecj-bootstrap)
|
||||
,@(package-inputs gcc)))
|
||||
(native-inputs
|
||||
`(("dejagnu" ,dejagnu)
|
||||
,@(if (string-prefix? "armhf" (or (%current-system)
|
||||
(%current-target-system)))
|
||||
`(("arm-patch" ,(origin
|
||||
(method url-fetch)
|
||||
(uri (search-patch "gcj-arm-mode.patch"))
|
||||
(sha256
|
||||
(base32
|
||||
"1z15xs5yx6qinnb572swzxrn9f668sw7ga5280q3gznj1jyrynfn")))))
|
||||
'())
|
||||
,@(package-native-inputs gcc)))
|
||||
(native-search-paths %generic-search-paths)
|
||||
|
||||
;; Suppress the separate "lib" output, because otherwise the
|
||||
;; "lib" and "out" outputs would refer to each other, creating
|
||||
;; a cyclic dependency. <http://debbugs.gnu.org/18101>
|
||||
(outputs
|
||||
(delete "lib" (package-outputs gcc)))
|
||||
(arguments
|
||||
(substitute-keyword-arguments `(#:modules ((guix build gnu-build-system)
|
||||
(guix build utils)
|
||||
(ice-9 regex)
|
||||
(srfi srfi-1)
|
||||
(srfi srfi-26))
|
||||
#:test-target "check-target-libjava"
|
||||
,@(package-arguments gcc))
|
||||
((#:tests? _) #t)
|
||||
((#:configure-flags flags)
|
||||
`(let ((ecj (assoc-ref %build-inputs "ecj-bootstrap")))
|
||||
`("--enable-java-home"
|
||||
"--enable-gjdoc"
|
||||
,(string-append "--with-ecj-jar=" ecj)
|
||||
"--enable-languages=java"
|
||||
,@(remove (cut string-match "--enable-languages.*" <>)
|
||||
,flags))))
|
||||
((#:phases phases)
|
||||
`(modify-phases ,phases
|
||||
;; Conditionally add phase to apply patch
|
||||
,@(if (string-prefix? "armhf" (or (%current-system)
|
||||
(%current-target-system)))
|
||||
`((add-after 'unpack 'apply-arm-patch
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(zero? (system* "patch" "-p1"
|
||||
"-i" (assoc-ref inputs "arm-patch"))))))
|
||||
'())
|
||||
(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
|
||||
'unpack 'patch-testsuite
|
||||
;; dejagnu-1.6 removes the 'absolute' command
|
||||
(lambda _
|
||||
;; This test fails on armhf. It seems harmless enough to disable it.
|
||||
(for-each delete-file '("libjava/testsuite/libjava.lang/Throw_2.java"
|
||||
"libjava/testsuite/libjava.lang/Throw_2.out"
|
||||
"libjava/testsuite/libjava.lang/Throw_2.jar"))
|
||||
(substitute* "libjava/testsuite/lib/libjava.exp"
|
||||
(("absolute") "file normalize"))
|
||||
#t))
|
||||
(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"))
|
||||
|
||||
(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)))
|
||||
(add-after
|
||||
'install 'remove-broken-or-conflicting-files
|
||||
(lambda _
|
||||
(let ((out (assoc-ref %outputs "out")))
|
||||
(for-each
|
||||
delete-file
|
||||
(append (find-files (string-append out "/lib/jvm/jre/lib")
|
||||
"libjawt.so")
|
||||
(find-files (string-append out "/bin")
|
||||
".*(c\\+\\+|cpp|g\\+\\+|gcc.*)"))))
|
||||
#t))))))))
|
||||
|
||||
(define ecj-bootstrap
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri "ftp://sourceware.org/pub/java/ecj-4.9.jar")
|
||||
(sha256
|
||||
(base32
|
||||
"1k9lgm3qamf6zy534pa2zwskr8mpiqrngbv1vw9j4y1ghrdyf1lm"))))
|
||||
|
||||
(define-public gcc-objc-4.8
|
||||
(custom-gcc gcc-4.8 "gcc-objc" '("objc")
|
||||
(list (search-path-specification
|
||||
|
|
|
@ -1,36 +0,0 @@
|
|||
Taken from
|
||||
https://sources.debian.net/data/main/g/gcc-4.9/4.9.2-10/debian/patches/gcj-arm-mode.diff
|
||||
|
||||
# DP: For armhf, force arm mode instead of thumb mode
|
||||
|
||||
--- a/libjava/configure.host
|
||||
+++ b/libjava/configure.host
|
||||
@@ -66,6 +66,9 @@
|
||||
;;
|
||||
esac
|
||||
|
||||
+# on armhf force arm mode
|
||||
+libgcj_flags="${libgcj_flags} -marm"
|
||||
+
|
||||
AM_RUNTESTFLAGS=
|
||||
|
||||
# Set any host dependent compiler flags.
|
||||
--- a/gcc/java/lang-specs.h
|
||||
+++ b/gcc/java/lang-specs.h
|
||||
@@ -47,7 +47,7 @@
|
||||
%{.class|.zip|.jar|!fsyntax-only:jc1 \
|
||||
%{.java|fsaw-java-file:%U.jar -fsource-filename=%i %<ffilelist-file} \
|
||||
%{.class|.zip|.jar|ffilelist-file|fcompile-resource*:%i} \
|
||||
- %(jc1) %(cc1_options) %{I*} %{!findirect-dispatch:-faux-classpath %U.zip} \
|
||||
+ %(jc1) %(cc1_options) -marm %{I*} %{!findirect-dispatch:-faux-classpath %U.zip} \
|
||||
%{MD:-MD_} %{MMD:-MMD_} %{M} %{MM} %{MA} %{MT*} %{MF*}\
|
||||
%(invoke_as)}",
|
||||
0, 0, 0},
|
||||
--- a/libjava/libgcj.spec.in
|
||||
+++ b/libjava/libgcj.spec.in
|
||||
@@ -9,4 +9,4 @@
|
||||
%rename lib liborig
|
||||
*lib: @LD_START_STATIC_SPEC@ @LIBGCJ_SPEC@ @LD_FINISH_STATIC_SPEC@ @LIBMATHSPEC@ @LDLIBICONV@ @GCSPEC@ @THREADSPEC@ @ZLIBSPEC@ @SYSTEMSPEC@ %(libgcc) @LIBSTDCXXSPEC@ %(liborig)
|
||||
|
||||
-*jc1: @HASH_SYNC_SPEC@ @DIVIDESPEC@ @CHECKREFSPEC@ @JC1GCSPEC@ @EXCEPTIONSPEC@ @BACKTRACESPEC@ @IEEESPEC@ @ATOMICSPEC@ @LIBGCJ_BC_SPEC@ -fkeep-inline-functions
|
||||
+*jc1: @HASH_SYNC_SPEC@ @DIVIDESPEC@ @CHECKREFSPEC@ @JC1GCSPEC@ @EXCEPTIONSPEC@ @BACKTRACESPEC@ @IEEESPEC@ @ATOMICSPEC@ @LIBGCJ_BC_SPEC@ -fkeep-inline-functions -marm
|
Reference in New Issue