Commit Graph

56 Commits

Author SHA1 Message Date
José Fonseca
1acd891ed3 scons: Disable more MSVC pedantic security warnings. 2009-10-22 19:12:12 +01:00
José Fonseca
5ba645f0fb scons: Disable SSE intrinsics on MinGW.
-mstackrealign causes stack corruption on MinGW. And without it the ability
to use SSE instrinsics goes down the drain. Even if we use
__attribute__((force_align_arg_pointer)) for the functions we explicitly
use SSE instrinsics, the SSE code automatically generated by gcc will
cause assertion failures. What a nightmare.

Thankfully LLVM gets this right, so all runtime generated SSE code just
works. rtasm code doesn't assume 16byte alignment. Therefore the bulk of
our performance sensitive code is not affected by this.

Still, intrinsics can be convenient, and it would be nice
to get this working again some day, sp will try to get a reduced test
case.
2009-10-14 17:24:21 +01:00
José Fonseca
1a9eec84bd scons: Drop gprof support for profile builds; tweak optimization flags instead.
gprof is useful for shared libraries, hence our drivers. Nevertheless
profilers like oprofile can benefit from disabling some relatively
minor optimizations for more accurate / complete results.
2009-09-20 18:09:34 +01:00
José Fonseca
b0b131b023 scons: Pass -mstackrealign option to gcc.
It is impossible to have gcc generate SSE code without it, as thirdparty
applications often call us with an unaligned stack pointer.
2009-09-09 21:48:50 +01:00
José Fonseca
7b39194e2d scons: Handle Circular dependencies in the libraries. 2009-08-13 16:32:51 +01:00
Brian Paul
b96ae1b2c4 Merge branch 'mesa_7_5_branch'
Conflicts:

	Makefile
	progs/glsl/multitex.c
	src/mesa/main/enums.c
	src/mesa/main/state.c
	src/mesa/main/texenvprogram.c
	src/mesa/main/version.h
2009-07-17 22:00:47 -06:00
José Fonseca
7325c1ebc8 scons: Monkey patch os.spawnve on Windows to become thread safe.
See also:
- http://bugs.python.org/issue6476
- http://scons.tigris.org/issues/show_bug.cgi?id=2449
2009-07-14 12:21:25 +01:00
José Fonseca
bb8f3090ba scons: Disable optimizations only for gcc-4.2
gcc-4.2's optimizer has a strange bug where it looses code from inner
loops in certain situations. For example, if the appearently innocent
looking code below is compiled with gcc-4.2 -S -O1, the inner loop's
code is missing from the outputed assembly.

   struct Size {
      unsigned width;
   };

   struct Command {
      unsigned length;
      struct Size sizes[32];
   };

   extern void emit_command(void *command, unsigned length);

   void
   create_surface( struct Size size, unsigned faces, unsigned levels)
   {
      struct Command cmd;
      unsigned face;
      unsigned level;

      cmd.length = faces*levels*sizeof(cmd.sizes[0]);

      for(face = 0; face < faces; ++face) {
	 for(level = 0; level < levels; ++level) {
	    cmd.sizes[face*levels + level] = size;
	    // This should generate a shrl statement, but the whole for body
	    // disappears in gcc-4.2 -O1/-O2/-O3!
	    size.width >>= 1;
	 }
      }

      emit(&cmd, sizeof cmd.length + cmd.length);
   }

Note that this is not specific to MinGW's gcc-4.2 crosscompiler (the
version typically found in debian/ubuntu's mingw32 packages). gcc-4.2 on
Linux also displays the same error. gcc-4.3 and above gets this
correctly though.

