Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
View | Details | Raw Unified | Return to bug 527788 | Differences between
and this patch

Collapse All | Expand All

(-)a/dev-java/jamvm/Manifest (+7 lines)
Line 0 Link Here
1
AUX jamvm-2.0.0-classes-location.patch 1276 SHA256 98ecad3eeb0623b3dc01155c9cbd9aacf31e5d5854b183a7be11b64bfdd838a6 SHA512 c399cb8ebce0556a778a1511fec43eeedc2e8d4b1ca732ebd201faf49d6a607baef914fb54e34f2c5b494ace6f5c072d296fb30c65038461e97a518c9e1924bd WHIRLPOOL 91d9c75a260f6f5943d1221bfba77032fc1ce1f8d85217ec4a80aa50b826f36816aa4fe0e1a2ae7cb27c171ec029d8ee3ad512a506c1d31e02276a02b1858e42
2
AUX jamvm-2.0.0-env.file 551 SHA256 27bda0e9663dba5ca099d2f26234d3fde1a14f1897edce65c2c421d15ad6dca9 SHA512 7d3aaf511d798bd9e9a56cce2b1e476b364f392e8b5062642054b335110d25a6e1e4e484e74743ffc945b29f92d31991942e3b06762232c3e7e624d7151655c2 WHIRLPOOL 9c71959c4be6c8d13110f0a18964ee5804e1a803cba82af71f8ac74924b2aa7651df5fc19fcb6301ea606ea85f461a471dbfbc5c4f0de1d4b7616933600523cc
3
AUX jamvm-2.0.0-javac.in 1739 SHA256 3bb23cff0a6e5a7a820e19cce4b9b0f51a7b84ee9e0eeb048b463a5f3e996db0 SHA512 65170b747012e114b072cd28a688089cdf2f54ddd151ba0cea92241b9b75fd0c7c410bfa4186cf9d233af4328bf962e13e8838a0cc09a1fbf2c28d29b13e36cb WHIRLPOOL 2237edd6abffdfb762d178e611768396f0b93a38f8a70f83c986049b60e26bb7084e3a38b70ed29c09df739091cdbfbfdd688e5eccee6ca4ea4006c23cf2b7d8
4
AUX jamvm-2.0.0-musl.patch 1733 SHA256 76fe550d2f376a29dd0a740adc3f9b5f6aa6ec2c16e1c843a83764d3ba4e2375 SHA512 d6a1f87f4546d9a9849672d970d401472d6c79a1fa87b193728df4c2ad6e9a1f3f1f4f48de045472e1288dea1b0a79c4fa016c99819b0f6e45f63cd3ead62747 WHIRLPOOL 50418776aa49dc52fa9c1c71de569613d70558156595dd4266a3a0ee843a2300d010eca10a0574e4c98444bb3b55b86fbae93ac4c54e3d391907bd36e1a908a1
5
AUX jamvm-2.0.0-noexecstack.patch 1387 SHA256 6a6028e55532ba3debf1f170790cc609b0bbd0cfe7fd7b5a14f4513e6b46873b SHA512 17c38ad0017e5659295dea7ed57f263eb0eee673bbc1f5d1e44e0c8fe588f4172a8a05c832a1fd41f3dc094779fade66aa710c8ce48c754412b0b6afdea6551a WHIRLPOOL e06573fa48c98c29ae1f53ce19b511f21ee594d32c840a4649d3a6df7754e594e729551429610c4d04d5dc97aa42678a35e68fb17709125e60ae2c53c51c9fd4
6
DIST jamvm-2.0.0.tar.gz 741459 SHA256 76428e96df0ae9dd964c7a7c74c1e9a837e2f312c39e9a357fa8178f7eff80da SHA512 8ac27787ee94fa8fde962635d3c08d1dc1e5244c9d56bb693e73f3fd9b58e944ad3f7a0127afeed727d7c00d904a775d2c483157f5ac87e7eab6ecade1aad21d WHIRLPOOL 7e80be683fafb444cd417502b96089ce4f6879a049ca49e33691b4d5d6755814654ab4ed7626b666dd48f9d6101567b2a12de43b916055ea1d067c5d4df06443
7
EBUILD jamvm-2.0.0-r99.ebuild 3781 SHA256 9bd66bb52decce0eaff3f6d55dfd6e4d837a56910e3260a6c4c6dc83f5d9aef9 SHA512 ffa2dd87f16b2afb83f87af635ec1833a1eb15b9bb252f625520a387fae799fbe44fff30fcb8bf4cc63f8b15f337cc6132244bb8a3de03a5a4b79e839c2338e4 WHIRLPOOL 076c52c6c6b0f86e17f8525689f17921a096f46c7b065e560128e90558fe4b03b9e06b12ed22bec01b309de2b07f1be832a2305a2632cd62e69fc5852f794274
(-)a/dev-java/jamvm/files/jamvm-2.0.0-env.file (+18 lines)
Line 0 Link Here
1
diff -Nru jamvm-2.0.0.old/configure.ac jamvm-2.0.0/configure.ac
2
--- jamvm-2.0.0.old/configure.ac	2014-06-10 21:33:37.000000000 +0100
Line 0 Link Here
1
# Copyright 1999-2015 Gentoo Foundation
2
# Distributed under the terms of the GNU General Public License v2
3
# $Id$
4
5
VERSION="JamVM JDK @PV@"
6
JAVA_HOME="@GENTOO_PORTAGE_EPREFIX@/usr/@LIBDIR@/@PN@-jdk"
7
JDK_HOME="@GENTOO_PORTAGE_EPREFIX@/usr/@LIBDIR@/@PN@-jdk"
8
BOOTCLASSPATH="@GENTOO_PORTAGE_EPREFIX@/usr/@LIBDIR@/@PN@/classes.zip:${JAVA_HOME}/lib/rt.jar"
9
JAVAC="${JAVA_HOME}/bin/javac"
10
PATH="${JAVA_HOME}/bin"
11
ROOTPATH="${JAVA_HOME}/bin"
12
PROVIDES_TYPE="JRE"
13
PROVIDES_VERSION="1.5"
14
GENERATION="2"
15
ENV_VARS="JAVA_HOME JAVAC PATH"
16
LDPATH="${JAVA_HOME}/lib"
(-)a/dev-java/jamvm/files/jamvm-2.0.0-javac.in (+57 lines)
Line 0 Link Here
1
#!/usr/bin/perl -w
2
use strict;
3
use constant NO_DUP_ARGS => qw(-source -target -d -encoding);
4
use constant STRIP_ARGS => qw(-Werror -implicit:none -J-Xbootclasspath/p:);
5
6
my $ECJ_WARNINGS="-nowarn";
7
8
my ( @bcoption, @source15, @target15, @cp );
9
push @bcoption, '-bootclasspath', '@RT_JAR@:@TOOLS_JAR@'
10
    unless grep {$_ eq '-bootclasspath'} @ARGV;
