Re: gcj 4.4 and AWT toolkit

"ffileppo" <[email protected]>
Newsgroups gmane.comp.gcc.java.devel
Message-ID <[email protected]>
> ffileppo wrote:
> >> ffileppo wrote:
> >>> Hi guys,
> >>>
> >>> I'm getting the following exception when I try to run AWT/SWING code using gcj 4.4 (which is using classpath 0.97.2). This is happening on both x86 and arm. It works fine using gcc 4.3
> >>>
> >>> Exception in thread "main" java.awt.AWTError: Cannot load AWT toolkit: gnu.java.awt.peer.gtk.GtkToolkit
> >>>    at java.awt.Toolkit.getDefaultToolkit(Toolkit.java:607)
> >>>    at java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment(GraphicsEnvironment.java:103)
> >>>    at java.awt.Window.<init>(Window.java:133)
> >>>    at java.awt.Frame.<init>(Frame.java:246)
> >>>    at javax.swing.JFrame.<init>(JFrame.java:123)
> >>>    at MainPanel.main(AWT)
> >>> Caused by: java.lang.UnsatisfiedLinkError: initIDs
> >>>    at gnu.java.awt.peer.gtk.GtkToolkit.initIDs(GtkToolkit.java:137)
> >>>    at gnu.java.awt.peer.gtk.GtkToolkit.initializeGlobalIDs(GtkToolkit.java:168)
> >>>    at gnu.java.awt.peer.gtk.GtkToolkit.<clinit>(GtkToolkit.java:183)
> >>>    at java.lang.Class.initializeClass(natClass.cc:780)
> >>>    at java.lang.Class.forName(Class.h:742)
> >>>    at java.awt.Toolkit.getDefaultToolkit(Toolkit.java:583)
> >>>    ...5 more
> >>>
> >>> Any thoughts or idea?
> >> You didn't build it?  --enable-java-awt=gtk  ?
> >>
> >> Andrew.
> >>
> >
> > Hi Andrew,
> >
> > Yes, I've built AWT peer
> >
> > My configure:
> >
> > Configured with: ../configure --prefix=/media/disk/x86-gcc-inst --disable-libssp --disable-libgomp --disable-libmudflap --enable-libgcj --disable-bootstrap --disable-multilib --disable-sjlj-exceptions --enable-languages=c,c++,java --enable-java-awt=gtk
> >
> > The problem seems to be that it can't find libgtkpeer.so, which is obviously present.
> >
> > This is working as intended with gcc 4.3
> >
> > Can anyone try to reproduce this problem?
>
> Try running with LD_DEBUG=files.
>
> Andrew.
>

Here is the output:

