mirror of
				https://github.com/tmux/tmux.git
				synced 2025-11-04 00:56:10 +00:00 
			
		
		
		
	glibc's malloc is very bad about returning memory from the kernel, add a call
to its malloc_trim to prompt it to do so. Reported by Sarunas Valaskevicius.
This commit is contained in:
		
							
								
								
									
										25
									
								
								configure.ac
									
									
									
									
									
								
							
							
						
						
									
										25
									
								
								configure.ac
									
									
									
									
									
								
							@@ -328,6 +328,31 @@ AC_SEARCH_LIBS(inet_ntoa, nsl)
 | 
			
		||||
AC_SEARCH_LIBS(socket, socket)
 | 
			
		||||
AC_CHECK_LIB(xnet, socket)
 | 
			
		||||
 | 
			
		||||
# Check if using glibc and have malloc_trim(3). The glibc free(3) is pretty bad
 | 
			
		||||
# about returning memory to the kernel unless the application tells it when to
 | 
			
		||||
# with malloc_trim(3).
 | 
			
		||||
AC_MSG_CHECKING(if free doesn't work very well)
 | 
			
		||||
AC_LINK_IFELSE([AC_LANG_SOURCE(
 | 
			
		||||
	[
 | 
			
		||||
		#include <stdlib.h>
 | 
			
		||||
		#ifdef __GLIBC__
 | 
			
		||||
		#include <malloc.h>
 | 
			
		||||
		int main(void) {
 | 
			
		||||
			malloc_trim (0);
 | 
			
		||||
			exit(0);
 | 
			
		||||
		}
 | 
			
		||||
		#else
 | 
			
		||||
		no
 | 
			
		||||
		#endif
 | 
			
		||||
	])],
 | 
			
		||||
	found_malloc_trim=yes,
 | 
			
		||||
	found_malloc_trim=no
 | 
			
		||||
)
 | 
			
		||||
AC_MSG_RESULT($found_malloc_trim)
 | 
			
		||||
if test "x$found_malloc_trim" = xyes; then
 | 
			
		||||
	AC_DEFINE(HAVE_MALLOC_TRIM)
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
# Check for CMSG_DATA. On some platforms like HP-UX this requires UNIX 95
 | 
			
		||||
# (_XOPEN_SOURCE and _XOPEN_SOURCE_EXTENDED) (see xopen_networking(7)). On
 | 
			
		||||
# others, UNIX 03 (_XOPEN_SOURCE 600, see standards(7) on Solaris).
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user