diff options
author | H. Peter Anvin <hpa@zytor.com> | 2016-02-21 21:20:45 -0800 |
---|---|---|
committer | H. Peter Anvin <hpa@zytor.com> | 2016-02-21 21:20:45 -0800 |
commit | ec82d7a92b6b36ee82a051ac437d5206971e179b (patch) | |
tree | dc455708102edee93fc98fd9f88a6c58d24c7124 | |
parent | 73b22f5c1c8372bc5fc64962d38a75e9d6998f69 (diff) | |
download | nasm-ec82d7a92b6b36ee82a051ac437d5206971e179b.tar.gz |
configure: smarter way to handle fseeko() searching
Better handling of the replacement for fseeko() in its absence; also
look for the Windows _fseeki64() function.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
-rw-r--r-- | compiler.h | 14 | ||||
-rw-r--r-- | configure.in | 2 | ||||
-rw-r--r-- | nasmlib.c | 5 |
3 files changed, 15 insertions, 6 deletions
@@ -99,6 +99,20 @@ int vsnprintf(char *, size_t, const char *, va_list); # endif #endif +/* Missing fseeko/ftello */ +#ifndef HAVE_FSEEKO +# undef off_t /* Just in case it is a macro */ +# ifdef HAVE__FSEEKI64 +# define fseeko _fseeki64 +# define ftello _ftelli64 +# define off_t int64_t +# else +# define fseeko fseek +# define ftello ftell +# define off_t long +# endif +#endif + #if !defined(HAVE_STRLCPY) || !HAVE_DECL_STRLCPY size_t strlcpy(char *, const char *, size_t); #endif diff --git a/configure.in b/configure.in index 38306c2d..e05811a3 100644 --- a/configure.in +++ b/configure.in @@ -139,8 +139,8 @@ AC_CHECK_FUNCS(canonicalize_file_name) AC_CHECK_FUNCS(_fullpath) AC_CHECK_FUNCS(pathconf) -AC_TYPE_OFF_T AC_FUNC_FSEEKO +AC_CHECK_FUNCS([_fseeki64]) AC_CHECK_FUNCS([ftruncate _chsize _chsize_s]) AC_CHECK_FUNCS([fileno]) @@ -459,11 +459,6 @@ void fwriteaddr(uint64_t data, int size, FILE * fp) #endif -#ifndef HAVE_FSEEKO -# define fseeko fseek -# define ftello ftell -#endif - #ifdef HAVE_FILENO /* Useless without fileno() */ # ifdef HAVE__CHSIZE_S # define nasm_ftruncate(fd,size) _chsize_s(fd,size) |