Thread: [Sablevm-developer] Porting SableVM to ARM: Questions
Brought to you by:
egagnon
From: Gunda D. <sab...@ho...> - 2002-12-03 21:36:35
|
Hi, I am trying to port sableVM for ARM linux (netwinder). After looking thru the archives, I already made the following changes system.c: iflush and compare_and_swap ported to ARM system.h: The correct typedefs are in place jni_system_specific.h: Necessary changes are done. Am I missing anything else ? Proabably a stupid question, where does the cpu type definitions (e.g. __ia64__) defined ? Is it part of the configure ? Is it in the generated Makefiles ? The reason is that after defining the new cpu type as __arm__ I get a error "unknown system" generated from the jni_system_specific.h file when I try to make. Is there a way to force the build to use a particular target type ? Thanks in advance. An early reply will be appreciated :-) Thanks. -Gunda _________________________________________________________________ STOP MORE SPAM with the new MSN 8 and get 2 months FREE* http://join.msn.com/?page=features/junkmail |
From: Etienne M. G. <eti...@uq...> - 2002-12-03 23:01:54
|
Gunda Domlur wrote: > Hi, > > I am trying to port sableVM for ARM linux (netwinder). After looking > thru the archives, I already made the following changes > > system.c: iflush and compare_and_swap ported to ARM > system.h: The correct typedefs are in place > jni_system_specific.h: Necessary changes are done. > > Am I missing anything else ? No. The fun part (let say not before January) will be to make the inline-threaded engine functional on ARM. For the benefit of all subscribers: I am currently making the *final* little modifications to my thesis (as requested by the Ph.D. committee; little typos...) which I should be publishing on the Internet in a few days. Yep, I have successfully [:-)] passed both the written Thesis evaluation and the oral Ph.D. defense. > Proabably a stupid question, where does the cpu type definitions (e.g. > __ia64__) defined ? I don't know for sure, but I think it is internally generated by GCC. I looked through config.guess and found: #if defined (__arm) ... You might want to try that, just in case it works. ;-) Otherwise, we can play tricks in configure.ac (as long as the configure magic correctly detects ARM), and add a test to define a constant when ARM architecture is detected. Etienne -- Etienne M. Gagnon http://www.info.uqam.ca/~egagnon/ SableVM: http://www.sablevm.org/ SableCC: http://www.sablecc.org/ |
From: Grzegorz P. <ga...@de...> - 2002-12-03 23:43:40
|
W li=B6cie z wto, 03-12-2002, godz. 23:53, Etienne M. Gagnon pisze:=20 > Gunda Domlur wrote: > > Hi, > >=20 > > I am trying to port sableVM for ARM linux (netwinder). After looking=20 > > thru the archives, I already made the following changes > >=20 > > system.c: iflush and compare_and_swap ported to ARM > > system.h: The correct typedefs are in place > > jni_system_specific.h: Necessary changes are done. > >=20 > > Am I missing anything else ? > No. The fun part (let say not before January) will be to make the=20 > inline-threaded engine functional on ARM. Yup, I hope to have some more time next week and get it working for ia64 also (or at least push it forward a bit). > For the benefit of all subscribers: I am currently making the *final* lit= tle=20 > modifications to my thesis (as requested by the Ph.D. committee; little=20 > typos...) which I should be publishing on the Internet in a few days. Ye= p, I=20 > have successfully [:-)] passed both the written Thesis evaluation and the= oral=20 > Ph.D. defense. I already sent you congratulations... I just wanted to ask you about electronic version of your PhD. I am sure it'll be very interesting reading. I hope now you will be able to be a remove items from the TODO list one by one? :-) (by solving them of course) BTW: When does UQAM finish the term? And when are the exams? Right after new year I'd suspect? (I expect you to be busy at that time) > > Proabably a stupid question, where does the cpu type definitions (e.g. = =20 > > __ia64__) defined ?=20 > I don't know for sure, but I think it is internally generated by GCC. I = looked=20 > through config.guess and found: > #if defined (__arm) ... > You might want to try that, just in case it works. ;-) Look at that: http://lists.debian.org/debian-arm/2001/debian-arm-200102/msg00157.html <quoted piece> This fails on a modern GCC, as 'arm' and '__arm' defines aren't set. Adding '|| defined(__arm__)' in the correct place fixes things. </quoted piece> Wonder what's your compiler? However it can be that 2.95 uses __arm and __i386 as for ex. in ./src/libsablevm/system.h:67 there is: #if defined (__i386) But if the above quote is correct, then we should change it to __i386__ We should do that at least because Debian and other distros will/already have switch(ed) to gcc 3.X branch as the basic compiler. BTW: Have you tried gcc 3.X Etienne? I am a bit worried that it can break inline threading engine on every arch (only i386 currently). A thing to be checked. That's all for now, cheers... Grzegorz B. Prokopski PS: My IRC nickname is "gadek" of course. |
From: Etienne M. G. <eti...@uq...> - 2002-12-04 14:32:39
|
Grzegorz Prokopski wrote: > I just wanted to ask you about electronic version of your PhD. I am > sure it'll be very interesting reading. I'll make both my thesis and the slides of my Ph.D. defense public (electronic versions) as soon as the final submission is made in a very few days. There aren't many slides, as the presentation part of the defense only lasts 20 mimutes! [20 minutes to present 10 chapters was really challenging]. The second par of the defense was approximately 1 hours and 20 minutes of oral questions by five committee members. Unfortunately, there is no transcript of the second part. > BTW: When does UQAM finish the term? And when are the exams? For students, the term finishes on Friday December 13th. I give my last exam on that day. So, I'll have corrections to do in the following days. Now, given the incredibly exhausting term I had, this Fall, I will take real vacations away from my computer (as much as possible) until the beginning of the Winter term on Jabuary 6, 2003. I really need these vacations. The good thing: I have minimal teaching to do in the Winter term; most of my time is reserved for research (e.g. SableVM/SableCC development). :-) > BTW: Have you tried gcc 3.X Etienne? It says so in the README file;-) > I am a bit worried that it can > break inline threading engine on every arch (only i386 currently). Inline-threading does work with gcc 2.95.x and with gcc (3.0,3.1,3.2). I have tested it on all these versions. Have you tried the little inline-threaded interpreter (of the INRIA web site) on ia64? > A thing to be checked. Has been checked. :-) Have fun! Etienne -- Etienne M. Gagnon http://www.info.uqam.ca/~egagnon/ SableVM: http://www.sablevm.org/ SableCC: http://www.sablecc.org/ |
From: Grzegorz P. <ga...@de...> - 2002-12-03 23:01:03
|
W li=B6cie z wto, 03-12-2002, godz. 22:36, Gunda Domlur pisze:=20 > Hi, >=20 > I am trying to port sableVM for ARM linux (netwinder). After looking thru= =20 > the archives, I already made the following changes >=20 > system.c: iflush and compare_and_swap ported to ARM > system.h: The correct typedefs are in place > jni_system_specific.h: Necessary changes are done. Great! Could you please send the diff? > Am I missing anything else ? If it doesn't work by now - I can't say not looking at your changes. > Proabably a stupid question, where does the cpu type definitions (e.g. =20 > __ia64__) defined ? Is it part of the configure ? Is it in the generated=20 > Makefiles ? The reason is that after defining the new cpu type as __arm__= I=20 > get a error "unknown system" generated from the jni_system_specific.h fil= e=20 > when I try to make. Is there a way to force the build to use a particular= =20 > target type ? Hmm... I belive that these defines are set by build environment and we shouldn't need to wory about who exactly is responsible for setting them. The mechanism is probably a bit complicated - just imagine crosscompilations and the like. But getting back to your problem - AFAIK __arm__ should be defined while you're doing build for arm. > An early reply will be appreciated :-) Usually You can try to catch me at #debian-devel at irc.debian.org I am interested in helping you even _now_. You're welcomed Grzegorz B. Prokopski |