Mark,
> That's where things get a little strange. The source module is only 44
> lines line, and line 25 is a blank line. :( Here's the entire module:
I'm not sure, but I guess this means it happens during template
expansion for a template needed in main. This would be the
'retbind' invokation, I guess. Could you compile with --save-temps
and send me the resulting .ii file?
> parser.o: In function `ostream & operator<<<char, string_char_traits<char>,
> __default_alloc_template
> <true, 0> >(ostream &, basic_string<char, string_char_traits<char>,
> __default_alloc_template<true, 0
> > > const &)':
> parser.o(.gnu.linkonce.t.__ls__H3ZcZt18string_char_traits1ZcZt24__default_al
> loc_template2b1i0_R7ostr
> eamRCt12basic_string3ZX01ZX11ZX21_R7ostream+0x10): undefined reference to
> `ostream::write(char const
> *, long)'
Hmm, this looks like a bug in the standard headers themselves ...
I'm assuming you are using gcc 2.95.3, right? This comes with a
header file /usr/include/g++/std/bastring.cc, which reads around
line 470:
template <class charT, class traits, class Allocator>
ostream &
operator<< (ostream &o, const basic_string <charT, traits, Allocator>& s)
{
return o.write (s.data (), s.length ());
}
This calls ostream::write with a second argument of type
size_t, which is long on s390, not streamsize, which is
int on s390 ...
Does it help if you change that line to:
return o.write (s.data (), (streamsize) s.length ());
Bye,
Ulrich
--
Dr. Ulrich Weigand
[EMAIL PROTECTED]