Jonathan Gray <[email protected]> writes:

> On Mon, Dec 28, 2015 at 02:02:00PM +0100, Jrmie Courrges-Anglas wrote:
>> Jonathan Gray <[email protected]> writes:
>> 
>> > On Mon, Dec 28, 2015 at 01:27:50AM +0100, Jrmie Courrges-Anglas wrote:
>> >> Stuart Henderson <[email protected]> writes:
>> >> 
>> >> > On 2015/12/21 17:21, Jonathan Gray wrote:
>> >> >> Waffle is another library along the lines of GLUT that provides a way 
>> >> >> to
>> >> >> select a windowing system and api for OpenGL.
>> >> >> 
>> >> >> This is primarily of interest for using the piglit OpenGL tests as
>> >> >> Waffle is required for testing OpenGL ES.
>> >> >
>> >> > This fails on i386 (and presumably other 32-bit arch), 
>> >> > ports/devel/cmocka
>> >> > already has a patch for this situation, but the file in the version of
>> >> > cmocka that is bundled with waffle is a bit different, I don't really
>> >> > have time to unpick it at the moment.
>> >> 
>> >> Here's a backport of the cmocka fix (modulo sys/stdin.h -> stdint.h).
>> >> Builds fine on i386.
>> >> 
>> >> (That cmocka header is damn ugly...)
>> >> 
>> >> $OpenBSD$
>> >> 
>> >> Avoid a conflicting typedef on 32-bit arch.
>> >> 
>> >> --- third_party/cmocka/include/cmocka.h.orig      Mon Dec 28 01:20:04 2015
>> >> +++ third_party/cmocka/include/cmocka.h   Mon Dec 28 01:23:28 2015
>> >> @@ -81,6 +81,9 @@ int __stdcall IsDebuggerPresent();
>> >>  #define cast_to_largest_integral_type(value) \
>> >>      ((LargestIntegralType)((size_t)(value)))
>> >>  
>> >> +#if defined(__OpenBSD__)
>> >> +#include <stdint.h>
>> >> +#else
>> >>  /* Smallest integral type capable of holding a pointer. */
>> >>  #if !defined(_UINTPTR_T) && !defined(_UINTPTR_T_DEFINED)
>> >>  # if defined(_WIN32)
>> >> @@ -109,6 +112,7 @@ int __stdcall IsDebuggerPresent();
>> >>  # define _UINTPTR_T
>> >>  # define _UINTPTR_T_DEFINED
>> >>  #endif /* !defined(_UINTPTR_T) || !defined(_UINTPTR_T_DEFINED) */
>> >> +#endif /* !defined(__OpenBSD__) */
>> >>  
>> >>  /* Perform an unsigned cast to uintptr_t. */
>> >>  #define cast_to_pointer_integral_type(value) \
>> >
>> > I wonder if we should instead have a uintptr_t define in stdint.h
>> > and add !defined(_UINTPTR_T_DEFINED_) ?
>> 
>> Well, that may "solve" the cmocka problem and would be consistent with
>> its signed counterpart.  But "_UINTPTR_T_DEFINED_" doesn't seem to exist
>> anywhere outside of that cmocka.h header.
>> 
>> cmocka builds on glibc/solaris rely on implementation details.  IMHO an
>> ugly ifdef __OpenBSD__ in the ports tree is better than hiding problems
>> by relying on implementation details.  Maybe we can propose a better diff
>> upstream (eg rely on stdint.h); I'm volunteering.
>> 
>> In the meantime, I'd rather use the same patch as in devel/cmocka.
>
> Yes, it makes sense to have the same fix in both places.  I'm ok with
> your diff. 

Great, fix committed.

(without REVISION bump, I doubt it changes anything on 64 bits archs.)

-- 
jca | PGP : 0x1524E7EE / 5135 92C1 AD36 5293 2BDF  DDCC 0DFA 74AE 1524 E7EE

Reply via email to