summaryrefslogtreecommitdiffstats
path: root/scons/gallium.py
Commit message (Collapse)AuthorAgeFilesLines
* scons: Require libdrm >= 2.4.66 for DRM.Vinson Lee2016-10-251-1/+1
| | | | | | | | | | | | | | | | | configure.ac already requires 2.4.66. Fix SCons build. drmDevicePtr is not available until libdrm 2.4.65. Compiling src/loader/loader.c ... src/loader/loader.c:111:40: error: unknown type name ‘drmDevicePtr’ static char *drm_construct_id_path_tag(drmDevicePtr device) ^ Fixes: 4a183f4d06f8 ("scons: loader: use libdrm when available") Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=98421 Signed-off-by: Vinson Lee <[email protected]> Reviewed-by: Emil Velikov <[email protected]> Reviewed-by: Vedran Miletić <[email protected]>
* scons: remove all libudev referencesEmil Velikov2016-10-181-1/+0
| | | | | | | | Analogous to previous automake/autoconf commit. Signed-off-by: Emil Velikov <[email protected]> Reviewed-by: Axel Davy <[email protected]> Reviewed-by: Nicolai Hähnle <[email protected]>
* svga: add opt to the list of valid build typesCharmaine Lee2016-08-261-3/+5
| | | | | | For opt build, add VMX86_STATS to the list of cpp defines. Reviewed-by: Brian Paul <[email protected]>
* scons: Support Clang on Windows.Jose Fonseca2016-04-261-9/+14
| | | | | | | | | | | | | | | | | - Introduce 'gcc_compat' env flag, for all compilers that define __GNUC__, (which includes Clang when it's not emulating MSVC.) - Clang doesn't support whole program optimization - Disable enumerator value warnings (not sure why Clang warns about them, as my understanding is that MSVC promotes enums to unsigned ints automatically.) This is not enough to build with Clang + AddressSanitizer though. More follow up changes will be required for that. Reviewed-by: Roland Scheidegger <[email protected]> Reviewed-by: Brian Paul <[email protected]>
* scons: Move fallback HAVE_* definitions to headers.Jose Fonseca2016-04-261-43/+5
| | | | | | | | | | | | | | | | | | These were being defined in SCons, but it's not practical: - we actually need to include Gallium headers from external source trees, with completely disjoint build infrastructure, and it's unsustainable to replicate the HAVE_xxx checks or even hard-coded defines across everywhere. - checking compiler version via command line doesn't really work due to Clang essentially being like a cameleon which can fake either GCC or MSVC There's no change for autoconf. Reviewed-by: Roland Scheidegger <[email protected]> Reviewed-by: Brian Paul <[email protected]>
* scons: Show the unit test full path.Jose Fonseca2016-04-191-1/+1
| | | | Reviewed-by: Roland Scheidegger <[email protected]>
* scons: Add a "check" target to run all unit tests.Jose Fonseca2016-04-141-9/+18
| | | | | | | | | Except: - u_cache_test -- too long - translate_test -- unreliable (it's probably testing corner cases that translate module doesn't care about.) Reviewed-by: Roland Scheidegger <[email protected]>
* scons: Allow building with Address Sanitizer.Jose Fonseca2016-04-131-1/+11
| | | | | | | | | | | | | | | | | | | | | | | libasan is never linked to shared objects (which doesn't go well with -z,defs). It must either be linked to the main executable, or (more practically for OpenGL drivers) be pre-loaded via LD_PRELOAD. Otherwise works. I didn't find anything with llvmpipe. I suspect the fact that the JIT compiled code isn't instrumented means there are lots of errors it can't catch. But for non-JIT drivers, the Address/Leak Sanitizers seem like a faster alternative to Valgrind. Usage (Ubuntu 15.10): scons asan=1 libgl-xlib export LD_LIBRARY_PATH=$PWD/build/linux-x86_64-debug/gallium/targets/libgl-xlib LD_PRELOAD=libasan.so.2 any-opengl-application Acked-by: Roland Scheidegger <[email protected]>
* scons: Eliminate MSVC2008 compatibility.Jose Fonseca2016-02-111-16/+0
| | | | | Reviewed-by: Brian Paul <[email protected]> Reviewed-by: Roland Scheidegger <[email protected]>
* configure.ac: always define __STDC_CONSTANT_MACROSOded Gabbay2016-01-111-1/+1
| | | | | | | | | | | | | | | | The ISO C99 standard (7.18.4) specifies that C++ implementations should define UINT64_C only when __STDC_CONSTANT_MACROS is defined. Because we now use UINT64_C in our cpp files (since commit 208bfc493debe0344d0b9cb93975981f14412628), we need to add this define. This also solves compilation errors with GCC 4.8.x on ppc64le machines. v2: add this define to SCons build system Signed-off-by: Oded Gabbay <[email protected]> Reviewed-by: Jose Fonseca <[email protected]>
* scons: Always define __STDC_LIMIT_MACROS.Vinson Lee2015-08-151-0/+1
| | | | | | Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=91591 Signed-off-by: Vinson Lee <[email protected]> Reviewed-by: Roland Scheidegger <[email protected]>
* scons: Disable MSVC warnings about inconsistent function annotation.Jose Fonseca2015-03-251-0/+1
| | | | | | | | | Somehow, merely including any of the *intrin.h headers causes dozens of this warnings (when compiling pretty much every source file). MSVC does not always complain the same -- so it's possible we're doing something weird --, but silence these warnings in the meanwhile. Reviewed-by: Brian Paul <[email protected]>
* scons: Silence conversion from 'size_t' to 'type', possible loss of data on ↵Jose Fonseca2015-03-221-0/+1
| | | | | | | | | | MSVC. Most cases seem harmless, though that might not always be the case. Maybe one day we can get gcc to complain about these and fix them throughout the code, but until then let's silence them. Reviewed-by: Brian Paul <[email protected]>
* scons: Ensure inttypes.h is always pre-included on MSVC.Jose Fonseca2015-03-221-0/+7
| | | | | | | | | | | | It's a bit hackish couldn't find another solution. See code comment for details. The warning is useful, so universally disabling doesn't sound a good idea. Fixes warning C4005: 'xxx' : macro redefinition Reviewed-by: Brian Paul <[email protected]>
* scons: Silence MSVC C4351 warning.Jose Fonseca2015-03-221-0/+1
| | | | | | | | It warns about change in MSVC behavior -- array initialisation used to be non-standard, but is standard now, assuming I understand correctly http://en.cppreference.com/w/cpp/language/zero_initialization . Reviewed-by: Brian Paul <[email protected]>
* scons: Prefer winflexbison, and use --wincompat when available.Jose Fonseca2015-03-221-7/+33
| | | | | | | | | | | | This avoids MSVC the warning warning C4013: 'isatty' undefined; assuming extern returning int with certain versions of flex. Reviewed-by: Brian Paul <[email protected]> v2: Add win flex-bison link to docs/install.html.
* scons: Define YY_USE_CONST on MSVC.Jose Fonseca2015-03-221-0/+8
| | | | | | | | | | This prevents the MSVC from warning C4090: 'function' : different 'const' qualifiers when compiling flex generated lexers. Reviewed-by: Brian Paul <[email protected]>
* scons: Tell MSVC STL library to not use exceptions.Jose Fonseca2015-03-221-0/+1
| | | | | | | | | | | | MSVC defaults to no exceptions unless /EH option is passed (which we don't), while MSVC's STL defaults to use exceptions unless _HAS_EXCEPTIONS=0 is defined, which we didn't. This fixes warning C4530: C++ exception handler used, but unwind semantics are not enabled. Specify /EHsc Reviewed-by: Brian Paul <[email protected]>
* scons: Silence MSVC warnings about overflows in constant arithmetic.Jose Fonseca2015-03-181-0/+2
| | | | | | | These get triggered even when using the standard C99 INFINITY/NAN constants. Reviewed-by: Brian Paul <[email protected]>
* scons: Disable MSVC signed/unsigned mismatch warnings.José Fonseca2015-03-181-0/+1
| | | | | | | | | | | | | By default gcc ignores the issue, and as result code that mixes signed/unsigned is so widespread through the code base that it ends up being little more than noise, potentially obscuring more pertinent warnings. Maybe one day we enable the corresponding gcc warnings and cleanup, but until then, this change disables them. Reviewed-by: Brian Paul <[email protected]> Reviewed-by: Roland Scheidegger <[email protected]>
* Add macro for unused function attribute.Vinson Lee2015-03-091-0/+1
| | | | | | Suggested-by: Emil Velikov <[email protected]> Signed-off-by: Vinson Lee <[email protected]> Reviewed-by: Emil Velikov <[email protected]>
* scons: Update for the fact that we require GCC 4.2Jose Fonseca2015-03-041-15/+10
| | | | Reviewed-by: Brian Paul <[email protected]>
* scons: Use -Werror MSVC compatibility flags per-directory.Jose Fonseca2015-03-041-7/+20
| | | | | | Matching what we already do with autotools builds. Reviewed-by: Brian Paul <[email protected]>
* scons: Define _DEFAULT_SOURCE.Vinson Lee2015-03-031-0/+1
| | | | | | | | | | | Fix GCC cpp warnings with glibc >= 2.19. /usr/include/features.h:148:3: warning: #warning "_BSD_SOURCE and _SVID_SOURCE are deprecated, use _DEFAULT_SOURCE" [-Wcpp] # warning "_BSD_SOURCE and _SVID_SOURCE are deprecated, use _DEFAULT_SOURCE" ^ Signed-off-by: Vinson Lee <[email protected]> Acked-by: Emil Velikov <[email protected]>
* scons: Fix HAVE___* definition.Jose Fonseca2015-03-021-24/+23
| | | | | | These definitions must be moved before `cppdefines` is used to have effect. Trivial.
* scons: Add X11 include path if X11 is available.Vinson Lee2015-01-221-0/+3
| | | | | | | | | | | | | | Mac OS X XQuartz places X11 headers at /opt/X11/include. This patch fixes this Mac OS X SCons build error. Compiling src/gallium/state_trackers/glx/xlib/glx_api.c ... In file included from src/gallium/state_trackers/glx/xlib/glx_api.c:34: include/GL/glx.h:30:10: fatal error: 'X11/Xlib.h' file not found ^ Signed-off-by: Vinson Lee <[email protected]> Reviewed-by: Emil Velikov <[email protected]>
* scons: Generate SSE2 floating-point arithmetic.José Fonseca2014-11-261-2/+2
| | | | | | | | | | | | | | | - SSE2 is available on all x86 processors we care about. - It's recommended by Intel: https://software.intel.com/en-us/blogs/2012/09/26/gcc-x86-performance-hints - And has been the default since MSVC 2012: http://msdn.microsoft.com/en-us/library/7t5yh4fd(v=vs.110).aspx Reviewed-by: Brian Paul <[email protected]> Reviewed-by: Roland Scheidegger <[email protected]>
* scons: Remove dead code/comments.José Fonseca2014-11-261-4/+1
| | | | | | | | | | | | | - Remove no-op if-clause. - -mstackrealign has been enabled again on MinGW for quite some time and appears to work alright nowadays. - Drop -mmmx option as it is implied my -msse, and we don't use MMX intrinsics anyway. Reviewed-by: Brian Paul <[email protected]> Reviewed-by: Roland Scheidegger <[email protected]>
* scons: Require glproto >= 1.4.13 for X11.Vinson Lee2014-11-161-1/+1
| | | | | | | | | | | GLXBadProfileARB and X_GLXCreateContextAtrribsARB require glproto >= 1.4.13. These symbols were added in commit d5d41112cbccd9301500e8e023be77eb9cb622cd "st/xlib: Generate errors as specified." Signed-off-by: Vinson Lee <[email protected]> Cc: "10.4" <[email protected]> Reviewed-by: José Fonseca <[email protected]>
* configure: check for xlocale.h and strtofChia-I Wu2014-10-301-0/+4
| | | | | | | | With the assumptions that xlocale.h implies newlocale and strtof_l. SCons is updated to define HAVE_XLOCALE_H on linux and darwin. Signed-off-by: Chia-I Wu <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]>
* mesa: Replace a priori knowledge of gcc attributes with configure tests.Matt Turner2014-09-251-0/+6
| | | | | | | | Note that I had to add support for testing the packed attribute to m4/ax_gcc_func_attribute.m4. Reviewed-by: Jason Ekstrand <[email protected]> [C bits] Reviewed-by: Ian Romanick <[email protected]>
* mesa: Replace a priori knowledge of gcc builtins with configure tests.Matt Turner2014-09-251-0/+18
| | | | | | | | | | | | | | Presumbly this will let clang and other compilers use the built-ins as well. Notice two changes specifically: - in _mesa_next_pow_two_64(), always use __builtin_clzll and add a static assertion that this is safe. - in macros.h, remove the clang-specific definition since it should be able to detect __builtin_unreachable in configure. Reviewed-by: Jason Ekstrand <[email protected]> [C bits] Reviewed-by: Ian Romanick <[email protected]>
* scons: add /dynamicbase and /nxcompat to MinGW linkflagsJosé Fonseca2014-09-111-2/+6
| | | | Just like b26503b196d51dc46c815e241343e42ab30e8d66 for MSVC.
* scons: add /dynamicbase and /nxcompat to MSVC linkflagsBrian Paul2014-09-111-0/+2
| | | | | | | This builds the opengl DLLs with address layout space randomization (ASLR) and data execution prevention (DEP) for better security. Reviewed-by: Kurt Daverman <[email protected]>
* scons: Link libGL.so against xcb-dri2.José Fonseca2014-06-161-1/+1
| | | | | | Fixing undefined xcb_dri2_* symbols. Trivial.
* scons: remove dri-i915 build targetEmil Velikov2014-06-091-1/+0
| | | | | | | | Unmaintained and broken. Cc: Jakob Bornecrantz <[email protected]> Signed-off-by: Emil Velikov <[email protected]> Acked-by: Jakob Bornecrantz <[email protected]>
* scons: Don't use bundled C99 headers for VS 2013.José Fonseca2014-05-021-0/+6
| | | | | | | | | | | Use the ones provided by the compiler instead. NOTE: External trees should be updated to not include '#include/c99' directory directly, but rather rely on scons/gallium.py to do the right thing. Reviewed-by: Brian Paul <[email protected]> Reviewed-by: Roland Scheidegger <[email protected]>
* scons: Adjust the warnings for VS.José Fonseca2014-05-021-1/+3
| | | | | | | | | | | | Silence insignificant warnings so significant warnings have a chance to stand out. The only abundant warning that's not silenced here is "C4018: signed/unsigned mismatch", as it could hide security issues, so it's better to actually fix the code. Reviewed-by: Brian Paul <[email protected]> Reviewed-by: Roland Scheidegger <[email protected]>
* scons: Enable building through Clang Static Analyzer.José Fonseca2014-04-171-3/+35
| | | | | | | | | Same intent as commit a45a50a4828e1357e9555474bc127c5585b3a420, but this the C compiler is detected via C-preprocessor macros, similar to how autotools do it, as that seems to be the most reliable method. Reviewed-by: Brian Paul <[email protected]>
* Revert "scons: Enable building through Clang Static Analyzer."José Fonseca2014-04-161-23/+8
| | | | | | | | | | | | | This reverts commit a45a50a4828e1357e9555474bc127c5585b3a420. Unfortunately gcc dumps argv[0] as the first word of --version, so it is unreliable for detecting gcc. In particular `cc --version` and `i686-w64-mingw32-gcc --version` give wrong results. A better solution needs to be found -- most likely using C-preprocessing like autotools does. Revert for now.
* scons: Add an analyze option.José Fonseca2014-04-161-0/+12
| | | | | | | | | | | | | | For Clang static code analyzer, the scan-build script will produce more comprehensive output. Nevertheless you can invoke it as CC=clang CXX=clang++ scons analyze=1 For MSVC this is the best way to use its static code analysis. Simply invoke as scons analyze=1 Reviewed-by: Brian Paul <[email protected]>
* scons: Enable building through Clang Static Analyzer.José Fonseca2014-04-161-8/+23
| | | | | | | | | | | | | By accurately detecting gcc/clang through --version option instead of executable name. Clang Static Analyzer reports many issues, most false positives, but it found at least one real and subtle use-after-free issue in st_texture_get_sampler_view(): http://people.freedesktop.org/~jrfonseca/scan-build-2014-04-14-1/report-869047.html#EndPath Reviewed-by: Brian Paul <[email protected]>
* haiku: Fix build through scons corrections and viewport fixesAlexander von Gluck IV2014-03-241-0/+5
| | | | | | | | | | * Add HAVE_PTHREAD, we do have pthread support wrappers now for non-native Haiku threaded applications. * Viewport changed behavior recently breaking the build. We fix this by looking at the gl_context ViewportArray (Thanks Brian for the idea) Acked-by: Brian Paul <[email protected]>
* scons: sync package requirementsEmil Velikov2014-02-181-5/+3
| | | | | | | | xorg-server and libkms is no longer required since the removal of the xorg state-tracker. Signed-off-by: Emil Velikov <[email protected]> Reviewed-by: Matt Turner <[email protected]>
* s/Tungsten Graphics/VMware/José Fonseca2014-01-171-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Tungsten Graphics Inc. was acquired by VMware Inc. in 2008. Leaving the old copyright name is creating unnecessary confusion, hence this change. This was the sed script I used: $ cat tg2vmw.sed # Run as: # # git reset --hard HEAD && find include scons src -type f -not -name 'sed*' -print0 | xargs -0 sed -i -f tg2vmw.sed # # Rename copyrights s/Tungsten Gra\(ph\|hp\)ics,\? [iI]nc\.\?\(, Cedar Park\)\?\(, Austin\)\?\(, \(Texas\|TX\)\)\?\.\?/VMware, Inc./g /Copyright/s/Tungsten Graphics\(,\? [iI]nc\.\)\?\(, Cedar Park\)\?\(, Austin\)\?\(, \(Texas\|TX\)\)\?\.\?/VMware, Inc./ s/TUNGSTEN GRAPHICS/VMWARE/g # Rename emails s/[email protected]/[email protected]/ s/[email protected]/[email protected]/g s/jrfonseca-at-tungstengraphics-dot-com/jfonseca-at-vmware-dot-com/ s/jrfonseca\[email protected]/[email protected]/g s/keithw\[email protected]/[email protected]/g s/[email protected]/[email protected]/g s/thomas-at-tungstengraphics-dot-com/thellstom-at-vmware-dot-com/ s/[email protected]/[email protected]/ # Remove dead links s@Tungsten Graphics (http://www.tungstengraphics.com)@Tungsten Graphics@g # C string src/gallium/state_trackers/vega/api_misc.c s/"Tungsten Graphics, Inc"/"VMware, Inc"/ Reviewed-by: Brian Paul <[email protected]>
* mesa: Remove last BEOS checksAlexander von Gluck IV2013-11-051-2/+0
| | | | | | | | | * Goodbye BeOS, we hardly knew thee * As BeOS was gcc2 only, there was little chance of this being useful. * Doesn't effect Haiku in any meaningful way Reviewed-by: Brian Paul <[email protected]>
* scons: Fix Haiku missing libraryAlexander von Gluck IV2013-10-201-1/+1
| | | | | | | * The softpipe add-on needs libtranslation due to the use of BTranslatorRoster Reviewed-by: Brian Paul <[email protected]>
* haiku: Ensure correct libraries are referenced.Alexander von Gluck IV2013-10-041-0/+2
|
* scons: remove radeon buildAndreas Boll2013-05-031-1/+0
| | | | | | | | One build system for linux/unix only drivers should be enough. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=48694 Acked-by: Jose Fonseca <[email protected]>
* scons: Support clang.José Fonseca2013-04-251-11/+13
| | | | | | | | | | | clang is supports most gcc options / extensions, with a some exceptions. The biggest advantage of using clang is that compilation times are much short. One can tell scons to use clang when building by invoking it as CC=clang CXX=clang++ scons libgl-xlib