ping, don't let this one die on me please :) On Sun, May 21, 2017 at 7:05 PM, Martell Malone <[email protected]> wrote:
> ping :) > > On Thu, May 11, 2017 at 2:10 PM, Martell Malone <[email protected]> > wrote: > >> Thanks Kai, >> >> We probably don't need to push and pop because this is not a header to be >> installed >> >> Updated diff >> >> diff --git a/mingw-w64-crt/intrincs/rdtsc.c >> b/mingw-w64-crt/intrincs/rdtsc.c >> index fd9cb75d..bf9c03b3 100644 >> --- a/mingw-w64-crt/intrincs/rdtsc.c >> +++ b/mingw-w64-crt/intrincs/rdtsc.c >> @@ -4,11 +4,14 @@ >> * No warranty is given; refer to the file DISCLAIMER.PD within this >> package. >> */ >> -#ifdef __clang__ >> -#define __IA32INTRIN_H >> -#endif >> #include <intrin.h> >> +/* Clang has support for MSVC builtins, GCC doesn't */ >> +#ifndef __has_builtin >> + #define __has_builtin(x) 0 >> +#endif >> + >> +#if !__has_builtin(__rdtsc) >> unsigned __int64 __rdtsc(void) >> { >> #ifdef _WIN64 >> @@ -21,4 +24,4 @@ unsigned __int64 __rdtsc(void) >> : "=a" (val1), "=d" (val2)); >> return ((unsigned __int64)val1) | (((unsigned __int64)val2) << 32); >> } >> - >> +#endif >> >> On Thu, May 11, 2017 at 1:15 PM, Kai Tietz <[email protected]> >> wrote: >> >>> Hmm, where is the corresponding pop_macro pragma? >>> >>> Regards, >>> Kai >>> >>> 2017-05-11 14:09 GMT+02:00 Martell Malone <[email protected]>: >>> >> >>> >> While it's not "good form" to have the prototype >>> >> in multiple places... >>> > >>> > Attached updated diff >>> > >>> > Please Review >>> > >>> > diff --git a/mingw-w64-crt/intrincs/rdtsc.c >>> b/mingw-w64-crt/intrincs/rdtsc.c >>> > index fd9cb75d..7c5adeb0 100644 >>> > --- a/mingw-w64-crt/intrincs/rdtsc.c >>> > +++ b/mingw-w64-crt/intrincs/rdtsc.c >>> > @@ -4,11 +4,15 @@ >>> > * No warranty is given; refer to the file DISCLAIMER.PD within this >>> > package. >>> > */ >>> > -#ifdef __clang__ >>> > -#define __IA32INTRIN_H >>> > -#endif >>> > #include <intrin.h> >>> > +/* Clang has support for MSVC builtins, GCC doesn't */ >>> > +#pragma push_macro("__has_builtin") >>> > +#ifndef __has_builtin >>> > + #define __has_builtin(x) 0 >>> > +#endif >>> > + >>> > +#if !__has_builtin(__rdtsc) >>> > unsigned __int64 __rdtsc(void) >>> > { >>> > #ifdef _WIN64 >>> > @@ -21,4 +25,4 @@ unsigned __int64 __rdtsc(void) >>> > : "=a" (val1), "=d" (val2)); >>> > return ((unsigned __int64)val1) | (((unsigned __int64)val2) << >>> 32); >>> > } >>> > - >>> > +#endif >>> > >>> > On Sun, Apr 16, 2017 at 3:06 AM, David Wohlferd <[email protected] >>> > >>> > wrote: >>> > >>> >> On 4/14/2017 7:14 AM, Martell Malone wrote: >>> >> > Updated clang no longer defines __IA32INTRIN_H so lets do this >>> properly. >>> >> >>> >> It appears that the only use for <intrin.h> in that file is the >>> >> prototype for __rdtsc. While it's not "good form" to have the >>> prototype >>> >> in multiple places... >>> >> >>> >> > I assume intrin-impl.h is only ever included by intrin.h? >>> >> >>> >> Fraid not. >>> >> >>> >> mingw-w64-headers\include\winbase.h:#include <psdk_inc/intrin-impl.h> >>> >> mingw-w64-headers\include\winnt.h:#include <psdk_inc/intrin-impl.h> >>> >> >>> >> > If not I will have to find a way to deal with __has_builtin in both >>> files >>> >> >>> >> >>> >> ------------------------------------------------------------ >>> >> ------------------ >>> >> 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 >>> >> [email protected] >>> >> 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 >>> > [email protected] >>> > 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 >>> [email protected] >>> 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 [email protected] https://lists.sourceforge.net/lists/listinfo/mingw-w64-public
