PERLUAFS: Modernize lang-specific swig typemaps 17/12517/2
authorAndrew Deason <adeason@sinenomine.net>
Fri, 10 Feb 2017 07:29:28 +0000 (01:29 -0600)
committerBenjamin Kaduk <kaduk@mit.edu>
Sat, 11 Feb 2017 00:08:24 +0000 (19:08 -0500)
commitdd97cb7a7447313dbc1da65104786fe03ede7c8d
treee6e50f470ba645d88cd576c830844dbd4180555d
parent5dc53812df9e5a42fa822c9b890c1b8a442bed64
PERLUAFS: Modernize lang-specific swig typemaps

Currently, our swig bindings for PERLUAFS define a couple of typemaps
like so:

    %typemap(in, numinputs=1, perl5) (char *READBUF, int LENGTH) {
        [...]
    }

Embedding the target language name in the typemap arguments is a very
old way of specifying what language the typemap is for; they were
removed after swig 1.1. With swig 3.0.x releases (and possibly
others), the specific combination of this deprecated syntax and some
other features we're using causes a segfault. That's clearly a bug in
swig, but we shouldn't be using the deprecated syntax anyway.

Update this to instead use preprocessor symbols to specify
language-specific typemaps (#ifdef SWIGPERL). We only actually define
these for perl right now, so make sure to throw an error if we're not
running for perl.

FIXES 134103

Change-Id: I14264a2dfada53d99413808ed5d60b79b1ee44f3
Reviewed-on: https://gerrit.openafs.org/12517
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
src/libuafs/ukernel_swig.i