Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 21 Feb 1995 22:10:36 +1100
From:      Bruce Evans <bde@zeta.org.au>
To:        jkh@freefall.cdrom.com, rgrimes@gndrsh.aac.dev.com
Cc:        current@freefall.cdrom.com
Subject:   Re: pax and gzip botch..
Message-ID:  <199502211110.WAA13910@godzilla.zeta.org.au>

next in thread | raw e-mail | index | archive | help
>> ld: Unexpected multiple definitions of symbol `_warn', type 0x1

>This was caused by the changes to src/lib/libc/locale, the local startup
>stuff now calls err/warn/..., this causes err.o to be loaded in all programs
>from libc.

I think the opposite is the case.  collate.c was changed to _not_ call
err/warn.  The change isn't quite right.  err() writes to stdout while
__collate_err() writes to STDERR_FILENO.  There is a difference if
stderr is buffer.  stdio uses special code to avoid this bug for
perror().  It should use and export a general function __write_stderr().

I'm running the library from a couple of days ago and have some locale
changes but don't have the linkage problems.

>Is warn/err/... in the POSIX name space or not?  This may simply be namespace
>pollution from libc that needs fixed, or namespace pollution in all the
>other sources :-(.

They are in the user namespace, like about 90% of the names in libc.

Bruce



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199502211110.WAA13910>