<feed xmlns='http://www.w3.org/2005/Atom'>
<title>glibc/sunrpc/rpc_thread.c, branch vdso</title>
<subtitle>Fork of glibc for development</subtitle>
<id>https://git.zx2c4.com/glibc/atom/sunrpc/rpc_thread.c?h=vdso</id>
<link rel='self' href='https://git.zx2c4.com/glibc/atom/sunrpc/rpc_thread.c?h=vdso'/>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/glibc/'/>
<updated>2023-03-27T16:57:55Z</updated>
<entry>
<title>Move libc_freeres_ptrs and libc_subfreeres to hidden/weak functions</title>
<updated>2023-03-27T16:57:55Z</updated>
<author>
<name>Adhemerval Zanella Netto</name>
<email>adhemerval.zanella@linaro.org</email>
</author>
<published>2022-12-27T21:11:42Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/glibc/commit/?id=88677348b4de73874ca7d5a47451f42880f65f07'/>
<id>urn:sha1:88677348b4de73874ca7d5a47451f42880f65f07</id>
<content type='text'>
They are both used by __libc_freeres to free all library malloc
allocated resources to help tooling like mtrace or valgrind with
memory leak tracking.

The current scheme uses assembly markers and linker script entries
to consolidate the free routine function pointers in the RELRO segment
and to be freed buffers in BSS.

This patch changes it to use specific free functions for
libc_freeres_ptrs buffers and call the function pointer array directly
with call_function_static_weak.

It allows the removal of both the internal macros and the linker
script sections.

Checked on x86_64-linux-gnu, i686-linux-gnu, and aarch64-linux-gnu.
Reviewed-by: Carlos O'Donell &lt;carlos@redhat.com&gt;
</content>
</entry>
<entry>
<title>libc: Extend __libc_freeres framework (Bug 23329).</title>
<updated>2018-06-30T02:39:06Z</updated>
<author>
<name>Carlos O'Donell</name>
<email>carlos@redhat.com</email>
</author>
<published>2018-06-22T13:28:47Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/glibc/commit/?id=2827ab990aefbb0e53374199b875d98f116d6390'/>
<id>urn:sha1:2827ab990aefbb0e53374199b875d98f116d6390</id>
<content type='text'>
The __libc_freeres framework does not extend to non-libc.so objects.
This causes problems in general for valgrind and mtrace detecting
unfreed objects in both libdl.so and libpthread.so.  This change is
a pre-requisite to properly moving the malloc hooks out of malloc
since such a move now requires precise accounting of all allocated
data before destructors are run.

This commit adds a proper hook in libc.so.6 for both libdl.so and
for libpthread.so, this ensures that shm-directory.c which uses
freeit () to free memory is called properly.  We also remove the
nptl_freeres hook and fall back to using weak-ref-and-check idiom
for a loaded libpthread.so, thus making this process similar for
all DSOs.

Lastly we follow best practice and use explicit free calls for
both libdl.so and libpthread.so instead of the generic hook process
which has undefined order.

Tested on x86_64 with no regressions.

Signed-off-by: DJ Delorie &lt;dj@redhat.com&gt;
Signed-off-by: Carlos O'Donell &lt;carlos@redhat.com&gt;
</content>
</entry>
<entry>
<title>Run thread shutdown functions in an explicit order</title>
<updated>2018-06-26T13:27:12Z</updated>
<author>
<name>Florian Weimer</name>
<email>fweimer@redhat.com</email>
</author>
<published>2018-06-26T13:13:54Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/glibc/commit/?id=124e025864bb39732c71fc60c1443d5680881a0a'/>
<id>urn:sha1:124e025864bb39732c71fc60c1443d5680881a0a</id>
<content type='text'>
This removes the __libc_thread_subfreeres hook in favor of explict
calls.

