mirror of
				git://git.code.sf.net/p/cdesktopenv/code
				synced 2025-03-09 15:50:02 +00:00 
			
		
		
		
	Build system tweaks; fix use of brk(2)/sbrk(2) feature test
There is a feature test for brk(2)/sbrk(2), but it was not checked
for in one place in vmbest.c, causing libdll to fail to build on
FreeBSD aarch64 because the features/dll output{...}end block
failed to link. This commit allows libdll to build on that system,
though another mysterious build failure apparently remains.
https://github.com/ksh93/ksh/issues/154
src/lib/libast/include/vmalloc.h,
src/lib/libast/vmalloc/vmbest.c:
- Add missing '#if _mem_sbrk' directives to disable uses of sbrk(2)
  on systems that have removed this deprecated interface.
src/cmd/builtin/features/pty,
src/lib/libast/features/common,
src/lib/libast/features/float,
src/lib/libast/features/lib,
src/lib/libast/features/sfio,
src/lib/libast/features/sizeof:
- Add a fail clause to more 'tst - output{' blocks so they write an
  informative #error directive if they fail to compile and write
  required header identifiers. This should avoid much more obscure
  compile errors later on. (re: e20c0c6b)
.gitignore:
- Add pattern for emacs #backup# files.
			
			
This commit is contained in:
		
							parent
							
								
									856a2bb253
								
							
						
					
					
						commit
						e72543a9fa
					
				
					 9 changed files with 26 additions and 2 deletions
				
			
		
							
								
								
									
										1
									
								
								.gitignore
									
										
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.gitignore
									
										
									
									
										vendored
									
									
								
							|  | @ -57,3 +57,4 @@ bin/execrate | |||
| *.project | ||||
| *.core | ||||
| core | ||||
| **/#*# | ||||
|  |  | |||
|  | @ -54,7 +54,9 @@ tst - output{ | |||
| 			} | ||||
| 		return 0; | ||||
| 	} | ||||
| }end   | ||||
| }end fail{ | ||||
| 	echo '#error The output block in src/cmd/builtin/features/pty failed to compile' | ||||
| }end | ||||
| 
 | ||||
| extern	_getpty		char*		(int*, int, mode_t, int) | ||||
| extern	openpty		int		(int*, int*, char*, struct termios*, struct winsize*) | ||||
|  |  | |||
|  | @ -352,6 +352,8 @@ tst	- output{ | |||
| 		printf("\n"); | ||||
| 		return 0; | ||||
| 	} | ||||
| }end fail{ | ||||
| 	echo '#error Output block #2 in src/lib/libast/features/common failed to compile' | ||||
| }end | ||||
| 
 | ||||
| tst	- -DN=1 - -DN=0 output{ | ||||
|  |  | |||
|  | @ -894,6 +894,8 @@ tst	- note{ missing floating point limits }end output{ | |||
| 
 | ||||
| 		return 0; | ||||
| 	} | ||||
| }end fail{ | ||||
| 	echo '#error Output block #1 in src/lib/libast/features/float failed to compile' | ||||
| }end | ||||
| 
 | ||||
| tst	- note{ double exponent bitfoolery }end output{ | ||||
|  | @ -928,6 +930,8 @@ tst	- note{ double exponent bitfoolery }end output{ | |||
| 			} | ||||
| 		return 0; | ||||
| 	} | ||||
| }end fail{ | ||||
| 	echo '#error Output block #2 in src/lib/libast/features/float failed to compile' | ||||
| }end | ||||
| 
 | ||||
| tst	- note{ long double exponent bitfoolery }end output{ | ||||
|  | @ -962,6 +966,8 @@ tst	- note{ long double exponent bitfoolery }end output{ | |||
| 			} | ||||
| 		return 0; | ||||
| 	} | ||||
| }end fail{ | ||||
| 	echo '#error Output block #3 in src/lib/libast/features/float failed to compile' | ||||
| }end | ||||
| 
 | ||||
