In an extconf.rb, f I check for the existence of a struct type with:

have_type('struct toto', ['blah.h'])

it will define the constant HAVE_TYPE_STRUCT TOTO  (notice the space).
That seems broken to me.

Shouldn't the line, in have_type:

$defs.push(format("-DHAVE_TYPE_%s", type.upcase))

be replaced by:

$defs.push(format("-DHAVE_TYPE_%s", type.upcase.join("_")))

?

Guillaume.