mirror of
git://git.code.sf.net/p/cdesktopenv/code
synced 2025-03-09 15:50:02 +00:00
tie up standards macros loose ends (re: 289dd46c
)
src/lib/libast/features/standards:
- Do not emit #defines for the typ u_long test which is only used
as a heuristic in subsequent tests in this file. (Note that 'set'
can set and unset any iffe command-line --option at runtime.)
- Remove definition of _ISOC99_SOURCE macro. This is another old
GNU thing; feature_test_macros(7) says invoking the compiler with
the option -std=c99 has the same effect. But modern GCC has C11
with GNU extensions as the default, which is fine. If a
particular standard is desired, pass a -std=... flag in $CC.
src/cmd/ksh93/features/rlimits:
- Remove overlooked Linux *64* types/functions hackery.
After defining standards macros it caused a build failure
on at least one version of Void Linux (but not 5.15.14_1).
Thanks to @JohnoKing for the report.
src/cmd/ksh93/sh/subshell.c,
src/lib/libdll/dllnext.c:
- Remove now-redundant local definitions of _GNU_SOURCE and
__EXTENSIONS__ macros.
src/cmd/ksh93/tests/builtins.sh:
- Fix broken sed invocation (re: 41829efa
).
This commit is contained in:
parent
41829efa06
commit
2c4b05b4f8
5 changed files with 12 additions and 49 deletions
|
@ -1,25 +1,11 @@
|
|||
hdr,sys resource,vlimit sys/time.h
|
||||
lib getrlimit,getrlimit64,ulimit,vlimit
|
||||
typ rlim_t,rlim64_t sys/types.h sys/time.h sys/resource.h
|
||||
lib getrlimit,ulimit,vlimit
|
||||
typ rlim_t sys/types.h sys/time.h sys/resource.h
|
||||
|
||||
cat{
|
||||
|
||||
#if _sys_resource
|
||||
# include <sys/resource.h>
|
||||
# if _lib_getrlimit64 && _typ_rlim64_t
|
||||
# undef getrlimit
|
||||
# define getrlimit getrlimit64
|
||||
# undef setrlimit
|
||||
# define setrlimit setrlimit64
|
||||
# undef rlimit
|
||||
# define rlimit rlimit64
|
||||
# undef rlim_t
|
||||
# define rlim_t rlim64_t
|
||||
# ifdef RLIM64_INFINITY
|
||||
# undef RLIM_INFINITY
|
||||
# define RLIM_INFINITY RLIM64_INFINITY
|
||||
# endif
|
||||
# endif
|
||||
#endif
|
||||
|
||||
}end
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
* *
|
||||
* This software is part of the ast package *
|
||||
* Copyright (c) 1982-2012 AT&T Intellectual Property *
|
||||
* Copyright (c) 2020-2021 Contributors to ksh 93u+m *
|
||||
* Copyright (c) 2020-2022 Contributors to ksh 93u+m *
|
||||
* and is licensed under the *
|
||||
* Eclipse Public License, Version 1.0 *
|
||||
* by AT&T Intellectual Property *
|
||||
|
@ -26,10 +26,6 @@
|
|||
*
|
||||
*/
|
||||
|
||||
#ifdef __linux__
|
||||
#define _GNU_SOURCE /* needed for O_PATH */
|
||||
#endif
|
||||
|
||||
#include "defs.h"
|
||||
#include <ls.h>
|
||||
#include "io.h"
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
# #
|
||||
# This software is part of the ast package #
|
||||
# Copyright (c) 1982-2012 AT&T Intellectual Property #
|
||||
# Copyright (c) 2020-2021 Contributors to ksh 93u+m #
|
||||
# Copyright (c) 2020-2022 Contributors to ksh 93u+m #
|
||||
# and is licensed under the #
|
||||
# Eclipse Public License, Version 1.0 #
|
||||
# by AT&T Intellectual Property #
|
||||
|
@ -31,7 +31,7 @@ if builtin getconf 2> /dev/null; then
|
|||
|
||||
# The -l option should convert all variable names to lowercase.
|
||||
# https://github.com/att/ast/issues/1171
|
||||
got=$(getconf -lq | LC_ALL=C sed -n '/[A-Z].*=/p')
|
||||
got=$(getconf -lq | LC_ALL=C sed -n -e 's/=.*//' -e '/[A-Z]/p')
|
||||
[[ -n $got ]] && err_exit "'getconf -l' doesn't convert all variable names to lowercase" \
|
||||
"(got $(printf %q "$got"))"
|
||||
|
||||
|
|
|
@ -4,7 +4,10 @@ set stdio
|
|||
# Flag systems that omit necessary definitions such as u_long
|
||||
# when _POSIX_SOURCE or _XOPEN_SOURCE are defined.
|
||||
# Affected: Mac OS X, UnixWare.
|
||||
# Do not emit a #define for this test, just remember it for the next tests in this file.
|
||||
set nodefine
|
||||
typ u_long
|
||||
set define
|
||||
|
||||
#
|
||||
# The following tests try to define the features/standards macros that expose
|
||||
|
@ -82,10 +85,9 @@ elif tst note{ Darwin (macOS, Mac OS X) }end compile{
|
|||
elif tst note{ SunOS (Solaris, illumos) }end compile{
|
||||
/*
|
||||
* On Solaris/illumos, we ignore the standards(5) manual completely because
|
||||
* defining any standards macro, and even defining __EXTENSIONS__ (!), will
|
||||
* disable functionality that libast depends on. Instead we define unofficial
|
||||
* _XPG* macros that enable up-to-date declarations and functionality in
|
||||
* Solaris system headers.
|
||||
* defining recommended standards macros will disable functionality that
|
||||
* libast depends on. Instead we define unofficial _XPG* macros that enable
|
||||
* up-to-date declarations and functionality in Solaris system headers.
|
||||
* (Note that we must also avoid passing any -std=... flag to the compiler,
|
||||
* because that will disable essential functionality as well.)
|
||||
*/
|
||||
|
@ -333,17 +335,3 @@ else tst note{ __EXTENSIONS__ works }end compile{
|
|||
#endif
|
||||
}
|
||||
endif
|
||||
|
||||
if tst -D_ISOC99_SOURCE -lm note{ _ISOC99_SOURCE plays nice }end link{
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
#include <stdlib.h>
|
||||
#include <unistd.h>
|
||||
#include <math.h>
|
||||
int main() { return signbit(-0.0); }
|
||||
}end {
|
||||
#ifndef _ISOC99_SOURCE
|
||||
#define _ISOC99_SOURCE 1
|
||||
#endif
|
||||
}
|
||||
endif
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
* *
|
||||
* This software is part of the ast package *
|
||||
* Copyright (c) 1997-2011 AT&T Intellectual Property *
|
||||
* Copyright (c) 2020-2021 Contributors to ksh 93u+m *
|
||||
* Copyright (c) 2020-2022 Contributors to ksh 93u+m *
|
||||
* and is licensed under the *
|
||||
* Eclipse Public License, Version 1.0 *
|
||||
* by AT&T Intellectual Property *
|
||||
|
@ -23,13 +23,6 @@
|
|||
* AT&T Research
|
||||
*/
|
||||
|
||||
#ifndef _GNU_SOURCE
|
||||
#define _GNU_SOURCE 1
|
||||
#endif
|
||||
#ifndef __EXTENSIONS__
|
||||
#define __EXTENSIONS__ 1
|
||||
#endif
|
||||
|
||||
#include <ast.h>
|
||||
#include <dlldefs.h>
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue