add icedtea with jamvm
This commit is contained in:
parent
fb76201cf3
commit
d6ca3ea094
1273
dev-java/icedtea/ChangeLog
Normal file
1273
dev-java/icedtea/ChangeLog
Normal file
File diff suppressed because it is too large
Load Diff
27
dev-java/icedtea/Manifest
Normal file
27
dev-java/icedtea/Manifest
Normal file
@ -0,0 +1,27 @@
|
||||
AUX 0-sharkllvm30-targetselect-138450.patch 717 RMD160 eab3954a679335b036d99cf572a61d670b92f1d5 SHA1 fd5546b2598f4be6d9c3220e49281793d0622c60 SHA256 732bd7df8ac43b708e21920d4c389de4f0ad1c8eaca1ee3c6dce5e4bb536b1de
|
||||
AUX 2-sharkllvm30-PHI-128537-Call-ArrayRef-135265-v2.patch 10317 RMD160 c85e9810489cf52011473eff1eb18acb0fcceb53 SHA1 984b6bb3bccf4c1cf19fc9f13b63ae8b8eb02738 SHA256 b59cdebc0022a6824ba353d71bcac490dded8c8881961d6430164e46eee9f8bc
|
||||
AUX 3-sharkllvm30-MCJIT-v3.patch 1630 RMD160 d0f58680b5f3dc1ae1e46acc3fc7ae39e7a28426 SHA1 6bdcc863a17c4471fe859dd50c5dff9fb44317b1 SHA256 899e3dae68f4d930ac06097860e9e4fe9ac1ffe149d20774bd680ae31e59ff71
|
||||
AUX disable_werror.patch 516 RMD160 fbfd860044ce6441cf097cee025aaa42320e3b61 SHA1 a7736228b86961d282645a2ea13ffd4f3ce8e666 SHA256 10cd9805b5986d502f47840adc2ec6030f380d86edb09447a1552de162207ad4
|
||||
AUX fontconfig.Gentoo.properties.src 15602 RMD160 d5ae1cb403072b630c126a908d14b5b462e1514f SHA1 04af30bfae3decf6fdb51187a07bf75fb04a83f0 SHA256 d48a9b43d82f45425464e985955f3f3700738a98c0dc97ab7577230ca11fe647
|
||||
AUX generate-cacerts.pl 11051 RMD160 9b874c62ffa0afe16353f1e7b32f124f1d31356f SHA1 65e55b84506ecf14711db0996eccf3cfba2fe9e3 SHA256 6ee6fb155e3fa85d0a7e9015b53ebd55948c6599d100fdb69b574b6d11f73433
|
||||
AUX icedtea-6.1.10.4_1-sharkllvm30-de-const-type-135375.patch 23047 RMD160 62eddf0f20377ea5cdff06cd2bbc17b279096e6e SHA1 bb10d8a9d1c8a5fb03e13fb33cc84c760656d4f4 SHA256 e6b2a95e630944b1dce3b5dd9c0836c956303daf287f46a59831bdaa89da4a4b
|
||||
AUX icedtea-6.1.10.4_pax_kernel_support.patch 4152 RMD160 a1800e5985d90db6e4827b0bea784cb034962c69 SHA1 625177d004e57cad81d522d1436aaa33dba45a6a SHA256 4a6f3462e9dd47dcc5941dd67a56bbd9ea874dca2a94566f0f38c2d241efeb74
|
||||
AUX icedtea-6.1.10.4_separate_shark_target.patch 8216 RMD160 9af7e9d9681fd396542e7df492af9c310d0e2e3c SHA1 846b9169784d270f9174da4ecf7910b844e483f1 SHA256 7311bab084a285bbe427976be25e309ac190e13b094b028e47fbb90c3f7e836b
|
||||
AUX icedtea-6.1.10.4_shark_jvm_rpath.patch 527 RMD160 b2985002e5ee6d340ff5cc34e11a01af120de780 SHA1 3a2f96bac78d11247ec122388223d978f8f5b210 SHA256 28e9df24b57f6a7b4a6244f1e6674ec53bc9860cd57d331048bf37bc3787fca5
|
||||
AUX icedtea-7.2.0_1-sharkllvm30-de-const-type-135375.patch 23111 RMD160 ee816b392f2b216b27a2538cc507012fac6be458 SHA1 531acd398982ec26d569aecbac4b709be8b98aa1 SHA256 bffb46db3d6cda438ceae07bd09fb56726192138186ae207338a4c231b6b6f90
|
||||
AUX icedtea-7.2.0_pax_kernel_support.patch 6511 RMD160 ca6ff5d7f8c1157558af28ef631ed4fd5f67f901 SHA1 538bb29bc10978ae14114cfed525c3905e808984 SHA256 4771937bbb89a92fd77dc5e5945231ae511f284fa368648bb7aa34e0fb48ba9e
|
||||
AUX icedtea-7.2.0_separate_shark_target.patch 6102 RMD160 345e82048f81ff94b761dbb5fad820a76c3c5c02 SHA1 bbecab3ab3100cf51a9cab5d441d022a8e485660 SHA256 71ae48dc24239ac0710ac5496f2c8fa060eaeb66a9849f4f9477e52181d13e28
|
||||
AUX icedtea-7.2.0_shark_jvm_rpath.patch 527 RMD160 e35de06007a540250ea3af3602468b8c7088271b SHA1 c95aa536269d0b7ffec3ae3f9694f47bdf633bf6 SHA256 f86ab366bf715b0871e03be2df9d8c84ee41213b6bae783e942cc02a0154e8b8
|
||||
AUX icedtea-7.2.0_shark_llvm_flags.patch 1180 RMD160 7c412f8ac37c0b2281d0f477894981cd04684c72 SHA1 a47e87374276b727dfae1d32778ce6fc976a73a3 SHA256 494ceb93461f52e2a081989f6455fdbfe8785d43df6c9cfd88527aa63cd1085d
|
||||
AUX icedtea.env 1074 RMD160 6806fd80d619c54f6ab50255c12ee2a9920ad72f SHA1 4ddbddd4464fcf11fad45426ba0430818747249d SHA256 b4ad677dede5c06785db6540d51a9dbe6401e894f03857f5b14dbf6bdf9a33a8
|
||||
DIST 4549072ab2de.tar.gz 4210747 RMD160 e4bd1f089e622e48bbb67c56352a0e9c789c6485 SHA1 0dd6440d9dea578324b6fec0ee28c38f97982855 SHA256 ec097ce96f047abbaeab4faab752c121d29f08bdeae358038a0b7cde03361d07
|
||||
DIST f0f676c5a2c6.tar.gz 8506038 RMD160 e00e7b602758eaa6cfdd04b109d99694ce2ae94c SHA1 bdc450f5a1b75b2445c960f43dbc7f605042a3c8 SHA256 aaa322239c181e50a61ec71869843eee7a0a82a9b80f113d32faf2a59d7ba5c4
|
||||
DIST icedtea6-1.10.5.tar.gz 6831721 RMD160 24e3c22dafaba9aac21b84643127c2e92f1dc2dd SHA1 ba260275bcfbbbaff153c99b066d2f4ba7a12270 SHA256 7d0f9e833a42b6af308a34d432431f0528a2efa52d7837aa446d1c4c27161a0c
|
||||
DIST jamvm-310c491ddc14e92a6ffff27030a1a1821e6395a8.tar.gz 293833 RMD160 b34f4684e0c918c36d9fb9316a4ae7737b712296 SHA1 60d5782ccb9707699f9dfbfcf647a5c862ef4691 SHA256 b5174f59371017087139fd43d51074ad837ae29340220206ca06769c8329881a
|
||||
DIST jaxp144_01.zip 5964803 RMD160 6844ae747a7e7de289ce263ed06050a512416aec SHA1 4f11f9525a83e7842cbd14cc47d967abde093c27 SHA256 d72c2e27a479e7e78e0141cfcf3a9c5dbc5677495bd21b2d52dce85d21322186
|
||||
DIST jdk6-jaf-b20.zip 71243 RMD160 40b49d12c39b7010ee917eb671f3c38cd16f271c SHA1 69a54373e169bd7b04a45de6a310a199260424b9 SHA256 78c7b5c9d6271e88ee46abadd018a61f1e9645f8936cc8df1617e5f4f5074012
|
||||
DIST jdk6-jaxws-b20.zip 5513069 RMD160 47b2d4fe528d770391e8926299df45cc6f68e9b5 SHA1 08366a70c9e2baa516afc77bb69f9e108e906aa9 SHA256 0c460583898b968a58bf88eb53f90a0e34369e2562d65fb3a143512dfcaeb3eb
|
||||
DIST openjdk-6-src-b22-28_feb_2011.tar.gz 45279689 RMD160 2b8f92cdb4d7dd3eb3cbb800a73e1666ee4bf5b1 SHA1 65a60153adbc8bc47fb95bb2b588a9a0b8701c95 SHA256 14a097d45b8c040e984be164a8cefbf22040a9ad57474fe87dd8cf2d0b08328b
|
||||
EBUILD icedtea-6.1.10.5.ebuild 11120 RMD160 cfafaba488bdb7b29ec8074892042c3681cd35ea SHA1 63f2f4306bab4dea98f691d54940d29dd4e98ba2 SHA256 483e8a578bdc367affd0cbf89792083c057cc350dd02687839a6cb26efb4aa87
|
||||
MISC ChangeLog 55586 RMD160 b77c3bcc1cc5d0213e82869e2a0591948dc504f3 SHA1 ae0ee6199659bc07d013b0eb4b201812557b0d81 SHA256 4ba5ba5882a03bcd8a07586174c582441f1f226ce603b1bb3de6e8500dd18372
|
||||
MISC metadata.xml 1841 RMD160 e11dc49cd85ae8e5cbd0008d9717db3d9cce10bb SHA1 8ea7ea30c8d75f6f5466da706ad06f6e9663d6c0 SHA256 730fb8505320e831f218a0968037a3f6c42e2a0f83d3467b45d7d99a4b8ec591
|
@ -0,0 +1,19 @@
|
||||
Taken from:
|
||||
http://mail.openjdk.java.net/pipermail/zero-dev/2011-August/000399.html
|
||||
|
||||
Index: icedtea6-shark/openjdk/hotspot/src/share/vm/shark/llvmHeaders.hpp
|
||||
===================================================================
|
||||
--- openjdk/hotspot/src/share/vm/shark/llvmHeaders.hpp 2011-08-30 19:28:01.875227001 +0000
|
||||
+++ openjdk/hotspot/src/share/vm/shark/llvmHeaders.hpp 2011-08-30 19:30:16.885227001 +0000
|
||||
@@ -51,7 +51,11 @@
|
||||
#else
|
||||
#include <llvm/System/Threading.h>
|
||||
#endif
|
||||
+#if SHARK_LLVM_VERSION >= 30
|
||||
+#include <llvm/Support/TargetSelect.h>
|
||||
+#else
|
||||
#include <llvm/Target/TargetSelect.h>
|
||||
+#endif
|
||||
#include <llvm/Type.h>
|
||||
#include <llvm/ExecutionEngine/JITMemoryManager.h>
|
||||
#include <llvm/Support/CommandLine.h>
|
@ -0,0 +1,218 @@
|
||||
Taken from:
|
||||
http://mail.openjdk.java.net/pipermail/zero-dev/2011-August/000399.html
|
||||
|
||||
Index: icedtea6-shark-llvm-3.0/openjdk/hotspot/src/share/vm/shark/sharkBlock.cpp
|
||||
===================================================================
|
||||
--- openjdk/hotspot/src/share/vm/shark/sharkBlock.cpp 2011-08-31 11:33:05.404964248 +0200
|
||||
+++ openjdk/hotspot/src/share/vm/shark/sharkBlock.cpp 2011-08-31 11:33:11.164992604 +0200
|
||||
@@ -1000,9 +1000,9 @@
|
||||
builder()->SetInsertPoint(done);
|
||||
PHINode *result;
|
||||
if (is_long)
|
||||
- result = builder()->CreatePHI(SharkType::jlong_type(), "result");
|
||||
+ result = builder()->CreatePHI(SharkType::jlong_type(), 0, "result");
|
||||
else
|
||||
- result = builder()->CreatePHI(SharkType::jint_type(), "result");
|
||||
+ result = builder()->CreatePHI(SharkType::jint_type(), 0, "result");
|
||||
result->addIncoming(special_result, special_case);
|
||||
result->addIncoming(general_result, general_case);
|
||||
|
||||
@@ -1105,7 +1105,7 @@
|
||||
builder()->CreateBr(done);
|
||||
|
||||
builder()->SetInsertPoint(done);
|
||||
- PHINode *result = builder()->CreatePHI(SharkType::jint_type(), "result");
|
||||
+ PHINode *result = builder()->CreatePHI(SharkType::jint_type(), 0, "result");
|
||||
result->addIncoming(LLVMValue::jint_constant(-1), lt);
|
||||
result->addIncoming(LLVMValue::jint_constant(0), eq);
|
||||
result->addIncoming(LLVMValue::jint_constant(1), gt);
|
||||
@@ -1152,7 +1152,7 @@
|
||||
builder()->CreateBr(done);
|
||||
|
||||
builder()->SetInsertPoint(done);
|
||||
- PHINode *result = builder()->CreatePHI(SharkType::jint_type(), "result");
|
||||
+ PHINode *result = builder()->CreatePHI(SharkType::jint_type(), 0, "result");
|
||||
result->addIncoming(LLVMValue::jint_constant(-1), lt);
|
||||
result->addIncoming(LLVMValue::jint_constant(0), eq);
|
||||
result->addIncoming(LLVMValue::jint_constant(1), gt);
|
||||
Index: icedtea6-shark-llvm-3.0/openjdk/hotspot/src/share/vm/shark/sharkBuilder.cpp
|
||||
===================================================================
|
||||
--- openjdk/hotspot/src/share/vm/shark/sharkBuilder.cpp 2011-08-31 11:33:05.404964248 +0200
|
||||
+++ openjdk/hotspot/src/share/vm/shark/sharkBuilder.cpp 2011-08-31 13:59:28.604517829 +0200
|
||||
@@ -465,7 +465,7 @@
|
||||
LLVMValue::bit_constant((flags & BARRIER_STORESTORE) ? 1 : 0),
|
||||
LLVMValue::bit_constant(1)};
|
||||
|
||||
- return CreateCall(memory_barrier(), args, args + 5);
|
||||
+ return CreateCall(memory_barrier(), llvm::makeArrayRef(args));
|
||||
}
|
||||
|
||||
CallInst* SharkBuilder::CreateMemset(Value* dst,
|
||||
Index: icedtea6-shark-llvm-3.0/openjdk/hotspot/src/share/vm/shark/sharkIntrinsics.cpp
|
||||
===================================================================
|
||||
--- openjdk/hotspot/src/share/vm/shark/sharkIntrinsics.cpp 2011-07-05 20:31:05.000000000 +0200
|
||||
+++ openjdk/hotspot/src/share/vm/shark/sharkIntrinsics.cpp 2011-08-31 11:33:11.200992924 +0200
|
||||
@@ -171,7 +171,7 @@
|
||||
builder()->CreateBr(done);
|
||||
|
||||
builder()->SetInsertPoint(done);
|
||||
- PHINode *phi = builder()->CreatePHI(a->getType(), "result");
|
||||
+ PHINode *phi = builder()->CreatePHI(a->getType(), 0, "result");
|
||||
phi->addIncoming(a, return_a);
|
||||
phi->addIncoming(b, return_b);
|
||||
|
||||
Index: icedtea6-shark-llvm-3.0/openjdk/hotspot/src/share/vm/shark/sharkNativeWrapper.cpp
|
||||
===================================================================
|
||||
--- openjdk/hotspot/src/share/vm/shark/sharkNativeWrapper.cpp 2011-08-31 11:33:05.408964281 +0200
|
||||
+++ openjdk/hotspot/src/share/vm/shark/sharkNativeWrapper.cpp 2011-08-31 13:58:49.448323631 +0200
|
||||
@@ -149,7 +149,7 @@
|
||||
builder()->CreateBr(merge);
|
||||
|
||||
builder()->SetInsertPoint(merge);
|
||||
- phi = builder()->CreatePHI(box_type, "boxed_object");
|
||||
+ phi = builder()->CreatePHI(box_type, 0, "boxed_object");
|
||||
phi->addIncoming(ConstantPointerNull::get(box_type), null);
|
||||
phi->addIncoming(box, not_null);
|
||||
box = phi;
|
||||
@@ -213,7 +213,7 @@
|
||||
PointerType::getUnqual(
|
||||
FunctionType::get(return_type, param_types, false)));
|
||||
Value *result = builder()->CreateCall(
|
||||
- native_function, param_values.begin(), param_values.end());
|
||||
+ native_function, llvm::makeArrayRef(param_values));
|
||||
|
||||
// Start the transition back to _thread_in_Java
|
||||
CreateSetThreadState(_thread_in_native_trans);
|
||||
@@ -305,7 +305,7 @@
|
||||
builder()->CreateBr(merge);
|
||||
|
||||
builder()->SetInsertPoint(merge);
|
||||
- PHINode *phi = builder()->CreatePHI(SharkType::oop_type(), "result");
|
||||
+ PHINode *phi = builder()->CreatePHI(SharkType::oop_type(), 0, "result");
|
||||
phi->addIncoming(LLVMValue::null(), null);
|
||||
phi->addIncoming(unboxed_result, not_null);
|
||||
result = phi;
|
||||
Index: icedtea6-shark-llvm-3.0/openjdk/hotspot/src/share/vm/shark/sharkTopLevelBlock.hpp
|
||||
===================================================================
|
||||
--- openjdk/hotspot/src/share/vm/shark/sharkTopLevelBlock.hpp 2011-07-05 20:31:05.000000000 +0200
|
||||
+++ openjdk/hotspot/src/share/vm/shark/sharkTopLevelBlock.hpp 2011-08-31 11:33:11.204992936 +0200
|
||||
@@ -290,7 +290,7 @@
|
||||
int exception_action) {
|
||||
decache_for_VM_call();
|
||||
stack()->CreateSetLastJavaFrame();
|
||||
- llvm::CallInst *res = builder()->CreateCall(callee, args_start, args_end);
|
||||
+ llvm::CallInst *res = builder()->CreateCall(callee, llvm::makeArrayRef(args_start, args_end));
|
||||
stack()->CreateResetLastJavaFrame();
|
||||
cache_after_VM_call();
|
||||
if (exception_action & EAM_CHECK) {
|
||||
Index: icedtea6-shark-llvm-3.0/openjdk/hotspot/src/share/vm/shark/sharkState.cpp
|
||||
===================================================================
|
||||
--- openjdk/hotspot/src/share/vm/shark/sharkState.cpp 2011-07-05 20:31:05.000000000 +0200
|
||||
+++ openjdk/hotspot/src/share/vm/shark/sharkState.cpp 2011-08-31 11:33:11.204992936 +0200
|
||||
@@ -131,7 +131,7 @@
|
||||
Value *this_method = this->method();
|
||||
Value *other_method = other->method();
|
||||
if (this_method != other_method) {
|
||||
- PHINode *phi = builder()->CreatePHI(SharkType::methodOop_type(), "method");
|
||||
+ PHINode *phi = builder()->CreatePHI(SharkType::methodOop_type(), 0, "method");
|
||||
phi->addIncoming(this_method, this_block);
|
||||
phi->addIncoming(other_method, other_block);
|
||||
set_method(phi);
|
||||
@@ -142,7 +142,7 @@
|
||||
Value *other_oop_tmp = other->oop_tmp();
|
||||
if (this_oop_tmp != other_oop_tmp) {
|
||||
assert(this_oop_tmp && other_oop_tmp, "can't merge NULL with non-NULL");
|
||||
- PHINode *phi = builder()->CreatePHI(SharkType::oop_type(), "oop_tmp");
|
||||
+ PHINode *phi = builder()->CreatePHI(SharkType::oop_type(), 0, "oop_tmp");
|
||||
phi->addIncoming(this_oop_tmp, this_block);
|
||||
phi->addIncoming(other_oop_tmp, other_block);
|
||||
set_oop_tmp(phi);
|
||||
@@ -287,7 +287,7 @@
|
||||
char name[18];
|
||||
|
||||
// Method
|
||||
- set_method(builder()->CreatePHI(SharkType::methodOop_type(), "method"));
|
||||
+ set_method(builder()->CreatePHI(SharkType::methodOop_type(), 0, "method"));
|
||||
|
||||
// Local variables
|
||||
for (int i = 0; i < max_locals(); i++) {
|
||||
@@ -307,7 +307,7 @@
|
||||
case T_ARRAY:
|
||||
snprintf(name, sizeof(name), "local_%d_", i);
|
||||
value = SharkValue::create_phi(
|
||||
- type, builder()->CreatePHI(SharkType::to_stackType(type), name));
|
||||
+ type, builder()->CreatePHI(SharkType::to_stackType(type), 0, name));
|
||||
break;
|
||||
|
||||
case T_ADDRESS:
|
||||
@@ -345,7 +345,7 @@
|
||||
case T_ARRAY:
|
||||
snprintf(name, sizeof(name), "stack_%d_", i);
|
||||
value = SharkValue::create_phi(
|
||||
- type, builder()->CreatePHI(SharkType::to_stackType(type), name));
|
||||
+ type, builder()->CreatePHI(SharkType::to_stackType(type), 0, name));
|
||||
break;
|
||||
|
||||
case T_ADDRESS:
|
||||
Index: icedtea6-shark-llvm-3.0/openjdk/hotspot/src/share/vm/shark/sharkTopLevelBlock.cpp
|
||||
===================================================================
|
||||
--- openjdk/hotspot/src/share/vm/shark/sharkTopLevelBlock.cpp 2011-08-31 11:33:05.412964300 +0200
|
||||
+++ openjdk/hotspot/src/share/vm/shark/sharkTopLevelBlock.cpp 2011-08-31 11:33:11.204992936 +0200
|
||||
@@ -1180,7 +1180,7 @@
|
||||
builder()->CreateBr(loop);
|
||||
builder()->SetInsertPoint(loop);
|
||||
PHINode *itable_entry_addr = builder()->CreatePHI(
|
||||
- SharkType::intptr_type(), "itable_entry_addr");
|
||||
+ SharkType::intptr_type(), 0, "itable_entry_addr");
|
||||
itable_entry_addr->addIncoming(itable_start, loop_entry);
|
||||
|
||||
Value *itable_entry = builder()->CreateIntToPtr(
|
||||
@@ -1526,7 +1526,7 @@
|
||||
// First merge
|
||||
builder()->SetInsertPoint(merge1);
|
||||
PHINode *nonnull_result = builder()->CreatePHI(
|
||||
- SharkType::jint_type(), "nonnull_result");
|
||||
+ SharkType::jint_type(), 0, "nonnull_result");
|
||||
nonnull_result->addIncoming(
|
||||
LLVMValue::jint_constant(IC_IS_INSTANCE), is_instance);
|
||||
nonnull_result->addIncoming(
|
||||
@@ -1537,7 +1537,7 @@
|
||||
// Second merge
|
||||
builder()->SetInsertPoint(merge2);
|
||||
PHINode *result = builder()->CreatePHI(
|
||||
- SharkType::jint_type(), "result");
|
||||
+ SharkType::jint_type(), 0, "result");
|
||||
result->addIncoming(LLVMValue::jint_constant(IC_IS_NULL), null_block);
|
||||
result->addIncoming(nonnull_result, nonnull_block);
|
||||
|
||||
@@ -1713,7 +1713,7 @@
|
||||
builder()->SetInsertPoint(initialize);
|
||||
if (tlab_object) {
|
||||
PHINode *phi = builder()->CreatePHI(
|
||||
- SharkType::oop_type(), "fast_object");
|
||||
+ SharkType::oop_type(), 0, "fast_object");
|
||||
phi->addIncoming(tlab_object, got_tlab);
|
||||
phi->addIncoming(heap_object, got_heap);
|
||||
fast_object = phi;
|
||||
@@ -1773,7 +1773,7 @@
|
||||
builder()->SetInsertPoint(push_object);
|
||||
}
|
||||
if (fast_object) {
|
||||
- PHINode *phi = builder()->CreatePHI(SharkType::oop_type(), "object");
|
||||
+ PHINode *phi = builder()->CreatePHI(SharkType::oop_type(), 0, "object");
|
||||
phi->addIncoming(fast_object, got_fast);
|
||||
phi->addIncoming(slow_object, got_slow);
|
||||
object = phi;
|
||||
Index: icedtea6-shark-llvm-3.0/openjdk/hotspot/src/share/vm/shark/sharkValue.cpp
|
||||
===================================================================
|
||||
--- openjdk/hotspot/src/share/vm/shark/sharkValue.cpp 2011-07-05 20:31:05.000000000 +0200
|
||||
+++ openjdk/hotspot/src/share/vm/shark/sharkValue.cpp 2011-08-31 11:33:11.204992936 +0200
|
||||
@@ -233,7 +233,7 @@
|
||||
assert(type() == other->type(), "should be");
|
||||
assert(zero_checked() == other->zero_checked(), "should be");
|
||||
|
||||
- PHINode *phi = builder->CreatePHI(SharkType::to_stackType(type()), name);
|
||||
+ PHINode *phi = builder->CreatePHI(SharkType::to_stackType(type()), 0, name);
|
||||
phi->addIncoming(this->generic_value(), this_block);
|
||||
phi->addIncoming(other->generic_value(), other_block);
|
||||
return SharkValue::create_generic(type(), phi, zero_checked());
|
38
dev-java/icedtea/files/3-sharkllvm30-MCJIT-v3.patch
Normal file
38
dev-java/icedtea/files/3-sharkllvm30-MCJIT-v3.patch
Normal file
@ -0,0 +1,38 @@
|
||||
Taken from:
|
||||
http://mail.openjdk.java.net/pipermail/zero-dev/2011-August/000399.html
|
||||
|
||||
Index: icedtea6-shark-llvm-3.0/openjdk/hotspot/src/share/vm/shark/sharkCompiler.cpp
|
||||
===================================================================
|
||||
--- openjdk/hotspot/src/share/vm/shark/sharkCompiler.cpp 2011-08-31 11:39:35.630899283 +0200
|
||||
+++ openjdk/hotspot/src/share/vm/shark/sharkCompiler.cpp 2011-08-31 16:10:00.459354097 +0200
|
||||
@@ -72,6 +72,9 @@
|
||||
// Initialize the native target
|
||||
InitializeNativeTarget();
|
||||
|
||||
+ // MCJIT require a native AsmPrinter
|
||||
+ InitializeNativeTargetAsmPrinter();
|
||||
+
|
||||
// Create the two contexts which we'll use
|
||||
_normal_context = new SharkContext("normal");
|
||||
_native_context = new SharkContext("native");
|
||||
@@ -113,6 +116,7 @@
|
||||
builder.setJITMemoryManager(memory_manager());
|
||||
builder.setEngineKind(EngineKind::JIT);
|
||||
builder.setErrorStr(&ErrorMsg);
|
||||
+ builder.setUseMCJIT(true);
|
||||
_execution_engine = builder.create();
|
||||
|
||||
if (!execution_engine()) {
|
||||
Index: icedtea6-shark-llvm-3.0/openjdk/hotspot/src/share/vm/shark/llvmHeaders.hpp
|
||||
===================================================================
|
||||
--- openjdk/hotspot/src/share/vm/shark/llvmHeaders.hpp 2011-08-31 14:40:04.392596214 +0200
|
||||
+++ openjdk/hotspot/src/share/vm/shark/llvmHeaders.hpp 2011-08-31 14:41:27.569008721 +0200
|
||||
@@ -60,7 +60,7 @@
|
||||
#include <llvm/ExecutionEngine/JITMemoryManager.h>
|
||||
#include <llvm/Support/CommandLine.h>
|
||||
#if SHARK_LLVM_VERSION >= 27
|
||||
-#include <llvm/ExecutionEngine/JIT.h>
|
||||
+#include <llvm/ExecutionEngine/MCJIT.h>
|
||||
#include <llvm/ADT/StringMap.h>
|
||||
#include <llvm/Support/Debug.h>
|
||||
#if SHARK_LLVM_VERSION >= 29
|
15
dev-java/icedtea/files/disable_werror.patch
Normal file
15
dev-java/icedtea/files/disable_werror.patch
Normal file
@ -0,0 +1,15 @@
|
||||
Author: Ralph Sennhauser <sera@gentoo.org>
|
||||
|
||||
Disables -Werror so shark builds with llvm-3.0 on amd64
|
||||
|
||||
--- openjdk/hotspot/make/linux/makefiles/gcc.make 2011-12-12 09:38:55.995256804 +0100
|
||||
+++ openjdk/hotspot/make/linux/makefiles/gcc.make 2011-12-12 10:26:07.670560007 +0100
|
||||
@@ -123,7 +123,7 @@
|
||||
endif
|
||||
|
||||
# Compiler warnings are treated as errors
|
||||
-WARNINGS_ARE_ERRORS = -Werror
|
||||
+WARNINGS_ARE_ERRORS =
|
||||
|
||||
# Except for a few acceptable ones
|
||||
# Since GCC 4.3, -Wconversion has changed its meanings to warn these implicit
|
385
dev-java/icedtea/files/fontconfig.Gentoo.properties.src
Normal file
385
dev-java/icedtea/files/fontconfig.Gentoo.properties.src
Normal file
@ -0,0 +1,385 @@
|
||||
#
|
||||
#
|
||||
# Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License version 2 only, as
|
||||
# published by the Free Software Foundation. Oracle designates this
|
||||
# particular file as subject to the "Classpath" exception as provided
|
||||
# by Oracle in the LICENSE file that accompanied this code.
|
||||
#
|
||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# version 2 for more details (a copy is included in the LICENSE file that
|
||||
# accompanied this code).
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License version
|
||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
# or visit www.oracle.com if you need additional information or have any
|
||||
# questions.
|
||||
#
|
||||
|
||||
# Version
|
||||
|
||||
version=1
|
||||
|
||||
# Component Font Mappings
|
||||
|
||||
dialog.plain.latin-1=DejaVu Sans
|
||||
dialog.plain.japanese-x0208=Sazanami Gothic
|
||||
dialog.plain.korean=Baekmuk Gulim
|
||||
dialog.plain.chinese-big5=AR PL ShanHeiSun Uni
|
||||
dialog.plain.chinese-gb18030=AR PL ShanHeiSun Uni
|
||||
dialog.plain.bengali=Lohit Bengali
|
||||
dialog.plain.gujarati=Lohit Gujarati
|
||||
dialog.plain.hindi=Lohit Hindi
|
||||
dialog.plain.malayalam=Lohit Malayalam
|
||||
dialog.plain.oriya=Lohit Oriya
|
||||
dialog.plain.punjabi=Lohit Punjabi
|
||||
dialog.plain.tamil=Lohit Tamil
|
||||
dialog.plain.telugu=Lohit Telugu
|
||||
dialog.plain.sinhala=LKLUG
|
||||
|
||||
dialog.bold.latin-1=DejaVu Sans Bold
|
||||
dialog.bold.japanese-x0208=Sazanami Gothic
|
||||
dialog.bold.korean=Baekmuk Gulim
|
||||
dialog.bold.chinese-big5=AR PL ShanHeiSun Uni
|
||||
dialog.bold.chinese-gb18030=AR PL ShanHeiSun Uni
|
||||
dialog.bold.bengali=Lohit Bengali
|
||||
dialog.bold.gujarati=Lohit Gujarati
|
||||
dialog.bold.hindi=Lohit Hindi
|
||||
dialog.bold.malayalam=Lohit Malayalam
|
||||
dialog.bold.oriya=Lohit Oriya
|
||||
dialog.bold.punjabi=Lohit Punjabi
|
||||
dialog.bold.tamil=Lohit Tamil
|
||||
dialog.bold.telugu=Lohit Telugu
|
||||
dialog.bold.sinhala=LKLUG
|
||||
|
||||
dialog.italic.latin-1=DejaVu Sans Oblique
|
||||
dialog.italic.japanese-x0208=Sazanami Gothic
|
||||
dialog.italic.korean=Baekmuk Gulim
|
||||
dialog.italic.chinese-big5=AR PL ShanHeiSun Uni
|
||||
dialog.italic.chinese-gb18030=AR PL ShanHeiSun Uni
|
||||
dialog.italic.bengali=Lohit Bengali
|
||||
dialog.italic.gujarati=Lohit Gujarati
|
||||
dialog.italic.hindi=Lohit Hindi
|
||||
dialog.italic.malayalam=Lohit Malayalam
|
||||
dialog.italic.oriya=Lohit Oriya
|
||||
dialog.italic.punjabi=Lohit Punjabi
|
||||
dialog.italic.tamil=Lohit Tamil
|
||||
dialog.italic.telugu=Lohit Telugu
|
||||
dialog.italic.sinhala=LKLUG
|
||||
|
||||
dialog.bolditalic.latin-1=DejaVu Sans Bold Oblique
|
||||
dialog.bolditalic.japanese-x0208=Sazanami Gothic
|
||||
dialog.bolditalic.korean=Baekmuk Gulim
|
||||
dialog.bolditalic.chinese-big5=AR PL ShanHeiSun Uni
|
||||
dialog.bolditalic.chinese-gb18030=AR PL ShanHeiSun Uni
|
||||
dialog.bolditalic.bengali=Lohit Bengali
|
||||
dialog.bolditalic.gujarati=Lohit Gujarati
|
||||
dialog.bolditalic.hindi=Lohit Hindi
|
||||
dialog.bolditalic.malayalam=Lohit Malayalam
|
||||
dialog.bolditalic.oriya=Lohit Oriya
|
||||
dialog.bolditalic.punjabi=Lohit Punjabi
|
||||
dialog.bolditalic.tamil=Lohit Tamil
|
||||
dialog.bolditalic.telugu=Lohit Telugu
|
||||
dialog.bolditalic.sinhala=LKLUG
|
||||
|
||||
sansserif.plain.latin-1=DejaVu Sans
|
||||
sansserif.plain.japanese-x0208=Sazanami Gothic
|
||||
sansserif.plain.korean=Baekmuk Gulim
|
||||
sansserif.plain.chinese-big5=AR PL ShanHeiSun Uni
|
||||
sansserif.plain.chinese-gb18030=AR PL ShanHeiSun Uni
|
||||
sansserif.plain.bengali=Lohit Bengali
|
||||
sansserif.plain.gujarati=Lohit Gujarati
|
||||
sansserif.plain.hindi=Lohit Hindi
|
||||
sansserif.plain.malayalam=Lohit Malayalam
|
||||
sansserif.plain.oriya=Lohit Oriya
|
||||
sansserif.plain.punjabi=Lohit Punjabi
|
||||
sansserif.plain.tamil=Lohit Tamil
|
||||
sansserif.plain.telugu=Lohit Telugu
|
||||
sansserif.plain.sinhala=LKLUG
|
||||
|
||||
sansserif.bold.latin-1=DejaVu Sans Bold
|
||||
sansserif.bold.japanese-x0208=Sazanami Gothic
|
||||
sansserif.bold.korean=Baekmuk Gulim
|
||||
sansserif.bold.chinese-big5=AR PL ShanHeiSun Uni
|
||||
sansserif.bold.chinese-gb18030=AR PL ShanHeiSun Uni
|
||||
sansserif.bold.bengali=Lohit Bengali
|
||||
sansserif.bold.gujarati=Lohit Gujarati
|
||||
sansserif.bold.hindi=Lohit Hindi
|
||||
sansserif.bold.malayalam=Lohit Malayalam
|
||||
sansserif.bold.oriya=Lohit Oriya
|
||||
sansserif.bold.punjabi=Lohit Punjabi
|
||||
sansserif.bold.tamil=Lohit Tamil
|
||||
sansserif.bold.telugu=Lohit Telugu
|
||||
sansserif.bold.sinhala=LKLUG
|
||||
|
||||
sansserif.italic.latin-1=DejaVu Sans Oblique
|
||||
sansserif.italic.japanese-x0208=Sazanami Gothic
|
||||
sansserif.italic.korean=Baekmuk Gulim
|
||||
sansserif.italic.chinese-big5=AR PL ShanHeiSun Uni
|
||||
sansserif.italic.chinese-gb18030=AR PL ShanHeiSun Uni
|
||||
sansserif.italic.bengali=Lohit Bengali
|
||||
sansserif.italic.gujarati=Lohit Gujarati
|
||||
sansserif.italic.hindi=Lohit Hindi
|
||||
sansserif.italic.malayalam=Lohit Malayalam
|
||||
sansserif.italic.oriya=Lohit Oriya
|
||||
sansserif.italic.punjabi=Lohit Punjabi
|
||||
sansserif.italic.tamil=Lohit Tamil
|
||||
sansserif.italic.telugu=Lohit Telugu
|
||||
sansserif.italic.sinhala=LKLUG
|
||||
|
||||
sansserif.bolditalic.latin-1=DejaVu Sans Bold Oblique
|
||||
sansserif.bolditalic.japanese-x0208=Sazanami Gothic
|
||||
sansserif.bolditalic.korean=Baekmuk Gulim
|
||||
sansserif.bolditalic.chinese-big5=AR PL ShanHeiSun Uni
|
||||
sansserif.bolditalic.chinese-gb18030=AR PL ShanHeiSun Uni
|
||||
sansserif.bolditalic.bengali=Lohit Bengali
|
||||
sansserif.bolditalic.gujarati=Lohit Gujarati
|
||||
sansserif.bolditalic.hindi=Lohit Hindi
|
||||
sansserif.bolditalic.malayalam=Lohit Malayalam
|
||||
sansserif.bolditalic.oriya=Lohit Oriya
|
||||
sansserif.bolditalic.punjabi=Lohit Punjabi
|
||||
sansserif.bolditalic.tamil=Lohit Tamil
|
||||
sansserif.bolditalic.telugu=Lohit Telugu
|
||||
sansserif.bolditalic.sinhala=LKLUG
|
||||
|
||||
serif.plain.latin-1=DejaVu Serif
|
||||
serif.plain.japanese-x0208=Sazanami Mincho
|
||||
serif.plain.korean=Baekmuk Batang
|
||||
serif.plain.chinese-big5=AR PL ZenKai Uni
|
||||
serif.plain.chinese-gb18030=AR PL ZenKai Uni
|
||||
serif.plain.bengali=Lohit Bengali
|
||||
serif.plain.gujarati=Lohit Gujarati
|
||||
serif.plain.hindi=Lohit Hindi
|
||||
serif.plain.malayalam=Lohit Malayalam
|
||||
serif.plain.oriya=Lohit Oriya
|
||||
serif.plain.punjabi=Lohit Punjabi
|
||||
serif.plain.tamil=Lohit Tamil
|
||||
serif.plain.telugu=Lohit Telugu
|
||||
serif.plain.sinhala=LKLUG
|
||||
|
||||
serif.bold.latin-1=DejaVu Serif Bold
|
||||
serif.bold.japanese-x0208=Sazanami Mincho
|
||||
serif.bold.korean=Baekmuk Batang
|
||||
serif.bold.chinese-big5=AR PL ZenKai Uni
|
||||
serif.bold.chinese-gb18030=AR PL ZenKai Uni
|
||||
serif.bold.bengali=Lohit Bengali
|
||||
serif.bold.gujarati=Lohit Gujarati
|
||||
serif.bold.hindi=Lohit Hindi
|
||||
serif.bold.malayalam=Lohit Malayalam
|
||||
serif.bold.oriya=Lohit Oriya
|
||||
serif.bold.punjabi=Lohit Punjabi
|
||||
serif.bold.tamil=Lohit Tamil
|
||||
serif.bold.telugu=Lohit Telugu
|
||||
serif.bold.sinhala=LKLUG
|
||||
|
||||
serif.italic.latin-1=DejaVu Serif Oblique
|
||||
serif.italic.japanese-x0208=Sazanami Mincho
|
||||
serif.italic.korean=Baekmuk Batang
|
||||
serif.italic.chinese-big5=AR PL ZenKai Uni
|
||||
serif.italic.chinese-gb18030=AR PL ZenKai Uni
|
||||
serif.italic.bengali=Lohit Bengali
|
||||
serif.italic.gujarati=Lohit Gujarati
|
||||
serif.italic.hindi=Lohit Hindi
|
||||
serif.italic.malayalam=Lohit Malayalam
|
||||
serif.italic.oriya=Lohit Oriya
|
||||
serif.italic.punjabi=Lohit Punjabi
|
||||
serif.italic.tamil=Lohit Tamil
|
||||
serif.italic.telugu=Lohit Telugu
|
||||
serif.italic.sinhala=LKLUG
|
||||
|
||||
serif.bolditalic.latin-1=DejaVu Serif Bold Oblique
|
||||
serif.bolditalic.japanese-x0208=Sazanami Mincho
|
||||
serif.bolditalic.korean=Baekmuk Batang
|
||||
serif.bolditalic.chinese-big5=AR PL ZenKai Uni
|
||||
serif.bolditalic.chinese-gb18030=AR PL ZenKai Uni
|
||||
serif.bolditalic.bengali=Lohit Bengali
|
||||
serif.bolditalic.gujarati=Lohit Gujarati
|
||||
serif.bolditalic.hindi=Lohit Hindi
|
||||
serif.bolditalic.malayalam=Lohit Malayalam
|
||||
serif.bolditalic.oriya=Lohit Oriya
|
||||
serif.bolditalic.punjabi=Lohit Punjabi
|
||||
serif.bolditalic.tamil=Lohit Tamil
|
||||
serif.bolditalic.telugu=Lohit Telugu
|
||||
serif.bolditalic.sinhala=LKLUG
|
||||
|
||||
monospaced.plain.latin-1=DejaVu Sans Mono
|
||||
monospaced.plain.japanese-x0208=Sazanami Gothic
|
||||
monospaced.plain.korean=Baekmuk Gulim
|
||||
monospaced.plain.chinese-big5=AR PL ShanHeiSun Uni
|
||||
monospaced.plain.chinese-gb18030=AR PL ShanHeiSun Uni
|
||||
monospaced.plain.bengali=Lohit Bengali
|
||||
monospaced.plain.gujarati=Lohit Gujarati
|
||||
monospaced.plain.hindi=Lohit Hindi
|
||||
monospaced.plain.malayalam=Lohit Malayalam
|
||||
monospaced.plain.oriya=Lohit Oriya
|
||||
monospaced.plain.punjabi=Lohit Punjabi
|
||||
monospaced.plain.tamil=Lohit Tamil
|
||||
monospaced.plain.telugu=Lohit Telugu
|
||||
monospaced.plain.sinhala=LKLUG
|
||||
|
||||
monospaced.bold.latin-1=DejaVu Sans Mono Bold
|
||||
monospaced.bold.japanese-x0208=Sazanami Gothic
|
||||
monospaced.bold.korean=Baekmuk Gulim
|
||||
monospaced.bold.chinese-big5=AR PL ShanHeiSun Uni
|
||||
monospaced.bold.chinese-gb18030=AR PL ShanHeiSun Uni
|
||||
monospaced.bold.bengali=Lohit Bengali
|
||||
monospaced.bold.gujarati=Lohit Gujarati
|
||||
monospaced.bold.hindi=Lohit Hindi
|
||||
monospaced.bold.malayalam=Lohit Malayalam
|
||||
monospaced.bold.oriya=Lohit Oriya
|
||||
monospaced.bold.punjabi=Lohit Punjabi
|
||||
monospaced.bold.tamil=Lohit Tamil
|
||||
monospaced.bold.telugu=Lohit Telugu
|
||||
monospaced.bold.sinhala=LKLUG
|
||||
|
||||
monospaced.italic.latin-1=DejaVu Sans Mono Oblique
|
||||
monospaced.italic.japanese-x0208=Sazanami Gothic
|
||||
monospaced.italic.korean=Baekmuk Gulim
|
||||
monospaced.italic.chinese-big5=AR PL ShanHeiSun Uni
|
||||
monospaced.italic.chinese-gb18030=AR PL ShanHeiSun Uni
|
||||
monospaced.italic.bengali=Lohit Bengali
|
||||
monospaced.italic.gujarati=Lohit Gujarati
|
||||
monospaced.italic.hindi=Lohit Hindi
|
||||
monospaced.italic.malayalam=Lohit Malayalam
|
||||
monospaced.italic.oriya=Lohit Oriya
|
||||
monospaced.italic.punjabi=Lohit Punjabi
|
||||
monospaced.italic.tamil=Lohit Tamil
|
||||
monospaced.italic.telugu=Lohit Telugu
|
||||
monospaced.italic.sinhala=LKLUG
|
||||
|
||||
monospaced.bolditalic.latin-1=DejaVu Sans Mono Bold Oblique
|
||||
monospaced.bolditalic.japanese-x0208=Sazanami Gothic
|
||||
monospaced.bolditalic.korean=Baekmuk Gulim
|
||||
monospaced.bolditalic.chinese-big5=AR PL ShanHeiSun Uni
|
||||
monospaced.bolditalic.chinese-gb18030=AR PL ShanHeiSun Uni
|
||||
monospaced.bolditalic.bengali=Lohit Bengali
|
||||
monospaced.bolditalic.gujarati=Lohit Gujarati
|
||||
monospaced.bolditalic.hindi=Lohit Hindi
|
||||
monospaced.bolditalic.malayalam=Lohit Malayalam
|
||||
monospaced.bolditalic.oriya=Lohit Oriya
|
||||
monospaced.bolditalic.punjabi=Lohit Punjabi
|
||||
monospaced.bolditalic.tamil=Lohit Tamil
|
||||
monospaced.bolditalic.telugu=Lohit Telugu
|
||||
monospaced.bolditalic.sinhala=LKLUG
|
||||
|
||||
dialoginput.plain.latin-1=DejaVu Sans Mono
|
||||
dialoginput.plain.japanese-x0208=Sazanami Gothic
|
||||
dialoginput.plain.korean=Baekmuk Gulim
|
||||
dialoginput.plain.chinese-big5=AR PL ShanHeiSun Uni
|
||||
dialoginput.plain.chinese-gb18030=AR PL ShanHeiSun Uni
|
||||
dialoginput.plain.bengali=Lohit Bengali
|
||||
dialoginput.plain.gujarati=Lohit Gujarati
|
||||
dialoginput.plain.hindi=Lohit Hindi
|
||||
dialoginput.plain.malayalam=Lohit Malayalam
|
||||
dialoginput.plain.oriya=Lohit Oriya
|
||||
dialoginput.plain.punjabi=Lohit Punjabi
|
||||
dialoginput.plain.tamil=Lohit Tamil
|
||||
dialoginput.plain.telugu=Lohit Telugu
|
||||
dialoginput.plain.sinhala=LKLUG
|
||||
|
||||
dialoginput.bold.latin-1=DejaVu Sans Mono Bold
|
||||
dialoginput.bold.japanese-x0208=Sazanami Gothic
|
||||
dialoginput.bold.korean=Baekmuk Gulim
|
||||
dialoginput.bold.chinese-big5=AR PL ShanHeiSun Uni
|
||||
dialoginput.bold.chinese-gb18030=AR PL ShanHeiSun Uni
|
||||
dialoginput.bold.bengali=Lohit Bengali
|
||||
dialoginput.bold.gujarati=Lohit Gujarati
|
||||
dialoginput.bold.hindi=Lohit Hindi
|
||||
dialoginput.bold.malayalam=Lohit Malayalam
|
||||
dialoginput.bold.oriya=Lohit Oriya
|
||||
dialoginput.bold.punjabi=Lohit Punjabi
|
||||
dialoginput.bold.tamil=Lohit Tamil
|
||||
dialoginput.bold.telugu=Lohit Telugu
|
||||
dialoginput.bold.sinhala=LKLUG
|
||||
|
||||
dialoginput.italic.latin-1=DejaVu Sans Mono Oblique
|
||||
dialoginput.italic.japanese-x0208=Sazanami Gothic
|
||||
dialoginput.italic.korean=Baekmuk Gulim
|
||||
dialoginput.italic.chinese-big5=AR PL ShanHeiSun Uni
|
||||
dialoginput.italic.chinese-gb18030=AR PL ShanHeiSun Uni
|
||||
dialoginput.italic.bengali=Lohit Bengali
|
||||
dialoginput.italic.gujarati=Lohit Gujarati
|
||||
dialoginput.italic.hindi=Lohit Hindi
|
||||
dialoginput.italic.malayalam=Lohit Malayalam
|
||||
dialoginput.italic.oriya=Lohit Oriya
|
||||
dialoginput.italic.punjabi=Lohit Punjabi
|
||||
dialoginput.italic.tamil=Lohit Tamil
|
||||
dialoginput.italic.telugu=Lohit Telugu
|
||||
dialoginput.italic.sinhala=LKLUG
|
||||
|
||||
dialoginput.bolditalic.latin-1=DejaVu Sans Mono Bold Oblique
|
||||
dialoginput.bolditalic.japanese-x0208=Sazanami Gothic
|
||||
dialoginput.bolditalic.korean=Baekmuk Gulim
|
||||
dialoginput.bolditalic.chinese-big5=AR PL ShanHeiSun Uni
|
||||
dialoginput.bolditalic.chinese-gb18030=AR PL ShanHeiSun Uni
|
||||
dialoginput.bolditalic.bengali=Lohit Bengali
|
||||
dialoginput.bolditalic.gujarati=Lohit Gujarati
|
||||
dialoginput.bolditalic.hindi=Lohit Hindi
|
||||
dialoginput.bolditalic.malayalam=Lohit Malayalam
|
||||
dialoginput.bolditalic.oriya=Lohit Oriya
|
||||
dialoginput.bolditalic.punjabi=Lohit Punjabi
|
||||
dialoginput.bolditalic.tamil=Lohit Tamil
|
||||
dialoginput.bolditalic.telugu=Lohit Telugu
|
||||
dialoginput.bolditalic.sinhala=LKLUG
|
||||
|
||||
# Search Sequences
|
||||
|
||||
sequence.allfonts=latin-1
|
||||
sequence.allfonts.Big5=chinese-big5,latin-1
|
||||
sequence.allfonts.x-euc-jp-linux=japanese-x0208,latin-1
|
||||
sequence.allfonts.EUC-KR=korean,latin-1
|
||||
sequence.allfonts.GB18030=chinese-gb18030,latin-1
|
||||
sequence.fallback=chinese-big5,chinese-gb18030,japanese-x0208,korean,bengali,gujarati,hindi,oriya,punjabi,malayalam,tamil,telugu,sinhala
|
||||
|
||||
# Font File Names
|
||||
|
||||
# media-fonts/dejavu
|
||||
filename.DejaVu_Sans=@GENTOO_PORTAGE_EPREFIX@/usr/share/fonts/dejavu/DejaVuSans.ttf
|
||||
filename.DejaVu_Sans_Bold=@GENTOO_PORTAGE_EPREFIX@/usr/share/fonts/dejavu/DejaVuSans-Bold.ttf
|
||||
filename.DejaVu_Sans_Oblique=@GENTOO_PORTAGE_EPREFIX@/usr/share/fonts/dejavu/DejaVuSans-Oblique.ttf
|
||||
filename.DejaVu_Sans_Bold_Oblique=@GENTOO_PORTAGE_EPREFIX@/usr/share/fonts/dejavu/DejaVuSans-BoldOblique.ttf
|
||||
|
||||
filename.DejaVu_Sans_Mono=@GENTOO_PORTAGE_EPREFIX@/usr/share/fonts/dejavu/DejaVuSansMono.ttf
|
||||
filename.DejaVu_Sans_Mono_Bold=@GENTOO_PORTAGE_EPREFIX@/usr/share/fonts/dejavu/DejaVuSansMono-Bold.ttf
|
||||
filename.DejaVu_Sans_Mono_Oblique=@GENTOO_PORTAGE_EPREFIX@/usr/share/fonts/dejavu/DejaVuSansMono-Oblique.ttf
|
||||
filename.DejaVu_Sans_Mono_Bold_Oblique=@GENTOO_PORTAGE_EPREFIX@/usr/share/fonts/dejavu/DejaVuSansMono-BoldOblique.ttf
|
||||
|
||||
filename.DejaVu_Serif=@GENTOO_PORTAGE_EPREFIX@/usr/share/fonts/dejavu/DejaVuSerif.ttf
|
||||
filename.DejaVu_Serif_Bold=@GENTOO_PORTAGE_EPREFIX@/usr/share/fonts/dejavu/DejaVuSerif-Bold.ttf
|
||||
filename.DejaVu_Serif_Oblique=@GENTOO_PORTAGE_EPREFIX@/usr/share/fonts/dejavu/DejaVuSerif-Oblique.ttf
|
||||
filename.DejaVu_Serif_Bold_Oblique=@GENTOO_PORTAGE_EPREFIX@/usr/share/fonts/dejavu/DejaVuSerif-BoldOblique.ttf
|
||||
|
||||
# media-fonts/sazanami
|
||||
filename.Sazanami_Gothic=@GENTOO_PORTAGE_EPREFIX@/usr/share/fonts/sazanami/sazanami-gothic.ttf
|
||||
filename.Sazanami_Mincho=@GENTOO_PORTAGE_EPREFIX@/usr/share/fonts/sazanami/sazanami-mincho.ttf
|
||||
|
||||
# media-fonts/arphicfonts
|
||||
filename.AR_PL_ShanHeiSun_Uni=@GENTOO_PORTAGE_EPREFIX@/usr/share/fonts/uming.ttc
|
||||
filename.AR_PL_ZenKai_Uni=@GENTOO_PORTAGE_EPREFIX@/usr/share/fonts/ukai.ttc
|
||||
|
||||
# media-fonts/baekmuk-fonts
|
||||
filename.Baekmuk_Gulim=@GENTOO_PORTAGE_EPREFIX@/usr/share/fonts/baekmuk-fonts/gulim.ttf
|
||||
filename.Baekmuk_Batang=@GENTOO_PORTAGE_EPREFIX@/usr/share/fonts/baekmuk-fonts/batang.ttf
|
||||
|
||||
# media-fonts/lohit-fonts
|
||||
filename.Lohit_Bengali=@GENTOO_PORTAGE_EPREFIX@/usr/share/fonts/indic/lohit_bn.ttf
|
||||
filename.Lohit_Gujarati=@GENTOO_PORTAGE_EPREFIX@/usr/share/fonts/indic/lohit_gu.ttf
|
||||
filename.Lohit_Hindi=@GENTOO_PORTAGE_EPREFIX@/usr/share/fonts/indic/lohit_hi.ttf
|
||||
filename.Lohit_Kannda=@GENTOO_PORTAGE_EPREFIX@/usr/share/fonts/indic/lohit_kn.ttf
|
||||
filename.Lohit_Malayalam=@GENTOO_PORTAGE_EPREFIX@/usr/share/fonts/indic/lohit_ml.ttf
|
||||
filename.Lohit_Oriya=@GENTOO_PORTAGE_EPREFIX@/usr/share/fonts/indic/lohit_or.ttf
|
||||
filename.Lohit_Punjabi=@GENTOO_PORTAGE_EPREFIX@/usr/share/fonts/indic/lohit_pa.ttf
|
||||
filename.Lohit_Tamil=@GENTOO_PORTAGE_EPREFIX@/usr/share/fonts/indic/lohit_ta.ttf
|
||||
filename.Lohit_Telugu=@GENTOO_PORTAGE_EPREFIX@/usr/share/fonts/indic/lohit_te.ttf
|
||||
|
||||
# media-fonts/lklug
|
||||
filename.LKLUG=@GENTOO_PORTAGE_EPREFIX@/usr/share/fonts/lklug/lklug.ttf
|
||||
|
358
dev-java/icedtea/files/generate-cacerts.pl
Normal file
358
dev-java/icedtea/files/generate-cacerts.pl
Normal file
@ -0,0 +1,358 @@
|
||||
#!/usr/bin/perl
|
||||
|
||||
# Copyright (C) 2007, 2008 Red Hat, Inc.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
|
||||
# generate-cacerts.pl generates a JKS keystore named 'cacerts' from
|
||||
# OpenSSL's certificate bundle using OpenJDK's keytool.
|
||||
|
||||
# First extract each of OpenSSL's bundled certificates into its own
|
||||
# aliased filename.
|
||||
|
||||
# Downloaded from http://cvs.fedoraproject.org/viewvc/rpms/ca-certificates/F-12/generate-cacerts.pl?revision=1.2
|
||||
# Check and prevention of duplicate aliases added by Vlastimil Babka <caster@gentoo.org>
|
||||
|
||||
$file = $ARGV[1];
|
||||
open(CERTS, $file);
|
||||
@certs = <CERTS>;
|
||||
close(CERTS);
|
||||
|
||||
$pem_file_count = 0;
|
||||
$in_cert_block = 0;
|
||||
$write_current_cert = 1;
|
||||
foreach $cert (@certs)
|
||||
{
|
||||
if ($cert =~ /Issuer: /)
|
||||
{
|
||||
$_ = $cert;
|
||||
if ($cert =~ /personal-freemail/)
|
||||
{
|
||||
$cert_alias = "thawtepersonalfreemailca";
|
||||
}
|
||||
elsif ($cert =~ /personal-basic/)
|
||||
{
|
||||
$cert_alias = "thawtepersonalbasicca";
|
||||
}
|
||||
elsif ($cert =~ /personal-premium/)
|
||||
{
|
||||
$cert_alias = "thawtepersonalpremiumca";
|
||||
}
|
||||
elsif ($cert =~ /server-certs/)
|
||||
{
|
||||
$cert_alias = "thawteserverca";
|
||||
}
|
||||
elsif ($cert =~ /premium-server/)
|
||||
{
|
||||
$cert_alias = "thawtepremiumserverca";
|
||||
}
|
||||
elsif ($cert =~ /Class 1 Public Primary Certification Authority$/)
|
||||
{
|
||||
$cert_alias = "verisignclass1ca";
|
||||
}
|
||||
elsif ($cert =~ /Class 1 Public Primary Certification Authority - G2/)
|
||||
{
|
||||
$cert_alias = "verisignclass1g2ca";
|
||||
}
|
||||
elsif ($cert =~
|
||||
/VeriSign Class 1 Public Primary Certification Authority - G3/)
|
||||
{
|
||||
$cert_alias = "verisignclass1g3ca";
|
||||
}
|
||||
elsif ($cert =~ /Class 2 Public Primary Certification Authority$/)
|
||||
{
|
||||
$cert_alias = "verisignclass2ca";
|
||||
}
|
||||
elsif ($cert =~ /Class 2 Public Primary Certification Authority - G2/)
|
||||
{
|
||||
$cert_alias = "verisignclass2g2ca";
|
||||
}
|
||||
elsif ($cert =~
|
||||
/VeriSign Class 2 Public Primary Certification Authority - G3/)
|
||||
{
|
||||
$cert_alias = "verisignclass2g3ca";
|
||||
}
|
||||
elsif ($cert =~ /Class 3 Public Primary Certification Authority$/)
|
||||
{
|
||||
$cert_alias = "verisignclass3ca";
|
||||
}
|
||||
# Version 1 of Class 3 Public Primary Certification Authority
|
||||
# - G2 is added. Version 3 is excluded. See below.
|
||||
elsif ($cert =~
|
||||
/VeriSign Class 3 Public Primary Certification Authority - G3/)
|
||||
{
|
||||
$cert_alias = "verisignclass3g3ca";
|
||||
}
|
||||
elsif ($cert =~
|
||||
/RSA Data Security.*Secure Server Certification Authority/)
|
||||
{
|
||||
$cert_alias = "verisignserverca";
|
||||
}
|
||||
elsif ($cert =~ /GTE CyberTrust Global Root/)
|
||||
{
|
||||
$cert_alias = "gtecybertrustglobalca";
|
||||
}
|
||||
elsif ($cert =~ /Baltimore CyberTrust Root/)
|
||||
{
|
||||
$cert_alias = "baltimorecybertrustca";
|
||||
}
|
||||
elsif ($cert =~ /www.entrust.net\/Client_CA_Info\/CPS/)
|
||||
{
|
||||
$cert_alias = "entrustclientca";
|
||||
}
|
||||
elsif ($cert =~ /www.entrust.net\/GCCA_CPS/)
|
||||
{
|
||||
$cert_alias = "entrustglobalclientca";
|
||||
}
|
||||
elsif ($cert =~ /www.entrust.net\/CPS_2048/)
|
||||
{
|
||||
$cert_alias = "entrust2048ca";
|
||||
}
|
||||
elsif ($cert =~ /www.entrust.net\/CPS /)
|
||||
{
|
||||
$cert_alias = "entrustsslca";
|
||||
}
|
||||
elsif ($cert =~ /www.entrust.net\/SSL_CPS/)
|
||||
{
|
||||
$cert_alias = "entrustgsslca";
|
||||
}
|
||||
elsif ($cert =~ /The Go Daddy Group/)
|
||||
{
|
||||
$cert_alias = "godaddyclass2ca";
|
||||
}
|
||||
elsif ($cert =~ /Starfield Class 2 Certification Authority/)
|
||||
{
|
||||
$cert_alias = "starfieldclass2ca";
|
||||
}
|
||||
elsif ($cert =~ /ValiCert Class 2 Policy Validation Authority/)
|
||||
{
|
||||
$cert_alias = "valicertclass2ca";
|
||||
}
|
||||
elsif ($cert =~ /GeoTrust Global CA$/)
|
||||
{
|
||||
$cert_alias = "geotrustglobalca";
|
||||
}
|
||||
elsif ($cert =~ /Equifax Secure Certificate Authority/)
|
||||
{
|
||||
$cert_alias = "equifaxsecureca";
|
||||
}
|
||||
elsif ($cert =~ /Equifax Secure eBusiness CA-1/)
|
||||
{
|
||||
$cert_alias = "equifaxsecureebusinessca1";
|
||||
}
|
||||
elsif ($cert =~ /Equifax Secure eBusiness CA-2/)
|
||||
{
|
||||
$cert_alias = "equifaxsecureebusinessca2";
|
||||
}
|
||||
elsif ($cert =~ /Equifax Secure Global eBusiness CA-1/)
|
||||
{
|
||||
$cert_alias = "equifaxsecureglobalebusinessca1";
|
||||
}
|
||||
elsif ($cert =~ /Sonera Class1 CA/)
|
||||
{
|
||||
$cert_alias = "soneraclass1ca";
|
||||
}
|
||||
elsif ($cert =~ /Sonera Class2 CA/)
|
||||
{
|
||||
$cert_alias = "soneraclass2ca";
|
||||
}
|
||||
elsif ($cert =~ /AAA Certificate Services/)
|
||||
{
|
||||
$cert_alias = "comodoaaaca";
|
||||
}
|
||||
elsif ($cert =~ /AddTrust Class 1 CA Root/)
|
||||
{
|
||||
$cert_alias = "addtrustclass1ca";
|
||||
}
|
||||
elsif ($cert =~ /AddTrust External CA Root/)
|
||||
{
|
||||
$cert_alias = "addtrustexternalca";
|
||||
}
|
||||
elsif ($cert =~ /AddTrust Qualified CA Root/)
|
||||
{
|
||||
$cert_alias = "addtrustqualifiedca";
|
||||
}
|
||||
elsif ($cert =~ /UTN-USERFirst-Hardware/)
|
||||
{
|
||||
$cert_alias = "utnuserfirsthardwareca";
|
||||
}
|
||||
elsif ($cert =~ /UTN-USERFirst-Client Authentication and Email/)
|
||||
{
|
||||
$cert_alias = "utnuserfirstclientauthemailca";
|
||||
}
|
||||
elsif ($cert =~ /UTN - DATACorp SGC/)
|
||||
{
|
||||
$cert_alias = "utndatacorpsgcca";
|
||||
}
|
||||
elsif ($cert =~ /UTN-USERFirst-Object/)
|
||||
{
|
||||
$cert_alias = "utnuserfirstobjectca";
|
||||
}
|
||||
elsif ($cert =~ /America Online Root Certification Authority 1/)
|
||||
{
|
||||
$cert_alias = "aolrootca1";
|
||||
}
|
||||
elsif ($cert =~ /DigiCert Assured ID Root CA/)
|
||||
{
|
||||
$cert_alias = "digicertassuredidrootca";
|
||||
}
|
||||
elsif ($cert =~ /DigiCert Global Root CA/)
|
||||
{
|
||||
$cert_alias = "digicertglobalrootca";
|
||||
}
|
||||
elsif ($cert =~ /DigiCert High Assurance EV Root CA/)
|
||||
{
|
||||
$cert_alias = "digicerthighassuranceevrootca";
|
||||
}
|
||||
elsif ($cert =~ /GlobalSign Root CA$/)
|
||||
{
|
||||
$cert_alias = "globalsignca";
|
||||
}
|
||||
elsif ($cert =~ /GlobalSign Root CA - R2/)
|
||||
{
|
||||
$cert_alias = "globalsignr2ca";
|
||||
}
|
||||
elsif ($cert =~ /Elektronik.*Kas.*2005/)
|
||||
{
|
||||
$cert_alias = "extra-elektronikkas2005";
|
||||
}
|
||||
elsif ($cert =~ /Elektronik/)
|
||||
{
|
||||
$cert_alias = "extra-elektronik2005";
|
||||
}
|
||||
# Mozilla does not provide these certificates:
|
||||
# baltimorecodesigningca
|
||||
# gtecybertrust5ca
|
||||
# trustcenterclass2caii
|
||||
# trustcenterclass4caii
|
||||
# trustcenteruniversalcai
|
||||
else
|
||||
{
|
||||
# Generate an alias using the OU and CN attributes of the
|
||||
# Issuer field if both are present, otherwise use only the
|
||||
# CN attribute. The Issuer field must have either the OU
|
||||
# or the CN attribute.
|
||||
$_ = $cert;
|
||||
if ($cert =~ /OU=/)
|
||||
{
|
||||
s/Issuer:.*?OU=//;
|
||||
# Remove other occurrences of OU=.
|
||||
s/OU=.*CN=//;
|
||||
# Remove CN= if there were not other occurrences of OU=.
|
||||
s/CN=//;
|
||||
s/\/emailAddress.*//;
|
||||
s/Certificate Authority/ca/g;
|
||||
s/Certification Authority/ca/g;
|
||||
}
|
||||
elsif ($cert =~ /CN=/)
|
||||
{
|
||||
s/Issuer:.*CN=//;
|
||||
s/\/emailAddress.*//;
|
||||
s/Certificate Authority/ca/g;
|
||||
s/Certification Authority/ca/g;
|
||||
}
|
||||
s/\W//g;
|
||||
tr/A-Z/a-z/;
|
||||
$cert_alias = "extra-$_";
|
||||
|
||||
}
|
||||
while (-e "$cert_alias.pem")
|
||||
{
|
||||
$cert_alias = "$cert_alias" . "_";
|
||||
}
|
||||
}
|
||||
# When it attempts to parse:
|
||||
#
|
||||
# Class 3 Public Primary Certification Authority - G2, Version 3
|
||||
#
|
||||
# keytool says:
|
||||
#
|
||||
# #2: ObjectId: 1.3.6.1.5.5.7.1.1 Criticality=false
|
||||
# Unparseable AuthorityInfoAccess extension due to
|
||||
# java.io.IOException: Invalid encoding of URI
|
||||
#
|
||||
# If we do not exclude this file
|
||||
# openjdk/jdk/test/lib/security/cacerts/VerifyCACerts.java fails
|
||||
# on this cert, printing:
|
||||
#
|
||||
# Couldn't verify: java.security.SignatureException: Signature
|
||||
# does not match.
|
||||
#
|
||||
elsif ($cert =~
|
||||
/A6:0F:34:C8:62:6C:81:F6:8B:F7:7D:A9:F6:67:58:8A:90:3F:7D:36/)
|
||||
{
|
||||
$write_current_cert = 0;
|
||||
$pem_file_count--;
|
||||
}
|
||||
elsif ($cert eq "-----BEGIN CERTIFICATE-----\n")
|
||||
{
|
||||
if ($in_cert_block != 0)
|
||||
{
|
||||
die "$file is malformed.";
|
||||
}
|
||||
$in_cert_block = 1;
|
||||
if ($write_current_cert == 1)
|
||||
{
|
||||
$pem_file_count++;
|
||||
if (-e "$cert_alias.pem")
|
||||
{
|
||||
print "$cert_alias";
|
||||
die "already exists"
|
||||
}
|
||||
open(PEM, ">$cert_alias.pem");
|
||||
print PEM $cert;
|
||||
}
|
||||
}
|
||||
elsif ($cert eq "-----END CERTIFICATE-----\n")
|
||||
{
|
||||
$in_cert_block = 0;
|
||||
if ($write_current_cert == 1)
|
||||
{
|
||||
print PEM $cert;
|
||||
close(PEM);
|
||||
}
|
||||
$write_current_cert = 1
|
||||
}
|
||||
else
|
||||
{
|
||||
if ($in_cert_block == 1 && $write_current_cert == 1)
|
||||
{
|
||||
print PEM $cert;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# Check that the correct number of .pem files were produced.
|
||||
@pem_files = <*.pem>;
|
||||
if (@pem_files != $pem_file_count)
|
||||
{
|
||||
print "$pem_file_count";
|
||||
die "Number of .pem files produced does not match".
|
||||
" number of certs read from $file.";
|
||||
}
|
||||
|
||||
# Now store each cert in the 'cacerts' file using keytool.
|
||||
$certs_written_count = 0;
|
||||
foreach $pem_file (@pem_files)
|
||||
{
|
||||
system "$ARGV[0] -noprompt -import".
|
||||
" -alias `basename $pem_file .pem`".
|
||||
" -keystore cacerts -storepass 'changeit' -file $pem_file";
|
||||
unlink($pem_file);
|
||||
$certs_written_count++;
|
||||
}
|
||||
|
||||
# Check that the correct number of certs were added to the keystore.
|
||||
if ($certs_written_count != $pem_file_count)
|
||||
{
|
||||
die "Number of certs added to keystore does not match".
|
||||
" number of certs read from $file.";
|
||||
}
|
@ -0,0 +1,577 @@
|
||||
Taken from:
|
||||
http://mail.openjdk.java.net/pipermail/zero-dev/2011-August/000399.html
|
||||
|
||||
Index: icedtea6-shark/openjdk/hotspot/src/share/vm/shark/sharkBlock.cpp
|
||||
===================================================================
|
||||
--- openjdk/hotspot/src/share/vm/shark/sharkBlock.cpp 2011-07-05 18:31:05.000000000 +0000
|
||||
+++ openjdk/hotspot/src/share/vm/shark/sharkBlock.cpp 2011-08-30 21:15:49.115227000 +0000
|
||||
@@ -1040,8 +1040,8 @@
|
||||
object = builder()->CreateInlineOop(field->holder());
|
||||
|
||||
BasicType basic_type = field->type()->basic_type();
|
||||
- const Type *stack_type = SharkType::to_stackType(basic_type);
|
||||
- const Type *field_type = SharkType::to_arrayType(basic_type);
|
||||
+ Type *stack_type = SharkType::to_stackType(basic_type);
|
||||
+ Type *field_type = SharkType::to_arrayType(basic_type);
|
||||
|
||||
Value *addr = builder()->CreateAddressOfStructEntry(
|
||||
object, in_ByteSize(field->offset_in_bytes()),
|
||||
Index: icedtea6-shark/openjdk/hotspot/src/share/vm/shark/sharkBuilder.cpp
|
||||
===================================================================
|
||||
--- openjdk/hotspot/src/share/vm/shark/sharkBuilder.cpp 2011-07-05 18:31:05.000000000 +0000
|
||||
+++ openjdk/hotspot/src/share/vm/shark/sharkBuilder.cpp 2011-08-30 21:15:49.315227000 +0000
|
||||
@@ -47,14 +47,14 @@
|
||||
// Helpers for accessing structures
|
||||
Value* SharkBuilder::CreateAddressOfStructEntry(Value* base,
|
||||
ByteSize offset,
|
||||
- const Type* type,
|
||||
+ Type* type,
|
||||
const char* name) {
|
||||
return CreateBitCast(CreateStructGEP(base, in_bytes(offset)), type, name);
|
||||
}
|
||||
|
||||
LoadInst* SharkBuilder::CreateValueOfStructEntry(Value* base,
|
||||
ByteSize offset,
|
||||
- const Type* type,
|
||||
+ Type* type,
|
||||
const char* name) {
|
||||
return CreateLoad(
|
||||
CreateAddressOfStructEntry(
|
||||
@@ -71,7 +71,7 @@
|
||||
}
|
||||
|
||||
Value* SharkBuilder::CreateArrayAddress(Value* arrayoop,
|
||||
- const Type* element_type,
|
||||
+ Type* element_type,
|
||||
int element_bytes,
|
||||
ByteSize base_offset,
|
||||
Value* index,
|
||||
@@ -114,7 +114,7 @@
|
||||
|
||||
// Helpers for creating intrinsics and external functions.
|
||||
|
||||
-const Type* SharkBuilder::make_type(char type, bool void_ok) {
|
||||
+Type* SharkBuilder::make_type(char type, bool void_ok) {
|
||||
switch (type) {
|
||||
// Primitive types
|
||||
case 'c':
|
||||
@@ -159,14 +159,14 @@
|
||||
}
|
||||
}
|
||||
|
||||
-const FunctionType* SharkBuilder::make_ftype(const char* params,
|
||||
+FunctionType* SharkBuilder::make_ftype(const char* params,
|
||||
const char* ret) {
|
||||
- std::vector<const Type*> param_types;
|
||||
+ std::vector<Type*> param_types;
|
||||
for (const char* c = params; *c; c++)
|
||||
param_types.push_back(make_type(*c, false));
|
||||
|
||||
assert(strlen(ret) == 1, "should be");
|
||||
- const Type *return_type = make_type(*ret, true);
|
||||
+ Type *return_type = make_type(*ret, true);
|
||||
|
||||
return FunctionType::get(return_type, param_types, false);
|
||||
}
|
||||
@@ -565,7 +565,7 @@
|
||||
|
||||
Value* SharkBuilder::CreateInlineData(void* data,
|
||||
size_t size,
|
||||
- const Type* type,
|
||||
+ Type* type,
|
||||
const char* name) {
|
||||
return CreateIntToPtr(
|
||||
code_buffer_address(code_buffer()->inline_data(data, size)),
|
||||
Index: icedtea6-shark/openjdk/hotspot/src/share/vm/shark/sharkBuilder.hpp
|
||||
===================================================================
|
||||
--- openjdk/hotspot/src/share/vm/shark/sharkBuilder.hpp 2011-07-05 18:31:05.000000000 +0000
|
||||
+++ openjdk/hotspot/src/share/vm/shark/sharkBuilder.hpp 2011-08-30 19:52:46.735227001 +0000
|
||||
@@ -57,18 +57,18 @@
|
||||
public:
|
||||
llvm::Value* CreateAddressOfStructEntry(llvm::Value* base,
|
||||
ByteSize offset,
|
||||
- const llvm::Type* type,
|
||||
+ llvm::Type* type,
|
||||
const char *name = "");
|
||||
llvm::LoadInst* CreateValueOfStructEntry(llvm::Value* base,
|
||||
ByteSize offset,
|
||||
- const llvm::Type* type,
|
||||
+ llvm::Type* type,
|
||||
const char *name = "");
|
||||
|
||||
// Helpers for accessing arrays.
|
||||
public:
|
||||
llvm::LoadInst* CreateArrayLength(llvm::Value* arrayoop);
|
||||
llvm::Value* CreateArrayAddress(llvm::Value* arrayoop,
|
||||
- const llvm::Type* element_type,
|
||||
+ llvm::Type* element_type,
|
||||
int element_bytes,
|
||||
ByteSize base_offset,
|
||||
llvm::Value* index,
|
||||
@@ -85,8 +85,8 @@
|
||||
|
||||
// Helpers for creating intrinsics and external functions.
|
||||
private:
|
||||
- static const llvm::Type* make_type(char type, bool void_ok);
|
||||
- static const llvm::FunctionType* make_ftype(const char* params,
|
||||
+ static llvm::Type* make_type(char type, bool void_ok);
|
||||
+ static llvm::FunctionType* make_ftype(const char* params,
|
||||
const char* ret);
|
||||
llvm::Value* make_function(const char* name,
|
||||
const char* params,
|
||||
@@ -211,7 +211,7 @@
|
||||
}
|
||||
llvm::Value* CreateInlineData(void* data,
|
||||
size_t size,
|
||||
- const llvm::Type* type,
|
||||
+ llvm::Type* type,
|
||||
const char* name = "");
|
||||
|
||||
// Helpers for creating basic blocks.
|
||||
Index: icedtea6-shark/openjdk/hotspot/src/share/vm/shark/sharkCacheDecache.cpp
|
||||
===================================================================
|
||||
--- openjdk/hotspot/src/share/vm/shark/sharkCacheDecache.cpp 2011-07-05 18:31:05.000000000 +0000
|
||||
+++ openjdk/hotspot/src/share/vm/shark/sharkCacheDecache.cpp 2011-08-30 19:52:46.735227001 +0000
|
||||
@@ -230,7 +230,7 @@
|
||||
}
|
||||
|
||||
Value* SharkOSREntryCacher::CreateAddressOfOSRBufEntry(int offset,
|
||||
- const Type* type) {
|
||||
+ Type* type) {
|
||||
Value *result = builder()->CreateStructGEP(osr_buf(), offset);
|
||||
if (type != SharkType::intptr_type())
|
||||
result = builder()->CreateBitCast(result, PointerType::getUnqual(type));
|
||||
@@ -254,12 +254,12 @@
|
||||
}
|
||||
}
|
||||
|
||||
-void SharkDecacher::write_value_to_frame(const Type* type,
|
||||
+void SharkDecacher::write_value_to_frame(Type* type,
|
||||
Value* value,
|
||||
int offset) {
|
||||
builder()->CreateStore(value, stack()->slot_addr(offset, type));
|
||||
}
|
||||
|
||||
-Value* SharkCacher::read_value_from_frame(const Type* type, int offset) {
|
||||
+Value* SharkCacher::read_value_from_frame(Type* type, int offset) {
|
||||
return builder()->CreateLoad(stack()->slot_addr(offset, type));
|
||||
}
|
||||
Index: icedtea6-shark/openjdk/hotspot/src/share/vm/shark/sharkCacheDecache.hpp
|
||||
===================================================================
|
||||
--- openjdk/hotspot/src/share/vm/shark/sharkCacheDecache.hpp 2011-07-05 18:31:05.000000000 +0000
|
||||
+++ openjdk/hotspot/src/share/vm/shark/sharkCacheDecache.hpp 2011-08-30 19:52:46.745227001 +0000
|
||||
@@ -192,7 +192,7 @@
|
||||
|
||||
// Writer helper
|
||||
protected:
|
||||
- void write_value_to_frame(const llvm::Type* type,
|
||||
+ void write_value_to_frame(llvm::Type* type,
|
||||
llvm::Value* value,
|
||||
int offset);
|
||||
};
|
||||
@@ -321,7 +321,7 @@
|
||||
|
||||
// Writer helper
|
||||
protected:
|
||||
- llvm::Value* read_value_from_frame(const llvm::Type* type, int offset);
|
||||
+ llvm::Value* read_value_from_frame(llvm::Type* type, int offset);
|
||||
};
|
||||
|
||||
class SharkJavaCallCacher : public SharkCacher {
|
||||
@@ -422,7 +422,7 @@
|
||||
|
||||
// Helper
|
||||
private:
|
||||
- llvm::Value* CreateAddressOfOSRBufEntry(int offset, const llvm::Type* type);
|
||||
+ llvm::Value* CreateAddressOfOSRBufEntry(int offset, llvm::Type* type);
|
||||
};
|
||||
|
||||
#endif // SHARE_VM_SHARK_SHARKCACHEDECACHE_HPP
|
||||
Index: icedtea6-shark/openjdk/hotspot/src/share/vm/shark/sharkContext.cpp
|
||||
===================================================================
|
||||
--- openjdk/hotspot/src/share/vm/shark/sharkContext.cpp 2011-07-05 18:31:05.000000000 +0000
|
||||
+++ openjdk/hotspot/src/share/vm/shark/sharkContext.cpp 2011-08-30 19:52:46.745227001 +0000
|
||||
@@ -76,7 +76,7 @@
|
||||
_zeroStack_type = PointerType::getUnqual(
|
||||
ArrayType::get(jbyte_type(), sizeof(ZeroStack)));
|
||||
|
||||
- std::vector<const Type*> params;
|
||||
+ std::vector<Type*> params;
|
||||
params.push_back(methodOop_type());
|
||||
params.push_back(intptr_type());
|
||||
params.push_back(thread_type());
|
||||
Index: icedtea6-shark/openjdk/hotspot/src/share/vm/shark/sharkContext.hpp
|
||||
===================================================================
|
||||
--- openjdk/hotspot/src/share/vm/shark/sharkContext.hpp 2011-07-05 18:31:05.000000000 +0000
|
||||
+++ openjdk/hotspot/src/share/vm/shark/sharkContext.hpp 2011-08-30 19:55:03.425227001 +0000
|
||||
@@ -68,118 +68,118 @@
|
||||
module()->getFunctionList().push_back(function);
|
||||
}
|
||||
llvm::Constant* get_external(const char* name,
|
||||
- const llvm::FunctionType* sig) {
|
||||
+ llvm::FunctionType* sig) {
|
||||
return module()->getOrInsertFunction(name, sig);
|
||||
}
|
||||
|
||||
// Basic types
|
||||
private:
|
||||
- const llvm::Type* _void_type;
|
||||
- const llvm::IntegerType* _bit_type;
|
||||
- const llvm::IntegerType* _jbyte_type;
|
||||
- const llvm::IntegerType* _jshort_type;
|
||||
- const llvm::IntegerType* _jint_type;
|
||||
- const llvm::IntegerType* _jlong_type;
|
||||
- const llvm::Type* _jfloat_type;
|
||||
- const llvm::Type* _jdouble_type;
|
||||
+ llvm::Type* _void_type;
|
||||
+ llvm::IntegerType* _bit_type;
|
||||
+ llvm::IntegerType* _jbyte_type;
|
||||
+ llvm::IntegerType* _jshort_type;
|
||||
+ llvm::IntegerType* _jint_type;
|
||||
+ llvm::IntegerType* _jlong_type;
|
||||
+ llvm::Type* _jfloat_type;
|
||||
+ llvm::Type* _jdouble_type;
|
||||
|
||||
public:
|
||||
- const llvm::Type* void_type() const {
|
||||
+ llvm::Type* void_type() const {
|
||||
return _void_type;
|
||||
}
|
||||
- const llvm::IntegerType* bit_type() const {
|
||||
+ llvm::IntegerType* bit_type() const {
|
||||
return _bit_type;
|
||||
}
|
||||
- const llvm::IntegerType* jbyte_type() const {
|
||||
+ llvm::IntegerType* jbyte_type() const {
|
||||
return _jbyte_type;
|
||||
}
|
||||
- const llvm::IntegerType* jshort_type() const {
|
||||
+ llvm::IntegerType* jshort_type() const {
|
||||
return _jshort_type;
|
||||
}
|
||||
- const llvm::IntegerType* jint_type() const {
|
||||
+ llvm::IntegerType* jint_type() const {
|
||||
return _jint_type;
|
||||
}
|
||||
- const llvm::IntegerType* jlong_type() const {
|
||||
+ llvm::IntegerType* jlong_type() const {
|
||||
return _jlong_type;
|
||||
}
|
||||
- const llvm::Type* jfloat_type() const {
|
||||
+ llvm::Type* jfloat_type() const {
|
||||
return _jfloat_type;
|
||||
}
|
||||
- const llvm::Type* jdouble_type() const {
|
||||
+ llvm::Type* jdouble_type() const {
|
||||
return _jdouble_type;
|
||||
}
|
||||
- const llvm::IntegerType* intptr_type() const {
|
||||
+ llvm::IntegerType* intptr_type() const {
|
||||
return LP64_ONLY(jlong_type()) NOT_LP64(jint_type());
|
||||
}
|
||||
|
||||
// Compound types
|
||||
private:
|
||||
- const llvm::PointerType* _itableOffsetEntry_type;
|
||||
- const llvm::PointerType* _jniEnv_type;
|
||||
- const llvm::PointerType* _jniHandleBlock_type;
|
||||
- const llvm::PointerType* _klass_type;
|
||||
- const llvm::PointerType* _methodOop_type;
|
||||
- const llvm::ArrayType* _monitor_type;
|
||||
- const llvm::PointerType* _oop_type;
|
||||
- const llvm::PointerType* _thread_type;
|
||||
- const llvm::PointerType* _zeroStack_type;
|
||||
- const llvm::FunctionType* _entry_point_type;
|
||||
- const llvm::FunctionType* _osr_entry_point_type;
|
||||
+ llvm::PointerType* _itableOffsetEntry_type;
|
||||
+ llvm::PointerType* _jniEnv_type;
|
||||
+ llvm::PointerType* _jniHandleBlock_type;
|
||||
+ llvm::PointerType* _klass_type;
|
||||
+ llvm::PointerType* _methodOop_type;
|
||||
+ llvm::ArrayType* _monitor_type;
|
||||
+ llvm::PointerType* _oop_type;
|
||||
+ llvm::PointerType* _thread_type;
|
||||
+ llvm::PointerType* _zeroStack_type;
|
||||
+ llvm::FunctionType* _entry_point_type;
|
||||
+ llvm::FunctionType* _osr_entry_point_type;
|
||||
|
||||
public:
|
||||
- const llvm::PointerType* itableOffsetEntry_type() const {
|
||||
+ llvm::PointerType* itableOffsetEntry_type() const {
|
||||
return _itableOffsetEntry_type;
|
||||
}
|
||||
- const llvm::PointerType* jniEnv_type() const {
|
||||
+ llvm::PointerType* jniEnv_type() const {
|
||||
return _jniEnv_type;
|
||||
}
|
||||
- const llvm::PointerType* jniHandleBlock_type() const {
|
||||
+ llvm::PointerType* jniHandleBlock_type() const {
|
||||
return _jniHandleBlock_type;
|
||||
}
|
||||
- const llvm::PointerType* klass_type() const {
|
||||
+ llvm::PointerType* klass_type() const {
|
||||
return _klass_type;
|
||||
}
|
||||
- const llvm::PointerType* methodOop_type() const {
|
||||
+ llvm::PointerType* methodOop_type() const {
|
||||
return _methodOop_type;
|
||||
}
|
||||
- const llvm::ArrayType* monitor_type() const {
|
||||
+ llvm::ArrayType* monitor_type() const {
|
||||
return _monitor_type;
|
||||
}
|
||||
- const llvm::PointerType* oop_type() const {
|
||||
+ llvm::PointerType* oop_type() const {
|
||||
return _oop_type;
|
||||
}
|
||||
- const llvm::PointerType* thread_type() const {
|
||||
+ llvm::PointerType* thread_type() const {
|
||||
return _thread_type;
|
||||
}
|
||||
- const llvm::PointerType* zeroStack_type() const {
|
||||
+ llvm::PointerType* zeroStack_type() const {
|
||||
return _zeroStack_type;
|
||||
}
|
||||
- const llvm::FunctionType* entry_point_type() const {
|
||||
+ llvm::FunctionType* entry_point_type() const {
|
||||
return _entry_point_type;
|
||||
}
|
||||
- const llvm::FunctionType* osr_entry_point_type() const {
|
||||
+ llvm::FunctionType* osr_entry_point_type() const {
|
||||
return _osr_entry_point_type;
|
||||
}
|
||||
|
||||
// Mappings
|
||||
private:
|
||||
- const llvm::Type* _to_stackType[T_CONFLICT];
|
||||
- const llvm::Type* _to_arrayType[T_CONFLICT];
|
||||
+ llvm::Type* _to_stackType[T_CONFLICT];
|
||||
+ llvm::Type* _to_arrayType[T_CONFLICT];
|
||||
|
||||
private:
|
||||
- const llvm::Type* map_type(const llvm::Type* const* table,
|
||||
+ llvm::Type* map_type(llvm::Type* const* table,
|
||||
BasicType type) const {
|
||||
assert(type >= 0 && type < T_CONFLICT, "unhandled type");
|
||||
- const llvm::Type* result = table[type];
|
||||
+ llvm::Type* result = table[type];
|
||||
assert(type != NULL, "unhandled type");
|
||||
return result;
|
||||
}
|
||||
|
||||
public:
|
||||
- const llvm::Type* to_stackType(BasicType type) const {
|
||||
+ llvm::Type* to_stackType(BasicType type) const {
|
||||
return map_type(_to_stackType, type);
|
||||
}
|
||||
- const llvm::Type* to_arrayType(BasicType type) const {
|
||||
+ llvm::Type* to_arrayType(BasicType type) const {
|
||||
return map_type(_to_arrayType, type);
|
||||
}
|
||||
|
||||
Index: icedtea6-shark/openjdk/hotspot/src/share/vm/shark/sharkNativeWrapper.cpp
|
||||
===================================================================
|
||||
--- openjdk/hotspot/src/share/vm/shark/sharkNativeWrapper.cpp 2011-07-05 18:31:05.000000000 +0000
|
||||
+++ openjdk/hotspot/src/share/vm/shark/sharkNativeWrapper.cpp 2011-08-30 21:16:20.725227002 +0000
|
||||
@@ -83,9 +83,9 @@
|
||||
}
|
||||
|
||||
// Start building the argument list
|
||||
- std::vector<const Type*> param_types;
|
||||
+ std::vector<Type*> param_types;
|
||||
std::vector<Value*> param_values;
|
||||
- const PointerType *box_type = PointerType::getUnqual(SharkType::oop_type());
|
||||
+ PointerType *box_type = PointerType::getUnqual(SharkType::oop_type());
|
||||
|
||||
// First argument is the JNIEnv
|
||||
param_types.push_back(SharkType::jniEnv_type());
|
||||
@@ -170,7 +170,7 @@
|
||||
// fall through
|
||||
|
||||
default:
|
||||
- const Type *param_type = SharkType::to_stackType(arg_type(i));
|
||||
+ Type *param_type = SharkType::to_stackType(arg_type(i));
|
||||
|
||||
param_types.push_back(param_type);
|
||||
param_values.push_back(
|
||||
@@ -201,7 +201,7 @@
|
||||
|
||||
// Make the call
|
||||
BasicType result_type = target()->result_type();
|
||||
- const Type* return_type;
|
||||
+ Type* return_type;
|
||||
if (result_type == T_VOID)
|
||||
return_type = SharkType::void_type();
|
||||
else if (is_returning_oop())
|
||||
Index: icedtea6-shark/openjdk/hotspot/src/share/vm/shark/sharkStack.cpp
|
||||
===================================================================
|
||||
--- openjdk/hotspot/src/share/vm/shark/sharkStack.cpp 2011-07-05 18:31:05.000000000 +0000
|
||||
+++ openjdk/hotspot/src/share/vm/shark/sharkStack.cpp 2011-08-30 19:52:46.745227001 +0000
|
||||
@@ -163,7 +163,7 @@
|
||||
}
|
||||
|
||||
Value* SharkStack::slot_addr(int offset,
|
||||
- const Type* type,
|
||||
+ Type* type,
|
||||
const char* name) const {
|
||||
bool needs_cast = type && type != SharkType::intptr_type();
|
||||
|
||||
Index: icedtea6-shark/openjdk/hotspot/src/share/vm/shark/sharkStack.hpp
|
||||
===================================================================
|
||||
--- openjdk/hotspot/src/share/vm/shark/sharkStack.hpp 2011-07-05 18:31:05.000000000 +0000
|
||||
+++ openjdk/hotspot/src/share/vm/shark/sharkStack.hpp 2011-08-30 19:52:46.755227001 +0000
|
||||
@@ -204,7 +204,7 @@
|
||||
// Addresses of things in the frame
|
||||
public:
|
||||
llvm::Value* slot_addr(int offset,
|
||||
- const llvm::Type* type = NULL,
|
||||
+ llvm::Type* type = NULL,
|
||||
const char* name = "") const;
|
||||
|
||||
llvm::Value* monitor_addr(int index) const {
|
||||
Index: icedtea6-shark/openjdk/hotspot/src/share/vm/shark/sharkTopLevelBlock.cpp
|
||||
===================================================================
|
||||
--- openjdk/hotspot/src/share/vm/shark/sharkTopLevelBlock.cpp 2011-07-05 18:31:05.000000000 +0000
|
||||
+++ openjdk/hotspot/src/share/vm/shark/sharkTopLevelBlock.cpp 2011-08-30 19:52:46.755227001 +0000
|
||||
@@ -829,7 +829,7 @@
|
||||
builder()->CreateArrayAddress(
|
||||
array->jarray_value(), basic_type, index->jint_value()));
|
||||
|
||||
- const Type *stack_type = SharkType::to_stackType(basic_type);
|
||||
+ Type *stack_type = SharkType::to_stackType(basic_type);
|
||||
if (value->getType() != stack_type)
|
||||
value = builder()->CreateIntCast(value, stack_type, basic_type != T_CHAR);
|
||||
|
||||
@@ -916,7 +916,7 @@
|
||||
ShouldNotReachHere();
|
||||
}
|
||||
|
||||
- const Type *array_type = SharkType::to_arrayType(basic_type);
|
||||
+ Type *array_type = SharkType::to_arrayType(basic_type);
|
||||
if (value->getType() != array_type)
|
||||
value = builder()->CreateIntCast(value, array_type, basic_type != T_CHAR);
|
||||
|
||||
Index: icedtea6-shark/openjdk/hotspot/src/share/vm/shark/sharkType.hpp
|
||||
===================================================================
|
||||
--- openjdk/hotspot/src/share/vm/shark/sharkType.hpp 2011-07-05 18:31:05.000000000 +0000
|
||||
+++ openjdk/hotspot/src/share/vm/shark/sharkType.hpp 2011-08-30 19:52:46.755227001 +0000
|
||||
@@ -40,82 +40,82 @@
|
||||
|
||||
// Basic types
|
||||
public:
|
||||
- static const llvm::Type* void_type() {
|
||||
+ static llvm::Type* void_type() {
|
||||
return context().void_type();
|
||||
}
|
||||
- static const llvm::IntegerType* bit_type() {
|
||||
+ static llvm::IntegerType* bit_type() {
|
||||
return context().bit_type();
|
||||
}
|
||||
- static const llvm::IntegerType* jbyte_type() {
|
||||
+ static llvm::IntegerType* jbyte_type() {
|
||||
return context().jbyte_type();
|
||||
}
|
||||
- static const llvm::IntegerType* jshort_type() {
|
||||
+ static llvm::IntegerType* jshort_type() {
|
||||
return context().jshort_type();
|
||||
}
|
||||
- static const llvm::IntegerType* jint_type() {
|
||||
+ static llvm::IntegerType* jint_type() {
|
||||
return context().jint_type();
|
||||
}
|
||||
- static const llvm::IntegerType* jlong_type() {
|
||||
+ static llvm::IntegerType* jlong_type() {
|
||||
return context().jlong_type();
|
||||
}
|
||||
- static const llvm::Type* jfloat_type() {
|
||||
+ static llvm::Type* jfloat_type() {
|
||||
return context().jfloat_type();
|
||||
}
|
||||
- static const llvm::Type* jdouble_type() {
|
||||
+ static llvm::Type* jdouble_type() {
|
||||
return context().jdouble_type();
|
||||
}
|
||||
- static const llvm::IntegerType* intptr_type() {
|
||||
+ static llvm::IntegerType* intptr_type() {
|
||||
return context().intptr_type();
|
||||
}
|
||||
|
||||
// Compound types
|
||||
public:
|
||||
- static const llvm::PointerType* itableOffsetEntry_type() {
|
||||
+ static llvm::PointerType* itableOffsetEntry_type() {
|
||||
return context().itableOffsetEntry_type();
|
||||
}
|
||||
- static const llvm::PointerType* jniEnv_type() {
|
||||
+ static llvm::PointerType* jniEnv_type() {
|
||||
return context().jniEnv_type();
|
||||
}
|
||||
- static const llvm::PointerType* jniHandleBlock_type() {
|
||||
+ static llvm::PointerType* jniHandleBlock_type() {
|
||||
return context().jniHandleBlock_type();
|
||||
}
|
||||
- static const llvm::PointerType* klass_type() {
|
||||
+ static llvm::PointerType* klass_type() {
|
||||
return context().klass_type();
|
||||
}
|
||||
- static const llvm::PointerType* methodOop_type() {
|
||||
+ static llvm::PointerType* methodOop_type() {
|
||||
return context().methodOop_type();
|
||||
}
|
||||
- static const llvm::ArrayType* monitor_type() {
|
||||
+ static llvm::ArrayType* monitor_type() {
|
||||
return context().monitor_type();
|
||||
}
|
||||
- static const llvm::PointerType* oop_type() {
|
||||
+ static llvm::PointerType* oop_type() {
|
||||
return context().oop_type();
|
||||
}
|
||||
- static const llvm::PointerType* thread_type() {
|
||||
+ static llvm::PointerType* thread_type() {
|
||||
return context().thread_type();
|
||||
}
|
||||
- static const llvm::PointerType* zeroStack_type() {
|
||||
+ static llvm::PointerType* zeroStack_type() {
|
||||
return context().zeroStack_type();
|
||||
}
|
||||
- static const llvm::FunctionType* entry_point_type() {
|
||||
+ static llvm::FunctionType* entry_point_type() {
|
||||
return context().entry_point_type();
|
||||
}
|
||||
- static const llvm::FunctionType* osr_entry_point_type() {
|
||||
+ static llvm::FunctionType* osr_entry_point_type() {
|
||||
return context().osr_entry_point_type();
|
||||
}
|
||||
|
||||
// Mappings
|
||||
public:
|
||||
- static const llvm::Type* to_stackType(BasicType type) {
|
||||
+ static llvm::Type* to_stackType(BasicType type) {
|
||||
return context().to_stackType(type);
|
||||
}
|
||||
- static const llvm::Type* to_stackType(ciType* type) {
|
||||
+ static llvm::Type* to_stackType(ciType* type) {
|
||||
return to_stackType(type->basic_type());
|
||||
}
|
||||
- static const llvm::Type* to_arrayType(BasicType type) {
|
||||
+ static llvm::Type* to_arrayType(BasicType type) {
|
||||
return context().to_arrayType(type);
|
||||
}
|
||||
- static const llvm::Type* to_arrayType(ciType* type) {
|
||||
+ static llvm::Type* to_arrayType(ciType* type) {
|
||||
return to_arrayType(type->basic_type());
|
||||
}
|
||||
};
|
||||
Index: icedtea6-shark/openjdk/hotspot/src/share/vm/shark/sharkFunction.hpp
|
||||
===================================================================
|
||||
--- openjdk/hotspot/src/share/vm/shark/sharkFunction.hpp 2011-08-30 20:23:51.805227002 +0000
|
||||
+++ openjdk/hotspot/src/share/vm/shark/sharkFunction.hpp 2011-08-30 20:24:26.455227000 +0000
|
||||
@@ -91,7 +91,7 @@
|
||||
bool is_osr() const {
|
||||
return flow()->is_osr_flow();
|
||||
}
|
||||
- const llvm::FunctionType* entry_point_type() const {
|
||||
+ llvm::FunctionType* entry_point_type() const {
|
||||
if (is_osr())
|
||||
return SharkType::osr_entry_point_type();
|
||||
else
|
143
dev-java/icedtea/files/icedtea-6.1.10.4_pax_kernel_support.patch
Normal file
143
dev-java/icedtea/files/icedtea-6.1.10.4_pax_kernel_support.patch
Normal file
@ -0,0 +1,143 @@
|
||||
Author: Ralph Sennhaser <sera@gentoo.org>
|
||||
|
||||
The idea is to apply the pax markings before using a freshly built jdk. Be it
|
||||
for running tests or building additonal vms or after bootstrap to build the
|
||||
final jdk.
|
||||
|
||||
There are currently two types of pax markings with the userspace utilities
|
||||
chpax and paxctl. Both types of pax marking are base on modifing the ELFs. A
|
||||
third type based on xattrs is in development.
|
||||
|
||||
diff --git a/Makefile.am b/Makefile.am
|
||||
index 82ef261..e17fa5f 100644
|
||||
--- a/Makefile.am
|
||||
+++ b/Makefile.am
|
||||
@@ -421,7 +421,7 @@ else
|
||||
ICEDTEA_PATCHES += patches/nss-not-enabled-config.patch
|
||||
endif
|
||||
|
||||
-if HAS_PAX
|
||||
+if WITH_PAX
|
||||
ICEDTEA_PATCHES += patches/no-test_gamma.patch
|
||||
endif
|
||||
|
||||
@@ -450,7 +450,7 @@ ICEDTEA_ECJ_PATCHES += patches/ecj/cp40188-opengl.patch
|
||||
endif
|
||||
endif
|
||||
|
||||
-if !HAS_PAX
|
||||
+if !WITH_PAX
|
||||
ICEDTEA_ECJ_PATCHES += patches/ecj/no-test_gamma.patch
|
||||
endif
|
||||
|
||||
@@ -1359,6 +1359,7 @@ stamps/icedtea.stamp: stamps/bootstrap-directory-symlink.stamp \
|
||||
$(ICEDTEA_ENV) \
|
||||
-C openjdk \
|
||||
$(ICEDTEA_BUILD_TARGET)
|
||||
+ $(abs_top_builddir)/pax-mark-vm $(BUILD_OUTPUT_DIR)/j2sdk-image
|
||||
mkdir -p $(BUILD_OUTPUT_DIR)/j2sdk-image/jre/lib/$(INSTALL_ARCH_DIR)
|
||||
mkdir -p $(BUILD_OUTPUT_DIR)/j2re-image/lib/$(INSTALL_ARCH_DIR)
|
||||
mkdir -p $(BUILD_OUTPUT_DIR)/j2sdk-image/jre/lib/ext
|
||||
@@ -1586,6 +1587,7 @@ stamps/icedtea-ecj.stamp: stamps/bootstrap-directory-symlink-ecj.stamp \
|
||||
$(ICEDTEA_ENV_ECJ) \
|
||||
-C openjdk-ecj/ \
|
||||
$(ICEDTEA_BUILD_TARGET)
|
||||
+ $(abs_top_builddir)/pax-mark-vm $(ECJ_BUILD_OUTPUT_DIR)/j2sdk-image
|
||||
@echo "ecj-poured IcedTea is served:" \
|
||||
$(ECJ_BUILD_OUTPUT_DIR)
|
||||
mkdir -p stamps
|
||||
diff --git a/acinclude.m4 b/acinclude.m4
|
||||
index 503131c..e80b209 100644
|
||||
--- a/acinclude.m4
|
||||
+++ b/acinclude.m4
|
||||
@@ -1677,3 +1677,49 @@ AM_CONDITIONAL([CP39408_JAVAH], test x"${it_cv_cp39408_javah}" = "xyes")
|
||||
AM_CONDITIONAL([CP40188_JAVAH], test x"${it_cv_cp40188_javah}" = "xyes")
|
||||
AC_PROVIDE([$0])dnl
|
||||
])
|
||||
+
|
||||
+AC_DEFUN_ONCE([IT_WITH_PAX],
|
||||
+[
|
||||
+ AC_MSG_CHECKING([for pax utility to use])
|
||||
+ AC_ARG_WITH([pax],
|
||||
+ [AS_HELP_STRING(--with-pax=COMMAND,the command used for pax marking)],
|
||||
+ [
|
||||
+ PAX_COMMAND=${withval}
|
||||
+ if test "x${PAX_COMMAND}" = "xno"; then
|
||||
+ PAX_COMMAND="not specified"
|
||||
+ fi
|
||||
+ ],
|
||||
+ [
|
||||
+ PAX_COMMAND="not specified"
|
||||
+ ])
|
||||
+ case "x${PAX_COMMAND}" in
|
||||
+ xchpax)
|
||||
+ case "${host_cpu}" in
|
||||
+ i?86)
|
||||
+ PAX_COMMAND_ARGS="-msp"
|
||||
+ ;;
|
||||
+ *)
|
||||
+ PAX_COMMAND_ARGS="-m"
|
||||
+ ;;
|
||||
+ esac
|
||||
+ ;;
|
||||
+ xpaxctl)
|
||||
+ case "${host_cpu}" in
|
||||
+ i?86)
|
||||
+ PAX_COMMAND_ARGS="-msp"
|
||||
+ ;;
|
||||
+ *)
|
||||
+ PAX_COMMAND_ARGS="-m"
|
||||
+ ;;
|
||||
+ esac
|
||||
+ ;;
|
||||
+ *)
|
||||
+ PAX_COMMAND="not specified"
|
||||
+ PAX_COMMAND_ARGS="not specified"
|
||||
+ ;;
|
||||
+ esac
|
||||
+ AM_CONDITIONAL(WITH_PAX, test "x${PAX_COMMAND}" != "xnot specified")
|
||||
+ AC_MSG_RESULT(${PAX_COMMAND})
|
||||
+ AC_SUBST(PAX_COMMAND)
|
||||
+ AC_SUBST(PAX_COMMAND_ARGS)
|
||||
+])
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index 580840e..f37ef68 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -51,7 +51,6 @@ IT_CHECK_GCC_VERSION
|
||||
IT_CHECK_NUMBER_OF_PARALLEL_JOBS
|
||||
IT_CP_SUPPORTS_REFLINK
|
||||
IT_CAN_HARDLINK_TO_SOURCE_TREE
|
||||
-IT_CHECK_FOR_PAX
|
||||
IT_LOCATE_NSS
|
||||
|
||||
# Use xvfb-run if found to run gui tests (check-jdk).
|
||||
@@ -189,6 +188,9 @@ IT_WITH_TZDATA_DIR
|
||||
IT_GETDTDTYPE_CHECK
|
||||
IT_JAVAH
|
||||
|
||||
+IT_WITH_PAX
|
||||
+AC_CONFIG_FILES([pax-mark-vm], [chmod +x pax-mark-vm])
|
||||
+
|
||||
dnl pkgconfig cannot be used to find these headers and libraries.
|
||||
AC_CHECK_HEADERS([cups/cups.h cups/ppd.h],[]
|
||||
,[AC_MSG_ERROR("CUPS headers were not found -
|
||||
diff --git a/pax-mark-vm.in b/pax-mark-vm.in
|
||||
new file mode 100644
|
||||
index 0000000..bdff735
|
||||
--- /dev/null
|
||||
+++ b/pax-mark-vm.in
|
||||
@@ -0,0 +1,13 @@
|
||||
+#!/bin/sh
|
||||
+
|
||||
+# Taken from Gentoo's pax-utils.eclass
|
||||
+list_paxables() {
|
||||
+ file "$@" 2> /dev/null | grep -E 'ELF.*(executable|shared object)' | sed -e 's/: .*$//'
|
||||
+}
|
||||
+
|
||||
+if test "@PAX_COMMAND@" != "not specified"; then
|
||||
+ for paxable in `list_paxables "${1}"/bin/* "${1}"/jre/bin/*`; do
|
||||
+ echo "PaX mark @PAX_COMMAND_ARGS@ ${paxable}"
|
||||
+ @PAX_COMMAND@ @PAX_COMMAND_ARGS@ "${paxable}"
|
||||
+ done
|
||||
+fi
|
@ -0,0 +1,217 @@
|
||||
Author: Ralph Sennhauser <sera@gentoo.org>
|
||||
|
||||
Split out add-shark target.
|
||||
|
||||
This way the shark build will end up in shark instead of zero and java -zero
|
||||
will work as expected. Ie. allows for easier setup of per app vm preferences
|
||||
if desired. Also removes a bunch of conditionals which will simplify writing
|
||||
jvm.cfg correctly without a full rebuild.
|
||||
|
||||
diff --git a/Makefile.am b/Makefile.am
|
||||
index 82ef261..cfd0d6b 100644
|
||||
--- a/Makefile.am
|
||||
+++ b/Makefile.am
|
||||
@@ -1416,24 +1416,24 @@ clean-icedtea-debug:
|
||||
rm -f stamps/icedtea-debug.stamp
|
||||
|
||||
stamps/icedtea-against-icedtea.stamp: stamps/icedtea.stamp \
|
||||
- stamps/add-jamvm.stamp stamps/add-cacao.stamp stamps/add-zero.stamp \
|
||||
+ stamps/add-jamvm.stamp stamps/add-cacao.stamp stamps/add-zero.stamp stamps/add-shark.stamp \
|
||||
stamps/add-systemtap.stamp stamps/add-pulseaudio.stamp stamps/add-nss.stamp stamps/add-tzdata-support.stamp
|
||||
mkdir -p stamps
|
||||
touch stamps/icedtea-against-icedtea.stamp
|
||||
|
||||
-clean-icedtea-against-icedtea: clean-add-jamvm clean-add-zero clean-add-cacao \
|
||||
+clean-icedtea-against-icedtea: clean-add-jamvm clean-add-zero clean-add-cacao clean-add-shark \
|
||||
clean-add-systemtap clean-add-pulseaudio \
|
||||
clean-add-nss clean-add-tzdata-support
|
||||
rm -f stamps/icedtea-against-icedtea.stamp
|
||||
|
||||
stamps/icedtea-debug-against-icedtea.stamp: stamps/icedtea-debug.stamp \
|
||||
- stamps/add-jamvm-debug.stamp stamps/add-cacao-debug.stamp \
|
||||
+ stamps/add-jamvm-debug.stamp stamps/add-cacao-debug.stamp stamps/add-shark-debug.stamp \
|
||||
stamps/add-zero-debug.stamp stamps/add-systemtap-debug.stamp stamps/add-pulseaudio-debug.stamp \
|
||||
stamps/add-nss-debug.stamp stamps/add-tzdata-support-debug.stamp
|
||||
mkdir -p stamps
|
||||
touch stamps/icedtea-debug-against-icedtea.stamp
|
||||
|
||||
-clean-icedtea-debug-against-icedtea: clean-add-zero-debug \
|
||||
+clean-icedtea-debug-against-icedtea: clean-add-zero-debug clean-add-zero-debug \
|
||||
clean-add-jamvm-debug clean-add-cacao-debug clean-add-systemtap-debug \
|
||||
clean-add-pulseaudio-debug clean-add-nss-debug clean-add-tzdata-support-debug
|
||||
rm -f stamps/icedtea-debug-against-icedtea.stamp
|
||||
@@ -1946,27 +1946,22 @@ clean-add-cacao-debug:
|
||||
# configure script arguments, quoted in single quotes
|
||||
CONFIGURE_ARGS = @CONFIGURE_ARGS@
|
||||
ADD_ZERO_CONFIGURE_ARGS = \
|
||||
- --with-jdk-home=$(BUILD_OUTPUT_DIR)/j2sdk-image \
|
||||
- --enable-zero
|
||||
-if ADD_SHARK_BUILD
|
||||
-ADD_ZERO_CONFIGURE_ARGS += \
|
||||
- --enable-shark
|
||||
-endif
|
||||
-ADD_ZERO_CONFIGURE_ARGS += \
|
||||
- --disable-docs \
|
||||
$(filter-out '--with-jdk-home=% '--with-ecj=% \
|
||||
'--with-java=% '--with-javah=% \
|
||||
'--with-rmic=% '--with-additional-vms=% \
|
||||
'--with-openjdk '--with-openjdk=% , \
|
||||
$(CONFIGURE_ARGS)) \
|
||||
$(if $(findstring --with-openjdk-src-zip=, $(CONFIGURE_ARGS)),, \
|
||||
- --with-openjdk-src-zip=$(abs_top_builddir)/$(OPENJDK_SRC_ZIP))
|
||||
+ --with-openjdk-src-zip=$(abs_top_builddir)/$(OPENJDK_SRC_ZIP)) \
|
||||
+ --with-jdk-home=$(BUILD_OUTPUT_DIR)/j2sdk-image \
|
||||
+ --disable-bootstrap \
|
||||
+ --enable-zero \
|
||||
+ --disable-docs
|
||||
if WITH_ALT_HSBUILD
|
||||
ADD_ZERO_CONFIGURE_ARGS += \
|
||||
$(if $(findstring --with-hotspot-src-zip=, $(CONFIGURE_ARGS)),, \
|
||||
--with-hotspot-src-zip=$(abs_top_builddir)/$(HOTSPOT_SRC_ZIP))
|
||||
endif
|
||||
-ADD_ZERO_CONFIGURE_ARGS += --disable-bootstrap
|
||||
|
||||
ADD_ZERO_EXTRA_BUILD_ENV = \
|
||||
BUILD_LANGTOOLS=false ALT_LANGTOOLS_DIST=$(BUILD_OUTPUT_DIR)/langtools/dist \
|
||||
@@ -2003,34 +1998,19 @@ if ADD_ZERO_BUILD
|
||||
$(ADD_ZERO_EXTRA_BUILD_ENV) \
|
||||
$(ARCH_PREFIX) $(MAKE) -C zerovm $(ICEDTEA_BUILD_TARGET)
|
||||
|
||||
-if ZERO_BUILD
|
||||
- mkdir -p $(BUILD_JRE_ARCH_DIR)/shark
|
||||
- cp -a zerovm/$(BUILD_DIR)/hotspot/import/jre/lib/$(INSTALL_ARCH_DIR)/server/* \
|
||||
- $(BUILD_JRE_ARCH_DIR)/shark/
|
||||
- printf -- '-shark KNOWN\n' >> $(BUILD_JRE_ARCH_DIR)/jvm.cfg
|
||||
-else
|
||||
mkdir -p $(BUILD_JRE_ARCH_DIR)/zero
|
||||
cp -a zerovm/$(BUILD_DIR)/hotspot/import/jre/lib/$(INSTALL_ARCH_DIR)/server/* \
|
||||
$(BUILD_JRE_ARCH_DIR)/zero/
|
||||
printf -- '-zero KNOWN\n' >> $(BUILD_JRE_ARCH_DIR)/jvm.cfg
|
||||
-if ADD_SHARK_BUILD
|
||||
- printf -- '-shark ALIASED_TO -zero\n' >> $(BUILD_JRE_ARCH_DIR)/jvm.cfg
|
||||
-else
|
||||
- printf -- '-shark ERROR\n' >> $(BUILD_JRE_ARCH_DIR)/jvm.cfg
|
||||
-endif
|
||||
-endif
|
||||
else
|
||||
printf -- '-zero ERROR\n' >> $(BUILD_JRE_ARCH_DIR)/jvm.cfg
|
||||
- printf -- '-shark ERROR\n' >> $(BUILD_JRE_ARCH_DIR)/jvm.cfg
|
||||
endif
|
||||
touch $@
|
||||
|
||||
clean-add-zero:
|
||||
rm -rf $(BUILD_JRE_ARCH_DIR)/zero
|
||||
- rm -rf $(BUILD_JRE_ARCH_DIR)/shark
|
||||
rm -rf zerovm
|
||||
sed -i 's#-zero KNOWN#-zero ERROR#' jvm.cfg
|
||||
- sed -i 's#-shark KNOWN#-shark ERROR#' jvm.cfg
|
||||
rm -f stamps/add-zero.stamp
|
||||
|
||||
stamps/add-zero-debug.stamp: stamps/icedtea-debug.stamp
|
||||
@@ -2044,30 +2024,96 @@ if ADD_ZERO_BUILD
|
||||
$(ADD_ZERO_EXTRA_BUILD_ENV) \
|
||||
$(ARCH_PREFIX) $(MAKE) -C zerovm $(ICEDTEA_DEBUG_BUILD_TARGET)
|
||||
|
||||
-if ZERO_BUILD
|
||||
- mkdir -p $(BUILD_DEBUG_JRE_ARCH_DIR)/shark
|
||||
- cp -a zerovm/$(BUILD_DIR)/hotspot/import/jre/lib/$(INSTALL_ARCH_DIR)/server/* \
|
||||
- $(BUILD_DEBUG_JRE_ARCH_DIR)/shark/
|
||||
- printf -- '-shark KNOWN\n' >> $(BUILD_DEBUG_JRE_ARCH_DIR)/jvm.cfg
|
||||
-else
|
||||
mkdir -p $(BUILD_DEBUG_JRE_ARCH_DIR)/zero
|
||||
cp -a zerovm/$(BUILD_DIR)/hotspot/import/jre/lib/$(INSTALL_ARCH_DIR)/server/* \
|
||||
$(BUILD_DEBUG_JRE_ARCH_DIR)/zero/
|
||||
printf -- '-zero KNOWN\n' >> $(BUILD_DEBUG_JRE_ARCH_DIR)/jvm.cfg
|
||||
-endif
|
||||
else
|
||||
printf -- '-zero ERROR\n' >> $(BUILD_DEBUG_JRE_ARCH_DIR)/jvm.cfg
|
||||
- printf -- '-shark ERROR\n' >> $(BUILD_DEBUG_JRE_ARCH_DIR)/jvm.cfg
|
||||
endif
|
||||
touch $@
|
||||
|
||||
clean-add-zero-debug:
|
||||
rm -rf $(BUILD_DEBUG_JRE_ARCH_DIR)/zero
|
||||
- rm -rf $(BUILD_JRE_ARCH_DIR)/shark
|
||||
rm -rf zerovm
|
||||
sed -i 's#-zero KNOWN#-zero ERROR#' jvm.cfg
|
||||
- sed -i 's#-shark KNOWN#-shark ERROR#' jvm.cfg
|
||||
rm -f stamps/add-zero-debug.stamp
|
||||
+
|
||||
+ADD_SHARK_CONFIGURE_ARGS = \
|
||||
+ $(ADD_ZERO_CONFIGURE_ARGS) \
|
||||
+ --enable-shark
|
||||
+
|
||||
+ADD_SHARK_EXTRA_BUILD_ENV = \
|
||||
+ $(ADD_ZERO_EXTRA_BUILD_ENV)
|
||||
+
|
||||
+
|
||||
+stamps/add-shark.stamp: stamps/icedtea.stamp
|
||||
+if ADD_SHARK_BUILD
|
||||
+ mkdir -p sharkvm
|
||||
+
|
||||
+ cd sharkvm && \
|
||||
+ $(ADD_SHARK_EXTRA_BUILD_ENV) \
|
||||
+ $(ARCH_PREFIX) $(abs_top_srcdir)/configure $(ADD_SHARK_CONFIGURE_ARGS)
|
||||
+
|
||||
+ : # create directories which are expected by icedtea components,
|
||||
+ : # implicitly assumed to be created by the jdk build.
|
||||
+ mkdir -p $(patsubst $(abs_top_builddir)/%,$(abs_top_builddir)/sharkvm/%, \
|
||||
+ $(ECJ_BUILD_OUTPUT_DIR)/j2sdk-image/jre/lib/$(INSTALL_ARCH_DIR) \
|
||||
+ $(ECJ_BUILD_OUTPUT_DIR)/j2sdk-image/man/man1 \
|
||||
+ $(ECJ_BUILD_OUTPUT_DIR)/j2re-image/lib/$(INSTALL_ARCH_DIR) \
|
||||
+ $(ECJ_BUILD_OUTPUT_DIR)/j2re-image/man/man1 \
|
||||
+ $(BUILD_OUTPUT_DIR)/j2sdk-image/jre/lib/$(INSTALL_ARCH_DIR) \
|
||||
+ $(BUILD_OUTPUT_DIR)/j2sdk-image/man/man1 \
|
||||
+ $(BUILD_OUTPUT_DIR)/j2re-image/lib/$(INSTALL_ARCH_DIR) \
|
||||
+ $(BUILD_OUTPUT_DIR)/j2re-image/man/man1 \
|
||||
+ $(DEBUG_BUILD_OUTPUT_DIR)/j2sdk-image/jre/lib/$(INSTALL_ARCH_DIR) \
|
||||
+ $(DEBUG_BUILD_OUTPUT_DIR)/j2sdk-image/man/man1 \
|
||||
+ $(DEBUG_BUILD_OUTPUT_DIR)/j2re-image/lib/$(INSTALL_ARCH_DIR) \
|
||||
+ $(DEBUG_BUILD_OUTPUT_DIR)/j2re-image/man/man1)
|
||||
+
|
||||
+ $(ADD_SHARK_EXTRA_BUILD_ENV) \
|
||||
+ $(ARCH_PREFIX) $(MAKE) -C sharkvm $(ICEDTEA_BUILD_TARGET)
|
||||
+
|
||||
+ mkdir -p $(BUILD_JRE_ARCH_DIR)/shark
|
||||
+ cp -a sharkvm/$(BUILD_DIR)/hotspot/import/jre/lib/$(INSTALL_ARCH_DIR)/server/* \
|
||||
+ $(BUILD_JRE_ARCH_DIR)/shark/
|
||||
+ printf -- '-shark KNOWN\n' >> $(BUILD_JRE_ARCH_DIR)/jvm.cfg
|
||||
+else
|
||||
+ printf -- '-shark ERROR\n' >> $(BUILD_JRE_ARCH_DIR)/jvm.cfg
|
||||
+endif
|
||||
+ touch $@
|
||||
+
|
||||
+clean-add-shark:
|
||||
+ rm -rf $(BUILD_JRE_ARCH_DIR)/shark
|
||||
+ rm -rf sharkvm
|
||||
+ sed -i 's#-shark KNOWN#-shark ERROR#' jvm.cfg
|
||||
+ rm -f stamps/add-shark.stamp
|
||||
+
|
||||
+stamps/add-shark-debug.stamp: stamps/icedtea-debug.stamp
|
||||
+if ADD_SHARK_BUILD
|
||||
+ mkdir -p sharkvm
|
||||
+
|
||||
+ cd sharkvm && \
|
||||
+ $(ADD_SHARK_EXTRA_BUILD_ENV) \
|
||||
+ $(ARCH_PREFIX) $(abs_top_srcdir)/configure $(ADD_SHARK_CONFIGURE_ARGS)
|
||||
+
|
||||
+ $(ADD_SHARK_EXTRA_BUILD_ENV) \
|
||||
+ $(ARCH_PREFIX) $(MAKE) -C sharkvm $(ICEDTEA_DEBUG_BUILD_TARGET)
|
||||
+
|
||||
+ mkdir -p $(BUILD_DEBUG_JRE_ARCH_DIR)/shark
|
||||
+ cp -a shark/$(BUILD_DIR)/hotspot/import/jre/lib/$(INSTALL_ARCH_DIR)/server/* \
|
||||
+ $(BUILD_DEBUG_JRE_ARCH_DIR)/shark/
|
||||
+ printf -- '-shark KNOWN\n' >> $(BUILD_DEBUG_JRE_ARCH_DIR)/jvm.cfg
|
||||
+else
|
||||
+ printf -- '-shark ERROR\n' >> $(BUILD_DEBUG_JRE_ARCH_DIR)/jvm.cfg
|
||||
+endif
|
||||
+ touch $@
|
||||
+
|
||||
+clean-add-shark-debug:
|
||||
+ rm -rf $(BUILD_DEBUG_JRE_ARCH_DIR)/shark
|
||||
+ rm -rf sharkvm
|
||||
+ sed -i 's#-shark KNOWN#-shark ERROR#' jvm.cfg
|
||||
+ rm -f stamps/add-shark-debug.stamp
|
||||
|
||||
# end additional VMs
|
||||
|
@ -0,0 +1,16 @@
|
||||
Author: Ralph Sennhauser <sera@gentoo.org>
|
||||
|
||||
The llvm libdir isn't in the default search path on Gentoo. Adding path explicitely.
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index 580840e..852f5a8 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -444,6 +444,7 @@ if test "x${SHARK_BUILD_TRUE}" = x || test "x${ADD_SHARK_BUILD_TRUE}" = x; then
|
||||
LLVM_LDFLAGS="$LLVM_LDFLAGS$flag"
|
||||
fi
|
||||
done
|
||||
+ LLVM_LDFLAGS="$LLVM_LDFLAGS -Wl,-rpath,$($LLVM_CONFIG --libdir)"
|
||||
dnl LLVM_LIBS
|
||||
LIBS_SAVED=$LIBS
|
||||
LDFLAGS_SAVED=$LDFLAGS
|
@ -0,0 +1,578 @@
|
||||
Taken from:
|
||||
http://mail.openjdk.java.net/pipermail/zero-dev/2011-August/000399.html
|
||||
Adopted to icedtea-7
|
||||
|
||||
Index: icedtea6-shark/openjdk/hotspot/src/share/vm/shark/sharkBlock.cpp
|
||||
===================================================================
|
||||
--- openjdk/hotspot/src/share/vm/shark/sharkBlock.cpp 2011-07-05 18:31:05.000000000 +0000
|
||||
+++ openjdk/hotspot/src/share/vm/shark/sharkBlock.cpp 2011-08-30 21:15:49.115227000 +0000
|
||||
@@ -1040,8 +1040,8 @@
|
||||
object = builder()->CreateInlineOop(field->holder());
|
||||
|
||||
BasicType basic_type = field->type()->basic_type();
|
||||
- const Type *stack_type = SharkType::to_stackType(basic_type);
|
||||
- const Type *field_type = SharkType::to_arrayType(basic_type);
|
||||
+ Type *stack_type = SharkType::to_stackType(basic_type);
|
||||
+ Type *field_type = SharkType::to_arrayType(basic_type);
|
||||
|
||||
Value *addr = builder()->CreateAddressOfStructEntry(
|
||||
object, in_ByteSize(field->offset_in_bytes()),
|
||||
Index: icedtea6-shark/openjdk/hotspot/src/share/vm/shark/sharkBuilder.cpp
|
||||
===================================================================
|
||||
--- openjdk/hotspot/src/share/vm/shark/sharkBuilder.cpp 2011-07-05 18:31:05.000000000 +0000
|
||||
+++ openjdk/hotspot/src/share/vm/shark/sharkBuilder.cpp 2011-08-30 21:15:49.315227000 +0000
|
||||
@@ -47,14 +47,14 @@
|
||||
// Helpers for accessing structures
|
||||
Value* SharkBuilder::CreateAddressOfStructEntry(Value* base,
|
||||
ByteSize offset,
|
||||
- const Type* type,
|
||||
+ Type* type,
|
||||
const char* name) {
|
||||
return CreateBitCast(CreateStructGEP(base, in_bytes(offset)), type, name);
|
||||
}
|
||||
|
||||
LoadInst* SharkBuilder::CreateValueOfStructEntry(Value* base,
|
||||
ByteSize offset,
|
||||
- const Type* type,
|
||||
+ Type* type,
|
||||
const char* name) {
|
||||
return CreateLoad(
|
||||
CreateAddressOfStructEntry(
|
||||
@@ -71,7 +71,7 @@
|
||||
}
|
||||
|
||||
Value* SharkBuilder::CreateArrayAddress(Value* arrayoop,
|
||||
- const Type* element_type,
|
||||
+ Type* element_type,
|
||||
int element_bytes,
|
||||
ByteSize base_offset,
|
||||
Value* index,
|
||||
@@ -114,7 +114,7 @@
|
||||
|
||||
// Helpers for creating intrinsics and external functions.
|
||||
|
||||
-const Type* SharkBuilder::make_type(char type, bool void_ok) {
|
||||
+Type* SharkBuilder::make_type(char type, bool void_ok) {
|
||||
switch (type) {
|
||||
// Primitive types
|
||||
case 'c':
|
||||
@@ -159,14 +159,14 @@
|
||||
}
|
||||
}
|
||||
|
||||
-const FunctionType* SharkBuilder::make_ftype(const char* params,
|
||||
+FunctionType* SharkBuilder::make_ftype(const char* params,
|
||||
const char* ret) {
|
||||
- std::vector<const Type*> param_types;
|
||||
+ std::vector<Type*> param_types;
|
||||
for (const char* c = params; *c; c++)
|
||||
param_types.push_back(make_type(*c, false));
|
||||
|
||||
assert(strlen(ret) == 1, "should be");
|
||||
- const Type *return_type = make_type(*ret, true);
|
||||
+ Type *return_type = make_type(*ret, true);
|
||||
|
||||
return FunctionType::get(return_type, param_types, false);
|
||||
}
|
||||
@@ -565,7 +565,7 @@
|
||||
|
||||
Value* SharkBuilder::CreateInlineData(void* data,
|
||||
size_t size,
|
||||
- const Type* type,
|
||||
+ Type* type,
|
||||
const char* name) {
|
||||
return CreateIntToPtr(
|
||||
code_buffer_address(code_buffer()->inline_data(data, size)),
|
||||
Index: icedtea6-shark/openjdk/hotspot/src/share/vm/shark/sharkBuilder.hpp
|
||||
===================================================================
|
||||
--- openjdk/hotspot/src/share/vm/shark/sharkBuilder.hpp 2011-07-05 18:31:05.000000000 +0000
|
||||
+++ openjdk/hotspot/src/share/vm/shark/sharkBuilder.hpp 2011-08-30 19:52:46.735227001 +0000
|
||||
@@ -57,18 +57,18 @@
|
||||
public:
|
||||
llvm::Value* CreateAddressOfStructEntry(llvm::Value* base,
|
||||
ByteSize offset,
|
||||
- const llvm::Type* type,
|
||||
+ llvm::Type* type,
|
||||
const char *name = "");
|
||||
llvm::LoadInst* CreateValueOfStructEntry(llvm::Value* base,
|
||||
ByteSize offset,
|
||||
- const llvm::Type* type,
|
||||
+ llvm::Type* type,
|
||||
const char *name = "");
|
||||
|
||||
// Helpers for accessing arrays.
|
||||
public:
|
||||
llvm::LoadInst* CreateArrayLength(llvm::Value* arrayoop);
|
||||
llvm::Value* CreateArrayAddress(llvm::Value* arrayoop,
|
||||
- const llvm::Type* element_type,
|
||||
+ llvm::Type* element_type,
|
||||
int element_bytes,
|
||||
ByteSize base_offset,
|
||||
llvm::Value* index,
|
||||
@@ -85,8 +85,8 @@
|
||||
|
||||
// Helpers for creating intrinsics and external functions.
|
||||
private:
|
||||
- static const llvm::Type* make_type(char type, bool void_ok);
|
||||
- static const llvm::FunctionType* make_ftype(const char* params,
|
||||
+ static llvm::Type* make_type(char type, bool void_ok);
|
||||
+ static llvm::FunctionType* make_ftype(const char* params,
|
||||
const char* ret);
|
||||
llvm::Value* make_function(const char* name,
|
||||
const char* params,
|
||||
@@ -211,7 +211,7 @@
|
||||
}
|
||||
llvm::Value* CreateInlineData(void* data,
|
||||
size_t size,
|
||||
- const llvm::Type* type,
|
||||
+ llvm::Type* type,
|
||||
const char* name = "");
|
||||
|
||||
// Helpers for creating basic blocks.
|
||||
Index: icedtea6-shark/openjdk/hotspot/src/share/vm/shark/sharkCacheDecache.cpp
|
||||
===================================================================
|
||||
--- openjdk/hotspot/src/share/vm/shark/sharkCacheDecache.cpp 2011-07-05 18:31:05.000000000 +0000
|
||||
+++ openjdk/hotspot/src/share/vm/shark/sharkCacheDecache.cpp 2011-08-30 19:52:46.735227001 +0000
|
||||
@@ -230,7 +230,7 @@
|
||||
}
|
||||
|
||||
Value* SharkOSREntryCacher::CreateAddressOfOSRBufEntry(int offset,
|
||||
- const Type* type) {
|
||||
+ Type* type) {
|
||||
Value *result = builder()->CreateStructGEP(osr_buf(), offset);
|
||||
if (type != SharkType::intptr_type())
|
||||
result = builder()->CreateBitCast(result, PointerType::getUnqual(type));
|
||||
@@ -254,12 +254,12 @@
|
||||
}
|
||||
}
|
||||
|
||||
-void SharkDecacher::write_value_to_frame(const Type* type,
|
||||
+void SharkDecacher::write_value_to_frame(Type* type,
|
||||
Value* value,
|
||||
int offset) {
|
||||
builder()->CreateStore(value, stack()->slot_addr(offset, type));
|
||||
}
|
||||
|
||||
-Value* SharkCacher::read_value_from_frame(const Type* type, int offset) {
|
||||
+Value* SharkCacher::read_value_from_frame(Type* type, int offset) {
|
||||
return builder()->CreateLoad(stack()->slot_addr(offset, type));
|
||||
}
|
||||
Index: icedtea6-shark/openjdk/hotspot/src/share/vm/shark/sharkCacheDecache.hpp
|
||||
===================================================================
|
||||
--- openjdk/hotspot/src/share/vm/shark/sharkCacheDecache.hpp 2011-07-05 18:31:05.000000000 +0000
|
||||
+++ openjdk/hotspot/src/share/vm/shark/sharkCacheDecache.hpp 2011-08-30 19:52:46.745227001 +0000
|
||||
@@ -192,7 +192,7 @@
|
||||
|
||||
// Writer helper
|
||||
protected:
|
||||
- void write_value_to_frame(const llvm::Type* type,
|
||||
+ void write_value_to_frame(llvm::Type* type,
|
||||
llvm::Value* value,
|
||||
int offset);
|
||||
};
|
||||
@@ -321,7 +321,7 @@
|
||||
|
||||
// Writer helper
|
||||
protected:
|
||||
- llvm::Value* read_value_from_frame(const llvm::Type* type, int offset);
|
||||
+ llvm::Value* read_value_from_frame(llvm::Type* type, int offset);
|
||||
};
|
||||
|
||||
class SharkJavaCallCacher : public SharkCacher {
|
||||
@@ -422,7 +422,7 @@
|
||||
|
||||
// Helper
|
||||
private:
|
||||
- llvm::Value* CreateAddressOfOSRBufEntry(int offset, const llvm::Type* type);
|
||||
+ llvm::Value* CreateAddressOfOSRBufEntry(int offset, llvm::Type* type);
|
||||
};
|
||||
|
||||
#endif // SHARE_VM_SHARK_SHARKCACHEDECACHE_HPP
|
||||
Index: icedtea6-shark/openjdk/hotspot/src/share/vm/shark/sharkContext.cpp
|
||||
===================================================================
|
||||
--- openjdk/hotspot/src/share/vm/shark/sharkContext.cpp 2011-07-05 18:31:05.000000000 +0000
|
||||
+++ openjdk/hotspot/src/share/vm/shark/sharkContext.cpp 2011-08-30 19:52:46.745227001 +0000
|
||||
@@ -76,7 +76,7 @@
|
||||
_zeroStack_type = PointerType::getUnqual(
|
||||
ArrayType::get(jbyte_type(), sizeof(ZeroStack)));
|
||||
|
||||
- std::vector<const Type*> params;
|
||||
+ std::vector<Type*> params;
|
||||
params.push_back(methodOop_type());
|
||||
params.push_back(intptr_type());
|
||||
params.push_back(thread_type());
|
||||
Index: icedtea7-shark/openjdk/hotspot/src/share/vm/shark/sharkContext.hpp
|
||||
===================================================================
|
||||
--- openjdk/hotspot/src/share/vm/shark/sharkContext.hpp 2011-09-29 00:13:07.000000000 +0200
|
||||
+++ openjdk/hotspot/src/share/vm/shark/sharkContext.hpp 2011-12-12 12:49:57.481439513 +0100
|
||||
@@ -68,118 +68,118 @@ class SharkContext : public llvm::LLVMCo
|
||||
module()->getFunctionList().push_back(function);
|
||||
}
|
||||
llvm::Constant* get_external(const char* name,
|
||||
- const llvm::FunctionType* sig) {
|
||||
+ llvm::FunctionType* sig) {
|
||||
return module()->getOrInsertFunction(name, sig);
|
||||
}
|
||||
|
||||
// Basic types
|
||||
private:
|
||||
- const llvm::Type* _void_type;
|
||||
- const llvm::IntegerType* _bit_type;
|
||||
- const llvm::IntegerType* _jbyte_type;
|
||||
- const llvm::IntegerType* _jshort_type;
|
||||
- const llvm::IntegerType* _jint_type;
|
||||
- const llvm::IntegerType* _jlong_type;
|
||||
- const llvm::Type* _jfloat_type;
|
||||
- const llvm::Type* _jdouble_type;
|
||||
+ llvm::Type* _void_type;
|
||||
+ llvm::IntegerType* _bit_type;
|
||||
+ llvm::IntegerType* _jbyte_type;
|
||||
+ llvm::IntegerType* _jshort_type;
|
||||
+ llvm::IntegerType* _jint_type;
|
||||
+ llvm::IntegerType* _jlong_type;
|
||||
+ llvm::Type* _jfloat_type;
|
||||
+ llvm::Type* _jdouble_type;
|
||||
|
||||
public:
|
||||
- const llvm::Type* void_type() const {
|
||||
+ llvm::Type* void_type() const {
|
||||
return _void_type;
|
||||
}
|
||||
- const llvm::IntegerType* bit_type() const {
|
||||
+ llvm::IntegerType* bit_type() const {
|
||||
return _bit_type;
|
||||
}
|
||||
- const llvm::IntegerType* jbyte_type() const {
|
||||
+ llvm::IntegerType* jbyte_type() const {
|
||||
return _jbyte_type;
|
||||
}
|
||||
- const llvm::IntegerType* jshort_type() const {
|
||||
+ llvm::IntegerType* jshort_type() const {
|
||||
return _jshort_type;
|
||||
}
|
||||
- const llvm::IntegerType* jint_type() const {
|
||||
+ llvm::IntegerType* jint_type() const {
|
||||
return _jint_type;
|
||||
}
|
||||
- const llvm::IntegerType* jlong_type() const {
|
||||
+ llvm::IntegerType* jlong_type() const {
|
||||
return _jlong_type;
|
||||
}
|
||||
- const llvm::Type* jfloat_type() const {
|
||||
+ llvm::Type* jfloat_type() const {
|
||||
return _jfloat_type;
|
||||
}
|
||||
- const llvm::Type* jdouble_type() const {
|
||||
+ llvm::Type* jdouble_type() const {
|
||||
return _jdouble_type;
|
||||
}
|
||||
- const llvm::IntegerType* intptr_type() const {
|
||||
+ llvm::IntegerType* intptr_type() const {
|
||||
return LP64_ONLY(jlong_type()) NOT_LP64(jint_type());
|
||||
}
|
||||
|
||||
// Compound types
|
||||
private:
|
||||
- const llvm::PointerType* _itableOffsetEntry_type;
|
||||
- const llvm::PointerType* _jniEnv_type;
|
||||
- const llvm::PointerType* _jniHandleBlock_type;
|
||||
- const llvm::PointerType* _klass_type;
|
||||
- const llvm::PointerType* _methodOop_type;
|
||||
- const llvm::ArrayType* _monitor_type;
|
||||
- const llvm::PointerType* _oop_type;
|
||||
- const llvm::PointerType* _thread_type;
|
||||
- const llvm::PointerType* _zeroStack_type;
|
||||
- const llvm::FunctionType* _entry_point_type;
|
||||
- const llvm::FunctionType* _osr_entry_point_type;
|
||||
+ llvm::PointerType* _itableOffsetEntry_type;
|
||||
+ llvm::PointerType* _jniEnv_type;
|
||||
+ llvm::PointerType* _jniHandleBlock_type;
|
||||
+ llvm::PointerType* _klass_type;
|
||||
+ llvm::PointerType* _methodOop_type;
|
||||
+ llvm::ArrayType* _monitor_type;
|
||||
+ llvm::PointerType* _oop_type;
|
||||
+ llvm::PointerType* _thread_type;
|
||||
+ llvm::PointerType* _zeroStack_type;
|
||||
+ llvm::FunctionType* _entry_point_type;
|
||||
+ llvm::FunctionType* _osr_entry_point_type;
|
||||
|
||||
public:
|
||||
- const llvm::PointerType* itableOffsetEntry_type() const {
|
||||
+ llvm::PointerType* itableOffsetEntry_type() const {
|
||||
return _itableOffsetEntry_type;
|
||||
}
|
||||
- const llvm::PointerType* jniEnv_type() const {
|
||||
+ llvm::PointerType* jniEnv_type() const {
|
||||
return _jniEnv_type;
|
||||
}
|
||||
- const llvm::PointerType* jniHandleBlock_type() const {
|
||||
+ llvm::PointerType* jniHandleBlock_type() const {
|
||||
return _jniHandleBlock_type;
|
||||
}
|
||||
- const llvm::PointerType* klass_type() const {
|
||||
+ llvm::PointerType* klass_type() const {
|
||||
return _klass_type;
|
||||
}
|
||||
- const llvm::PointerType* methodOop_type() const {
|
||||
+ llvm::PointerType* methodOop_type() const {
|
||||
return _methodOop_type;
|
||||
}
|
||||
- const llvm::ArrayType* monitor_type() const {
|
||||
+ llvm::ArrayType* monitor_type() const {
|
||||
return _monitor_type;
|
||||
}
|
||||
- const llvm::PointerType* oop_type() const {
|
||||
+ llvm::PointerType* oop_type() const {
|
||||
return _oop_type;
|
||||
}
|
||||
- const llvm::PointerType* thread_type() const {
|
||||
+ llvm::PointerType* thread_type() const {
|
||||
return _thread_type;
|
||||
}
|
||||
- const llvm::PointerType* zeroStack_type() const {
|
||||
+ llvm::PointerType* zeroStack_type() const {
|
||||
return _zeroStack_type;
|
||||
}
|
||||
- const llvm::FunctionType* entry_point_type() const {
|
||||
+ llvm::FunctionType* entry_point_type() const {
|
||||
return _entry_point_type;
|
||||
}
|
||||
- const llvm::FunctionType* osr_entry_point_type() const {
|
||||
+ llvm::FunctionType* osr_entry_point_type() const {
|
||||
return _osr_entry_point_type;
|
||||
}
|
||||
|
||||
// Mappings
|
||||
private:
|
||||
- const llvm::Type* _to_stackType[T_CONFLICT];
|
||||
- const llvm::Type* _to_arrayType[T_CONFLICT];
|
||||
+ llvm::Type* _to_stackType[T_CONFLICT];
|
||||
+ llvm::Type* _to_arrayType[T_CONFLICT];
|
||||
|
||||
private:
|
||||
- const llvm::Type* map_type(const llvm::Type* const* table,
|
||||
+ llvm::Type* map_type(llvm::Type* const* table,
|
||||
BasicType type) const {
|
||||
assert(type >= 0 && type < T_CONFLICT, "unhandled type");
|
||||
- const llvm::Type* result = table[type];
|
||||
+ llvm::Type* result = table[type];
|
||||
assert(result != NULL, "unhandled type");
|
||||
return result;
|
||||
}
|
||||
|
||||
public:
|
||||
- const llvm::Type* to_stackType(BasicType type) const {
|
||||
+ llvm::Type* to_stackType(BasicType type) const {
|
||||
return map_type(_to_stackType, type);
|
||||
}
|
||||
- const llvm::Type* to_arrayType(BasicType type) const {
|
||||
+ llvm::Type* to_arrayType(BasicType type) const {
|
||||
return map_type(_to_arrayType, type);
|
||||
}
|
||||
|
||||
Index: icedtea6-shark/openjdk/hotspot/src/share/vm/shark/sharkNativeWrapper.cpp
|
||||
===================================================================
|
||||
--- openjdk/hotspot/src/share/vm/shark/sharkNativeWrapper.cpp 2011-07-05 18:31:05.000000000 +0000
|
||||
+++ openjdk/hotspot/src/share/vm/shark/sharkNativeWrapper.cpp 2011-08-30 21:16:20.725227002 +0000
|
||||
@@ -83,9 +83,9 @@
|
||||
}
|
||||
|
||||
// Start building the argument list
|
||||
- std::vector<const Type*> param_types;
|
||||
+ std::vector<Type*> param_types;
|
||||
std::vector<Value*> param_values;
|
||||
- const PointerType *box_type = PointerType::getUnqual(SharkType::oop_type());
|
||||
+ PointerType *box_type = PointerType::getUnqual(SharkType::oop_type());
|
||||
|
||||
// First argument is the JNIEnv
|
||||
param_types.push_back(SharkType::jniEnv_type());
|
||||
@@ -170,7 +170,7 @@
|
||||
// fall through
|
||||
|
||||
default:
|
||||
- const Type *param_type = SharkType::to_stackType(arg_type(i));
|
||||
+ Type *param_type = SharkType::to_stackType(arg_type(i));
|
||||
|
||||
param_types.push_back(param_type);
|
||||
param_values.push_back(
|
||||
@@ -201,7 +201,7 @@
|
||||
|
||||
// Make the call
|
||||
BasicType result_type = target()->result_type();
|
||||
- const Type* return_type;
|
||||
+ Type* return_type;
|
||||
if (result_type == T_VOID)
|
||||
return_type = SharkType::void_type();
|
||||
else if (is_returning_oop())
|
||||
Index: icedtea6-shark/openjdk/hotspot/src/share/vm/shark/sharkStack.cpp
|
||||
===================================================================
|
||||
--- openjdk/hotspot/src/share/vm/shark/sharkStack.cpp 2011-07-05 18:31:05.000000000 +0000
|
||||
+++ openjdk/hotspot/src/share/vm/shark/sharkStack.cpp 2011-08-30 19:52:46.745227001 +0000
|
||||
@@ -163,7 +163,7 @@
|
||||
}
|
||||
|
||||
Value* SharkStack::slot_addr(int offset,
|
||||
- const Type* type,
|
||||
+ Type* type,
|
||||
const char* name) const {
|
||||
bool needs_cast = type && type != SharkType::intptr_type();
|
||||
|
||||
Index: icedtea6-shark/openjdk/hotspot/src/share/vm/shark/sharkStack.hpp
|
||||
===================================================================
|
||||
--- openjdk/hotspot/src/share/vm/shark/sharkStack.hpp 2011-07-05 18:31:05.000000000 +0000
|
||||
+++ openjdk/hotspot/src/share/vm/shark/sharkStack.hpp 2011-08-30 19:52:46.755227001 +0000
|
||||
@@ -204,7 +204,7 @@
|
||||
// Addresses of things in the frame
|
||||
public:
|
||||
llvm::Value* slot_addr(int offset,
|
||||
- const llvm::Type* type = NULL,
|
||||
+ llvm::Type* type = NULL,
|
||||
const char* name = "") const;
|
||||
|
||||
llvm::Value* monitor_addr(int index) const {
|
||||
Index: icedtea6-shark/openjdk/hotspot/src/share/vm/shark/sharkTopLevelBlock.cpp
|
||||
===================================================================
|
||||
--- openjdk/hotspot/src/share/vm/shark/sharkTopLevelBlock.cpp 2011-07-05 18:31:05.000000000 +0000
|
||||
+++ openjdk/hotspot/src/share/vm/shark/sharkTopLevelBlock.cpp 2011-08-30 19:52:46.755227001 +0000
|
||||
@@ -829,7 +829,7 @@
|
||||
builder()->CreateArrayAddress(
|
||||
array->jarray_value(), basic_type, index->jint_value()));
|
||||
|
||||
- const Type *stack_type = SharkType::to_stackType(basic_type);
|
||||
+ Type *stack_type = SharkType::to_stackType(basic_type);
|
||||
if (value->getType() != stack_type)
|
||||
value = builder()->CreateIntCast(value, stack_type, basic_type != T_CHAR);
|
||||
|
||||
@@ -916,7 +916,7 @@
|
||||
ShouldNotReachHere();
|
||||
}
|
||||
|
||||
- const Type *array_type = SharkType::to_arrayType(basic_type);
|
||||
+ Type *array_type = SharkType::to_arrayType(basic_type);
|
||||
if (value->getType() != array_type)
|
||||
value = builder()->CreateIntCast(value, array_type, basic_type != T_CHAR);
|
||||
|
||||
Index: icedtea6-shark/openjdk/hotspot/src/share/vm/shark/sharkType.hpp
|
||||
===================================================================
|
||||
--- openjdk/hotspot/src/share/vm/shark/sharkType.hpp 2011-07-05 18:31:05.000000000 +0000
|
||||
+++ openjdk/hotspot/src/share/vm/shark/sharkType.hpp 2011-08-30 19:52:46.755227001 +0000
|
||||
@@ -40,82 +40,82 @@
|
||||
|
||||
// Basic types
|
||||
public:
|
||||
- static const llvm::Type* void_type() {
|
||||
+ static llvm::Type* void_type() {
|
||||
return context().void_type();
|
||||
}
|
||||
- static const llvm::IntegerType* bit_type() {
|
||||
+ static llvm::IntegerType* bit_type() {
|
||||
return context().bit_type();
|
||||
}
|
||||
- static const llvm::IntegerType* jbyte_type() {
|
||||
+ static llvm::IntegerType* jbyte_type() {
|
||||
return context().jbyte_type();
|
||||
}
|
||||
- static const llvm::IntegerType* jshort_type() {
|
||||
+ static llvm::IntegerType* jshort_type() {
|
||||
return context().jshort_type();
|
||||
}
|
||||
- static const llvm::IntegerType* jint_type() {
|
||||
+ static llvm::IntegerType* jint_type() {
|
||||
return context().jint_type();
|
||||
}
|
||||
- static const llvm::IntegerType* jlong_type() {
|
||||
+ static llvm::IntegerType* jlong_type() {
|
||||
return context().jlong_type();
|
||||
}
|
||||
- static const llvm::Type* jfloat_type() {
|
||||
+ static llvm::Type* jfloat_type() {
|
||||
return context().jfloat_type();
|
||||
}
|
||||
- static const llvm::Type* jdouble_type() {
|
||||
+ static llvm::Type* jdouble_type() {
|
||||
return context().jdouble_type();
|
||||
}
|
||||
- static const llvm::IntegerType* intptr_type() {
|
||||
+ static llvm::IntegerType* intptr_type() {
|
||||
return context().intptr_type();
|
||||
}
|
||||
|
||||
// Compound types
|
||||
public:
|
||||
- static const llvm::PointerType* itableOffsetEntry_type() {
|
||||
+ static llvm::PointerType* itableOffsetEntry_type() {
|
||||
return context().itableOffsetEntry_type();
|
||||
}
|
||||
- static const llvm::PointerType* jniEnv_type() {
|
||||
+ static llvm::PointerType* jniEnv_type() {
|
||||
return context().jniEnv_type();
|
||||
}
|
||||
- static const llvm::PointerType* jniHandleBlock_type() {
|
||||
+ static llvm::PointerType* jniHandleBlock_type() {
|
||||
return context().jniHandleBlock_type();
|
||||
}
|
||||
- static const llvm::PointerType* klass_type() {
|
||||
+ static llvm::PointerType* klass_type() {
|
||||
return context().klass_type();
|
||||
}
|
||||
- static const llvm::PointerType* methodOop_type() {
|
||||
+ static llvm::PointerType* methodOop_type() {
|
||||
return context().methodOop_type();
|
||||
}
|
||||
- static const llvm::ArrayType* monitor_type() {
|
||||
+ static llvm::ArrayType* monitor_type() {
|
||||
return context().monitor_type();
|
||||
}
|
||||
- static const llvm::PointerType* oop_type() {
|
||||
+ static llvm::PointerType* oop_type() {
|
||||
return context().oop_type();
|
||||
}
|
||||
- static const llvm::PointerType* thread_type() {
|
||||
+ static llvm::PointerType* thread_type() {
|
||||
return context().thread_type();
|
||||
}
|
||||
- static const llvm::PointerType* zeroStack_type() {
|
||||
+ static llvm::PointerType* zeroStack_type() {
|
||||
return context().zeroStack_type();
|
||||
}
|
||||
- static const llvm::FunctionType* entry_point_type() {
|
||||
+ static llvm::FunctionType* entry_point_type() {
|
||||
return context().entry_point_type();
|
||||
}
|
||||
- static const llvm::FunctionType* osr_entry_point_type() {
|
||||
+ static llvm::FunctionType* osr_entry_point_type() {
|
||||
return context().osr_entry_point_type();
|
||||
}
|
||||
|
||||
// Mappings
|
||||
public:
|
||||
- static const llvm::Type* to_stackType(BasicType type) {
|
||||
+ static llvm::Type* to_stackType(BasicType type) {
|
||||
return context().to_stackType(type);
|
||||
}
|
||||
- static const llvm::Type* to_stackType(ciType* type) {
|
||||
+ static llvm::Type* to_stackType(ciType* type) {
|
||||
return to_stackType(type->basic_type());
|
||||
}
|
||||
- static const llvm::Type* to_arrayType(BasicType type) {
|
||||
+ static llvm::Type* to_arrayType(BasicType type) {
|
||||
return context().to_arrayType(type);
|
||||
}
|
||||
- static const llvm::Type* to_arrayType(ciType* type) {
|
||||
+ static llvm::Type* to_arrayType(ciType* type) {
|
||||
return to_arrayType(type->basic_type());
|
||||
}
|
||||
};
|
||||
Index: icedtea6-shark/openjdk/hotspot/src/share/vm/shark/sharkFunction.hpp
|
||||
===================================================================
|
||||
--- openjdk/hotspot/src/share/vm/shark/sharkFunction.hpp 2011-08-30 20:23:51.805227002 +0000
|
||||
+++ openjdk/hotspot/src/share/vm/shark/sharkFunction.hpp 2011-08-30 20:24:26.455227000 +0000
|
||||
@@ -91,7 +91,7 @@
|
||||
bool is_osr() const {
|
||||
return flow()->is_osr_flow();
|
||||
}
|
||||
- const llvm::FunctionType* entry_point_type() const {
|
||||
+ llvm::FunctionType* entry_point_type() const {
|
||||
if (is_osr())
|
||||
return SharkType::osr_entry_point_type();
|
||||
else
|
202
dev-java/icedtea/files/icedtea-7.2.0_pax_kernel_support.patch
Normal file
202
dev-java/icedtea/files/icedtea-7.2.0_pax_kernel_support.patch
Normal file
@ -0,0 +1,202 @@
|
||||
Author: Ralph Sennhaser <sera@gentoo.org>
|
||||
|
||||
The idea is to apply the pax markings before using a freshly built jdk. Be it
|
||||
for running tests or building additonal vms or after bootstrap to build the
|
||||
final jdk.
|
||||
|
||||
There are currently two types of pax markings with the userspace utilities
|
||||
chpax and paxctl. Both types of pax marking are base on modifing the ELFs. A
|
||||
third type based on xattrs is in development.
|
||||
|
||||
The embedded test_gamma.patch is taken from icedtea 2.0 itself.
|
||||
|
||||
diff --git a/Makefile.am b/Makefile.am
|
||||
index 129edf2..158b149 100644
|
||||
--- a/Makefile.am
|
||||
+++ b/Makefile.am
|
||||
@@ -279,6 +279,10 @@ else
|
||||
ICEDTEA_PATCHES += patches/nss-not-enabled-config.patch
|
||||
endif
|
||||
|
||||
+if WITH_PAX
|
||||
+ICEDTEA_PATCHES += patches/test_gamma.patch
|
||||
+endif
|
||||
+
|
||||
ICEDTEA_PATCHES += $(DISTRIBUTION_PATCHES)
|
||||
|
||||
# Bootstrapping patches
|
||||
@@ -300,7 +304,6 @@ ICEDTEA_BOOT_PATCHES = \
|
||||
patches/boot/jar.patch \
|
||||
patches/boot/symbols.patch \
|
||||
patches/boot/tobin.patch \
|
||||
- patches/boot/test_gamma.patch \
|
||||
patches/boot/tools.jar.patch \
|
||||
patches/boot/jopt.patch \
|
||||
patches/boot/jaxp-dependency.patch \
|
||||
@@ -320,6 +323,10 @@ ICEDTEA_BOOT_PATCHES = \
|
||||
patches/boot/ecj-autoboxing.patch \
|
||||
patches/boot/xsltproc.patch
|
||||
|
||||
+if !WITH_PAX
|
||||
+ICEDTEA_BOOT_PATCHES += patches/boot/test_gamma.patch
|
||||
+endif
|
||||
+
|
||||
if CP39408_JAVAH
|
||||
ICEDTEA_BOOT_PATCHES += patches/boot/pr39408.patch
|
||||
endif
|
||||
@@ -1612,6 +1619,7 @@ stamps/icedtea.stamp: stamps/bootstrap-directory-symlink-stage2.stamp \
|
||||
$(ICEDTEA_ENV) \
|
||||
-C openjdk/ \
|
||||
$(ICEDTEA_BUILD_TARGET)
|
||||
+ $(abs_top_builddir)/pax-mark-vm $(BUILD_OUTPUT_DIR)/j2sdk-image
|
||||
mkdir -p $(BUILD_OUTPUT_DIR)/j2sdk-image/jre/lib/$(INSTALL_ARCH_DIR)
|
||||
mkdir -p $(BUILD_OUTPUT_DIR)/j2re-image/lib/$(INSTALL_ARCH_DIR)
|
||||
mkdir -p $(BUILD_OUTPUT_DIR)/j2sdk-image/jre/lib/ext
|
||||
@@ -1765,6 +1773,7 @@ stamps/icedtea-boot.stamp: stamps/bootstrap-directory-symlink-stage1.stamp \
|
||||
$(ICEDTEA_ENV_BOOT) \
|
||||
-C openjdk-boot \
|
||||
$(ICEDTEA_BUILD_TARGET)
|
||||
+ $(abs_top_builddir)/pax-mark-vm $(BOOT_BUILD_OUTPUT_DIR)/j2sdk-image
|
||||
@echo "Bootstrapped IcedTea is served:" \
|
||||
$(BOOT_BUILD_OUTPUT_DIR)
|
||||
mkdir -p stamps
|
||||
diff --git a/acinclude.m4 b/acinclude.m4
|
||||
index 5310d71..f08f1a9 100644
|
||||
--- a/acinclude.m4
|
||||
+++ b/acinclude.m4
|
||||
@@ -2181,3 +2181,49 @@ rmdir tmp.$$
|
||||
AM_CONDITIONAL([NO_BYTECODE7], test x"${it_cv_bytecode7}" = "xyes")
|
||||
AC_PROVIDE([$0])dnl
|
||||
])
|
||||
+
|
||||
+AC_DEFUN_ONCE([IT_WITH_PAX],
|
||||
+[
|
||||
+ AC_MSG_CHECKING([for pax utility to use])
|
||||
+ AC_ARG_WITH([pax],
|
||||
+ [AS_HELP_STRING(--with-pax=COMMAND,the command used for pax marking)],
|
||||
+ [
|
||||
+ PAX_COMMAND=${withval}
|
||||
+ if test "x${PAX_COMMAND}" = "xno"; then
|
||||
+ PAX_COMMAND="not specified"
|
||||
+ fi
|
||||
+ ],
|
||||
+ [
|
||||
+ PAX_COMMAND="not specified"
|
||||
+ ])
|
||||
+ case "x${PAX_COMMAND}" in
|
||||
+ xchpax)
|
||||
+ case "${host_cpu}" in
|
||||
+ i?86)
|
||||
+ PAX_COMMAND_ARGS="-msp"
|
||||
+ ;;
|
||||
+ *)
|
||||
+ PAX_COMMAND_ARGS="-m"
|
||||
+ ;;
|
||||
+ esac
|
||||
+ ;;
|
||||
+ xpaxctl)
|
||||
+ case "${host_cpu}" in
|
||||
+ i?86)
|
||||
+ PAX_COMMAND_ARGS="-msp"
|
||||
+ ;;
|
||||
+ *)
|
||||
+ PAX_COMMAND_ARGS="-m"
|
||||
+ ;;
|
||||
+ esac
|
||||
+ ;;
|
||||
+ *)
|
||||
+ PAX_COMMAND="not specified"
|
||||
+ PAX_COMMAND_ARGS="not specified"
|
||||
+ ;;
|
||||
+ esac
|
||||
+ AM_CONDITIONAL(WITH_PAX, test "x${PAX_COMMAND}" != "xnot specified")
|
||||
+ AC_MSG_RESULT(${PAX_COMMAND})
|
||||
+ AC_SUBST(PAX_COMMAND)
|
||||
+ AC_SUBST(PAX_COMMAND_ARGS)
|
||||
+])
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index e0b866b..7c665ef 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -146,6 +146,9 @@ IT_WITH_PROJECT
|
||||
IT_ENABLE_HG
|
||||
IT_WITH_TZDATA_DIR
|
||||
|
||||
+IT_WITH_PAX
|
||||
+AC_CONFIG_FILES([pax-mark-vm], [chmod +x pax-mark-vm])
|
||||
+
|
||||
AC_PATH_TOOL([HG],[hg])
|
||||
if test "x${enable_hg}" = "xyes"; then
|
||||
if test "x${HG}" = x; then
|
||||
diff --git a/patches/test_gamma.patch b/patches/test_gamma.patch
|
||||
new file mode 100644
|
||||
index 0000000..7e8d3d6
|
||||
--- /dev/null
|
||||
+++ b/patches/test_gamma.patch
|
||||
@@ -0,0 +1,47 @@
|
||||
+diff -Nru ../openjdk.orig/openjdk/hotspot/make/linux/Makefile openjdk/hotspot/make/linux/Makefile
|
||||
+--- ../openjdk.orig/openjdk/hotspot/make/linux/Makefile 2009-10-30 17:37:07.000000000 +0000
|
||||
++++ openjdk/hotspot/make/linux/Makefile 2009-10-30 17:45:40.000000000 +0000
|
||||
+@@ -287,42 +287,36 @@
|
||||
+
|
||||
+ $(TARGETS_C2): $(SUBDIRS_C2)
|
||||
+ cd $(OSNAME)_$(BUILDARCH)_compiler2/$@ && $(MAKE) $(MFLAGS)
|
||||
+- cd $(OSNAME)_$(BUILDARCH)_compiler2/$@ && ./test_gamma
|
||||
+ ifdef INSTALL
|
||||
+ cd $(OSNAME)_$(BUILDARCH)_compiler2/$@ && $(MAKE) $(MFLAGS) install
|
||||
+ endif
|
||||
+
|
||||
+ $(TARGETS_TIERED): $(SUBDIRS_TIERED)
|
||||
+ cd $(OSNAME)_$(BUILDARCH)_tiered/$(patsubst %tiered,%,$@) && $(MAKE) $(MFLAGS)
|
||||
+- cd $(OSNAME)_$(BUILDARCH)_tiered/$(patsubst %tiered,%,$@) && ./test_gamma
|
||||
+ ifdef INSTALL
|
||||
+ cd $(OSNAME)_$(BUILDARCH)_tiered/$(patsubst %tiered,%,$@) && $(MAKE) $(MFLAGS) install
|
||||
+ endif
|
||||
+
|
||||
+ $(TARGETS_C1): $(SUBDIRS_C1)
|
||||
+ cd $(OSNAME)_$(BUILDARCH)_compiler1/$(patsubst %1,%,$@) && $(MAKE) $(MFLAGS)
|
||||
+- cd $(OSNAME)_$(BUILDARCH)_compiler1/$(patsubst %1,%,$@) && ./test_gamma
|
||||
+ ifdef INSTALL
|
||||
+ cd $(OSNAME)_$(BUILDARCH)_compiler1/$(patsubst %1,%,$@) && $(MAKE) $(MFLAGS) install
|
||||
+ endif
|
||||
+
|
||||
+ $(TARGETS_CORE): $(SUBDIRS_CORE)
|
||||
+ cd $(OSNAME)_$(BUILDARCH)_core/$(patsubst %core,%,$@) && $(MAKE) $(MFLAGS)
|
||||
+- cd $(OSNAME)_$(BUILDARCH)_core/$(patsubst %core,%,$@) && ./test_gamma
|
||||
+ ifdef INSTALL
|
||||
+ cd $(OSNAME)_$(BUILDARCH)_core/$(patsubst %core,%,$@) && $(MAKE) $(MFLAGS) install
|
||||
+ endif
|
||||
+
|
||||
+ $(TARGETS_ZERO): $(SUBDIRS_ZERO)
|
||||
+ cd $(OSNAME)_$(VARIANTARCH)_zero/$(patsubst %zero,%,$@) && $(MAKE) $(MFLAGS)
|
||||
+- cd $(OSNAME)_$(VARIANTARCH)_zero/$(patsubst %zero,%,$@) && ./test_gamma
|
||||
+ ifdef INSTALL
|
||||
+ cd $(OSNAME)_$(VARIANTARCH)_zero/$(patsubst %zero,%,$@) && $(MAKE) $(MFLAGS) install
|
||||
+ endif
|
||||
+
|
||||
+ $(TARGETS_SHARK): $(SUBDIRS_SHARK)
|
||||
+ cd $(OSNAME)_$(VARIANTARCH)_shark/$(patsubst %shark,%,$@) && $(MAKE) $(MFLAGS)
|
||||
+- cd $(OSNAME)_$(VARIANTARCH)_shark/$(patsubst %shark,%,$@) && ./test_gamma
|
||||
+ ifdef INSTALL
|
||||
+ cd $(OSNAME)_$(VARIANTARCH)_shark/$(patsubst %shark,%,$@) && $(MAKE) $(MFLAGS) install
|
||||
+ endif
|
||||
+
|
||||
diff --git a/pax-mark-vm.in b/pax-mark-vm.in
|
||||
new file mode 100644
|
||||
index 0000000..118bb61
|
||||
--- /dev/null
|
||||
+++ b/pax-mark-vm.in
|
||||
@@ -0,0 +1,13 @@
|
||||
+#!/bin/sh
|
||||
+
|
||||
+# Taken from Gentoo's pax-utils.eclass
|
||||
+list_paxables() {
|
||||
+ file "$@" 2> /dev/null | grep -E 'ELF.*(executable|shared object)' | sed -e 's/: .*$//'
|
||||
+}
|
||||
+
|
||||
+if test "@PAX_COMMAND@" != "not specified"; then
|
||||
+ for paxable in `list_paxables "${1}"/bin/* "${1}"/jre/bin/*`; do
|
||||
+ echo "PaX mark @PAX_COMMAND_ARGS@ ${paxable}"
|
||||
+ @PAX_COMMAND@ @PAX_COMMAND_ARGS@ "${paxable}"
|
||||
+ done
|
||||
+fi
|
178
dev-java/icedtea/files/icedtea-7.2.0_separate_shark_target.patch
Normal file
178
dev-java/icedtea/files/icedtea-7.2.0_separate_shark_target.patch
Normal file
@ -0,0 +1,178 @@
|
||||
Author: Ralph Sennhauser <sera@gentoo.org>
|
||||
|
||||
Split out add-shark target.
|
||||
|
||||
This way the shark build will end up in shark instead of zero and java -zero
|
||||
will work as expected. Ie. allows for easier setup of per app vm preferences
|
||||
if desired. Also removes a bunch of conditionals which will simplify writing
|
||||
jvm.cfg correctly without a full rebuild.
|
||||
|
||||
diff --git a/Makefile.am b/Makefile.am
|
||||
index 129edf2..fc4cc20 100644
|
||||
--- a/Makefile.am
|
||||
+++ b/Makefile.am
|
||||
@@ -1740,7 +1740,7 @@ clean-icedtea:
|
||||
rm -f stamps/icedtea.stamp stamps/icedtea-debug.stamp
|
||||
|
||||
stamps/icedtea-stage2.stamp: stamps/icedtea.stamp stamps/add-cacao.stamp \
|
||||
- stamps/add-zero.stamp stamps/add-jamvm.stamp
|
||||
+ stamps/add-zero.stamp stamps/add-jamvm.stamp stamps/add-shark.stamp
|
||||
mkdir -p stamps
|
||||
touch $@
|
||||
|
||||
@@ -1748,7 +1748,8 @@ clean-icedtea-stage2: clean-add-jamvm
|
||||
rm -f stamps/icedtea-stage2.stamp
|
||||
|
||||
stamps/icedtea-debug-stage2.stamp: stamps/icedtea-debug.stamp \
|
||||
- stamps/add-cacao-debug.stamp stamps/add-zero-debug.stamp stamps/add-jamvm-debug.stamp
|
||||
+ stamps/add-cacao-debug.stamp stamps/add-zero-debug.stamp stamps/add-jamvm-debug.stamp \
|
||||
+ stamps/add-shark-debug.stamp
|
||||
mkdir -p stamps
|
||||
touch $@
|
||||
|
||||
@@ -2060,12 +2061,7 @@ clean-add-cacao-debug:
|
||||
CONFIGURE_ARGS = @CONFIGURE_ARGS@
|
||||
ADD_ZERO_CONFIGURE_ARGS = \
|
||||
--with-jdk-home=$(BUILD_OUTPUT_DIR)/j2sdk-image \
|
||||
- --disable-bootstrap --enable-zero
|
||||
-if ADD_SHARK_BUILD
|
||||
-ADD_ZERO_CONFIGURE_ARGS += \
|
||||
- --enable-shark
|
||||
-endif
|
||||
-ADD_ZERO_CONFIGURE_ARGS += \
|
||||
+ --disable-bootstrap --enable-zero \
|
||||
--disable-docs \
|
||||
$(filter-out '--with-jdk-home=% '--with-ecj=% \
|
||||
'--with-java=% '--with-javah=% \
|
||||
@@ -2096,32 +2092,20 @@ if ADD_ZERO_BUILD
|
||||
$(ADD_ZERO_EXTRA_BUILD_ENV) \
|
||||
$(ARCH_PREFIX) $(MAKE) -C zerovm ICEDTEA_BUILD_TARGET=hotspot icedtea-stage2
|
||||
|
||||
-if ZERO_BUILD
|
||||
- mkdir -p $(BUILD_JRE_ARCH_DIR)/shark
|
||||
- cp -a zerovm/$(BUILD_DIR)/hotspot/import/jre/lib/$(INSTALL_ARCH_DIR)/server/* \
|
||||
- $(BUILD_JRE_ARCH_DIR)/shark/
|
||||
- printf -- '-shark KNOWN\n' >> $(BUILD_JRE_ARCH_DIR)/jvm.cfg
|
||||
- printf -- '-zero ERROR\n' >> $(BUILD_JRE_ARCH_DIR)/jvm.cfg
|
||||
-else
|
||||
mkdir -p $(BUILD_JRE_ARCH_DIR)/zero
|
||||
cp -a zerovm/$(BUILD_DIR)/hotspot/import/jre/lib/$(INSTALL_ARCH_DIR)/server/* \
|
||||
$(BUILD_JRE_ARCH_DIR)/zero/
|
||||
printf -- '-zero KNOWN\n' >> $(BUILD_JRE_ARCH_DIR)/jvm.cfg
|
||||
- printf -- '-shark ERROR\n' >> $(BUILD_JRE_ARCH_DIR)/jvm.cfg
|
||||
-endif
|
||||
else
|
||||
printf -- '-zero ERROR\n' >> $(BUILD_JRE_ARCH_DIR)/jvm.cfg
|
||||
- printf -- '-shark ERROR\n' >> $(BUILD_JRE_ARCH_DIR)/jvm.cfg
|
||||
endif
|
||||
touch $@
|
||||
|
||||
clean-add-zero:
|
||||
rm -rf $(BUILD_JRE_ARCH_DIR)/zero
|
||||
- rm -rf $(BUILD_JRE_ARCH_DIR)/shark
|
||||
rm -rf zerovm
|
||||
if [ -e $(BUILD_JRE_ARCH_DIR)/jvm.cfg ] ; then \
|
||||
sed -i 's#-zero KNOWN#-zero ERROR#' $(BUILD_JRE_ARCH_DIR)/jvm.cfg ; \
|
||||
- sed -i 's#-shark KNOWN#-shark ERROR#' $(BUILD_JRE_ARCH_DIR)/jvm.cfg ; \
|
||||
fi
|
||||
rm -f stamps/add-zero.stamp
|
||||
|
||||
@@ -2137,33 +2121,88 @@ if ADD_ZERO_BUILD
|
||||
$(ADD_ZERO_EXTRA_BUILD_ENV) \
|
||||
$(ARCH_PREFIX) $(MAKE) -C zerovm ICEDTEA_DEBUG_BUILD_TARGET=hotspot icedtea-stage2
|
||||
|
||||
-if ZERO_BUILD
|
||||
- mkdir -p $(BUILD_DEBUG_JRE_ARCH_DIR)/shark
|
||||
- cp -a zerovm/$(BUILD_OUTPUT_DIR)/hotspot/import/jre/lib/$(INSTALL_ARCH_DIR)/server/* \
|
||||
- $(BUILD_DEBUG_JRE_ARCH_DIR)/shark/
|
||||
- printf -- '-shark KNOWN\n' >> $(BUILD_DEBUG_JRE_ARCH_DIR)/jvm.cfg
|
||||
-else
|
||||
mkdir -p $(BUILD_DEBUG_JRE_ARCH_DIR)/zero
|
||||
cp -a zerovm/$(BUILD_OUTPUT_DIR)/hotspot/import/jre/lib/$(INSTALL_ARCH_DIR)/server/* \
|
||||
$(BUILD_DEBUG_JRE_ARCH_DIR)/zero/
|
||||
printf -- '-zero KNOWN\n' >> $(BUILD_DEBUG_JRE_ARCH_DIR)/jvm.cfg
|
||||
-endif
|
||||
else
|
||||
printf -- '-zero ERROR\n' >> $(BUILD_DEBUG_JRE_ARCH_DIR)/jvm.cfg
|
||||
- printf -- '-shark ERROR\n' >> $(BUILD_DEBUG_JRE_ARCH_DIR)/jvm.cfg
|
||||
endif
|
||||
touch $@
|
||||
|
||||
clean-add-zero-debug:
|
||||
rm -rf $(BUILD_DEBUG_JRE_ARCH_DIR)/zero
|
||||
- rm -rf $(BUILD_DEBUG_JRE_ARCH_DIR)/shark
|
||||
rm -rf zerovm
|
||||
if [ -e $(BUILD_DEBUG_JRE_ARCH_DIR)/jvm.cfg ] ; then \
|
||||
sed -i 's#-zero KNOWN#-zero ERROR#' $(BUILD_DEBUG_JRE_ARCH_DIR)/jvm.cfg ; \
|
||||
- sed -i 's#-shark KNOWN#-shark ERROR#' $(BUILD_DEBUG_JRE_ARCH_DIR)/jvm.cfg ; \
|
||||
fi
|
||||
rm -f stamps/add-zero-debug.stamp
|
||||
|
||||
+ADD_SHARK_CONFIGURE_ARGS = \
|
||||
+ $(ADD_ZERO_CONFIGURE_ARGS) \
|
||||
+ --enable-shark
|
||||
+
|
||||
+ADD_SHARK_EXTRA_BUILD_ENV = \
|
||||
+ $(ADD_ZERO_EXTRA_BUILD_ENV)
|
||||
+
|
||||
+stamps/add-shark.stamp: stamps/icedtea.stamp
|
||||
+ mkdir -p stamps
|
||||
+if ADD_SHARK_BUILD
|
||||
+ mkdir -p sharkvm
|
||||
+
|
||||
+ cd sharkvm && \
|
||||
+ $(ADD_SHARK_EXTRA_BUILD_ENV) \
|
||||
+ $(ARCH_PREFIX) $(abs_top_srcdir)/configure $(ADD_SHARK_CONFIGURE_ARGS)
|
||||
+
|
||||
+ $(ADD_SHARK_EXTRA_BUILD_ENV) \
|
||||
+ $(ARCH_PREFIX) $(MAKE) -C sharkvm ICEDTEA_BUILD_TARGET=hotspot icedtea-stage2
|
||||
+
|
||||
+ mkdir -p $(BUILD_JRE_ARCH_DIR)/shark
|
||||
+ cp -a sharkvm/$(BUILD_DIR)/hotspot/import/jre/lib/$(INSTALL_ARCH_DIR)/server/* \
|
||||
+ $(BUILD_JRE_ARCH_DIR)/shark/
|
||||
+ printf -- '-shark KNOWN\n' >> $(BUILD_JRE_ARCH_DIR)/jvm.cfg
|
||||
+else
|
||||
+ printf -- '-shark ERROR\n' >> $(BUILD_JRE_ARCH_DIR)/jvm.cfg
|
||||
+endif
|
||||
+ touch $@
|
||||
+
|
||||
+clean-add-shark:
|
||||
+ rm -rf $(BUILD_JRE_ARCH_DIR)/shark
|
||||
+ rm -rf sharkvm
|
||||
+ if [ -e $(BUILD_JRE_ARCH_DIR)/jvm.cfg ] ; then \
|
||||
+ sed -i 's#-shark KNOWN#-shark ERROR#' $(BUILD_JRE_ARCH_DIR)/jvm.cfg ; \
|
||||
+ fi
|
||||
+ rm -f stamps/add-shark.stamp
|
||||
+
|
||||
+stamps/add-shark-debug.stamp: stamps/icedtea-debug.stamp
|
||||
+ mkdir -p stamps
|
||||
+if ADD_SHARK_BUILD
|
||||
+ mkdir -p sharkvm
|
||||
+
|
||||
+ cd sharkvm && \
|
||||
+ $(ADD_SHARK_EXTRA_BUILD_ENV) \
|
||||
+ $(ARCH_PREFIX) $(abs_top_srcdir)/configure $(ADD_SHARK_CONFIGURE_ARGS)
|
||||
+
|
||||
+ $(ADD_SHARK_EXTRA_BUILD_ENV) \
|
||||
+ $(ARCH_PREFIX) $(MAKE) -C sharkvm ICEDTEA_DEBUG_BUILD_TARGET=hotspot icedtea-stage2
|
||||
+
|
||||
+ mkdir -p $(BUILD_DEBUG_JRE_ARCH_DIR)/shark
|
||||
+ cp -a sharkvm/$(BUILD_OUTPUT_DIR)/hotspot/import/jre/lib/$(INSTALL_ARCH_DIR)/server/* \
|
||||
+ $(BUILD_DEBUG_JRE_ARCH_DIR)/shark/
|
||||
+ printf -- '-shark KNOWN\n' >> $(BUILD_DEBUG_JRE_ARCH_DIR)/jvm.cfg
|
||||
+else
|
||||
+ printf -- '-shark ERROR\n' >> $(BUILD_DEBUG_JRE_ARCH_DIR)/jvm.cfg
|
||||
+endif
|
||||
+ touch $@
|
||||
+
|
||||
+clean-add-shark-debug:
|
||||
+ rm -rf $(BUILD_DEBUG_JRE_ARCH_DIR)/shark
|
||||
+ rm -rf sharkvm
|
||||
+ if [ -e $(BUILD_DEBUG_JRE_ARCH_DIR)/jvm.cfg ] ; then \
|
||||
+ sed -i 's#-shark KNOWN#-shark ERROR#' $(BUILD_DEBUG_JRE_ARCH_DIR)/jvm.cfg ; \
|
||||
+ fi
|
||||
+ rm -f stamps/add-shark-debug.stamp
|
||||
+
|
||||
# end additional VMs
|
||||
|
||||
# jtreg
|
16
dev-java/icedtea/files/icedtea-7.2.0_shark_jvm_rpath.patch
Normal file
16
dev-java/icedtea/files/icedtea-7.2.0_shark_jvm_rpath.patch
Normal file
@ -0,0 +1,16 @@
|
||||
Author: Ralph Sennhauser <sera@gentoo.org>
|
||||
|
||||
The llvm libdir isn't in the default search path on Gentoo. Adding path explicitely.
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index e0b866b..4a10cf3 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -405,6 +405,7 @@ if test "x${SHARK_BUILD_TRUE}" = x || test "x${ADD_SHARK_BUILD_TRUE}" = x; then
|
||||
LLVM_LDFLAGS="$LLVM_LDFLAGS$flag"
|
||||
fi
|
||||
done
|
||||
+ LLVM_LDFLAGS="$LLVM_LDFLAGS -Wl,-rpath,$($LLVM_CONFIG --libdir)"
|
||||
dnl LLVM_LIBS
|
||||
LIBS_SAVED=$LIBS
|
||||
LDFLAGS_SAVED=$LDFLAGS
|
38
dev-java/icedtea/files/icedtea-7.2.0_shark_llvm_flags.patch
Normal file
38
dev-java/icedtea/files/icedtea-7.2.0_shark_llvm_flags.patch
Normal file
@ -0,0 +1,38 @@
|
||||
Author: Ralph Sennhauser <sera@gentoo.org>
|
||||
|
||||
This was fixed in openjdk6, this is a partial forward port of
|
||||
http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=639
|
||||
|
||||
diff --git a/Makefile.am b/Makefile.am
|
||||
index 129edf2..d77ac42 100644
|
||||
--- a/Makefile.am
|
||||
+++ b/Makefile.am
|
||||
@@ -233,7 +233,8 @@ REWRITER_SRCS = $(top_srcdir)/rewriter/com/redhat/rewriter/ClassRewriter.java
|
||||
|
||||
# Patch list
|
||||
|
||||
-ICEDTEA_PATCHES =
|
||||
+ICEDTEA_PATCHES = \
|
||||
+ patches/shark-llvm-flags.patch
|
||||
|
||||
# Conditional patches
|
||||
|
||||
diff --git a/patches/shark-llvm-flags.patch b/patches/shark-llvm-flags.patch
|
||||
new file mode 100644
|
||||
index 0000000..3efcf7e
|
||||
--- /dev/null
|
||||
+++ b/patches/shark-llvm-flags.patch
|
||||
@@ -0,0 +1,13 @@
|
||||
+--- openjdk.orig/hotspot/make/linux/makefiles/launcher.make 2011-02-22 16:51:24.000000000 +0000
|
||||
++++ openjdk/hotspot/make/linux/makefiles/launcher.make 2011-02-24 03:01:36.000000000 +0000
|
||||
+@@ -52,6 +52,10 @@
|
||||
+ LAUNCHER.o = launcher.o
|
||||
+ LFLAGS_LAUNCHER += -L `pwd`
|
||||
+ LIBS_LAUNCHER += -l$(JVM) $(LIBS)
|
||||
++ ifeq ($(SHARK_BUILD), true)
|
||||
++ LFLAGS_LAUNCHER += $(LLVM_LDFLAGS)
|
||||
++ LIBS_LAUNCHER += $(LLVM_LIBS)
|
||||
++ endif
|
||||
+ endif
|
||||
+
|
||||
+ LINK_LAUNCHER = $(LINK.c)
|
18
dev-java/icedtea/files/icedtea.env
Normal file
18
dev-java/icedtea/files/icedtea.env
Normal file
@ -0,0 +1,18 @@
|
||||
# Copyright 1999-2011 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
# $Header: /var/cvsroot/gentoo-x86/dev-java/icedtea/files/icedtea.env,v 1.3 2011/11/28 15:29:59 sera Exp $
|
||||
|
||||
VERSION="IcedTea JDK @PV@"
|
||||
JAVA_HOME="@GENTOO_PORTAGE_EPREFIX@/usr/@LIBDIR@/icedtea@SLOT@"
|
||||
JDK_HOME="@GENTOO_PORTAGE_EPREFIX@/usr/@LIBDIR@/icedtea@SLOT@"
|
||||
JAVAC="${JAVA_HOME}/bin/javac"
|
||||
PATH="${JAVA_HOME}/bin:${JAVA_HOME}/jre/bin"
|
||||
ROOTPATH="${JAVA_HOME}/bin:${JAVA_HOME}/jre/bin"
|
||||
LDPATH="${JAVA_HOME}/jre/lib/@PLATFORM@/:${JAVA_HOME}/jre/lib/@PLATFORM@/native_threads/:${JAVA_HOME}/jre/lib/@PLATFORM@/xawt/:${JAVA_HOME}/jre/lib/@PLATFORM@/server/"
|
||||
MANPATH="@GENTOO_PORTAGE_EPREFIX@/usr/@LIBDIR@/icedtea@SLOT@/man"
|
||||
PROVIDES_TYPE="JDK JRE"
|
||||
PROVIDES_VERSION="1.@SLOT@"
|
||||
# Taken from sun.boot.class.path property
|
||||
BOOTCLASSPATH="${JAVA_HOME}/jre/lib/resources.jar:${JAVA_HOME}/jre/lib/rt.jar:${JAVA_HOME}/jre/lib/jsse.jar:${JAVA_HOME}/jre/lib/jce.jar:${JAVA_HOME}/jre/lib/charsets.jar"
|
||||
GENERATION="2"
|
||||
ENV_VARS="JAVA_HOME JDK_HOME JAVAC PATH ROOTPATH LDPATH MANPATH"
|
329
dev-java/icedtea/icedtea-6.1.10.5.ebuild
Normal file
329
dev-java/icedtea/icedtea-6.1.10.5.ebuild
Normal file
@ -0,0 +1,329 @@
|
||||
# Copyright 1999-2012 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
# $Header: /var/cvsroot/gentoo-x86/dev-java/icedtea/icedtea-6.1.10.4-r3.ebuild,v 1.1 2011/12/02 12:27:17 sera Exp $
|
||||
# Build written by Andrew John Hughes (gnu_andrew@member.fsf.org)
|
||||
|
||||
# *********************************************************
|
||||
# * IF YOU CHANGE THIS EBUILD, CHANGE ICEDTEA-7.* AS WELL *
|
||||
# *********************************************************
|
||||
|
||||
EAPI="4"
|
||||
|
||||
inherit autotools java-pkg-2 java-vm-2 pax-utils prefix versionator virtualx
|
||||
|
||||
ICEDTEA_PKG=${PN}$(replace_version_separator 1 -)
|
||||
OPENJDK_BUILD="22"
|
||||
OPENJDK_DATE="28_feb_2011"
|
||||
OPENJDK_TARBALL="openjdk-6-src-b${OPENJDK_BUILD}-${OPENJDK_DATE}.tar.gz"
|
||||
JAXP_TARBALL="jaxp144_01.zip"
|
||||
JAXWS_TARBALL="jdk6-jaxws-b20.zip"
|
||||
JAF_TARBALL="jdk6-jaf-b20.zip"
|
||||
HOTSPOT_TARBALL="f0f676c5a2c6.tar.gz"
|
||||
CACAO_TARBALL="4549072ab2de.tar.gz" # 30 Aug 2011
|
||||
JAMVM_TARBALL="jamvm-310c491ddc14e92a6ffff27030a1a1821e6395a8.tar.gz" # 26 Sep 2011
|
||||
|
||||
DESCRIPTION="A harness to build OpenJDK using Free Software build tools and dependencies"
|
||||
HOMEPAGE="http://icedtea.classpath.org"
|
||||
SRC_URI="
|
||||
http://icedtea.classpath.org/download/source/${ICEDTEA_PKG}.tar.gz
|
||||
http://download.java.net/openjdk/jdk6/promoted/b${OPENJDK_BUILD}/${OPENJDK_TARBALL}
|
||||
http://icedtea.classpath.org/download/drops/${JAXWS_TARBALL}
|
||||
http://icedtea.classpath.org/download/drops/${JAF_TARBALL}
|
||||
http://icedtea.classpath.org/download/drops/${JAXP_TARBALL}
|
||||
hs20? ( http://hg.openjdk.java.net/hsx/hsx20/master/archive/${HOTSPOT_TARBALL} )
|
||||
http://icedtea.classpath.org/download/drops/cacao/${CACAO_TARBALL}
|
||||
http://icedtea.classpath.org/download/drops/jamvm/${JAMVM_TARBALL}"
|
||||
|
||||
LICENSE="Apache-1.1 Apache-2.0 GPL-1 GPL-2 GPL-2-with-linking-exception LGPL-2 MPL-1.0 MPL-1.1 public-domain W3C"
|
||||
SLOT="6"
|
||||
KEYWORDS="~amd64 ~ppc ~ppc64 ~x86"
|
||||
|
||||
IUSE="+X +alsa cjk +cups debug doc examples +hs20 javascript +jbootstrap +nsplugin
|
||||
+nss pax_kernel pulseaudio +source systemtap test +webstart -zero"
|
||||
|
||||
# Ideally the following were optional at build time.
|
||||
ALSA_COMMON_DEP="
|
||||
>=media-libs/alsa-lib-1.0"
|
||||
CUPS_COMMON_DEP="
|
||||
>=net-print/cups-1.2.12"
|
||||
X_COMMON_DEP="
|
||||
dev-libs/glib
|
||||
>=media-libs/freetype-2.3.5
|
||||
>=x11-libs/gtk+-2.8:2
|
||||
>=x11-libs/libX11-1.1.3
|
||||
>=x11-libs/libXext-1.1.1
|
||||
>=x11-libs/libXi-1.1.3
|
||||
>=x11-libs/libXrender-0.9.4
|
||||
>=x11-libs/libXtst-1.0.3"
|
||||
X_DEPEND="
|
||||
>=x11-libs/libXau-1.0.3
|
||||
>=x11-libs/libXdmcp-1.0.2
|
||||
>=x11-libs/libXinerama-1.0.2
|
||||
>=x11-libs/libXp-1.0.0
|
||||
x11-proto/inputproto
|
||||
>=x11-proto/xextproto-7.1.1
|
||||
x11-proto/xineramaproto
|
||||
x11-proto/xproto"
|
||||
|
||||
# virtual/libffi is needed for Zero
|
||||
COMMON_DEP="
|
||||
>=media-libs/giflib-4.1.6
|
||||
>=media-libs/libpng-1.2
|
||||
>=sys-libs/zlib-1.2.3
|
||||
virtual/jpeg
|
||||
javascript? ( dev-java/rhino:1.6 )
|
||||
nss? ( >=dev-libs/nss-3.12.5-r1 )
|
||||
pulseaudio? ( >=media-sound/pulseaudio-0.9.11 )
|
||||
systemtap? ( >=dev-util/systemtap-1 )
|
||||
zero? ( virtual/libffi )
|
||||
!amd64? ( !sparc? ( !x86? ( virtual/libffi ) ) )"
|
||||
|
||||
# media-fonts/lklug needs ppc ppc64 keywords
|
||||
RDEPEND="${COMMON_DEP}
|
||||
!dev-java/icedtea6
|
||||
X? (
|
||||
${X_COMMON_DEP}
|
||||
media-fonts/dejavu
|
||||
cjk? (
|
||||
media-fonts/arphicfonts
|
||||
media-fonts/baekmuk-fonts
|
||||
!ppc? ( !ppc64? ( media-fonts/lklug ) )
|
||||
media-fonts/lohit-fonts
|
||||
media-fonts/sazanami
|
||||
)
|
||||
)
|
||||
alsa? ( ${ALSA_COMMON_DEP} )
|
||||
cups? ( ${CUPS_COMMON_DEP} )"
|
||||
|
||||
# Only ant-core-1.7.1-r2 and later properly respect environment variables.
|
||||
# xalan/xerces: automatic code generation (also needed for Ant 1.8.0 to work properly)
|
||||
# ca-certificates, perl and openssl are used for the cacerts keystore generation
|
||||
# xext headers have two variants depending on version - bug #288855
|
||||
# !eclipse-ecj-3.7 - bug #392587
|
||||
# autoconf - as long as we use eautoreconf, version restrictions for bug #294918
|
||||
DEPEND="${COMMON_DEP} ${ALSA_COMMON_DEP} ${CUPS_COMMON_DEP} ${X_COMMON_DEP}
|
||||
|| (
|
||||
>=dev-java/gcj-jdk-4.3
|
||||
dev-java/icedtea-bin:6
|
||||
dev-java/icedtea:6
|
||||
)
|
||||
app-arch/cpio
|
||||
app-arch/zip
|
||||
app-misc/ca-certificates
|
||||
>=dev-java/ant-core-1.7.1-r2
|
||||
dev-java/ant-nodeps
|
||||
>=dev-java/xalan-2.7.0:0
|
||||
>=dev-java/xerces-2.9.1:2
|
||||
dev-lang/perl
|
||||
dev-libs/openssl
|
||||
dev-util/pkgconfig
|
||||
sys-apps/lsb-release
|
||||
|| ( >=sys-devel/autoconf-2.65:2.5 <sys-devel/autoconf-2.64:2.5 )
|
||||
${X_DEPEND}
|
||||
jbootstrap? (
|
||||
|| ( <dev-java/eclipse-ecj-3.7 dev-java/ecj-gcj )
|
||||
)
|
||||
pax_kernel? ( sys-apps/paxctl )"
|
||||
|
||||
PDEPEND="webstart? ( dev-java/icedtea-web:6 )
|
||||
nsplugin? ( dev-java/icedtea-web:6[nsplugin] )"
|
||||
|
||||
# a bit of hack so the VM switching is triggered without causing dependency troubles
|
||||
JAVA_PKG_NV_DEPEND=">=virtual/jdk-1.5"
|
||||
JAVA_PKG_WANT_SOURCE="1.5"
|
||||
JAVA_PKG_WANT_TARGET="1.5"
|
||||
|
||||
pkg_setup() {
|
||||
# quite a hack since java-config does not provide a way for a package
|
||||
# to limit supported VM's for building and their preferred order
|
||||
if [[ -n "${JAVA_PKG_FORCE_VM}" ]]; then
|
||||
einfo "Honoring user-set JAVA_PKG_FORCE_VM"
|
||||
elif has_version "<=dev-java/icedtea-6.1.10.4:6"; then
|
||||
JAVA_PKG_FORCE_VM="icedtea6"
|
||||
elif has_version ">dev-java/icedtea-6.1.10.4:6"; then
|
||||
JAVA_PKG_FORCE_VM="icedtea-6"
|
||||
elif has_version "<dev-java/icedtea-bin-6.1.10.4:6"; then
|
||||
JAVA_PKG_FORCE_VM="icedtea6-bin"
|
||||
elif has_version ">=dev-java/icedtea-bin-6.1.10.4:6"; then
|
||||
JAVA_PKG_FORCE_VM="icedtea-bin-6"
|
||||
elif has_version dev-java/gcj-jdk; then
|
||||
JAVA_PKG_FORCE_VM="gcj-jdk"
|
||||
else
|
||||
die "Unable to find a supported VM for building"
|
||||
fi
|
||||
|
||||
einfo "Forced vm ${JAVA_PKG_FORCE_VM}"
|
||||
java-vm-2_pkg_setup
|
||||
java-pkg-2_pkg_setup
|
||||
}
|
||||
|
||||
src_unpack() {
|
||||
unpack ${ICEDTEA_PKG}.tar.gz
|
||||
mkdir "${S}" || die
|
||||
}
|
||||
|
||||
java_prepare() {
|
||||
# icedtea doesn't like some locales. #330433 #389717
|
||||
export LANG="C" LC_ALL="C"
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
local config bootstrap extra_vms
|
||||
local vm=$(java-pkg_get-current-vm)
|
||||
|
||||
# IcedTea6 can't be built using IcedTea7; its class files are too new
|
||||
if has "${vm}" icedtea6 icedtea-6 icedtea6-bin icedtea-bin-6; then
|
||||
use jbootstrap && bootstrap=yes
|
||||
elif has "${vm}" gcj-jdk; then
|
||||
# gcj-jdk ensures ecj is present.
|
||||
use jbootstrap || einfo "bootstrap forced on for ${vm}, ignoring use jbootstrap"
|
||||
bootstrap=yes
|
||||
else
|
||||
eerror "IcedTea${SLOT} must be built with either a JDK based on GNU Classpath or an existing build of IcedTea${SLOT}."
|
||||
die "Install a GNU Classpath JDK (gcj-jdk)"
|
||||
fi
|
||||
|
||||
if [[ ${bootstrap} ]]; then
|
||||
config="${config} --enable-bootstrap"
|
||||
build_bootstrap_jdk=yes
|
||||
|
||||
# icedtea-6 javac wrapper requires to always have ecj if bootstrapping #392337
|
||||
local ecj_jar="$(readlink "${EPREFIX}"/usr/share/eclipse-ecj/ecj.jar)"
|
||||
# Don't use eclipse-ecj-3.7 #392587
|
||||
local ecj_all=( "${EPREFIX}"/usr/share/{eclipse-ecj,ecj-gcj}-* )
|
||||
ecj_all=( "${ecj_all[@]/*eclipse-ecj-3.7*/}" )
|
||||
if ! has "${ecj_jar%/lib/ecj.jar}" "${ecj_all[@]}"; then
|
||||
ecj_jar="${ecj_jar%/lib/ecj.jar}"
|
||||
ewarn "${ecj_jar##*/} set as system ecj, can't use for bootstrap"
|
||||
ewarn "Found usable: ${ecj_all[@]##*/}"
|
||||
ewarn "using ${ecj_all##*/} instead"
|
||||
ecj_jar="${ecj_all}"/lib/ecj.jar
|
||||
fi
|
||||
config="${config} --with-ecj-jar=${ecj_jar}"
|
||||
else
|
||||
config="${config} --disable-bootstrap"
|
||||
fi
|
||||
|
||||
# Always use HotSpot as the primary VM if available. #389521 #368669 #357633 ...
|
||||
# Otherwise use CACAO
|
||||
if ! has "${ARCH}" amd64 sparc x86; then
|
||||
config="${config} --enable-jamvm --with-jamvm-src-zip=${DISTDIR}/${JAMVM_TARBALL}"
|
||||
fi
|
||||
|
||||
# OpenJDK-specific parallelism support. Bug #389791, #337827
|
||||
# Implementation modified from waf-utils.eclass
|
||||
# Note that "-j" is converted to "-j1" as the system doesn't support --load-average
|
||||
local procs=$(echo -j1 ${MAKEOPTS} | sed -r "s/.*(-j\s*|--jobs=)([0-9]+).*/\2/" )
|
||||
config="${config} --with-parallel-jobs=${procs}";
|
||||
einfo "Configuring using --with-parallel-jobs=${procs}"
|
||||
|
||||
if use javascript ; then
|
||||
config="${config} --with-rhino=$(java-pkg_getjar rhino:1.6 js.jar)"
|
||||
else
|
||||
config="${config} --without-rhino"
|
||||
fi
|
||||
|
||||
if use hs20 ; then
|
||||
config="${config} --with-hotspot-build=hs20 --with-hotspot-src-zip=${DISTDIR}/${HOTSPOT_TARBALL}"
|
||||
fi
|
||||
|
||||
unset JAVA_HOME JDK_HOME CLASSPATH JAVAC JAVACFLAGS
|
||||
|
||||
ECONF_SOURCE="../${ICEDTEA_PKG}" econf ${config} \
|
||||
--with-openjdk-src-zip="${DISTDIR}/${OPENJDK_TARBALL}" \
|
||||
--with-jaxp-drop-zip="${DISTDIR}/${JAXP_TARBALL}" \
|
||||
--with-jaxws-drop-zip="${DISTDIR}/${JAXWS_TARBALL}" \
|
||||
--with-jaf-drop-zip="${DISTDIR}/${JAF_TARBALL}" \
|
||||
--with-jdk-home="$(java-config -O)" \
|
||||
--with-abs-install-dir=/usr/$(get_libdir)/icedtea${SLOT} \
|
||||
$(use_enable !debug optimizations) \
|
||||
$(use_enable doc docs) \
|
||||
$(use_enable nss) \
|
||||
$(use_enable pulseaudio pulse-java) \
|
||||
$(use_enable systemtap)
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
# Would use GENTOO_VM otherwise.
|
||||
export ANT_RESPECT_JAVA_HOME=TRUE
|
||||
|
||||
# ant -diagnostics in Ant 1.8.0 fails without xerces-2 and xalan
|
||||
# Load the least that's needed to avoid possible classpath collisions.
|
||||
export ANT_TASKS="xerces-2 xalan ant-nodeps"
|
||||
|
||||
emake
|
||||
}
|
||||
|
||||
src_test() {
|
||||
# Use Xvfb for tests
|
||||
unset DISPLAY
|
||||
|
||||
Xemake -j1 check
|
||||
}
|
||||
|
||||
src_install() {
|
||||
local dest="/usr/$(get_libdir)/icedtea${SLOT}"
|
||||
local ddest="${ED}/${dest}"
|
||||
dodir "${dest}"
|
||||
|
||||
dodoc "${WORKDIR}"/${ICEDTEA_PKG}/{README,NEWS,AUTHORS,THANKYOU}
|
||||
dosym /usr/share/doc/${PF} /usr/share/doc/${PN}${SLOT}
|
||||
|
||||
cd openjdk.build/j2sdk-image || die
|
||||
|
||||
# doins can't handle symlinks.
|
||||
cp -vRP bin include jre lib man "${ddest}" || die
|
||||
|
||||
dodoc ASSEMBLY_EXCEPTION THIRD_PARTY_README
|
||||
|
||||
if use doc; then
|
||||
# java-pkg_dohtml needed for package-list #302654
|
||||
java-pkg_dohtml -r ../docs/* || die
|
||||
fi
|
||||
|
||||
if use examples; then
|
||||
dodir "${dest}/share";
|
||||
cp -vRP demo sample "${ddest}/share/" || die
|
||||
fi
|
||||
|
||||
if use source; then
|
||||
cp src.zip "${ddest}" || die
|
||||
fi
|
||||
|
||||
# Fix the permissions.
|
||||
find "${ddest}" \! -type l \( -perm /111 -exec chmod 755 {} \; -o -exec chmod 644 {} \; \) || die
|
||||
|
||||
# Needs to be done before generating cacerts
|
||||
java-vm_set-pax-markings "${ddest}"
|
||||
|
||||
# We need to generate keystore - bug #273306
|
||||
einfo "Generating cacerts file from certificates in ${EPREFIX}/usr/share/ca-certificates/"
|
||||
mkdir "${T}/certgen" && cd "${T}/certgen" || die
|
||||
cp "${FILESDIR}/generate-cacerts.pl" . && chmod +x generate-cacerts.pl || die
|
||||
for c in "${EPREFIX}"/usr/share/ca-certificates/*/*.crt; do
|
||||
openssl x509 -text -in "${c}" >> all.crt || die
|
||||
done
|
||||
./generate-cacerts.pl "${ddest}/bin/keytool" all.crt || die
|
||||
cp -vRP cacerts "${ddest}/jre/lib/security/" || die
|
||||
chmod 644 "${ddest}/jre/lib/security/cacerts" || die
|
||||
|
||||
# Bug 390663
|
||||
cp "${FILESDIR}"/fontconfig.Gentoo.properties.src "${T}"/fontconfig.Gentoo.properties || die
|
||||
eprefixify "${T}"/fontconfig.Gentoo.properties
|
||||
insinto "${dest}"/jre/lib
|
||||
doins "${T}"/fontconfig.Gentoo.properties
|
||||
|
||||
set_java_env "${FILESDIR}/icedtea.env"
|
||||
}
|
||||
|
||||
pkg_preinst() {
|
||||
if has_version "<=dev-java/icedtea-6.1.10.4:${SLOT}"; then
|
||||
# portage would preserve the symlink otherwise, related to bug #384397
|
||||
rm -f "${EROOT}/usr/lib/jvm/icedtea6"
|
||||
elog "To unify the layout and simplify scripts, the identifier of Icedtea-6*"
|
||||
elog "has changed from 'icedtea6' to 'icedtea-6' starting from version 6.1.10.4-r1"
|
||||
elog "If you had icedtea6 as system VM, the change should be automatic, however"
|
||||
elog "build VM settings in /etc/java-config-2/build/jdk.conf are not changed"
|
||||
elog "and the same holds for any user VM settings. Sorry for the inconvenience."
|
||||
fi
|
||||
}
|
33
dev-java/icedtea/metadata.xml
Normal file
33
dev-java/icedtea/metadata.xml
Normal file
@ -0,0 +1,33 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
|
||||
<pkgmetadata>
|
||||
<herd>java</herd>
|
||||
<maintainer>
|
||||
<email>gnu_andrew@member.fsf.org</email>
|
||||
<name>Andrew John Hughes</name>
|
||||
<description>Proxy Maintainer</description>
|
||||
</maintainer>
|
||||
<maintainer>
|
||||
<email>caster@gentoo.org</email>
|
||||
<name>Vlastimil Babka</name>
|
||||
<description>Committer (CC me)</description>
|
||||
</maintainer>
|
||||
<longdescription>The IcedTea project provides a harness to build the source code from OpenJDK (http://openjdk.java.net) using Free Software build tools along with additional tools such as a browser plugin and Web Start support via NetX. </longdescription>
|
||||
<use>
|
||||
<flag name="cacao">Build additionally the CACAO virtual machine.</flag>
|
||||
<flag name="hs16">Use the new version of HotSpot (16).</flag>
|
||||
<flag name="hs19">Use the new version of HotSpot (19).</flag>
|
||||
<flag name="hs20">Use the new version of HotSpot (20).</flag>
|
||||
<flag name="jamvm">Build additionally the JamVM virtual machine.</flag>
|
||||
<flag name="jbootstrap">If possible, recompile the final IcedTea executables with itself.</flag>
|
||||
<flag name="nio2">Enable backport of NIO2 to OpenJDK6.</flag>
|
||||
<flag name="nss">Enable NSS security provider support.</flag>
|
||||
<flag name="nsplugin">Enable browser plugin (NPPlugin), requires also the webstart flag to be enabled.</flag>
|
||||
<flag name="pax_kernel">Apply patch needed for pax enabled kernels.</flag>
|
||||
<flag name="shark">Build additionally the Shark virtual machine.</flag>
|
||||
<flag name="systemtap">Enable SystemTap probes in HotSpot.</flag>
|
||||
<flag name="webstart">Enable Web Start support (via NetX).</flag>
|
||||
<flag name="xrender">Enable support for using XRender with the AWT libraries.</flag>
|
||||
<flag name="zero">Build additionally the Zero virtual machine.</flag>
|
||||
</use>
|
||||
</pkgmetadata>
|
Loading…
Reference in New Issue
Block a user