mirror of
https://github.com/netwide-assembler/nasm.git
synced 2025-02-17 17:19:35 +08:00
Better handling of platforms which hide "extended" functionality
Some platforms apparently feel -std=c99, which defines __STRICT_ANSI__, should also hide a bunch of function prototypes. This rather sucks. At least try to deal with it. MinGW and DJGPP both have this problem, in particular.
This commit is contained in:
parent
31600d6988
commit
c13d31a907
26
compiler.h
26
compiler.h
@ -24,11 +24,6 @@
|
||||
# include "config.h"
|
||||
#endif
|
||||
|
||||
/* __STRICT_ANSI__ buggers up MinGW, so disable it */
|
||||
#ifdef __MINGW32__
|
||||
# undef __STRICT_ANSI__
|
||||
#endif
|
||||
|
||||
/* This is required to get the standard <inttypes.h> macros when compiling
|
||||
with a C++ compiler. This must be defined *before* <inttypes.h> is
|
||||
included, directly or indirectly. */
|
||||
@ -80,4 +75,25 @@ typedef enum { false, true } bool;
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/* Some misguided platforms hide the defs for these */
|
||||
#if defined(HAVE_STRCASECMP) && !HAVE_DECL_STRCASECMP
|
||||
int strcasecmp(const char *, const char *);
|
||||
#endif
|
||||
|
||||
#if defined(HAVE_STRICMP) && !HAVE_DECL_STRICMP
|
||||
int stricmp(const char *, const char *);
|
||||
#endif
|
||||
|
||||
#if defined(HAVE_STRNCASECMP) && !HAVE_DECL_STRNCASECMP
|
||||
int strncasecmp(const char *, const char *, size_t);
|
||||
#endif
|
||||
|
||||
#if defined(HAVE_STRNICMP) && !HAVE_DECL_STRNICMP
|
||||
int strnicmp(const char *, const char *, size_t);
|
||||
#endif
|
||||
|
||||
#if defined(HAVE_STRSEP) && !HAVE_DECL_STRSEP
|
||||
char *strsep(char **, const char *);
|
||||
#endif
|
||||
|
||||
#endif /* NASM_COMPILER_H */
|
||||
|
@ -124,6 +124,15 @@ AC_CHECK_FUNCS(strsep)
|
||||
AC_CHECK_FUNCS(getuid)
|
||||
AC_CHECK_FUNCS(getgid)
|
||||
|
||||
dnl Check for functions that might not be declared in the headers for
|
||||
dnl various idiotic reasons (mostly because of library authors
|
||||
dnl abusing the meaning of __STRICT_ANSI__)
|
||||
AC_CHECK_DECLS(strcasecmp)
|
||||
AC_CHECK_DECLS(stricmp)
|
||||
AC_CHECK_DECLS(strncasecmp)
|
||||
AC_CHECK_DECLS(strnicmp)
|
||||
AC_CHECK_DECLS(strsep)
|
||||
|
||||
if test $ac_cv_prog_make_vpathok = no; then
|
||||
echo Copying generated srcs into build directory to compensate for VPATH breakage
|
||||
for file in macros.c insnsa.c insnsd.c insnsn.c insnsi.h version.h version.mac; do
|
||||
|
Loading…
Reference in New Issue
Block a user