blob: f251e14a29683eba08388827b21a6eac92b6afa8 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
|
DESCRIPTION = "Java runtime based upon the OpenJDK8"
HOMEPAGE = "http://openjdk.java.net/projects/jdk8"
LICENSE = "GPL-2.0-with-classpath-exception"
PRIORITY = "optional"
SECTION = "libs"
INHIBIT_PACKAGE_STRIP = "1"
#INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
INC_PR = "r16"
SRC_URI = " \
${OPENJDK_URI} \
"
libdir_jvm ?= "${libdir}/jvm"
JDKPN = "openjdk-8"
JDK_DIR = "java-8-openjdk"
JDK_HOME = "${libdir_jvm}/${JDK_DIR}"
PN = "${JDKPN}-jre"
PROVIDES += "${JDKPN}"
DEPENDS = " \
zip-native \
zlib \
jpeg libpng giflib \
gtk+ glib-2.0 \
cups fontconfig \
libxt libxinerama libxrender libxtst libxi \
freetype alsa-lib libffi libxt \
"
# No package should directly depend on this (it should require
# java2-runtime instead).
PRIVATE_LIBS = "\
libunpack.so libverify.so libjava.so libzip.so libnpt.so \
libjava_crw_demo.so libhprof.so libnet.so libnio.so \
libmanagement.so libinstrument.so libjsound.so libjsoundalsa.so \
libj2pcsc.so libj2pkcs11.so libj2gss.so libmlib_image.so \
libawt.so libsplashscreen.so libfreetype.so.6 libfontmanager.so \
libjpeg.so liblcms.so librmi.so libjawt.so libjaas_unix.so \
libattach.so libjdwp.so libdt_socket.so libhpi.so libjli.so \
libmawt.so libjvm.so \
libversionCheck.so libcompiledMethodLoad.so libgctest.so \
libheapViewer.so libheapTracker.so libminst.so libmtrace.so \
libwaiters.so libhprof.so \
"
COMPATIBLE_HOST = "(aarch64).*-linux"
JAVA_HOME[unexport] = "1"
S="${WORKDIR}/openjdk8-aarch64-port-snapshot"
# The compiler tests in do_configure seem to drop TARGET_CC_ARCH from $CC, so add it into CFLAGS.
CFLAGS =+ "${TARGET_CC_ARCH} ${TOOLCHAIN_OPTIONS}"
CXXFLAGS =+ "${TARGET_CC_ARCH} ${TOOLCHAIN_OPTIONS}"
export EXTRA_CFLAGS = "${TOOLCHAIN_OPTIONS}"
ASNEEDED = ""
do_configure() {
unset MAKE
bash ./configure --with-debug-level=release --with-jvm-variants=client,server --with-sys-root=${STAGING_DIR_TARGET} --openjdk-target=${TARGET_SYS} --with-zlib=system --with-stdc++lib=dynamic --disable-ccache --disable-zip-debug-info
}
do_compile() {
make \
LOG=debug \
ALT_SDT_H=/openjdk/path/to/a/nonexistent/directory \
EXTRA_CFLAGS='${EXTRA_CFLAGS}' \
CC='${CC}' \
CXX='${CXX}' \
LD='${CC} ${LDFLAGS}' \
LDCXX='${CXX} ${LDFLAGS}' \
LDEXE='${CC} ${LDFLAGS}' \
LDEXECXX='${CXX} ${LDFLAGS}' \
images
}
do_install() {
install -d ${D}${libdir_jvm}
install -d ${D}${JDK_HOME}/jtreg
install -d ${D}${JDK_HOME}/jtreg/hotspot
install -d ${D}${JDK_HOME}/jtreg/jdk
cp -R ${S}/build/${BUILD_DIR}/j2sdk-image/* ${D}${JDK_HOME}
cp -R ${S}/hotspot/test ${D}${JDK_HOME}/jtreg/hotspot
cp -R ${S}/jdk/test ${D}${JDK_HOME}/jtreg/jdk
# The OpenJDK build does its own thing with debuginfo files; as we
# default to a 'release' build we remove these files.
find ${D}${JDK_HOME} -name \*.debuginfo -print | xargs rm
# The upstream Mercurial repo has various incompatible binaries checked in.
# Remove these otherwise bitbake complains about mismatched architecture, et al.
find ${D}${JDK_HOME}/jtreg -name \*.so -print | xargs rm
rm ${D}${JDK_HOME}/jtreg/jdk/test/sun/management/jmxremote/bootstrap/linux-i586/launcher
rm ${D}${JDK_HOME}/jtreg/jdk/test/sun/management/jmxremote/bootstrap/linux-amd64/launcher
rm ${D}${JDK_HOME}/jtreg/jdk/test/sun/management/jmxremote/bootstrap/solaris-sparcv9/launcher
rm ${D}${JDK_HOME}/jtreg/jdk/test/sun/management/jmxremote/bootstrap/solaris-amd64/launcher
chmod -R u+rw,go+r ${D}${JDK_HOME}
}
PACKAGES = " \
${JDKPN}-jdk \
${JDKPN}-doc \
${JDKPN}-source \
${JDKPN}-demo \
${JDKPN}-jtreg \
${JDKPN}-jre \
"
FILES_${JDKPN}-jdk = " \
${JDK_HOME}/bin \
${JDK_HOME}/lib \
${JDK_HOME}/include \
${JDK_HOME}/ASSEMBLY_EXCEPTION \
${JDK_HOME}/release \
${JDK_HOME}/THIRD_PARTY_README \
${JDK_HOME}/LICENSE \
"
FILES_${JDKPN}-doc = " \
${JDK_HOME}/man \
"
FILES_${JDKPN}-source = " \
${JDK_HOME}/src.zip \
"
FILES_${JDKPN}-demo = " \
${JDK_HOME}/demo \
${JDK_HOME}/sample \
"
FILES_${JDKPN}-jtreg = " \
${JDK_HOME}/jtreg \
"
FILES_${PN} = " \
${JDK_HOME}/jre \
"
INSANE_SKIP_${JDKPN}-jdk = "dev-so"
INSANE_SKIP_${JDKPN}-jre = "dev-so"
RPROVIDES_${JDKPN}-jre = "java2-runtime java2-vm"
RPROVIDES_${JDKPN}-jdk = "java2-runtime java2-vm"
RDEPENDS_${JDKPN}-demo = "java2-runtime"
RRECOMMENDS_${JDKPN}-jre = "liberation-fonts"
RRECOMMENDS_${JDKPN}-jdk = "liberation-fonts"
inherit update-alternatives
pkg_postinst_${JDKPN}-jre () {
update-alternatives --install ${bindir}/java java ${JDK_HOME}/jre/bin/java 75
update-alternatives --install ${bindir}/jjs jjs ${JDK_HOME}/jre/bin/jjs 75
update-alternatives --install ${bindir}/keytool keytool ${JDK_HOME}/jre/bin/keytool 75
update-alternatives --install ${bindir}/orbd orbd ${JDK_HOME}/jre/bin/orbd 75
update-alternatives --install ${bindir}/pack200 pack200 ${JDK_HOME}/jre/bin/pack200 75
update-alternatives --install ${bindir}/policytool policytool ${JDK_HOME}/jre/bin/policytool 75
update-alternatives --install ${bindir}/rmid rmid ${JDK_HOME}/jre/bin/rmid 75
update-alternatives --install ${bindir}/rmiregistry rmiregistry ${JDK_HOME}/jre/bin/rmiregistry 75
update-alternatives --install ${bindir}/servertool servertool ${JDK_HOME}/jre/bin/servertool 75
update-alternatives --install ${bindir}/tnameserv tnameserv ${JDK_HOME}/jre/bin/tnameserv 75
update-alternatives --install ${bindir}/unpack200 unpack200 ${JDK_HOME}/jre/bin/unpack200 75
}
pkg_prerm_${JDKPN}-jre () {
update-alternatives --remove java ${JDK_HOME}/jre/bin/java
update-alternatives --remove jjs ${JDK_HOME}/jre/bin/jjs
update-alternatives --remove keytool ${JDK_HOME}/jre/bin/keytool
update-alternatives --remove orbd ${JDK_HOME}/jre/bin/orbd
update-alternatives --remove pack200 ${JDK_HOME}/jre/bin/pack200
update-alternatives --remove policytool ${JDK_HOME}/jre/bin/policytool
update-alternatives --remove rmid ${JDK_HOME}/jre/bin/rmid
update-alternatives --remove rmiregistry ${JDK_HOME}/jre/bin/rmiregistry
update-alternatives --remove servertool ${JDK_HOME}/jre/bin/servertool
update-alternatives --remove tnameserv ${JDK_HOME}/jre/bin/tnameserv
update-alternatives --remove unpack200 ${JDK_HOME}/jre/bin/unpack200
}
pkg_postinst_${JDKPN}-jdk () {
update-alternatives --install ${bindir}/appletviewer appletviewer ${JDK_HOME}/bin/appletviewer 100
update-alternatives --install ${bindir}/extcheck extcheck ${JDK_HOME}/bin/extcheck 100
update-alternatives --install ${bindir}/idlj idlj ${JDK_HOME}/bin/idlj 100
update-alternatives --install ${bindir}/jar jar ${JDK_HOME}/bin/jar 100
update-alternatives --install ${bindir}/jarsigner jarsigner ${JDK_HOME}/bin/jarsigner 100
update-alternatives --install ${bindir}/java java ${JDK_HOME}/bin/java 100
update-alternatives --install ${bindir}/javac javac ${JDK_HOME}/bin/javac 100
update-alternatives --install ${bindir}/javadoc javadoc ${JDK_HOME}/bin/javadoc 100
update-alternatives --install ${bindir}/javah javah ${JDK_HOME}/bin/javah 100
update-alternatives --install ${bindir}/javap javap ${JDK_HOME}/bin/javap 100
update-alternatives --install ${bindir}/java-rmi.cgi java-rmi.cgi ${JDK_HOME}/bin/java-rmi.cgi 100
update-alternatives --install ${bindir}/jcmd jcmd ${JDK_HOME}/bin/jcmd 100
update-alternatives --install ${bindir}/jconsole jconsole ${JDK_HOME}/bin/jconsole 100
update-alternatives --install ${bindir}/jdb jdb ${JDK_HOME}/bin/jdb 100
update-alternatives --install ${bindir}/jdeps jdeps ${JDK_HOME}/bin/jdeps 100
update-alternatives --install ${bindir}/jhat jhat ${JDK_HOME}/bin/jhat 100
update-alternatives --install ${bindir}/jinfo jinfo ${JDK_HOME}/bin/jinfo 100
update-alternatives --install ${bindir}/jjs jjs ${JDK_HOME}/bin/jjs 100
update-alternatives --install ${bindir}/jmap jmap ${JDK_HOME}/bin/jmap 100
update-alternatives --install ${bindir}/jps jps ${JDK_HOME}/bin/jps 100
update-alternatives --install ${bindir}/jrunscript jrunscript ${JDK_HOME}/bin/jrunscript 100
update-alternatives --install ${bindir}/jsadebugd jsadebugd ${JDK_HOME}/bin/jsadebugd 100
update-alternatives --install ${bindir}/jstack jstack ${JDK_HOME}/bin/jstack 100
update-alternatives --install ${bindir}/jstat jstat ${JDK_HOME}/bin/jstat 100
update-alternatives --install ${bindir}/jstatd jstatd ${JDK_HOME}/bin/jstatd 100
update-alternatives --install ${bindir}/keytool keytool ${JDK_HOME}/bin/keytool 100
update-alternatives --install ${bindir}/native2ascii native2ascii ${JDK_HOME}/bin/native2ascii 100
update-alternatives --install ${bindir}/orbd orbd ${JDK_HOME}/bin/orbd 100
update-alternatives --install ${bindir}/pack200 pack200 ${JDK_HOME}/bin/pack200 100
update-alternatives --install ${bindir}/policytool policytool ${JDK_HOME}/bin/policytool 100
update-alternatives --install ${bindir}/rmic rmic ${JDK_HOME}/bin/rmic 100
update-alternatives --install ${bindir}/rmid rmid ${JDK_HOME}/bin/rmid 100
update-alternatives --install ${bindir}/rmiregistry rmiregistry ${JDK_HOME}/bin/rmiregistry 100
update-alternatives --install ${bindir}/schemagen schemagen ${JDK_HOME}/bin/schemagen 100
update-alternatives --install ${bindir}/serialver serialver ${JDK_HOME}/bin/serialver 100
update-alternatives --install ${bindir}/servertool servertool ${JDK_HOME}/bin/servertool 100
update-alternatives --install ${bindir}/tnameserv tnameserv ${JDK_HOME}/bin/tnameserv 100
update-alternatives --install ${bindir}/unpack200 unpack200 ${JDK_HOME}/bin/unpack200 100
update-alternatives --install ${bindir}/wsgen wsgen ${JDK_HOME}/bin/wsgen 100
update-alternatives --install ${bindir}/wsimport wsimport ${JDK_HOME}/bin/wsimport 100
update-alternatives --install ${bindir}/xjc xjc ${JDK_HOME}/bin/xjc 100
}
pkg_prerm_${JDKPN}-jdk () {
update-alternatives --remove appletviewer ${JDK_HOME}/bin/appletviewer
update-alternatives --remove extcheck ${JDK_HOME}/bin/extcheck
update-alternatives --remove idlj ${JDK_HOME}/bin/idlj
update-alternatives --remove jar ${JDK_HOME}/bin/jar
update-alternatives --remove jarsigner ${JDK_HOME}/bin/jarsigner
update-alternatives --remove java ${JDK_HOME}/bin/java
update-alternatives --remove javac ${JDK_HOME}/bin/javac
update-alternatives --remove javadoc ${JDK_HOME}/bin/javadoc
update-alternatives --remove javah ${JDK_HOME}/bin/javah
update-alternatives --remove javap ${JDK_HOME}/bin/javap
update-alternatives --remove java-rmi.cgi ${JDK_HOME}/bin/java-rmi.cgi
update-alternatives --remove jcmd ${JDK_HOME}/bin/jcmd
update-alternatives --remove jconsole ${JDK_HOME}/bin/jconsole
update-alternatives --remove jdb ${JDK_HOME}/bin/jdb
update-alternatives --remove jdeps ${JDK_HOME}/bin/jdeps
update-alternatives --remove jhat ${JDK_HOME}/bin/jhat
update-alternatives --remove jinfo ${JDK_HOME}/bin/jinfo
update-alternatives --remove jjs ${JDK_HOME}/bin/jjs
update-alternatives --remove jmap ${JDK_HOME}/bin/jmap
update-alternatives --remove jps ${JDK_HOME}/bin/jps
update-alternatives --remove jrunscript ${JDK_HOME}/bin/jrunscript
update-alternatives --remove jsadebugd ${JDK_HOME}/bin/jsadebugd
update-alternatives --remove jstack ${JDK_HOME}/bin/jstack
update-alternatives --remove jstat ${JDK_HOME}/bin/jstat
update-alternatives --remove jstatd ${JDK_HOME}/bin/jstatd
update-alternatives --remove keytool ${JDK_HOME}/bin/keytool
update-alternatives --remove native2ascii ${JDK_HOME}/bin/native2ascii
update-alternatives --remove orbd ${JDK_HOME}/bin/orbd
update-alternatives --remove pack200 ${JDK_HOME}/bin/pack200
update-alternatives --remove policytool ${JDK_HOME}/bin/policytool
update-alternatives --remove rmic ${JDK_HOME}/bin/rmic
update-alternatives --remove rmid ${JDK_HOME}/bin/rmid
update-alternatives --remove rmiregistry ${JDK_HOME}/bin/rmiregistry
update-alternatives --remove schemagen ${JDK_HOME}/bin/schemagen
update-alternatives --remove serialver ${JDK_HOME}/bin/serialver
update-alternatives --remove servertool ${JDK_HOME}/bin/servertool
update-alternatives --remove tnameserv ${JDK_HOME}/bin/tnameserv
update-alternatives --remove unpack200 ${JDK_HOME}/bin/unpack200
update-alternatives --remove wsgen ${JDK_HOME}/bin/wsgen
update-alternatives --remove wsimport ${JDK_HOME}/bin/wsimport
update-alternatives --remove xjc ${JDK_HOME}/bin/xjc
}
|