11
push @source15, '-source', '1.5'
12
    unless grep {$_ eq '-source'} @ARGV;
13
push @target15, '-target', '1.5'
14
    unless grep {$_ eq '-target'} @ARGV;  
15
push @cp, '-cp', '.'
16
    unless grep {$_ =~ '\-c(p|lasspath)'} @ARGV or $ENV{CLASSPATH};
17
my @ecj_parms = ($ECJ_WARNINGS, @bcoption, @source15, @target15, @cp);
18
19
# Work around ecj's inability to handle duplicate command-line
20
# options and unknown javac options.
21
sub gen_ecj_opts
22
{
23
    my @new_args = @{$_[0]};
24
25
    for my $opt (NO_DUP_ARGS) 
26
    {
27
	my @indices = reverse grep {$new_args[$_] eq $opt} 0..$#new_args;
28
	if (@indices > 1) {
29
	    shift @indices;    # keep last instance only
30
	    splice @new_args, $_, 2 for @indices;
31
	}
32
    }
33
34
    for my $opt (STRIP_ARGS) 
35
    {
36
	my @indices = reverse grep {$new_args[$_] eq $opt} 0..$#new_args;
37
	splice @new_args, $_, 1 for @indices;
38
    }
39
40
    return \@new_args;
41
}
42
43
sub split_vm_args
44
{
45
    my @new_args = @{$_[0]};
46
47
    my @vm_args = map { substr $_, 2 } grep $_ =~ /^-J/, @new_args;
48
    my @javac_args = grep $_ !~ /^-J/, @new_args;
49
50
    return (\@vm_args, \@javac_args);
51
}
52
53
my ($vm_args, $javac_args) = split_vm_args (gen_ecj_opts( \@ARGV ));
54
my @CLASSPATH = ('@ECJ_JAR@');
55
push @CLASSPATH, split /:/, $ENV{"CLASSPATH"} if exists $ENV{"CLASSPATH"};
56
$ENV{"CLASSPATH"} = join ':', @CLASSPATH;
57
exec '@JAVA@', @$vm_args, 'org.eclipse.jdt.internal.compiler.batch.Main', @ecj_parms, @$javac_args;
(-)a/dev-java/jamvm/files/jamvm-2.0.0-noexecstack.patch (+50 lines)
Line 0 Link Here
1
diff -rupN a/src/os/linux/i386/init.c b/src/os/linux/i386/init.c
2
--- a/src/os/linux/i386/init.c	2012-05-17 21:01:47.000000000 +0000
Line 0 Link Here
1
diff --git a/src/os/linux/arm/callNative.S b/src/os/linux/arm/callNative.S
2
index 245afd1..1583023 100644
3
--- a/src/os/linux/arm/callNative.S
4
+++ b/src/os/linux/arm/callNative.S
5
@@ -36,3 +36,7 @@
6
 #include "callNativeOABI.S"
