On Fri, Dec 05, 2014 at 06:56:27PM -0800, Matt Turner wrote: > On Fri, Dec 5, 2014 at 6:18 PM, Vinson Lee <v...@freedesktop.org> wrote: > > This patch fixes this build error with GCC <= 4.6. > > > > CXX test_vf_float_conversions.o > > test_vf_float_conversions.cpp: In function ???unsigned int f2u(float)???: > > test_vf_float_conversions.cpp:63:20: error: expected primary-expression > > before ???.??? token > > > > Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=86939 > > Signed-off-by: Vinson Lee <v...@freedesktop.org> > > --- > > .../drivers/dri/i965/test_vf_float_conversions.cpp | 3 ++- > > 1 file changed, 2 insertions(+), 1 deletion(-) > > > > diff --git a/src/mesa/drivers/dri/i965/test_vf_float_conversions.cpp > > b/src/mesa/drivers/dri/i965/test_vf_float_conversions.cpp > > index 2ea36fd..6a8bcea 100644 > > --- a/src/mesa/drivers/dri/i965/test_vf_float_conversions.cpp > > +++ b/src/mesa/drivers/dri/i965/test_vf_float_conversions.cpp > > @@ -60,7 +60,8 @@ union fu { > > static unsigned > > f2u(float f) > > { > > - union fu fu = { .f = f }; > > + union fu fu; > > + fu.f = f; > > return fu.u; > > } > > I'm surprised that this is necessary. Can someone point me to some > documentation that says that designated initializers for unions only > were added with gcc-4.7? > > Jonathan, can you confirm that this is required? I suppose you didn't > notice because you didn't build with 'make check'?
No I don't normally run make check, it seems it errors out before then as it assumes /bin/bash is present /bin/sh: ./es1api/ABI-check: No such file or directory FAIL: es1api/ABI-check /bin/sh: ./es2api/ABI-check: No such file or directory FAIL: es2api/ABI-check glsl_test does not link due to missing pthread symbols And there looks to be a large amount of other scripts that want bash, ugh. Running gmake check from src/mesa/drivers/dri instead of the top level gives: test_vf_float_conversions.cpp: In function 'unsigned int f2u(float)': test_vf_float_conversions.cpp:63: error: expected primary-expression before 'union' test_vf_float_conversions.cpp:63: error: expected `)' before 'union' Makefile:1013: recipe for target 'test_vf_float_conversions.o' failed With the below diff from the top level I get as far as ====== Testing optimization passes ====== Testing ./lower_jumps/lower_returns_main_true.opt_test...FAIL Traceback (most recent call last): File "/usr/users/jsg/src/mesa/src/glsl/tests/compare_ir", line 43, in <module> ir2 = sort_decls(parse_sexp(f.read())) File "/usr/users/jsg/src/mesa/src/glsl/tests/sexps.py", line 66, in parse_sexp raise Exception('Multiple sexps') Exception: Multiple sexps Testing ./lower_jumps/lower_returns_main_false.opt_test...FAIL Traceback (most recent call last): File "/usr/users/jsg/src/mesa/src/glsl/tests/compare_ir", line 43, in <module> ir2 = sort_decls(parse_sexp(f.read())) File "/usr/users/jsg/src/mesa/src/glsl/tests/sexps.py", line 66, in parse_sexp raise Exception('Multiple sexps') Exception: Multiple sexps (and a bunch more of these) Along with the ABI-check scripts it seems at the very least all occurances of "#!/bin/bash" should be changed to "#!/usr/bin/env bash" if they are actually bash specific. In other words these: bin/bugzilla_mesa.sh:#!/bin/bash bin/shortlog_mesa.sh:#!/bin/bash src/egl/wayland/wayland-egl/wayland-egl-symbols-check:#!/bin/bash src/gallium/targets/gbm/gallium-gbm-symbols-check:#!/bin/bash src/gallium/tools/addr2line.sh:#!/bin/bash src/gallium/tools/trace/tracediff.sh:#!/bin/bash src/gbm/gbm-symbols-check:#!/bin/basH diff --git a/src/glsl/Makefile.am b/src/glsl/Makefile.am index 0ccc81d..66986eb 100644 --- a/src/glsl/Makefile.am +++ b/src/glsl/Makefile.am @@ -137,7 +137,8 @@ glsl_test_SOURCES = \ test.cpp \ test_optpass.cpp -glsl_test_LDADD = libglsl.la +glsl_test_LDADD = libglsl.la \ + $(PTHREAD_LIBS) # We write our own rules for yacc and lex below. We'd rather use automake, # but automake makes it especially difficult for a number of reasons: diff --git a/src/glsl/tests/optimization-test b/src/glsl/tests/optimization-test index 26a51be..19e3ce5 100755 --- a/src/glsl/tests/optimization-test +++ b/src/glsl/tests/optimization-test @@ -1,4 +1,4 @@ -#!/usr/bin/env bash +#!/bin/sh if [ ! -z "$srcdir" ]; then compare_ir=`pwd`/tests/compare_ir diff --git a/src/mapi/es1api/ABI-check b/src/mapi/es1api/ABI-check index 44654cd..223658b 100755 --- a/src/mapi/es1api/ABI-check +++ b/src/mapi/es1api/ABI-check @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/sh # Print defined gl.* functions not in GL ES 1.1 or in # (FIXME, none of these should be part of the ABI) diff --git a/src/mapi/es2api/ABI-check b/src/mapi/es2api/ABI-check index abbb55c..5c9e826 100755 --- a/src/mapi/es2api/ABI-check +++ b/src/mapi/es2api/ABI-check @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/sh # Print defined gl.* functions not in GL ES 3.0 or in # (FIXME, none of these should be part of the ABI) _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev