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
|
*.project
|
||||||
*.core
|
*.core
|
||||||
core
|
core
|
||||||
|
**/#*#
|
||||||
|
|
|
@ -54,7 +54,9 @@ tst - output{
|
||||||
}
|
}
|
||||||
return 0;
|
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 _getpty char* (int*, int, mode_t, int)
|
||||||
extern openpty int (int*, int*, char*, struct termios*, struct winsize*)
|
extern openpty int (int*, int*, char*, struct termios*, struct winsize*)
|
||||||
|
|
|
@ -352,6 +352,8 @@ tst - output{
|
||||||
printf("\n");
|
printf("\n");
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
}end fail{
|
||||||
|
echo '#error Output block #2 in src/lib/libast/features/common failed to compile'
|
||||||
}end
|
}end
|
||||||
|
|
||||||
tst - -DN=1 - -DN=0 output{
|
tst - -DN=1 - -DN=0 output{
|
||||||
|
|
|
@ -894,6 +894,8 @@ tst - note{ missing floating point limits }end output{
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
}end fail{
|
||||||
|
echo '#error Output block #1 in src/lib/libast/features/float failed to compile'
|
||||||
}end
|
}end
|
||||||
|
|
||||||
tst - note{ double exponent bitfoolery }end output{
|
tst - note{ double exponent bitfoolery }end output{
|
||||||
|
@ -928,6 +930,8 @@ tst - note{ double exponent bitfoolery }end output{
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
}end fail{
|
||||||
|
echo '#error Output block #2 in src/lib/libast/features/float failed to compile'
|
||||||
}end
|
}end
|
||||||
|
|
||||||
tst - note{ long double exponent bitfoolery }end output{
|
tst - note{ long double exponent bitfoolery }end output{
|
||||||
|
@ -962,6 +966,8 @@ tst - note{ long double exponent bitfoolery }end output{
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
}end fail{
|
||||||
|
echo '#error Output block #3 in src/lib/libast/features/float failed to compile'
|
||||||
}end
|
}end
|
||||||
|
|
||||||
tst - -DN=1 - -DN=2 note{ _ast_fltmax_t maximum integral type }end output{
|
tst - -DN=1 - -DN=2 note{ _ast_fltmax_t maximum integral type }end output{
|
||||||
|
|
|
@ -699,6 +699,8 @@ tst - output{
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}end fail{
|
||||||
|
echo '#error The output block in src/lib/libast/features/lib failed to compile'
|
||||||
}end
|
}end
|
||||||
|
|
||||||
tst no64 -D_LARGEFILE64_SOURCE note{ largefile 64 broken }end execute{
|
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);
|
printf("#define _ptr_bits %d\n", sizeof(char*) * 8);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
}end fail{
|
||||||
|
echo '#error The output block in src/lib/libast/features/sfio failed to compile'
|
||||||
}end
|
}end
|
||||||
|
|
||||||
tst tmp_rmfail note{ open files cannot be removed }end execute{
|
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));
|
printf("#define _ast_sizeof_intmax_t %d\n", sizeof(_ast_intmax_t));
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
}end fail{
|
||||||
|
echo '#error The output block in src/lib/libast/features/sizeof failed to compile'
|
||||||
}end
|
}end
|
||||||
|
|
|
@ -136,7 +136,9 @@ extern Vmethod_t* Vmprofile; /* profiling memory usage */
|
||||||
|
|
||||||
extern Vmdisc_t* Vmdcsystem; /* get memory from the OS */
|
extern Vmdisc_t* Vmdcsystem; /* get memory from the OS */
|
||||||
extern Vmdisc_t* Vmdcheap; /* get memory from Vmheap */
|
extern Vmdisc_t* Vmdcheap; /* get memory from Vmheap */
|
||||||
|
#if _mem_sbrk
|
||||||
extern Vmdisc_t* Vmdcsbrk; /* like Vmdcsystem - legacy use */
|
extern Vmdisc_t* Vmdcsbrk; /* like Vmdcsystem - legacy use */
|
||||||
|
#endif
|
||||||
|
|
||||||
extern Vmalloc_t _Vmheap; /* heap region - use with care! */
|
extern Vmalloc_t _Vmheap; /* heap region - use with care! */
|
||||||
extern Vmalloc_t* Vmheap; /* = &_Vmheap - safe to use */
|
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)
|
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 */
|
if(addr < (Vmuchar_t*)caddr ) /* in sbrk space */
|
||||||
return NIL(Void_t*);
|
return NIL(Void_t*);
|
||||||
else
|
else
|
||||||
|
#endif
|
||||||
{ (void)munmap(caddr, csize);
|
{ (void)munmap(caddr, csize);
|
||||||
return caddr;
|
return caddr;
|
||||||
}
|
}
|
||||||
|
@ -1385,7 +1388,9 @@ __DEFINE__(Vmalloc_t*, Vmheap, &_Vmheap);
|
||||||
__DEFINE__(Vmalloc_t*, Vmregion, &_Vmheap);
|
__DEFINE__(Vmalloc_t*, Vmregion, &_Vmheap);
|
||||||
__DEFINE__(Vmethod_t*, Vmbest, &_Vmbest);
|
__DEFINE__(Vmethod_t*, Vmbest, &_Vmbest);
|
||||||
__DEFINE__(Vmdisc_t*, Vmdcsystem, (Vmdisc_t*)(&_Vmdcsystem) );
|
__DEFINE__(Vmdisc_t*, Vmdcsystem, (Vmdisc_t*)(&_Vmdcsystem) );
|
||||||
|
#if _mem_sbrk
|
||||||
__DEFINE__(Vmdisc_t*, Vmdcsbrk, (Vmdisc_t*)(&_Vmdcsystem) );
|
__DEFINE__(Vmdisc_t*, Vmdcsbrk, (Vmdisc_t*)(&_Vmdcsystem) );
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef NoF
|
#ifdef NoF
|
||||||
NoF(vmbest)
|
NoF(vmbest)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue