glibc/sysdeps
Siddhesh Poyarekar 67e58f3941 Add framework for tunables
The tunables framework allows us to uniformly manage and expose global
variables inside glibc as switches to users.  tunables/README has
instructions for glibc developers to add new tunables.

Tunables support can be enabled by passing the --enable-tunables
configure flag to the configure script.  This patch only adds a
framework and does not pose any limitations on how tunable values are
read from the user.  It also adds environment variables used in malloc
behaviour tweaking to the tunables framework as a PoC of the
compatibility interface.

	* manual/install.texi: Add --enable-tunables option.
	* INSTALL: Regenerate.
	* README.tunables: New file.
	* Makeconfig (CPPFLAGS): Define TOP_NAMESPACE.
	(before-compile): Generate dl-tunable-list.h early.
	* config.h.in: Add HAVE_TUNABLES.
	* config.make.in: Add have-tunables.
	* configure.ac: Add --enable-tunables option.
	* configure: Regenerate.
	* csu/init-first.c (__libc_init_first): Move
	__libc_init_secure earlier...
	* csu/init-first.c (LIBC_START_MAIN):... to here.
	Include dl-tunables.h, libc-internal.h.
	(LIBC_START_MAIN) [!SHARED]: Initialize tunables for static
	binaries.
	* elf/Makefile (dl-routines): Add dl-tunables.
	* elf/Versions (ld): Add __tunable_set_val to GLIBC_PRIVATE
	namespace.
	* elf/dl-support (_dl_nondynamic_init): Unset MALLOC_CHECK_
	only when !HAVE_TUNABLES.
	* elf/rtld.c (process_envvars): Likewise.
	* elf/dl-sysdep.c [HAVE_TUNABLES]: Include dl-tunables.h
	(_dl_sysdep_start): Call __tunables_init.
	* elf/dl-tunable-types.h: New file.
	* elf/dl-tunables.c: New file.
	* elf/dl-tunables.h: New file.
	* elf/dl-tunables.list: New file.
	* malloc/tst-malloc-usable-static.c: New test case.
	* malloc/Makefile (tests-static): Add it.
	* malloc/arena.c [HAVE_TUNABLES]: Include dl-tunables.h.
	Define TUNABLE_NAMESPACE.
	(DL_TUNABLE_CALLBACK (set_mallopt_check)): New function.
	(DL_TUNABLE_CALLBACK_FNDECL): New macro.  Use it to define
	callback functions.
	(ptmalloc_init): Set tunable values.
	* scripts/gen-tunables.awk: New file.
	* sysdeps/mach/hurd/dl-sysdep.c: Include dl-tunables.h.
	(_dl_sysdep_start): Call __tunables_init.
2016-12-31 23:49:24 +05:30
..
aarch64 New condvar implementation that provides stronger ordering guarantees. 2016-12-31 14:56:47 +01:00
alpha Refactor long double information into bits/long-double.h. 2016-12-14 18:27:56 +00:00
arm New condvar implementation that provides stronger ordering guarantees. 2016-12-31 14:56:47 +01:00
generic Define __intmax_t, __uintmax_t in bits/types.h. 2016-12-30 13:41:40 +00:00
gnu Define wordsize.h macros everywhere 2016-11-04 09:37:44 -07:00
hppa Add missing hidden_def (__sigsetjmp). 2016-12-01 20:49:25 +00:00
i386 Fix typos in the spelling of "implementation" 2016-12-27 20:13:35 +00:00
ia64 New condvar implementation that provides stronger ordering guarantees. 2016-12-31 14:56:47 +01:00
ieee754 Add fromfp functions. 2016-12-31 00:40:59 +00:00
init_array Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
m68k New condvar implementation that provides stronger ordering guarantees. 2016-12-31 14:56:47 +01:00
mach Add framework for tunables 2016-12-31 23:49:24 +05:30
microblaze New condvar implementation that provides stronger ordering guarantees. 2016-12-31 14:56:47 +01:00
mips New condvar implementation that provides stronger ordering guarantees. 2016-12-31 14:56:47 +01:00
nacl Add fromfp functions. 2016-12-31 00:40:59 +00:00
nios2 New condvar implementation that provides stronger ordering guarantees. 2016-12-31 14:56:47 +01:00
nptl New condvar implementation that provides stronger ordering guarantees. 2016-12-31 14:56:47 +01:00
posix resolv: Deprecate the "inet6" option and RES_USE_INET6 [BZ #19582] 2016-12-31 18:55:14 +01:00
powerpc powerpc: Fix powerpc32/power7 memchr for large input sizes 2016-12-28 11:44:31 -02:00
pthread Installed-header hygiene (BZ#20366): time.h types. 2016-09-23 08:43:56 -04:00
s390 New condvar implementation that provides stronger ordering guarantees. 2016-12-31 14:56:47 +01:00
sh New condvar implementation that provides stronger ordering guarantees. 2016-12-31 14:56:47 +01:00
sparc Fix typos in the spelling of "implementation" 2016-12-27 20:13:35 +00:00
tile New condvar implementation that provides stronger ordering guarantees. 2016-12-31 14:56:47 +01:00
unix New condvar implementation that provides stronger ordering guarantees. 2016-12-31 14:56:47 +01:00
wordsize-32 Define wordsize.h macros everywhere 2016-11-04 09:37:44 -07:00
wordsize-64 Define wordsize.h macros everywhere 2016-11-04 09:37:44 -07:00
x86 New condvar implementation that provides stronger ordering guarantees. 2016-12-31 14:56:47 +01:00
x86_64 Fix x86_64 memchr for large input sizes 2016-12-27 10:50:41 -02:00