diff options
author | Lorry Tar Creator <lorry-tar-importer@baserock.org> | 2015-04-08 03:09:47 +0000 |
---|---|---|
committer | <> | 2015-05-05 14:37:32 +0000 |
commit | f2541bb90af059680aa7036f315f052175999355 (patch) | |
tree | a5b214744b256f07e1dc2bd7273035a7808c659f /tools/build/src/engine | |
parent | ed232fdd34968697a68783b3195b1da4226915b5 (diff) | |
download | boost-tarball-master.tar.gz |
Imported from /home/lorry/working-area/delta_boost-tarball/boost_1_58_0.tar.bz2.HEADboost_1_58_0master
Diffstat (limited to 'tools/build/src/engine')
-rw-r--r-- | tools/build/src/engine/Jambase | 12 | ||||
-rw-r--r-- | tools/build/src/engine/boehm_gc/dyn_load.c | 9 | ||||
-rw-r--r-- | tools/build/src/engine/boehm_gc/include/gc.h | 2 | ||||
-rw-r--r-- | tools/build/src/engine/boehm_gc/include/gc_config_macros.h | 5 | ||||
-rw-r--r-- | tools/build/src/engine/boehm_gc/include/private/gcconfig.h | 11 | ||||
-rw-r--r-- | tools/build/src/engine/boehm_gc/os_dep.c | 15 | ||||
-rw-r--r-- | tools/build/src/engine/build.bat | 1 | ||||
-rwxr-xr-x | tools/build/src/engine/build.sh | 37 | ||||
-rw-r--r-- | tools/build/src/engine/builtins.c | 5 | ||||
-rw-r--r-- | tools/build/src/engine/execunix.c | 44 | ||||
-rw-r--r-- | tools/build/src/engine/fileunix.c | 5 | ||||
-rw-r--r-- | tools/build/src/engine/function.c | 11 | ||||
-rw-r--r-- | tools/build/src/engine/jam.c | 3 | ||||
-rw-r--r-- | tools/build/src/engine/jam.h | 8 | ||||
-rw-r--r-- | tools/build/src/engine/jambase.c | 12 | ||||
-rw-r--r-- | tools/build/src/engine/make1.c | 2 | ||||
-rw-r--r-- | tools/build/src/engine/modules/order.c | 2 | ||||
-rw-r--r-- | tools/build/src/engine/rules.c | 1 | ||||
-rw-r--r-- | tools/build/src/engine/rules.h | 26 |
19 files changed, 166 insertions, 45 deletions
diff --git a/tools/build/src/engine/Jambase b/tools/build/src/engine/Jambase index 94f8fbde5..6e7b7a2be 100644 --- a/tools/build/src/engine/Jambase +++ b/tools/build/src/engine/Jambase @@ -855,6 +855,18 @@ else if $(OS) = BEOS NOARSCAN ?= true ; STDHDRS ?= /boot/develop/headers/posix ; } +else if $(OS) = HAIKU +{ + BINDIR ?= /boot/system/non-packaged/bin ; + CC ?= gcc ; + C++ ?= $(CC) ; + FORTRAN ?= "" ; + LIBDIR ?= /boot/system/non-packaged/lib ; + LINK ?= gcc ; + LINKLIBS ?= -lnetwork ; + NOARSCAN ?= true ; + STDHDRS ?= /boot/system/develop/headers/posix ; +} else if $(UNIX) { switch $(OS) diff --git a/tools/build/src/engine/boehm_gc/dyn_load.c b/tools/build/src/engine/boehm_gc/dyn_load.c index 36968ba5d..eed9253e3 100644 --- a/tools/build/src/engine/boehm_gc/dyn_load.c +++ b/tools/build/src/engine/boehm_gc/dyn_load.c @@ -64,7 +64,7 @@ static int (*GC_has_static_roots)(const char *, void *, size_t); !defined(AIX) && !defined(SCO_ELF) && !defined(DGUX) && \ !(defined(FREEBSD) && defined(__ELF__)) && \ !(defined(NETBSD) && defined(__ELF__)) && !defined(HURD) && \ - !defined(DARWIN) && !defined(CYGWIN32) + !defined(DARWIN) && !defined(CYGWIN32) && !defined(HAIKU) --> We only know how to find data segments of dynamic libraries for the --> above. Additional SVR4 variants might not be too --> hard to add. @@ -82,6 +82,10 @@ static int (*GC_has_static_roots)(const char *, void *, size_t); # define ELFSIZE ARCH_ELFSIZE #endif +#if defined(HAIKU) +// purposefully empty +#endif + #if defined(LINUX) && defined(__ELF__) || defined(SCO_ELF) || \ (defined(FREEBSD) && defined(__ELF__)) || defined(DGUX) || \ (defined(NETBSD) && defined(__ELF__)) || defined(HURD) @@ -216,7 +220,8 @@ void GC_register_dynamic_libraries() #if defined(LINUX) && defined(__ELF__) || defined(SCO_ELF) || \ (defined(FREEBSD) && defined(__ELF__)) || defined(DGUX) || \ - (defined(NETBSD) && defined(__ELF__)) || defined(HURD) + (defined(NETBSD) && defined(__ELF__)) || defined(HURD) \ + defined(HAIKU) #ifdef USE_PROC_FOR_LIBRARIES diff --git a/tools/build/src/engine/boehm_gc/include/gc.h b/tools/build/src/engine/boehm_gc/include/gc.h index cc950888f..590a868d6 100644 --- a/tools/build/src/engine/boehm_gc/include/gc.h +++ b/tools/build/src/engine/boehm_gc/include/gc.h @@ -494,7 +494,7 @@ GC_API void * GC_malloc_atomic_ignore_off_page(size_t lb); /* of compilers. */ /* This may also be desirable if it is possible but expensive to */ /* retrieve the call chain. */ -#if (defined(__linux__) || defined(__NetBSD__) || defined(__OpenBSD__) \ +#if (defined(__linux__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__HAIKU__) \ || defined(__FreeBSD__) || defined(__DragonFly__)) & !defined(GC_CAN_SAVE_CALL_STACKS) # define GC_ADD_CALLER # if __GNUC__ >= 3 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95) diff --git a/tools/build/src/engine/boehm_gc/include/gc_config_macros.h b/tools/build/src/engine/boehm_gc/include/gc_config_macros.h index 66abf0b1e..762162a34 100644 --- a/tools/build/src/engine/boehm_gc/include/gc_config_macros.h +++ b/tools/build/src/engine/boehm_gc/include/gc_config_macros.h @@ -45,7 +45,8 @@ || defined(GC_AIX_THREADS) \ || defined(GC_LINUX_THREADS) \ || defined(GC_NETBSD_THREADS) \ - || defined(GC_GNU_THREADS)) + || defined(GC_GNU_THREADS) \ + || defined(GC_HAIKU_THREADS)) # define _REENTRANT /* Better late than never. This fails if system headers that */ /* depend on this were previously included. */ @@ -65,7 +66,7 @@ defined(GC_DGUX386_THREADS) || defined(GC_DARWIN_THREADS) || \ defined(GC_AIX_THREADS) || defined(GC_NETBSD_THREADS) || \ (defined(GC_WIN32_THREADS) && defined(__CYGWIN32__)) || \ - defined(GC_GNU_THREADS) + defined(GC_GNU_THREADS) || defined(GC_HAIKU_THREADS) # define GC_PTHREADS # endif diff --git a/tools/build/src/engine/boehm_gc/include/private/gcconfig.h b/tools/build/src/engine/boehm_gc/include/private/gcconfig.h index 20f35bc3a..61cf9eacb 100644 --- a/tools/build/src/engine/boehm_gc/include/private/gcconfig.h +++ b/tools/build/src/engine/boehm_gc/include/private/gcconfig.h @@ -215,6 +215,10 @@ # define BEOS # define mach_type_known # endif +# if defined(__HAIKU__) && defined(_X86_) +# define I386 +# define HAIKU +# define mach_type_known # if defined(LINUX) && (defined(i386) || defined(__i386__)) # define I386 # define mach_type_known @@ -1014,6 +1018,13 @@ extern int etext[]; # define DATASTART ((ptr_t)((((word) (etext)) + 0xfff) & ~0xfff)) # endif +# ifdef HAIKU +# define OS_TYPE "HAIKU" +# include <OS.h> +# define GETPAGESIZE() B_PAGE_SIZE +# extern int etext[]; +# define DATASTART ((ptr_t)((((word) (etext)) + 0xfff) & ~0xfff)) +# endif # ifdef SOLARIS # define OS_TYPE "SOLARIS" extern int _etext[], _end[]; diff --git a/tools/build/src/engine/boehm_gc/os_dep.c b/tools/build/src/engine/boehm_gc/os_dep.c index bb8fa08f6..2dd087fbe 100644 --- a/tools/build/src/engine/boehm_gc/os_dep.c +++ b/tools/build/src/engine/boehm_gc/os_dep.c @@ -777,6 +777,17 @@ ptr_t GC_get_main_stack_base(void){ # endif /* BEOS */ +# ifdef HAIKU +# include <OS.h> +ptr_t GC_get_main_stack_base(void) +{ + thread_info th; + get_thread_info(find_thread(NULL), &th); + return th.stack_end; +} +# endif + + # ifdef OS2 ptr_t GC_get_main_stack_base(void) @@ -1097,7 +1108,7 @@ ptr_t GC_get_main_stack_base(void) #if !defined(BEOS) && !defined(AMIGA) && !defined(MSWIN32) \ && !defined(MSWINCE) && !defined(OS2) && !defined(NOSYS) && !defined(ECOS) \ - && !defined(CYGWIN32) + && !defined(CYGWIN32) && !defined(HAIKU) ptr_t GC_get_main_stack_base(void) { @@ -1154,7 +1165,7 @@ ptr_t GC_get_main_stack_base(void) # endif /* STACKBOTTOM */ } -# endif /* ! AMIGA, !OS 2, ! MS Windows, !BEOS, !NOSYS, !ECOS */ +# endif /* ! AMIGA, !OS 2, ! MS Windows, !BEOS, !NOSYS, !ECOS, !HAIKU */ #if defined(GC_LINUX_THREADS) && !defined(HAVE_GET_STACK_BASE) diff --git a/tools/build/src/engine/build.bat b/tools/build/src/engine/build.bat index c96e508e7..0fdb804b6 100644 --- a/tools/build/src/engine/build.bat +++ b/tools/build/src/engine/build.bat @@ -613,3 +613,4 @@ goto Set_Args :Skip_Jam :Finish +exit /b %ERRORLEVEL% diff --git a/tools/build/src/engine/build.sh b/tools/build/src/engine/build.sh index 470ea3c07..6dbc70633 100755 --- a/tools/build/src/engine/build.sh +++ b/tools/build/src/engine/build.sh @@ -142,16 +142,27 @@ case $BOOST_JAM_TOOLSET in ;; intel-linux) - if test -r /opt/intel/cc/9.0/bin/iccvars.sh ; then - BOOST_JAM_TOOLSET_ROOT=/opt/intel/cc/9.0/ - elif test -r /opt/intel_cc_80/bin/iccvars.sh ; then - BOOST_JAM_TOOLSET_ROOT=/opt/intel_cc_80/ - elif test -r /opt/intel/compiler70/ia32/bin/iccvars.sh ; then - BOOST_JAM_TOOLSET_ROOT=/opt/intel/compiler70/ia32/ - elif test -r /opt/intel/compiler60/ia32/bin/iccvars.sh ; then - BOOST_JAM_TOOLSET_ROOT=/opt/intel/compiler60/ia32/ - elif test -r /opt/intel/compiler50/ia32/bin/iccvars.sh ; then - BOOST_JAM_TOOLSET_ROOT=/opt/intel/compiler50/ia32/ + which icc >/dev/null 2>&1 + if test $? ; then + BOOST_JAM_CC=$(which icc) + echo "Found $BOOST_JAM_CC in environment" + BOOST_JAM_TOOLSET_ROOT=$(echo $BOOST_JAM_CC | sed -e 's/bin.*\/icc//') + # probably the most widespread + ARCH=intel64 + else + echo "No intel compiler in current path" + echo "Look in a few old place for legacy reason" + if test -r /opt/intel/cc/9.0/bin/iccvars.sh ; then + BOOST_JAM_TOOLSET_ROOT=/opt/intel/cc/9.0/ + elif test -r /opt/intel_cc_80/bin/iccvars.sh ; then + BOOST_JAM_TOOLSET_ROOT=/opt/intel_cc_80/ + elif test -r /opt/intel/compiler70/ia32/bin/iccvars.sh ; then + BOOST_JAM_TOOLSET_ROOT=/opt/intel/compiler70/ia32/ + elif test -r /opt/intel/compiler60/ia32/bin/iccvars.sh ; then + BOOST_JAM_TOOLSET_ROOT=/opt/intel/compiler60/ia32/ + elif test -r /opt/intel/compiler50/ia32/bin/iccvars.sh ; then + BOOST_JAM_TOOLSET_ROOT=/opt/intel/compiler50/ia32/ + fi fi if test -r ${BOOST_JAM_TOOLSET_ROOT}bin/iccvars.sh ; then # iccvars does not change LD_RUN_PATH. We adjust LD_RUN_PATH here in @@ -164,9 +175,11 @@ case $BOOST_JAM_TOOLSET in LD_RUN_PATH="${BOOST_JAM_TOOLSET_ROOT}lib:${LD_RUN_PATH}" fi export LD_RUN_PATH - . ${BOOST_JAM_TOOLSET_ROOT}bin/iccvars.sh + . ${BOOST_JAM_TOOLSET_ROOT}bin/iccvars.sh $ARCH + fi + if test -z "$BOOST_JAM_CC" ; then + BOOST_JAM_CC=icc fi - BOOST_JAM_CC=icc ;; vacpp) diff --git a/tools/build/src/engine/builtins.c b/tools/build/src/engine/builtins.c index daa73db9a..162c3d295 100644 --- a/tools/build/src/engine/builtins.c +++ b/tools/build/src/engine/builtins.c @@ -759,8 +759,9 @@ static int has_wildcards( char const * const str ) static LIST * append_if_exists( LIST * list, OBJECT * file ) { - return file_query( file ) - ? list_push_back( list, object_copy( file ) ) + file_info_t * info = file_query( file ); + return info + ? list_push_back( list, object_copy( info->name ) ) : list ; } diff --git a/tools/build/src/engine/execunix.c b/tools/build/src/engine/execunix.c index 965e58011..297c00377 100644 --- a/tools/build/src/engine/execunix.c +++ b/tools/build/src/engine/execunix.c @@ -137,6 +137,9 @@ void exec_cmd LIST * shell ) { + struct sigaction ignore, saveintr, savequit; + sigset_t chldmask, savemask; + int const slot = get_free_cmdtab_slot(); int out[ 2 ]; int err[ 2 ]; @@ -203,6 +206,21 @@ void exec_cmd if ( globs.pipe_action ) fcntl( err[ EXECCMD_PIPE_READ ], F_SETFD, FD_CLOEXEC ); + /* ignore SIGINT and SIGQUIT */ + ignore.sa_handler = SIG_IGN; + sigemptyset(&ignore.sa_mask); + ignore.sa_flags = 0; + if (sigaction(SIGINT, &ignore, &saveintr) < 0) + return; + if (sigaction(SIGQUIT, &ignore, &savequit) < 0) + return; + + /* block SIGCHLD */ + sigemptyset(&chldmask); + sigaddset(&chldmask, SIGCHLD); + if (sigprocmask(SIG_BLOCK, &chldmask, &savemask) < 0) + return; + if ( ( cmdtab[ slot ].pid = vfork() ) == -1 ) { perror( "vfork" ); @@ -216,6 +234,11 @@ void exec_cmd /*****************/ int const pid = getpid(); + /* restore previous signals */ + sigaction(SIGINT, &saveintr, NULL); + sigaction(SIGQUIT, &savequit, NULL); + sigprocmask(SIG_SETMASK, &savemask, NULL); + /* Redirect stdout and stderr to pipes inherited from the parent. */ dup2( out[ EXECCMD_PIPE_WRITE ], STDOUT_FILENO ); dup2( globs.pipe_action ? err[ EXECCMD_PIPE_WRITE ] : @@ -236,7 +259,10 @@ void exec_cmd r_limit.rlim_max = globs.timeout; setrlimit( RLIMIT_CPU, &r_limit ); } - setpgid( pid, pid ); + if (0 != setpgid( pid, pid )) { + perror("setpgid(child)"); + /* exit( EXITBAD ); */ + } execvp( argv[ 0 ], (char * *)argv ); perror( "execvp" ); _exit( 127 ); @@ -245,7 +271,9 @@ void exec_cmd /******************/ /* Parent process */ /******************/ - setpgid( cmdtab[ slot ].pid, cmdtab[ slot ].pid ); + + /* redundant call, ignore return value */ + setpgid(cmdtab[ slot ].pid, cmdtab[ slot ].pid); /* Parent not need the write pipe ends used by the child. */ close( out[ EXECCMD_PIPE_WRITE ] ); @@ -281,6 +309,11 @@ void exec_cmd /* Save input data into the selected running commands table slot. */ cmdtab[ slot ].func = func; cmdtab[ slot ].closure = closure; + + /* restore previous signals */ + sigaction(SIGINT, &saveintr, NULL); + sigaction(SIGQUIT, &savequit, NULL); + sigprocmask(SIG_SETMASK, &savemask, NULL); } #undef EXECCMD_PIPE_READ @@ -448,10 +481,17 @@ void exec_wait() /* select() will wait for I/O on a descriptor, a signal, or timeout. */ { + /* disable child termination signals while in select */ int ret; + sigset_t sigmask; + sigemptyset(&sigmask); + sigaddset(&sigmask, SIGCHLD); + sigprocmask(SIG_BLOCK, &sigmask, NULL); while ( ( ret = select( fd_max + 1, &fds, 0, 0, ptv ) ) == -1 ) if ( errno != EINTR ) break; + /* restore original signal mask by unblocking sigchld */ + sigprocmask(SIG_UNBLOCK, &sigmask, NULL); if ( ret <= 0 ) continue; } diff --git a/tools/build/src/engine/fileunix.c b/tools/build/src/engine/fileunix.c index bff3a42f5..e8ea51507 100644 --- a/tools/build/src/engine/fileunix.c +++ b/tools/build/src/engine/fileunix.c @@ -80,7 +80,10 @@ struct ar_hdr /* archive file member header - printable ascii */ }; #endif -#if defined( OS_QNX ) || defined( OS_BEOS ) || defined( OS_MPEIX ) +#if defined( OS_QNX ) || \ + defined( OS_BEOS ) || \ + defined( OS_HAIKU ) || \ + defined( OS_MPEIX ) # define NO_AR # define HAVE_AR #endif diff --git a/tools/build/src/engine/function.c b/tools/build/src/engine/function.c index 690855e14..d9ad754e4 100644 --- a/tools/build/src/engine/function.c +++ b/tools/build/src/engine/function.c @@ -228,9 +228,18 @@ STACK * stack_global() return &result; } +struct list_alignment_helper +{ + char ch; + LIST * l; +}; + +#define LISTPTR_ALIGN_BASE ( sizeof( struct list_alignment_helper ) - sizeof( LIST * ) ) +#define LISTPTR_ALIGN ( ( LISTPTR_ALIGN_BASE > sizeof( LIST * ) ) ? sizeof( LIST * ) : LISTPTR_ALIGN_BASE ) + static void check_alignment( STACK * s ) { - assert( (size_t)s->data % sizeof( LIST * ) == 0 ); + assert( (size_t)s->data % LISTPTR_ALIGN == 0 ); } void * stack_allocate( STACK * s, int size ) diff --git a/tools/build/src/engine/jam.c b/tools/build/src/engine/jam.c index 1c80eec50..890d7672c 100644 --- a/tools/build/src/engine/jam.c +++ b/tools/build/src/engine/jam.c @@ -627,7 +627,8 @@ char *executable_path( char const * argv0 ) # include <stdlib.h> char * executable_path( char const * argv0 ) { - return strdup( getexecname() ); + const char * execname = getexecname(); + return execname ? strdup( execname ) : NULL; } #elif defined(__FreeBSD__) # include <sys/sysctl.h> diff --git a/tools/build/src/engine/jam.h b/tools/build/src/engine/jam.h index 497a5bfb1..2895906af 100644 --- a/tools/build/src/engine/jam.h +++ b/tools/build/src/engine/jam.h @@ -154,6 +154,11 @@ #define OSMINOR "OS=HPUX" #define OS_HPUX #endif +#ifdef __HAIKU__ + #define unix + #define OSMINOR "OS=HAIKU" + #define OS_HAIKU +#endif #ifdef __OPENNT #define unix #define OSMINOR "OS=INTERIX" @@ -370,7 +375,8 @@ #define OSPLAT "OSPLAT=MIPS" #endif -#ifdef __arm__ +#if defined( __arm__ ) || \ + defined( __aarch64__ ) #define OSPLAT "OSPLAT=ARM" #endif diff --git a/tools/build/src/engine/jambase.c b/tools/build/src/engine/jambase.c index b15282bc3..323ba1564 100644 --- a/tools/build/src/engine/jambase.c +++ b/tools/build/src/engine/jambase.c @@ -560,6 +560,18 @@ char *jambase[] = { "NOARSCAN ?= true ;\n", "STDHDRS ?= /boot/develop/headers/posix ;\n", "}\n", +"else if $(OS) = HAIKU\n", +"{\n", +"BINDIR ?= /boot/system/non-packaged/bin ;\n", +"CC ?= gcc ;\n", +"C++ ?= $(CC) ;\n", +"FORTRAN ?= \"\" ;\n", +"LIBDIR ?= /boot/system/non-packaged/lib ;\n", +"LINK ?= gcc ;\n", +"LINKLIBS ?= -lnetwork ;\n", +"NOARSCAN ?= true ;\n", +"STDHDRS ?= /boot/system/develop/headers/posix ;\n", +"}\n", "else if $(UNIX)\n", "{\n", "switch $(OS)\n", diff --git a/tools/build/src/engine/make1.c b/tools/build/src/engine/make1.c index 5a96dc4e5..390b4ccbe 100644 --- a/tools/build/src/engine/make1.c +++ b/tools/build/src/engine/make1.c @@ -593,8 +593,6 @@ static void make1c( state const * const pState ) TARGET * saved_includes; SETTINGS * s; - t->rescanned = 1; - /* Clean current includes. */ saved_includes = t->includes; t->includes = 0; diff --git a/tools/build/src/engine/modules/order.c b/tools/build/src/engine/modules/order.c index 3a83d3895..467322da0 100644 --- a/tools/build/src/engine/modules/order.c +++ b/tools/build/src/engine/modules/order.c @@ -77,7 +77,7 @@ void topological_sort( int * * graph, int num_vertices, int * result ) for ( i = 0; i < num_vertices; ++i ) colors[ i ] = white; - for ( i = 0; i < num_vertices; ++i ) + for ( i = num_vertices - 1; i >= 0; --i ) if ( colors[ i ] == white ) do_ts( graph, i, colors, &result ); diff --git a/tools/build/src/engine/rules.c b/tools/build/src/engine/rules.c index 7947c5507..eb35aa6df 100644 --- a/tools/build/src/engine/rules.c +++ b/tools/build/src/engine/rules.c @@ -63,7 +63,6 @@ static TARGET * get_target_includes( TARGET * const t ) i->name = object_copy( t->name ); i->boundname = object_copy( i->name ); i->flags |= T_FLAG_NOTFILE | T_FLAG_INTERNAL; - i->original_target = t; t->includes = i; } return t->includes; diff --git a/tools/build/src/engine/rules.h b/tools/build/src/engine/rules.h index f3a020bb8..d118b3149 100644 --- a/tools/build/src/engine/rules.h +++ b/tools/build/src/engine/rules.h @@ -125,6 +125,16 @@ struct _target ACTIONS * actions; /* rules to execute, if any */ SETTINGS * settings; /* variables to define */ + TARGETS * depends; /* dependencies */ + TARGETS * dependants; /* the inverse of dependencies */ + TARGETS * rebuilds; /* targets that should be force-rebuilt + * whenever this one is + */ + TARGET * includes; /* internal includes node */ + + timestamp time; /* update time */ + timestamp leaf; /* update time of leaf sources */ + short flags; /* status info */ #define T_FLAG_TEMP 0x0001 /* TEMPORARY applied */ @@ -164,18 +174,6 @@ struct _target #define T_BIND_PARENTS 2 /* using parent's timestamp */ #define T_BIND_EXISTS 3 /* real file, timestamp valid */ - TARGETS * depends; /* dependencies */ - TARGETS * dependants; /* the inverse of dependencies */ - TARGETS * rebuilds; /* targets that should be force-rebuilt - * whenever this one is - */ - TARGET * includes; /* internal includes node */ - TARGET * original_target; /* original_target->includes = this */ - char rescanned; - - timestamp time; /* update time */ - timestamp leaf; /* update time of leaf sources */ - char fate; /* make0()'s diagnosis */ #define T_FATE_INIT 0 /* nothing done to target */ @@ -212,12 +210,12 @@ struct _target #define T_MAKE_SEMAPHORE 5 /* Special target type for semaphores */ #endif + char status; /* exec_cmd() result */ + #ifdef OPT_SEMAPHORE TARGET * semaphore; /* used in serialization */ #endif - char status; /* exec_cmd() result */ - int asynccnt; /* child deps outstanding */ TARGETS * parents; /* used by make1() for completion */ TARGET * scc_root; /* used by make to resolve cyclic includes |