root@portatile-hp:/media/disk/x86-gcc-inst/bin# LD_DEBUG=files awt-test
      5602:
      5602:     file=libgcc_s.so.1 [0];  needed by awt-test [0]
      5602:     file=libgcc_s.so.1 [0];  generating link map
      5602:       dynamic: 0xb7eee014  base: 0xb7ee4000   size: 0x0000a2e4
      5602:         entry: 0xb7ee5970  phdr: 0xb7ee4034  phnum:          5
      5602:
      5602:
      5602:     file=libgcj.so.10 [0];  needed by awt-test [0]
      5602:     file=libgcj.so.10 [0];  generating link map
      5602:       dynamic: 0xb7a19c20  base: 0xb5eea000   size: 0x01ff9c9c
      5602:         entry: 0xb6996270  phdr: 0xb5eea034  phnum:          6
      5602:
      5602:
      5602:     file=libm.so.6 [0];  needed by awt-test [0]
      5602:     file=libm.so.6 [0];  generating link map
      5602:       dynamic: 0xb5ee7ef0  base: 0xb5ec4000   size: 0x00024080
      5602:         entry: 0xb5ec7440  phdr: 0xb5ec4034  phnum:          9
      5602:
      5602:
      5602:     file=libpthread.so.0 [0];  needed by awt-test [0]
      5602:     file=libpthread.so.0 [0];  generating link map
      5602:       dynamic: 0xb5ec0ed4  base: 0xb5eac000   size: 0x000171e0
      5602:         entry: 0xb5eb0810  phdr: 0xb5eac034  phnum:          9
      5602:
      5602:
      5602:     file=librt.so.1 [0];  needed by awt-test [0]
      5602:     file=librt.so.1 [0];  generating link map
      5602:       dynamic: 0xb5eaaedc  base: 0xb5ea3000   size: 0x00008250
      5602:         entry: 0xb5ea4990  phdr: 0xb5ea3034  phnum:          9
      5602:
      5602:
      5602:     file=libdl.so.2 [0];  needed by awt-test [0]
      5602:     file=libdl.so.2 [0];  generating link map
      5602:       dynamic: 0xb5ea1ed0  base: 0xb5e9f000   size: 0x0000307c
      5602:         entry: 0xb5e9fa70  phdr: 0xb5e9f034  phnum:          8
      5602:
      5602:
      5602:     file=libc.so.6 [0];  needed by awt-test [0]
      5602:     file=libc.so.6 [0];  generating link map
      5602:       dynamic: 0xb5e9ad9c  base: 0xb5d50000   size: 0x0014e670
      5602:         entry: 0xb5d665b0  phdr: 0xb5d50034  phnum:         10
      5602:
      5602:
      5602:     calling init: /lib/tls/i686/cmov/libpthread.so.0
      5602:
      5602:
      5602:     calling init: /lib/tls/i686/cmov/libc.so.6
      5602:
      5602:
      5602:     calling init: /lib/tls/i686/cmov/libdl.so.2
      5602:
      5602:
      5602:     calling init: /lib/tls/i686/cmov/librt.so.1
      5602:
      5602:
      5602:     calling init: /lib/tls/i686/cmov/libm.so.6
      5602:
      5602:
      5602:     calling init: /lib/libgcc_s.so.1
      5602:
      5602:
      5602:     calling init: /usr/lib/libgcj.so.10
      5602:
      5602:
      5602:     initialize program: awt-test
      5602:
      5602:
      5602:     transferring control: awt-test
      5602:
      5602:
      5602:     file=libnss_compat.so.2 [0];  needed by awt-test [0]
      5602:     file=libnss_compat.so.2 [0];  generating link map
      5602:       dynamic: 0xb7efeef4  base: 0xb7ef7000   size: 0x00008248
      5602:         entry: 0xb7ef7e40  phdr: 0xb7ef7034  phnum:          8
      5602:
      5602:
      5602:     file=libnsl.so.1 [0];  needed by /lib/tls/i686/cmov/libnss_compat.so.2 [0]
      5602:     file=libnsl.so.1 [0];  generating link map
      5602:       dynamic: 0xb5cf3ed4  base: 0xb5cdf000   size: 0x000177e8
      5602:         entry: 0xb5ce2130  phdr: 0xb5cdf034  phnum:          8
      5602:
      5602:
      5602:     calling init: /lib/tls/i686/cmov/libnsl.so.1
      5602:
      5602:
      5602:     calling init: /lib/tls/i686/cmov/libnss_compat.so.2
      5602:
      5602:     opening file=/lib/tls/i686/cmov/libnss_compat.so.2 [0]; direct_opencount=1
      5602:
      5602:
      5602:     file=libnss_nis.so.2 [0];  needed by awt-test [0]
      5602:     file=libnss_nis.so.2 [0];  generating link map
      5602:       dynamic: 0xb5cddef0  base: 0xb5cd5000   size: 0x0000923c
      5602:         entry: 0xb5cd6910  phdr: 0xb5cd5034  phnum:          8
      5602:
      5602:
      5602:     file=libnss_files.so.2 [0];  needed by /lib/tls/i686/cmov/libnss_nis.so.2 [0]
      5602:     file=libnss_files.so.2 [0];  generating link map
      5602:       dynamic: 0xb5cd3efc  base: 0xb5cca000   size: 0x0000a298
      5602:         entry: 0xb5ccb8e0  phdr: 0xb5cca034  phnum:          8
      5602:
      5602:
      5602:     calling init: /lib/tls/i686/cmov/libnss_files.so.2
      5602:
      5602:
      5602:     calling init: /lib/tls/i686/cmov/libnss_nis.so.2
      5602:
      5602:     opening file=/lib/tls/i686/cmov/libnss_nis.so.2 [0]; direct_opencount=1
      5602:
      5602:     opening file= [0]; direct_opencount=2
      5602:
      5602:     awt-test: error: symbol lookup error: undefined symbol: Java_gnu_java_awt_peer_gtk_GtkToolkit_initIDs (fatal)
      5602:     awt-test: error: symbol lookup error: undefined symbol: Java_gnu_java_awt_peer_gtk_GtkToolkit_initIDs__ (fatal)
