ALT Linux Team development discussions
 help / color / mirror / Atom feed
* [devel] Q: gcj and j2me
@ 2003-11-03 14:59 Alexander Bokovoy
  2003-11-03 21:30 ` Ivan Zakharyaschev
  2003-11-07 16:25 ` Vitaly Lugovsky
  0 siblings, 2 replies; 6+ messages in thread
From: Alexander Bokovoy @ 2003-11-03 14:59 UTC (permalink / raw)
  To: devel

Greetings!

Вопрос к тем, кто имеет дело с Java и GNU Java Compiler. Понадобилось
поднять J2ME на XScale и оказалось, что для его сборки нужен JDK, которого
там (архитектура armv5l), как оказалось, нет.

В результате был предпринят обходной маневр -- в качестве JDK используется
GNU Java Compiler. И все, вроде бы хорошо, да вот незадача:


../../src/share/classes/java/lang/Class.java:60: Duplicate variable declaration: `ClassLoader loader' was ` null loader' (<built-in>:0).
       private ClassLoader    loader; /* For GC purposes only! */
                              ^
../../src/share/classes/java/io/ByteArrayOutputStream.java:151: warning: Discouraged form of returned type specification.
       public synchronized byte toByteArray()[] {
                                             ^
../../src/share/classes/sun/misc/CharacterDecoder.java:170: warning: Discouraged form of returned type specification.
       public byte decodeBuffer(String inputString)[] throws IOException {
                                                   ^
../../src/share/classes/sun/misc/CharacterDecoder.java:185: warning: Discouraged form of returned type specification.
       public byte decodeBuffer(InputStream in)[] throws IOException {
                                               ^
1 error, 3 warnings


Три замечания неважны, важен Duplicate variable declaration, возникающий
из-за того, что в gcj не удается совсем отключить libgcj (встроенную
библиотеку классов). Вот в этом и вопрос -- как этого добиться? Ведь в
данном случае я собираю стандартную библиотеку классов и виртуальную
машину J2ME и потому этот ClassLoader должен быть определен именно в
../../src/share/classes/java/lang/Class.java, а не в <built-in>:0.

-- 
/ Alexander Bokovoy
Samba Team                      http://www.samba.org/
ALT Linux Team                  http://www.altlinux.org/
Midgard Project Ry              http://www.midgard-project.org/


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [devel] Q: gcj and j2me
  2003-11-03 14:59 [devel] Q: gcj and j2me Alexander Bokovoy
@ 2003-11-03 21:30 ` Ivan Zakharyaschev
  2003-11-04 11:49   ` Alexander Bokovoy
  2003-11-07 16:25 ` Vitaly Lugovsky
  1 sibling, 1 reply; 6+ messages in thread
From: Ivan Zakharyaschev @ 2003-11-03 21:30 UTC (permalink / raw)
  To: ALT Devel discussion list

	Hello!

On Mon, 3 Nov 2003, Alexander Bokovoy wrote:

> Вопрос к тем, кто имеет дело с Java и GNU Java Compiler.

Не то, чтобы я имею с ними дело... но решил написать, что
приходит в голову при взгляде на этот кусочек.

> ../../src/share/classes/java/lang/Class.java:60: Duplicate
> variable declaration: `ClassLoader loader' was ` null loader'
> (<built-in>:0).
>        private ClassLoader    loader; /* For GC purposes only!
> */
>                               ^

> библиотеку классов). Вот в этом и вопрос -- как этого
> добиться? Ведь в
> данном случае я собираю стандартную библиотеку классов и
> виртуальную
> машину J2ME и потому этот ClassLoader должен быть определен
> именно в
> ../../src/share/classes/java/lang/Class.java, а не в
> <built-in>:0.

Здесь объявляется переменная loader типа ClassLoader. Более того,
private. Может быть, решением будет что-то из этого:

1. Если стандарт языка не запрещает объявлять
переменные с именем loader, то исправить gcc.

2. Переименовать loader в этом исходнике во что-нибудь другое.
Т.к. она private, то область видимости имени должна быть сильно
ограничена (классом?). Может, всё и не так просто и там есть
какие-то хитрости с именем в таких внутренностях. (Глядя на
комментарий, можно предположить, что она нужна, чтобы
предотвратить удаление важного loader-а во время обычного GC --
тогда важен просто факт сохранения ссылки на объект в какой-то
переменной, не важно, в какой и с каким именем. А может всё
совсем по другому.)

3. Надеяться, что loader, определяемый gcc, подойдёт.

-- 
С наилучшими пожеланиями,
Иван Захарьящев, Москва
::
JabberID: imz at altlinux.org


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [devel] Q: gcj and j2me
  2003-11-03 21:30 ` Ivan Zakharyaschev
@ 2003-11-04 11:49   ` Alexander Bokovoy
  2003-11-04 18:17     ` Alexander Bokovoy
  0 siblings, 1 reply; 6+ messages in thread
From: Alexander Bokovoy @ 2003-11-04 11:49 UTC (permalink / raw)
  To: ALT Devel discussion list

On Tue, Nov 04, 2003 at 12:30:17AM +0300, Ivan Zakharyaschev wrote:
> 	Hello!
> 
> On Mon, 3 Nov 2003, Alexander Bokovoy wrote:
> 
> > Вопрос к тем, кто имеет дело с Java и GNU Java Compiler.
> 
> Не то, чтобы я имею с ними дело... но решил написать, что
> приходит в голову при взгляде на этот кусочек.
> 
> > ../../src/share/classes/java/lang/Class.java:60: Duplicate
> > variable declaration: `ClassLoader loader' was ` null loader'
> > (<built-in>:0).
> >        private ClassLoader    loader; /* For GC purposes only!
> > */
> >                               ^
> 
> > библиотеку классов). Вот в этом и вопрос -- как этого
> > добиться? Ведь в
> > данном случае я собираю стандартную библиотеку классов и
> > виртуальную
> > машину J2ME и потому этот ClassLoader должен быть определен
> > именно в
> > ../../src/share/classes/java/lang/Class.java, а не в
> > <built-in>:0.
> 
> Здесь объявляется переменная loader типа ClassLoader. Более того,
> private. Может быть, решением будет что-то из этого:
> 
> 1. Если стандарт языка не запрещает объявлять
> переменные с именем loader, то исправить gcc.
Скорее всего это так и есть.
 
> 2. Переименовать loader в этом исходнике во что-нибудь другое.
> Т.к. она private, то область видимости имени должна быть сильно
> ограничена (классом?). Может, всё и не так просто и там есть
> какие-то хитрости с именем в таких внутренностях. (Глядя на
> комментарий, можно предположить, что она нужна, чтобы
> предотвратить удаление важного loader-а во время обычного GC --
> тогда важен просто факт сохранения ссылки на объект в какой-то
> переменной, не важно, в какой и с каким именем. А может всё
> совсем по другому.)
Обрати, кстати, внимание на то, что это класс java.lang.Class -- один из
основных классов Java.

> 3. Надеяться, что loader, определяемый gcc, подойдёт.
Не подойдет -- я компилирую стандартную библиотеку классов для внешней
JVM, а не для libgcj.
-- 
/ Alexander Bokovoy
Samba Team                      http://www.samba.org/
ALT Linux Team                  http://www.altlinux.org/
Midgard Project Ry              http://www.midgard-project.org/


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [devel] Q: gcj and j2me
  2003-11-04 11:49   ` Alexander Bokovoy
@ 2003-11-04 18:17     ` Alexander Bokovoy
  0 siblings, 0 replies; 6+ messages in thread
From: Alexander Bokovoy @ 2003-11-04 18:17 UTC (permalink / raw)
  To: ALT Devel discussion list

On Tue, Nov 04, 2003 at 01:49:46PM +0200, Alexander Bokovoy wrote:
> > переменной, не важно, в какой и с каким именем. А может всё
> > совсем по другому.)
> Обрати, кстати, внимание на то, что это класс java.lang.Class -- один из
> основных классов Java.
> 
> > 3. Надеяться, что loader, определяемый gcc, подойдёт.
> Не подойдет -- я компилирую стандартную библиотеку классов для внешней
> JVM, а не для libgcj.
Вести с полей: с использованием jikes я пробился дальше, bootstrap classes
собираются после минимальных правок, как и CDC foundation. Теперь проблема
в компиляции дальнейших частей, но это уже легче -- тут надо аналог javah
получить работоспособный.
-- 
/ Alexander Bokovoy
Samba Team                      http://www.samba.org/
ALT Linux Team                  http://www.altlinux.org/
Midgard Project Ry              http://www.midgard-project.org/


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [devel] Q: gcj and j2me
  2003-11-03 14:59 [devel] Q: gcj and j2me Alexander Bokovoy
  2003-11-03 21:30 ` Ivan Zakharyaschev
@ 2003-11-07 16:25 ` Vitaly Lugovsky
  2003-11-07 23:09   ` Alexander Bokovoy
  1 sibling, 1 reply; 6+ messages in thread
From: Vitaly Lugovsky @ 2003-11-07 16:25 UTC (permalink / raw)
  To: ALT Devel discussion list

On Mon, 3 Nov 2003, Alexander Bokovoy wrote:

> Вопрос к тем, кто имеет дело с Java и GNU Java Compiler.
> Понадобилось
> поднять J2ME на XScale и оказалось, что для его сборки нужен
> JDK, которого
> там (архитектура armv5l), как оказалось, нет.

 jikes




^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [devel] Q: gcj and j2me
  2003-11-07 16:25 ` Vitaly Lugovsky
