Compilable with `gcc -std=c89'
More conformant to C89
No union in extra_t (C89 initialization)

It is not possible to initialize different member of a union that the
first in C89. Thus, get rid of them ;-).