about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog2
-rw-r--r--FAQ26
-rw-r--r--FAQ.in12
-rw-r--r--INTERFACE1508
-rw-r--r--NEWS360
-rw-r--r--math/tgmath.h176
6 files changed, 2011 insertions, 73 deletions
diff --git a/ChangeLog b/ChangeLog
index e15f9544e0..7021012ee4 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,7 @@
 1998-10-19  Ulrich Drepper  <drepper@cygnus.com>
 
+	* math/tgmath.h: Make nested function calls work.
+
 	* include/ldsodefs.h: Fix typo.
 
 	* posix/Makefile (tests): Add tst-preadwrite.
diff --git a/FAQ b/FAQ
index 1709786828..7dd95678b2 100644
--- a/FAQ
+++ b/FAQ
@@ -89,6 +89,7 @@ please let me know.
 	which is not acceptable for me.  What can I do?
 2.22.	I just upgraded my Linux system to glibc and now I get
 	errors whenever I try to link any program.
+2.23.	When I use nscd the machine freezes.
 
 3. Source and binary incompatibilities, and what to do about them
 
@@ -223,16 +224,16 @@ to them.
 
 1.5.	Which compiler should I use for powerpc?
 
-{GK} You want to use egcs 1.0.1 or later (together with the right versions
+{GK} You want to use egcs 1.1 or later (together with the right versions
 of all the other tools, of course).
 
-In fact, egcs 1.0.1 has a serious bug that prevents a clean make, relating
-to switch statement folding.  It also causes the resulting shared libraries
-to use more memory than they should.  There is a patch at:
+In fact, egcs 1.1 has a bug that causes linuxthreads to be
+miscompiled, resulting in segmentation faults when using condition
+variables.  There is a temporary patch at:
 
-<http://discus.anu.edu.au/~geoffk/egcs-1.0.1-geoffk.diff>
+<http://discus.anu.edu.au/~geoffk/egcs-3.diff>
 
-Later versions of egcs may fix these problems.
+Later versions of egcs may fix this problem.
 
 
 1.6.	Do I need some more things to compile GNU C Library?
@@ -889,6 +890,19 @@ an installation of glibc that is configured with --prefix=/usr should help
 detect these situations.  If the script reports problems, something is
 really screwed up.
 
+
+2.23.	When I use nscd the machine freezes.
+
+{UD} It is well known that you cannot use nscd with Linux 2.0.*.  There
+is functionality missing in the kernel and work-arounds are not suitable.
+Beside this some parts of the kernel are too buggy when it comes to using
+threads.
+
+So you have the possibilities to run Linux 2.0.* or update to a higher
+version and start using nscd.
+
+Note that I have at this point no information about any other platform.
+
 
 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
 
diff --git a/FAQ.in b/FAQ.in
index 197d5a6fba..bdab8de6e5 100644
--- a/FAQ.in
+++ b/FAQ.in
@@ -731,6 +731,18 @@ an installation of glibc that is configured with --prefix=/usr should help
 detect these situations.  If the script reports problems, something is
 really screwed up.
 
+??	When I use nscd the machine freezes.
+
+{UD} It is well known that you cannot use nscd with Linux 2.0.*.  There
+is functionality missing in the kernel and work-arounds are not suitable.
+Beside this some parts of the kernel are too buggy when it comes to using
+threads.
+
+So you have the possibilities to run Linux 2.0.* or update to a higher
+version and start using nscd.
+
+Note that I have at this point no information about any other platform.
+
 ? Source and binary incompatibilities, and what to do about them
 
 ??	I expect GNU libc to be 100% source code compatible with
diff --git a/INTERFACE b/INTERFACE
new file mode 100644
index 0000000000..0cce007568
--- /dev/null
+++ b/INTERFACE
@@ -0,0 +1,1508 @@
+2.0.7-19981020			2.0.98-19981020
+===============================================================================
+
+a64l				a64l
+abort				abort
+abs				abs
+accept				accept
+access				access
+acct				acct
+acos				acos
+acosf				acosf
+acosh				acosh
+acoshf				acoshf
+acoshl				acoshl
+acosl				acosl
+addmntent			addmntent
+			      >	addseverity			NEW: fmtmsg
+adjtime				adjtime
+adjtimex			adjtimex
+advance				advance
+alarm				alarm
+alphasort			alphasort
+			      >	alphasort64			NEW: LFS
+			      >	argp_err_exit_status		NEW: argp
+			      >	argp_error			NEW: argp
+			      >	argp_failure			NEW: argp
+			      >	argp_help			NEW: argp
+			      >	argp_parse			NEW: argp
+			      >	argp_program_bug_address	NEW: argp
+			      >	argp_program_version		NEW: argp
+			      >	argp_program_version_hook	NEW: argp
+			      >	argp_state_help			NEW: argp
+			      >	argp_usage			NEW: argp
+argz_add			argz_add
+argz_add_sep			argz_add_sep
+argz_append			argz_append
+argz_count			argz_count
+argz_create			argz_create
+argz_create_sep			argz_create_sep
+argz_delete			argz_delete
+argz_extract			argz_extract
+argz_insert			argz_insert
+argz_next			argz_next
+argz_replace			argz_replace
+argz_stringify			argz_stringify
+asctime				asctime
+asctime_r			asctime_r
+asin				asin
+asinf				asinf
+asinh				asinh
+asinhf				asinhf
+asinhl				asinhl
+asinl				asinl
+asprintf			asprintf
+atan				atan
+atan2				atan2
+atan2f				atan2f
+atan2l				atan2l
+atanf				atanf
+atanh				atanh
+atanhf				atanhf
+atanhl				atanhl
+atanl				atanl
+atexit				atexit
+atof				atof
+atoi				atoi
+atol				atol
+atoll				atoll
+			      >	authdes_create			NEW: NIS+
+			      >	authdes_getucred		NEW: NIS+
+			      >	authdes_pk_create		NEW: NIS+
+authnone_create			authnone_create
+authunix_create			authunix_create
+authunix_create_default		authunix_create_default
+			      >	backtrace			NEW: GNU ext.
+			      >	backtrace_symbols		NEW: GNU ext.
+			      >	backtrace_symbols_fd		NEW: GNU ext.
+basename			basename
+bcmp				bcmp
+bcopy				bcopy
+bdflush				bdflush
+bind				bind
+bindresvport			bindresvport
+bindtextdomain			bindtextdomain
+brk				brk
+bsd_signal			bsd_signal
+bsearch				bsearch
+btowc				btowc
+bzero				bzero
+cabs				cabs
+cabsf				cabsf
+cabsl				cabsl
+			      >	cacos				NEW: ISO C 9x
+			      >	cacosf				NEW: ISO C 9x
+			      >	cacosh				NEW: ISO C 9x
+			      >	cacoshf				NEW: ISO C 9x
+			      >	cacoshl				NEW: ISO C 9x
+			      >	cacosl				NEW: ISO C 9x
+calloc				calloc
+callrpc				callrpc
+canonicalize_file_name		canonicalize_file_name
+			      >	capget				NEW: kernel
+			      >	capset				NEW: kernel
+			      >	carg				NEW: ISO C 9x
+			      >	cargf				NEW: ISO C 9x
+			      >	cargl				NEW: ISO C 9x
+			      >	casin				NEW: ISO C 9x
+			      >	casinf				NEW: ISO C 9x
+			      >	casinh				NEW: ISO C 9x
+			      >	casinhf				NEW: ISO C 9x
+			      >	casinhl				NEW: ISO C 9x
+			      >	casinl				NEW: ISO C 9x
+			      >	catan				NEW: ISO C 9x
+			      >	catanf				NEW: ISO C 9x
+			      >	catanh				NEW: ISO C 9x
+			      >	catanhf				NEW: ISO C 9x
+			      >	catanhl				NEW: ISO C 9x
+			      >	catanl				NEW: ISO C 9x
+catclose			catclose
+catgets				catgets
+catopen				catopen
+			      >	cbc_crypt			NEW: NIS+
+cbrt				cbrt
+cbrtf				cbrtf
+cbrtl				cbrtl
+			      >	ccos				NEW: ISO C 9x
+			      >	ccosf				NEW: ISO C 9x
+			      >	ccosh				NEW: ISO C 9x
+			      >	ccoshf				NEW: ISO C 9x
+			      >	ccoshl				NEW: ISO C 9x
+			      >	ccosl				NEW: ISO C 9x
+ceil				ceil
+ceilf				ceilf
+ceill				ceill
+			      >	cexp				NEW: ISO C 9x
+			      >	cexpf				NEW: ISO C 9x
+			      >	cexpl				NEW: ISO C 9x
+cfgetispeed			cfgetispeed
+cfgetospeed			cfgetospeed
+cfmakeraw			cfmakeraw
+cfree				cfree
+cfsetispeed			cfsetispeed
+cfsetospeed			cfsetospeed
+cfsetspeed			cfsetspeed
+chdir				chdir
+chflags				chflags
+chmod				chmod
+chown				chown
+chroot				chroot
+			      >	cimag				NEW: ISO C 9x
+			      >	cimagf				NEW: ISO C 9x
+			      >	cimagl				NEW: ISO C 9x
+clearenv			clearenv
+clearerr			clearerr
+clearerr_locked		      <					REMOVED
+clearerr_unlocked		clearerr_unlocked
+clnt_broadcast			clnt_broadcast
+clnt_create			clnt_create
+clnt_pcreateerror		clnt_pcreateerror
+clnt_perrno			clnt_perrno
+clnt_perror			clnt_perror
+clnt_spcreateerror		clnt_spcreateerror
+clnt_sperrno			clnt_sperrno
+clnt_sperror			clnt_sperror
+clntraw_create			clntraw_create
+clnttcp_create			clnttcp_create
+clntudp_bufcreate		clntudp_bufcreate
+clntudp_create			clntudp_create
+			      >	clntunix_create			NEW: sunrpc ext
+clock				clock
+			      >	clog				NEW: ISO C 9x
+			      >	clog10				NEW: ISO C 9x
+			      >	clog10f				NEW: ISO C 9x
+			      >	clog10l				NEW: ISO C 9x
+			      >	clogf				NEW: ISO C 9x
+			      >	clogl				NEW: ISO C 9x
+clone				clone
+close				close
+closedir			closedir
+closelog			closelog
+confstr				confstr
+			      >	conj				NEW: ISO C 9x
+			      >	conjf				NEW: ISO C 9x
+			      >	conjl				NEW: ISO C 9x
+connect				connect
+copysign			copysign
+copysignf			copysignf
+copysignl			copysignl
+cos				cos
+cosf				cosf
+cosh				cosh
+coshf				coshf
+coshl				coshl
+cosl				cosl
+			      >	cpow				NEW: ISO C 9x
+			      >	cpowf				NEW: ISO C 9x
+			      >	cpowl				NEW: ISO C 9x
+			      >	cproj				NEW: ISO C 9x
+			      >	cprojf				NEW: ISO C 9x
+			      >	cprojl				NEW: ISO C 9x
+			      >	creal				NEW: ISO C 9x
+			      >	crealf				NEW: ISO C 9x
+			      >	creall				NEW: ISO C 9x
+creat				creat
+			      >	creat64				NEW: LFS
+create_module			create_module
+			      >	csin				NEW: ISO C 9x
+			      >	csinf				NEW: ISO C 9x
+			      >	csinh				NEW: ISO C 9x
+			      >	csinhf				NEW: ISO C 9x
+			      >	csinhl				NEW: ISO C 9x
+			      >	csinl				NEW: ISO C 9x
+			      >	csqrt				NEW: ISO C 9x
+			      >	csqrtf				NEW: ISO C 9x
+			      >	csqrtl				NEW: ISO C 9x
+			      >	ctan				NEW: ISO C 9x
+			      >	ctanf				NEW: ISO C 9x
+			      >	ctanh				NEW: ISO C 9x
+			      >	ctanhf				NEW: ISO C 9x
+			      >	ctanhl				NEW: ISO C 9x
+			      >	ctanl				NEW: ISO C 9x
+ctermid				ctermid
+ctime				ctime
+ctime_r				ctime_r
+cuserid				cuserid
+daemon				daemon
+daylight			daylight
+dcgettext			dcgettext
+delete_module			delete_module
+			      >	des_setparity			NEW: NIS+
+dgettext			dgettext
+difftime			difftime
+dirfd				dirfd
+dirname				dirname
+div				div
+dprintf				dprintf
+drand48				drand48
+drand48_r			drand48_r
+drem				drem
+dremf				dremf
+dreml				dreml
+dup				dup
+dup2				dup2
+dysize				dysize
+			      >	ecb_crypt			NEW: NIS+
+ecvt				ecvt
+ecvt_r				ecvt_r
+endaliasent			endaliasent
+endfsent			endfsent
+endgrent			endgrent
+endhostent			endhostent
+endmntent			endmntent
+endnetent			endnetent
+endnetgrent			endnetgrent
+endprotoent			endprotoent
+endpwent			endpwent
+endrpcent			endrpcent
+endservent			endservent
+endspent			endspent
+endttyent			endttyent
+endusershell			endusershell
+endutent			endutent
+			      >	endutxent			NEW: utmpx
+environ				environ
+envz_add			envz_add
+envz_entry			envz_entry
+envz_get			envz_get
+envz_merge			envz_merge
+envz_remove			envz_remove
+envz_strip			envz_strip
+erand48				erand48
+erand48_r			erand48_r
+erf				erf
+erfc				erfc
+erfcf				erfcf
+erfcl				erfcl
+erff				erff
+erfl				erfl
+err				err
+errno				errno
+error				error
+error_at_line			error_at_line
+error_message_count		error_message_count
+error_one_per_line		error_one_per_line
+error_print_progname		error_print_progname
+errx				errx
+ether_aton			ether_aton
+ether_aton_r			ether_aton_r
+ether_hostton			ether_hostton
+ether_line			ether_line
+ether_ntoa			ether_ntoa
+ether_ntoa_r			ether_ntoa_r
+ether_ntohost			ether_ntohost
+euidaccess			euidaccess
+execl				execl
+execle				execle
+execlp				execlp
+execv				execv
+execve				execve
+execvp				execvp
+exit				exit
+exp				exp
+			      >	exp10				NEW: ISO C 9x
+			      >	exp10f				NEW: ISO C 9x
+			      >	exp10l				NEW: ISO C 9x
+			      >	exp2				NEW: ISO C 9x
+			      >	exp2f				NEW: ISO C 9x
+			      >	exp2l				NEW: ISO C 9x
+expf				expf
+expl				expl
+expm1				expm1
+expm1f				expm1f
+expm1l				expm1l
+fabs				fabs
+fabsf				fabsf
+fabsl				fabsl
+			      >	fattach				NEW: STREAMS
+fchdir				fchdir
+fchflags			fchflags
+fchmod				fchmod
+fchown				fchown
+fclose				fclose
+fcloseall			fcloseall
+fcntl				fcntl
+fcvt				fcvt
+fcvt_r				fcvt_r
+fdatasync			fdatasync
+			      >	fdetach				NEW: STREAMS
+			      >	fdim				NEW: ISO C 9x
+			      >	fdimf				NEW: ISO C 9x
+			      >	fdiml				NEW: ISO C 9x
+fdopen				fdopen
+			      >	feclearexcept			NEW: ISO C 9x
+			      >	fegetenv			NEW: ISO C 9x
+			      >	fegetexceptflag			NEW: ISO C 9x
+			      >	fegetround			NEW: ISO C 9x
+			      >	feholdexcept			NEW: ISO C 9x
+feof				feof
+feof_locked		      <					REMOVED
+feof_unlocked			feof_unlocked
+			      >	feraiseexcept			NEW: ISO C 9x
+ferror				ferror
+ferror_locked		      <					REMOVED
+ferror_unlocked			ferror_unlocked
+			      >	fesetenv			NEW: ISO C 9x
+			      >	fesetexceptflag			NEW: ISO C 9x
+			      >	fesetround			NEW: ISO C 9x
+			      >	fetestexcept			NEW: ISO C 9x
+			      >	feupdateenv			NEW: ISO C 9x
+fexecve				fexecve
+fflush				fflush
+fflush_locked		      <					REMOVED
+fflush_unlocked			fflush_unlocked
+ffs				ffs
+			      >	ffsl				NEW: GNU ext.
+			      >	ffsll				NEW: GNU ext.
+fgetc				fgetc
+fgetgrent			fgetgrent
+fgetgrent_r			fgetgrent_r
+fgetpos				fgetpos
+			      >	fgetpos64			NEW: LFS
+fgetpwent			fgetpwent
+fgetpwent_r			fgetpwent_r
+fgets				fgets
+			      >	fgets_unlocked			NEW: GNU ext.
+fgetspent			fgetspent
+fgetspent_r			fgetspent_r
+fileno				fileno
+fileno_locked		      <					REMOVED
+fileno_unlocked			fileno_unlocked
+finite				finite
+finitef				finitef
+finitel				finitel
+flock				flock
+flockfile			flockfile
+floor				floor
+floorf				floorf
+floorl				floorl
+			      >	fma				NEW: ISO C 9x
+			      >	fmaf				NEW: ISO C 9x
+			      >	fmal				NEW: ISO C 9x
+			      >	fmax				NEW: ISO C 9x
+			      >	fmaxf				NEW: ISO C 9x
+			      >	fmaxl				NEW: ISO C 9x
+			      >	fmin				NEW: ISO C 9x
+			      >	fminf				NEW: ISO C 9x
+			      >	fminl				NEW: ISO C 9x
+fmod				fmod
+fmodf				fmodf
+fmodl				fmodl
+			      >	fmtmsg				NEW: fmtmsg
+fnmatch				fnmatch
+fopen				fopen
+			      >	fopen64				NEW: LFS
+fopencookie			fopencookie
+fork				fork
+fpathconf			fpathconf
+fprintf				fprintf
+fputc				fputc
+fputc_locked		      <					REMOVED
+fputc_unlocked			fputc_unlocked
+fputs				fputs
+			      >	fputs_unlocked			NEW: GNU ext.
+fread				fread
+			      >	fread_unlocked			NEW: GNU ext.
+free				free
+freeaddrinfo			freeaddrinfo
+freopen				freopen
+			      >	freopen64			NEW: LFS
+frexp				frexp
+frexpf				frexpf
+frexpl				frexpl
+fscanf				fscanf
+fseek				fseek
+			      >	fseeko				NEW: Unix98
+			      >	fseeko64
+fsetpos				fsetpos
+			      >	fsetpos64			NEW: LFS
+fstatfs				fstatfs
+			      >	fstatfs64			NEW: LFS
+			      >	fstatvfs			NEW: Unix98
+			      >	fstatvfs64			NEW: LFS
+fsync				fsync
+ftell				ftell
+			      >	ftello				NEW: Unix98
+			      >	ftello64			NEW: LFS
+ftime				ftime
+ftok				ftok
+ftruncate			ftruncate
+			      >	ftruncate64			NEW: LFS
+ftrylockfile			ftrylockfile
+fts_children			fts_children
+fts_close			fts_close
+fts_open			fts_open
+fts_read			fts_read
+fts_set				fts_set
+ftw				ftw
+			      >	ftw64				NEW: LFS
+funlockfile			funlockfile
+fwrite				fwrite
+			      >	fwrite_unlocked			NEW: GNU ext.
+			      >	gai_strerror			NEW: IPv6
+gamma				gamma
+gamma_r			      <					REMOVED
+gammaf				gammaf
+gammaf_r		      <					REMOVED
+gammal				gammal
+gammal_r		      <					REMOVED
+gcvt				gcvt
+get_avphys_pages		get_avphys_pages
+get_current_dir_name		get_current_dir_name
+get_kernel_syms			get_kernel_syms
+get_myaddress			get_myaddress
+get_nprocs			get_nprocs
+get_nprocs_conf			get_nprocs_conf
+get_phys_pages			get_phys_pages
+getaddrinfo			getaddrinfo
+getaliasbyname			getaliasbyname
+getaliasbyname_r		getaliasbyname_r
+getaliasent			getaliasent
+getaliasent_r			getaliasent_r
+getc				getc
+getc_locked		      <					REMOVE
+getc_unlocked			getc_unlocked
+getchar				getchar
+getchar_locked		      <					REMOVED
+getchar_unlocked		getchar_unlocked
+			      >	getcontext
+getcwd				getcwd
+			      >	getdate				NEW: Unix98
+			      >	getdate_err			NEW: Unix98
+			      >	getdate_r			NEW: GNU ext.
+getdelim			getdelim
+getdirentries			getdirentries
+getdomainname			getdomainname
+getdtablesize			getdtablesize
+getegid				getegid
+getenv				getenv
+geteuid				geteuid
+getfsent			getfsent
+getfsfile			getfsfile
+getfsspec			getfsspec
+getgid				getgid
+getgrent			getgrent
+getgrent_r			getgrent_r
+getgrgid			getgrgid
+getgrgid_r			getgrgid_r
+getgrnam			getgrnam
+getgrnam_r			getgrnam_r
+getgroups			getgroups
+gethostbyaddr			gethostbyaddr
+gethostbyaddr_r			gethostbyaddr_r
+gethostbyname			gethostbyname
+gethostbyname2			gethostbyname2
+gethostbyname2_r		gethostbyname2_r
+gethostbyname_r			gethostbyname_r
+gethostent			gethostent
+gethostent_r			gethostent_r
+gethostid			gethostid
+gethostname			gethostname
+getitimer			getitimer
+getline				getline
+getlogin			getlogin
+getlogin_r			getlogin_r
+getmntent			getmntent
+getmntent_r			getmntent_r
+			      >	getmsg				NEW: STREAMS
+			      >	getnameinfo			NEW: IPv6
+getnetbyaddr			getnetbyaddr
+getnetbyaddr_r			getnetbyaddr_r
+getnetbyname			getnetbyname
+getnetbyname_r			getnetbyname_r
+getnetent			getnetent
+getnetent_r			getnetent_r
+getnetgrent			getnetgrent
+getnetgrent_r			getnetgrent_r
+			      >	getnetname			NEW: IPv6
+getopt				getopt
+getopt_long			getopt_long
+getopt_long_only		getopt_long_only
+getpagesize			getpagesize
+getpass				getpass
+getpeername			getpeername
+getpgid				getpgid
+getpgrp				getpgrp
+getpid				getpid
+			      >	getpmsg				NEW: STREAMS
+getppid				getppid
+getpriority			getpriority
+getprotobyname			getprotobyname
+getprotobyname_r		getprotobyname_r
+getprotobynumber		getprotobynumber
+getprotobynumber_r		getprotobynumber_r
+getprotoent			getprotoent
+getprotoent_r			getprotoent_r
+			      >	getpt				NEW: Unix98 PTY
+getpublickey			getpublickey
+getpw				getpw
+getpwent			getpwent
+getpwent_r			getpwent_r
+getpwnam			getpwnam
+getpwnam_r			getpwnam_r
+getpwuid			getpwuid
+getpwuid_r			getpwuid_r
+getresgid			getresgid
+getresuid			getresuid
+getrlimit			getrlimit
+			      >	getrlimit64			NEW: LFS
+getrpcbyname			getrpcbyname
+getrpcbyname_r			getrpcbyname_r
+getrpcbynumber			getrpcbynumber
+getrpcbynumber_r		getrpcbynumber_r
+getrpcent			getrpcent
+getrpcent_r			getrpcent_r
+getrpcport			getrpcport
+getrusage			getrusage
+gets				gets
+getsecretkey			getsecretkey
+getservbyname			getservbyname
+getservbyname_r			getservbyname_r
+getservbyport			getservbyport
+getservbyport_r			getservbyport_r
+getservent			getservent
+getservent_r			getservent_r
+getsid				getsid
+getsockname			getsockname
+getsockopt			getsockopt
+getspent			getspent
+getspent_r			getspent_r
+getspnam			getspnam
+getspnam_r			getspnam_r
+getsubopt			getsubopt
+gettext				gettext
+gettimeofday			gettimeofday
+getttyent			getttyent
+getttynam			getttynam
+getuid				getuid
+getusershell			getusershell
+getutent			getutent
+getutent_r			getutent_r
+getutid				getutid
+getutid_r			getutid_r
+getutline			getutline
+getutline_r			getutline_r
+			      >	getutxent			NEW: utmpx
+			      >	getutxid			NEW: utmpx
+			      >	getutxline			NEW: utmpx
+getw				getw
+getwd				getwd
+glob				glob
+			      >	glob64				NEW: GNU ext.
+glob_pattern_p			glob_pattern_p
+globfree			globfree
+			      >	globfree64			NEW: GNU ext.
+gmtime				gmtime
+gmtime_r			gmtime_r
+			      >	gnu_get_libc_release		NEW: GNU ext.
+			      >	gnu_get_libc_version		NEW: GNU ext.
+			      >	grantpt				NEW: Unix98 PTY
+group_member			group_member
+gsignal				gsignal
+gtty				gtty
+h_errlist			h_errlist
+h_errno				h_errno
+h_nerr				h_nerr
+hasmntopt			hasmntopt
+hcreate				hcreate
+hcreate_r			hcreate_r
+hdestroy			hdestroy
+hdestroy_r			hdestroy_r
+herror				herror
+			      >	host2netname			NEW: IPv6
+hsearch				hsearch
+hsearch_r			hsearch_r
+hstrerror			hstrerror
+htonl				htonl
+htons				htons
+hypot				hypot
+hypotf				hypotf
+hypotl				hypotl
+			      >	iconv				NEW: iconv
+			      >	iconv_close			NEW: iconv
+			      >	iconv_open			NEW: iconv
+			      >	if_freenameindex		NEW: IPv6
+			      >	if_indextoname			NEW: IPv6
+			      >	if_nameindex			NEW: IPv6
+			      >	if_nametoindex			NEW: IPv6
+ilogb				ilogb
+ilogbf				ilogbf
+ilogbl				ilogbl
+			      >	in6addr_any			NEW: IPv6
+			      >	in6addr_loopback		NEW: IPv6
+index				index
+			      >	inet6_isipv4mapped		NEW: IPv6
+inet_addr			inet_addr
+inet_aton			inet_aton
+inet_lnaof			inet_lnaof
+inet_makeaddr			inet_makeaddr
+inet_netof			inet_netof
+inet_network			inet_network
+inet_nsap_addr			inet_nsap_addr
+inet_nsap_ntoa			inet_nsap_ntoa
+inet_ntoa			inet_ntoa
+inet_ntop			inet_ntop
+inet_pton			inet_pton
+init_module			init_module
+initgroups			initgroups
+initstate			initstate
+initstate_r			initstate_r
+innetgr				innetgr
+insque				insque
+ioctl				ioctl
+ioperm				ioperm
+iopl				iopl
+iruserok			iruserok
+isalnum				isalnum
+isalpha				isalpha
+isascii				isascii
+			      >	isastream			NEW: STREAMS
+isatty				isatty
+isblank				isblank
+iscntrl				iscntrl
+isdigit				isdigit
+isfdtype			isfdtype
+isgraph				isgraph
+isinf				isinf
+isinff				isinff
+isinfl				isinfl
+islower				islower
+isnan				isnan
+isnanf				isnanf
+isnanl				isnanl
+isprint				isprint
+ispunct				ispunct
+isspace				isspace
+isupper				isupper
+iswalnum			iswalnum
+iswalpha			iswalpha
+			      >	iswblank			NEW: GNU ext.
+iswcntrl			iswcntrl
+iswctype			iswctype
+iswdigit			iswdigit
+iswgraph			iswgraph
+iswlower			iswlower
+iswprint			iswprint
+iswpunct			iswpunct
+iswspace			iswspace
+iswupper			iswupper
+iswxdigit			iswxdigit
+isxdigit			isxdigit
+j0				j0
+j0f				j0f
+j0l				j0l
+j1				j1
+j1f				j1f
+j1l				j1l
+jn				jn
+jnf				jnf
+jnl				jnl
+jrand48				jrand48
+jrand48_r			jrand48_r
+			      >	key_decryptsession		NEW: NIS+
+			      >	key_decryptsession_pk		NEW: NIS+
+			      >	key_encryptsession		NEW: NIS+
+			      >	key_encryptsession_pk		NEW: NIS+
+			      >	key_gendes			NEW: NIS+
+			      >	key_get_conv			NEW: NIS+
+			      >	key_secretkey_is_set		NEW: NIS+
+			      >	key_setnet			NEW: NIS+
+			      >	key_setsecret			NEW: NIS+
+kill				kill
+killpg				killpg
+klogctl				klogctl
+l64a				l64a
+labs				labs
+lchown				lchown
+lckpwdf				lckpwdf
+lcong48				lcong48
+lcong48_r			lcong48_r
+ldexp				ldexp
+ldexpf				ldexpf
+ldexpl				ldexpl
+ldiv				ldiv
+lfind				lfind
+lgamma				lgamma
+lgamma_r			lgamma_r
+lgammaf				lgammaf
+lgammaf_r			lgammaf_r
+lgammal				lgammal
+lgammal_r			lgammal_r
+link				link
+listen				listen
+llabs				llabs
+lldiv				lldiv
+			      >	llrint				NEW: ISO C 9x
+			      >	llrintf				NEW: ISO C 9x
+			      >	llrintl				NEW: ISO C 9x
+			      >	llround				NEW: ISO C 9x
+			      >	llroundf			NEW: ISO C 9x
+			      >	llroundl			NEW: ISO C 9x
+llseek				llseek
+loc1				loc1
+loc2				loc2
+localeconv			localeconv
+localtime			localtime
+localtime_r			localtime_r
+lockf				lockf
+locs				locs
+log				log
+log10				log10
+log10f				log10f
+log10l				log10l
+log1p				log1p
+log1pf				log1pf
+log1pl				log1pl
+			      >	log2				NEW: ISO C 9x
+			      >	log2f				NEW: ISO C 9x
+			      >	log2l				NEW: ISO C 9x
+logb				logb
+logbf				logbf
+logbl				logbl
+logf				logf
+logl				logl
+longjmp				longjmp
+lrand48				lrand48
+lrand48_r			lrand48_r
+			      >	lrint				NEW: ISO C 9x
+			      >	lrintf				NEW: ISO C 9x
+			      >	lrintl				NEW: ISO C 9x
+			      >	lround				NEW: ISO C 9x
+			      >	lroundf				NEW: ISO C 9x
+			      >	lroundl				NEW: ISO C 9x
+lsearch				lsearch
+lseek				lseek
+			      >	lseek64				NEW: LFS
+madvise				madvise
+			      >	makecontext			NEW: Unix98
+mallinfo			mallinfo
+malloc				malloc
+malloc_get_state		malloc_get_state
+malloc_set_state		malloc_set_state
+malloc_stats			malloc_stats
+malloc_trim			malloc_trim
+malloc_usable_size		malloc_usable_size
+mallopt				mallopt
+mallwatch			mallwatch
+matherr				matherr
+mblen				mblen
+mbrlen				mbrlen
+mbrtowc				mbrtowc
+mbsinit				mbsinit
+mbsnrtowcs			mbsnrtowcs
+mbsrtowcs			mbsrtowcs
+mbstowcs			mbstowcs
+mbtowc				mbtowc
+mcheck				mcheck
+mcount				mcount
+memalign			memalign
+memccpy				memccpy
+memchr				memchr
+memcmp				memcmp
+memcpy				memcpy
+memfrob				memfrob
+memmem				memmem
+memmove				memmove
+			      >	mempcpy				NEW: GNU ext.
+memset				memset
+mkdir				mkdir
+mkfifo				mkfifo
+mkstemp				mkstemp
+mktemp				mktemp
+mktime				mktime
+mlock				mlock
+mlockall			mlockall
+mmap				mmap
+			      >	mmap64				NEW: LFS
+modf				modf
+modff				modff
+modfl				modfl
+moncontrol		      <					REMOVED
+			      >	modify_ldt			NEW: kernel
+monstartup			monstartup
+mount				mount
+mprobe				mprobe
+mprotect			mprotect
+mrand48				mrand48
+mrand48_r			mrand48_r
+mremap				mremap
+msgctl				msgctl
+msgget				msgget
+msgrcv				msgrcv
+msgsnd				msgsnd
+msync				msync
+mtrace				mtrace
+munlock				munlock
+munlockall			munlockall
+munmap				munmap
+muntrace			muntrace
+			      >	nan				NEW: ISO C 9x
+			      >	nanf				NEW: ISO C 9x
+			      >	nanl				NEW: ISO C 9x
+nanosleep			nanosleep
+			      >	nearbyint			NEW: ISO C 9x
+			      >	nearbyintf			NEW: ISO C 9x
+			      >	nearbyintl			NEW: ISO C 9x
+			      >	netname2host			NEW: IPv6
+			      >	netname2user			NEW: IPv6
+nextafter			nextafter
+nextafterf			nextafterf
+nextafterl			nextafterl
+			      >	nextafterx			NEW: ISO C 9x
+			      >	nextafterxf			NEW: ISO C 9x
+nfsservctl			nfsservctl
+			      >	nftw				NEW: Unix98
+			      >	nftw64				NEW: LFS
+nice				nice
+nl_langinfo			nl_langinfo
+nrand48				nrand48
+nrand48_r			nrand48_r
+ntohl				ntohl
+ntohs				ntohs
+obstack_alloc_failed_handler	obstack_alloc_failed_handler
+obstack_exit_failure		obstack_exit_failure
+obstack_free			obstack_free
+obstack_printf			obstack_printf
+obstack_vprintf			obstack_vprintf
+on_exit				on_exit
+open				open
+			      >	open64				NEW: LFS
+open_memstream			open_memstream
+opendir				opendir
+openlog				openlog
+optarg				optarg
+opterr				opterr
+optind				optind
+optopt				optopt
+parse_printf_format		parse_printf_format
+			      >	passwd2des			NEW: NIS+
+pathconf			pathconf
+pause				pause
+pclose				pclose
+perror				perror
+personality			personality
+pipe				pipe
+pmap_getmaps			pmap_getmaps
+pmap_getport			pmap_getport
+pmap_rmtcall			pmap_rmtcall
+pmap_set			pmap_set
+pmap_unset			pmap_unset
+poll				poll
+popen				popen
+pow				pow
+			      >	pow10				NEW: GNU ext.
+			      >	pow10f				NEW: GNU ext.
+			      >	pow10l				NEW: GNU ext.
+powf				powf
+powl				powl
+prctl				prctl
+			      >	pread				NEW: Unix98
+			      >	pread64				NEW: LFS
+printf				printf
+			      >	printf_size			NEW: GNU ext.
+			      >	printf_size_info		NEW: GNU ext.
+profil				profil
+profil_counter		      <					REMOVED
+program_invocation_name		program_invocation_name
+program_invocation_short_name	program_invocation_short_name
+pselect				pselect
+psignal				psignal
+pthread_attr_destroy		pthread_attr_destroy
+pthread_attr_getdetachstate	pthread_attr_getdetachstate
+pthread_attr_getinheritsched	pthread_attr_getinheritsched
+pthread_attr_getschedparam	pthread_attr_getschedparam
+pthread_attr_getschedpolicy	pthread_attr_getschedpolicy
+pthread_attr_getscope		pthread_attr_getscope
+pthread_attr_init		pthread_attr_init
+pthread_attr_setdetachstate	pthread_attr_setdetachstate
+pthread_attr_setinheritsched	pthread_attr_setinheritsched
+pthread_attr_setschedparam	pthread_attr_setschedparam
+pthread_attr_setschedpolicy	pthread_attr_setschedpolicy
+pthread_attr_setscope		pthread_attr_setscope
+pthread_cond_broadcast		pthread_cond_broadcast
+pthread_cond_destroy		pthread_cond_destroy
+pthread_cond_init		pthread_cond_init
+pthread_cond_signal		pthread_cond_signal
+pthread_cond_wait		pthread_cond_wait
+pthread_condattr_destroy	pthread_condattr_destroy
+pthread_condattr_init		pthread_condattr_init
+pthread_equal			pthread_equal
+pthread_exit			pthread_exit
+pthread_getschedparam		pthread_getschedparam
+pthread_mutex_destroy		pthread_mutex_destroy
+pthread_mutex_init		pthread_mutex_init
+pthread_mutex_lock		pthread_mutex_lock
+pthread_mutex_unlock		pthread_mutex_unlock
+pthread_mutexattr_getkind_np  <					REPLACED
+pthread_mutexattr_setkind_np  <					REPLACED
+pthread_self			pthread_self
+pthread_setcancelstate		pthread_setcancelstate
+pthread_setcanceltype		pthread_setcanceltype
+pthread_setschedparam		pthread_setschedparam
+ptrace				ptrace
+			      >	ptsname				NEW: Unix98 PTY
+			      >	ptsname_r			NEW: Unix98 PTY
+putc				putc
+putc_locked		      <					REMOVED
+putc_unlocked			putc_unlocked
+putchar				putchar
+putchar_locked		      <					REMOVED
+putchar_unlocked		putchar_unlocked
+putenv				putenv
+			      >	putgrent			NEW: GNU ext.
+			      >	putmsg				NEW: STREAMS
+			      >	putpmsg				NEW: STREAMS
+putpwent			putpwent
+puts				puts
+putspent			putspent
+pututline			pututline
+			      >	pututxline			NEW: utmpx
+putw				putw
+pvalloc				pvalloc
+			      >	pwrite				NEW: Unix98
+			      >	pwrite64			NEW: LFS
+qecvt				qecvt
+qecvt_r				qecvt_r
+qfcvt				qfcvt
+qfcvt_r				qfcvt_r
+qgcvt				qgcvt
+qsort				qsort
+query_module			query_module
+quotactl			quotactl
+raise				raise
+rand				rand
+rand_r				rand_r
+random				random
+random_r			random_r
+rcmd				rcmd
+re_comp				re_comp
+re_compile_fastmap		re_compile_fastmap
+re_compile_pattern		re_compile_pattern
+re_exec				re_exec
+re_match			re_match
+re_match_2			re_match_2
+re_max_failures			re_max_failures
+re_search			re_search
+re_search_2			re_search_2
+re_set_registers		re_set_registers
+re_set_syntax			re_set_syntax
+re_syntax_options		re_syntax_options
+read				read
+readdir				readdir
+			      >	readdir64			NEW: LFS
+			      >	readdir64_r			NEW: LFS
+readdir_r			readdir_r
+readlink			readlink
+readv				readv
+realloc				realloc
+realpath			realpath
+reboot				reboot
+recv				recv
+recvfrom			recvfrom
+recvmsg				recvmsg
+regcomp				regcomp
+regerror			regerror
+regexec				regexec
+regfree				regfree
+register_printf_function	register_printf_function
+registerrpc			registerrpc
+remainder			remainder
+remainderf			remainderf
+remainderl			remainderl
+remove				remove
+remque				remque
+			      >	remquo				NEW: ISO C 9x
+			      >	remquof				NEW: ISO C 9x
+			      >	remquol				NEW: ISO C 9x
+rename				rename
+res_init			res_init
+revoke				revoke
+rewind				rewind
+rewinddir			rewinddir
+rexec				rexec
+rexecoptions			rexecoptions
+rindex				rindex
+rint				rint
+rintf				rintf
+rintl				rintl
+rmdir				rmdir
+			      >	round				NEW: ISO C 9x
+			      >	roundf				NEW: ISO C 9x
+			      >	roundl				NEW: ISO C 9x
+rpc_createerr			rpc_createerr
+rpmatch				rpmatch
+rresvport			rresvport
+			      >	rtime				NEW: GNU ext.
+ruserok				ruserok
+ruserpass			ruserpass
+sbrk				sbrk
+scalb				scalb
+scalbf				scalbf
+scalbl				scalbl
+			      >	scalbln				NEW: ISO C 9x
+			      >	scalblnf			NEW: ISO C 9x
+			      >	scalblnl			NEW: ISO C 9x
+scalbn				scalbn
+scalbnf				scalbnf
+scalbnl				scalbnl
+scandir				scandir
+			      >	scandir64			NEW: LFS
+scanf				scanf
+sched_get_priority_max		sched_get_priority_max
+sched_get_priority_min		sched_get_priority_min
+sched_getparam			sched_getparam
+sched_getscheduler		sched_getscheduler
+sched_rr_get_interval		sched_rr_get_interval
+sched_setparam			sched_setparam
+sched_setscheduler		sched_setscheduler
+sched_yield			sched_yield
+seed48				seed48
+seed48_r			seed48_r
+seekdir				seekdir
+select				select
+semctl				semctl
+semget				semget
+semop				semop
+send				send
+			      >	sendfile			NEW: kernel
+sendmsg				sendmsg
+sendto				sendto
+setaliasent			setaliasent
+setbuf				setbuf
+setbuffer			setbuffer
+			      >	setcontext			NEW: Unix98
+setdomainname			setdomainname
+setegid				setegid
+setenv				setenv
+seteuid				seteuid
+setfsent			setfsent
+setfsgid			setfsgid
+setfsuid			setfsuid
+setgid				setgid
+setgrent			setgrent
+setgroups			setgroups
+sethostent			sethostent
+sethostid			sethostid
+sethostname			sethostname
+setitimer			setitimer
+setjmp				setjmp
+setlinebuf			setlinebuf
+setlocale			setlocale
+setlogin			setlogin
+setlogmask			setlogmask
+setmntent			setmntent
+setnetent			setnetent
+setnetgrent			setnetgrent
+setpgid				setpgid
+setpgrp				setpgrp
+setpriority			setpriority
+setprotoent			setprotoent
+setpwent			setpwent
+setregid			setregid
+setresgid			setresgid
+setresuid			setresuid
+setreuid			setreuid
+setrlimit			setrlimit
+			      >	setrlimit64			NEW: LFS
+setrpcent			setrpcent
+setservent			setservent
+setsid				setsid
+setsockopt			setsockopt
+setspent			setspent
+setstate			setstate
+setstate_r			setstate_r
+settimeofday			settimeofday
+setttyent			setttyent
+setuid				setuid
+setusershell			setusershell
+setutent			setutent
+			      >	setutxent			NEW: utmpx
+setvbuf				setvbuf
+sgetspent			sgetspent
+sgetspent_r			sgetspent_r
+shmat				shmat
+shmctl				shmctl
+shmdt				shmdt
+shmget				shmget
+shutdown			shutdown
+sigaction			sigaction
+sigaddset			sigaddset
+sigaltstack			sigaltstack
+sigandset			sigandset
+sigblock			sigblock
+sigdelset			sigdelset
+sigemptyset			sigemptyset
+sigfillset			sigfillset
+siggetmask			siggetmask
+			      >	sighold				NEW: Unix98
+			      >	sigignore			NEW: Unix98
+siginterrupt			siginterrupt
+sigisemptyset			sigisemptyset
+sigismember			sigismember
+siglongjmp			siglongjmp
+signal				signal
+signgam				signgam
+significand			significand
+significandf			significandf
+significandl			significandl
+sigorset			sigorset
+sigpause			sigpause
+sigpending			sigpending
+sigprocmask			sigprocmask
+			      >	sigqueue			NEW: POSIX.1b
+			      >	sigrelse			NEW: Unix98
+sigreturn			sigreturn
+			      >	sigset				NEW: POSIX.1b
+sigsetmask			sigsetmask
+sigstack			sigstack
+sigsuspend			sigsuspend
+			      >	sigtimedwait			NEW: POSIX.1b
+sigvec				sigvec
+sigwait				sigwait
+			      >	sigwaitinfo			NEW: POSIX.1b
+sin				sin
+			      >	sincos				NEW: GNU ext.
+			      >	sincosf				NEW: GNU ext.
+			      >	sincosl				NEW: GNU ext.
+sinf				sinf
+sinh				sinh
+sinhf				sinhf
+sinhl				sinhl
+sinl				sinl
+sleep				sleep
+snprintf			snprintf
+socket				socket
+socketpair			socketpair
+sprintf				sprintf
+sqrt				sqrt
+sqrtf				sqrtf
+sqrtl				sqrtl
+srand				srand
+srand48				srand48
+srand48_r			srand48_r
+srandom				srandom
+srandom_r			srandom_r
+sscanf				sscanf
+ssignal				ssignal
+sstk				sstk
+statfs				statfs
+			      >	statfs64			NEW: LFS
+			      >	statvfs				NEW: Unix98
+			      >	statvfs64			NEW: LFS
+stderr				stderr
+stdin				stdin
+stdout				stdout
+step				step
+stime				stime
+stpcpy				stpcpy
+stpncpy				stpncpy
+strcasecmp			strcasecmp
+			      >	strcasestr			NEW: GNU ext.
+strcat				strcat
+strchr				strchr
+strcmp				strcmp
+strcoll				strcoll
+strcpy				strcpy
+strcspn				strcspn
+strdup				strdup
+strerror			strerror
+strerror_r			strerror_r
+strfmon				strfmon
+strfry				strfry
+strftime			strftime
+			      >	strfxtime			NEW: ISO C 9x
+strlen				strlen
+strncasecmp			strncasecmp
+strncat				strncat
+strncmp				strncmp
+strncpy				strncpy
+strndup				strndup
+strnlen				strnlen
+strpbrk				strpbrk
+strptime			strptime
+strrchr				strrchr
+strsep				strsep
+strsignal			strsignal
+strspn				strspn
+strstr				strstr
+strtod				strtod
+strtof				strtof
+			      >	strtoimax			NEW: ISO C 9x
+strtok				strtok
+strtok_r			strtok_r
+strtol				strtol
+strtold				strtold
+strtoll				strtoll
+strtoq				strtoq
+strtoul				strtoul
+strtoull			strtoull
+			      >	strtoumax			NEW: ISO C 9x
+strtouq				strtouq
+			      >	strverscmp			NEW: GNU ext.
+strxfrm				strxfrm
+stty				stty
+svc_exit			svc_exit
+svc_fdset			svc_fdset
+svc_getreq			svc_getreq
+svc_getreqset			svc_getreqset
+svc_register			svc_register
+svc_run				svc_run
+svc_sendreply			svc_sendreply
+svc_unregister			svc_unregister
+			      >	svcauthdes_stats		NEW: NIS+
+svcerr_auth			svcerr_auth
+svcerr_decode			svcerr_decode
+svcerr_noproc			svcerr_noproc
+svcerr_noprog			svcerr_noprog
+svcerr_progvers			svcerr_progvers
+svcerr_systemerr		svcerr_systemerr
+svcerr_weakauth			svcerr_weakauth
+svcfd_create			svcfd_create
+svcraw_create			svcraw_create
+svctcp_create			svctcp_create
+svcudp_bufcreate		svcudp_bufcreate
+svcudp_create			svcudp_create
+svcudp_enablecache		svcudp_enablecache
+			      >	svcunix_create			NEW: sunrpc etx
+			      >	svcunixfd_create		NEW: sunrpc ext
+swab				swab
+			      >	swapcontext			NEW: Unix98
+swapoff				swapoff
+swapon				swapon
+symlink				symlink
+sync				sync
+sys_errlist			sys_errlist
+sys_nerr			sys_nerr
+sys_sigabbrev			sys_sigabbrev
+sys_siglist			sys_siglist
+syscall				syscall
+sysconf				sysconf
+sysctl				sysctl
+sysinfo				sysinfo
+syslog				syslog
+system				system
+sysv_signal			sysv_signal
+tan				tan
+tanf				tanf
+tanh				tanh
+tanhf				tanhf
+tanhl				tanhl
+tanl				tanl
+tcdrain				tcdrain
+tcflow				tcflow
+tcflush				tcflush
+tcgetattr			tcgetattr
+tcgetpgrp			tcgetpgrp
+			      >	tcgetsid			NEW: Unix98 PTY
+tcsendbreak			tcsendbreak
+tcsetattr			tcsetattr
+tcsetpgrp			tcsetpgrp
+tdelete				tdelete
+			      >	tdestroy			NEW: GNU ext.
+telldir				telldir
+tempnam				tempnam
+textdomain			textdomain
+tfind				tfind
+			      >	tgamma				NEW: ISO C 9x
+			      >	tgammaf				NEW: ISO C 9x
+			      >	tgammal				NEW: ISO C 9x
+time				time
+timegm				timegm
+timelocal			timelocal
+times				times
+timezone			timezone
+tmpfile				tmpfile
+			      >	tmpfile64			NEW: LFS
+tmpnam				tmpnam
+tmpnam_r			tmpnam_r
+toascii				toascii
+tolower				tolower
+toupper				toupper
+towctrans			towctrans
+towlower			towlower
+towupper			towupper
+tr_break			tr_break
+			      >	trunc				NEW: ISO C 9x
+truncate			truncate
+			      >	truncate64			NEW: LFS
+			      >	truncf				NEW: ISO C 9x
+			      >	truncl				NEW: ISO C 9x
+tsearch				tsearch
+ttyname				ttyname
+ttyname_r			ttyname_r
+ttyslot				ttyslot
+twalk				twalk
+tzname				tzname
+tzset				tzset
+ualarm				ualarm
+ulckpwdf			ulckpwdf
+ulimit				ulimit
+umask				umask
+umount				umount
+			      >	umount2				NEW: kernel
+uname				uname
+ungetc				ungetc
+unlink				unlink
+			      >	unlockpt			NEW: Unix98 PTY
+unsetenv			unsetenv
+updwtmp				updwtmp
+			      >	updwtmpx			NEW: utmpx
+uselib				uselib
+			      >	user2netname			NEW: IPv6
+usleep				usleep
+ustat				ustat
+utime				utime
+utimes				utimes
+utmpname			utmpname
+			      >	utmpxname			NEW: utmpx
+valloc				valloc
+vasprintf			vasprintf
+vdprintf			vdprintf
+verr				verr
+verrx				verrx
+			      >	versionsort			NEW: GNU ext.
+			      >	versionsort64			NEW: LFS
+vfork				vfork
+vfprintf			vfprintf
+vfscanf				vfscanf
+vhangup				vhangup
+vlimit				vlimit
+vm86				vm86
+vprintf				vprintf
+vscanf				vscanf
+vsnprintf			vsnprintf
+vsprintf			vsprintf
+vsscanf				vsscanf
+vsyslog				vsyslog
+vtimes				vtimes
+vwarn				vwarn
+vwarnx				vwarnx
+wait				wait
+wait3				wait3
+wait4				wait4
+			      >	waitid				NEW: Unix98
+waitpid				waitpid
+warn				warn
+warnx				warnx
+wcpcpy				wcpcpy
+wcpncpy				wcpncpy
+wcrtomb				wcrtomb
+			      >	wcscasecmp			NEW: GNU ext.
+wcscat				wcscat
+wcschr				wcschr
+wcscmp				wcscmp
+wcscoll				wcscoll
+wcscpy				wcscpy
+wcscspn				wcscspn
+wcsdup				wcsdup
+wcslen				wcslen
+			      >	wcsncasecmp			NEW: GNU ext.
+wcsncat				wcsncat
+wcsncmp				wcsncmp
+wcsncpy				wcsncpy
+			      >	wcsnlen				NEW: GNU ext.
+wcsnrtombs			wcsnrtombs
+wcspbrk				wcspbrk
+wcsrchr				wcsrchr
+wcsrtombs			wcsrtombs
+wcsspn				wcsspn
+wcsstr				wcsstr
+wcstod				wcstod
+wcstof				wcstof
+			      >	wcstoimax			NEW: ISO C 9x
+wcstok				wcstok
+wcstol				wcstol
+wcstold				wcstold
+			      >	wcstoll				NEW: ISO C 9x
+wcstombs			wcstombs
+wcstoq				wcstoq
+wcstoul				wcstoul
+			      >	wcstoull			NEW: ISO C 9x
+			      >	wcstoumax			NEW: ISO C 9x
+wcstouq				wcstouq
+			      >	wcswcs				NEW: Unix98
+wcswidth			wcswidth
+wcsxfrm				wcsxfrm
+wctob				wctob
+wctomb				wctomb
+wctrans				wctrans
+wctype				wctype
+wcwidth				wcwidth
+wmemchr				wmemchr
+wmemcmp				wmemcmp
+wmemcpy				wmemcpy
+wmemmove			wmemmove
+wmemset				wmemset
+			      >	wordexp				NEW: POSIX.2
+			      >	wordfree			NEW: POSIX.2
+write				write
+write_profiling		      <					REMOVED
+writev				writev
+			      >	xdecrypt			NEW: NIS+
+xdr_accepted_reply		xdr_accepted_reply
+xdr_array			xdr_array
+			      >	xdr_authdes_cred		NEW: NIS+
+			      >	xdr_authdes_verf		NEW: NIS+
+xdr_authunix_parms		xdr_authunix_parms
+xdr_bool			xdr_bool
+xdr_bytes			xdr_bytes
+xdr_callhdr			xdr_callhdr
+xdr_callmsg			xdr_callmsg
+xdr_char			xdr_char
+			      >	xdr_cryptkeyarg			NEW: NIS+
+			      >	xdr_cryptkeyarg2		NEW: NIS+
+			      >	xdr_cryptkeyres			NEW: NIS+
+xdr_des_block			xdr_des_block
+xdr_double			xdr_double
+xdr_enum			xdr_enum
+xdr_float			xdr_float
+xdr_free			xdr_free
+			      >	xdr_getcredres			NEW: NIS+
+xdr_int				xdr_int
+			      >	xdr_key_netstarg		NEW: NIS+
+			      >	xdr_key_netstres		NEW: NIS+
+			      >	xdr_keybuf			NEW: NIS+
+			      >	xdr_keystatus			NEW: NIS+
+xdr_long			xdr_long
+			      >	xdr_netnamestr			NEW: NIS+
+xdr_netobj			xdr_netobj
+xdr_opaque			xdr_opaque
+xdr_opaque_auth			xdr_opaque_auth
+xdr_pmap			xdr_pmap
+xdr_pmaplist			xdr_pmaplist
+xdr_pointer			xdr_pointer
+xdr_reference			xdr_reference
+xdr_rejected_reply		xdr_rejected_reply
+xdr_replymsg			xdr_replymsg
+xdr_rmtcall_args		xdr_rmtcall_args
+xdr_rmtcallres			xdr_rmtcallres
+xdr_short			xdr_short
+			      >	xdr_sizeof			NEW: NIS+
+xdr_string			xdr_string
+xdr_u_char			xdr_u_char
+xdr_u_int			xdr_u_int
+xdr_u_long			xdr_u_long
+xdr_u_short			xdr_u_short
+xdr_union			xdr_union
+			      >	xdr_unixcred			NEW: sunrpc ext
+xdr_vector			xdr_vector
+xdr_void			xdr_void
+xdr_wrapstring			xdr_wrapstring
+xdrmem_create			xdrmem_create
+xdrrec_create			xdrrec_create
+xdrrec_endofrecord		xdrrec_endofrecord
+xdrrec_eof			xdrrec_eof
+xdrrec_skiprecord		xdrrec_skiprecord
+xdrstdio_create			xdrstdio_create
+			      >	xencrypt			NEW: NIS+
+xprt_register			xprt_register
+xprt_unregister			xprt_unregister
+y0				y0
+y0f				y0f
+y0l				y0l
+y1				y1
+y1f				y1f
+y1l				y1l
+yn				yn
+ynf				ynf
+ynl				ynl
diff --git a/NEWS b/NEWS
index 86d94f3a89..8794dfc9b1 100644
--- a/NEWS
+++ b/NEWS
@@ -55,8 +55,30 @@ Version 2.1
 
 * An implementation of profiling shared libraries was added by Ulrich Drepper.
 
-* Thorsten Kukuk provided an implementation for a caching daemon for NSS
-  (nscd).
+* Thorsten Kukuk and Ulrich Drepper provided an implementation for a caching
+  daemon for NSS (nscd).
+
+  Missing a better place here are some numbers on improvements.  Under
+  Linux 2.1.125 un-tar-ing the kernel sources takes
+
+				user	system	wall
+
+    using local files		12.19s	 6.88s	22.91s
+
+    using NIS			13.92s	 8.91s	26.34s
+
+    using NIS & nscd		10.37s	 7.34s	25.30s
+
+    using NIS & old nscd [1]	13.83s	 8.32s	29.60s
+
+  When NIS+ is used instead of NIS the benefit from using nscd is much bigger.
+  Keep in mind that non-namelookup related operations dominate above times.
+  It was just a common complain that using NIS+ unpacking the kernel is
+  horribly slow.  When using nscd unpacking is now even faster than using
+  NIS.
+
+  [1] The old nscd implementation is not anymore available since it was
+  distributed with glibc up to version 2.0.98.
 
 * Tim Waugh provided an implementation of the POSIX.2 wordexp function family.
 
@@ -66,6 +88,340 @@ Version 2.1
   and $PLATFORM) in RPATHs and similar strings (Ulrich Drepper).
 
 * rcmd can now handle netgroups (Dick Streefland).
