www.delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1995/07/20/15:13:38

Date: Thu, 20 Jul 95 18:21 GMT
To: djgpp AT sun DOT soe DOT clarkson DOT edu, dj, axl AT zedat DOT fu-berlin DOT de
Newsgroups: comp.os.msdos.djgpp
Subject: Re: Bug in V2 stream libs
From: axl AT zedat DOT fu-berlin DOT de (Axel Thimm)
Organization: Freie Unversitaet Berlin
References: <3uh6ce$g6e AT fu-berlin DOT de>

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

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019