• José Fonseca's avatar
    include: Add helper header to help trap includes inside extern C. · bfb4db83
    José Fonseca authored
    This is just to help repro and fixing these issues with any C++ compiler --
    
    Commiting this will of course wait until all issues are addressed.
    
    $ scons src/glsl/
    scons: Reading SConscript files ...
    Checking for GCC ...  yes
    Checking for Clang ...  no
    Checking for X11 (x11 xext xdamage xfixes glproto >= 1.4.13)... yes
    Checking for XCB (x11-xcb xcb-glx >= 1.8.1 xcb-dri2 >= 1.8)... yes
    Checking for XF86VIDMODE (xxf86vm)... yes
    Checking for DRM (libdrm >= 2.4.38)... yes
    Checking for UDEV (libudev >= 151)... yes
    warning: LLVM disabled: not building llvmpipe
    scons: done reading SConscript files.
    scons: Building targets ...
    scons: building associated VariantDir targets: build/linux-x86_64-debug/glsl
      Compiling src/glsl/ast_array_index.cpp ...
      Compiling src/glsl/ast_expr.cpp ...
      Compiling src/glsl/ast_function.cpp ...
      Compiling src/glsl/ast_to_hir.cpp ...
      Compiling src/glsl/ast_type.cpp ...
      Compiling src/glsl/builtin_functions.cpp ...
    In file included from include/c99_compat.h:28:0,
                     from src/mapi/u_compiler.h:4,
                     from src/mapi/u_thread.h:47,
                     from src/mapi/glapi/glapi.h:47,
                     from src/mesa/main/mtypes.h:42,
                     from src/mesa/main/errors.h:47,
                     from src/mesa/main/imports.h:41,
                     from src/mesa/main/core.h:44,
                     from src/glsl/builtin_functions.cpp:58:
    include/no_extern_c.h:48:1: error: template with C linkage
     template<class T> class _IncludeInsideExternCNotPortable;
     ^
    In file included from include/c99_compat.h:28:0,
                     from include/c11/threads.h:38,
                     from src/mapi/u_thread.h:49,
                     from src/mapi/glapi/glapi.h:47,
                     from src/mesa/main/mtypes.h:42,
                     from src/mesa/main/errors.h:47,
                     from src/mesa/main/imports.h:41,
                     from src/mesa/main/core.h:44,
                     from src/glsl/builtin_functions.cpp:58:
    include/no_extern_c.h:48:1: error: template with C linkage
     template<class T> class _IncludeInsideExternCNotPortable;
     ^
      Compiling src/glsl/builtin_types.cpp ...
      Compiling src/glsl/builtin_variables.cpp ...
    scons: *** [build/linux-x86_64-debug/glsl/builtin_functions.os] Error 1
    scons: building terminated because of errors.
    Reviewed-by: 's avatarMark Janes <mark.a.janes@intel.com>
    bfb4db83