This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug java/14392] New: Bad ARM code generation for StackTrace when using g++/CNI/gcj: A stack variable is wrongfully overwritten when an exception occurs.


Bug:  Bad ARM code generation for StackTrace when using g++/CNI/gcj
Author: Robert Fischer

Problem: Bad ARM code generation for StackTrace when using g++/CNI/gcj: A stack
variable ("buf") is wrongfully overwritten when an exception occurs.  I am not
sure whether this is a bug in g++, gcj or libgcj.  I am guessing g++ as a first
shot because it happens in a C++ source file.

Evidence of the bug is seen in the program's output.  The program output is as
follows:
---------------------------
/mnt/ramfs (prompt on the ARM machine)# ./Test-arm
Hello2
len = 4 (sizeof = 4)
sizeof(buf) = 11
BB libtest
B1 libtest
B2 0 libtest
B2a libtest
B2 1 libtest
B2a libtest
B2 2 libtest
B2a libtest
B2 3 libtest
B2a libtest
B2 4 libtest
B2a libtest
B2 5 libtest
B2a libtest
B2 6 libtest
BE ¸úÿ¿

BX ¸úÿ¿
---------------------------

The output lines (except the first few) all print the "buf" variable, which
should always be "libtest".  Note that as of the line starting with "BE", that
"buf" seems to have been corrupted.  Hence, evidence of a compiler bug.  See the
source code natXRuntime.cc for more details.

This bug happens on an ARM-target cross compiler (x86_64 host system).  It does
not happen when compiled using the native x86_64 compiler on the host system
(see details below).  By "not happen", I mean that the last two lines of output are:

BE libtest
BX libtest

instead of what was shown above.  The bug can also magically be made to "not
happen" on the ARM target through a seemingly innocuous change in the code (see
source file natXRuntime.cc):

#ifdef SHOW_BUG   // In this version, the bug happens
	char buf[len + 1 + strlen (_Jv_platform_solib_prefix)
		+ strlen (_Jv_platform_solib_suffix)];
#else            // In this version, the bug does not happen
	char buf[strlen("test") + 1 + strlen (_Jv_platform_solib_prefix)
		+ strlen (_Jv_platform_solib_suffix)];
#endif

Unfortunately, since this bug involves C++, Java and CNI, it requires more than
one source file to make evident.  I have included two source files, the .ii
file, and the commands to make it all for an ARM target.  This should be enough
to reproduce the bug -- if you have an ARM system to run it on.  I have also
included a uuencode of gcjbug2.tar.bz2 (against GCC guidelines).  This includes
all of the above, plus versions of the assembler file with and without SHOW_BUG
defined.  See the README file for more information.

Unfortunately, the .ii file was HUGE --- 113K, too big for Bugzilla.  I put it
in the tar.bz2 file where it would be compressed.  Search for "$$$*" below to
find answers to the specific bug report questions, as well as the included files
and the uuencode.

One final note: This bug was originally found in the file natRuntime.cc of the
libjava library (part of GCJ).  It prevents dynamic libraries from loading
properly; and therefore prevents JNI from working on the ARM cross compiler. 
Therefore, fixing this compiler bug will also fix JNI and things that use it
(like Java-Gnome on arm-linux-gcj).

-----------------------------------------------
$$$*  the exact version of GCC;

gcc3.3.2
glibc2.3.2
binutils2.14
Kernel headers used to make GCC: headers2.4.19-rmk6-pxa1-hh30 (provided by
handhelds.org).

citibob@wolfgang:~/prg/gcjbug2> arm-linux-gcc -v
Reading specs from
/opt/crosstool/arm-unknown-linux-gnu/gcc-3.3.2-glibc-2.3.2/lib/gcc-lib/arm-unknown-linux-gnu/3.3.2/specs
Configured with:
/export/home/citibob/dsg/armenv/crosstool/crosstool-0.26/build/arm-unknown-linux-gnu/gcc-3.3.2-glibc-2.3.2/gcc-3.3.2/configure
--target=arm-unknown-linux-gnu --host=x86_64-host_unknown-linux-gnu
--prefix=/opt/crosstool/arm-unknown-linux-gnu/gcc-3.3.2-glibc-2.3.2
--with-headers=/opt/crosstool/arm-unknown-linux-gnu/gcc-3.3.2-glibc-2.3.2/arm-unknown-linux-gnu/include
--with-local-prefix=/opt/crosstool/arm-unknown-linux-gnu/gcc-3.3.2-glibc-2.3.2/arm-unknown-linux-gnu
--disable-nls --enable-threads=posix --enable-symvers=gnu --enable-__cxa_atexit
--enable-shared --enable-c99 --enable-long-long
Thread model: posix
gcc version 3.3.2

