This is the mail archive of the glibc-cvs@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

GNU C Library master sources branch master updated. glibc-2.28.9000-289-g0c096dc


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".

The branch, master has been updated
       via  0c096dcf14df1ed6ce869015ca623d8fabf1f0ef (commit)
      from  9c4b457e1b47369a40afd5e5e220f5d657667c0a (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=0c096dcf14df1ed6ce869015ca623d8fabf1f0ef

commit 0c096dcf14df1ed6ce869015ca623d8fabf1f0ef
Author: Joseph Myers <joseph@codesourcery.com>
Date:   Tue Nov 13 01:55:15 2018 +0000

    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.

diff --git a/ChangeLog b/ChangeLog
index c7ddb7f..01d9c72 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 56bb73f..7c95bc4 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")));

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog                |    3 +++
 sysdeps/mips/__longjmp.c |    7 ++++++-
 2 files changed, 9 insertions(+), 1 deletions(-)


hooks/post-receive
-- 
GNU C Library master sources


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]