Reviewed-by: Carlos O'Donell &lt;carlos@redhat.com&gt;
</content>
</entry>
<entry>
<title>sunrpc: Remove always-defined _RPC_THREAD_SAFE_ macro</title>
<updated>2018-06-26T13:27:03Z</updated>
<author>
<name>Florian Weimer</name>
<email>fweimer@redhat.com</email>
</author>
<published>2018-06-26T13:27:03Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/glibc/commit/?id=935d920e763626dbcbbf655117285d1d270791a1'/>
<id>urn:sha1:935d920e763626dbcbbf655117285d1d270791a1</id>
<content type='text'>
Header and C source file changes were generated using:

unifdef -m -D_RPC_THREAD_SAFE_ include/rpc/rpc.h sunrpc/*.c
</content>
</entry>
<entry>
<title>Include shlib-compat.h in many sunrpc/nis source files.</title>
<updated>2017-06-04T15:31:28Z</updated>
<author>
<name>Zack Weinberg</name>
<email>zackw@panix.com</email>
</author>
<published>2017-06-04T15:14:43Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/glibc/commit/?id=82f43dd2d11b5705ed5680f579f265781387a12d'/>
<id>urn:sha1:82f43dd2d11b5705ed5680f579f265781387a12d</id>
<content type='text'>
Every file that uses libc_hidden_nolink_sunrpc or
libnsl_hidden_nolink_def needs to include shlib-compat.h.  Currently,
most of them are getting it via stdio.h, because libio.h refers to
SHLIB_COMPAT when _LIBC is defined, so it includes shlib-compat.h.  My
experimental patch to not install libio.h breaks that chain; stdio.h
no longer pulls in libio.h even for internal users.

Accordingly, this patch adds #include &lt;shlib-compat.h&gt; to many files
in sunrpc/ and nis/.  There are also a small number of really obvious
fixups to includes that caught my eye while proofreading the patch -
not including headers twice in a row, not worrying about portability
to Ultrix anymore, sort of thing.

	* nis/nis_add.c, nis/nis_addmember.c, nis/nis_call.c
	* nis/nis_checkpoint.c, nis/nis_clone_dir.c, nis/nis_clone_obj.c
	* nis/nis_clone_res.c, nis/nis_creategroup.c, nis/nis_defaults.c
	* nis/nis_destroygroup.c, nis/nis_domain_of.c
	* nis/nis_domain_of_r.c, nis/nis_error.c, nis/nis_file.c
	* nis/nis_free.c, nis/nis_getservlist.c, nis/nis_ismember.c
	* nis/nis_local_names.c, nis/nis_lookup.c, nis/nis_mkdir.c
	* nis/nis_modify.c, nis/nis_ping.c, nis/nis_print.c
	* nis/nis_print_group_entry.c, nis/nis_remove.c
	* nis/nis_removemember.c, nis/nis_rmdir.c, nis/nis_server.c
	* nis/nis_subr.c, nis/nis_table.c, nis/nis_util.c
	* nis/nis_verifygroup.c, nis/nis_xdr.c, nis/yp_xdr.c
	* nis/ypclnt.c, nis/ypupdate_xdr.c, sunrpc/auth_des.c
	* sunrpc/auth_none.c, sunrpc/auth_unix.c, sunrpc/authdes_prot.c
	* sunrpc/authuxprot.c, sunrpc/clnt_gen.c, sunrpc/clnt_perr.c
	* sunrpc/clnt_raw.c, sunrpc/clnt_simp.c, sunrpc/clnt_tcp.c
	* sunrpc/clnt_udp.c, sunrpc/clnt_unix.c, sunrpc/des_crypt.c
	* sunrpc/des_soft.c, sunrpc/get_myaddr.c, sunrpc/key_call.c
	* sunrpc/key_prot.c, sunrpc/netname.c, sunrpc/pm_getmaps.c
	* sunrpc/pm_getport.c, sunrpc/pmap_clnt.c, sunrpc/pmap_prot.c
	* sunrpc/pmap_prot2.c, sunrpc/pmap_rmt.c, sunrpc/publickey.c
	* sunrpc/rpc_cmsg.c, sunrpc/rpc_dtable.c, sunrpc/rpc_prot.c
	* sunrpc/rpc_thread.c, sunrpc/rtime.c, sunrpc/svc.c
	* sunrpc/svc_auth.c, sunrpc/svc_raw.c, sunrpc/svc_run.c
	* sunrpc/svc_tcp.c, sunrpc/svc_udp.c, sunrpc/svc_unix.c
	* sunrpc/svcauth_des.c, sunrpc/xdr.c, sunrpc/xdr_array.c
	* sunrpc/xdr_float.c, sunrpc/xdr_intXX_t.c, sunrpc/xdr_mem.c
	* sunrpc/xdr_rec.c, sunrpc/xdr_ref.c, sunrpc/xdr_sizeof.c
	* sunrpc/xdr_stdio.c: Include shlib-compat.h.

	* sunrpc/des_crypt.c, sunrpc/des_soft.c: No need to include
	abi-versions.h as well as shlib-compat.h.
	* sunrpc/get_myaddr.c: Remove obsolete comment.
	* sunrpc/pmap_rmt.c: Remove obsolete comment and #undef.
	* sunrpc/rpc_thread.c: Include libc-lock.h only once.
	* resolv/res_libc.c: Include shlib-compat.h only once.
</content>
</entry>
<entry>
<title>sunrpc: Rewrite with explicit TLS access using __thread</title>
<updated>2015-10-17T10:07:04Z</updated>
<author>
<name>Florian Weimer</name>
<email>fweimer@redhat.com</email>
</author>
<published>2015-10-17T10:07:04Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/glibc/commit/?id=4e1665024a48da9c865e991aff03a5ad03c771aa'/>
<id>urn:sha1:4e1665024a48da9c865e991aff03a5ad03c771aa</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Move bits/libc-lock.h and bits/libc-lockP.h out of bits/ (bug 14912).</title>
<updated>2015-09-08T21:11:03Z</updated>
<author>
<name>Joseph Myers</name>
<email>joseph@codesourcery.com</email>
</author>
<published>2015-09-08T21:11:03Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/glibc/commit/?id=ec999b8e5ede67f42759657beb8c5fef87c8cc63'/>
<id>urn:sha1:ec999b8e5ede67f42759657beb8c5fef87c8cc63</id>
<content type='text'>
It was noted in
&lt;https://sourceware.org/ml/libc-alpha/2012-09/msg00305.html&gt; that the
bits/*.h naming scheme should only be used for installed headers.
This patch renames bits/libc-lock.h to plain libc-lock.h and
bits/libc-lockP.h to plain libc-lockP.h to follow that convention.

Note that I don't know where libc-lockP.h comes from for Hurd (the
Hurd libc-lock.h includes libc-lockP.h, but the only libc-lockP.h in
the glibc source tree is for NPTL) - some unmerged patch? - but I
updated the #include in the Hurd libc-lock.h anyway.

Tested for x86_64 (testsuite, and that installed stripped shared
libraries are unchanged by the patch).

	[BZ #14912]
	* bits/libc-lock.h: Move to ...
	* sysdeps/generic/libc-lock.h: ...here.
	(_BITS_LIBC_LOCK_H): Rename macro to _LIBC_LOCK_H.
	* sysdeps/mach/hurd/bits/libc-lock.h: Move to ...
	* sysdeps/mach/hurd/libc-lock.h: ...here.
	(_BITS_LIBC_LOCK_H): Rename macro to _LIBC_LOCK_H.
	[_LIBC]: Include &lt;libc-lockP.h&gt; instead of &lt;bits/libc-lockP.h&gt;.
	* sysdeps/mach/bits/libc-lock.h: Move to ...
	* sysdeps/mach/libc-lock.h: ...here.
	(_BITS_LIBC_LOCK_H): Rename macro to _LIBC_LOCK_H.
	* sysdeps/nptl/bits/libc-lock.h: Move to ...
	* sysdeps/nptl/libc-lock.h: ...here.
	(_BITS_LIBC_LOCK_H): Rename macro to _LIBC_LOCK_H.
	* sysdeps/nptl/bits/libc-lockP.h: Move to ...
	* sysdeps/nptl/libc-lockP.h: ...here.
	(_BITS_LIBC_LOCKP_H): Rename macro to _LIBC_LOCKP_H.
	* crypt/crypt_util.c: Include &lt;libc-lock.h&gt; instead of
	&lt;bits/libc-lock.h&gt;.
	* dirent/scandir-tail.c: Likewise.
	* dlfcn/dlerror.c: Likewise.
	* elf/dl-close.c: Likewise.
	* elf/dl-iteratephdr.c: Likewise.
	* elf/dl-lookup.c: Likewise.
	* elf/dl-open.c: Likewise.
	* elf/dl-support.c: Likewise.
	* elf/dl-writev.h: Likewise.
	* elf/rtld.c: Likewise.
	* grp/fgetgrent.c: Likewise.
	* gshadow/fgetsgent.c: Likewise.
	* gshadow/sgetsgent.c: Likewise.
	* iconv/gconv_conf.c: Likewise.
	* iconv/gconv_db.c: Likewise.
	* iconv/gconv_dl.c: Likewise.
	* iconv/gconv_int.h: Likewise.
	* iconv/gconv_trans.c: Likewise.
	* include/link.h: Likewise.
	* inet/getnameinfo.c: Likewise.
	* inet/getnetgrent.c: Likewise.
	* inet/getnetgrent_r.c: Likewise.
	* intl/bindtextdom.c: Likewise.
	* intl/dcigettext.c: Likewise.
	* intl/finddomain.c: Likewise.
	* intl/gettextP.h: Likewise.
	* intl/loadmsgcat.c: Likewise.
	* intl/localealias.c: Likewise.
	* intl/textdomain.c: Likewise.
	* libidn/idn-stub.c: Likewise.
	* libio/libioP.h: Likewise.
	* locale/duplocale.c: Likewise.
	* locale/freelocale.c: Likewise.
	* locale/newlocale.c: Likewise.
	* locale/setlocale.c: Likewise.
	* login/getutent_r.c: Likewise.
	* login/getutid_r.c: Likewise.
	* login/getutline_r.c: Likewise.
	* login/utmp-private.h: Likewise.
	* login/utmpname.c: Likewise.
	* malloc/mtrace.c: Likewise.
	* misc/efgcvt.c: Likewise.
	* misc/error.c: Likewise.
	* misc/fstab.c: Likewise.
	* misc/getpass.c: Likewise.
	* misc/mntent.c: Likewise.
	* misc/syslog.c: Likewise.
	* nis/nis_call.c: Likewise.
	* nis/nis_callback.c: Likewise.
	* nis/nss-default.c: Likewise.
	* nis/nss_compat/compat-grp.c: Likewise.
	* nis/nss_compat/compat-initgroups.c: Likewise.
	* nis/nss_compat/compat-pwd.c: Likewise.
	* nis/nss_compat/compat-spwd.c: Likewise.
	* nis/nss_nis/nis-alias.c: Likewise.
	* nis/nss_nis/nis-ethers.c: Likewise.
	* nis/nss_nis/nis-grp.c: Likewise.
	* nis/nss_nis/nis-hosts.c: Likewise.
	* nis/nss_nis/nis-network.c: Likewise.
	* nis/nss_nis/nis-proto.c: Likewise.
	* nis/nss_nis/nis-pwd.c: Likewise.
	* nis/nss_nis/nis-rpc.c: Likewise.
	* nis/nss_nis/nis-service.c: Likewise.
	* nis/nss_nis/nis-spwd.c: Likewise.
	* nis/nss_nisplus/nisplus-alias.c: Likewise.
	* nis/nss_nisplus/nisplus-ethers.c: Likewise.
	* nis/nss_nisplus/nisplus-grp.c: Likewise.
	* nis/nss_nisplus/nisplus-hosts.c: Likewise.
	* nis/nss_nisplus/nisplus-initgroups.c: Likewise.
	* nis/nss_nisplus/nisplus-network.c: Likewise.
	* nis/nss_nisplus/nisplus-proto.c: Likewise.
	* nis/nss_nisplus/nisplus-pwd.c: Likewise.
	* nis/nss_nisplus/nisplus-rpc.c: Likewise.
	* nis/nss_nisplus/nisplus-service.c: Likewise.
	* nis/nss_nisplus/nisplus-spwd.c: Likewise.
	* nis/ypclnt.c: Likewise.
	* nptl/libc_pthread_init.c: Likewise.
	* nss/getXXbyYY.c: Likewise.
	* nss/getXXent.c: Likewise.
	* nss/getXXent_r.c: Likewise.
	* nss/nss_db/db-XXX.c: Likewise.
	* nss/nss_db/db-netgrp.c: Likewise.
	* nss/nss_db/nss_db.h: Likewise.
	* nss/nss_files/files-XXX.c: Likewise.
	* nss/nss_files/files-alias.c: Likewise.
	* nss/nsswitch.c: Likewise.
	* posix/regex_internal.h: Likewise.
	* posix/wordexp.c: Likewise.
	* pwd/fgetpwent.c: Likewise.
	* resolv/res_hconf.c: Likewise.
	* resolv/res_libc.c: Likewise.
	* shadow/fgetspent.c: Likewise.
	* shadow/lckpwdf.c: Likewise.
	* shadow/sgetspent.c: Likewise.
	* socket/opensock.c: Likewise.
	* stdio-common/reg-modifier.c: Likewise.
	* stdio-common/reg-printf.c: Likewise.
	* stdio-common/reg-type.c: Likewise.
	* stdio-common/vfprintf.c: Likewise.
	* stdio-common/vfscanf.c: Likewise.
	* stdlib/abort.c: Likewise.
	* stdlib/cxa_atexit.c: Likewise.
	* stdlib/fmtmsg.c: Likewise.
	* stdlib/random.c: Likewise.
	* stdlib/setenv.c: Likewise.
	* string/strsignal.c: Likewise.
	* sunrpc/auth_none.c: Likewise.
	* sunrpc/bindrsvprt.c: Likewise.
	* sunrpc/create_xid.c: Likewise.
	* sunrpc/key_call.c: Likewise.
	* sunrpc/rpc_thread.c: Likewise.
	* sysdeps/arm/backtrace.c: Likewise.
	* sysdeps/generic/ldsodefs.h: Likewise.
	* sysdeps/generic/stdio-lock.h: Likewise.
	* sysdeps/generic/unwind-dw2-fde.c: Likewise.
	* sysdeps/i386/backtrace.c: Likewise.
	* sysdeps/ieee754/ldbl-opt/nldbl-compat.c: Likewise.
	* sysdeps/m68k/backtrace.c: Likewise.
	* sysdeps/mach/hurd/cthreads.c: Likewise.
	* sysdeps/mach/hurd/dirstream.h: Likewise.
	* sysdeps/mach/hurd/malloc-machine.h: Likewise.
	* sysdeps/nptl/malloc-machine.h: Likewise.
	* sysdeps/nptl/stdio-lock.h: Likewise.
	* sysdeps/posix/dirstream.h: Likewise.
	* sysdeps/posix/getaddrinfo.c: Likewise.
	* sysdeps/posix/system.c: Likewise.
	* sysdeps/pthread/aio_suspend.c: Likewise.
	* sysdeps/s390/s390-32/backtrace.c: Likewise.
	* sysdeps/s390/s390-64/backtrace.c: Likewise.
	* sysdeps/unix/sysv/linux/check_pf.c: Likewise.
	* sysdeps/unix/sysv/linux/if_index.c: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-32/getutent_r.c: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-32/getutid_r.c: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-32/getutline_r.c: Likewise.
	* sysdeps/unix/sysv/linux/shm-directory.c: Likewise.
	* sysdeps/unix/sysv/linux/system.c: Likewise.
	* sysdeps/x86_64/backtrace.c: Likewise.
	* time/alt_digit.c: Likewise.
	* time/era.c: Likewise.
	* time/tzset.c: Likewise.
	* wcsmbs/wcsmbsload.c: Likewise.
	* nptl/tst-initializers1.c (do_test): Refer to &lt;libc-lock.h&gt;
	instead of &lt;bits/libc-lock.h&gt; in comment.
</content>
</entry>
<entry>
<title>Rename bits/libc-tsd.h to libc-tsd.h (bug 14912).</title>
<updated>2015-09-03T20:33:46Z</updated>
<author>
<name>Joseph Myers</name>
<email>joseph@codesourcery.com</email>
</author>
<published>2015-09-03T20:33:46Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/glibc/commit/?id=02d55fe04e380c1856993f3d8036b9e23736722d'/>
<id>urn:sha1:02d55fe04e380c1856993f3d8036b9e23736722d</id>
<content type='text'>
It was noted in
&lt;https://sourceware.org/ml/libc-alpha/2012-09/msg00305.html&gt; that the
bits/*.h naming scheme should only be used for installed headers.
This patch renames bits/libc-tsd.h to plain libc-tsd.h to follow that
convention.

Tested for x86_64 (testing, and that installed stripped shared
libraries are unchanged by the patch).

	[BZ #14912]
	* bits/libc-tsd.h: Move to ...
	* sysdeps/generic/libc-tsd.h: ...here.
	(_GENERIC_BITS_LIBC_TSD_H): Rename macro to _GENERIC_LIBC_TSD_H.
	* sysdeps/mach/hurd/bits/libc-tsd.h: Move to ...
	* sysdeps/mach/hurd/libc-tsd.h: ...here.
	(_BITS_LIBC_TSD_H): Rename macro to _LIBC_TSD_H.
	* include/ctype.h: Include &lt;libc-tsd.h&gt; instead of
	&lt;bits/libc-tsd.h&gt;.
	* include/rpc/rpc.h: Likewise.
	* locale/localeinfo.h: Likewise.
	* sunrpc/rpc_thread.c: Likewise.
	* sysdeps/mach/hurd/malloc-machine.h: Likewise.
	* sysdeps/nptl/malloc-machine.h: Likewise.
</content>
</entry>
<entry>
<title>Fix typos.</title>
<updated>2013-08-30T16:08:59Z</updated>
<author>
<name>Ondřej Bílka</name>
<email>neleai@seznam.cz</email>
</author>
<published>2013-08-30T12:32:07Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/glibc/commit/?id=382466e04e347d3b3fa221897efb8f4cdc239105'/>
<id>urn:sha1:382466e04e347d3b3fa221897efb8f4cdc239105</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Make sunrpc code usable again</title>
<updated>2012-05-10T18:19:53Z</updated>
<author>
<name>Andreas Jaeger</name>
<email>aj@suse.de</email>
</author>
<published>2012-05-10T18:16:53Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/glibc/commit/?id=021db4be6f1f4189f66feee066a495d49e92b93e'/>
<id>urn:sha1:021db4be6f1f4189f66feee066a495d49e92b93e</id>
<content type='text'>
  New configure option --enable-obsolete-rpc makes the deprecated RPC
  headers and functions available at compile time as they were before
  version 2.14.  This option will be removed at some time in the future
  after the TI-RPC library becomes fully sufficient for the needs of
  existing applications.
</content>
</entry>
</feed>