@ 2003-11-07 23:09   ` Alexander Bokovoy
  0 siblings, 0 replies; 6+ messages in thread
From: Alexander Bokovoy @ 2003-11-07 23:09 UTC (permalink / raw)
  To: ALT Devel discussion list

On Fri, Nov 07, 2003 at 07:25:54PM +0300, Vitaly Lugovsky wrote:
> On Mon, 3 Nov 2003, Alexander Bokovoy wrote:
> 
> > Вопрос к тем, кто имеет дело с Java и GNU Java Compiler.
> > Понадобилось
> > поднять J2ME на XScale и оказалось, что для его сборки нужен
> > JDK, которого
> > там (архитектура armv5l), как оказалось, нет.
> 
>  jikes
Вообщем, тонкость в том, что Jikes собирает только часть из их файлов,
причем ту, которую не собирает GNU Java. И не собирает то, что собирается
при помощи GNU Java.

Этот этап я прошел, теперь другая проблема -- GNU Java Interpreter --
единственное доступное мне средство исполнения Java-программ из
репозитария для armv5l -- не работает на этой платформе по совсем
странному поводу -- не может открыть класс с диска, хотя находит его файл
и открывает, но тут же начинает снова искать его в путях. Те же собранные
на XScale классы отлично запускаются той же версией gij на ia32. Вообщем,
бред.

Есть идея просто переписать эти Java-программки, которые генерируют
заголовки для сборки J2ME (классификатор opcodes и JavaCodeCompact) на
чем-нибудь простом скриптовом, что там работает. Или исправлять GNU Java,
что может занять больше времени, чем требуется...
-- 
/ Alexander Bokovoy
Samba Team                      http://www.samba.org/
ALT Linux Team                  http://www.altlinux.org/
Midgard Project Ry              http://www.midgard-project.org/


^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2003-11-07 23:09 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-11-03 14:59 [devel] Q: gcj and j2me Alexander Bokovoy
2003-11-03 21:30 ` Ivan Zakharyaschev
2003-11-04 11:49   ` Alexander Bokovoy
2003-11-04 18:17     ` Alexander Bokovoy
2003-11-07 16:25 ` Vitaly Lugovsky
2003-11-07 23:09   ` Alexander Bokovoy

ALT Linux Team development discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/devel/0 devel/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 devel devel/ http://lore.altlinux.org/devel \
		devel@altlinux.org devel@altlinux.ru devel@lists.altlinux.org devel@lists.altlinux.ru devel@linux.iplabs.ru mandrake-russian@linuxteam.iplabs.ru sisyphus@linuxteam.iplabs.ru
	public-inbox-index devel

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.devel


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git