With this change linker does not statically link 32-bit truncate() function
when only 64-bit truncate64() is used.
---
 mingw-w64-crt/Makefile.am        |  2 +-
 mingw-w64-crt/stdio/truncate.c   | 11 -----------
 mingw-w64-crt/stdio/truncate64.c | 14 ++++++++++++++
 3 files changed, 15 insertions(+), 12 deletions(-)
 create mode 100644 mingw-w64-crt/stdio/truncate64.c

diff --git a/mingw-w64-crt/Makefile.am b/mingw-w64-crt/Makefile.am
index d18cd7e440a5..c9315d5e27a3 100644
--- a/mingw-w64-crt/Makefile.am
+++ b/mingw-w64-crt/Makefile.am
@@ -1186,7 +1186,7 @@ src_libmingwex=\
   stdio/mingw_vsnprintf.c  stdio/mingw_vswprintf.c   stdio/mingw_vsnwprintf.c 
stdio/mingw_vsprintf.c    stdio/mingw_wscanf.c    \
   stdio/mingw_vfwscanf.c   stdio/mingw_vswscanf.c    stdio/mingw_vsscanf.c    
stdio/mingw_sformat.c     stdio/mingw_swformat.c  \
   \
-  stdio/snprintf.c         stdio/snwprintf.c         stdio/truncate.c        \
+  stdio/snprintf.c         stdio/snwprintf.c         stdio/truncate.c         
stdio/truncate64.c \
   stdio/ulltoa.c           stdio/ulltow.c            stdio/vasprintf.c \
   stdio/vsnprintf.c        stdio/vsnwprintf.c \
   stdio/wtoll.c            stdio/mingw_asprintf.c    stdio/mingw_vasprintf.c
diff --git a/mingw-w64-crt/stdio/truncate.c b/mingw-w64-crt/stdio/truncate.c
index 1ff3260f12f8..dc7fa8fdefaf 100644
--- a/mingw-w64-crt/stdio/truncate.c
+++ b/mingw-w64-crt/stdio/truncate.c
@@ -12,14 +12,3 @@ int truncate(const char *pathname, _off_t len){
   errno = err;
   return ret;
 }
-
-int truncate64(const char *pathname, _off64_t len){
-  int ret, err;
-  int fd = _open(pathname,_O_BINARY|_O_RDWR);
-  if (fd == -1) return fd;
-  ret = ftruncate64(fd,len);
-  err = errno;
-  _close(fd);
-  errno = err;
-  return ret;
-}
diff --git a/mingw-w64-crt/stdio/truncate64.c b/mingw-w64-crt/stdio/truncate64.c
new file mode 100644
index 000000000000..19351eb1d20e
--- /dev/null
+++ b/mingw-w64-crt/stdio/truncate64.c
@@ -0,0 +1,14 @@
+#include <unistd.h>
+#include <fcntl.h>
+#include <errno.h>
+
+int truncate64(const char *pathname, _off64_t len){
+  int ret, err;
+  int fd = _open(pathname,_O_BINARY|_O_RDWR);
+  if (fd == -1) return fd;
+  ret = ftruncate64(fd,len);
+  err = errno;
+  _close(fd);
+  errno = err;
+  return ret;
+}
-- 
2.20.1



_______________________________________________
Mingw-w64-public mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public

Reply via email to