[Mesa-dev] [PATCH 12/18] swr: [rasterizer common] OSX cleanups
Rowley, Timothy O
timothy.o.rowley at intel.com
Tue May 17 16:56:36 UTC 2016
> On May 17, 2016, at 5:56 AM, Emil Velikov <emil.l.velikov at gmail.com> wrote:
> Afaics, things were designed around the premise that one should be
> Windows/MSVC (?) compatible, correct ?
>
> In many places you're using the native types and hopefully soon you
> can 'flip' the compat. to be used for windows (non-posix) systems.
The primary development of the rasterizer actually happens on Windows/MSVC; while portability was always desired, it sometimes came with a windows flavor. It’s moving in the direction of using standard C++ language constructs with hopefully minimal platform dependencies.
>
> On 17 May 2016 at 02:10, Tim Rowley <timothy.o.rowley at intel.com> wrote:
>> ---
>> src/gallium/drivers/swr/rasterizer/common/os.h | 9 ++++++++-
>> src/gallium/drivers/swr/rasterizer/common/rdtsc_buckets.cpp | 2 +-
>> 2 files changed, 9 insertions(+), 2 deletions(-)
>>
>> diff --git a/src/gallium/drivers/swr/rasterizer/common/os.h b/src/gallium/drivers/swr/rasterizer/common/os.h
>> index 94bb567..51e6c5a 100644
>> --- a/src/gallium/drivers/swr/rasterizer/common/os.h
>> +++ b/src/gallium/drivers/swr/rasterizer/common/os.h
>> @@ -68,7 +68,7 @@ static inline void AlignedFree(void* p)
>> #define _mm_popcount_sizeT _mm_popcnt_u32
>> #endif
>>
>> -#elif defined(FORCE_LINUX) || defined(__linux__) || defined(__gnu_linux__)
>> +#elif defined(__APPLE__) || defined(FORCE_LINUX) || defined(__linux__) || defined(__gnu_linux__)
>>
>> #define SWR_API
>>
>> @@ -80,6 +80,7 @@ static inline void AlignedFree(void* p)
>> #include <unistd.h>
>> #include <sys/stat.h>
>> #include <stdio.h>
>> +#include <limits.h>
>>
>> typedef void VOID;
>> typedef void* LPVOID;
>> @@ -95,6 +96,8 @@ typedef unsigned int DWORD;
>> #undef TRUE
>> #define TRUE 1
>>
>> +#define MAX_PATH PATH_MAX
>> +
>> #define OSALIGN(RWORD, WIDTH) RWORD __attribute__((aligned(WIDTH)))
>> #define THREAD __thread
>> #ifndef INLINE
>> @@ -194,6 +197,10 @@ void AlignedFree(void* p)
>> free(p);
>> }
>>
>> +#define _countof(a) (sizeof(a)/sizeof(*(a)))
>> +
> Looks unused ?
This is used by a portion of code not exposed in the open source view.
>> +#define sprintf_s sprintf
>> +#define strcpy_s(dst,size,src) strncpy(dst,src,size)
> As/if you go with my suggestion above, you can reuse the str functions
> in auxiliary/util/u_string.h, which should handle windows nicely.
> Although honestly I hope they fixed their api to be threadsafe, as
> defined by ISO C.
If compilers supported C11, we could just use the _s variants without portability macros. Unfortunately compilers seem to be lagging on this front.
-Tim
More information about the mesa-dev
mailing list