[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: can't compile bash 4.1 under Solaris 8/9
From: |
Yann Rouillard |
Subject: |
Re: can't compile bash 4.1 under Solaris 8/9 |
Date: |
Thu, 07 Jan 2010 14:57:02 +0100 |
User-agent: |
Thunderbird 2.0.0.23 (X11/20090817) |
Greg Wooledge a écrit :
On Thu, Jan 07, 2010 at 12:22:12PM +0100, Yann Rouillard wrote:
./printf.def:175: error: conflicting types for 'vsnprintf'
Maybe you could first send me the config.log/config.h generated on
Solaris 8 so I can compare with mine ?
It might be more useful to compare your stdio.h header file instead.
If I recall correctly, your original Sun cc error message had the
exact file name and line number, along with a strange human-readable
rendition of the function prototype arguments.
The error message was:
"./printf.def", line 175: identifier redeclared: vsnprintf
current : function(pointer to char, unsigned int, pointer to const char,
...) returning int
previous: function(pointer to char, unsigned int, pointer to const char,
pointer to void) returning int : "/usr/include/stdio.h", line 227
vsnprintf is declared in printf.def with the following prototype:
extern int vsnprintf __P((char *, size_t, const char *, ...))
__attribute__((__format__ (printf, 3, 4)));
and is declared with the following prototype in the /usr/include/stdio.h
file of the build machine:
extern int vsnprintf(char *, size_t, const char *, __va_list);
I attached the full stdio.h file.
Yann
/* Copyright (c) 1988 AT&T */
/* All Rights Reserved */
/* THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF AT&T */
/* The copyright notice above does not evidence any */
/* actual or intended publication of such source code. */
/*
* Copyright (c) 1993-1999, by Sun Microsystems, Inc.
* All rights reserved.
*/
/*
* User-visible pieces of the ANSI C standard I/O package.
*/
#ifndef _STDIO_H
#define _STDIO_H
#pragma ident "@(#)stdio.h 1.78 99/12/08 SMI" /* SVr4.0 2.34.1.2 */
#include <iso/stdio_iso.h>
/*
* If feature test macros are set that enable interfaces that use types
* defined in <sys/types.h>, get those types by doing the include.
*
* Note that in asking for the interfaces associated with this feature test
* macro one also asks for definitions of the POSIX types.
*/
/*
* Allow global visibility for symbols defined in
* C++ "std" namespace in <iso/stdio_iso.h>.
*/
#if __cplusplus >= 199711L
using std::FILE;
using std::size_t;
using std::fpos_t;
using std::remove;
using std::rename;
using std::tmpfile;
using std::tmpnam;
using std::fclose;
using std::fflush;
using std::fopen;
using std::freopen;
using std::setbuf;
using std::setvbuf;
using std::fprintf;
using std::fscanf;
using std::printf;
using std::scanf;
using std::sprintf;
using std::sscanf;
using std::vfprintf;
using std::vprintf;
using std::vsprintf;
using std::fgetc;
using std::fgets;
using std::fputc;
using std::fputs;
using std::getc;
using std::getchar;
using std::gets;
using std::putc;
using std::putchar;
using std::puts;
using std::ungetc;
using std::fread;
using std::fwrite;
using std::fgetpos;
using std::fseek;
using std::fsetpos;
using std::ftell;
using std::rewind;
using std::clearerr;
using std::feof;
using std::ferror;
using std::perror;
#endif
#ifdef __cplusplus
extern "C" {
#endif
#if defined(_LARGEFILE_SOURCE) || defined(_XPG5)
#ifndef _OFF_T
#define _OFF_T
#if defined(_LP64) || _FILE_OFFSET_BITS == 32
typedef long off_t;
#else
typedef __longlong_t off_t;
#endif
#ifdef _LARGEFILE64_SOURCE
#ifdef _LP64
typedef off_t off64_t;
#else
typedef __longlong_t off64_t;
#endif
#endif /* _LARGEFILE64_SOURCE */
#endif /* _OFF_T */
#endif /* _LARGEFILE_SOURCE */
#ifdef _LARGEFILE64_SOURCE
#ifdef _LP64
typedef fpos_t fpos64_t;
#else
typedef __longlong_t fpos64_t;
#endif
#endif /* _LARGEFILE64_SOURCE */
/*
* XPG4 requires that va_list be defined in <stdio.h> "as described in
* <stdarg.h>". ANSI-C and POSIX require that the namespace of <stdio.h>
* not be polluted with this name.
*/
#if defined(_XOPEN_SOURCE) && (_XOPEN_VERSION - 0 >= 4) && !defined(_VA_LIST)
#define _VA_LIST
typedef __va_list va_list;
#endif /* defined(_XOPEN_SOURCE) && (_XOPEN_VERSION - 0 >= 4) && ... */
#if defined(__EXTENSIONS__) || __STDC__ - 0 == 0 || \
defined(_POSIX_C_SOURCE) || defined(_XOPEN_SOURCE)
#define L_ctermid 9
#define L_cuserid 9
#endif
#if defined(__EXTENSIONS__) || ((__STDC__ - 0 == 0 && \
!defined(_POSIX_C_SOURCE))) || defined(_XOPEN_SOURCE)
#define P_tmpdir "/var/tmp/"
#endif /* defined(__EXTENSIONS__) || ((__STDC__ - 0 == 0 && ... */
#ifndef _STDIO_ALLOCATE
extern unsigned char _sibuf[], _sobuf[];
#endif
/* large file compilation environment setup */
#if !defined(_LP64) && _FILE_OFFSET_BITS == 64
#ifdef __PRAGMA_REDEFINE_EXTNAME
#pragma redefine_extname fopen fopen64
#pragma redefine_extname freopen freopen64
#pragma redefine_extname tmpfile tmpfile64
#pragma redefine_extname fgetpos fgetpos64
#pragma redefine_extname fsetpos fsetpos64
#ifdef _LARGEFILE_SOURCE
#pragma redefine_extname fseeko fseeko64
#pragma redefine_extname ftello ftello64
#endif
#else /* __PRAGMA_REDEFINE_EXTNAME */
#if defined(__STDC__)
extern FILE *fopen64(const char *, const char *);
extern FILE *freopen64(const char *, const char *, FILE *);
extern FILE *tmpfile64(void);
extern int fgetpos64(FILE *, fpos_t *);
extern int fsetpos64(FILE *, const fpos_t *);
#else /* defined(__STDC__) */
extern FILE *fopen64();
extern FILE *freopen64();
extern FILE *tmpfile64();
extern int fgetpos64();
extern int fsetpos64();
#endif /* defined(__STDC__) */
#define fopen fopen64
#define freopen freopen64
#define tmpfile tmpfile64
#define fgetpos fgetpos64
#define fsetpos fsetpos64
#ifdef _LARGEFILE_SOURCE
#define fseeko fseeko64
#define ftello ftello64
#endif
#endif /* __PRAGMA_REDEFINE_EXTNAME */
#endif /* !_LP64 && _FILE_OFFSET_BITS == 64 */
#ifndef _LP64
extern unsigned char *_bufendtab[];
extern FILE *_lastbuf;
#endif
/* In the LP64 compilation environment, all APIs are already large file */
#if defined(_LP64) && defined(_LARGEFILE64_SOURCE)
#ifdef __PRAGMA_REDEFINE_EXTNAME
#pragma redefine_extname fopen64 fopen
#pragma redefine_extname freopen64 freopen
#pragma redefine_extname tmpfile64 tmpfile
#pragma redefine_extname fgetpos64 fgetpos
#pragma redefine_extname fsetpos64 fsetpos
#ifdef _LARGEFILE_SOURCE
#pragma redefine_extname fseeko64 fseeko
#pragma redefine_extname ftello64 ftello
#endif
#else /* __PRAGMA_REDEFINE_EXTNAME */
#define fopen64 fopen
#define freopen64 freopen
#define tmpfile64 tmpfile
#define fgetpos64 fgetpos
#define fsetpos64 fsetpos
#ifdef _LARGEFILE_SOURCE
#define fseeko64 fseeko
#define ftello64 ftello
#endif
#endif /* __PRAGMA_REDEFINE_EXTNAME */
#endif /* _LP64 && _LARGEFILE64_SOURCE */
#if defined(__STDC__)
#if defined(__EXTENSIONS__) || defined(_REENTRANT)
extern char *tmpnam_r(char *);
#endif /* defined(__EXTENSIONS__) || defined(_REENTRANT) */
#if defined(__EXTENSIONS__) || (__STDC__ == 0 && \
!defined(_XOPEN_SOURCE) && !defined(_POSIX_C_SOURCE))
extern void setbuffer(FILE *, char *, size_t);
extern int setlinebuf(FILE *);
#endif
#if defined(__EXTENSIONS__) || (__STDC__ == 0 && \
!defined(_XOPEN_SOURCE) && !defined(_POSIX_C_SOURCE)) || \
defined(_XPG5)
/* PRINTFLIKE3 */
extern int snprintf(char *, size_t, const char *, ...);
#endif
#if defined(__EXTENSIONS__) || (__STDC__ == 0 && \
!defined(_XOPEN_SOURCE) && !defined(_POSIX_C_SOURCE)) || \
defined(_XPG5)
extern int vsnprintf(char *, size_t, const char *, __va_list);
#endif /* defined(__EXTENSIONS__) || __STDC__ == 0 ... */
/*
* The following are known to POSIX and XOPEN, but not to ANSI-C.
*/
#if defined(__EXTENSIONS__) || __STDC__ == 0 || \
defined(_POSIX_C_SOURCE) || defined(_XOPEN_SOURCE)
extern FILE *fdopen(int, const char *);
extern char *ctermid(char *);
extern int fileno(FILE *);
#endif /* defined(__EXTENSIONS__) || __STDC__ == 0 ... */
/*
* The following are known to POSIX.1c, but not to ANSI-C or XOPEN.
*/
#if defined(__EXTENSIONS__) || defined(_REENTRANT) || \
(_POSIX_C_SOURCE - 0 >= 199506L)
extern void flockfile(FILE *);
extern int ftrylockfile(FILE *);
extern void funlockfile(FILE *);
extern int getc_unlocked(FILE *);
extern int getchar_unlocked(void);
extern int putc_unlocked(int, FILE *);
extern int putchar_unlocked(int);
#endif /* defined(__EXTENSIONS__) || defined(_REENTRANT).. */
/*
* The following are known to XOPEN, but not to ANSI-C or POSIX.
*/
#if defined(__EXTENSIONS__) || __STDC__ == 0 || defined(_XOPEN_SOURCE)
extern FILE *popen(const char *, const char *);
extern char *cuserid(char *);
extern char *tempnam(const char *, const char *);
extern int getopt(int, char *const *, const char *);
#if !defined(_XOPEN_SOURCE)
extern int getsubopt(char **, char *const *, char **);
#endif /* !defined(_XOPEN_SOURCE) */
extern char *optarg;
extern int optind, opterr, optopt;
extern int getw(FILE *);
extern int putw(int, FILE *);
extern int pclose(FILE *);
#endif /* defined(__EXTENSIONS__) || __STDC__ == 0 ... */
/*
* The following are defined as part of the Large File Summit interfaces.
*/
#if defined(_LARGEFILE_SOURCE) || defined(_XPG5)
extern int fseeko(FILE *, off_t, int);
extern off_t ftello(FILE *);
#endif
/*
* The following are defined as part of the transitional Large File Summit
* interfaces.
*/
#if defined(_LARGEFILE64_SOURCE) && !((_FILE_OFFSET_BITS == 64) && \
!defined(__PRAGMA_REDEFINE_EXTNAME))
extern FILE *fopen64(const char *, const char *);
extern FILE *freopen64(const char *, const char *, FILE *);
extern FILE *tmpfile64(void);
extern int fgetpos64(FILE *, fpos64_t *);
extern int fsetpos64(FILE *, const fpos64_t *);
extern int fseeko64(FILE *, off64_t, int);
extern off64_t ftello64(FILE *);
#endif
#else /* !defined __STDC__ */
#ifndef _LP64
#define _bufend(p) ((fileno(p) < _NFILE) ? _bufendtab[fileno(p)] : \
(unsigned char *)_realbufend(p))
#define _bufsiz(p) (_bufend(p) - (p)->_base)
#endif /* _LP64 */
#if defined(__EXTENSIONS__) || defined(_REENTRANT)
extern char *tmpnam_r();
#endif /* defined(__EXTENSIONS__) || defined(_REENTRANT) */
#if defined(__EXTENSIONS__) || \
(!defined(_XOPEN_SOURCE) && !defined(_POSIX_C_SOURCE))
extern void setbuffer();
extern int setlinebuf();
#endif
#if defined(__EXTENSIONS__) || \
defined(_POSIX_C_SOURCE) || defined(_XOPEN_SOURCE)
extern FILE *fdopen();
extern char *ctermid();
extern int fileno();
#endif /* defined(__EXTENSIONS__) || defined(_POSIX_C_SOURCE... */
#if defined(__EXTENSIONS__) || defined(_REENTRANT) || \
(_POSIX_C_SOURCE - 0 >= 199506L)
extern void flockfile();
extern int ftrylockfile();
extern void funlockfile();
extern int getc_unlocked();
extern int getchar_unlocked();
extern int putc_unlocked();
extern int putchar_unlocked();
#endif /* defined(__EXTENSIONS__) || defined(_REENTRANT).. */
#if defined(__EXTENSIONS__) || defined(_XOPEN_SOURCE)
extern FILE *popen();
extern char *cuserid();
extern char *tempnam();
extern int getopt();
#if !defined(_XOPEN_SOURCE)
extern int getsubopt();
#endif /* !defined(_XOPEN_SOURCE) */
extern char *optarg;
extern int optind, opterr, optopt;
extern int getw();
extern int putw();
extern int pclose();
#endif /* defined(__EXTENSIONS__) || defined(_XOPEN_SOURCE) */
#if defined(_LARGEFILE_SOURCE) || defined(_XPG5)
extern int fseeko();
extern off_t ftello();
#endif
#if defined(_LARGEFILE64_SOURCE) && !((_FILE_OFFSET_BITS == 64) && \
!defined(__PRAGMA_REDEFINE_EXTNAME))
extern FILE *fopen64();
extern FILE *freopen64();
extern FILE *tmpfile64();
extern int fgetpos64();
extern int fsetpos64();
extern int fseeko64();
extern off64_t ftello64();
#endif
#endif /* __STDC__ */
#if !defined(__lint)
#if defined(__EXTENSIONS__) || defined(_REENTRANT) || \
(_POSIX_C_SOURCE - 0 >= 199506L)
#ifndef _LP64
#ifdef __STDC__
#define getc_unlocked(p) (--(p)->_cnt < 0 \
? __filbuf(p) \
: (int)*(p)->_ptr++)
#define putc_unlocked(x, p) (--(p)->_cnt < 0 \
? __flsbuf((x), (p)) \
: (int)(*(p)->_ptr++ = \
(unsigned char) (x)))
#else
#define getc_unlocked(p) (--(p)->_cnt < 0 \
? _filbuf(p) \
: (int)*(p)->_ptr++)
#define putc_unlocked(x, p) (--(p)->_cnt < 0 \
? _flsbuf((x), (p)) \
: (int)(*(p)->_ptr++ = \
(unsigned char) (x)))
#endif /* __STDC__ */
#endif /* _LP64 */
#define getchar_unlocked() getc_unlocked(stdin)
#define putchar_unlocked(x) putc_unlocked((x), stdout)
#endif /* defined(__EXTENSIONS__) || defined(_REENTRANT).. */
#endif /* !defined(__lint) */
#ifdef __cplusplus
}
#endif
#endif /* _STDIO_H */