m4-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: regex.c not 64-bit clean (?)


From: Santiago Vila
Subject: Re: regex.c not 64-bit clean (?)
Date: Wed, 14 Jun 2006 17:25:40 +0200 (CEST)

> > make[3]: Entering directory `/home/sanvila/tmp/m4/lib'
> > gcc -DHAVE_CONFIG_H -I. -I. -I..     -Wall -Werror -c strnlen1.c
> > gcc -DHAVE_CONFIG_H -I. -I. -I..     -Wall -Werror -c xalloc-die.c
> > In file included from /usr/include/stdlib.h:433,
> >                  from xalloc-die.c:26:
> > /usr/include/sys/types.h:110: error: two or more data types in declaration 
> > specifiers
> > make[3]: *** [xalloc-die.o] Error 1
> 
> Sounds like we have a gnulib bug on our hands, in xalloc-die.
> 
> OK, remind me again what 'uname -a', 'gcc --version', and 'config.guess'
> report.  Also, what does 'sed -ne 90,110p /usr/include/sys/types.h' show?

[ Note: I'm doing all the tests on a "Debian unstable" chroot, since that's
  where I have gcc 4.1 available. There may be bugs not in cvs m4 or gnulib ]


$ uname -a
Linux merulo 2.6.14-dsa-mckinley-smp #1 SMP Mon Dec 12 13:41:53 MST 2005 ia64 
GNU/Linux

$ gcc --version
gcc (GCC) 4.1.2 20060604 (prerelease) (Debian 4.1.1-2)
Copyright (C) 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

$ /usr/share/misc/config.guess
ia64-unknown-linux-gnu

$ sed -ne 90,110p /usr/include/sys/types.h
typedef __off64_t off_t;
# endif
# define __off_t_defined
#endif
#if defined __USE_LARGEFILE64 && !defined __off64_t_defined
typedef __off64_t off64_t;
# define __off64_t_defined
#endif

#ifndef __pid_t_defined
typedef __pid_t pid_t;
# define __pid_t_defined
#endif

#if (defined __USE_SVID || defined __USE_XOPEN) && !defined __id_t_defined
typedef __id_t id_t;
# define __id_t_defined
#endif

#ifndef __ssize_t_defined
typedef __ssize_t ssize_t;

> Really nice would be narrowing in on what the preprocessor saw:
> 
> $ cd lib
> $ gcc -E -DHAVE_CONFIG_H -I. -I.. xalloc-die.c
> 
> and figure where in the output that line from stdlib was showing up.

$ cd lib
$ gcc -E -DHAVE_CONFIG_H -I. -I.. xalloc-die.c > Output1

Output1 attached, as it's somewhat big.

> > This is on a debian machine with architecture "ia64". Unfortunately,
> > I am not root, so I can't change anything in the build environment
> > (in fact I've had to do the cvs and bootstrap parts in another machine).
> 
> Meanwhile, the original question was whether the gnulib version of regex.c
> solved the 64-bit bugs present in the years-old version that m4 1.4.4
> used.  Now that you have gnulib checked out, try:
> 
> $ cd gnulib
> $ CFLAGS='-Wall -Werror' gnulib-tool --test regex

$ cd gnulib
$ CFLAGS='-Wall -Werror' ./gnulib-tool --test regex >& ../Output2

Similar error.

Output2 attached as well.

Attachment: Output1
Description: Text document

Attachment: Output2
Description: Text document


reply via email to

[Prev in Thread] Current Thread [Next in Thread]