[PATCH v3] libc: Extend __libc_freeres framework (Bug 23329).
Florian Weimer
fweimer@redhat.com
Thu Jun 28 13:22:00 GMT 2018
> + [BZ #23329]
> + * include/libc-symbols.h: Comment the freeres framework.
> + * include/set-hooks.h: Include libc-symbols.h. Fix comment.
> + * dlfcn/Makefile (libdl-routines): Add dlfreeres.
> + * dlfcn/Versions (GLIBC_PRIVATE): Add __libdl_freeres.
> + * dlfcn/dlerror.c: Include libc-symbols.h
> + (__dlerror_main_freeres): New function.
> + * dlfcn/dlfreeres.c: New file.
> + * dlfcn/sdlfreeres.c: New file.
> + * include/dlfcn.h: Declare __dlerror_main_freeres.
> + * malloc/set-freeres.c: Declare __libdl_freeres, and
> + __libpthread_freeres.
> + (__libc_subfreeres): Call __libdl_freeres, and __libpthread_freeres if
> + the releavant libraries are loaded.
> + * malloc/thread-freeres.c: Add comments.
> + * nptl/Makefile (libpthread-routines): Add nptlfreeres.
> + * nptl/Version (GLIBC_PRIVATE): Add __libpthread_freeres.
> + * nptl/allocatestack.c (__nptl_free_stacks): New function.
> + (__free_stacks): Rename to...
> + (free_stacks): ...this. Mark static.
> + (queue_stack): Call free_stacks.
> + * nptl/libc_pthread_init.c [SHARED] (freeres_libpthread): Delete.
> + * nptl/nptl-init.c: Delete delcaration of nptl_freeres.
> + * sysdeps/nptl/pthread-functions.h (pthread_functions): Remove
> + ptr_freeres element from struct.
> + (pthread_functions): Remove .ptr_freeres from struct initializer.
> + [SHARED] (nptl_freeres): Remove.
> + * nptl/nptlfreeres.c: New file.
> + * nptl/pthreadP.h
> + [IS_IN (libpthread) && SHARED ] (__unwind_freeres): Rename to...
> + [IS_IN (libpthread)] (__nptl_unwind_freeres): ...this. Mark
> + attribute_hidden.
> + (__free_stacks): Rename to...
> + (__nptl_stacks_freeres): ...this.
> + (__shm_directory_freeres): Declare.
> + * nptl/unwind-forcedunwind.c (__unwind_freeres): Rename to...
> + (__nptl_unwind_freeres): ...this.
> + * resolv/res-close.c: Add comment.
> + * resolv/resolv_conf.c: Include libc-symbols.h.
> + * string/strerror_l.c: Include libc-symbols.h.
> + * sunrpc/rpc_thread.c: Include libc-symbols.h.
> + * sysdeps/mach/strerror_l.c: Inlcude libc-symbols.h
> + * sysdeps/unix/sysv/linux/shm-directory.c (freeit): Rename to...
> + [IS_IN (libpthread)] (__shm_directory_freeres): ...this.
ChangeLog looks okay now (but it still does not apply with git am -3
--reject).
> diff --git a/dlfcn/dlfreeres.c b/dlfcn/dlfreeres.c
> new file mode 100644
> index 0000000000..8c18731b5c
â¦
> +void
> +__libdl_freeres (void)
> +{
> + call_function_static_weak (__dlerror_main_freeres);
> +}
> +libc_hidden_def (__libdl_freeres)
Please remove the last line of the file before committing. It is a
no-op (otherwise it wouldn't compile due to the missing libc_hidden_proto).
Thanks,
Florian
More information about the Libc-alpha
mailing list