java/1629: gcj link problem with a simple program
Patrik Hagglund
patha@softlab.ericsson.se
Fri Jan 12 02:26:00 GMT 2001
>Number: 1629
>Category: java
>Synopsis: gcj link problem with a simple program
>Confidential: no
>Severity: critical
>Priority: medium
>Responsible: unassigned
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Fri Jan 12 02:26:01 PST 2001
>Closed-Date:
>Last-Modified:
>Originator:
>Release: 2.97 20010111 (experimental)
>Organization:
Ericsson SoftLab
>Environment:
System: Linux robyn 2.4.0-test11 #1 Wed Dec 6 20:52:57 CET 2000 i686 unknown
Architecture: i686
host: i686-pc-linux-gnu
build: i686-pc-linux-gnu
target: i686-pc-linux-gnu
configured with: ../configure --prefix=/softlab/robyn/Linux/epkg/gcc-20010111 --enable-threads=posix --enable-shared --enable-languages=c++,java --disable-new-gxx-abi --with-gnu-as --with-gnu-ld
>Description:
I get the following link error message when compiling a
simple program with the current cvs version of gcj: undefined
reference to `Client::class$'.
>How-To-Repeat:
> CLASSPATH=.. gcj -v -save-temps --main=Client Client.java
Reading specs from /softlab/robyn/Linux/epkg/gcc-20010111/lib/gcc-lib/i686-pc-linux-gnu/2.97/specs
Reading specs from /softlab/robyn/Linux/epkg/gcc-20010111/lib/gcc-lib/i686-pc-linux-gnu/2.97/../../../libgcj.specrename spec lib to liborig
rename spec startfile to startfileorig
Configured with: ../configure --prefix=/softlab/robyn/Linux/epkg/gcc-20010111 --enable-threads=posix --enable-shared --enable-languages=c++,java --disable-new-gxx-abi --with-gnu-as --with-gnu-ld
gcc version 2.97 20010111 (experimental)
/softlab/robyn/Linux/epkg/gcc-20010111/lib/gcc-lib/i686-pc-linux-gnu/2.97/jc1 Client.java -fno-use-divide-subroutine -fuse-boehm-gc -fasynchronous-exceptions -quiet -dumpbase Client.java -g1 -version -o Client.s
GNU Java version 2.97 20010111 (experimental) (i686-pc-linux-gnu)
compiled by GNU C version 2.95.3 20010101 (prerelease).
as -V -Qy -o Client.o Client.s
GNU assembler version 2.10.91 (i386-linux) using BFD version 2.10.1.0.2
/softlab/robyn/Linux/epkg/gcc-20010111/lib/gcc-lib/i686-pc-linux-gnu/2.97/jvgenmain Client Clientmain.i
/softlab/robyn/Linux/epkg/gcc-20010111/lib/gcc-lib/i686-pc-linux-gnu/2.97/cc1 Clientmain.i -quiet -dumpbase Client.c -g1 -version -fdollars-in-identifiers -o Clientmain.s
GNU CPP version 2.97 20010111 (experimental) (cpplib) (i386 Linux/ELF)
GNU C version 2.97 20010111 (experimental) (i686-pc-linux-gnu)
compiled by GNU C version 2.95.3 20010101 (prerelease).
as -V -Qy -o Clientmain.o Clientmain.s
GNU assembler version 2.10.91 (i386-linux) using BFD version 2.10.1.0.2
/softlab/robyn/Linux/epkg/gcc-20010111/lib/gcc-lib/i686-pc-linux-gnu/2.97/collect2 -m elf_i386 -dynamic-linker /lib/ld-linux.so.2 /usr/lib/crt1.o /usr/lib/crti.o /softlab/robyn/Linux/epkg/gcc-20010111/lib/gcc-lib/i686-pc-linux-gnu/2.97/crtbegin.o -u __rethrow -u __frame_state_for -lgcc -L/softlab/robyn/Linux/epkg/gcc-20010111/lib/gcc-lib/i686-pc-linux-gnu/2.97 -L/softlab/robyn/Linux/epkg/gcc-20010111/lib/gcc-lib/i686-pc-linux-gnu/2.97/../../.. Client.o Clientmain.o -lgcc -lgcj -lm -lgcjgc -lpthread -lzgcj -ldl -lc -lgcc /softlab/robyn/Linux/epkg/gcc-20010111/lib/gcc-lib/i686-pc-linux-gnu/2.97/crtend.o /usr/lib/crtn.o
Clientmain.o: In function `main':
/home/projects/joses/usr/patha/socketThreads/Clientmain.i(.text+0x1a): undefined reference to `Client::class$'
collect2: ld returned 1 exit status
########## Client.java: ##########
package socketThreads;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;
import java.net.InetAddress;
import java.io.InputStream;
import java.io.OutputStream;
public class Client extends Thread {
static final boolean debug = true;
static final int serverPort = 4002;
static final int msgLength = 15;
static final int msgTotal = 10;
static final int clients = 3;
static final byte[] data = new byte[msgLength];
final Socket socket;
final OutputStream outputStream;
final InputStream inputStream;
final int number;
Client(int number) {
this.number = number;
Socket s = null;
OutputStream oS = null;
InputStream iS = null;
try {
s = new Socket(InetAddress.getLocalHost(), serverPort);
s.setTcpNoDelay(true);
oS = s.getOutputStream();
iS = s.getInputStream();
} catch (Exception e) {
e.printStackTrace();
} finally {
socket = s;
inputStream = iS;
outputStream = oS;
}
}
public final void run() {
try {
for (int b = 0; b < msgTotal; b++) {
for (int i = 0; i < msgLength; i++)
data[i] = (byte)(b % 256);
outputStream.write(data);
inputStream.read(data);
if (debug)
System.out.println("Client " + number + " read: "
+ data[0]);
}
socket.close();
} catch (Exception e) {
e.printStackTrace();
}
}
public static final void main(String args[]) {
for (int i = 0; i < clients; i++) {
new Client(i).start();
}
System.out.println("Client closed.");
}
}
########## Clientmain.i ##########
extern const char **_Jv_Compiler_Properties;
static const char *props[] =
{
0
};
extern int class __attribute__ ((alias ("_6Client.class$")));
int main (int argc, const char **argv)
{
_Jv_Compiler_Properties = props;
JvRunMain (&class, argc, argv);
}
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the Gcc-bugs
mailing list