Subject: emergency measure: switch{} translation changed in egcs.
To: None <tech-toolchain@netbsd.org>
From: Paul Kranenburg <pk@cs.few.eur.nl>
List: tech-toolchain
Date: 05/27/1999 14:27:51
I have just checked in a temporary change in the egcs distribution
kit to get ld.elf_so working again. The log message reads:

[gnusrc/gnu/dist/gcc/stmt.c]

	Temporarily disable the tablejump switch{} implementation when
	compiling into PIC code.   Currently, the tablejump method requires
	Global Offset Table access which undermines its use in self-relocating
	code such as the run-time linker.


The previous method of generating the base address of the switch's
jump table did not require the completion of relocation (of GOT
entries) to work.

E.g. on the sparc, the address was obtained in-line in the same way
the GOT base address itself is determined in a function prologue, by
using `call' instruction to obtain the load address of the text segment.

-pk