Skip site navigation (1)Skip section navigation (2)
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{i2U%~$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>tExzxj;}oFhКhޙܮ'joWHv8bQٻeЈ!~ppQ6iK/'OVx^87.݋AwrG\˳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@|rmFLwR\f&j$_JX&@nhiwÑ(|B`Og_kď~@֋obs9=nC/.GWN"1m‡4-*7H'4 kAQb\][PípvFu#p.N2NDҌim6nW;Ln|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&<,_zZx8l|SWV?fա_Q;^_$'[:vk9ј,ߙ1WЖ_ABAqz5@b{8>E"a;+aف.82U1MlaXA
Zˬil>]ז eTc%
MU"d2E!$>J`W!ȏ݇seG7"x?f`=ֆ
2gAܾ^Cv2`]qQgH `́D#+f'GB~DVdNW1
)^UF
X&0D.9j?xN"ȷՍfǸ*.$Bד/NZ€3c	>!?X$^`?q~j5v~=BMJ?(/p[nbc B eԱƏ)%$e<@]T;7(CW!x$
=Fm	m7.!;/
b,rB[ud4޺݉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ހ/>PvGE?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$kH5NJ6NYM0frMXi,%/(i~n9\}drs	sٷ6̤#?(إB5dA(<ĸ] cV>ptQ)MbK~LUÚX_쥘tY46Z-
Q֫'=KY,V4Oo6Gp+ώ~RϢ^>go/oj *ᛮvuӂ"|&$fgL2VoWpc\e`I}p*@O<TœduvoMwth=e!TyzuHkm#BcT҈)delB $.!xQf\̄ߏQ
sXbToAOglpE7@Q!>1bwsx#,<d_g|,&zwlO '<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^|neF
@ph>Vwy8>Xb$}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~,e֌YEM*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
"N׿a: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`^P׸Lrx͎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´ʻ>wPIiO񥆍l~-)|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	mYai%cHDvSRu4=b7i:(W[Gi2o1zsOZ$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[LPx"@Mf$Ԥ$F9G&l9]ZlN7b"|UN-8=1͆&
R"iFwd{@ N傕3bLFVg'a(JnSGضs3ڲ&.$X*9
X`4cA$<EY<UXؓ<g&n!%7 Rt0κ{ԕlHÐ04eb{dkTXLL_AY@RpcSZDhj4>@m(JӻOs1)%ÂbZ0*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#7r2RwIFHm`x KEfZ*!pkش1;Ir`'NSLzIGjFtQGY9we].}ۻl*0S0Tmn/lW]Sɹ[@^O5Ol4nGs4%_Ү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_63bB2RiJ'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&xW-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	Mu-;,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{44KJ0֌d
x)W9j
Ka$Z]!JM*ÿOv\{iʻZsCo
VF++XJH8	ȓ!~egcڝL`yg]+?ߨ]ϣDFPlrZi=Ț#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){;Ƌ0ijzɋǟ%94.O?XMfo+<d(Z+ڡN,&o
Lzgp{q{gK.*wX2jҺ{GlC/
VP&qfFM"fCpeﴖAd"(ґw%a,(7VD;eyLllCB3|?pj׷l<2; I%HWM
~o֮NY?89@MUn/8aOјco㏭<
JC멆rPpj8MjJu@`Ѫ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ՏMN5ZW
l"owH3hٳmrZE'U~R2oPQAy./~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>