| tst	- -DN=1 - -DN=2 note{ _ast_fltmax_t maximum integral type }end output{ | ||||
|  |  | |||
|  | @ -699,6 +699,8 @@ tst	- output{ | |||
| 		return 0; | ||||
| 	} | ||||
| 
 | ||||
| }end fail{ | ||||
| 	echo '#error The output block in src/lib/libast/features/lib failed to compile' | ||||
| }end | ||||
| 
 | ||||
| tst	no64 -D_LARGEFILE64_SOURCE note{ largefile 64 broken }end execute{ | ||||
|  |  | |||
|  | @ -14,6 +14,8 @@ tst	- note{ number of bits in pointer }end output{ | |||
| 		printf("#define _ptr_bits	%d\n", sizeof(char*) * 8); | ||||
| 		return 0; | ||||
| 	} | ||||
| }end fail{ | ||||
| 	echo '#error The output block in src/lib/libast/features/sfio failed to compile' | ||||
| }end | ||||
| 
 | ||||
| tst	tmp_rmfail note{ open files cannot be removed }end execute{ | ||||
|  |  | |||
|  | @ -10,4 +10,6 @@ tst	- note{ sizeof(integral-type) }end output{ | |||
| 		printf("#define _ast_sizeof_intmax_t	%d\n", sizeof(_ast_intmax_t)); | ||||
| 		return 0; | ||||
| 	} | ||||
| }end fail{ | ||||
| 	echo '#error The output block in src/lib/libast/features/sizeof failed to compile' | ||||
| }end | ||||
|  |  | |||
|  | @ -136,7 +136,9 @@ extern Vmethod_t*	Vmprofile;	/* profiling memory usage	*/ | |||
| 
 | ||||
| extern Vmdisc_t*	Vmdcsystem;	/* get memory from the OS	*/ | ||||
| extern Vmdisc_t*	Vmdcheap;	/* get memory from Vmheap	*/ | ||||
| #if _mem_sbrk | ||||
| extern Vmdisc_t*	Vmdcsbrk;	/* like Vmdcsystem - legacy use	*/ | ||||
| #endif | ||||
| 
 | ||||
| extern Vmalloc_t	_Vmheap;	/* heap region - use with care! */ | ||||
| extern Vmalloc_t*	Vmheap;		/* = &_Vmheap - safe to use	*/ | ||||
|  |  | |||
|  | @ -1265,10 +1265,13 @@ static Void_t* mmapmem(Void_t* caddr, size_t csize, size_t nsize, Mmdisc_t* mmdc | |||
| 		} | ||||
| 	} | ||||
| 	else if(nsize == 0) | ||||
| 	{	Vmuchar_t	*addr = (Vmuchar_t*)sbrk(0); | ||||
| 	{ | ||||
| #if _mem_sbrk | ||||
| 		Vmuchar_t	*addr = (Vmuchar_t*)sbrk(0); | ||||
| 		if(addr < (Vmuchar_t*)caddr ) /* in sbrk space */ | ||||
| 			return NIL(Void_t*); | ||||
| 		else | ||||
| #endif | ||||
| 		{	(void)munmap(caddr, csize); | ||||
| 			return caddr; | ||||
| 		} | ||||
|  | @ -1385,7 +1388,9 @@ __DEFINE__(Vmalloc_t*, Vmheap, &_Vmheap); | |||
| __DEFINE__(Vmalloc_t*, Vmregion, &_Vmheap); | ||||
| __DEFINE__(Vmethod_t*, Vmbest, &_Vmbest); | ||||
| __DEFINE__(Vmdisc_t*,  Vmdcsystem, (Vmdisc_t*)(&_Vmdcsystem) ); | ||||
| #if _mem_sbrk | ||||
| __DEFINE__(Vmdisc_t*,  Vmdcsbrk, (Vmdisc_t*)(&_Vmdcsystem) ); | ||||
| #endif | ||||
| 
 | ||||
| #ifdef NoF | ||||
| NoF(vmbest) | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue