[Mingw-w64-public] [PATCH] crt: Add an ldexpl function for arm and arm64

2017-12-16 Thread Martin Storsjö
Since long double just is normal double on arm and arm64, just
call the normal ldexp function.

Signed-off-by: Martin Storsjö 
---
 mingw-w64-crt/Makefile.am |  3 ++-
 mingw-w64-crt/math/arm/ldexpl.c   | 16 
 mingw-w64-crt/math/arm64/ldexpl.c | 16 
 3 files changed, 34 insertions(+), 1 deletion(-)
 create mode 100644 mingw-w64-crt/math/arm/ldexpl.c
 create mode 100644 mingw-w64-crt/math/arm64/ldexpl.c

diff --git a/mingw-w64-crt/Makefile.am b/mingw-w64-crt/Makefile.am
index 6812a5e..7d6c395 100644
--- a/mingw-w64-crt/Makefile.am
+++ b/mingw-w64-crt/Makefile.am
@@ -390,13 +390,14 @@ src_libmingwexarm32+=\
   math/softmath/sinf.c  math/softmath/sinl.c  math/softmath/tanf.c 
 math/softmath/tanl.c
 else
 src_libmingwexarm32+=\
-  math/arm/exp2.c   math/arm/log2.c   math/arm/scalbn.c
 math/arm/sincos.c
+  math/arm/exp2.c   math/arm/ldexpl.c math/arm/log2.c  
 math/arm/scalbn.c math/arm/sincos.c
 endif
 
 # these only go into the ARM64 version:
 src_libmingwexarm64=\
   math/arm64/_chgsignl.Smath/arm64/ceil.S math/arm64/ceilf.S   
 math/arm64/ceill.Smath/arm64/copysignl.c\
   math/arm64/exp2.S math/arm64/exp2f.Smath/arm64/floor.S   
 math/arm64/floorf.S   math/arm64/floorl.S   \
+  math/arm64/ldexpl.c \
   math/arm64/log2.c math/arm64/nearbyint.Smath/arm64/nearbyintf.S  
 math/arm64/nearbyintl.S   math/arm64/scalbn.c   \
   math/arm64/sincos.c   math/arm64/trunc.Smath/arm64/truncf.S
 
diff --git a/mingw-w64-crt/math/arm/ldexpl.c b/mingw-w64-crt/math/arm/ldexpl.c
new file mode 100644
index 000..cdccb7f
--- /dev/null
+++ b/mingw-w64-crt/math/arm/ldexpl.c
@@ -0,0 +1,16 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the mingw-w64 runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+
+#include 
+
+long double ldexpl(long double x, int n)
+{
+#if defined(__arm__) || defined(_ARM_)
+return ldexp(x, exp);
+#else
+#error Not supported on your platform yet
+#endif
+}
diff --git a/mingw-w64-crt/math/arm64/ldexpl.c 
b/mingw-w64-crt/math/arm64/ldexpl.c
new file mode 100644
index 000..8f37d8e
--- /dev/null
+++ b/mingw-w64-crt/math/arm64/ldexpl.c
@@ -0,0 +1,16 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the mingw-w64 runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+
+#include 
+
+long double ldexpl(long double x, int n)
+{
+#if defined(__aarch64__) || defined(_ARM64_)
+return ldexp(x, exp);
+#else
+#error Not supported on your platform yet
+#endif
+}
-- 
2.7.4


--
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
___
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public


[Mingw-w64-public] [PATCH] crt: Share winscard.def between lib64 and libarm32

2017-12-16 Thread Martin Storsjö
For lib64, this only adds a few new functions.

Also provide it for arm64.

Signed-off-by: Martin Storsjö 
---
 .../{libarm32 => lib-common}/winscard.def  |  6 +-
 mingw-w64-crt/lib64/winscard.def   | 75 --
 mingw-w64-crt/libarm64/Makefile.am |  1 +
 3 files changed, 4 insertions(+), 78 deletions(-)
 rename mingw-w64-crt/{libarm32 => lib-common}/winscard.def (96%)
 delete mode 100644 mingw-w64-crt/lib64/winscard.def

diff --git a/mingw-w64-crt/libarm32/winscard.def 
b/mingw-w64-crt/lib-common/winscard.def
similarity index 96%
rename from mingw-w64-crt/libarm32/winscard.def
rename to mingw-w64-crt/lib-common/winscard.def
index 92c13b9..cdc4b4e 100644
--- a/mingw-w64-crt/libarm32/winscard.def
+++ b/mingw-w64-crt/lib-common/winscard.def
@@ -79,6 +79,6 @@ SCardStatusW
 SCardTransmit
 SCardWriteCacheA
 SCardWriteCacheW
