This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug java/21070] New: [4.1 Regression]: java compiler generates wrong code on ia64
- From: "hjl at lucon dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 17 Apr 2005 16:33:07 -0000
- Subject: [Bug java/21070] New: [4.1 Regression]: java compiler generates wrong code on ia64
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
The patch
http://gcc.gnu.org/ml/gcc-patches/2005-03/msg00712.html
causes more than 1000 failures:
http://gcc.gnu.org/ml/gcc-testresults/2005-04/msg01089.html
The problem seems uniuqe to ia64. The good ones:
[hjl@gnu-4 libjava]$ readelf --wide -
sr ./java/util/logging/.libs/natLogger.o | grep
ZN4java4util7logging6Logger7getNameEv
0000000000000d17 0000000800000027 R_IA64_DIR64LSB
0000000000000000 .gnu.linkonce.t._ZN4java4util7logging6Logger7getNameEv + 0
0000000000000d1f 0000000800000027 R_IA64_DIR64LSB
0000000000000000 .gnu.linkonce.t._ZN4java4util7logging6Logger7getNameEv + 20
0000000000000231 0000000800000027 R_IA64_DIR64LSB
0000000000000000 .gnu.linkonce.t._ZN4java4util7logging6Logger7getNameEv + 0
0000000000000000 0000000800000027 R_IA64_DIR64LSB
0000000000000000 .gnu.linkonce.t._ZN4java4util7logging6Logger7getNameEv + 0
0000000000000008 0000000800000027 R_IA64_DIR64LSB
0000000000000000 .gnu.linkonce.t._ZN4java4util7logging6Logger7getNameEv + 2
0000000000000020 0000000800000027 R_IA64_DIR64LSB
0000000000000000 .gnu.linkonce.t._ZN4java4util7logging6Logger7getNameEv + 0
19: 0000000000000000 32 FUNC WEAK DEFAULT 11
_ZN4java4util7logging6Logger7getNameEv
[hjl@gnu-4 libjava]$ readelf --wide -sr ./java/util/logging/.libs/Logger.o |
grep ZN4java4util7logging6Logger7getNameEv
00000000000000e0 000000ef00000081 R_IA64_IPLTLSB 0000000000000df0
_ZN4java4util7logging6Logger7getNameEv + 0
0000000000000640 000000a000000047 R_IA64_FPTR64LSB
0000000000000df0 .L_ZN4java4util7logging6Logger7getNameEv13 + 0
160: 0000000000000df0 32 FUNC LOCAL DEFAULT
1 .L_ZN4java4util7logging6Logger7getNameEv13
239: 0000000000000df0 32 FUNC GLOBAL DEFAULT 1
_ZN4java4util7logging6Logger7getNameEv
Even if ld sees natLogger.o first, the definitions in Logger.o will be used.
The bad ones are
[hjl@gnu-4 libjava]$ readelf --wide -
sr ./java/util/logging/.libs/natLogger.o | grep
ZN4java4util7logging6Logger7getNameEv
0000000000000d17 0000000800000027 R_IA64_DIR64LSB
0000000000000000 .gnu.linkonce.t._ZN4java4util7logging6Logger7getNameEv + 0
0000000000000d1f 0000000800000027 R_IA64_DIR64LSB
0000000000000000 .gnu.linkonce.t._ZN4java4util7logging6Logger7getNameEv + 20
0000000000000231 0000000800000027 R_IA64_DIR64LSB
0000000000000000 .gnu.linkonce.t._ZN4java4util7logging6Logger7getNameEv + 0
0000000000000000 0000000800000027 R_IA64_DIR64LSB
0000000000000000 .gnu.linkonce.t._ZN4java4util7logging6Logger7getNameEv + 0
0000000000000008 0000000800000027 R_IA64_DIR64LSB
0000000000000000 .gnu.linkonce.t._ZN4java4util7logging6Logger7getNameEv + 2
0000000000000020 0000000800000027 R_IA64_DIR64LSB
0000000000000000 .gnu.linkonce.t._ZN4java4util7logging6Logger7getNameEv + 0
19: 0000000000000000 32 FUNC WEAK DEFAULT 11
_ZN4java4util7logging6Logger7getNameEv
[hjl@gnu-4 libjava]$ readelf --wide -sr ./java/util/logging/.libs/Logger.o |
grep ZN4java4util7logging6Logger7getNameEv
0000000000000df6 0000004100000027 R_IA64_DIR64LSB
0000000000000000 .gnu.linkonce.t._ZN4java4util7logging6Logger7getNameEv + 0
0000000000000dfe 0000004100000027 R_IA64_DIR64LSB
0000000000000000 .gnu.linkonce.t._ZN4java4util7logging6Logger7getNameEv + 20
00000000000005db 0000004100000027 R_IA64_DIR64LSB
0000000000000000 .gnu.linkonce.t._ZN4java4util7logging6Logger7getNameEv + 0
00000000000000e0 0000019500000081 R_IA64_IPLTLSB 0000000000000000
_ZN4java4util7logging6Logger7getNameEv + 0
0000000000000640 0000011c00000047 R_IA64_FPTR64LSB
0000000000000000 .L_ZN4java4util7logging6Logger7getNameEv13 + 0
000000000000033a 0000004100000027 R_IA64_DIR64LSB
0000000000000000 .gnu.linkonce.t._ZN4java4util7logging6Logger7getNameEv + 0
0000000000000342 0000004100000027 R_IA64_DIR64LSB
0000000000000000 .gnu.linkonce.t._ZN4java4util7logging6Logger7getNameEv + 2
00000000000000a0 0000004100000027 R_IA64_DIR64LSB
0000000000000000 .gnu.linkonce.t._ZN4java4util7logging6Logger7getNameEv + 0
284: 0000000000000000 32 FUNC LOCAL DEFAULT
134 .L_ZN4java4util7logging6Logger7getNameEv13
405: 0000000000000000 32 FUNC WEAK DEFAULT 134
_ZN4java4util7logging6Logger7getNameEv
The ones in Logger.o will be discarded. The problem may
be .L_ZN4java4util7logging6Logger7getNameEv13. Discarding definitions in
Logger.o seems to cause problems on ia64.
--
Summary: [4.1 Regression]: java compiler generates wrong code on
ia64
Product: gcc
Version: 4.1.0
Status: UNCONFIRMED
Severity: normal
Priority: P2
Component: java
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: hjl at lucon dot org
CC: gcc-bugs at gcc dot gnu dot org,java-prs at gcc dot gnu
dot org
GCC build triplet: ia64-unknown-linux-gnu
GCC host triplet: ia64-unknown-linux-gnu
GCC target triplet: ia64-unknown-linux-gnu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21070