7
 #endif
8
 #endif
9
+
10
+#if defined(__linux__) && defined(__ELF__)
11
+.section .note.GNU-stack,"",%progbits
12
+#endif
13
diff --git a/src/os/linux/mips/callNative.S b/src/os/linux/mips/callNative.S
14
index cede343..90d9163 100644
15
--- a/src/os/linux/mips/callNative.S
16
+++ b/src/os/linux/mips/callNative.S
17
@@ -184,3 +184,7 @@ return:
18
 	j $31
19
 	.end callJNIMethod
20
 #endif
21
+
22
+#if defined(__linux__) && defined(__ELF__)
23
+.section .note.GNU-stack,"",%progbits
24
+#endif
25
diff --git a/src/os/linux/powerpc/callNative.S b/src/os/linux/powerpc/callNative.S
26
index aa47f6a..763dc0a 100644
27
--- a/src/os/linux/powerpc/callNative.S
28
+++ b/src/os/linux/powerpc/callNative.S
29
@@ -281,3 +281,7 @@ return:
30
         mr 1,11
31
         blr
32
 #endif
33
+
34
+#if defined(__linux__) && defined(__ELF__)
35
+.section .note.GNU-stack,"",%progbits
36
+#endif
37
diff --git a/src/os/linux/x86_64/callNative.S b/src/os/linux/x86_64/callNative.S
38
index 26404e6..9fb5cdf 100644
39
--- a/src/os/linux/x86_64/callNative.S
40
+++ b/src/os/linux/x86_64/callNative.S
41
@@ -267,3 +267,7 @@ float_ret:
42
     addq    $8, %rcx
43
     jmp     return
44
 #endif
45
+
46
+#if defined(__linux__) && defined(__ELF__)
47
+.section .note.GNU-stack,"",%progbits
48
+#endif
(-)a/dev-java/jamvm/jamvm-2.0.0-r99.ebuild (-1 / +133 lines)
Line 0 Link Here
0
- 
1
# Copyright 1999-2016 Gentoo Foundation
2
# Distributed under the terms of the GNU General Public License v2
3
# $Id$
4
5
EAPI=5
6
7
inherit eutils flag-o-matic multilib java-vm-2 autotools
8
9
DESCRIPTION="An extremely small and specification-compliant virtual machine"
10
HOMEPAGE="http://jamvm.sourceforge.net/"
11
SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz"
12
13
LICENSE="GPL-2"
14
SLOT="0"
15
KEYWORDS="amd64 x86"
16
IUSE="debug libffi"
17
18
DEPEND="dev-java/gnu-classpath:0.98
19
	|| ( dev-java/eclipse-ecj:* dev-java/ecj-gcj:* )
20
	libffi? ( virtual/libffi )
21
	ppc64? ( virtual/libffi )
22
	sparc? ( virtual/libffi )"
