Subject: lib/16000: citrus_ctype.c introduces undefined symbols into libc if compiled without _I18N_DYNAMIC defined
To: None <gnats-bugs@gnats.netbsd.org>
From: None <ww@GROOVY.NET>
List: netbsd-bugs
Date: 03/21/2002 18:17:44
>Number: 16000
>Category: lib
>Synopsis: citrus_ctype.c introduces undefined symbols into libc if compiled without _I18N_DYNAMIC defined
>Confidential: no
>Severity: serious
>Priority: high
>Responsible: lib-bug-people
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Thu Mar 21 15:24:00 PST 2002
>Closed-Date:
>Last-Modified:
>Originator: ww@GROOVY.NET
>Release: NetBSD 1.5ZC
>Organization:
Groovy Network Services
>Environment:
System: NetBSD epanaphora 1.5ZC NetBSD 1.5ZC (EPANAPHORA-$Revision: 1.2 $) #16: Mon Mar 18 16:37:18 EST 2002 ww@epanaphora:/src/NetBSD/src/sys/arch/sparc64/compile/EPANAPHORA sparc64
Architecture: sparc64
Machine: sparc64
>Description:
_citrus_ctype_default is defined inside the '#ifdef _I18N_DYNAMIC' clause but referenced
after the corresponding '#else' clause. This causes an undefined symbol in libc that
prevents linking static binaries.
>How-To-Repeat:
The problem showed up when doing a build with build.sh when it attempted to build a
static gzip binary.
>Fix:
% cvs diff citrus_ctype.c
Index: citrus_ctype.c
===================================================================
RCS file: /cvs/NetBSD/basesrc/lib/libc/citrus/citrus_ctype.c,v
retrieving revision 1.1
diff -r1.1 citrus_ctype.c
52,56d51
< #ifdef _I18N_DYNAMIC
<
< static int _initctypemodule(_citrus_ctype_t, char const *, _citrus_module_t,
< void *, size_t, size_t);
<
61a57,61
>
> #ifdef _I18N_DYNAMIC
>
> static int _initctypemodule(_citrus_ctype_t, char const *, _citrus_module_t,
> void *, size_t, size_t);
>Release-Note:
>Audit-Trail:
>Unformatted: