The attached change fixes a compilation error building the Debian mupdf package:
cc -g -O2 -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2 -DJBIG_NO_MEMENTO -Wall -pipe -O2 -DNDEBUG -fomit-frame-pointer -Iinclude -Igenerated -I/usr/inc lude/freetype2 -DSHARE_JPEG -I/usr/include/openjpeg-2.1 -DHAVE_OPENSSL -Ith irdparty/mujs -o build/release/pdf/pdf-fontfile.o -c source/pdf/pdf-fontfile.c {standard input}: Assembler messages: {standard input}:552: Error: Field out of range [-262144..262143] (-6108748). {standard input}:575: Error: Field out of range [-262144..262143] (-6108792). The out of range field is caused by attempting to do a sibcall to a public function. Tested on hppa-unknown-linux-gnu. Committed to trunk, gcc-5 and gcc-4.9. Dave -- John David Anglin dave.ang...@bell.net
2015-09-19 John David Anglin <dang...@gcc.gnu.org> * config/pa/pa.c (pa_function_ok_for_sibcall): Remove special treatment of TARGET_ELF32. Index: config/pa/pa.c =================================================================== --- config/pa/pa.c (revision 227923) +++ config/pa/pa.c (working copy) @@ -8510,14 +8510,6 @@ if (TARGET_PORTABLE_RUNTIME) return false; - /* Sibcalls are ok for TARGET_ELF32 as along as the linker is used in - single subspace mode and the call is not indirect. As far as I know, - there is no operating system support for the multiple subspace mode. - It might be possible to support indirect calls if we didn't use - $$dyncall (see the indirect sequence generated in pa_output_call). */ - if (TARGET_ELF32) - return (decl != NULL_TREE); - /* Sibcalls are not ok because the arg pointer register is not a fixed register. This prevents the sibcall optimization from occurring. In addition, there are problems with stub placement using GNU ld. This