James Vega wrote: > 2010/5/18 Dominique Pellé <[email protected]>: > > On Tue, May 18, 2010 at 9:46 PM, James Vega <[email protected]> wrote: > >> 2010/5/18 Dominique Pellé <[email protected]>: > >>> On Tue, May 18, 2010 at 9:06 PM, Bram Moolenaar <[email protected]> > >>> wrote: > >>>> > >>>> Then we could not use the autoconf check, it always defines uint32_t. > >>>> > >>>> I'll undefine uint32_t in vim.h, like it's done for netbeans. > >>> > >>> > >>> The same kind of error still happens when compiling if_python.c: > >>> > >>> In file included from /usr/local/include/python2.6/pyport.h:7, > >>> from /usr/local/include/python2.6/Python.h:58, > >>> from if_python.c:49: > >>> /usr/include/stdint.h:52: error: duplicate ‘unsigned’ > >>> /usr/include/stdint.h:52: error: two or more data types in declaration > >>> specifiers > >>> > >>> > >>> Shouldn't we include <stdint.h> (introduced in c99) rather than defining > >>> int32_t when stdint.h is available? With something more or less like... > >>> > >>> #ifdef HAVE_STDINT_H > >>> #include <stdint.h> > >>> #else > >>> /* Define to `unsigned int' or other type that is 32 bit. */ > >>> #define uint32_t unsigned int > >>> #endif > >> > >> That's what the Autoconf macro is supposed to do: > >> > >> If stdint.h or inttypes.h does not define the type uint32_t, define > >> uint32_t to an unsigned integer type that is exactly 32 bits wide, if > >> such a type exists. > > > > Something is wrong then. I'm using gcc-4.4.1 (Ubuntu-9.10) > > which of course has <stdint.h>. Yet file vim/src/auto/config.h > > (generated by configure) redefines uint32_t: > > > > vim/src/auto/config.h: > > .... > > /* Define to `unsigned int' or other type that is 32 bit. */ > > #define uint32_t unsigned int > > ... > > Ah, the issue is that Vim's configure script isn't checking for stdint.h > or inttypes.h. Attached patch fixes this and should remove the need for > the other workarounds Bram added.
These include files also define a bunch of other things. Are we sure these won't cause new problems? Also, how do we know the uint32_t that stdint.h defines is correct? autoconf needs to verify that. Well, we could write a test for it. -- hundred-and-one symptoms of being an internet addict: 71. You wonder how people walk /// Bram Moolenaar -- [email protected] -- http://www.Moolenaar.net \\\ /// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ \\\ download, build and distribute -- http://www.A-A-P.org /// \\\ help me help AIDS victims -- http://ICCF-Holland.org /// -- You received this message from the "vim_dev" maillist. Do not top-post! Type your reply below the text you are replying to. For more information, visit http://www.vim.org/maillist.php
