<p dir="ltr"><br>
On Jun 29, 2016 7:16 PM, "Vinson Lee" <<a href="mailto:vlee@freedesktop.org">vlee@freedesktop.org</a>> wrote:<br>
><br>
> Fix this build error with GCC 4.4.<br>
><br>
>   CC     state_tracker/st_nir_lower_builtin.lo<br>
> In file included from state_tracker/st_nir_lower_builtin.c:61:<br>
> state_tracker/st_nir.h:34: error: redefinition of typedef ‘nir_shader’<br>
> ../../src/compiler/nir/nir.h:1830: note: previous declaration of ‘nir_shader’ was here<br>
><br>
> Suggested-by: Rob Clark <<a href="mailto:robclark@freedesktop.org">robclark@freedesktop.org</a>><br>
> Bugzilla: <a href="https://bugs.freedesktop.org/show_bug.cgi?id=96235">https://bugs.freedesktop.org/show_bug.cgi?id=96235</a><br>
> Signed-off-by: Vinson Lee <<a href="mailto:vlee@freedesktop.org">vlee@freedesktop.org</a>><br>
> ---<br>
>  src/mesa/state_tracker/st_nir.h               |   12 ++++++------<br>
>  src/mesa/state_tracker/st_nir_lower_builtin.c |    6 +++---<br>
>  2 files changed, 9 insertions(+), 9 deletions(-)<br>
><br>
> diff --git a/src/mesa/state_tracker/st_nir.h b/src/mesa/state_tracker/st_nir.h<br>
> index 49ba573..4f3c606 100644<br>
> --- a/src/mesa/state_tracker/st_nir.h<br>
> +++ b/src/mesa/state_tracker/st_nir.h<br>
> @@ -31,14 +31,14 @@<br>
>  extern "C" {<br>
>  #endif<br>
><br>
> -typedef struct nir_shader nir_shader;<br>
> +struct nir_shader;<br>
><br>
> -void st_nir_lower_builtin(nir_shader *shader);<br>
> -nir_shader * st_glsl_to_nir(struct st_context *st, struct gl_program *prog,<br>
> -                            struct gl_shader_program *shader_program,<br>
> -                            gl_shader_stage stage);<br>
> +void st_nir_lower_builtin(struct nir_shader *shader);<br>
> +struct nir_shader * st_glsl_to_nir(struct st_context *st, struct gl_program *prog,<br>
> +                                  struct gl_shader_program *shader_program,<br>
> +                                  gl_shader_stage stage);</p>
<p dir="ltr">We've done this other places to avoid extra nir.h dependencies.  However, I don't think the st_nir_lower_builtins.c bits are needed since that pulls in nir.h and the typedef with it.  If it's not needed please drop it.  The st_nir.h bits are</p>
<p dir="ltr">Reviewed-by: Jason Ekstrand <<a href="mailto:jason@jlekstrand.net">jason@jlekstrand.net</a>></p>
<p dir="ltr">><br>
> -void st_finalize_nir(struct st_context *st, struct gl_program *prog, nir_shader *nir);<br>
> +void st_finalize_nir(struct st_context *st, struct gl_program *prog, struct nir_shader *nir);<br>
><br>
>  struct gl_program *<br>
>  st_nir_get_mesa_program(struct gl_context *ctx,<br>
> diff --git a/src/mesa/state_tracker/st_nir_lower_builtin.c b/src/mesa/state_tracker/st_nir_lower_builtin.c<br>
> index 20b04d1..e71262a 100644<br>
> --- a/src/mesa/state_tracker/st_nir_lower_builtin.c<br>
> +++ b/src/mesa/state_tracker/st_nir_lower_builtin.c<br>
> @@ -64,7 +64,7 @@<br>
>  #include "program/prog_instruction.h"<br>
><br>
>  typedef struct {<br>
> -   nir_shader *shader;<br>
> +   struct nir_shader *shader;<br>
>     nir_builder builder;<br>
>     void *mem_ctx;<br>
>  } lower_builtin_state;<br>
> @@ -99,7 +99,7 @@ static nir_variable *<br>
>  get_variable(lower_builtin_state *state, nir_deref_var *deref,<br>
>               const struct gl_builtin_uniform_element *element)<br>
>  {<br>
> -   nir_shader *shader = state->shader;<br>
> +   struct nir_shader *shader = state->shader;<br>
>     int tokens[STATE_LENGTH];<br>
><br>
>     memcpy(tokens, element->tokens, sizeof(tokens));<br>
> @@ -237,7 +237,7 @@ lower_builtin_impl(lower_builtin_state *state, nir_function_impl *impl)<br>
>  }<br>
><br>
>  void<br>
> -st_nir_lower_builtin(nir_shader *shader)<br>
> +st_nir_lower_builtin(struct nir_shader *shader)<br>
>  {<br>
>     lower_builtin_state state;<br>
>     state.shader = shader;<br>
> --<br>
> 1.7.1<br>
><br>
> _______________________________________________<br>
> mesa-dev mailing list<br>
> <a href="mailto:mesa-dev@lists.freedesktop.org">mesa-dev@lists.freedesktop.org</a><br>
> <a href="https://lists.freedesktop.org/mailman/listinfo/mesa-dev">https://lists.freedesktop.org/mailman/listinfo/mesa-dev</a><br>
</p>