Siddhesh Poyarekar 
							
						 
					 
					
						
						
							
						
						884ddc5081 
					 
					
						
						
							
							Revert to defining __extern_inline only for gcc-4.3+ (BZ  #17266 )  
						
						... 
						
						
						
						The check for only __GNUC_STDC_INLINE__ and __GNUC_GNU_INLINE__ may
not be sufficient since those flags were added during initial support
for C99 inlining semantics.  There is also a problem with always
defining __extern_inline and __extern_always_inline, since it enables
inline wrapper functions even when GNU inlining semantics are not
guaranteed.  This, along with the possibility of such wrappers using
redirection (btowc for example) could result in compiler generating an
infinitely recusrive call to the function.
In fact it was such a recursion that led to this code being written
the way it was; see:
https://bugzilla.redhat.com/show_bug.cgi?id=186410 
The initial change was to fix bugs 14530 and 13741, but they can be
resolved by checking if __fortify_function and/or
__extern_always_inline are defined, as it has been done in this patch.
In addition, I have audited uses of __extern_always_inline to make
sure that none of the uses result in compilation errors.
There is however a regression in this patch for llvm, since it reverts
the llvm expectation that __GNUC_STDC_INLINE__ or __GNUC_GNU_INLINE__
definition imply proper extern inline semantics.
2014-09-16  Siddhesh Poyarekar  <siddhesh@redhat.com >
	    Jakub Jelinek  <jakub@redhat.com >
	[BZ #17266 ]
	* libio/stdio.h: Check definition of __fortify_function
	instead of __extern_always_inline to include bits/stdio2.h.
	* math/bits/math-finite.h [__USE_XOPEN || __USE_ISOC99]: Also
	check if __extern_always_inline is defined.
	[__USE_MISC || __USE_XOPEN]: Likewise.
	[__USE_ISOC99] Likewise.
	* misc/sys/cdefs.h (__fortify_function): Define only if
	__extern_always_inline is defined.
	[!__cplusplus || __GNUC_PREREQ (4,3)]: Revert to defining
	__extern_always_inline and __extern_inline only for g++-4.3
	and newer or a compatible gcc. 
						
						
					 
					
						2014-09-16 14:08:48 +05:30 
						 
				 
			
				
					
						
							
							
								Joseph Myers 
							
						 
					 
					
						
						
							
						
						acd7f096d7 
					 
					
						
						
							
							Complete _BSD_SOURCE / _SVID_source followup cleanup.  
						
						... 
						
						
						
						This patch completes the headers cleanup consequent on removal of
_BSD_SOURCE and _SVID_SOURCE (apart from any subsequent deprecations):
* #endif conditionals that referred to BSD or SVID are updated.
* Redundant __USE_* tests in cases involving __USE_MISC are removed.
  This includes cases such as __USE_MISC || __USE_ISOC99, where
  __USE_MISC is redundant (because __USE_MISC is only ever defined in
  the default / _DEFAULT_SOURCE / _GNU_SOURCE case, when __USE_ISOC99
  is also defined; the same applies to the non-XSI-extended POSIX
  versions), and cases involving __USE_GNU, where __USE_GNU is
  redundant (because if __USE_GNU is defined, so are the other __USE_*
  macros).  There may well be other cases of __USE_FOO || __USE_BAR
  tests that could be simplified because one macro implies the other;
  this patch only addresses cases involving __USE_MISC.
Tested x86_64.
	* bits/fcntl.h [__USE_MISC]: Remove redundant conditionals.
	* bits/sigaction.h [__USE_MISC]: Likewise.
	* bits/waitstatus.h: Update #endif comments.
	* ctype/ctype.h: Likewise.
	* dirent/dirent.h: Likewise.
	[__USE_MISC]: Remove redundant conditionals.
	* grp/grp.h: Update #endif comments.
	[__USE_GNU]: Remove redundant conditionals.
	[__USE_MISC]: Likewise.
	* inet/netinet/in.h [__USE_GNU]: Likewise.
	* io/sys/stat.h [__USE_MISC]: Likewise.
	* libio/bits/stdio-ldbl.h [__USE_MISC]: Likewise.
	* libio/bits/stdio.h: Update #endif comments.
	[__USE_MISC]: Remove redundant conditionals.
	* libio/bits/stdio2.h [__USE_MISC]: Likewise.
	* libio/stdio.h: Update #endif comments.
	[__USE_MISC]: Remove redundant conditionals.
	* math/bits/math-finite.h [__USE_MISC]: Likewise.
	* math/bits/mathcalls.h [__USE_MISC]: Likewise.
	* math/math.h: Update #else and #endif comments.
	[__USE_MISC]: Remove redundant conditionals.
	* misc/sys/uio.h: Update #endif comments.
	* posix/bits/unistd.h [__USE_MISC]: Remove redundant conditionals.
	* posix/glob.h [__USE_MISC]: Likewise.
	* posix/sys/types.h: Update #endif comments.
	[__USE_MISC]: Remove redundant conditionals.
	* posix/sys/wait.h: Update #endif comments.
	[__USE_MISC]: Remove redundant conditionals.
	* posix/unistd.h: Update #endif comments.
	[__USE_MISC]: Remove redundant conditionals.
	* pwd/pwd.h [__USE_GNU]: Likewise.
	[__USE_MISC]: Likewise.
	* resolv/netdb.h [__USE_GNU]: Likewise.
	* signal/signal.h: Update #endif comments.
	[__USE_MISC]: Remove redundant conditionals.
	* stdlib/stdlib.h: Update #else and #endif comments.
	[__USE_MISC]: Remove redundant conditionals.
	[__USE_GNU]: Likewise.
	* string/bits/string2.h [__USE_MISC]: Likewise.
	* string/string.h: Update #endif comments.
	[__USE_MISC]: Remove redundant conditionals.
	* sysdeps/m68k/m680x0/fpu/bits/mathinline.h [__USE_MISC]:
	Likewise.
	* sysdeps/mach/hurd/bits/fcntl.h [__USE_MISC]: Likewise.
	* sysdeps/mach/hurd/bits/stat.h [__USE_MISC]: Likewise.
	* sysdeps/unix/sysv/linux/alpha/bits/sigaction.h [__USE_MISC]:
	Likewise.
	* sysdeps/unix/sysv/linux/alpha/bits/stat.h [__USE_MISC]:
	Likewise.
	* sysdeps/unix/sysv/linux/bits/fcntl-linux.h: Update #endif
	comments.
	[__USE_MISC]: Remove redundant conditionals.
	* sysdeps/unix/sysv/linux/bits/in.h [__USE_GNU]: Likewise.
	* sysdeps/unix/sysv/linux/bits/sigaction.h [__USE_MISC]: Likewise.
	* sysdeps/unix/sysv/linux/bits/socket.h [__USE_GNU]: Likewise.
	* sysdeps/unix/sysv/linux/bits/stat.h [__USE_MISC]: Likewise.
	* sysdeps/unix/sysv/linux/ia64/bits/sigaction.h [__USE_MISC]:
	Likewise.
	* sysdeps/unix/sysv/linux/m68k/bits/stat.h [__USE_MISC]: Likewise.
	* sysdeps/unix/sysv/linux/mips/bits/sigaction.h [__USE_MISC]:
	Likewise.
	* sysdeps/unix/sysv/linux/mips/bits/stat.h [__USE_MISC]: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/bits/stat.h [__USE_MISC]:
	Likewise.
	* sysdeps/unix/sysv/linux/s390/bits/sigaction.h [__USE_MISC]:
	Likewise.
	* sysdeps/unix/sysv/linux/s390/bits/stat.h [__USE_MISC]: Likewise.
	* sysdeps/unix/sysv/linux/sparc/bits/sigaction.h [__USE_MISC]:
	Likewise.
	* sysdeps/unix/sysv/linux/sparc/bits/stat.h [__USE_MISC]:
	Likewise.
	* sysdeps/unix/sysv/linux/x86/bits/stat.h [__USE_MISC]: Likewise.
	* sysdeps/x86/bits/string.h: Update #endif comments.
	* sysdeps/x86/fpu/bits/mathinline.h [__USE_MISC]: Remove redundant
	conditionals.
	* time/sys/time.h: Update #endif comments.
	* time/time.h: Likewise.
	[__USE_MISC]: Remove redundant conditionals. 
						
						
					 
					
						2014-02-21 21:45:26 +00:00 
						 
				 
			
				
					
						
							
							
								Allan McRae 
							
						 
					 
					
						
						
							
						
						d4697bc93d 
					 
					
						
						
							
							Update copyright notices with scripts/update-copyrights  
						
						
						
						
					 
					
						2014-01-01 22:00:23 +10:00 
						 
				 
			
				
					
						
							
							
								Joseph Myers 
							
						 
					 
					
						
						
							
						
						568035b787 
					 
					
						
						
							
							Update copyright notices with scripts/update-copyrights.  
						
						
						
						
					 
					
						2013-01-02 19:05:09 +00:00 
						 
				 
			
				
					
						
							
							
								Andreas Schwab 
							
						 
					 
					
						
						
							
						
						ded5180a3b 
					 
					
						
						
							
							Don't use long double *_finite functions if no long double math  
						
						
						
						
					 
					
						2012-04-28 22:21:53 +02:00 
						 
				 
			
				
					
						
							
							
								Paul Eggert 
							
						 
					 
					
						
						
							
						
						59ba27a63a 
					 
					
						
						
							
							Replace FSF snail mail address with URLs.  
						
						
						
						
					 
					
						2012-02-09 23:18:22 +00:00 
						 
				 
			
				
					
						
							
							
								Ulrich Drepper 
							
						 
					 
					
						
						
							
						
						a47a831ad8 
					 
					
						
						
							
							Optimize ldexp and scalbn  
						
						
						
						
					 
					
						2012-01-10 20:52:29 -05:00 
						 
				 
			
				
					
						
							
							
								Marek Polacek 
							
						 
					 
					
						
						
							
						
						8ef4f244ff 
					 
					
						
						
							
							Avoid warnings in __*_finite math function declarations with C++  
						
						
						
						
					 
					
						2011-12-17 20:23:16 -05:00 
						 
				 
			
				
					
						
							
							
								Ulrich Drepper 
							
						 
					 
					
						
						
							
						
						bcf01e6d80 
					 
					
						
						
							
							Optimize exp  
						
						... 
						
						
						
						Add __exp*_finite optimizations and rewrite some wrappers. 
						
						
					 
					
						2011-10-15 20:22:59 -04:00 
						 
				 
			
				
					
						
							
							
								Ulrich Drepper 
							
						 
					 
					
						
						
							
						
						0ac5ae2335 
					 
					
						
						
							
							Optimize libm  
						
						... 
						
						
						
						libm is now somewhat integrated with gcc's -ffinite-math-only option
and lots of the wrapper functions have been optimized. 
						
						
					 
					
						2011-10-12 11:27:51 -04:00