You'll need these globals:
extern char __first_mysection __asm("section$start$__DATA$__mysection");
extern char __last_mysection __asm("section$end$__DATA$__mysection");
Immediately after GC_INIT(), call the following function: GC_add_roots(&__first_mysection, &__last_mysection_p+1);
Then everything will work.