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/21070] New: [4.1 Regression]: java compiler generates wrong code on ia64


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


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