<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:syn="http://purl.org/rss/1.0/modules/syndication/" xmlns:admin="http://webns.net/mvcb/">
  <channel about="http://permalink.gmane.org/gmane.comp.gcc.java.devel">
    <title>gmane.comp.gcc.java.devel</title>
    <link>http://permalink.gmane.org/gmane.comp.gcc.java.devel</link>
    <description/>
    <syn:updatePeriod>hourly</syn:updatePeriod>
    <syn:updateFrequency>1</syn:updateFrequency>
    <syn:updateBase>1901-01-01T00:00+00:00</syn:updateBase>
    <items>
      <rdf:Seq>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.gcc.java.devel/16720"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.gcc.java.devel/16719"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.gcc.java.devel/16718"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.gcc.java.devel/16716"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.gcc.java.devel/16715"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.gcc.java.devel/16714"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.gcc.java.devel/16711"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.gcc.java.devel/16710"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.gcc.java.devel/16709"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.gcc.java.devel/16708"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.gcc.java.devel/16707"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.gcc.java.devel/16706"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.gcc.java.devel/16705"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.gcc.java.devel/16704"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.gcc.java.devel/16703"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.gcc.java.devel/16702"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.gcc.java.devel/16701"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.gcc.java.devel/16700"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.gcc.java.devel/16699"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.gcc.java.devel/16698"/>
      </rdf:Seq>
    </items>
    <image rdf:resource="http://gmane.org/img/gmane-25t.png"/>
    <textinput rdf:resource=""/>
  </channel>
  <image rdf:about="http://gmane.org/img/gmane-25t.png">
    <title>Gmane</title>
    <url>http://gmane.org/img/gmane-25t.png</url>
    <link>http://gmane.org</link>
  </image>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.gcc.java.devel/16720">
    <title>Re: gcc crosstool chain with soft floating point support for arm9  +  java</title>
    <link>http://permalink.gmane.org/gmane.comp.gcc.java.devel/16720</link>
    <description>

Firstly, gcj was not supported on ARM before gcc 4.3.  It's only supported
on the new EABI, arm-linux-gnueabi.  There is arm-linux-gnu, the old one,
and arm-linux-gnueabi, the new one.  The old one defaults to soft float, the
new one hard float.

So, are you building arm-linux-gnu or arm-linux-gnueabi?

This is my configury for X-arm gcc with gcj:

/home/aph/gcc/trunk/configure --prefix=/local/x-arm-gcc/install \
--with-sysroot=/local/x-arm-gcc/rootfs-f8 --disable-libssp \
--disable-libgomp --disable-libmudflap --enable-libgcj \
--disable-bootstrap --disable-multilib --disable-static \
--disable-sjlj-exceptions --target=arm-linux-gnueabi \
--enable-java-awt=gtk \
--with-java-home=/usr/lib/jvm/java-1.5.0-gcj-4.3-1.5.0.0/jre \
--enable-languages=c,c++,java

This should get you a cross-compiler compatible with an EABI kernel.

Andrew.

</description>
    <dc:creator>Andrew Haley</dc:creator>
    <dc:date>2008-11-27T14:28:03</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.gcc.java.devel/16719">
    <title>gcc crosstool chain with soft floating point support for arm9 +  java</title>
    <link>http://permalink.gmane.org/gmane.comp.gcc.java.devel/16719</link>
    <description>
Hi 

I am using crosstool 0.43 to generate crosstool for arm9 with soft float,
with c,c++,java 
languages support.


demo-arm-softfloat.sh  file is as below 

set -ex
TARBALLS_DIR=$HOME/downloads
RESULT_TOP=/opt/crosstool
export TARBALLS_DIR RESULT_TOP
GCC_LANGUAGES="c,c++,java"
export GCC_LANGUAGES

mkdir -p $RESULT_TOP

eval `cat arm-softfloat.dat gcc-3.3.6-glibc-2.3.2.dat` sh all.sh --notest

echo Done.




arm-softfloat.dat file has 

KERNELCONFIG=`pwd`/arm.config
TARGET=arm-softfloat-linux-gnu
TARGET_CFLAGS="-O"
GCC_EXTRA_CONFIG="--with-float=soft"
GCC_CORE_EXTRA_CONFIG="--with-float=soft"
GLIBC_EXTRA_CONFIG=" --without-fp"
GLIBC_EXTRA_CC_ARGS="-msoft-float"



