mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-10 07:10:06 +00:00
Fix mips build with GCC 9.
This patch fixes the build for MIPS (o32) with GCC 9 by stopping MIPS __longjmp from using strong_alias, instead defining the alias manually, so that the intended effect of not copying the nomips16 attribute is achieved, as explained in the included comment. Tested with build-many-glibcs.py compilers build for mips64-linux-gnu (which includes glibc builds for all three ABIs). * sysdeps/mips/__longjmp.c (__longjmp): Define alias manually with alias attribute, not with strong_alias.
This commit is contained in:
parent
9c4b457e1b
commit
0c096dcf14
@ -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.
|
||||
|
@ -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")));
|
||||
|
Loading…
Reference in New Issue
Block a user