The prototype for rb_time_new doesn't match the definition. The prototype is:
RUBY_DLLSPEC VALUE rb_time_new(long sec, long usec);
the definition is:
extern "C" VALUE
rb_time_new(time_t sec, long usec)
On OpenBSD i386, the compiler errors out because time_t is int and and not long. Changing the prototype to time_t fixes the issue. Patch attached.