Georg Schwarz <[EMAIL PROTECTED]> writes:

>> which object modules
>> refer to _ctmp_ and _iswctype?  Perhaps something like this:
>>
>> nm -o */*.o | grep _ctmp_
>> nm -o */*.o | grep _iswctype
>>
>
> voilĂ :
>
> Symbols from ./lib/mbswidth.o:
> [227]   |           0|            |Global  |typedef wchar_t   | Undefined| 
> _ctmp_
> [228]   |           0|            |Proc    |                  | Undefined| 
> _iswctype
>
> Symbols from ./lib/quotearg.o:
> [544]   |           0|            |Global  |typedef wchar_t   | Undefined| 
> _ctmp_
> [553]   |           0|            |Proc    |                  | Undefined| 
> _iswctype
>
> Symbols from ./lib/regex.o:
> [2488]  |           4|            |Global  |typedef wchar_t   | scNil | _ctmp_

It's odd that regex worked, but quotearg and mbswidth did not.  Let's
look at quotearg first.  quotearg.c includes wctype.h, and wctype.h
should declare _ctmp_.  But I see now that it declares it to be
'static', whereas the system .h file declares it to be 'extern'.
Perhaps that's the problem?  (C99 says the behavior is undefined in
this case.)

Does the following further patch fix things for you?
If not, what does the resulting lib/wctype.h look like?
And what is the output of "cc -E -I. quotearg.c | grep ctmp"?

--- lib/wctype_.h.~1.3.~        2006-12-23 23:55:08.000000000 -0800
+++ lib/wctype_.h       2007-01-01 16:31:35.000000000 -0800
@@ -52,7 +52,7 @@ typedef int __wctype_wint_t;
 /* IRIX 5.3 has a bug: its isw* macros reference an undefined variable
    _ctmp_.  */
 #if @HAVE_WCTYPE_CTMP_BUG@
-static wint_t _ctmp_;
+wint_t _ctmp_;
 #endif
 
 /* FreeBSD 4.4 to 4.11 has <wctype.h> but lacks the functions.


_______________________________________________
Bug-coreutils mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/bug-coreutils

Reply via email to