diff options
-rw-r--r-- | ChangeLog | 3 | ||||
-rw-r--r-- | sysdeps/mips/__longjmp.c | 7 |
2 files changed, 9 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog index c7ddb7f33c..01d9c7226e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,8 @@ 2018-11-13 Joseph Myers <joseph@codesourcery.com> + * sysdeps/mips/__longjmp.c (__longjmp): Define alias manually with + alias attribute, not with strong_alias. + * include/libc-symbols.h [SHARED && !NO_HIDDEN && !__ASSEMBLER__] (__hidden_ver2): New macro. Use old definition of __hidden_ver1 with additional parameter thread. diff --git a/sysdeps/mips/__longjmp.c b/sysdeps/mips/__longjmp.c index 56bb73f1bc..7c95bc4030 100644 --- a/sysdeps/mips/__longjmp.c +++ b/sysdeps/mips/__longjmp.c @@ -81,4 +81,9 @@ ____longjmp (__jmp_buf env_arg, int val_arg) for (;;); } -strong_alias (____longjmp, __longjmp); +/* Not using strong_alias because the nomips16 attribute cannot be + copied from ____longjmp to __longjmp, because of the + architecture-independent declaration of __longjmp without the + attribute and compiler errors for such attributes not being the + same on all declarations. */ +extern __typeof (____longjmp) __longjmp __attribute__ ((alias ("____longjmp"))); |