* [PATCH] Fix GCJ on armhf. @ 2016-11-25 21:35 Ricardo Wurmus 2016-11-25 21:35 ` [PATCH] gnu: gcj: Fix build " Ricardo Wurmus 2016-11-27 9:30 ` [PATCH] Fix GCJ " Ricardo Wurmus 0 siblings, 2 replies; 6+ messages in thread From: Ricardo Wurmus @ 2016-11-25 21:35 UTC (permalink / raw) To: guix-devel Hi Guix, with (a poorly formatted variant of) the attached patch I've built GCJ successfully in an ARM virtual machine. Building GCJ took about four days. I tested GCJ by building "ant", which seemed to have worked fine. ~~ Ricardo Ricardo Wurmus (1): gnu: gcj: Fix build on armhf. gnu/local.mk | 1 + gnu/packages/gcc.scm | 14 +++++++++++++ gnu/packages/patches/gcj-arm-mode.patch | 36 +++++++++++++++++++++++++++++++++ 3 files changed, 51 insertions(+) create mode 100644 gnu/packages/patches/gcj-arm-mode.patch -- 2.10.2 ^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH] gnu: gcj: Fix build on armhf. 2016-11-25 21:35 [PATCH] Fix GCJ on armhf Ricardo Wurmus @ 2016-11-25 21:35 ` Ricardo Wurmus 2016-11-26 5:32 ` Leo Famulari 2016-11-27 9:30 ` [PATCH] Fix GCJ " Ricardo Wurmus 1 sibling, 1 reply; 6+ messages in thread From: Ricardo Wurmus @ 2016-11-25 21:35 UTC (permalink / raw) To: guix-devel * gnu/packages/patches/gcj-arm-mode.patch: New file. * gnu/local.mk (dist_patch_DATA): Add patch. * gnu/packages/gcc.scm (gcj): Add patch. [arguments]: Delete failing tests. --- gnu/local.mk | 1 + gnu/packages/gcc.scm | 14 +++++++++++++ gnu/packages/patches/gcj-arm-mode.patch | 36 +++++++++++++++++++++++++++++++++ 3 files changed, 51 insertions(+) create mode 100644 gnu/packages/patches/gcj-arm-mode.patch diff --git a/gnu/local.mk b/gnu/local.mk index 4913727..4df820e 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -551,6 +551,7 @@ dist_patch_DATA = \ %D%/packages/patches/gcc-5.0-libvtv-runpath.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/gd-CVE-2016-7568.patch \ %D%/packages/patches/gd-CVE-2016-8670.patch \ %D%/packages/patches/gd-fix-chunk-size-on-boundaries.patch \ diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm index c26cc4f..ead270a 100644 --- a/gnu/packages/gcc.scm +++ b/gnu/packages/gcc.scm @@ -521,6 +521,16 @@ as the 'native-search-paths' field." (define-public gcj (package (inherit gcc) (name "gcj") + (version (package-version gcc)) + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnu/gcc/gcc-" + version "/gcc-" version ".tar.bz2")) + (sha256 + (base32 + "0zmnm00d2a1hsd41g34bhvxzvxisa2l584q3p447bd91lfjv4ci3")) + (patches (cons (search-patch "gcj-arm-mode.diff") + (origin-patches (package-source gcc)))))) (inputs `(("fastjar" ,fastjar) ("perl" ,perl) @@ -568,6 +578,10 @@ as the 'native-search-paths' field." '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)) diff --git a/gnu/packages/patches/gcj-arm-mode.patch b/gnu/packages/patches/gcj-arm-mode.patch new file mode 100644 index 0000000..16fdb5e --- /dev/null +++ b/gnu/packages/patches/gcj-arm-mode.patch @@ -0,0 +1,36 @@ +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/src/libjava/configure.host ++++ b/src/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/src/gcc/java/lang-specs.h ++++ b/src/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/src/libjava/libgcj.spec.in ++++ b/src/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 -- 2.10.2 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH] gnu: gcj: Fix build on armhf. 2016-11-25 21:35 ` [PATCH] gnu: gcj: Fix build " Ricardo Wurmus @ 2016-11-26 5:32 ` Leo Famulari 2016-11-26 17:30 ` Ricardo Wurmus 0 siblings, 1 reply; 6+ messages in thread From: Leo Famulari @ 2016-11-26 5:32 UTC (permalink / raw) To: Ricardo Wurmus; +Cc: guix-devel On Fri, Nov 25, 2016 at 10:35:15PM +0100, Ricardo Wurmus wrote: > * gnu/packages/patches/gcj-arm-mode.patch: New file. > * gnu/local.mk (dist_patch_DATA): Add patch. > * gnu/packages/gcc.scm (gcj): Add patch. > [arguments]: Delete failing tests. > diff --git a/gnu/packages/patches/gcj-arm-mode.patch b/gnu/packages/patches/gcj-arm-mode.patch > new file mode 100644 > index 0000000..16fdb5e > --- /dev/null > +++ b/gnu/packages/patches/gcj-arm-mode.patch > @@ -0,0 +1,36 @@ > +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/src/libjava/configure.host > ++++ b/src/libjava/configure.host > +@@ -66,6 +66,9 @@ > + ;; > + esac > + > ++# on armhf force arm mode > ++libgcj_flags="${libgcj_flags} -marm" > ++ Is the patch applied only on armhf machines? ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] gnu: gcj: Fix build on armhf. 2016-11-26 5:32 ` Leo Famulari @ 2016-11-26 17:30 ` Ricardo Wurmus 2016-11-26 17:47 ` Leo Famulari 0 siblings, 1 reply; 6+ messages in thread From: Ricardo Wurmus @ 2016-11-26 17:30 UTC (permalink / raw) To: Leo Famulari; +Cc: guix-devel GPG: BCA6 89B6 3655 3801 C3C6 2150 197A 5888 235F ACAC http://elephly.net Leo Famulari <leo@famulari.name> writes: > On Fri, Nov 25, 2016 at 10:35:15PM +0100, Ricardo Wurmus wrote: >> * gnu/packages/patches/gcj-arm-mode.patch: New file. >> * gnu/local.mk (dist_patch_DATA): Add patch. >> * gnu/packages/gcc.scm (gcj): Add patch. >> [arguments]: Delete failing tests. > >> diff --git a/gnu/packages/patches/gcj-arm-mode.patch b/gnu/packages/patches/gcj-arm-mode.patch >> new file mode 100644 >> index 0000000..16fdb5e >> --- /dev/null >> +++ b/gnu/packages/patches/gcj-arm-mode.patch >> @@ -0,0 +1,36 @@ >> +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/src/libjava/configure.host >> ++++ b/src/libjava/configure.host >> +@@ -66,6 +66,9 @@ >> + ;; >> + esac >> + >> ++# on armhf force arm mode >> ++libgcj_flags="${libgcj_flags} -marm" >> ++ > > Is the patch applied only on armhf machines? It is applied to the sources but they affect the behaviour on armhf only AFAICS. -- Ricardo ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] gnu: gcj: Fix build on armhf. 2016-11-26 17:30 ` Ricardo Wurmus @ 2016-11-26 17:47 ` Leo Famulari 0 siblings, 0 replies; 6+ messages in thread From: Leo Famulari @ 2016-11-26 17:47 UTC (permalink / raw) To: Ricardo Wurmus; +Cc: guix-devel On Sat, Nov 26, 2016 at 06:30:54PM +0100, Ricardo Wurmus wrote: > It is applied to the sources but they affect the behaviour on armhf > only AFAICS. Okay, that sounds good to me. ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] Fix GCJ on armhf. 2016-11-25 21:35 [PATCH] Fix GCJ on armhf Ricardo Wurmus 2016-11-25 21:35 ` [PATCH] gnu: gcj: Fix build " Ricardo Wurmus @ 2016-11-27 9:30 ` Ricardo Wurmus 1 sibling, 0 replies; 6+ messages in thread From: Ricardo Wurmus @ 2016-11-27 9:30 UTC (permalink / raw) To: guix-devel Ricardo Wurmus <rekado@elephly.net> writes: > Hi Guix, > > with (a poorly formatted variant of) the attached patch I've built GCJ > successfully in an ARM virtual machine. Building GCJ took about four days. I > tested GCJ by building "ant", which seemed to have worked fine. > > ~~ Ricardo > > Ricardo Wurmus (1): > gnu: gcj: Fix build on armhf. > > gnu/local.mk | 1 + > gnu/packages/gcc.scm | 14 +++++++++++++ > gnu/packages/patches/gcj-arm-mode.patch | 36 +++++++++++++++++++++++++++++++++ > 3 files changed, 51 insertions(+) > create mode 100644 gnu/packages/patches/gcj-arm-mode.patch Pushed to master with dbf8f84f15fb80fa41caeed073460853083e48d3. -- Ricardo GPG: BCA6 89B6 3655 3801 C3C6 2150 197A 5888 235F ACAC http://elephly.net ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2016-11-27 9:30 UTC | newest] Thread overview: 6+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2016-11-25 21:35 [PATCH] Fix GCJ on armhf Ricardo Wurmus 2016-11-25 21:35 ` [PATCH] gnu: gcj: Fix build " Ricardo Wurmus 2016-11-26 5:32 ` Leo Famulari 2016-11-26 17:30 ` Ricardo Wurmus 2016-11-26 17:47 ` Leo Famulari 2016-11-27 9:30 ` [PATCH] Fix GCJ " Ricardo Wurmus
Code repositories for project(s) associated with this public inbox https://git.savannah.gnu.org/cgit/guix.git This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).