From: Florian Weimer Date: Thu, 11 Jan 2018 12:13:28 +0000 (+0100) Subject: csu: Update __libgcc_s_init comment X-Git-Tag: glibc-2.27~147 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=08c6e95234c60a5c2f37532d1111acf084f39345;p=thirdparty%2Fglibc.git csu: Update __libgcc_s_init comment Reviewed-by: Carlos O'Donell --- diff --git a/ChangeLog b/ChangeLog index b5fb4df6f4a..17506d59840 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2018-01-11 Florian Weimer + + * sysdeps/gnu/unwind-resume.c (__libgcc_s_init): Update comment + and error message. + 2018-01-11 Florian Weimer [BZ #22636] diff --git a/sysdeps/gnu/unwind-resume.c b/sysdeps/gnu/unwind-resume.c index 94704c9a2b6..7f9a1bf2c74 100644 --- a/sysdeps/gnu/unwind-resume.c +++ b/sysdeps/gnu/unwind-resume.c @@ -35,13 +35,17 @@ __libgcc_s_init (void) void *resume, *personality; void *handle; - handle = __libc_dlopen (LIBGCC_S_SO); + /* Use RTLD_NOW here for consistency with pthread_cancel_init. + RTLD_NOW will rarely make a difference here because unwinding is + already in progress, so libgcc_s.so has already been loaded if + its unwinder is used. */ + handle = __libc_dlopen_mode (LIBGCC_S_SO, RTLD_NOW | __RTLD_DLOPEN); if (handle == NULL || (resume = __libc_dlsym (handle, "_Unwind_Resume")) == NULL || (personality = __libc_dlsym (handle, "__gcc_personality_v0")) == NULL) __libc_fatal (LIBGCC_S_SO - " must be installed for pthread_cancel to work\n"); + " must be installed for unwinding to work\n"); #ifdef PTR_MANGLE PTR_MANGLE (resume);