gcc-3.3.6-glibc-2.3.2.dat`  file has 

BINUTILS_DIR=binutils-2.15
GCC_DIR=gcc-3.3.6
GLIBC_DIR=glibc-2.3.2
GLIBCTHREADS_FILENAME=glibc-linuxthreads-2.3.2
LINUX_DIR=linux-2.6.9
LINUX_SANITIZED_HEADER_DIR=linux-libc-headers-2.6.12.0



And getting the below error 


arm-softfloat-linux-gnu-ranlib
/home/developer/crosstool-0.43/build/arm-softfloat-l</description>
    <dc:creator>kpremendra</dc:creator>
    <dc:date>2008-11-27T13:41:45</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.gcc.java.devel/16718">
    <title>Popka v latekse</title>
    <link>http://permalink.gmane.org/gmane.comp.gcc.java.devel/16718</link>
    <description>V plenu u nimfomanki

http://www.lethargy7085.chat.ru


</description>
    <dc:creator>coop ming-tzo</dc:creator>
    <dc:date>2008-11-22T18:55:54</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.gcc.java.devel/16716">
    <title>Re: [GCJ] Performance of GUI applications on embedded systems</title>
    <link>http://permalink.gmane.org/gmane.comp.gcc.java.devel/16716</link>
    <description>

Good.


I'm sure there is!  Patches welcome.

Andrew.

</description>
    <dc:creator>Andrew Haley</dc:creator>
    <dc:date>2008-11-10T10:19:20</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.gcc.java.devel/16715">
    <title>Re: [GCJ] Performance of GUI applications on embedded systems</title>
    <link>http://permalink.gmane.org/gmane.comp.gcc.java.devel/16715</link>
    <description>

Hi Andrew,

I can see that with your patch the application now doesn't
hang anymore when highlighting and/or clicking on buttons.
GUI performance of applications on my embbeded
system seems also to be quite better now.

I wonder if there's still some place for UI performance
improvement.

Thank you,

Francesco



</description>
    <dc:creator>ffileppo</dc:creator>
    <dc:date>2008-11-10T08:54:00</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.gcc.java.devel/16714">
    <title>Re: [GCJ] Performance of GUI applications on embedded systems</title>
    <link>http://permalink.gmane.org/gmane.comp.gcc.java.devel/16714</link>
    <description>
This one is gcj only, for sure.  This patch removes the difference
between gcj and Classpath.

Andrew.

</description>
    <dc:creator>Andrew Haley</dc:creator>
    <dc:date>2008-11-09T13:55:09</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.gcc.java.devel/16711">
    <title>Re: [GCJ] Performance of GUI applications on embedded systems</title>
    <link>http://permalink.gmane.org/gmane.comp.gcc.java.devel/16711</link>
    <description>

Incidentally, this bug was introduced on 2007-06-04, so this patch
needs applying to a bunch of systems and gcc branches.  It affects
Fedora systems and (presumably) recent Debians.

Andrew.

</description>
    <dc:creator>Andrew Haley</dc:creator>
    <dc:date>2008-11-08T12:46:48</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.gcc.java.devel/16710">
    <title>Re: [GCJ] Performance of GUI applications on embedded systems</title>
    <link>http://permalink.gmane.org/gmane.comp.gcc.java.devel/16710</link>
    <description>
Found a very silly (:-) merge error in CairoGraphics2D.c.
This fixes it.

I don't think there should be any differences between the GTK peers
in Classpath and gcj, should there?  Or indeed, and differences between
the CNI code in Classpath and gcj.

Andrew.


Index: gnu_java_awt_peer_gtk_CairoGraphics2D.c
===================================================================
--- gnu_java_awt_peer_gtk_CairoGraphics2D.c(revision 141575)
+++ gnu_java_awt_peer_gtk_CairoGraphics2D.c(working copy)
&lt; at &gt;&lt; at &gt; -351,7 +351,6 &lt; at &gt;&lt; at &gt;
   for (i = 0; i &lt; n; i++)
     {
       PangoFcFont *font = JLONG_TO_PTR(PangoFcFont, fonts[i]);
-  gdk_threads_leave ();

       /* Draw as many glyphs as possible with the current font */
       int length = 0;




</description>
    <dc:creator>Andrew Haley</dc:creator>
    <dc:date>2008-11-08T11:39:56</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.gcc.java.devel/16709">
    <title>Re: [GCJ] Performance of GUI applications on embedded systems</title>
    <link>http://permalink.gmane.org/gmane.comp.gcc.java.devel/16709</link>
    <description>
I've identified some serious GTK locking problems with this version of gcj.

I'm investigating.

Andrew.


</description>
    <dc:creator>Andrew Haley</dc:creator>
    <dc:date>2008-11-07T18:55:49</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.gcc.java.devel/16708">
    <title>Re: [GCJ] Performance of GUI applications on embedded systems</title>
    <link>http://permalink.gmane.org/gmane.comp.gcc.java.devel/16708</link>
    <description>

Well, it doesn't have to run on the target device.  It was easy for me
to duplicate your previous problem on my desktop machine with gcj and
oprofile.  There's nothing to stop you doing the same.

Andrew.




</description>
    <dc:creator>Andrew Haley</dc:creator>
    <dc:date>2008-11-07T11:17:34</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.gcc.java.devel/16707">
    <title>Re: [GCJ] Performance of GUI applications on embedded systems</title>
    <link>http://permalink.gmane.org/gmane.comp.gcc.java.devel/16707</link>
    <description>
You're right.
However I'm experiencing slowness when testing some other GUI sample application (e.g. the test case attached at the end).

In this particular test case, the application takes a lot of time to startup (compared to the same device, running WinCE and CrEme JVM) and during start up the CPU usage is always at 100%.

After startup, I'v also noticed that highlighting and/or clicking a certain number of times on buttons cause the application to hang and after that the CPU usage is always 100%.

I'm still trying to get oprofile working on my target device to see what's going wrong.

Thank you,
Francesco

Test case:

import javax.swing.JComponent;
import javax.swing.JFrame;
import java.awt.BorderLayout;
import javax.swing.JButton;
import javax.swing.JPanel;
import javax.swing.JTabbedPane;

public class GUITest {

  public static void main(String[] args) {

  JFrame frame = new JFrame();
  frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  JComponent newContentPane = new TestUI();
  frame.setTitle(</description>
    <dc:creator>ffileppo</dc:creator>
    <dc:date>2008-11-07T11:03:21</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.gcc.java.devel/16706">
    <title>Re: [GCJ] Performance of GUI applications on embedded systems</title>
    <link>http://permalink.gmane.org/gmane.comp.gcc.java.devel/16706</link>
    <description>
That may be because of this (taken from GNU Classpath's
vm/reference/java/lang/VMThread.java):

      // Note: JDK treats a zero length sleep is like Thread.yield(),
      // without checking the interrupted status of the thread.
      // It's unclear if this is a bug in the implementation or the spec.
      // See http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6213203

GCJ does this:

if (millis == 0 &amp;&amp; nanos == 0)
    ++nanos;

and sleeps.  Maybe...

- Christian


</description>
    <dc:creator>Christian Thalinger</dc:creator>
    <dc:date>2008-11-06T17:01:22</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.gcc.java.devel/16705">
    <title>Re: [GCJ] Performance of GUI applications on embedded systems</title>
    <link>http://permalink.gmane.org/gmane.comp.gcc.java.devel/16705</link>
    <description>

What do you expect?  You're setting up a Timer with a delay of
0 milliseconds between events, and it's running continuously.

Andrew.

</description>
    <dc:creator>Andrew Haley</dc:creator>
    <dc:date>2008-11-06T16:40:06</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.gcc.java.devel/16704">
    <title>Re: [GCJ] Performance of GUI applications on embedded systems</title>
    <link>http://permalink.gmane.org/gmane.comp.gcc.java.devel/16704</link>
    <description>

Hi Andrew,

I'm testing your patch on my embedded system and now I can see that GUI performance are very much better (particularly during application startup).

Thank you so much!

However running my test case (please see my first post) I see that CPU usage is always at 100% (after the application is running),
so the responsiveness is still not very good.

Do you think that there is still some places for improvement?
I'll try to use oprofile on my embedded system to see what's going wrong

Best Regards,

Francesco


</description>
    <dc:creator>ffileppo</dc:creator>
    <dc:date>2008-11-06T13:39:34</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.gcc.java.devel/16703">
    <title>Re: [GCJ] Performance of GUI applications on embedded systems</title>
    <link>http://permalink.gmane.org/gmane.comp.gcc.java.devel/16703</link>
    <description>

This change is now in gcj trunk.

Andrew.

</description>
    <dc:creator>Andrew Haley</dc:creator>
    <dc:date>2008-11-05T14:24:58</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.gcc.java.devel/16702">
    <title>Re: [GCJ] Performance of GUI applications on embedded systems</title>
    <link>http://permalink.gmane.org/gmane.comp.gcc.java.devel/16702</link>
    <description>
Unless you --enable-java-maintainer-mode the Java file won't be recompiled.

Andrew.


</description>
    <dc:creator>Andrew Haley</dc:creator>
    <dc:date>2008-11-05T14:07:16</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.gcc.java.devel/16701">
    <title>Re: [GCJ] Performance of GUI applications on embedded systems</title>
    <link>http://permalink.gmane.org/gmane.comp.gcc.java.devel/16701</link>
    <description>


Hi,

I tried rebuilding gcj (with Andrew's improvement) on a clean system
but I'm still getting Segmentation Fault when I run GUI applications on my embedded system.

Here is configure :

Configured with: ../configure --prefix=/root/WiTP/inst-gcc --with-sysroot=/root/WiTP/f8/rootfs-f8 --disable-libssp --disable-libgomp --disable-libmudflap --enable-libgcj --disable-bootstrap --disable-multilib --disable-sjlj-exceptions --target=arm-linux-gnueabi --enable-languages=c,c++,java --with-build-time-tools=/root/WiTP/binutils-inst/arm-linux-gnueabi/bin --with-ld=/root/WiTP/binutils-inst/arm-linux-gnueabi/bin/ld --with-nm=/root/WiTP/binutils-inst/arm-linux-gnueabi/bin/nm --with-strip=/root/WiTP/binutils-inst/arm-linux-gnueabi/bin/strip --with-as=/root/WiTP/binutils-inst/arm-linux-gnueabi/bin/as --with-float=soft --enable-java-awt=gtk --x-libraries=/root/WiTP/arm-rpm/usr/lib


And here is GDB backtrace

#0  0x40b92d14 in java::lang::Object::getClass () from /lib/libgcj.so.10
#1  0x40b116f0 in javax::swing::JCompone</description>
    <dc:creator>ffileppo</dc:creator>
    <dc:date>2008-11-05T13:52:09</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.gcc.java.devel/16700">
    <title>Re: [GCJ-core] dynamically unloading native libraries</title>
    <link>http://permalink.gmane.org/gmane.comp.gcc.java.devel/16700</link>
    <description>

Yes.  I can't think of any immediate reason why they aren't: it's a matter
worth investigating.



Andrew.

</description>
    <dc:creator>Andrew Haley</dc:creator>
    <dc:date>2008-11-05T11:07:39</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.gcc.java.devel/16699">
    <title>Re: [GCJ-core] dynamically unloading native libraries</title>
    <link>http://permalink.gmane.org/gmane.comp.gcc.java.devel/16699</link>
    <description>Hi Mark,

Thank you for putting the topic back on the table,


That's exactly my point - and also even libraries that do not contain JNI at all
(simple .so without any relation to java - I know it is not a very useful case but it is
very simple to test with a dummy .so).

But the root cause of the problem is a bit more complex: 

a) As you mentioned, ClassLoaders don't unload unused native libraries when they are finalized.

but also

b) ClassLoaders don't even seem to be finalized when they are not used any more.
(no alive instances, etc.)

So even correcting a) would not help, we should first try to understand why 
ClassLoaders are never gc'ed.


Once again, this seems to be done in openJDK (at least item a, and maybe the b):

-------------------ClassLoader.java------------------------------------
protected void finalize() {
            synchronized (loadedLibraryNames) {
                if (fromClass.getClassLoader() != null &amp;&amp; handle != 0) {
                    /* remove the native library name */
      </description>
    <dc:creator>Sylvain Marié</dc:creator>
    <dc:date>2008-11-05T10:44:09</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.gcc.java.devel/16698">
    <title>Re: [GCJ] Performance of GUI applications on embedded systems</title>
    <link>http://permalink.gmane.org/gmane.comp.gcc.java.devel/16698</link>
    <description>
For what it's worth, I very much suspect that this will be a build
problem.  ffileppo, we also need to know what configure options you
used.

Andrew.

</description>
    <dc:creator>Andrew Haley</dc:creator>
    <dc:date>2008-11-05T09:50:13</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.gcc.java.devel/16696">
    <title>Re: [GCJ] Performance of GUI applications on embedded systems</title>
    <link>http://permalink.gmane.org/gmane.comp.gcc.java.devel/16696</link>
    <description>

It didn't do that to me.

Where does the segfault occur?
Do you still get the segfault after backing out the patch?

Andrew.

</description>
    <dc:creator>Andrew Haley</dc:creator>
    <dc:date>2008-11-05T09:43:33</dc:date>
  </item>
  <textinput about="http://search.gmane.org/?group=$group=gmane.comp.gcc.java.devel">
    <title>Search Engine</title>
    <description>Search the mailing list at Gmane</description>
    <name>query</name>
    <link>http://search.gmane.org/?group=$group=gmane.comp.gcc.java.devel</link>
  </textinput>
</rdf:RDF>
