On 01/02/2016 08:16 PM, Marcin Kościelnicki wrote: > It seems at some point the .size hook was hijacked to emit some > machine-specific directives, and the actual .size directive was > forgotten. This caused problems for split-stack support, since > linker couldn't scan the function body for non-split-stack calls. > > gcc/ChangeLog: > > * config/s390/s390.c (s390_asm_declare_function_size): Add code > to actually emit the .size directive.
... > s390_asm_declare_function_size (FILE *asm_out_file, > - const char *fnname ATTRIBUTE_UNUSED, tree decl) > + const char *fnname, tree decl) > { > + if (!flag_inhibit_size_directive) > + ASM_OUTPUT_MEASURED_SIZE (asm_out_file, fnname); > if (DECL_FUNCTION_SPECIFIC_TARGET (decl) == NULL) > return; > fprintf (asm_out_file, "\t.machine pop\n"); It would be good to use the original ASM_DECLARE_FUNCTION_SIZE macro from config/elfos.h here. This probably would require to change its name in s390.h first and then use it from s390_asm_declare_function_size. Not really beautiful but at least changes to the original macro would not require adjusting our backend. -Andreas-