Xref: news-dnh.mv.net comp.os.msdos.djgpp:1088 Path: news-dnh.mv.net!mv!news.NH.Destek.Net!news2.net99.net!uunet!in2.uu.net!newshost.marcam.com!news.mathworks.com!fu-berlin.de!axl.dialup.fu-berlin.DE!not-for-mail From: axl AT zedat DOT fu-berlin DOT de (Axel Thimm) Newsgroups: comp.os.msdos.djgpp Subject: Re: Bug in V2 stream libs Date: 20 Jul 1995 18:21:43 GMT Organization: Freie Unversitaet Berlin Lines: 92 References: <3uh6ce$g6e AT fu-berlin DOT de> Nntp-Posting-Host: axl.dialup.fu-berlin.de (160.45.218.93) To: djgpp AT sun DOT soe DOT clarkson DOT edu Dj-Gateway: from newsgroup comp.os.msdos.djgpp In article <3uh6ce$g6e AT fu-berlin DOT de>, I say... > >Hello, >I am trying to get V2 running, but I cannot compile any programms. > >This is the output of f.i. "gcc -O2 -Wall src\creutz.cc -liostr" > >outfloat.c(.text+0x161): undefined reference to `_IO_dtoa' > > The problem is that in outfloat.o (libgpp.a and libiostr.a) a function call to _IO_dtoa is made. The symbol is declared in both V1 and V2 in the header file libiop.h as extern char * _IO_dtoa __P((double __d, int __mode, int __ndigits, int *__decpt, int *__sign, char **__rve)); In V1 this function had been defined in the member floatcon.o: (Output of nm) floatcon.o: 000040a4 b .bss 00003f80 d .data 00000000 t .text 00002808 T __IO_dtoa 00000f08 T __IO_strtod 00000000 t ___gnu_compiled_c 00000a8e t _b2d 00004050 d _bigtens 00000bd6 t _d2b 0000075c t _diff U _errno U _free 00000592 t _lshift U _malloc 000002ea t _mult 00000000 t _multadd 00003f80 d _p05.24 00002598 t _quorem 000040a0 d _result.45 000040a4 b _result_k.46 00000162 t _s2b 00003f98 d _tens 00004078 d _tinytens 00000000 t gcc2_compiled. The new libs (V2.beta1) contain the following member floatcon.a: floatcon.o: 00001ec4 b .bss 00001da4 d .data 00000000 t .text 00000f00 T __IO_strtod U ___dj_huge_val 00000000 t ___gnu_compiled_c 00000a8e t _b2d 00001e74 d _bigtens 00000bd6 t _d2b 0000075c t _diff U _errno U _free 00000592 t _lshift U _malloc 000002ea t _mult 00000000 t _multadd 00001da4 d _p05.24 00000162 t _s2b 00001dbc d _tens 00001e9c d _tinytens 00000000 t gcc2_compiled. There is no __IO_dtoa anymore! So there are the following possibilities, that I can think of: 1) The symbol has moved to another member or lib, but I checked all libs coming with V2 and found it nowhere. 2) The symbol is not used anymore, but still declared to be linked in. 3) The symbol has been renamed, but not everywhere. As there are some people allready using V2, I'd like to know, if they are using the stream functions, especially when outputting floating point numbers. The name of the symbol suggest a conversion routine from double to an ascii string. Many thanks in advance for any responses. Axel Thimm