23
RDEPEND="${DEPEND}"
24
25
PATCHES=(
26
	"${FILESDIR}"/"${P}-classes-location.patch"
27
	"${FILESDIR}"/"${P}-noexecstack.patch"
28
)
29
30
src_prepare() {
31
	# without this patch, classes.zip is not found at runtime
32
	epatch "${PATCHES[@]}"
33
34
	if use elibc_musl ; then
35
		epatch "${FILESDIR}"/"${P}-musl.patch"
36
	fi
37
38
	eautoreconf
39
40
	# These come precompiled.
41
	# configure script uses detects the compiler
42
	# from PATH. I guess we should compile this from source.
43
	# Then just make sure not to hit
44
	# https://bugs.gentoo.org/show_bug.cgi?id=163801
45
	#
46
	#rm -v lib/classes.zip || die
47
}
48
49
src_configure() {
50
	filter-flags "-fomit-frame-pointer"
51
52
	if use ppc64 || use sparc || use libffi; then
53
		append-cflags "$(pkg-config --cflags-only-I libffi)"
54
	fi
55
56
	local fficonf="--enable-ffi"
57
	if { ! use ppc64 && ! use sparc; }; then
58
		fficonf="$(use_enable libffi ffi)"
59
	fi
60
61
	econf ${fficonf} \
62
		--disable-dependency-tracking \
63
		$(use_enable debug trace) \
64
		--libdir="${EPREFIX}"/usr/$(get_libdir)/${PN} \
65
		--includedir="${EPREFIX}"/usr/include/${PN} \
66
		--with-classpath-install-dir=/usr
67
}
68
69
create_launcher() {
70
	local script="${D}/${INSTALL_DIR}/bin/${1}"
71
	cat > "${script}" <<-EOF
72
		#!/bin/sh
73
		exec /usr/bin/jamvm \
74
			-Xbootclasspath/p:/usr/share/classpath/tools.zip" \
75
			gnu.classpath.tools.${1}.Main "\$@"
76
	EOF
77
	chmod +x "${script}" || die
78
}
79
80
src_install() {
81
	local libdir=$(get_libdir)
82
	local CLASSPATH_DIR=/usr/libexec/gnu-classpath-0.98
83
	local JDK_DIR=/usr/${libdir}/${PN}-jdk
84
85
	emake DESTDIR="${D}" install
86
87
	dodoc ACKNOWLEDGEMENTS AUTHORS ChangeLog NEWS README
88
89
	set_java_env "${FILESDIR}/${P}-env.file"
90
91
	dodir ${JDK_DIR}/bin
92
	dosym /usr/bin/jamvm ${JDK_DIR}/bin/java
93
	for files in ${CLASSPATH_DIR}/g*; do
94
		if [ $files = "${CLASSPATH_DIR}/bin/gjdoc" ] ; then
95
			dosym $files ${JDK_DIR}/bin/javadoc || die
96
		else
97
			dosym $files \
98
				${JDK_DIR}/bin/$(echo $files|sed "s#$(dirname $files)/g##") || die
99
		fi
100
	done
101
102
	dodir ${JDK_DIR}/jre/lib
103
	dosym /usr/share/classpath/glibj.zip ${JDK_DIR}/jre/lib/rt.jar
104
	dodir ${JDK_DIR}/lib
105
	dosym /usr/share/classpath/tools.zip ${JDK_DIR}/lib/tools.jar
106
107
	local ecj_jar="$(readlink "${EPREFIX}"/usr/share/eclipse-ecj/ecj.jar)"
108
	exeinto ${JDK_DIR}/bin
109
	sed -e "s#@JAVA@#/usr/bin/jamvm#" \
110
		-e "s#@ECJ_JAR@#${ecj_jar}#" \
111
		-e "s#@RT_JAR@#/usr/share/classpath/glibj.zip#" \
112
		-e "s#@TOOLS_JAR@#/usr/share/classpath/tools.zip#" \
113
		"${FILESDIR}"/"${P}-javac.in" | newexe - javac
114
115
	local libarch="${ARCH}"
116
	[ ${ARCH} == x86 ] && libarch="i386"
117
	[ ${ARCH} == x86_64 ] && libarch="amd64"
118
	dodir ${JDK_DIR}/jre/lib/${libarch}/client
119
	dodir ${JDK_DIR}/jre/lib/${libarch}/server
120
	dosym /usr/${libdir}/${PN}/libjvm.so ${JDK_DIR}/jre/lib/${libarch}/client/libjvm.so
121
	dosym /usr/${libdir}/${PN}/libjvm.so ${JDK_DIR}/jre/lib/${libarch}/server/libjvm.so
122
	dosym /usr/${libdir}/classpath/libjawt.so ${JDK_DIR}/jre/lib/${libarch}/libjawt.so
123
124
	# Can't use java-vm_set-pax-markings as doesn't work with symbolic links
125
	# Ensure a PaX header is created.
126
	local pax_markings="C"
127
	# Usally disabeling MPROTECT is sufficent.
128
	local pax_markings+="m"
129
	# On x86 for heap sizes over 700MB disable SEGMEXEC and PAGEEXEC as well.
130
	use x86 && pax_markings+="sp"
131
132
	pax-mark ${pax_markings} "${ED}"/usr/bin/jamvm
133
}

Return to bug 527788