Date: Thu, 17 Aug 2000 04:01:55 +0900 From: Fuyuhiko Maruyama <fuyuhik8@is.titech.ac.jp> To: freebsd-java@FreeBSD.ORG Subject: Experimental patch enabling native_threads. Message-ID: <554s4lm3mk.wl@is.titech.ac.jp>
index | next in thread | raw e-mail
[-- Attachment #1 --]
Hi, challengers!
I made patches enabling native_threads part of FreeBSD's JDK 1.2.2.
Patches are for FreeBSD's JDK 1.2.2 with patchset-10. To try this,
apply patches to JDK source tree after application of patchset-10's
patches.
*Current Status*
It seems to work at least small program like javac, without JIT,
but some problems are still remaining.
1. Sometime, I/O system call causes unexpected error like EBADF.
I met it when I try to build JDK with native_threads version of
JDK. The problem I see is read system call's failure, and it
causes very strange exception:
Exception in thread "main" java.lang.NoClassDefFoundError: java/lang/Runtime
More strange fact is ktrace's output. It doesn't contains
the failing syscall. Of course, I check the syscall itself is
really performed, by inserting printf before and after the
read system call and it seems to really call read syscall.
So it may be a problem of pthreads implementation instead of
native_threads JDK, but I cannot decide it at this time.
2. Signals doesn't seem to delivered to the thread who raise the
signal. This is really serious problem for JIT compilers using
signals to treat some runtime exception of Java like
NullPointerException, ArithmeticException (e.g. OpenJIT, shujit
and missing sunwjit).
Are there anyway to deliver signal to the signal raising thread?
3. Java2D doesn't work. Notepad seems to work for me faster than
with green_threads, I feel it is strange. Another demos aren't
tested at all.
4. At this time, I test it only on 3.4-STABLE box. Building and
very small test is done on 5.0-CURRENT box too.
5. It will increase the cost of test that our porting is confirm
to JCK. ;-) Dropping native_threads is one reasonable choice
at this time.
6. And more and more I don't find.
Are there somebody who want/try to make native_threads more complete one?
Please revise it. My spare time in this summer is over. ;-<
I think that to make native_threads working is good for not only Java
user but also FreeBSD's thread user, because native_threads use thread
very specially and it realize lacking facilities of POSIX threads
specifications.
By the way, including shell script like prepare_tree.sh in patchset
is useful, isn't it? Of course, I know using ports system is the best way.
Thanks.
--
Fuyuhiko Maruyama <fuyuhik8@is.titech.ac.jp>
Matsuoka laboratory,
Department of Mathematical and Computing Sciences,
Graduate School of Tokyo Institute of Technology.
[-- Attachment #2 --]
a՚9 <kWuݶ Cn0c9{i2U%~$dv?-JUz5C8\G3䧧{^~b7^u~ՄzkowWgL?Ұ3sfw?;{_Ԭ}Vxj>ojژ7=u0ߪ-6+ʷ ̍{g
~pXR4nG7LgaqXgzU:+Uڵր4mc˶]>I7{#;8Nʌ;uόx8̗"7!;鵇jx6^w2
'^g/[^=T;3>tExzxj;}oFhКhޙܮ'joWHv8bQٻeЈ!~ppQ6iK/'OVx^87.AwrG\˳8<YUNwa
^ŰVF9s/?w
Cp%=/0JgcH89LBtFoF1m*N$=>kh=FZ]haC˟֟Mԧ[c%OgϘN̹eOl˃<vrpq94zHP4!&DԘ7}Ug`HeH@5[@Y{~ǝ*a'.
ew7&L*35lĭbUAJ?͘0>w):~PWggi>
:>oZvcYʗYVCӒb9i@|rmFLwR\f &j$_JX&@nhiwÑ(|B`Og_kď~@obs9=nC/.GWN"1m4-*7H'4 kAQb\][PípvFu #p.N2NDҌim6nW;L n|sFS߮)d_ЍJ/
ge%t9f9wcdQerY:6G
~g֔[g>}-p4fy0NܿH%-3".e=q'"{ZF_ʴtlӬgL[z&^"b!T4E"ʻbrM`8D
``qCRy-l"Ze8yxPg+XmV@㈌M[S
87FP( B?Mm._j(_ɑcџ"v&<,_zZx8l|SWV?fա_Q;^_$'[:vk9ј,ߙ1WЖ_ABAqz5@b{8>E"a;+aف.82U1MlaXA
Zˬil>]ז eTc%
MU"d2E!$>J`W!ȏ݇seG7"x?f`=ֆ
2gAܾ^Cv2`]qQgH `́D#+f'GB~DVdNW1
)^UF
X&0D.9j?xN"ȷՍfǸ*.$Bד/NZ3c >!?X$^`?q~j5v~=BMJ?(/p[nbc B eԱƏ)%$e<@]T;7(CW!x$
=Fm m7.!;/
b,rB[ud 4݉G@X4c8ᢄCX d;HYPtu|$#D%}SVl#˦U\q=Wr <6_f=1?r]Pu^l?1Kaژy(ja/AՆbcx4)$\F?XS.eSЎ\&a%z7}}q?5$
DD&~'Hgۈ==ɵ#$lck-vrCD;b;;|i%Mޙw&Sy,@Wͱ{90ћ/}
uTH*ˑxxkCG"Ky2ƳA8p ꁙMl;z*7FItހ/>PvGE?XC<>$;'_<y:nGg$(oDsvoBj:^9<cs?aKWWj>,x.<p v1-Azmb*
b#U ywܟ8&l\^f4oq0W(>8A7Τi_A
1Z`MwQ@TjĠqm\Q$ߘG4X;{շ)LkrsLp4TCل WAzC^"abF[Kx7QRqV۰ǩ#}d7#5U&+}~\-1]Y@>x7z&{[Vs\GcuMs@
qNAx{3&6 +Aw3wz0}^E|
Һ-
TBVt(G+LUef>HiW4Ort+@N7_GhJRI聝z2("qe.Ͳ((3dmat抛\ֳ*\rJI)vg֦p8ɒE+eD$kH5N J6NYM0frMXi,%/(i~n9\}drs sٷ6̤#?(إB5dA(<ĸ] cV>ptQ)MbK~LUÚX_쥘tY46Z-
Q֫'=KY,V4Oo6Gp+ώ~RϢ^>go/oj *ᛮvuӂ"|&$fgL2VoWpc\e`I}p*@O<TduvoMwth=e!TyzuHkm#BcT҈)delB $.!xQf\̄ߏQ
sXbToAOglpE7@Q!>1bwsx#,<d_g|,&zwlO '<3m@h`y3m˧BnM8GBr#cav&(R>ݎ=CѽҦ%*té{L3g&rԍ+ДdK4M D,{X/bSEPM3K>UM O3vB2%#)dōf}?>Q1r~Kl2VGWdS&&k, Iizq^˸_!x!DkM8] ءmd&4[I`<2&2=z8qy܅nF'/|X@&avH+a8h&*XI,1.!BW#OE@I|mHtXXb)|lKˈآuss:ً1cq!8c!
g.u2Jq٬ikr]T1c7A9.a+b]@$}UTBAE^|n eF
@ph>Vwy8>Xb$}kθcZ!MԦ)&y0/@ePr_.Ԡ=^9T:jH0*(3ezMXlo#` Eu`ŵхg&SY.AZQ尟!F
$YX"),X&@h|\Z>|H*/ PwK9Ob,!w&|Dj|A&b@nkq13&<e,2CU+YL~,eYEM*YMTEf_R%#&}J%U]cme=Y??a.^OFyvc+SkL>3YH^xj!7ޥ%U!.Mx.ޔd<ʖzcⷿaSM(JH#wrfEBY±.orfS]eɿ&~w9dw24
I.Sj3 <l @??iA[ܶxkB9|&KB9Qwο3v]5GLw
"Na:T?zDKط'_-ubw]({RjE*<Ӗ:k5QxѪ:F.;- euj@:{m7\c٥x^wmZz̮jJxf(pEQoɣ*lӡG7m-F0}ԳIQ7Ѫ$^v D֔&PD^l0'ydpJ
qc[܅9L<πr<`<jhr/*]:w`k9H""> 1=/iU%5rcB ?v :LROtIjR!?QCIFfexS`ol)V%]RҘQZw?"Ձ?dp&NQޏ4/{jkīEЮoܨG?[X"
Vދ|k,xm,vcǾ^jZhqb"͔%:ܭ1%Ԥ̪ժFQ,V
嘾xJ-<SC+Z>
)uRg`^PLrx͎5{x`IZuLUU.h?Omc6g4cE.Ɣ6>$o@e0UWB.o+/HMmcFjL/c'/fsslFyF.zTy*]\?PƚB*6T/{r}z4)@;J?֊ x:tD
l]N}
\nrϾͤnnm&A~t?}r"LC/s2T!T<&9|pԱB'K%wG7v|DZ]Ng1´ʻ>wPIiOl~-)|KU> IGL(fvtT+L# tL&DcsEӿBrFsjy@9n`Kd9ϲ
҅X߄]\mޯCVr܍mzDZe_~Ųd2Je&Ro")NsԳ$p
~U瓫^R^`|xp|Qx~?>_{]}wޛn}?U{z`_{/WgSuuT_]vÓzqSZl>$/f#Z^EordFQI mYai%cHDvSRu4=b7i:(W[Gi2o1zsOZ$nj%.TO\pbz5WE35e~S9C -SWUޫqnzbވ݅װ:9
B
O6% XMuT_d(go0ZN
<4: C3ǁSjhHfe;h*{Yq
DP8sUET1}煣R(RD
@ՅC
#M&̉U,/!ץSRT:C
Qqd騷'/g upCLSD!p>ʩ?v"dQ"ٌGkUN\DL![$vw^ UtvG0I/ِtf5>5[Bn6^"#!qaxGfx^'%̂Zey$@ '[q
b0j"5Tx)̾@x}FNlFDiǀ[t8M)8x0d;baf9A>spiCKJwV+tLJ>A6MEq5-C|6$u(P.kS$T;XO7]/:&=YWRؔ;\k{#C}rA*uwܷ6*YqęDܰS4/N9'jazfq;{^h氩rIœ!0D'n8gXY{KY_p6J86OAJN?+>߷+ة(q=^\ttE'Ԗrč:>*n>^R̫J[&NcSKtxiHecECJ`BvQ;$YܱzhIoaOmAȉF-%sHUUqܰV]`pt{AҼd951_RfwUфdIVa"
; GHBYs^~̗?$Sx'3?W,JRUQ!Lb"&f]:mi4&BE[LPx"@Mf$Ԥ$F9G&l9]ZlN7b"|UN-8=1͆&
R"iFwd{@ N傕3bLFVg'a(JnSGضs3ڲ&.$X*9
X`4cA$<EY<UXؓ<g&n !%7 Rt0κ{ԕlHÐ04eb{dkTXLL_AY@RpcSZDhj4>@m(JӻOs1)%Âb Z0*q4 =xR1Xr:Z]Y7JjOZ"/
ezqP~X
%HYCjEs|@I2a1AJfQN4lQȅOi)PQnwhytfsx?
"UB^pJh+ٓc
BC?dEJ ȱՁr6$B`?EgiԁYYY\>^Ӵ-R&CI5nwX<Q` R+IEfA}E3ӿ,J{$"=Z7̦,
4EX0@r8#t4O)|SH!(t#7r2RwIFHm`x KEfZ*!pkش1;Ir`'NSLzIGjFtQGY9we].}ۻl*0S0Tmn/lW]Sɹ[@^O5Ol4nGs4%_Үt6w籽e`"12ړ_/1
8"j' `j|օg1{ėv@
3~
+;Jve<528ET8Bh@X9BȖ20a{#(Qȩ+
:6E<&7܁\L
m5M 6iypj"sl-Pz.nQO
2.t{iPijh9qhr1§їd
⧷rJa8ؤ4q7|Rio
>TUb5PSWNѬ>@_XCۊ8%88!bnExĆYqb֜H(
Ց<6|&F?1d֛FQ]OtG@BG'_TTb;Tkֈh.bDtAY^4t:ӎAtb-2c0;"
]9{"n_63bB2RiJ'il6g!;+Ů
7最s\7!vf_%dR~"G|^X׳~4TJ44_zNll?o6۾ԳJԦ44mׅ~i}kS;-S`kh06L/?sanh)ݏZF ^;;b]|W3Kň۷o渆wd?0Chdθ:n8
se+tKr4F\K}"( EtF386Ğq.#J9/7I$墡1 v@Fn}.a .y/%^4CQB<J. VI-&9j~0ɔ17Y&kHRxe>=Q6E?!y]2KnR6ҤJu#l-WݫnL݃F1~(R#1{&-A}ȝװ`,yc7Pk!m(1C^
<iv
C&`'IB% N̟^յjaet"9)<l&x W-Dg➸[7>8Ko6XI7l42C`)i -w;
3I/Q-
eM=[xqϥR%Nxܩz/<Ea:;691[@@I.&I=%o)E)+s ^AxtkWpvᶹƚ)&QĤyӄV٘fd(z7\3
%`_Q_nc(aZ$ut#}
1=B%Җu Mu -;,KrD_kjTq| u}/F\lU?ؙbgZi-vؙbgj#&uZ>D;e/Zcg;; zO48[lh!";,f/U;B<涝h㫐g̖
Q5ʭc(kRt1ט%ӥāZ!zvD:zLA
a9e7r<
P1g<C7YH{44KJ0d
x)W9j
Ka$Z]!JM*ÿOv\{iʻZsCo
VF++XJH8 ȓ!~egcڝL`yg]+?ߨ]ϣDFPlrZi=Ț#kZi=ȲSWC[^wO%]!Ѵf7%`VCm - r٪ZX8r'-[O@;)~9"Q:
oép7ۻϞW):<m;~=y 9l
hYV7M
n(/M9w4%&?\:3oU
$Wy+/\_gejÍ|^m{1mSHȔ$zA z;7[nL69_@9Yܓ1M\g1<TϵNnAe4f{ح@0!GPq>a̽}Imtu7T^I|uŵ$
r?Iu//ez =2>Akhvt{@P}WEť-/moNKia[_,^"'M.滖K[ة~KM4GXl7vd7SEQJ#%auGH){;Ƌ0ijzɋǟ%94.O?XMfo+<d(Z+ڡN,&o
Lzgp{q{gK.*wX2jҺ{GlC/
VP&qfFM"fCpeﴖAd"(ґw%a,(7VD;eyLllCB3|?pjl<2; I%HWM
~o֮NY?89@MUn/8aOјco㏭<
JC멆rPpj8MjJu@`ѪzTz0ͦ
H
h^"(:7_9>%|P3eSFЊgnlX1z/:-^m*^sUoم6{)it6;rmOj6go'te>!PcdOpӈ2$F)>GTfkgTٱ1w&Ze8OaQuV
ssvg;,窿Oуe&Uw& d69Q#dЈ3!ũ~ ^nT4f:Ac6%O}.^o&>³C
+O
[K*`7Cg%%# vՏMN5Z W
l"owH3hٳmrZE'U~R 2oPQAy./~VmwKT}}.O8GXC_g4Jc23ĺ6y:
Adt(-hD+5bq)bU廓t˂JA-%-0a))a_-/ʽIK_
sG
[-- Attachment #3 --]
#!/bin/sh
#
# Setting this to point the directory to use for building JDK.
TOP=/work/jdk1.2.2p10
# Setting this to point the archive for JDK's source tarball.
TARBALL=/archives/jdk1_2_2-src.tar.gz
PATCHDIR=`pwd`
copy_dir () {
return_dir=`pwd`
container_dir=$1
original_dir=$2
clone_dir=$3
echo "Copying ${container_dir}/${original_dir} into ${container_dir}/${clone_dir}"
cd $container_dir
mkdir $clone_dir
cd $original_dir
tar cf - . | (cd ../$clone_dir; tar xf -)
cd $return_dir
}
/usr/X11R6/bin/mkdirhier $TOP
echo "Extracting $TARBALL into $TOP"
(cd $TOP; zcat $TARBALL | tar xf -)
copy_dir $TOP/build solaris freebsd
echo "Applying patches to $TOP/build/freebsd"
(cd $TOP/build/freebsd; patch -s -p1 < ${PATCHDIR}/build.patches)
echo "Applying patches to $TOP/build/share"
(cd $TOP/build/share; patch -s -p1 < ${PATCHDIR}/buildshare.patches)
copy_dir $TOP/src solaris freebsd
echo "Applying patches to $TOP/src/freebsd"
(cd $TOP/src/freebsd; patch -s -p1 < ${PATCHDIR}/src.patches)
echo "Applying patches to $TOP/src/share"
(cd $TOP/src/share; patch -s -p1 < ${PATCHDIR}/srcshare.patches)
copy_dir $TOP/ext/i18n/build solaris freebsd
copy_dir $TOP/ext/i18n/src solaris freebsd
copy_dir $TOP/ext/iiimp/build solaris freebsd
(cd $TOP/ext; patch -s -p0 < ${PATCHDIR}/ext.patches)
home |
help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?554s4lm3mk.wl>
