Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 7 Apr 1995 22:35:35 +1000
From:      Bruce Evans <bde@zeta.org.au>
To:        current@FreeBSD.org, pete@pelican.com
Subject:   Re: more ctype woes
Message-ID:  <199504071235.WAA25471@godzilla.zeta.org.au>

next in thread | raw e-mail | index | archive | help
>In reference to my problem with ctype - defining _USE_CTYPE_CLIBRARY_
>fixed the compile problems and gave rise to:
>gcc -o geod geod.o geod_setup.o geod_forwd.o geod_invrs.o emess.o libproj.a -lm
>geod.o: Undefined symbol `___isctype' referenced from text segment
>gmake: *** [geod] Error 1

>i.e. the relevant entry (there is a reference in libc.so to isctype.so
>but not ___isctype) isn't in the C library...

I committed fixes for this a few minutes ago.

___isctype wasn't defined because libc/locale/nomacros.c didn't understand
the convolutions in <ctype.h>.  It needed to define _USE_CTYPE_CLIBRARY_
to stop <ctype.h> from declaring the inline versions and it shouldn't have
tested either _USE_CTYPE_INLINE_ or _USE_CTYPE_MACROS_ to decide whether
to generate code.

I replaced _USE_CTYPE_CLIBRARY_ and _ANSI_LIBRARY by
_EXTERNALIZE_CTYPE_INLINES_ and another layer of macros for toupper()
and tolower().  Now all the ctype "functions" are implemented as
macros (which usually expand to inline functions) so that both the
library and applications can #undef them to work with the functions.

Bruce



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