strtod not in namespace.h?

Valery Ushakov <[email protected]> Sun, 10 Nov 2024 03:00:21 +0300
Newsgroups gmane.os.netbsd.devel.toolchain
Message-ID <[email protected]>
I noticed that strtod(3) is not in libc's namespace.h though it's
sibling strtof(3) is (along with others).  Is this an oversight?

I tried to link inferno-os statically (to check that I get the -l
order right for the X11 libs) and got:

ld: /usr/lib/../lib/sparc/libc.a(strtod.o): in function `_strtold':
strtod.c:(.text+0x19c0): multiple definition of `strtod'; /home/uwe/work/inferno/inferno/NetBSD/sparc/lib/libmath.a(dtoa.o):/home/uwe/work/inferno/inferno/libmath/dtoa.c:676: first defined here

inferno has its own version of dtoa.c that defines its own strtod.

Our libc defines both strtod(3) and strtod_l(3) in the same file and
vfscanf.c pulls in strtod.c for _strtold_l, and since strtod is not
namespaced, it conflicts with the inferno's version.

Shouln't we add

  #define strtod _strtod

to namespace.h?

-uwe