Ralf Baechle wrote: > On Thu, Jan 29, 2004 at 12:25:16PM -0800, Jerry Walden wrote: > > > I am using gcc 3.3.2 - when I assemble a file that has a branch to a > > label, and the label is not defined in the .S file (i.e. there is no > > extern - the label exists in another .S file) the error "cannot branch > > to an undefined symbol" results. Using an older version of > > mipsel-gnu-linux-gcc does not report this error. Any idea what I am > > doing wrong? > > This construct is illegal because it cannot be represented in MIPS ELF. MIPS ELF could do (modulo some documentation bug in the spec), it is specifically the assembler which forbids branches to external labels. I wrote once a patch to allow it, but this broke NewABI support in turn. It would be nice optimization as long as the linker can guarantee the code is in the maximum branch range (+-128k). Thiemo