Tried that and more. I finally discovered that FFmpeg is the origin of the problem: on Windows, it contains a version of stdint.h that needs __STDC_LIMIT_MACROS to define the UINPTR_MAX and others. Decklink is the only module that requires both FFmpeg and atomic ops; that explains it.
After fixing this the build succeeded on the buildbot. Thanks for the advise. ====================================== Pretty odd indeed… as if the limits.h included from your declink code was not the same as everywhere else. :/ Googling around, looks like sometimes __WORDSIZE is not defined and we have WORD_BIT instead, can you please try to replace that set of preproc code by: #ifdef UINTPTR_MAX # if (UINTPTR_MAX == 0xFFFFFFFF) # define LG_SIZEOF_PTR 4 # elif (UINTPTR_MAX == 0xFFFFFFFFFFFFFFFF) # define LG_SIZEOF_PTR 8 # endif #elif defined(__WORDSIZE) /* Fallback for older glibc and cpp */ # if (__WORDSIZE == 32) # define LG_SIZEOF_PTR 4 # elif (__WORDSIZE == 64) # define LG_SIZEOF_PTR 8 # endif #elif defined(WORD_BIT) /* Fallback for older glibc and cpp */ # if (WORD_BIT == 32) # define LG_SIZEOF_PTR 4 # elif (WORD_BIT == 64) # define LG_SIZEOF_PTR 8 # endif #endif and see whether it works? Le 19/05/2016 12:19, Benoit Bolsee a écrit : > Hi all, > > I'm trying to compile the Decklink branch with the buildbot (after > merging in the experimental branch, revision e2ee569). The compilation > fails on atomic_ops.h: > > c:\b\buildbot_vc2013_amd64\win64_cmake_vc2013\blender.git\intern \atomic > \intern/atomic_ops_utils.h(99): fatal error C1189: #error : "Cannot > find pointer size" (C:\b\buildbot_vc2013_amd64\win64_cmake_vc2013 > \blender.git\source\gameengine\VideoTexture\DeckLink.cpp) [C:\b > \buildbot_vc2013_amd64\win64_cmake_vc2013\build\win64_cmake_vc2013 > \source\gameengine\VideoTexture\ge_videotex.vcxproj] > > (the full log is here: > https://builder.blender.org/builders/win64_cmake_vc2013/builds/841/steps/compile/logs/stdio) > > The error indicates that the preprocessor cannot resolve this sequence > in intern/atomic/intern/atomics_ops_utils.h: > > #ifdef UINTPTR_MAX > # if (UINTPTR_MAX == 0xFFFFFFFF) > # define LG_SIZEOF_PTR 4 > # elif (UINTPTR_MAX == 0xFFFFFFFFFFFFFFFF) > # define LG_SIZEOF_PTR 8 > # endif > #elif defined(__WORDSIZE) /* Fallback for older glibc and cpp */ > # if (__WORDSIZE == 32) > # define LG_SIZEOF_PTR 4 > # elif (__WORDSIZE == 64) > # define LG_SIZEOF_PTR 8 > # endif > #endif > > But atomic_ops.h is included in other parts of blender and the buildbot > has no problem with that (ex: source\blender\compositor\intern > \COM_ExecutionGroup.cpp); it's only when compiling the Decklink module > that it shokes on it. > > I've tried the linux buildbot, the same error occurs. > I've already built the decklink branch before with the buildbot without > error, but that was before the atomic-ops were rearranged in multiple > headers. > > Strangely, when I compile locally on my computer I don't have the error. > I can't see any difference in the way I'm using atomic_ops.h in the > Decklink module compare to COM_ExecutionGroup.cpp. The list of include > directory and compile-time defines is of course slightly different, so > it must be it, but which one? > > The fact that I only have the problem with the buildbot makes it > difficult to debug. > > Anyone with an idea? > > > /Benoit _______________________________________________ Bf-committers mailing list [email protected] https://lists.blender.org/mailman/listinfo/bf-committers