-----------------------------------------------
$$$* the system type;
GCC is configured as a cross compiler.

Host/build system:
  x86_64 architecture
  SuSE GNU/Linux 9.0
  2.6.1 Kernel
  standard SuSE 9.0 gcc for system compiler (3.3.1; glibc 2.3.2-90)

Target system:
  iPaq running standard Famililar 0.7.2 distribution (http://www.handhelds.org)

-----------------------------------------------
$$$* the options given when GCC was configured/built;

export TARGET=arm-unknown-linux-gnu
export TARGET_CFLAGS="-O"

    ${GCC_DIR}/configure --target=$TARGET --host=$HOST --prefix=$PREFIX \
        ${GCC_EXTRA_CONFIG} \
        $GCC_SYSROOT_ARG \
	--with-local-prefix=${SYSROOT} \
	--disable-nls \
	--enable-threads=posix \
	--enable-symvers=gnu \
	--enable-__cxa_atexit \
	--enable-shared \
	--enable-c99 \
        --enable-long-long

The complete cross compiler (source-form script to build it) can be downloaded from:
   http://www.eecs.harvard.edu/~citibob/armenv

-----------------------------------------------
$$$* the complete command line that triggers the bug;

javac XRuntime.java; gcjh XRuntime; arm-linux-gcj -v -save-temps -c XRuntime.java
arm-linux-g++ -c -v -save-temps -I/opt/armenv/noarch/include -Iinclude -I.
natXRuntime.cc
arm-linux-gcj --main=XRuntime -o Test-arm XRuntime.o natXRuntime.o

(The bug is triggered by natXRuntime.cc; see the "#define SHOW_BUG" line in the
original source file.

-----------------------------------------------
$$$* the compiler output (error messages, warnings, etc.); and

Reading specs from
/opt/crosstool/arm-unknown-linux-gnu/gcc-3.3.2-glibc-2.3.2/lib/gcc-lib/arm-unknown-linux-gnu/3.3.2/specs
Reading specs from
/opt/crosstool/arm-unknown-linux-gnu/gcc-3.3.2-glibc-2.3.2/lib/gcc-lib/arm-unknown-linux-gnu/3.3.2/../../../../arm-unknown-linux-gnu/lib/libgcj.spec
rename spec lib to liborig
Configured with:
/export/home/citibob/dsg/armenv/crosstool/crosstool-0.26/build/arm-unknown-linux-gnu/gcc-3.3.2-glibc-2.3.2/gcc-3.3.2/configure
--target=arm-unknown-linux-gnu --host=x86_64-host_unknown-linux-gnu
--prefix=/opt/crosstool/arm-unknown-linux-gnu/gcc-3.3.2-glibc-2.3.2
--with-headers=/opt/crosstool/arm-unknown-linux-gnu/gcc-3.3.2-glibc-2.3.2/arm-unknown-linux-gnu/include
--with-local-prefix=/opt/crosstool/arm-unknown-linux-gnu/gcc-3.3.2-glibc-2.3.2/arm-unknown-linux-gnu
--disable-nls --enable-threads=posix --enable-symvers=gnu --enable-__cxa_atexit
--enable-shared --enable-c99 --enable-long-long
Thread model: posix
gcc version 3.3.2
 /opt/crosstool/arm-unknown-linux-gnu/gcc-3.3.2-glibc-2.3.2/lib/gcc-lib/arm-unknown-linux-gnu/3.3.2/jc1 XRuntime.java -fuse-divide-subroutine -fuse-boehm-gc -fnon-call-exceptions -fkeep-inline-functions -quiet -dumpbase XRuntime.java -auxbase XRuntime -g1 -version -o XRuntime.s
GNU Java version 3.3.2 (arm-unknown-linux-gnu)
	compiled by GNU C version 3.3.1 (SuSE Linux).
GGC heuristics: --param ggc-min-expand=98 --param ggc-min-heapsize=128006
Class path starts here:
    ./
    /home/citibob/prg/nsandbox/classes/
    /opt/classes/
    /usr/share/pgsql/jdbc7.1-1.2.jar/ (zip)
    /opt/gnu.regexp-1.1.4/lib/gnu-regexp-1.1.4.jar/ (zip)
    /opt/HTTPClient/src/
    /opt/velocity-1.2/velocity-dep-1.2.jar/ (zip)
    /opt/postgresql/pg73jdbc3.jar/ (zip)
   
/opt/crosstool/arm-unknown-linux-gnu/gcc-3.3.2-glibc-2.3.2/share/java/libgcj-3.3.2.jar/
(system) (zip)
 /opt/crosstool/arm-unknown-linux-gnu/gcc-3.3.2-glibc-2.3.2/lib/gcc-lib/arm-unknown-linux-gnu/3.3.2/../../../../arm-unknown-linux-gnu/bin/as -o XRuntime.o XRuntime.s
Reading specs from
/opt/crosstool/arm-unknown-linux-gnu/gcc-3.3.2-glibc-2.3.2/lib/gcc-lib/arm-unknown-linux-gnu/3.3.2/specs
Configured with:
/export/home/citibob/dsg/armenv/crosstool/crosstool-0.26/build/arm-unknown-linux-gnu/gcc-3.3.2-glibc-2.3.2/gcc-3.3.2/configure
--target=arm-unknown-linux-gnu --host=x86_64-host_unknown-linux-gnu
--prefix=/opt/crosstool/arm-unknown-linux-gnu/gcc-3.3.2-glibc-2.3.2
--with-headers=/opt/crosstool/arm-unknown-linux-gnu/gcc-3.3.2-glibc-2.3.2/arm-unknown-linux-gnu/include
--with-local-prefix=/opt/crosstool/arm-unknown-linux-gnu/gcc-3.3.2-glibc-2.3.2/arm-unknown-linux-gnu
--disable-nls --enable-threads=posix --enable-symvers=gnu --enable-__cxa_atexit
--enable-shared --enable-c99 --enable-long-long
Thread model: posix
gcc version 3.3.2
 /opt/crosstool/arm-unknown-linux-gnu/gcc-3.3.2-glibc-2.3.2/lib/gcc-lib/arm-unknown-linux-gnu/3.3.2/cc1plus -E -D__GNUG__=3 -quiet -v -I/opt/armenv/noarch/include -Iinclude -I. -D__GNUC__=3 -D__GNUC_MINOR__=3 -D__GNUC_PATCHLEVEL__=2 -D_GNU_SOURCE -D__ARM_ARCH_4T__ natXRuntime.cc natXRuntime.ii
ignoring nonexistent directory "include"
#include "..." search starts here:
#include <...> search starts here:
 /opt/armenv/noarch/include
 .
 /opt/crosstool/arm-unknown-linux-gnu/gcc-3.3.2-glibc-2.3.2/include/c++/3.3.2
 /opt/crosstool/arm-unknown-linux-gnu/gcc-3.3.2-glibc-2.3.2/include/c++/3.3.2/arm-unknown-linux-gnu
 /opt/crosstool/arm-unknown-linux-gnu/gcc-3.3.2-glibc-2.3.2/include/c++/3.3.2/backward
 /opt/crosstool/arm-unknown-linux-gnu/gcc-3.3.2-glibc-2.3.2/include
 /opt/crosstool/arm-unknown-linux-gnu/gcc-3.3.2-glibc-2.3.2/lib/gcc-lib/arm-unknown-linux-gnu/3.3.2/include
 /opt/crosstool/arm-unknown-linux-gnu/gcc-3.3.2-glibc-2.3.2/arm-unknown-linux-gnu/sys-include
 /opt/crosstool/arm-unknown-linux-gnu/gcc-3.3.2-glibc-2.3.2/arm-unknown-linux-gnu/include
End of search list.
 /opt/crosstool/arm-unknown-linux-gnu/gcc-3.3.2-glibc-2.3.2/lib/gcc-lib/arm-unknown-linux-gnu/3.3.2/cc1plus -fpreprocessed natXRuntime.ii -quiet -dumpbase natXRuntime.cc -auxbase natXRuntime -version -o natXRuntime.s
GNU C++ version 3.3.2 (arm-unknown-linux-gnu)
	compiled by GNU C version 3.3.1 (SuSE Linux).
GGC heuristics: --param ggc-min-expand=98 --param ggc-min-heapsize=128006
 /opt/crosstool/arm-unknown-linux-gnu/gcc-3.3.2-glibc-2.3.2/lib/gcc-lib/arm-unknown-linux-gnu/3.3.2/../../../../arm-unknown-linux-gnu/bin/as -o natXRuntime.o natXRuntime.s

-----------------------------------------------
-----------------------------------------------
$$$* the preprocessed file (*.i*) that triggers the bug, generated by adding
-save-temps to the complete compilation command, or, in the case of a bug report
for the GNAT front end, a complete set of source files (see below).

I'm including three files below (Search for $$$*):
  natXRuntime.cc
  XRuntime.java

# $$$*
cat <<EOF >XRuntime.java
//package djava.lang;

public class XRuntime
{
  public native void load();

public static void main(String[] args) {
	java.lang.System.out.println("Hello2");
	XRuntime rt = new XRuntime();
	rt.load();//"test", true);
}

}
EOF

# $$$*
cat <<EOF >natXRuntime.cc
#include <stdlib.h>
#include <stdio.h>

#include <gcj/cni.h>
#include <XRuntime.h>
#include <java/lang/ClassLoader.h>
#include <gnu/gcj/runtime/StackTrace.h>
#include <java/lang/ArrayIndexOutOfBoundsException.h>

//#include <jni.h>


// =============== From platform.h
// Prefix and suffix for shared libraries.
#define _Jv_platform_solib_prefix "lib"
#define _Jv_platform_solib_suffix ".so"

// =============== From jvm.h
/* Allocate space that is known to be pointer-free.  */
void *_Jv_AllocBytes (jsize size) __attribute__((__malloc__));

#define SHOW_BUG

void XRuntime::load ()
{
	jint len = 4;//_Jv_GetStringUTFLength (path);
//	int len = 4;	// Bug also happens with this variant
	printf("len = %d (sizeof = %d)\n", len, sizeof(len));

#ifdef SHOW_BUG
	char buf[len + 1 + strlen (_Jv_platform_solib_prefix)
		+ strlen (_Jv_platform_solib_suffix)];
#else
	char buf[strlen("test") + 1 + strlen (_Jv_platform_solib_prefix)
		+ strlen (_Jv_platform_solib_suffix)];
#endif
	printf("sizeof(buf) = %d\n", sizeof(buf));
	strcpy(buf, "libtest");
	printf("BB %s\n",buf);

	gnu::gcj::runtime::StackTrace *t = new gnu::gcj::runtime::StackTrace(10);
	printf("B1 %s\n",buf);
	try {
		for (int i = 0; i < 10; ++i) {
			printf("B2 %d %s\n",i, buf);
			jclass klass = t->classAt(i);
			printf("B2a %s\n",buf);
	  }
	} catch (::java::lang::ArrayIndexOutOfBoundsException *e) {
		printf("BE %s\n",buf);
	}
	printf("BX %s\n",buf);
}
EOF

-------------------------------------------
$$$* UUENCODED FILE

begin-base64 644 gcjbug2.tar.bz2
QlpoOTFBWSZTWafvyokAzOp/////////////////////////////////////
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
KcKEhT9+VEg=
====

-- 
           Summary: Bad ARM code generation for StackTrace when using
                    g++/CNI/gcj: A stack variable is wrongfully overwritten
                    when an exception occurs.
           Product: gcc
           Version: 3.3.2
            Status: UNCONFIRMED
          Severity: critical
          Priority: P2
         Component: java
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: bob dot fischer17 at earthlink dot net
                CC: gcc-bugs at gcc dot gnu dot org
 GCC build triplet: x86_64-linux-gnu
  GCC host triplet: x86_64-linux-gnu
GCC target triplet: arm-linux-gnu


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14392


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]