Exception in thread "main" java.awt.AWTError: Cannot load AWT toolkit: gnu.java.awt.peer.gtk.GtkToolkit
   at java.awt.Toolkit.getDefaultToolkit(Toolkit.java:607)
   at java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment(GraphicsEnvironment.java:103)
   at java.awt.Window.<init>(Window.java:133)
   at java.awt.Frame.<init>(Frame.java:246)
   at javax.swing.JFrame.<init>(JFrame.java:123)
   at MainPanel.main(awt-test)
Caused by: java.lang.UnsatisfiedLinkError: initIDs
   at gnu.java.awt.peer.gtk.GtkToolkit.initIDs(GtkToolkit.java:137)
   at gnu.java.awt.peer.gtk.GtkToolkit.initializeGlobalIDs(GtkToolkit.java:168)
   at gnu.java.awt.peer.gtk.GtkToolkit.<clinit>(GtkToolkit.java:183)
   at java.lang.Class.initializeClass(natClass.cc:780)
   at java.lang.Class.forName(Class.h:742)
   at java.awt.Toolkit.getDefaultToolkit(Toolkit.java:583)
   ...5 more
      5602:
      5602:     calling fini: awt-test [0]
      5602:
      5602:
      5602:     calling fini: /usr/lib/libgcj.so.10 [0]
      5602:
      5602:
      5602:     calling fini: /lib/libgcc_s.so.1 [0]
      5602:
      5602:
      5602:     calling fini: /lib/tls/i686/cmov/libm.so.6 [0]
      5602:
      5602:
      5602:     calling fini: /lib/tls/i686/cmov/librt.so.1 [0]
      5602:
      5602:
      5602:     calling fini: /lib/tls/i686/cmov/libpthread.so.0 [0]
      5602:
      5602:
      5602:     calling fini: /lib/tls/i686/cmov/libdl.so.2 [0]
      5602:
      5602:
      5602:     calling fini: /lib/tls/i686/cmov/libnss_compat.so.2 [0]
      5602:
      5602:
      5602:     calling fini: /lib/tls/i686/cmov/libnss_nis.so.2 [0]
      5602:
      5602:
      5602:     calling fini: /lib/tls/i686/cmov/libnsl.so.1 [0]
      5602:
      5602:
      5602:     calling fini: /lib/tls/i686/cmov/libnss_files.so.2 [0]
      5602:
      5602:
      5602:     calling fini: /lib/tls/i686/cmov/libc.so.6 [0]
      5602:


The problem seems to be in these lines:

     5602:     awt-test: error: symbol lookup error: undefined symbol: Java_gnu_java_awt_peer_gtk_GtkToolkit_initIDs (fatal)
     5602:     awt-test: error: symbol lookup error: undefined symbol: Java_gnu_java_awt_peer_gtk_GtkToolkit_initIDs__ (fatal)

Thank you,

Francesco
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.