+
+* Interface changes relative to the latest 2.0.x release:
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+addseverity			NEW: fmtmsg
+alphasort64			NEW: LFS
+argp_err_exit_status		NEW: argp
+argp_error			NEW: argp
+argp_failure			NEW: argp
+argp_help			NEW: argp
+argp_parse			NEW: argp
+argp_program_bug_address	NEW: argp
+argp_program_version		NEW: argp
+argp_program_version_hook	NEW: argp
+argp_state_help			NEW: argp
+argp_usage			NEW: argp
+authdes_create			NEW: NIS+
+authdes_getucred		NEW: NIS+
+authdes_pk_create		NEW: NIS+
+backtrace			NEW: GNU ext.
+backtrace_symbols		NEW: GNU ext.
+backtrace_symbols_fd		NEW: GNU ext.
+cacos				NEW: ISO C 9x
+cacosf				NEW: ISO C 9x
+cacosh				NEW: ISO C 9x
+cacoshf				NEW: ISO C 9x
+cacoshl				NEW: ISO C 9x
+cacosl				NEW: ISO C 9x
+capget				NEW: kernel
+capset				NEW: kernel
+carg				NEW: ISO C 9x
+cargf				NEW: ISO C 9x
+cargl				NEW: ISO C 9x
+casin				NEW: ISO C 9x
+casinf				NEW: ISO C 9x
+casinh				NEW: ISO C 9x
+casinhf				NEW: ISO C 9x
+casinhl				NEW: ISO C 9x
+casinl				NEW: ISO C 9x
+catan				NEW: ISO C 9x
+catanf				NEW: ISO C 9x
+catanh				NEW: ISO C 9x
+catanhf				NEW: ISO C 9x
+catanhl				NEW: ISO C 9x
+catanl				NEW: ISO C 9x
+cbc_crypt			NEW: NIS+
+ccos				NEW: ISO C 9x
+ccosf				NEW: ISO C 9x
+ccosh				NEW: ISO C 9x
+ccoshf				NEW: ISO C 9x
+ccoshl				NEW: ISO C 9x
+ccosl				NEW: ISO C 9x
+cexp				NEW: ISO C 9x
+cexpf				NEW: ISO C 9x
+cexpl				NEW: ISO C 9x
+cimag				NEW: ISO C 9x
+cimagf				NEW: ISO C 9x
+cimagl				NEW: ISO C 9x
+clearerr_locked			REMOVED
+clntunix_create			NEW: sunrpc ext
+clog				NEW: ISO C 9x
+clog10				NEW: ISO C 9x
+clog10f				NEW: ISO C 9x
+clog10l				NEW: ISO C 9x
+clogf				NEW: ISO C 9x
+clogl				NEW: ISO C 9x
+conj				NEW: ISO C 9x
+conjf				NEW: ISO C 9x
+conjl				NEW: ISO C 9x
+cpow				NEW: ISO C 9x
+cpowf				NEW: ISO C 9x
+cpowl				NEW: ISO C 9x
+cproj				NEW: ISO C 9x
+cprojf				NEW: ISO C 9x
+cprojl				NEW: ISO C 9x
+creal				NEW: ISO C 9x
+crealf				NEW: ISO C 9x
+creall				NEW: ISO C 9x
+creat64				NEW: LFS
+csin				NEW: ISO C 9x
+csinf				NEW: ISO C 9x
+csinh				NEW: ISO C 9x
+csinhf				NEW: ISO C 9x
+csinhl				NEW: ISO C 9x
+csinl				NEW: ISO C 9x
+csqrt				NEW: ISO C 9x
+csqrtf				NEW: ISO C 9x
+csqrtl				NEW: ISO C 9x
+ctan				NEW: ISO C 9x
+ctanf				NEW: ISO C 9x
+ctanh				NEW: ISO C 9x
+ctanhf				NEW: ISO C 9x
+ctanhl				NEW: ISO C 9x
+ctanl				NEW: ISO C 9x
+des_setparity			NEW: NIS+
+ecb_crypt			NEW: NIS+
+endutxent			NEW: utmpx
+exp10				NEW: ISO C 9x
+exp10f				NEW: ISO C 9x
+exp10l				NEW: ISO C 9x
+exp2				NEW: ISO C 9x
+exp2f				NEW: ISO C 9x
+exp2l				NEW: ISO C 9x
+fattach				NEW: STREAMS
+fdetach				NEW: STREAMS
+fdim				NEW: ISO C 9x
+fdimf				NEW: ISO C 9x
+fdiml				NEW: ISO C 9x
+feclearexcept			NEW: ISO C 9x
+fegetenv			NEW: ISO C 9x
+fegetexceptflag			NEW: ISO C 9x
+fegetround			NEW: ISO C 9x
+feholdexcept			NEW: ISO C 9x
+feof_locked			REMOVED
+feraiseexcept			NEW: ISO C 9x
+ferror_locked			REMOVED
+fesetenv			NEW: ISO C 9x
+fesetexceptflag			NEW: ISO C 9x
+fesetround			NEW: ISO C 9x
+fetestexcept			NEW: ISO C 9x
+feupdateenv			NEW: ISO C 9x
+fflush_locked			REMOVED
+ffsl				NEW: GNU ext.
+ffsll				NEW: GNU ext.
+fgetpos64			NEW: LFS
+fgets_unlocked			NEW: GNU ext.
+fileno_locked			REMOVED
+fma				NEW: ISO C 9x
+fmaf				NEW: ISO C 9x
+fmal				NEW: ISO C 9x
+fmax				NEW: ISO C 9x
+fmaxf				NEW: ISO C 9x
+fmaxl				NEW: ISO C 9x
+fmin				NEW: ISO C 9x
+fminf				NEW: ISO C 9x
+fminl				NEW: ISO C 9x
+fmtmsg				NEW: fmtmsg
+fopen64				NEW: LFS
+fputc_locked			REMOVED
+fputs_unlocked			NEW: GNU ext.
+fread_unlocked			NEW: GNU ext.
+freopen64			NEW: LFS
+fseeko				NEW: Unix98
+fsetpos64			NEW: LFS
+fstatfs64			NEW: LFS
+fstatvfs			NEW: Unix98
+fstatvfs64			NEW: LFS
+ftello				NEW: Unix98
+ftello64			NEW: LFS
+ftruncate64			NEW: LFS
+ftw64				NEW: LFS
+fwrite_unlocked			NEW: GNU ext.
+gai_strerror			NEW: IPv6
+gamma_r				REMOVED
+gammaf_r			REMOVED
+gammal_r			REMOVED
+getchar_locked			REMOVED
+getdate				NEW: Unix98
+getdate_err			NEW: Unix98
+getdate_r			NEW: GNU ext.
+getmsg				NEW: STREAMS
+getnameinfo			NEW: IPv6
+getnetname			NEW: IPv6
+getpmsg				NEW: STREAMS
+getpt				NEW: Unix98 PTY
+getrlimit64			NEW: LFS
+getutxent			NEW: utmpx
+getutxid			NEW: utmpx
+getutxline			NEW: utmpx
+glob64				NEW: GNU ext.
+globfree64			NEW: GNU ext.
+gnu_get_libc_release		NEW: GNU ext.
+gnu_get_libc_version		NEW: GNU ext.
+grantpt				NEW: Unix98 PTY
+host2netname			NEW: IPv6
+iconv				NEW: iconv
+iconv_close			NEW: iconv
+iconv_open			NEW: iconv
+if_freenameindex		NEW: IPv6
+if_indextoname			NEW: IPv6
+if_nameindex			NEW: IPv6
+if_nametoindex			NEW: IPv6
+in6addr_any			NEW: IPv6
+in6addr_loopback		NEW: IPv6
+inet6_isipv4mapped		NEW: IPv6
+isastream			NEW: STREAMS
+iswblank			NEW: GNU ext.
+key_decryptsession		NEW: NIS+
+key_decryptsession_pk		NEW: NIS+
+key_encryptsession		NEW: NIS+
+key_encryptsession_pk		NEW: NIS+
+key_gendes			NEW: NIS+
+key_get_conv			NEW: NIS+
+key_secretkey_is_set		NEW: NIS+
+key_setnet			NEW: NIS+
+key_setsecret			NEW: NIS+
+llrint				NEW: ISO C 9x
+llrintf				NEW: ISO C 9x
+llrintl				NEW: ISO C 9x
+llround				NEW: ISO C 9x
+llroundf			NEW: ISO C 9x
+llroundl			NEW: ISO C 9x
+log2				NEW: ISO C 9x
+log2f				NEW: ISO C 9x
+log2l				NEW: ISO C 9x
+lrint				NEW: ISO C 9x
+lrintf				NEW: ISO C 9x
+lrintl				NEW: ISO C 9x
+lround				NEW: ISO C 9x
+lroundf				NEW: ISO C 9x
+lroundl				NEW: ISO C 9x
+lseek64				NEW: LFS
+makecontext			NEW: Unix98
+mempcpy				NEW: GNU ext.
+mmap64				NEW: LFS
+moncontrol			REMOVED
+modify_ldt			NEW: kernel
+nan				NEW: ISO C 9x
+nanf				NEW: ISO C 9x
+nanl				NEW: ISO C 9x
+nearbyint			NEW: ISO C 9x
+nearbyintf			NEW: ISO C 9x
+nearbyintl			NEW: ISO C 9x
+netname2host			NEW: IPv6
+netname2user			NEW: IPv6
+nextafterx			NEW: ISO C 9x
+nextafterxf			NEW: ISO C 9x
+nftw				NEW: Unix98
+nftw64				NEW: LFS
+open64				NEW: LFS
+passwd2des			NEW: NIS+
+pow10				NEW: GNU ext.
+pow10f				NEW: GNU ext.
+pow10l				NEW: GNU ext.
+pread				NEW: Unix98
+pread64				NEW: LFS
+printf_size			NEW: GNU ext.
+printf_size_info		NEW: GNU ext.
+profil_counter			REMOVED
+pthread_mutexattr_getkind_np	REPLACED
+pthread_mutexattr_setkind_np	REPLACED
+ptsname				NEW: Unix98 PTY
+ptsname_r			NEW: Unix98 PTY
+putc_locked			REMOVED
+putchar_locked			REMOVED
+putgrent			NEW: GNU ext.
+putmsg				NEW: STREAMS
+putpmsg				NEW: STREAMS
+pututxline			NEW: utmpx
+pwrite				NEW: Unix98
+pwrite64			NEW: LFS
+readdir64			NEW: LFS
+readdir64_r			NEW: LFS
+remquo				NEW: ISO C 9x
+remquof				NEW: ISO C 9x
+remquol				NEW: ISO C 9x
+round				NEW: ISO C 9x
+roundf				NEW: ISO C 9x
+roundl				NEW: ISO C 9x
+rtime				NEW: GNU ext.
+scalbln				NEW: ISO C 9x
+scalblnf			NEW: ISO C 9x
+scalblnl			NEW: ISO C 9x
+scandir64			NEW: LFS
+sendfile			NEW: kernel
+setcontext			NEW: Unix98
+setrlimit64			NEW: LFS
+setutxent			NEW: utmpx
+sighold				NEW: Unix98
+sigignore			NEW: Unix98
+sigqueue			NEW: POSIX.1b
+sigrelse			NEW: Unix98
+sigset				NEW: POSIX.1b
+sigtimedwait			NEW: POSIX.1b
+sigwaitinfo			NEW: POSIX.1b
+sincos				NEW: GNU ext.
+sincosf				NEW: GNU ext.
+sincosl				NEW: GNU ext.
+statfs64			NEW: LFS
+statvfs				NEW: Unix98
+statvfs64			NEW: LFS
+strcasestr			NEW: GNU ext.
+strfxtime			NEW: ISO C 9x
+strtoimax			NEW: ISO C 9x
+strtoumax			NEW: ISO C 9x
+strverscmp			NEW: GNU ext.
+svcauthdes_stats		NEW: NIS+
+svcunix_create			NEW: sunrpc etx
+svcunixfd_create		NEW: sunrpc ext
+swapcontext			NEW: Unix98
+tcgetsid			NEW: Unix98 PTY
+tdestroy			NEW: GNU ext.
+tgamma				NEW: ISO C 9x
+tgammaf				NEW: ISO C 9x
+tgammal				NEW: ISO C 9x
+tmpfile64			NEW: LFS
+trunc				NEW: ISO C 9x
+truncate64			NEW: LFS
+truncf				NEW: ISO C 9x
+truncl				NEW: ISO C 9x
+umount2				NEW: kernel
+unlockpt			NEW: Unix98 PTY
+updwtmpx			NEW: utmpx
+user2netname			NEW: IPv6
+utmpxname			NEW: utmpx
+versionsort			NEW: GNU ext.
+versionsort64			NEW: LFS
+waitid				NEW: Unix98
+wcscasecmp			NEW: GNU ext.
+wcsncasecmp			NEW: GNU ext.
+wcsnlen				NEW: GNU ext.
+wcstoimax			NEW: ISO C 9x
+wcstoll				NEW: ISO C 9x
+wcstoull			NEW: ISO C 9x
+wcstoumax			NEW: ISO C 9x
+wcswcs				NEW: Unix98
+wordexp				NEW: POSIX.2
+wordfree			NEW: POSIX.2
+write_profiling			REMOVED
+xdecrypt			NEW: NIS+
+xdr_authdes_cred		NEW: NIS+
+xdr_authdes_verf		NEW: NIS+
+xdr_cryptkeyarg			NEW: NIS+
+xdr_cryptkeyarg2		NEW: NIS+
+xdr_cryptkeyres			NEW: NIS+
+xdr_getcredres			NEW: NIS+
+xdr_key_netstarg		NEW: NIS+
+xdr_key_netstres		NEW: NIS+
+xdr_keybuf			NEW: NIS+
+xdr_keystatus			NEW: NIS+
+xdr_netnamestr			NEW: NIS+
+xdr_sizeof			NEW: NIS+
+xdr_unixcred			NEW: sunrpc ext
+xencrypt			NEW: NIS+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 Version 2.0.5
 
