Marc, here's a medium level benchmark that shows your gsc/gsi way is superior to me using gcc directly, as 64.6 minutes beats 82 minutes:
% gsc U16; gsi U16 > U16.out4 & 3880182 ms real time 3876132 ms cpu time (3874121 user, 2011 system) 42223 collections accounting for 33745 ms real time (33617 user, 171 system)
% gsc -link U16; gcc -O2 -L. -I. U16.c U16_.c -lgambc; ./a.out > U16.out5 &
4925277 ms real time 4924971 ms cpu time (4923894 user, 1077 system) 43508 collections accounting for 34017 ms real time (34065 user, 155 system)
(/ 3880.0 60) 64.66666666666667
(/ 4925.0 60) 82.08333333333333