diff options
Diffstat (limited to 'gnu/packages')
-rw-r--r-- | gnu/packages/gcc.scm | 136 | ||||
-rw-r--r-- | gnu/packages/patches/gcj-arm-mode.patch | 36 |
2 files changed, 1 insertions, 171 deletions
diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm index 5d1a4ea754..866f8478ff 100644 --- a/gnu/packages/gcc.scm +++ b/gnu/packages/gcc.scm @@ -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 diff --git a/gnu/packages/patches/gcj-arm-mode.patch b/gnu/packages/patches/gcj-arm-mode.patch deleted file mode 100644 index a3f999f7e9..0000000000 --- a/gnu/packages/patches/gcj-arm-mode.patch +++ /dev/null @@ -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 |