diff --git a/math/tgmath.h b/math/tgmath.h
index 76513f7ea8..d15a75d8d3 100644
--- a/math/tgmath.h
+++ b/math/tgmath.h
@@ -40,87 +40,133 @@
    only defined on real valued parameters and those which are defined
    for complex functions as well.  */
 # define __TGMATH_UNARY_REAL_ONLY(Val, Fct) \
-     (__extension__ (sizeof (Val) == sizeof (double)			      \
-		     ? Fct (Val)					      \
-		     : (sizeof (Val) == sizeof (long double)		      \
-			? Fct##l (Val)					      \
-			: Fct##f (Val))))
+     (__extension__ ({ __typeof__ (Val) __tgmres;			      \
+		       if (sizeof (Val) == sizeof (double))		      \
+			 __tgmres = Fct (Val);				      \
+		       else if (sizeof (Val) == sizeof (float))		      \
+			 __tgmres = Fct##f (Val);			      \
+		       else 						      \
+			 __tgmres = Fct##l (Val);			      \
+		       __tgmres; }))
 
 # define __TGMATH_BINARY_FIRST_REAL_ONLY(Val1, Val2, Fct) \
-     (__extension__ (sizeof (Val1) > sizeof (double)			      \
-		     ? Fct##l (Val1, Val2)				      \
-		     : (sizeof (Val1) == sizeof (double)		      \
-			? Fct (Val1, Val2)				      \
-			: Fct##f (Val1, Val2))))
+     (__extension__ ({ __typeof__ (Val1) __tgmres;			      \
+		       if (sizeof (Val1) == sizeof (double))		      \
+			 __tgmres = Fct (Val1, Val2);			      \
+		       else if (sizeof (Val1) == sizeof (float))	      \
+			 __tgmres = Fct##f (Val1, Val2);		      \
+		       else 						      \
+			 __tgmres = Fct##l (Val1, Val2);		      \
+		       __tgmres; }))
 
 # define __TGMATH_BINARY_REAL_ONLY(Val1, Val2, Fct) \
-     (__extension__ (sizeof (Val1) > sizeof (double)			      \
-		     || sizeof (Val2) > sizeof (double)			      \
-		     ? Fct##l (Val1, Val2)				      \
-		     : (sizeof (Val1) == sizeof (double)		      \
-			|| sizeof (Val2) == sizeof (double)		      \
-			? Fct (Val1, Val2)				      \
-			: Fct##f (Val1, Val2))))
+     (__extension__ ({ __typeof__ ((Val1) + (Val2)) __tgmres;		      \
+		       if (sizeof (Val1) > sizeof (double)		      \
+			   || sizeof (Val2) > sizeof (double))		      \
+			 __tgmres = Fct##l (Val1, Val2);		      \
+		       else if (sizeof (Val1) == sizeof (double)	      \
+				|| sizeof (Val2) == sizeof (double))	      \
+			 __tgmres = Fct (Val1, Val2);			      \
+		       else						      \
+			 __tgmres = Fct (Val1, Val2);			      \
+		       __tgmres; }))
 
 # define __TGMATH_TERNARY_FIRST_SECOND_REAL_ONLY(Val1, Val2, Val3, Fct) \
-     (__extension__ (sizeof (Val1) > sizeof (double)			      \
-		     || sizeof (Val2) > sizeof (double)			      \
-		     ? Fct##l (Val1, Val2, Val3)			      \
-		     : (sizeof (Val1) == sizeof (double)		      \
-			|| sizeof (Val2) == sizeof (double)		      \
-			? Fct (Val1, Val2, Val3)			      \
-			: Fct##f (Val1, Val2, Val3))))
+     (__extension__ ({ __typeof__ ((Val1) + (Val2)) __tgmres;		      \
+		       if (sizeof (Val1) > sizeof (double)		      \
+			   || sizeof (Val2) > sizeof (double))		      \
+			 __tgmres = Fct##l (Val1, Val2, Val3);		      \
+		       else if (sizeof (Val1) == sizeof (double)	      \
+				|| sizeof (Val2) == sizeof (double))	      \
+			 __tgmres = Fct (Val1, Val2, Val3);		      \
+		       else						      \
+			 __tgmres = Fct (Val1, Val2, Val3);		      \
+		       __tgmres; }))
 
 # define __TGMATH_TERNARY_REAL_ONLY(Val1, Val2, Val3, Fct) \
-     (__extension__ (sizeof (Val1) > sizeof (double)			      \
-		     || sizeof (Val2) > sizeof (double)			      \
-		     || sizeof (Val3) > sizeof (double)			      \
-		     ? Fct##l (Val1, Val2, Val3)			      \
-		     : (sizeof (Val1) == sizeof (double)		      \
-			|| sizeof (Val2) == sizeof (double)		      \
-			|| sizeof (Val3) == sizeof (double)		      \
-			? Fct (Val1, Val2, Val3)			      \
-			: Fct##f (Val1, Val2, Val3))))
+     (__extension__ ({ __typeof__ ((Val1) + (Val2) + (Val3)) __tgmres;	      \
+		       if (sizeof (Val1) > sizeof (double)		      \
+			   || sizeof (Val2) > sizeof (double)		      \
+			   || sizeof (Val3) > sizeof (double))		      \
+			 __tgmres = Fct##l (Val1, Val2, Val3);		      \
+		       else if (sizeof (Val1) == sizeof (double)	      \
+				|| sizeof (Val2) == sizeof (double)	      \
+				|| sizeof (Val3) == sizeof (double))	      \
+			 __tgmres = Fct (Val1, Val2, Val3);		      \
+		       else						      \
+			 __tgmres = Fct (Val1, Val2, Val3);		      \
+		       __tgmres; }))
 
+/* XXX This definition has to be changed as soon as the compiler understands
+   the imaginary keyword.  */
 # define __TGMATH_UNARY_REAL_IMAG(Val, Fct, Cfct) \
-     (__extension__ (sizeof (__real__ (Val)) > sizeof (double)		      \
-		     ? (sizeof (__real__ (Val)) == sizeof (Val)		      \
-			? Fct##l (Val)					      \
-			: Cfct##l (Val))				      \
-		     : (sizeof (__real__ (Val)) == sizeof (double)	      \
-			? (sizeof (__real__ (Val)) == sizeof (Val)	      \
-			   ? Fct (Val)					      \
-			   : Cfct (Val))				      \
-			: (sizeof (__real__ (Val)) == sizeof (Val)	      \
-			   ? Fct##f (Val)				      \
-			   : Cfct##f (Val)))))
+     (__extension__ ({ __typeof__ (Val) __tgmres;			      \
+		       if (sizeof (__real__ (Val)) > sizeof (double))	      \
+			 {						      \
+			   if (sizeof (__real__ (Val)) == sizeof (Val))	      \
+			     __tgmres = Fct##l (Val);			      \
+			   else						      \
+			     __tgmres = Cfct##l (Val);			      \
+			 }						      \
+		       else if (sizeof (__real__ (Val)) == sizeof (double))   \
+			 {						      \
+			   if (sizeof (__real__ (Val)) == sizeof (Val))	      \
+			     __tgmres = Fct (Val);			      \
+			   else						      \
+			     __tgmres = Cfct (Val);			      \
+			 }						      \
+		       else 						      \
+			 {						      \
+			   if (sizeof (__real__ (Val)) == sizeof (Val))	      \
+			     __tgmres = Fct##f (Val);			      \
+			   else						      \
+			     __tgmres = Cfct##f (Val);			      \
+			 }						      \
+		       __tgmres; }))
 
 /* XXX This definition has to be changed as soon as the compiler understands
    the imaginary keyword.  */
 # define __TGMATH_UNARY_IMAG_ONLY(Val, Fct) \
-     (__extension__ (sizeof (Val) > sizeof (__complex__ double)		      \
-		     ? Fct##l (Val)					      \
-		     : (sizeof (Val) == sizeof (__complex__ double)	      \
-			? Fct (Val)					      \
-			: Fct##f (Val))))
+     (__extension__ ({ __typeof__ (Val) __tgmres;			      \
+		       if (sizeof (Val) == sizeof (__complex__ double))	      \
+			 __tgmres = Fct (Val);				      \
+		       else if (sizeof (Val) == sizeof (__complex__ float))   \
+			 __tgmres = Fct##f (Val);			      \
+		       else 						      \
+			 __tgmres = Fct##l (Val);			      \
+		       __tgmres; }))
 
+/* XXX This definition has to be changed as soon as the compiler understands
+   the imaginary keyword.  */
 # define __TGMATH_BINARY_REAL_IMAG(Val1, Val2, Fct, Cfct) \
-     (__extension__ (sizeof (__real__ (Val1)) > sizeof (double)		      \
-		     || sizeof (__real__ (Val2)) > sizeof (double)	      \
-		     ? (sizeof (__real__ (Val1)) == sizeof (Val1)	      \
-			&& sizeof (__real__ (Val2)) == sizeof (Val2)	      \
-			? Fct##l (Val1, Val2)				      \
-			: Cfct##l (Val1, Val2))				      \
-		     : (sizeof (__real__ (Val1)) == sizeof (double)	      \
-			|| sizeof (__real__ (Val2)) == sizeof (double)	      \
-			? (sizeof (__real__ (Val1)) == sizeof (Val1)	      \
-			   && sizeof (__real__ (Val2)) == sizeof (Val2)	      \
-			   ? Fct (Val1, Val2)				      \
-			   : Cfct (Val1, Val2))				      \
-			: (sizeof (__real__ (Val1)) == sizeof (Val1)	      \
-			   && sizeof (__real__ (Val2)) == sizeof (Val2)	      \
-			   ? Fct##f (Val1, Val2)			      \
-			   : Cfct##f (Val1, Val2)))))
+     (__extension__ ({ __typeof__ ((Val1) + (Val2)) __tgmres;		      \
+		       if (sizeof (__real__ (Val1)) > sizeof (double)	      \
+			   || sizeof (__real__ (Val2)) > sizeof (double))     \
+			 {						      \
+			   if (sizeof (__real__ (Val1)) == sizeof (Val1)      \
+			       && sizeof (__real__ (Val2)) == sizeof (Val2))  \
+			     __tgmres = Fct##l (Val1, Val2);		      \
+			   else						      \
+			     __tgmres = Cfct##l (Val1, Val2);		      \
+			 }						      \
+		       else if (sizeof (__real__ (Val1)) == sizeof (double)   \
+				|| sizeof (__real__ (Val2)) == sizeof(double))\
+			 {						      \
+			   if (sizeof (__real__ (Val1)) == sizeof (Val1)      \
+			       && sizeof (__real__ (Val2)) == sizeof (Val2))  \
+			     __tgmres = Fct (Val1, Val2);		      \
+			   else						      \
+			     __tgmres = Cfct (Val1, Val2);		      \
+			 }						      \
+		       else						      \
+			 {						      \
+			   if (sizeof (__real__ (Val1)) == sizeof (Val1)      \
+			       && sizeof (__real__ (Val2)) == sizeof (Val2))  \
+			     __tgmres = Fct##f (Val1, Val2);		      \
+			   else						      \
+			     __tgmres = Cfct##f (Val1, Val2);		      \
+			 }						      \
+		       __tgmres; }))
 #else
 # error "Unsupported compiler; you cannot use <tgmath.h>"
 #endif