Thanks, that was the clue I needed.  This commandline works.

gcc -shared example.o example_wrap.o \
    /usr/local/lib/libcygwin-ruby16.dll.a -o example.so

Now, a bit off topic for this forum, but this doesn't work, and I don't know
the cure:

gcc -shared example.o example_wrap.o -L/usr/local/lib/ \
    -llibcygwin-ruby16.dll.a -o example.so

> You should have usr/local/lib/libcygwin-ruby16.dll.a, so
> LDFLAGS has to contain
>
>   -L${RUBY}/usr/local/lib -lcygwin-ruby16
And I don't understand how or why you strip off the preceeding 'lib' and
trailing '.dll.a', especially since it doesn't work.

Alan