g++(2.8.1) failure on OSF1 (DEC). as0 error
Yotam Medini
yotam@telaviv.tmai.com
Wed Mar 25 09:59:00 GMT 1998
The following:
------------------------------------------------------------------------
telaviv:608> cat mss.cc
#include <string>
#include <map>
void f()
{
map<string, int> msi;
string sk("sk");
msi.erase(sk);
}
------------------------------------------------------------------------
compiles fine on Solaris:
telaviv:609> g++ -v
Reading specs from /site/seg/gcc-2.8.1/lib/gcc-lib/sparc-sun-solaris2.5.1/2.8.1/specs
gcc version 2.8.1
telaviv:610> g++ -c -o /tmp/dum.o mss.cc; ls -l /tmp/dum.o
-rw-r--r-- 1 yotam products 84768 Mar 25 09:39 /tmp/dum.o
But fails on OSF1: (huge lines of name mangling truncated)
miyu2:173> g++ -v
Reading specs from /site/seg/gcc-2.8.1/lib/gcc-lib/alphaev56-dec-osf4.0b/2.8.1/specs
gcc version 2.8.1
miyu2:174> g++ -c -o /tmp/dum.o mss.cc; ls -l /tmp/dum.o
as0: Warning: mss.cc, line 6: Line too long
.align 3
as0: Warning: mss.cc, line 6: Line too long
.ent __t4pair2Zt18__rb_tree_iterator3Zt4pair2ZCt12basic_string ...
as0: Error: mss.cc, line 6: undefined assembler operation:
__t4pair2Zt18__rb_tree_iterator3Zt4pair2ZCt12basic_string ....
as0: Warning: mss.cc, line 6: Line too long
ldgp $29,0($27)
as0: Error: mss.cc, line 6: undefined assembler operation:
__t4pair2Zt18__rb_tree_iterator3Zt4pair2ZCt12basic_string ...
as0: Warning: mss.cc, line 6: Line too long
ret $31,($26),1b_tree_iterator3Zt4pair2ZCt12basic_string ...
as0: Warning: mss.cc, line 6:
.ent/.end block never defined the procedure name
/tmp/dum.o not found
When I use -O2, it does compile:
miyu2:175> g++ -c -O2 -o /tmp/dum.o mss.cc; ls -l /tmp/dum.o
-rw-r--r-- 1 yotam system 28544 Mar 25 09:39 /tmp/dum.o
Still I can generate examples
where it fails with -O2 as well with similar messages. So
I actually do not have a bypass solution for the problem.
I believe the reasons for the failure are:
* Lack of Gnu Assembler (Gas) on alphaev56-dec-osf4.0.
I am a bit surprised. Shouldn't Linux run on that machine?
How could Linux be built there without Gnu's assembler?
* Symbol mangled names generated by g++ are too long.
Any solutions?
thanks -- yotam
Yotam Medini ----------------------------:)--h--o--m--e---------------------\
<< Avant! - TCAD Unit >> 1144 Craig Dr. // Lost |
<< 46871 Bayside Pkwy, Fremont, CA 94538 >> San Jose, CA 95129-2913 // my |
<< yotam_medini@avanticorp.com >> yotam@blueneptune.com // smart |
<< (510) 413-8141 [fax (510)4137743] >> (408) 257-0840 // quote |
<< http://www.blueneptune.com/~yotam/ |
More information about the Gcc-bugs
mailing list