-g_rgSCardRawPci
-g_rgSCardT0Pci
-g_rgSCardT1Pci
+g_rgSCardRawPci DATA
+g_rgSCardT0Pci DATA
+g_rgSCardT1Pci DATA
diff --git a/mingw-w64-crt/lib64/winscard.def b/mingw-w64-crt/lib64/winscard.def
deleted file mode 100644
index 094814a..000
diff --git a/mingw-w64-crt/libarm64/Makefile.am 
b/mingw-w64-crt/libarm64/Makefile.am
index 0d4a2ea..f899582 100644
--- a/mingw-w64-crt/libarm64/Makefile.am
+++ b/mingw-w64-crt/libarm64/Makefile.am
@@ -271,6 +271,7 @@ libarm64_DATA += %reldir%/libwinhttp.a
 libarm64_DATA += %reldir%/libwininet.a
 libarm64_DATA += %reldir%/libwinmm.a
 libarm64_DATA += %reldir%/libwinrnr.a
+libarm64_DATA += %reldir%/libwinscard.a
 libarm64_DATA += %reldir%/libwinspool.a
 libarm64_DATA += %reldir%/libwinsrv.a
 libarm64_DATA += %reldir%/libwinusb.a
-- 
2.7.4


--
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
___
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public


Re: [Mingw-w64-public] [PATCH] headers: Remove an empty dxgi1_6.h

2017-12-16 Thread Kai Tietz via Mingw-w64-public
Ok. Pease go ahead-

Thanks,
Kai

2017-12-15 22:30 GMT+01:00 Martin Storsjö :
> This was added at the same time as a bunch of non-empty headers
> (and a non-empty dxgi1_6.idl) in aa6ab47929a9cac6897f38e630ce0bb88458e288;
> this empty header seems to have been the result of an error.
>
> Signed-off-by: Martin Storsjö 
> ---
>  mingw-w64-headers/direct-x/include/dxgi1_6.h | 0
>  1 file changed, 0 insertions(+), 0 deletions(-)
>  delete mode 100644 mingw-w64-headers/direct-x/include/dxgi1_6.h
>
> diff --git a/mingw-w64-headers/direct-x/include/dxgi1_6.h 
> b/mingw-w64-headers/direct-x/include/dxgi1_6.h
> deleted file mode 100644
> index e69de29..000
> --
> 2.7.4
>
>
> --
> Check out the vibrant tech community on one of the world's most
> engaging tech sites, Slashdot.org! http://sdm.link/slashdot
> ___
> Mingw-w64-public mailing list
> Mingw-w64-public@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/mingw-w64-public

--
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
___
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public


[Mingw-w64-public] Compile failure due to GCC builtin

2017-12-16 Thread Zebediah Figura
Hello,

While attempting to compile the CRT according to the instructions on
sourceforge [1], I ran into a compile error:

In file included from
/usr/local/lib/gcc/i386-w64-mingw32/8.0.0/include/x86intrin.h:74,
 from /usr/local/i386-w64-mingw32/include/intrin.h:73,
 from ../intrincs/rdtsc.c:7:
/usr/local/lib/gcc/i386-w64-mingw32/8.0.0/include/xsaveintrin.h:60:1:
error: conflicting types for ‘_xgetbv’
 _xgetbv (unsigned int __A)
 ^~~
In file included from /usr/local/i386-w64-mingw32/include/intrin.h:41,
 from ../intrincs/rdtsc.c:7:
/usr/local/i386-w64-mingw32/include/psdk_inc/intrin-impl.h:1784:18:
note: previous definition of ‘_xgetbv’ was here
 unsigned __int64 _xgetbv(unsigned int index)
  ^~~

The problem seems to be that mingw's intrin-impl.h defines _xgetbv,
which is included in recent gcc. Since gcc doesn't provide
__has_builtin, we redefine this type. I don't know what the usual method
of dealing with this is, if there is one. Could someone illuminate me as
to the correct way to fix this? Alternatively, is there something wrong
with my build setup?

[1]
https://sourceforge.net/p/mingw-w64/mailman/mingw-w64-public/?viewmonth=201704

--
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
___
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public