I've get the most recent version of gunlib by "git clone" and it seems that the issue is resolved here. How should I proceed with my findutils?
Thanks, Thomas -----Original Message----- From: Eric Blake [mailto:ebl...@redhat.com] Sent: Friday, March 25, 2011 04:05 To: Cao, Da-Shi (EB-Presales-ZTE/HW-GZ) Cc: bug-findut...@gnu.org; bug-gnulib Subject: Re: A bug in findutils? On 03/24/2011 02:05 AM, Cao, Da-Shi (EB-Presales-ZTE/HW-GZ) wrote: > The compilation of findutils 4.4.2 failed when I did a cross compile on i386 > to x86_64. The error is that type "wint_t" didn't get defined so the > compilation of mbchar.c in gnulib/lib failed. > The type "wint_t" is defined in system wchar.h under some conditions. The > system wchar.h is included by gnulib/lib/wchar.h. > The cross compilation error can be demonstrated by: > #include <stdio.h> > #include <wchar.h> > > It is supposed that "wint_t" should get defined after this sequence, but it > is not in this particular cross compilation. > stdio.h includes _G_config.h, which in turn include wchar.h. > But in the cross compilation there is a wchar.h in gunlib/lib. This header > file is guarded by _GL_WCHAR_H. > This gnulib/lib/wchar.h includes system wchar.h. But when included from > _G_config.h, type wint_t is not defined. This is the expected behavior. > But the "#include <wchar.h> in _G_config.h gets _GL_WCHAR_H defined, so the > "#include <wchar.h>" as in the demonstration is bypassed. > I cannot figure out how to make _GL_WCHAR_H not got defined when > gnulib/lib/wchar.h is included by "_G_config.h". Thanks for the report. In reality, this is a gnulib issue, so I have added bug-gnulib. Also, I'm not sure if gnulib has fixed the problem in the meantime, and findutils is just suffering from a stale gnulib release, or if it still exists in upstream gnulib. Are you in a position where you could help test building from git? With a recent gnulib.git checkout, it would be nice to know the results of: ./gnulib-tool --create-testdir --with-tests --dir=foo wchar stdio followed by configuring in the just-created foo directory and running 'make check' for your cross compiler setup. -- Eric Blake ebl...@redhat.com +1-801-349-2682 Libvirt virtualization library http://libvirt.org