abs_output_section is what is required. * ldwrite.c (ldwrite): use malloc to allocate the largest space used, and pass that down. * relax.c,relax.h (write_relaxnorel): use the passed malloc area rather than alloca.
Recopied cplus-dem from gdb, makes more things come out right.