Bug#408850: mksh: FTBFS on experimental/alpha (Re: Log for failed build of mksh_28.9.20070118 (dist=experimental))
I have an idea… Dixi: Martin Zobel-Helas dixit: /usr/include/sys/stat.h:217: error: conflicting types for 'stat' /usr/include/sys/stat.h:365: error: previous definition of 'stat' was here [...] Sounds like a bug in the header file to me: 215 extern int __REDIRECT_NTH (stat, (__const char *__restrict __file, 216 struct stat *__restrict __buf), stat64) 217 __nonnull ((1, 2)); 363 extern __inline__ int 364 __NTH (stat (__const char *__path, struct stat *__statbuf)) 365 { 366 return __xstat (_STAT_VER, __path, __statbuf); 367 } The second one is missing the restrict qualifier. Could that be the cause, possibly induced by invoking the C99 standard during compiling with -std=gnu99 ? Could please someone with access to an alpha try to build the version of mksh currently in experimental, or even my “current playchild“ at http://users.unixforge.de/~tglaser/mksh_28.9.20070304.dsc, with HAVE_CAN_STDG99=0 defined in the environment (of Build.sh, i.e. I'd patch debian/rules appropriately) and show me the build log? If so, we might at least have a workaround until that's fixed in the system headers, because I've got a major update to mksh (i.e. a new formal release) I'd like to get into unstable/testing, and (thanks to playing around in experimental) only this bug is pre- venting me from doing so. @Pierre HABOUZIT: maybe your sample programme compiles fine as long as you don't use -std=gnu99? Maybe the issue only appears on alpha because it implies some kind of alignment changes? Thanks! bye, //mirabile -- I believe no one can invent an algorithm. One just happens to hit upon it when God enlightens him. Or only God invents algorithms, we merely copy them. If you don't believe in God, just consider God as Nature if you won't deny existence. -- Coywolf Qi Hunt
Bug#408850: mksh: FTBFS on experimental/alpha (Re: Log for failed build of mksh_28.9.20070118 (dist=experimental))
Package: mksh Version: 28.9.20070118 Severity: important == if we can use __RCSID(x) multiple times... yes ... checking how to run the C Preprocessor ] gcc -E - -D_POSIX_C_SOURCE=2 -D_BSD_SOURCE -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -I'/build/buildd/mksh-28.9.20070118/builddir' -DHAVE_ATTRIBUTE=1 -DHAVE_ATTRIBUTE_BOUNDED=0 -DHAVE_ATTRIBUTE_USED=1 -DHAVE_SYS_PARAM_H=1 -DHAVE_SYS_MKDEV_H=0 -DHAVE_SYS_SYSMACROS_H=1 -DHAVE_LIBGEN_H=1 -DHAVE_PATHS_H=1 -DHAVE_STDBOOL_H=1 -DHAVE_GRP_H=1 -DHAVE_ULIMIT_H=1 -DHAVE_VALUES_H=1 -DHAVE_RLIM_T=1 -DHAVE_SIG_T=1 -DHAVE_MKSH_SIGNAME=0 -DHAVE_SYS_SIGNAME=0 -DHAVE__SYS_SIGNAME=0 -DHAVE_SYS_SIGLIST=1 -DHAVE_STRSIGNAL=0 -DHAVE_ARC4RANDOM=0 -DHAVE_ARC4RANDOM_PUSH=0 -DHAVE_FLOCK_EX=1 -DHAVE_SETLOCALE_CTYPE=1 -DHAVE_LANGINFO_CODESET=1 -DHAVE_REVOKE=1 -DHAVE_SETMODE=0 -DHAVE_SETRESUGID=1 -DHAVE_SETGROUPS=1 -DHAVE_STRCASESTR=1 -DHAVE_STRLCPY=0 -DHAVE_MULTI_IDSTRING=1 -Dfnord=42 x == checking how to run the C Preprocessor... gcc -E - ... done. Generating list of signal names... NSIG=65 ... 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 done. cd '..' exec gcc -g -O2 -fno-strict-aliasing -fwhole-program --combine -fwrapv -std=gnu99 -Wall -D_POSIX_C_SOURCE=2 -D_BSD_SOURCE -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -I'/build/buildd/mksh-28.9.20070118/builddir' -DHAVE_ATTRIBUTE=1 -DHAVE_ATTRIBUTE_BOUNDED=0 -DHAVE_ATTRIBUTE_USED=1 -DHAVE_SYS_PARAM_H=1 -DHAVE_SYS_MKDEV_H=0 -DHAVE_SYS_SYSMACROS_H=1 -DHAVE_LIBGEN_H=1 -DHAVE_PATHS_H=1 -DHAVE_STDBOOL_H=1 -DHAVE_GRP_H=1 -DHAVE_ULIMIT_H=1 -DHAVE_VALUES_H=1 -DHAVE_RLIM_T=1 -DHAVE_SIG_T=1 -DHAVE_MKSH_SIGNAME=0 -DHAVE_SYS_SIGNAME=0 -DHAVE__SYS_SIGNAME=0 -DHAVE_SYS_SIGLIST=1 -DHAVE_STRSIGNAL=0 -DHAVE_ARC4RANDOM=0 -DHAVE_ARC4RANDOM_PUSH=0 -DHAVE_FLOCK_EX=1 -DHAVE_SETLOCALE_CTYPE=1 -DHAVE_LANGINFO_CODESET=1 -DHAVE_REVOKE=1 -DHAVE_SETMODE=0 -DHAVE_SETRESUGID=1 -DHAVE_SETGROUPS=1 -DHAVE_STRCASESTR=1 -DHAVE_STRLCPY=0 -DHAVE_MULTI_IDSTRING=1 -DHAVE_CONFIG_H -DCONFIG_H_FILENAME=\sh.h\ -o '/build/buildd/mksh-28.9.20070118/builddir/mksh' alloc.c edit.c eval.c exec.c expr.c funcs.c histrap.c jobs.c lex.c main.c misc.c shf.c syn.c tree.c var.c setmode.c strlfun.c In file included from /usr/include/fcntl.h:37, from /usr/include/sys/file.h:25, from sh.h:42, from edit.c:6: /usr/include/sys/stat.h:217: error: conflicting types for 'stat' /usr/include/sys/stat.h:365: error: previous definition of 'stat' was here /usr/include/sys/stat.h:219: error: conflicting types for 'fstat' /usr/include/sys/stat.h:379: error: previous definition of 'fstat' was here /usr/include/sys/stat.h:227: error: conflicting types for 'stat64' /usr/include/sys/stat.h:396: error: previous definition of 'stat64' was here /usr/include/sys/stat.h:228: error: conflicting types for 'fstat64' /usr/include/sys/stat.h:410: error: previous definition of 'fstat64' was here /usr/include/sys/stat.h:242: error: conflicting types for 'lstat' /usr/include/sys/stat.h:372: error: previous definition of 'lstat' was here /usr/include/sys/stat.h:250: error: conflicting types for 'lstat64' /usr/include/sys/stat.h:403: error: previous definition of 'lstat64' was here /usr/include/sys/stat.h:334: error: conflicting types for '__fxstat' /usr/include/sys/stat.h:334: error: previous declaration of '__fxstat' was here /usr/include/sys/stat.h:337: error: conflicting types for '__xstat' /usr/include/sys/stat.h:337: error: previous declaration of '__xstat' was here /usr/include/sys/stat.h:340: error: conflicting types for '__lxstat' /usr/include/sys/stat.h:340: error: previous declaration of '__lxstat' was here /usr/include/sys/stat.h:351: error: conflicting types for '__fxstat64' /usr/include/sys/stat.h:351: error: previous declaration of '__fxstat64' was here /usr/include/sys/stat.h:353: error: conflicting types for '__xstat64' /usr/include/sys/stat.h:353: error: previous declaration of '__xstat64' was here /usr/include/sys/stat.h:355: error: conflicting types for '__lxstat64' /usr/include/sys/stat.h:355: error: previous declaration of '__lxstat64' was here In file included from /usr/include/fcntl.h:37, from /usr/include/sys/file.h:25, from sh.h:42, from eval.c:3: /usr/include/sys/stat.h:217: error: conflicting types for 'stat' /usr/include/sys/stat.h:365: error: previous definition of 'stat' was here /usr/include/sys/stat.h:219: error: conflicting types for 'fstat' /usr/include/sys/stat.h:379: error: previous definition of 'fstat' was here /usr/include/sys/stat.h:227: error: conflicting types for 'stat64' /usr/include/sys/stat.h:396: error: previous definition of 'stat64' was here /usr/include/sys/stat.h:228: error: conflicting types for 'fstat64' /usr/include/sys/stat.h:410: error: previous definition of 'fstat64' was here /usr/include/sys/stat.h:242: error: conflicting
Bug#408850: mksh: FTBFS on experimental/alpha (Re: Log for failed build of mksh_28.9.20070118 (dist=experimental))
This version was uploaded to 'experimental' exactly to find out possibly portability problems, e.g. with kfreebsd and hurd ;) So I suppose that was a good move. Martin Zobel-Helas dixit: /usr/include/sys/stat.h:217: error: conflicting types for 'stat' /usr/include/sys/stat.h:365: error: previous definition of 'stat' was here [...] Sounds like a bug in the header file to me: 215 extern int __REDIRECT_NTH (stat, (__const char *__restrict __file, 216 struct stat *__restrict __buf), stat64) 217 __nonnull ((1, 2)); 363 extern __inline__ int 364 __NTH (stat (__const char *__path, struct stat *__statbuf)) 365 { 366 return __xstat (_STAT_VER, __path, __statbuf); 367 } The second one is missing the restrict qualifier. Could that be the cause, possibly induced by invoking the C99 standard during compiling with -std=gnu99 ? bye, //mirabile -- Using Lynx is like wearing a really good pair of shades: cuts out the glare and harmful UV (ultra-vanity), and you feel so-o-o COOL. -- Henry Nelson, March 1999 -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]