[Mesa-dev] talloc (Was: Merge criteria for glsl2 branch)

José Fonseca jfonseca at vmware.com
Wed Aug 11 04:40:17 PDT 2010

On Tue, 2010-08-10 at 22:57 -0700, Aras Pranckevicius wrote:
>         > No, it's missing most of the API that talloc provides.
>          Also,
>         > http://github.com/aras-p/glsl-optimizer/ ported it to
>         windows.
>         Could then Aras Pranckevicius's talloc port to windows be
>         merged into
>         glsl2 branch before glsl2 is merged into master?
> First things first: I needed to make it compile & work quickly, so I
> just dropped talloc.h and talloc.c into my project
> (http://github.com/aras-p/glsl-optimizer/tree/glsl2/src/glsl/msvc/talloc/)
>  and made some fixes.
>  So I wouldn't call it a "full port", but apparently it was enough
> without taking everything that is in official talloc tarball. However,
> I'm not really sure if that is "legal" license wise (talloc is
> LGPLv3).

I'm not a lawyer, but my understanding is that if you copy the license
files too, then it should be alright.

I'd personally prefer src/talloc instead of src/glsl/msvc/talloc/ .

> That said, the only fixes I had to do are Visual C++ specific (I'm
> using VS2008):
>       * compile talloc.c as C++ (otherwise 'inline' etc. are errors on
>         MSVC). This required wrapping talloc.h and talloc.c in extern
>         "C" blocks:
>         http://github.com/aras-p/glsl-optimizer/commit/ceee99ebe0c606de6ed093c2aec20f8ecae5b673

Using C++ is overkill. The solution is simply to use the MSVC inline
keyword (__inline, or something, see p_compiler.h).

>       * vsnprintf can't be used to determine output buffer size; under
>         MSVC _vcsprintf has to be used instead.
>         http://github.com/aras-p/glsl-optimizer/commit/56bb0c7e7cedefcd2d149011a0b644551e080b9a
>       * Replaced usage of MIN to TALLOC_MIN, and defined
>         TALLOC_MIN: http://github.com/aras-p/glsl-optimizer/commit/db96499fbf874582b81dabedebc835c950520211 (there's accidental line of unrelated change in that commit)
> Compiling on Mac with Xcode 3.2 (using gcc 4.0) required
> MIN->TALLOC_MIN change and compiling as C++ with extern "C" blocks as
> well.

Could you please prepare a patch?


More information about the mesa-dev mailing list