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