Updated MinGW debian packages with gcc-4.3 are available from
http://people.freedesktop.org/~jrfonseca/debian/pool/main/m/
2009-06-28 11:12:22 +01:00
José Fonseca
72ad039d19 scons: Use -Bsymbolic linker option.
This prevents the error

  relocation R_X86_64_PC32 against symbol `_gl_DispatchTSD' can not be used when making a shared object; recompile with -fPIC

when building on x86_64 architecture.
2009-06-28 10:54:23 +01:00
José Fonseca
25f6c936fe scons: Don't use C specific options with g++ 2009-06-26 19:57:46 +01:00
Jakob Bornecrantz
2fe65e8f14 Merge branch 'mesa_7_5_branch' 2009-06-14 16:56:34 +02:00
Brian Paul
a18e209edb Merge branch 'mesa_7_5_branch'
Conflicts:

	Makefile
	src/gallium/drivers/softpipe/sp_screen.c
	src/mesa/main/version.h
2009-06-26 17:07:07 -06:00
Michel Dänzer
550a2fe1b7 scons: Indent abbreviated command line strings, so command messages stand out.
Also add ASPPCOMSTR.
2009-06-11 12:15:50 +02:00
José Fonseca
78dad27564 Revert "scons: Less aggressive optimizations for MSVC 64bit compiler."
This reverts commit fc7f924782.
2009-06-08 11:13:41 +01:00
José Fonseca
fc7f924782 scons: Less aggressive optimizations for MSVC 64bit compiler.
MSVC 64bit compiler takes forever on some of the files.

Might want to revisit this again later.
2009-06-02 18:41:12 -07:00
José Fonseca
0f50c4fab8 scons: Output nice summary messages instead of long command lines.
You can still get the old behavior by passing the option quiet=no to scons.
2009-06-02 18:23:12 -07:00
Keith Whitwell
222d7841e9 scons: mingw is broken with -O1 and higher 2009-05-08 14:57:30 +01:00
José Fonseca
71793e0f79 scons: Support winddk 6001.18002. 2009-04-14 21:43:10 +01:00
José Fonseca
b3e03ede3e scons: Move MSVC specific away from Mingw builds. 2009-03-25 21:01:49 +00:00
José Fonseca
26e27ba308 scons: Support building with the Windows SDK.
x86_64 is also supported.
2009-03-25 19:24:49 +00:00
José Fonseca
102cb5c9cd scons: Promote declaration-after-statement to error. Detect more warnings. 2009-03-16 12:01:44 +00:00
José Fonseca
f22574be95 scons: Use -Wdeclaration-after-statement 2009-03-13 11:48:14 +00:00
José Fonseca
37f21fce3b Merge commit 'origin/gallium-0.1'
Conflicts:
	src/gallium/auxiliary/pipebuffer/pb_bufmgr_mm.c
	src/gallium/auxiliary/util/u_tile.c
2009-02-23 17:21:36 +00:00
José Fonseca
46728037a0 scons: Produce map files for debug builds too. 2009-02-18 15:05:23 +00:00
José Fonseca
6fe421cf46 scons: Unbreak mingw builds. 2009-02-12 12:59:58 +00:00
José Fonseca
73ccabc124 scons: Build DLLs/EXEs with more memory debugger friendlier settings. 2009-02-12 12:06:30 +00:00
José Fonseca
1e8177ee17 scons: Use parallel builds by default. 2009-02-10 18:13:05 +00:00
Keith Whitwell
9a7aeac49c scons: remove pedantic flag 2009-01-27 11:16:32 +00:00
José Fonseca
9bd39eb3af scons: Don't build the DRI drivers in a seperate dir.
DRI drivers can be build side by side with other non-DRI drivers, therefore
there is no need to build gallium twice.
2009-01-24 10:28:39 +00:00
José Fonseca
18170bb51b scons: Use a cache for built files.
Like ccache, but works on all OSes.
2009-01-23 21:01:16 +00:00
José Fonseca
42be0104a2 scons: Don't define UNICODE on windows builds.
It creates problems in many libraries (glut, glew) which are not unicode
aware.
2009-01-22 14:26:30 +00:00
José Fonseca
47ca0234dc scons: Use -std=gnu99
It a scary world out there: people use all sort of non standard C stuff,
and we must enable support for that in here in order to build.

-pedantic still warn us when we use that nonstandard though.
2009-01-16 15:16:55 +00:00
José Fonseca
1781d7fa38 scons: Choose the appropriate MSVC CRT. 2009-01-08 12:05:03 +00:00
José Fonseca
26ba5ce0e8 scons: Choose the appropriate MSVC CRT. 2009-01-06 18:23:16 +00:00
José Fonseca
8ee1df0652 scons: Specify C99 throughout all the tree.
MSVC may not support full C99, but supports more than plain C90. And
-pedantic without -std=c99 generates too many spurious warnings
(specially C++ style comments) to be of any use.

Note that using certain C99 features in the cross-platform parts of Gallium
is still not possible; namely mid-of-scope variable declarations and named
structure initializers will break MSVC builds.
2009-01-05 15:24:56 +00:00
José Fonseca
975e58499a scons: Specify C99 throughout all the tree.
MSVC may not support full C99, but supports more than plain C90. And
-pedantic without -std=c99 generates too many spurious warnings
(specially C++ style comments) to be of any use.

Note that using certain C99 features in the cross-platform parts of Gallium
is still not possible; namely mid-of-scope variable declarations and named
structure initializers will break MSVC builds.
2008-12-30 17:13:38 +00:00
Alan Hourihane
ee0735fa2d Merge commit 'origin/gallium-0.1' into gallium-0.2 2008-12-09 16:17:45 +00:00
José Fonseca
129c6ed678 scons: Target Windows XP on userspace. 2008-12-01 11:53:26 -08:00
Michal Krol
79bfe372f2 scons: Fix toolchain selection. 2008-11-20 23:01:53 +09:00
José Fonseca
15b92b09e0 scons: Support MinGW32 cross compiler.
To build an alternative opengl32.dll with Gallium's software-rasterizer from a
debian-based distribution run:

  sudo apt-get install mingw32
  scons platform=windows toolchain=crossmingw machine=x86 winsys=gdi dri=no
2008-11-20 23:01:43 +09:00
Michal Krol
4f3dcf3864 scons: Fix toolchain selection. 2008-11-19 20:31:38 +01:00
José Fonseca
6cf59e1293 scons: Support MinGW32 cross compiler.
To build an alternative opengl32.dll with Gallium's software-rasterizer from a
debian-based distribution run:

  sudo apt-get install mingw32
  scons platform=windows toolchain=crossmingw machine=x86 winsys=gdi dri=no
2008-11-18 19:13:32 +09:00
José Fonseca
40b3bb0407 gallium: Yet another WinCE portability fix. 2008-11-17 12:35:54 +09:00
Michel Dänzer
6b69e3c717 scons: ppc support. 2008-10-23 10:28:48 +02:00
José Fonseca
7cfc294c70 scons: Install shared libs in the right subdir. 2008-09-08 21:50:50 +09:00
José Fonseca
52c2dd1f73 scons: Install libGL.so and respective symlinks. 2008-09-08 07:54:15 +09:00
José Fonseca
a6c7258394 scons: Optimize for speed, not size, with MSVC. 2008-09-02 02:16:58 +09:00
José Fonseca
c76787a1dc scons: Set default LIBS env var. 2008-07-18 01:20:44 +09:00
José Fonseca
381e3489c2 scons: Convert tabs to spaces. 2008-07-18 01:20:44 +09:00
Jonathan White
e4f3770690 mesa: WinCE fixes 2008-07-16 16:11:38 -06:00