mirror of
https://review.haiku-os.org/buildtools
synced 2026-02-04 07:53:14 +01:00
Compare commits
2 Commits
btrev43220
...
btrev43222
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
13c7a4265a | ||
|
|
7ab022f6e6 |
4
gcc/libiberty/aclocal.m4
vendored
4
gcc/libiberty/aclocal.m4
vendored
@@ -1,6 +1,6 @@
|
||||
# generated automatically by aclocal 1.15.1 -*- Autoconf -*-
|
||||
# generated automatically by aclocal 1.16.5 -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 1996-2017 Free Software Foundation, Inc.
|
||||
# Copyright (C) 1996-2021 Free Software Foundation, Inc.
|
||||
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
|
||||
@@ -198,6 +198,12 @@
|
||||
/* Define to 1 if you have the `pipe2' function. */
|
||||
#undef HAVE_PIPE2
|
||||
|
||||
/* Define to 1 if you have the `posix_spawn' function. */
|
||||
#undef HAVE_POSIX_SPAWN
|
||||
|
||||
/* Define to 1 if you have the `posix_spawnp' function. */
|
||||
#undef HAVE_POSIX_SPAWNP
|
||||
|
||||
/* Define to 1 if you have the <process.h> header file. */
|
||||
#undef HAVE_PROCESS_H
|
||||
|
||||
@@ -249,6 +255,9 @@
|
||||
/* Define to 1 if you have the `spawnvpe' function. */
|
||||
#undef HAVE_SPAWNVPE
|
||||
|
||||
/* Define to 1 if you have the <spawn.h> header file. */
|
||||
#undef HAVE_SPAWN_H
|
||||
|
||||
/* Define to 1 if you have the <stdint.h> header file. */
|
||||
#undef HAVE_STDINT_H
|
||||
|
||||
|
||||
8
gcc/libiberty/configure
vendored
8
gcc/libiberty/configure
vendored
@@ -5517,7 +5517,7 @@ host_makefile_frag=${frag}
|
||||
# It's OK to check for header files. Although the compiler may not be
|
||||
# able to link anything, it had better be able to at least compile
|
||||
# something.
|
||||
for ac_header in sys/file.h sys/param.h limits.h stdlib.h malloc.h string.h unistd.h strings.h sys/time.h time.h sys/resource.h sys/stat.h sys/mman.h fcntl.h alloca.h sys/pstat.h sys/sysmp.h sys/sysinfo.h machine/hal_sysinfo.h sys/table.h sys/sysctl.h sys/systemcfg.h stdint.h stdio_ext.h process.h sys/prctl.h
|
||||
for ac_header in sys/file.h sys/param.h limits.h stdlib.h malloc.h string.h unistd.h strings.h sys/time.h time.h sys/resource.h sys/stat.h sys/mman.h fcntl.h alloca.h sys/pstat.h sys/sysmp.h sys/sysinfo.h machine/hal_sysinfo.h sys/table.h sys/sysctl.h sys/systemcfg.h stdint.h stdio_ext.h process.h sys/prctl.h spawn.h
|
||||
do :
|
||||
as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
|
||||
ac_fn_c_check_header_preproc "$LINENO" "$ac_header" "$as_ac_Header"
|
||||
@@ -6026,7 +6026,8 @@ funcs="$funcs setproctitle"
|
||||
vars="sys_errlist sys_nerr sys_siglist"
|
||||
|
||||
checkfuncs="__fsetlocking canonicalize_file_name dup3 getrlimit getrusage \
|
||||
getsysinfo gettimeofday on_exit pipe2 psignal pstat_getdynamic pstat_getstatic \
|
||||
getsysinfo gettimeofday on_exit pipe2 posix_spawn posix_spawnp psignal \
|
||||
pstat_getdynamic pstat_getstatic \
|
||||
realpath setrlimit spawnve spawnvpe strerror strsignal sysconf sysctl \
|
||||
sysmp table times wait3 wait4"
|
||||
|
||||
@@ -6049,7 +6050,8 @@ if test "x" = "y"; then
|
||||
index insque \
|
||||
memchr memcmp memcpy memmem memmove memset mkstemps \
|
||||
on_exit \
|
||||
pipe2 psignal pstat_getdynamic pstat_getstatic putenv \
|
||||
pipe2 posix_spawn posix_spawnp psignal \
|
||||
pstat_getdynamic pstat_getstatic putenv \
|
||||
random realpath rename rindex \
|
||||
sbrk setenv setproctitle setrlimit sigsetmask snprintf spawnve spawnvpe \
|
||||
stpcpy stpncpy strcasecmp strchr strdup \
|
||||
|
||||
@@ -277,7 +277,7 @@ AC_SUBST_FILE(host_makefile_frag)
|
||||
# It's OK to check for header files. Although the compiler may not be
|
||||
# able to link anything, it had better be able to at least compile
|
||||
# something.
|
||||
AC_CHECK_HEADERS(sys/file.h sys/param.h limits.h stdlib.h malloc.h string.h unistd.h strings.h sys/time.h time.h sys/resource.h sys/stat.h sys/mman.h fcntl.h alloca.h sys/pstat.h sys/sysmp.h sys/sysinfo.h machine/hal_sysinfo.h sys/table.h sys/sysctl.h sys/systemcfg.h stdint.h stdio_ext.h process.h sys/prctl.h)
|
||||
AC_CHECK_HEADERS(sys/file.h sys/param.h limits.h stdlib.h malloc.h string.h unistd.h strings.h sys/time.h time.h sys/resource.h sys/stat.h sys/mman.h fcntl.h alloca.h sys/pstat.h sys/sysmp.h sys/sysinfo.h machine/hal_sysinfo.h sys/table.h sys/sysctl.h sys/systemcfg.h stdint.h stdio_ext.h process.h sys/prctl.h spawn.h)
|
||||
AC_HEADER_SYS_WAIT
|
||||
AC_HEADER_TIME
|
||||
|
||||
@@ -400,7 +400,8 @@ funcs="$funcs setproctitle"
|
||||
vars="sys_errlist sys_nerr sys_siglist"
|
||||
|
||||
checkfuncs="__fsetlocking canonicalize_file_name dup3 getrlimit getrusage \
|
||||
getsysinfo gettimeofday on_exit pipe2 psignal pstat_getdynamic pstat_getstatic \
|
||||
getsysinfo gettimeofday on_exit pipe2 posix_spawn posix_spawnp psignal \
|
||||
pstat_getdynamic pstat_getstatic \
|
||||
realpath setrlimit spawnve spawnvpe strerror strsignal sysconf sysctl \
|
||||
sysmp table times wait3 wait4"
|
||||
|
||||
@@ -423,7 +424,8 @@ if test "x" = "y"; then
|
||||
index insque \
|
||||
memchr memcmp memcpy memmem memmove memset mkstemps \
|
||||
on_exit \
|
||||
pipe2 psignal pstat_getdynamic pstat_getstatic putenv \
|
||||
pipe2 posix_spawn posix_spawnp psignal \
|
||||
pstat_getdynamic pstat_getstatic putenv \
|
||||
random realpath rename rindex \
|
||||
sbrk setenv setproctitle setrlimit sigsetmask snprintf spawnve spawnvpe \
|
||||
stpcpy stpncpy strcasecmp strchr strdup \
|
||||
|
||||
@@ -58,6 +58,9 @@ extern int errno;
|
||||
#ifdef HAVE_PROCESS_H
|
||||
#include <process.h>
|
||||
#endif
|
||||
#ifdef HAVE_SPAWN_H
|
||||
#include <spawn.h>
|
||||
#endif
|
||||
|
||||
#ifdef vfork /* Autoconf may define this to fork for us. */
|
||||
# define VFORK_STRING "fork"
|
||||
@@ -559,6 +562,171 @@ pex_unix_exec_child (struct pex_obj *obj ATTRIBUTE_UNUSED,
|
||||
return (pid_t) -1;
|
||||
}
|
||||
|
||||
#elif defined(HAVE_POSIX_SPAWN) && defined(HAVE_POSIX_SPAWNP)
|
||||
/* Implementation of pex->exec_child using posix_spawn. */
|
||||
|
||||
static pid_t
|
||||
pex_unix_exec_child (struct pex_obj *obj ATTRIBUTE_UNUSED,
|
||||
int flags, const char *executable,
|
||||
char * const * argv, char * const * env,
|
||||
int in, int out, int errdes,
|
||||
int toclose, const char **errmsg, int *err)
|
||||
{
|
||||
int ret;
|
||||
pid_t pid = -1;
|
||||
posix_spawnattr_t attr;
|
||||
posix_spawn_file_actions_t actions;
|
||||
int attr_initialized = 0, actions_initialized = 0;
|
||||
|
||||
*err = 0;
|
||||
|
||||
ret = posix_spawnattr_init (&attr);
|
||||
if (ret)
|
||||
{
|
||||
*err = ret;
|
||||
*errmsg = "posix_spawnattr_init";
|
||||
goto exit;
|
||||
}
|
||||
attr_initialized = 1;
|
||||
|
||||
/* Use vfork() on glibc <=2.24. */
|
||||
#ifdef POSIX_SPAWN_USEVFORK
|
||||
ret = posix_spawnattr_setflags (&attr, POSIX_SPAWN_USEVFORK);
|
||||
if (ret)
|
||||
{
|
||||
*err = ret;
|
||||
*errmsg = "posix_spawnattr_setflags";
|
||||
goto exit;
|
||||
}
|
||||
#endif
|
||||
|
||||
ret = posix_spawn_file_actions_init (&actions);
|
||||
if (ret)
|
||||
{
|
||||
*err = ret;
|
||||
*errmsg = "posix_spawn_file_actions_init";
|
||||
goto exit;
|
||||
}
|
||||
actions_initialized = 1;
|
||||
|
||||
if (in != STDIN_FILE_NO)
|
||||
{
|
||||
ret = posix_spawn_file_actions_adddup2 (&actions, in, STDIN_FILE_NO);
|
||||
if (ret)
|
||||
{
|
||||
*err = ret;
|
||||
*errmsg = "posix_spawn_file_actions_adddup2";
|
||||
goto exit;
|
||||
}
|
||||
|
||||
ret = posix_spawn_file_actions_addclose (&actions, in);
|
||||
if (ret)
|
||||
{
|
||||
*err = ret;
|
||||
*errmsg = "posix_spawn_file_actions_addclose";
|
||||
goto exit;
|
||||
}
|
||||
}
|
||||
|
||||
if (out != STDOUT_FILE_NO)
|
||||
{
|
||||
ret = posix_spawn_file_actions_adddup2 (&actions, out, STDOUT_FILE_NO);
|
||||
if (ret)
|
||||
{
|
||||
*err = ret;
|
||||
*errmsg = "posix_spawn_file_actions_adddup2";
|
||||
goto exit;
|
||||
}
|
||||
|
||||
ret = posix_spawn_file_actions_addclose (&actions, out);
|
||||
if (ret)
|
||||
{
|
||||
*err = ret;
|
||||
*errmsg = "posix_spawn_file_actions_addclose";
|
||||
goto exit;
|
||||
}
|
||||
}
|
||||
|
||||
if (errdes != STDERR_FILE_NO)
|
||||
{
|
||||
ret = posix_spawn_file_actions_adddup2 (&actions, errdes, STDERR_FILE_NO);
|
||||
if (ret)
|
||||
{
|
||||
*err = ret;
|
||||
*errmsg = "posix_spawn_file_actions_adddup2";
|
||||
goto exit;
|
||||
}
|
||||
|
||||
ret = posix_spawn_file_actions_addclose (&actions, errdes);
|
||||
if (ret)
|
||||
{
|
||||
*err = ret;
|
||||
*errmsg = "posix_spawn_file_actions_addclose";
|
||||
goto exit;
|
||||
}
|
||||
}
|
||||
|
||||
if (toclose >= 0)
|
||||
{
|
||||
ret = posix_spawn_file_actions_addclose (&actions, toclose);
|
||||
if (ret)
|
||||
{
|
||||
*err = ret;
|
||||
*errmsg = "posix_spawn_file_actions_addclose";
|
||||
goto exit;
|
||||
}
|
||||
}
|
||||
|
||||
if ((flags & PEX_STDERR_TO_STDOUT) != 0)
|
||||
{
|
||||
ret = posix_spawn_file_actions_adddup2 (&actions, STDOUT_FILE_NO, STDERR_FILE_NO);
|
||||
if (ret)
|
||||
{
|
||||
*err = ret;
|
||||
*errmsg = "posix_spawn_file_actions_adddup2";
|
||||
goto exit;
|
||||
}
|
||||
}
|
||||
|
||||
if ((flags & PEX_SEARCH) != 0)
|
||||
{
|
||||
ret = posix_spawnp (&pid, executable, &actions, &attr, argv, env ? env : environ);
|
||||
if (ret)
|
||||
{
|
||||
*err = ret;
|
||||
*errmsg = "posix_spawnp";
|
||||
goto exit;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
ret = posix_spawn (&pid, executable, &actions, &attr, argv, env ? env : environ);
|
||||
if (ret)
|
||||
{
|
||||
*err = ret;
|
||||
*errmsg = "posix_spawn";
|
||||
goto exit;
|
||||
}
|
||||
}
|
||||
|
||||
exit:
|
||||
if (actions_initialized)
|
||||
posix_spawn_file_actions_destroy (&actions);
|
||||
if (attr_initialized)
|
||||
posix_spawnattr_destroy (&attr);
|
||||
|
||||
if (!*err && in != STDIN_FILE_NO)
|
||||
if (close (in))
|
||||
*errmsg = "close", *err = errno, pid = -1;
|
||||
if (!*err && out != STDOUT_FILE_NO)
|
||||
if (close (out))
|
||||
*errmsg = "close", *err = errno, pid = -1;
|
||||
if (!*err && errdes != STDERR_FILE_NO)
|
||||
if (close (errdes))
|
||||
*errmsg = "close", *err = errno, pid = -1;
|
||||
|
||||
return pid;
|
||||
}
|
||||
#else
|
||||
/* Implementation of pex->exec_child using standard vfork + exec. */
|
||||
|
||||
|
||||
@@ -154,12 +154,12 @@ execcmd(
|
||||
|
||||
/* Trim leading, ending white space */
|
||||
|
||||
while( isspace( *string ) )
|
||||
while( isspace( (unsigned char)*string ) )
|
||||
++string;
|
||||
|
||||
p = strchr( string, '\n' );
|
||||
|
||||
while( p && isspace( *p ) )
|
||||
while( p && isspace( (unsigned char)*p ) )
|
||||
++p;
|
||||
|
||||
/* If multi line, or too long, or JAMSHELL is set, write to bat file. */
|
||||
|
||||
@@ -538,11 +538,11 @@ var_edit_shift(
|
||||
if( edits->upshift )
|
||||
{
|
||||
for( ; *out; ++out )
|
||||
*out = toupper( *out );
|
||||
*out = toupper( (unsigned char)*out );
|
||||
}
|
||||
else if( edits->downshift )
|
||||
{
|
||||
for( ; *out; ++out )
|
||||
*out = tolower( *out );
|
||||
*out = tolower( (unsigned char)*out );
|
||||
}
|
||||
}
|
||||
|
||||
@@ -35,7 +35,7 @@ getoptions(
|
||||
{
|
||||
char *arg;
|
||||
|
||||
if( argv[i][0] != '-' || !isalpha( argv[i][1] ) )
|
||||
if( argv[i][0] != '-' || !isalpha( (unsigned char)argv[i][1] ) )
|
||||
break;
|
||||
|
||||
if( !optc-- )
|
||||
|
||||
@@ -917,16 +917,16 @@ regmatch( char *prog )
|
||||
break;
|
||||
case WORDA:
|
||||
/* Must be looking at a letter, digit, or _ */
|
||||
if ((!isalnum(*reginput)) && *reginput != '_')
|
||||
if ((!isalnum((unsigned char)*reginput)) && *reginput != '_')
|
||||
return(0);
|
||||
/* Prev must be BOL or nonword */
|
||||
if (reginput > regbol &&
|
||||
(isalnum(reginput[-1]) || reginput[-1] == '_'))
|
||||
(isalnum((unsigned char)reginput[-1]) || reginput[-1] == '_'))
|
||||
return(0);
|
||||
break;
|
||||
case WORDZ:
|
||||
/* Must be looking at non letter, digit, or _ */
|
||||
if (isalnum(*reginput) || *reginput == '_')
|
||||
if (isalnum((unsigned char)*reginput) || *reginput == '_')
|
||||
return(0);
|
||||
/* We don't care what the previous char was */
|
||||
break;
|
||||
|
||||
@@ -287,7 +287,7 @@ yylex()
|
||||
{
|
||||
/* Skip past white space */
|
||||
|
||||
while( c != EOF && isspace( c ) )
|
||||
while( c != EOF && isspace( (unsigned char)c ) )
|
||||
c = yychar();
|
||||
|
||||
/* Not a comment? Swallow up comment line. */
|
||||
@@ -315,7 +315,7 @@ yylex()
|
||||
while(
|
||||
c != EOF &&
|
||||
b < buf + sizeof( buf ) &&
|
||||
( inquote || !isspace( c ) ) )
|
||||
( inquote || !isspace( (unsigned char)c ) ) )
|
||||
{
|
||||
if( c == '"' )
|
||||
{
|
||||
@@ -369,7 +369,8 @@ yylex()
|
||||
*b = 0;
|
||||
yylval.type = ARG;
|
||||
|
||||
if( !notkeyword && !( isalpha( *buf ) && scanmode == SCAN_PUNCT ) )
|
||||
if( !notkeyword &&
|
||||
!( isalpha( (unsigned char)*buf ) && scanmode == SCAN_PUNCT ) )
|
||||
{
|
||||
for( k = keywords; k->word; k++ )
|
||||
if( *buf == *k->word && !strcmp( k->word, buf ) )
|
||||
|
||||
@@ -72,7 +72,7 @@ timestamp(
|
||||
char path[ MAXJPATH ];
|
||||
char *p = path;
|
||||
|
||||
do *p++ = tolower( *target );
|
||||
do *p++ = tolower( (unsigned char)*target );
|
||||
while( *target++ );
|
||||
|
||||
target = path;
|
||||
@@ -175,7 +175,7 @@ time_enter(
|
||||
char path[ MAXJPATH ];
|
||||
char *p = path;
|
||||
|
||||
do *p++ = tolower( *target );
|
||||
do *p++ = tolower( (unsigned char)*target );
|
||||
while( *target++ );
|
||||
|
||||
target = path;
|
||||
|
||||
@@ -152,7 +152,7 @@ var_string(
|
||||
|
||||
/* Copy white space */
|
||||
|
||||
while( isspace( *in ) )
|
||||
while( isspace( (unsigned char)*in ) )
|
||||
{
|
||||
if( out >= oute )
|
||||
return -1;
|
||||
@@ -164,7 +164,7 @@ var_string(
|
||||
|
||||
/* Copy non-white space, watching for variables */
|
||||
|
||||
while( *in && !isspace( *in ) )
|
||||
while( *in && !isspace( (unsigned char)*in ) )
|
||||
{
|
||||
if( out >= oute )
|
||||
return -1;
|
||||
|
||||
Reference in New Issue
Block a user