diff options
| author | klarlund <klarlund@gmail.com> | 2008-03-28 02:48:48 +0000 |
|---|---|---|
| committer | klarlund <klarlund@gmail.com> | 2008-03-28 02:48:48 +0000 |
| commit | d6532ae1d997a31884a67c51ec2bc75756242eed (patch) | |
| tree | 995faab42744ddcb755996469397b865b88cc048 /include_server/test_data | |
| download | distcc-git-d6532ae1d997a31884a67c51ec2bc75756242eed.tar.gz | |
Initial submission @6805748, not fully baked yet.
Diffstat (limited to 'include_server/test_data')
62 files changed, 1572 insertions, 0 deletions
diff --git a/include_server/test_data/abc_post.c b/include_server/test_data/abc_post.c new file mode 100755 index 0000000..5934e6c --- /dev/null +++ b/include_server/test_data/abc_post.c @@ -0,0 +1 @@ +/* Used by computed_includes.c */ diff --git a/include_server/test_data/abc_pre.c b/include_server/test_data/abc_pre.c new file mode 100755 index 0000000..c9e98a6 --- /dev/null +++ b/include_server/test_data/abc_pre.c @@ -0,0 +1 @@ +/* Used by computed_includes.c */ diff --git a/include_server/test_data/computed_includes.c b/include_server/test_data/computed_includes.c new file mode 100755 index 0000000..11b18f5 --- /dev/null +++ b/include_server/test_data/computed_includes.c @@ -0,0 +1,10 @@ +#define A "p1.h" +#include A + +#ifdef C + #define m(a) <a##_pre.c> +#else + #define m(a) <a##_post.c> +#endif +#include m(abc) // <abc_post.c> + diff --git a/include_server/test_data/contains_abs_include.c b/include_server/test_data/contains_abs_include.c new file mode 100644 index 0000000..a442e31 --- /dev/null +++ b/include_server/test_data/contains_abs_include.c @@ -0,0 +1 @@ +#include "/love/of/my/life" diff --git a/include_server/test_data/dbar/dbar1/bar.h b/include_server/test_data/dbar/dbar1/bar.h new file mode 100644 index 0000000..91bb28c --- /dev/null +++ b/include_server/test_data/dbar/dbar1/bar.h @@ -0,0 +1 @@ +#define dbar_dbar1_bar_h diff --git a/include_server/test_data/dbar/foo.h b/include_server/test_data/dbar/foo.h new file mode 100755 index 0000000..692ba26 --- /dev/null +++ b/include_server/test_data/dbar/foo.h @@ -0,0 +1 @@ +#include "foo2.h" diff --git a/include_server/test_data/dfoo/foo.h b/include_server/test_data/dfoo/foo.h new file mode 100755 index 0000000..018d262 --- /dev/null +++ b/include_server/test_data/dfoo/foo.h @@ -0,0 +1,2 @@ +#include "foo2.h" +#include "../dbar/dbar1/bar.h" diff --git a/include_server/test_data/dfoo/foo2.h b/include_server/test_data/dfoo/foo2.h new file mode 100644 index 0000000..9db0ee1 --- /dev/null +++ b/include_server/test_data/dfoo/foo2.h @@ -0,0 +1,3 @@ +#define dfoo_foo2_h +// The include below is not valid syntax and should be ignored. +#include ../dbar/foo.h diff --git a/include_server/test_data/dfoo/i_am_perhaps_a_directory.h b/include_server/test_data/dfoo/i_am_perhaps_a_directory.h new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/include_server/test_data/dfoo/i_am_perhaps_a_directory.h diff --git a/include_server/test_data/dfoo/include_dotdot_foo b/include_server/test_data/dfoo/include_dotdot_foo new file mode 100644 index 0000000..ec77c1d --- /dev/null +++ b/include_server/test_data/dfoo/include_dotdot_foo @@ -0,0 +1 @@ +#include "../foo" diff --git a/include_server/test_data/dfoo/include_next_foo.h b/include_server/test_data/dfoo/include_next_foo.h new file mode 100755 index 0000000..caf8d79 --- /dev/null +++ b/include_server/test_data/dfoo/include_next_foo.h @@ -0,0 +1 @@ +#include_next <foo.h> diff --git a/include_server/test_data/dfoo/stat_triggers.h b/include_server/test_data/dfoo/stat_triggers.h new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/include_server/test_data/dfoo/stat_triggers.h diff --git a/include_server/test_data/distcc/README b/include_server/test_data/distcc/README new file mode 100644 index 0000000..5474801 --- /dev/null +++ b/include_server/test_data/distcc/README @@ -0,0 +1 @@ +This is just part of the distcc code, used for testing. diff --git a/include_server/test_data/distcc/src/bulk.h b/include_server/test_data/distcc/src/bulk.h new file mode 100644 index 0000000..7f37109 --- /dev/null +++ b/include_server/test_data/distcc/src/bulk.h @@ -0,0 +1,51 @@ +/* -*- c-file-style: "java"; indent-tabs-mode: nil; fill-column: 78; -*- + * + * distcc -- A simple distributed compiler system + * + * Copyright (C) 2002, 2003, 2004 by Martin Pool <mbp@samba.org> + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * USA + */ + +int dcc_r_file(int ifd, const char *filename, unsigned, + enum dcc_compress); +int dcc_r_fifo(int ifd, const char *fifo_name, size_t len); + +int dcc_x_file(int ofd, const char *fname, const char *token, + enum dcc_compress compression, + off_t *); + +int dcc_r_file_timed(int ifd, const char *fname, unsigned size, + enum dcc_compress); + +int dcc_r_token_file(int ifd, + const char *token, + const char *fname, + enum dcc_compress compr); + +int dcc_open_read(const char *fname, int *ifd, off_t *fsize); +int dcc_copy_file_to_fd(const char *in_fname, int out_fd); + +/* clirpc.c */ +int dcc_x_many_files(int ofd, + unsigned int n_files, + char **fnames); + +/* srvrpc.c */ +int dcc_r_many_files(int in_fd, + const char *dirname, + enum dcc_compress compr); + diff --git a/include_server/test_data/distcc/src/compile.h b/include_server/test_data/distcc/src/compile.h new file mode 100644 index 0000000..6876bab --- /dev/null +++ b/include_server/test_data/distcc/src/compile.h @@ -0,0 +1,38 @@ +/* -*- c-file-style: "java"; indent-tabs-mode: nil -*- + * + * distcc -- A simple distributed compiler system + * + * Copyright (C) 2002, 2003 by Martin Pool <mbp@samba.org> + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * USA + */ + +/* remote.c */ +int dcc_compile_remote(char **argv, + char *input_fname, + char *cpp_fname, + char **file_names, + char *output_fname, + char *deps_fname, + char *server_stderr_fname, + pid_t cpp_pid, + int local_cpu_lock_fd, + struct dcc_hostdef *host, + int *status); + +int dcc_build_somewhere_timed(char *argv[], + int sg_level, + int *status); diff --git a/include_server/test_data/distcc/src/config.h b/include_server/test_data/distcc/src/config.h new file mode 100644 index 0000000..975565e --- /dev/null +++ b/include_server/test_data/distcc/src/config.h @@ -0,0 +1,256 @@ +/* src/config.h. Generated by configure. */ +/* src/config.h.in. Generated from configure.ac by autoheader. */ + +/* Use getaddrinfo(), getnameinfo(), etc */ +/* #undef ENABLE_RFC2553 */ + +/* Your gnu-style host triple */ +#define GNU_HOST "x86_64-unknown-linux-gnu" + +/* Define to 1 if you have the <alloca.h> header file. */ +#define HAVE_ALLOCA_H 1 + +/* Define to 1 if you have the <arpa/nameser.h> header file. */ +#define HAVE_ARPA_NAMESER_H 1 + +/* Define to 1 if you have the `asprintf' function. */ +#define HAVE_ASPRINTF 1 + +/* define if vsnprintf is C99 compliant */ +#define HAVE_C99_VSNPRINTF 1 + +/* Define to 1 if you have the <ctype.h> header file. */ +#define HAVE_CTYPE_H 1 + +/* Define to 1 if you have the declaration of `asprintf', and to 0 if you + don't. */ +#define HAVE_DECL_ASPRINTF 1 + +/* Define to 1 if you have the declaration of `snprintf', and to 0 if you + don't. */ +#define HAVE_DECL_SNPRINTF 1 + +/* Define to 1 if you have the declaration of `strndup', and to 0 if you + don't. */ +#define HAVE_DECL_STRNDUP 1 + +/* Define to 1 if you have the declaration of `vasprintf', and to 0 if you + don't. */ +#define HAVE_DECL_VASPRINTF 1 + +/* Define to 1 if you have the declaration of `vsnprintf', and to 0 if you + don't. */ +#define HAVE_DECL_VSNPRINTF 1 + +/* Define to 1 if you have the <float.h> header file. */ +#define HAVE_FLOAT_H 1 + +/* Define to 1 if you have the `flock' function. */ +#define HAVE_FLOCK 1 + +/* Define to 1 if you have the `getaddrinfo' function. */ +#define HAVE_GETADDRINFO 1 + +/* Define to 1 if you have the `getcwd' function. */ +#define HAVE_GETCWD 1 + +/* Define to 1 if you have the `geteuid' function. */ +#define HAVE_GETEUID 1 + +/* Define to 1 if you have the `getloadavg' function. */ +#define HAVE_GETLOADAVG 1 + +/* Define to 1 if you have the `getnameinfo' function. */ +#define HAVE_GETNAMEINFO 1 + +/* Define to 1 if you have the `getrusage' function. */ +#define HAVE_GETRUSAGE 1 + +/* Define to 1 if you have the `gettimeofday' function. */ +#define HAVE_GETTIMEOFDAY 1 + +/* Define to 1 if you have the `getuid' function. */ +#define HAVE_GETUID 1 + +/* Define to 1 if you have the `getpagesize' function. */ +#define HAVE_GETPAGESIZE 1 + +/* Define to 1 if you have the `getwd' function. */ +#define HAVE_GETWD 1 + +/* Define to 1 if you have the `hstrerror' function. */ +#define HAVE_HSTRERROR 1 + +/* Define to 1 if you have the `inet_ntoa' function. */ +#define HAVE_INET_NTOA 1 + +/* Define to 1 if you have the `inet_ntop' function. */ +#define HAVE_INET_NTOP 1 + +/* Define to 1 if you have the <inttypes.h> header file. */ +#define HAVE_INTTYPES_H 1 + +/* Define to 1 if the system has the type `in_addr_t'. */ +#define HAVE_IN_ADDR_T 1 + +/* Define to 1 if the system has the type `in_port_t'. */ +#define HAVE_IN_PORT_T 1 + +/* Define to 1 if you have the `lockf' function. */ +#define HAVE_LOCKF 1 + +/* Define to 1 if you have the `mcheck' function. */ +#define HAVE_MCHECK 1 + +/* Define to 1 if you have the <mcheck.h> header file. */ +#define HAVE_MCHECK_H 1 + +/* Define to 1 if you have the <memory.h> header file. */ +#define HAVE_MEMORY_H 1 + +/* Define to 1 if you have the `mmap' function. */ +#define HAVE_MMAP 1 + +/* Define to 1 if you have the <netinet/in.h> header file. */ +#define HAVE_NETINET_IN_H 1 + +/* Define to 1 if you have the <resolv.h> header file. */ +#define HAVE_RESOLV_H 1 + +/* Define to 1 if you have the `sendfile' function. */ +#define HAVE_SENDFILE 1 + +/* Define to 1 if you have the `setgroups' function. */ +#define HAVE_SETGROUPS 1 + +/* Define to 1 if you have the `setreuid' function. */ +#define HAVE_SETREUID 1 + +/* Define to 1 if you have the `setsid' function. */ +#define HAVE_SETSID 1 + +/* Define to 1 if you have the `setuid' function. */ +#define HAVE_SETUID 1 + +/* Define to 1 if you have the `snprintf' function. */ +#define HAVE_SNPRINTF 1 + +/* define if you have struct sockaddr_storage */ +#define HAVE_SOCKADDR_STORAGE 1 + +/* define if you have a working socketpair */ +#define HAVE_SOCKETPAIR 1 + +/* Define to 1 if you have the <stdint.h> header file. */ +#define HAVE_STDINT_H 1 + +/* Define to 1 if you have the <stdlib.h> header file. */ +#define HAVE_STDLIB_H 1 + +/* Define to 1 if you have the `strerror' function. */ +#define HAVE_STRERROR 1 + +/* Define to 1 if you have the <strings.h> header file. */ +#define HAVE_STRINGS_H 1 + +/* Define to 1 if you have the <string.h> header file. */ +#define HAVE_STRING_H 1 + +/* Define to 1 if you have the `strlcpy' function. */ +/* #undef HAVE_STRLCPY */ + +/* Define to 1 if you have the `strndup' function. */ +#define HAVE_STRNDUP 1 + +/* Define to 1 if you have the `strsignal' function. */ +#define HAVE_STRSIGNAL 1 + +/* Define to 1 if you have the <sys/loadavg.h> header file. */ +/* #undef HAVE_SYS_LOADAVG_H */ + +/* Define to 1 if you have the <sys/mman.h> header file. */ +#define HAVE_SYS_MMAN_H 1 + +/* Define to 1 if you have the <sys/resource.h> header file. */ +#define HAVE_SYS_RESOURCE_H 1 + +/* Define to 1 if you have the <sys/select.h> header file. */ +#define HAVE_SYS_SELECT_H 1 + +/* Define to 1 if you have the <sys/sendfile.h> header file. */ +#define HAVE_SYS_SENDFILE_H 1 + +/* Define to 1 if you have the <sys/signal.h> header file. */ +#define HAVE_SYS_SIGNAL_H 1 + +/* Define to 1 if you have the <sys/socket.h> header file. */ +#define HAVE_SYS_SOCKET_H 1 + +/* Define to 1 if you have the <sys/stat.h> header file. */ +#define HAVE_SYS_STAT_H 1 + +/* Define to 1 if you have the <sys/types.h> header file. */ +#define HAVE_SYS_TYPES_H 1 + +/* Define to 1 if you have the <unistd.h> header file. */ +#define HAVE_UNISTD_H 1 + +/* Define if your cpp has vararg macros */ +#define HAVE_VARARG_MACROS + +/* Define to 1 if you have the `vasprintf' function. */ +#define HAVE_VASPRINTF 1 + +/* Whether __va_copy() is available */ +#define HAVE_VA_COPY 1 + +/* Define to 1 if you have the `vsnprintf' function. */ +#define HAVE_VSNPRINTF 1 + +/* Define to 1 if you have the `wait3' function. */ +#define HAVE_WAIT3 1 + +/* Define to 1 if you have the `wait4' function. */ +#define HAVE_WAIT4 1 + +/* Define to 1 if you have the `waitpid' function. */ +#define HAVE_WAITPID 1 + +/* Define if MAP_FAILED constant not available */ +#define MAP_FAILED (void *)-1L + +/* Define to the address where bug reports for this package should be sent. */ +#define PACKAGE_BUGREPORT "distcc-pump@google.com" + +/* Define to the full name of this package. */ +#define PACKAGE_NAME "distcc" + +/* Define to the full name and version of this package. */ +#define PACKAGE_STRING "distcc 2.18.3-17gg-pump6" + +/* Define to the one symbol short name of this package. */ +#define PACKAGE_TARNAME "distcc" + +/* Define to the version of this package. */ +#define PACKAGE_VERSION "2.18.3-17gg-pump6" + +/* Define as the return type of signal handlers (`int' or `void'). */ +#define RETSIGTYPE void + +/* Define to 1 if you have the ANSI C header files. */ +#define STDC_HEADERS 1 + +/* Use GNOME */ +/* #undef WITH_GNOME */ + +/* Use GTK+ */ +/* #undef WITH_GTK */ + +/* Define to `__inline__' or `__inline' if that's what the C compiler + calls it, or to nothing if 'inline' is not supported under any name. */ +#ifndef __cplusplus +/* #undef inline */ +#endif + +/* type to use in place of socklen_t if not defined */ +/* #undef socklen_t */ diff --git a/include_server/test_data/distcc/src/distcc.c b/include_server/test_data/distcc/src/distcc.c new file mode 100644 index 0000000..2bf4b52 --- /dev/null +++ b/include_server/test_data/distcc/src/distcc.c @@ -0,0 +1,221 @@ +/* -*- c-file-style: "java"; indent-tabs-mode: nil -*- + * + * distcc -- A simple distributed compiler system + * + * Copyright (C) 2002, 2003, 2004 by Martin Pool <mbp@samba.org> + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * USA + */ + + + /* 4: The noise of a multitude in the + * mountains, like as of a great people; a + * tumultuous noise of the kingdoms of nations + * gathered together: the LORD of hosts + * mustereth the host of the battle. + * -- Isaiah 13 */ + + + +#include "config.h" + +#include <stdio.h> +#include <stdlib.h> +#include <unistd.h> +#include <string.h> +#include <fcntl.h> +#include <errno.h> +#include <signal.h> + +#include "distcc.h" +#include "trace.h" +#include "exitcode.h" +#include "util.h" +#include "hosts.h" +#include "bulk.h" +#include "implicit.h" +#include "compile.h" +#include "emaillog.h" + + +/* Name of this program, for trace.c */ +const char *rs_program_name = "distcc"; + + +/** + * @file + * + * Entry point for the distcc client. + * + * There are three methods of use for distcc: explicit (distcc gcc -c + * foo.c), implicit (distcc -c foo.c) and masqueraded (gcc -c foo.c, + * where gcc is really a link to distcc). + * + * Detecting these is relatively easy by examining the first one or + * two words of the command. We also need to make sure that when we + * go to run the compiler, we run the one intended by the user. + * + * In particular, for masqueraded mode, we want to make sure that we + * don't invoke distcc recursively. + **/ + +static void dcc_show_usage(void) +{ + dcc_show_version("distcc"); + printf( +"Usage:\n" +" distcc [COMPILER] [compile options] -o OBJECT -c SOURCE\n" +" distcc --help\n" +"\n" +"Options:\n" +" COMPILER defaults to \"cc\"\n" +" --help explain usage and exit\n" +" --version show version and exit\n" +"\n" +"Environment variables:\n" +" See the manual page for a complete list.\n" +" DISTCC_VERBOSE=1 give debug messages\n" +" DISTCC_LOG send messages to file, not stderr\n" +" DISTCC_SSH command to run to open SSH connections\n" +" DISTCC_DIR directory for host list and locks\n" +"\n" +"Server specification:\n" +"A list of servers is taken from the environment variable $DISTCC_HOSTS, or\n" +"$DISTCC_DIR/hosts, or ~/.distcc/hosts, or %s/distcc/hosts.\n" +"Each host can be given in any of these forms, see the manual for details:\n" +"\n" +" localhost run in place\n" +" HOST TCP connection, port %d\n" +" HOST:PORT TCP connection, specified port\n" +" @HOST SSH connection\n" +" USER@HOST SSH connection to specified host\n" +" --randomize Randomize the server list before execution\n" +"\n" +"distcc distributes compilation jobs across volunteer machines running\n" +"distccd. Jobs that cannot be distributed, such as linking or \n" +"preprocessing are run locally. distcc should be used with make's -jN\n" +"option to execute in parallel on several machines.\n", + SYSCONFDIR, + DISTCC_DEFAULT_PORT); +} + + +static RETSIGTYPE dcc_client_signalled (int whichsig) +{ + signal(whichsig, SIG_DFL); + +#ifdef HAVE_STRSIGNAL + rs_log_info("%s", strsignal(whichsig)); +#else + rs_log_info("terminated by signal %d", whichsig); +#endif + + dcc_cleanup_tempfiles_from_signal_handler(); + + raise(whichsig); + +} + + +static void dcc_client_catch_signals(void) +{ + signal(SIGTERM, &dcc_client_signalled); + signal(SIGINT, &dcc_client_signalled); + signal(SIGHUP, &dcc_client_signalled); +} + + + +/** + * distcc client entry point. + * + * This is typically called by make in place of the real compiler. + * + * Performs basic setup and checks for distcc arguments, and then kicks off + * dcc_build_somewhere(). + **/ +int main(int argc, char **argv) +{ + int status, sg_level, tweaked_path = 0; + char **compiler_args; + char *compiler_name; + int ret; + + dcc_client_catch_signals(); + atexit(dcc_cleanup_tempfiles); + atexit(dcc_remove_state_file); + + dcc_set_trace_from_env(); + dcc_setup_log_email(); + + dcc_trace_version(); + + compiler_name = (char *) dcc_find_basename(argv[0]); + + /* Ignore SIGPIPE; we consistently check error codes and will + * see the EPIPE. */ + dcc_ignore_sigpipe(1); + + sg_level = dcc_recursion_safeguard(); + + rs_trace("compiler name is \"%s\"", compiler_name); + + if (strstr(compiler_name, "distcc") != NULL) { + /* Either "distcc -c hello.c" or "distcc gcc -c hello.c" */ + if (argc <= 1 || !strcmp(argv[1], "--help")) { + dcc_show_usage(); + ret = 0; + goto out; + } + if (!strcmp(argv[1], "--version")) { + dcc_show_version("distcc"); + ret = 0; + goto out; + } + + dcc_find_compiler(argv, &compiler_args); + /* compiler_args is now respectively either "cc -c hello.c" or + * "gcc -c hello.c" */ + +#if 0 + /* I don't think we need to call this: if we reached this + * line, our invocation name is something like 'distcc', and + * that's never a problem for masquerading loops. */ + if ((ret = dcc_trim_path(compiler_name)) != 0) + goto out; +#endif + } else { + /* Invoked as "cc -c hello.c", with masqueraded path */ + if ((ret = dcc_support_masquerade(argv, compiler_name, + &tweaked_path)) != 0) + goto out; + + dcc_copy_argv(argv, &compiler_args, 0); + compiler_args[0] = compiler_name; + } + + if (sg_level - tweaked_path > 0) { + rs_log_crit("distcc seems to have invoked itself recursively!"); + ret = EXIT_RECURSION; + goto out; + } + + ret = dcc_build_somewhere_timed(compiler_args, sg_level, &status); + + out: + dcc_maybe_send_email(); + dcc_exit(ret); +} diff --git a/include_server/test_data/distcc/src/distcc.h b/include_server/test_data/distcc/src/distcc.h new file mode 100644 index 0000000..c0686a7 --- /dev/null +++ b/include_server/test_data/distcc/src/distcc.h @@ -0,0 +1,336 @@ +/* -*- c-file-style: "java"; indent-tabs-mode: nil; fill-column: 78 -*- + * + * distcc -- A simple distributed compiler system + * + * Copyright (C) 2002, 2003, 2004 by Martin Pool + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * USA + */ + +/* distcc.h -- common internal-use header file */ + +#include <sys/types.h> + + +#ifdef NORETURN +/* nothing */ +#elif defined(__GNUC__) +# define NORETURN __attribute__((noreturn)) +#elif defined(__LCLINT__) +# define NORETURN /*@noreturn@*/ x +#else /* !__GNUC__ && !__LCLINT__ */ +# define NORETURN +#endif /* !__GNUC__ && !__LCLINT__ */ + +#ifdef UNUSED +/* nothing */ +#elif defined(__GNUC__) +# define UNUSED(x) UNUSED_ ## x __attribute__((unused)) +#elif defined(__LCLINT__) +# define UNUSED(x) /*@unused@*/ x +#else /* !__GNUC__ && !__LCLINT__ */ +# define UNUSED(x) x +#endif /* !__GNUC__ && !__LCLINT__ */ + + +#if defined(__GNUC__) && ((__GNUC__ > 3) || (__GNUC__ == 3 && __GNUC_MINOR__ > 3)) +/* This works on Gentoo's (patched?) gcc 3.3.3 but not 3.2.3, and not Debian's + * 3.3.4. It should be standard on 3.4. */ +# define WARN_UNUSED __attribute__((warn_unused_result)) +#else +# define WARN_UNUSED +#endif + + +#ifndef TRUE +# define TRUE 1 +# define FALSE 0 +#endif + + +struct dcc_hostdef; + + + +#include "state.h" + + + + +enum dcc_compress { + /* wierd values to catch errors */ + DCC_COMPRESS_NONE = 69, + DCC_COMPRESS_LZO1X +}; + +enum dcc_cpp_where { + /* wierd values to catch errors */ + DCC_CPP_ON_CLIENT = 42, + DCC_CPP_ON_SERVER +}; + +enum dcc_protover { + DCC_VER_1 = 1, /**< vanilla */ + DCC_VER_2 = 2, /**< LZO sprinkles */ + DCC_VER_3 = 3 /**< server-side cpp */ +}; + + + + + +int str_endswith(const char *tail, const char *tiger); + + + + +/* A macro so that we get the right __FUNCTION__ in the trace message. + * + * We condition on rs_trace_enabled so that we don't do the to-string + * conversion unless the user will actually see the result, because it's a + * little expensive. */ +#define dcc_trace_argv(_message, _argv) \ + if (rs_trace_enabled()) { \ + char *_astr; \ + _astr = dcc_argv_tostr(_argv); \ + rs_trace("%s: %s", _message, _astr); \ + free(_astr); \ + } else {} + + +/* help.c */ +int dcc_trace_version(void); +int dcc_show_version(const char *prog); + + +/* hosts.c */ +int dcc_parse_hosts_env(struct dcc_hostdef **ret_list, + int *ret_nhosts); +int dcc_parse_hosts(const char *where, const char *source_name, + struct dcc_hostdef **ret_list, + int *ret_nhosts); + +/* ncpu.c */ +int dcc_ncpus(int *); + +/* ssh.c */ +int dcc_ssh_connect(char *ssh_cmd, char *user, + char *machine, char *path, + int *f_in, int *f_out, + pid_t *ssh_pid); + +/* safeguard.c */ +int dcc_increment_safeguard(void); +int dcc_recursion_safeguard(void); + +/* clirpc.c */ +int dcc_x_req_header(int fd, + enum dcc_protover protover); +int dcc_x_argv(int fd, char **argv); +int dcc_x_cwd(int fd); + +/* srvrpc.c */ +int dcc_r_cwd(int ifd, char **cwd); + +/* remote.c */ +int dcc_send_job_corked(int net_fd, + char **argv, + pid_t cpp_pid, + int *status, + const char *, + const char *cpp_fname, + struct dcc_hostdef *); + +int dcc_retrieve_results(int net_fd, + int *status, + const char *output_fname, + const char *deps_fname, + const char *server_stderr_fname, + struct dcc_hostdef *); + +/* climasq.c */ +int dcc_support_masquerade(char *argv[], char *progname, int *); + + +/* backoff.c */ +int dcc_enjoyed_host(const struct dcc_hostdef *host); +int dcc_disliked_host(const struct dcc_hostdef *host); +int dcc_remove_disliked(struct dcc_hostdef **hostlist); + + + +#define DISTCC_DEFAULT_PORT 3632 +#define DISTCC_DEFAULT_STATS_ENABLED 0 +#define DISTCC_DEFAULT_STATS_PORT 3633 + + + +#ifndef WAIT_ANY +# define WAIT_ANY (-1) +#endif + + +/* If --enable-rfc2553 was given, then we will try to enable compile-time IPv6 + * support. This means we must have a sockaddr_storage large enough to hold + * IPv6 addresses. If not, we'll just use a plain sockaddr, which is more + * likely to compile correctly. */ +#ifdef ENABLE_RFC2553 +# ifndef HAVE_SOCKADDR_STORAGE +# error You can't use RFC2553 because you don't have a sockaddr_storage type +# endif /* HAVE_SOCKADDR_STORAGE */ +# define dcc_sockaddr_storage sockaddr_storage +#else /* !ENABLE_RFC2553 */ +# define dcc_sockaddr_storage sockaddr +#endif /* !ENABLE_RFC2553 */ + +#ifndef O_BINARY +# define O_BINARY 0 +#endif + + +void dcc_set_trace_from_env(void); + + +/* compress.c */ +int dcc_r_bulk_lzo1x(int outf_fd, + int in_fd, + unsigned in_len); + + + +int dcc_compress_file_lzo1x(int in_fd, + size_t in_len, + char **out_buf, + size_t *out_len); + +int dcc_compress_lzo1x_alloc(const char *in_buf, + size_t in_len, + char **out_buf_ret, + size_t *out_len_ret); + + + +/* bulk.h */ +void dcc_calc_rate(off_t size_out, + struct timeval *before, + struct timeval *after, + double *secs, + double *rate); + +/* arg.c */ +int dcc_set_action_opt(char **, const char *); +int dcc_set_output(char **, char *); +int dcc_set_input(char **, char *); +int dcc_scan_args(char *argv[], /*@out@*/ /*@relnull@*/ char **orig_o, + char **orig_i, char ***ret_newargv); + +/* argutil.c */ +unsigned int dcc_argv_len(char **a); +int dcc_argv_search(char **a, const char *); +int dcc_copy_argv(char **argv, char ***out_argv, int extra_args); +int dcc_argv_append(char **argv, char *toadd); +char *dcc_argv_tostr(char **a); +void dcc_free_argv(char **argv); + +/* tempfile.c */ +int dcc_get_tempdir(const char **); +int dcc_make_tmpnam(const char *, const char *suffix, char **); +int dcc_get_new_tmpdir(char **tmpdir); +int dcc_mk_tmpdir(const char *path); +int dcc_mkdir(const char *path); + +int dcc_get_lock_dir(char **path_ret) WARN_UNUSED; +int dcc_get_state_dir(char **path_ret) WARN_UNUSED; +int dcc_get_top_dir(char **path_ret) WARN_UNUSED; +int dcc_get_tmp_top(const char **p_ret) WARN_UNUSED; + +int dcc_mk_tmp_ancestor_dirs(const char* file); + +/* cleanup.c */ +void dcc_cleanup_tempfiles(void); +void dcc_cleanup_tempfiles_from_signal_handler(void); +int dcc_add_cleanup(const char *filename) WARN_UNUSED; + +/* strip.c */ +int dcc_strip_local_args(char **from, char ***out_argv); +int dcc_strip_dasho(char **from, char ***out_argv); + +/* cpp.c */ +int dcc_cpp_maybe(char **argv, char *input_fname, char **cpp_fname, + pid_t *cpp_pid); + +/* filename.c */ +int dcc_is_source(const char *sfile); +int dcc_is_preprocessed(const char *sfile); +int dcc_is_object(const char *filename); +int dcc_source_needs_local(const char *); + +char * dcc_find_extension(char *sfile); +int dcc_output_from_source(const char *sfile, const char *out_extn, + char **ofile); + +const char * dcc_preproc_exten(const char *e); +const char * dcc_find_basename(const char *sfile); +void dcc_truncate_to_dirname(char *file); + + +/* io.c */ + +int dcc_writex(int fd, const void *buf, size_t len); + +int dcc_r_token(int ifd, char *token); + +int dcc_readx(int fd, void *buf, size_t len); +int dcc_pump_sendfile(int ofd, int ifd, size_t n); +int dcc_r_str_alloc(int fd, unsigned len, char **buf); + +int tcp_cork_sock(int fd, int corked); +int dcc_close(int fd); +int dcc_want_mmap(void); + + +int dcc_select_for_write(int fd, int timeout); +int dcc_select_for_read(int fd, int timeout); + +/* loadfile.c */ +int dcc_load_file_string(const char *filename, + char **retbuf); + + +extern const int dcc_connect_timeout, dcc_io_timeout; + + +/* pump.c */ +int dcc_r_bulk(int ofd, + int ifd, + unsigned f_size, + enum dcc_compress compression); + +int dcc_pump_readwrite(int ofd, int ifd, size_t n); + +/* mapfile.c */ +int dcc_map_input_file(int in_fd, off_t in_size, char **buf_ret); + +/* XXX: Kind of kludgy, we should do dynamic allocation. But this will do for + * now. */ +#ifndef MAXPATHLEN +#define MAXPATHLEN 4096 +#endif + + +#ifndef WCOREDUMP +# define WCOREDUMP(status) 0 +#endif diff --git a/include_server/test_data/distcc/src/emaillog.h b/include_server/test_data/distcc/src/emaillog.h new file mode 100644 index 0000000..3b1c33a --- /dev/null +++ b/include_server/test_data/distcc/src/emaillog.h @@ -0,0 +1,10 @@ +#ifndef DCC_EMAILLOG_H +#define DCC_EMAILLOG_H + +#define DCC_EMAILLOG_WHOM_TO_BLAME "distcc-pump-errors@google.com" +void dcc_please_send_email(void); +void dcc_setup_log_email(void); +void dcc_maybe_send_email(void); +int dcc_add_file_to_log_email(const char *description, const char *fname); + +#endif /* EMAILLOG_H */ diff --git a/include_server/test_data/distcc/src/exitcode.h b/include_server/test_data/distcc/src/exitcode.h new file mode 100644 index 0000000..29a595a --- /dev/null +++ b/include_server/test_data/distcc/src/exitcode.h @@ -0,0 +1,61 @@ +/* -*- c-file-style: "java"; indent-tabs-mode: nil; fill-column: 78 -*- + * + * distcc -- A simple distributed compiler system + * + * Copyright (C) 2002, 2003, 2004 by Martin Pool <mbp@samba.org> + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * USA + */ + +#ifndef _DISTCC_EXITCODE_H +#define _DISTCC_EXITCODE_H + +/** + * @file + * + * Common exit codes. + **/ + +/** + * Common exit codes for both client and server. + * + * These need to be in [1,255] so that they can be used as exit() + * codes. + **/ +enum dcc_exitcode { + EXIT_DISTCC_FAILED = 100, /**< General failure */ + EXIT_BAD_ARGUMENTS = 101, + EXIT_BIND_FAILED = 102, + EXIT_CONNECT_FAILED = 103, + EXIT_COMPILER_CRASHED = 104, + EXIT_OUT_OF_MEMORY = 105, + EXIT_BAD_HOSTSPEC = 106, + EXIT_IO_ERROR = 107, + EXIT_TRUNCATED = 108, + EXIT_PROTOCOL_ERROR = 109, + EXIT_COMPILER_MISSING = 110, /**< Compiler executable not found */ + EXIT_RECURSION = 111, /**< distcc called itself */ + EXIT_SETUID_FAILED = 112, /**< Failed to discard privileges */ + EXIT_ACCESS_DENIED = 113, /**< Network access denied */ + EXIT_BUSY = 114, /**< In use by another process. */ + EXIT_NO_SUCH_FILE = 115, + EXIT_NO_HOSTS = 116, + EXIT_GONE = 117, /**< No longer relevant */ + EXIT_TIMEOUT = 118 +}; + + +#endif /* _DISTCC_EXITCODE_H */ diff --git a/include_server/test_data/distcc/src/hosts.h b/include_server/test_data/distcc/src/hosts.h new file mode 100644 index 0000000..674ac85 --- /dev/null +++ b/include_server/test_data/distcc/src/hosts.h @@ -0,0 +1,87 @@ +/* -*- c-file-style: "java"; indent-tabs-mode: nil -*- + * + * distcc -- A simple distributed compiler system + * + * Copyright (C) 2002, 2003 by Martin Pool <mbp@samba.org> + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * USA + */ + +/** + * @file + * + * Declarations for distcc host selection stuff. + **/ + +/** + * A simple linked list of host definitions. All strings are mallocd. + **/ +struct dcc_hostdef { + enum { + DCC_MODE_TCP = 1, + DCC_MODE_SSH, + DCC_MODE_LOCAL + } mode; + char * user; + char * hostname; + int port; + char * ssh_command; + + /** Mark the host as up == 1, by default, or down == 0, if !hostname */ + int is_up; + + /** Number of tasks that can be dispatched concurrently to this machine. */ + int n_slots; + + /** The full name of this host, taken verbatim from the host + * definition. **/ + char * hostdef_string; + + enum dcc_protover protover; + + /** The kind of compression to use for this host */ + enum dcc_compress compr; + + /** Where are we doing preprocessing? */ + enum dcc_cpp_where cpp_where; + + struct dcc_hostdef *next; +}; + +/** Static definition of localhost **/ +extern struct dcc_hostdef *dcc_hostdef_local; +extern struct dcc_hostdef *dcc_hostdef_local_cpp; + +/* hosts.c */ +int dcc_get_hostlist(struct dcc_hostdef **ret_list, + int *ret_nhosts); + +int dcc_free_hostdef(struct dcc_hostdef *host); + +int dcc_get_features_from_protover(enum dcc_protover protover, + enum dcc_compress *compr, + enum dcc_cpp_where *cpp_where); + +int dcc_get_protover_from_features(enum dcc_compress compr, + enum dcc_cpp_where cpp_where, + enum dcc_protover *protover); + +/* hostfile.c */ +int dcc_parse_hosts_file(const char *fname, + struct dcc_hostdef **ret_list, + int *ret_nhosts); + + diff --git a/include_server/test_data/distcc/src/implicit.h b/include_server/test_data/distcc/src/implicit.h new file mode 100644 index 0000000..371657d --- /dev/null +++ b/include_server/test_data/distcc/src/implicit.h @@ -0,0 +1,25 @@ +/* -*- c-file-style: "java"; indent-tabs-mode: nil -*- + * + * distcc -- A simple distributed compiler system + * $Header: /data/cvs/distcc/src/implicit.h,v 1.3 2002/09/18 06:57:45 mbp Exp $ + * + * Copyright (C) 2002 by Martin Pool <mbp@samba.org> + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * USA + */ + +int dcc_find_compiler(char **argv, char ***); + diff --git a/include_server/test_data/distcc/src/include_me.h b/include_server/test_data/distcc/src/include_me.h new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/include_server/test_data/distcc/src/include_me.h diff --git a/include_server/test_data/distcc/src/state.h b/include_server/test_data/distcc/src/state.h new file mode 100644 index 0000000..63486fe --- /dev/null +++ b/include_server/test_data/distcc/src/state.h @@ -0,0 +1,91 @@ +/* -*- c-file-style: "java"; indent-tabs-mode: nil -*- + * + * distcc -- A simple distributed compiler system + * + * Copyright (C) 2003 by Martin Pool <mbp@samba.org> + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * USA + */ + +#ifndef _DISTCC_STATE_H +#define _DISTCC_STATE_H + +#ifdef __cplusplus +extern "C" { +#endif + +int dcc_get_state_dir (char **p); +int dcc_open_state_file (int *p_fd); + + +/* Note that these must be in the order in which they are encountered + * for the state file to work properly. It's OK if some are skipped + * though. */ +enum dcc_phase { + DCC_PHASE_STARTUP, + DCC_PHASE_BLOCKED, + DCC_PHASE_CONNECT, + DCC_PHASE_CPP, + DCC_PHASE_SEND, + DCC_PHASE_COMPILE, /**< or unknown */ + DCC_PHASE_RECEIVE, + DCC_PHASE_DONE /**< MUST be last */ +}; + + +int dcc_note_state (enum dcc_phase state, + const char *file, + const char *host); +void dcc_remove_state_file (void); + + +extern const char *dcc_state_prefix; + + +#define DCC_STATE_MAGIC 0x44494800 /* DIH\0 */ + +/** + * State and history of a distcc process. Used in memory and also in native + * format for binary state files. + * + * This should be <4kB, so that it will normally be written out + * atomically. + **/ +struct dcc_task_state { + size_t struct_size; + unsigned long magic; + unsigned long cpid; /**< Client pid */ + char file[128]; /**< Input filename */ + char host[128]; /**< Destination host description */ + int slot; /**< Which CPU slot for this host */ + + enum dcc_phase curr_phase; + + /** In memory, point to the next in a list of all tasks. In the + * file, undefined. */ + struct dcc_task_state *next; +}; + + +const char *dcc_get_phase_name(enum dcc_phase); + +void dcc_note_state_slot(int slot); + +#ifdef __cplusplus +} +#endif + +#endif /* _DISTCC_STATE_H */ diff --git a/include_server/test_data/distcc/src/trace.h b/include_server/test_data/distcc/src/trace.h new file mode 100644 index 0000000..0d99e0f --- /dev/null +++ b/include_server/test_data/distcc/src/trace.h @@ -0,0 +1,230 @@ +/*= -*- c-basic-offset: 4; indent-tabs-mode: nil; -*- + * + * librsync -- generate and apply network deltas + * + * Copyright (C) 2000, 2001, 2002, 2003, 2004 by Martin Pool + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation; either version 2.1 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + + +/** + * @file + * + * Reusable trace library. + * + * @todo A function like perror that includes strerror output. Apache + * does this by adding flags as well as the severity level which say + * whether such information should be included. + * + * @todo Also check in configure for the C9X predefined identifier `_function', or + * whatever it's called. + **/ + +/* Provide simple macro statement wrappers (adapted from glib, and originally from Perl): + * RS_STMT_START { statements; } RS_STMT_END; + * can be used as a single statement, as in + * if (x) RS_STMT_START { ... } RS_STMT_END; else ... + * + * For gcc we will wrap the statements within `({' and `})' braces. + * For SunOS they will be wrapped within `if (1)' and `else (void) 0', + * and otherwise within `do' and `while (0)'. + */ +#if !(defined (RS_STMT_START) && defined (RS_STMT_END)) +# if defined (__GNUC__) && !defined (__STRICT_ANSI__) && !defined (__cplusplus) +# define RS_STMT_START (void)( +# define RS_STMT_END ) +# else +# if (defined (sun) || defined (__sun__)) +# define RS_STMT_START if (1) +# define RS_STMT_END else (void)0 +# else +# define RS_STMT_START do +# define RS_STMT_END while (0) +# endif +# endif +#endif + + +#include <stdarg.h> + +/* unconditionally on */ +#define DO_RS_TRACE + +/** + * Log severity levels. + * + * These have the same numeric values as the levels for syslog, at + * least in glibc. + * + * Trace may be turned off. + * + * Error is always on, but you can return and continue in some way. + */ +typedef enum { + RS_LOG_EMERG = 0, /**< System is unusable */ + RS_LOG_ALERT = 1, /**< Action must be taken immediately */ + RS_LOG_CRIT = 2, /**< Critical conditions */ + RS_LOG_ERR = 3, /**< Error conditions */ + RS_LOG_WARNING = 4, /**< Warning conditions */ + RS_LOG_NOTICE = 5, /**< Normal but significant condition */ + RS_LOG_INFO = 6, /**< Informational */ + RS_LOG_DEBUG = 7 /**< Debug-level messages */ +} rs_loglevel; + +int rs_loglevel_from_name(const char *name); + +enum { + RS_LOG_PRIMASK = 7, /**< Mask to extract priority + part. \internal */ + + RS_LOG_NONAME = 8, /**< \b Don't show function name in + message. */ + + RS_LOG_NO_PROGRAM = 16, + RS_LOG_NO_PID = 32 +}; + + +/** + * \typedef rs_logger_fn + * \brief Callback to write out log messages. + * \param level a syslog level. + * \param msg message to be logged. + * + * \param private Opaque data passed in when logger was added. For + * example, pointer to file descriptor. + */ +typedef void rs_logger_fn(int flags, const char *fn, + char const *msg, va_list, + void *private_ptr, int private_int); + +void rs_format_msg(char *buf, size_t, int, const char *, + const char *fmt, va_list); + +void rs_trace_set_level(rs_loglevel level); + +void rs_add_logger(rs_logger_fn *, int level, void *, int); +void rs_remove_logger(rs_logger_fn *, int level, void *, int); +void rs_remove_all_loggers(void); + + +void rs_logger_file(int level, const char *fn, char const *fmt, va_list va, + void *, int); + +void rs_logger_syslog(int level, const char *fn, char const *fmt, va_list va, + void *, int); + +/** Check whether the library was compiled with debugging trace suport. */ +int rs_supports_trace(void); + +void rs_log0(int level, char const *fn, char const *fmt, ...) +#if defined(__GNUC__) + __attribute__ ((format(printf, 3, 4))) +#endif /* __GNUC__ */ + ; + + + /* TODO: Check for the __FUNCTION__ thing, rather than gnuc */ +#if defined(HAVE_VARARG_MACROS) && defined(__GNUC__) + +#if 1 || defined(DO_RS_TRACE) +# define rs_trace(fmt, arg...) \ + do { rs_log0(RS_LOG_DEBUG, __FUNCTION__, fmt , ##arg); \ + } while (0) +#else +# define rs_trace(s, str...) +#endif /* !DO_RS_TRACE */ + +#define rs_log(l, s, str...) do { \ + rs_log0((l), __FUNCTION__, (s) , ##str); \ + } while (0) + + +#define rs_log_crit(s, str...) do { \ + rs_log0(RS_LOG_CRIT, __FUNCTION__, (s) , ##str); \ + } while (0) + +#define rs_log_error(s, str...) do { \ + rs_log0(RS_LOG_ERR, __FUNCTION__, (s) , ##str); \ + } while (0) + +#define rs_log_notice(s, str...) do { \ + rs_log0(RS_LOG_NOTICE, __FUNCTION__, (s) , ##str); \ + } while (0) + +#define rs_log_warning(s, str...) do { \ + rs_log0(RS_LOG_WARNING, __FUNCTION__, (s) , ##str); \ + } while (0) + +#define rs_log_info(s, str...) do { \ + rs_log0(RS_LOG_INFO, __FUNCTION__, (s) , ##str); \ + } while (0) + +#else /* not defined HAVE_VARARG_MACROS */ + +/* If we don't have gcc vararg macros, then we fall back to making the + * log routines just plain functions. On platforms without gcc (boo + * hiss!) this means at least you get some messages, but not the nice + * function names etc. */ +#define rs_log rs_log0_nofn + +#define rs_trace rs_log_trace_nofn +#define rs_log_info rs_log_info_nofn +#define rs_log_notice rs_log_notice_nofn +#define rs_log_warning rs_log_warning_nofn +#define rs_log_error rs_log_error_nofn +#define rs_log_crit rs_log_critical_nofn +#endif /* HAVE_VARARG_MACROS */ + + + +void rs_log_trace_nofn(char const *s, ...); +void rs_log_info_nofn(char const *, ...); +void rs_log_notice_nofn(char const *, ...); +void rs_log_warning_nofn(char const *s, ...); +void rs_log_error_nofn(char const *s, ...); +void rs_log_critical_nofn(char const *, ...); + +void rs_log0_nofn(int level, char const *fmt, ...); + + + +/** + * \macro rs_trace_enabled() + * + * Call this before putting too much effort into generating trace + * messages. + */ + +extern int rs_trace_level; + +#ifdef DO_RS_TRACE +# define rs_trace_enabled() ((rs_trace_level & RS_LOG_PRIMASK) >= RS_LOG_DEBUG) +#else +# define rs_trace_enabled() 0 +#endif + +/** + * Name of the program, to be included in log messages. + * + * @note This must be defined exactly once in each program that links to + * trace.c + **/ +extern const char *rs_program_name; + +void dcc_job_summary_clear(void); +void dcc_job_summary(void); +void dcc_job_summary_append(const char *s); diff --git a/include_server/test_data/distcc/src/util.h b/include_server/test_data/distcc/src/util.h new file mode 100644 index 0000000..e2aefed --- /dev/null +++ b/include_server/test_data/distcc/src/util.h @@ -0,0 +1,55 @@ +/* -*- c-file-style: "java"; indent-tabs-mode: nil -*- + * + * distcc -- A simple distributed compiler system + * + * Copyright (C) 2002, 2003 by Martin Pool <mbp@samba.org> + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * USA + */ + +#include <setjmp.h> + +/* util.c */ +int dcc_getcurrentload(void); +void dcc_getloadavg(double loadavg[3]); +int argv_contains(char **argv, const char *s); +int dcc_redirect_fd(int, const char *fname, int); +int str_startswith(const char *head, const char *worm); +char *dcc_gethostname(void); +void dcc_exit(int exitcode) NORETURN; +int dcc_getenv_bool(const char *name, int def_value); +int set_cloexec_flag (int desc, int value); +int dcc_ignore_sigpipe(int val); +int dcc_remove_if_exists(const char *fname); +int dcc_trim_path(const char *compiler_name); +int dcc_set_path(const char *newpath); +char *dcc_abspath(const char *path, int path_len); +int dcc_get_dns_domain(const char **domain_name); + +#define str_equal(a, b) (!strcmp((a), (b))) + + +void dcc_get_proc_stats(int *num_D, int *max_RSS, char **max_RSS_name); +void dcc_get_disk_io_stats(int *n_reads, int *n_writes); + + +int dcc_dup_part(const char **psrc, char **pdst, const char *sep); + +#ifndef HAVE_STRLCPY +size_t strlcpy(char *d, const char *s, size_t bufsize); +#endif + +int dcc_tokenize_string(const char *in, char ***argv_ptr); diff --git a/include_server/test_data/func_macro.c b/include_server/test_data/func_macro.c new file mode 100644 index 0000000..9eef80d --- /dev/null +++ b/include_server/test_data/func_macro.c @@ -0,0 +1 @@ +#include FINCLUDE(foo.h) diff --git a/include_server/test_data/gws-main.o.cmd b/include_server/test_data/gws-main.o.cmd new file mode 100644 index 0000000..0b0cc28 --- /dev/null +++ b/include_server/test_data/gws-main.o.cmd @@ -0,0 +1 @@ +/usr/crosstool/v8/gcc-4.1.0-glibc-2.2.2/blah/gcc -Wall -Werror -Wwrite-strings -fno-exceptions -funsigned-char -D__STDC_FORMAT_MACROS -g0 -D_REENTRANT -DCOMPILER_GCC3 -DCOMPILER_GCC4 -DARCH_PIII -DOS_LINUX -fmessage-length=0 -fno-strict-aliasing -Wno-sign-compare -Wno-char-subscripts -DXP_UNIX -D_REENTRANT -DHAS_vsnprintf -DPOSIX_MALLOC_THRESHOLD=10 -DMAX_DUPLENGTH=100000 -DSUPPORT_UTF8 -DSUPPORT_UCP -DHAVE_OPENSSL -D_REENTRANT -DHASH_NAMESPACE=__gnu_cxx -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/googledata/html/templates/musicsearch/frontend -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/googledata/html/templates/musicsearch/frontend -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/googledata/html/templates/musicsearch/onebox -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/googledata/html/templates/musicsearch/onebox -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/googledata/html/templates/web/manybox -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/googledata/html/templates/web/manybox -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/googledata/html/templates/web/onebox -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/googledata/html/templates/web/onebox -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/quality/freshness/queryclassifier/public/proto -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/quality/freshness/queryclassifier/public/proto -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/blogsearch/parsers/feedparser/protos -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/blogsearch/parsers/feedparser/protos -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/googledata/html/templates/extern_js -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/googledata/html/templates/extern_js -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/googledata/html/templates/images -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/googledata/html/templates/images -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/googledata/html/templates/one_google -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/googledata/html/templates/one_google -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/googledata/html/templates/web -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/googledata/html/templates/web -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/googledata/html/templates/webserver -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/googledata/html/templates/webserver -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/googledata/html/templates/wireless -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/googledata/html/templates/wireless -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/image/daily/mustang/proto -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/image/daily/mustang/proto -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/location/extractor/client/proto -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/location/extractor/client/proto -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/location/extractor/server/proto -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/location/extractor/server/proto -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/mustang/repos_www/ftb/proto -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/mustang/repos_www/ftb/proto -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/onebox/quicklinks/public/proto -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/onebox/quicklinks/public/proto -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/personalization/search/learning/booster -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/personalization/search/learning/booster -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/ratings/reviews/mustang/servlets -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/ratings/reviews/mustang/servlets -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/superroot/corpusroot/web/extras -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/superroot/corpusroot/web/extras -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/tv/showings/frontend/rpc -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/tv/showings/frontend/rpc -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/video/index/personalizedsearch/proto -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/video/index/personalizedsearch/proto -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/video/stats/relatedvideos/proto -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/video/stats/relatedvideos/proto -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/weboftrust/prose/data_analysis/video -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/weboftrust/prose/data_analysis/video -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/wireless/sms/frontend/proto -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/wireless/sms/frontend/proto -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/ads/adsearch/servlets -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/ads/adsearch/servlets -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/ads/experiments/base -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/ads/experiments/base -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/ads/messenger/adsnapshots -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/ads/messenger/adsnapshots -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/ads/messenger/base -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/ads/messenger/base -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/ads/proto/creatives -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/ads/proto/creatives -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/chubby/lib/proto -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/chubby/lib/proto -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/chubby/svelte/proto -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/chubby/svelte/proto -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/classifier/phil/rpc -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/classifier/phil/rpc -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/commerce/shoppinglist/rpc -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/commerce/shoppinglist/rpc -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/community/introductions/proto -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/community/introductions/proto -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/contentads/cat2/proto -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/contentads/cat2/proto -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/crawler/analysis/javascript -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/crawler/analysis/javascript -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/crawler/sitemaps/common -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/crawler/sitemaps/common -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/crawler/sitemaps/proto -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/crawler/sitemaps/proto -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/enterprise/onebox/rpc -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/enterprise/onebox/rpc -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/enterprise/superroot/ent_search_params -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/enterprise/superroot/ent_search_params -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/file/gfs/proto -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/file/gfs/proto -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/googlebase/mustang/protos -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/googlebase/mustang/protos -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/googledata/html/templates -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/googledata/html/templates -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/i18n/segmenter/common -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/i18n/segmenter/common -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/image/mustang/rpc -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/image/mustang/rpc -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/image/search/rpc -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/image/search/rpc -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/learning/rephil/api -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/learning/rephil/api -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/localsearch/frontend/rpc -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/localsearch/frontend/rpc -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/localsearch/geomap_server/rpc -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/localsearch/geomap_server/rpc -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/localsearch/mustang/servlet -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/localsearch/mustang/servlet -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/localsearch/oblocalsearch/rpc -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/localsearch/oblocalsearch/rpc -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/location/waldo/base -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/location/waldo/base -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/location/waldo/rpc -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/location/waldo/rpc -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/logs/wireless/mobilegw -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/logs/wireless/mobilegw -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/maps/soprano/client -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/maps/soprano/client -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/mustang/aggregation/proto -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/mustang/aggregation/proto -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/mustang/repos_www/navboost -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/mustang/repos_www/navboost -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/mustang/servlets/commerce -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/mustang/servlets/commerce -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/mustang/servlets/mobile -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/mustang/servlets/mobile -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/mustang/servlets/querycount -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/mustang/servlets/querycount -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/mustang/servlets/video -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/mustang/servlets/video -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/net/proto/xml2proto -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/net/proto/xml2proto -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/news/frontend/rpc -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/news/frontend/rpc -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/news/personalization/nps -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/news/personalization/nps -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/ocean/data/docinfo -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/ocean/data/docinfo -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/ocean/metadata/ids -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/ocean/metadata/ids -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/onebox/scholar/rpc -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/onebox/scholar/rpc -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/onebox/showtimes/rpc -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/onebox/showtimes/rpc -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/onebox/weather/rpc -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/onebox/weather/rpc -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/persist/framework/rpc -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/persist/framework/rpc -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/personalization/gws_ui/profiles -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/personalization/gws_ui/profiles -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/personalization/recommend/base -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/personalization/recommend/base -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/personalization/recommend/util -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/personalization/recommend/util -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/personalization/zipit/rpc -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/personalization/zipit/rpc -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/personalization/zipit/st -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/personalization/zipit/st -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/quality/chameleon/interface -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/quality/chameleon/interface -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/quality/labels/proto -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/quality/labels/proto -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/quality/local/proto -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/quality/local/proto -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/quality/manybox/proto -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/quality/manybox/proto -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/quality/manybox/video -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/quality/manybox/video -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/quality/prose/proto -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/quality/prose/proto -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/quality/sitemap/proto -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/quality/sitemap/proto -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/ratings/mustang/servlets -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/ratings/mustang/servlets -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/ratings/reviews/base -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/ratings/reviews/base -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/ratings/reviews/movies -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/ratings/reviews/movies -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/repository/docchart/extraction -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/repository/docchart/extraction -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/universal/naming/constants -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/universal/naming/constants -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/universal/naming/rpc -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/universal/naming/rpc -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/util/encryption/docid -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/util/encryption/docid -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/video/cdb/common -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/video/cdb/common -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/video/index/builder -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/video/index/builder -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/video/onebox/rpc -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/video/onebox/rpc -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/weboftrust/prose/rpc -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/weboftrust/prose/rpc -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/webserver/frontend/modules -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/webserver/frontend/modules -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/webserver/util/feature_tabs -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/webserver/util/feature_tabs -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/webserver/util/match_criteria -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/webserver/util/match_criteria -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/webserver/util/one_google -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/webserver/util/one_google -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/webserver/util/url_factory -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/webserver/util/url_factory -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/wireless/mmp/rpc -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/wireless/mmp/rpc -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/wireless/mobile_restrict/indexer -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/wireless/mobile_restrict/indexer -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/wireless/msisdndictionary/proto -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/wireless/msisdndictionary/proto -iquote third_party/Inso/common/unix -Ithird_party/Inso/common/unix -iquote third_party/openssl/gcc-3.4-glibc-2.2.2-piii-linux-dbg/include -Ithird_party/openssl/gcc-3.4-glibc-2.2.2-piii-linux-dbg/include -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/ads/adsearch -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/ads/adsearch -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/ads/base -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/ads/base -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/ads/clickencoding -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/ads/clickencoding -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/ads/demographics -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/ads/demographics -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/ads/events -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/ads/events -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/ads/experiments -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/ads/experiments -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/ads/phil -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/ads/phil -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/ads/promos -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/ads/promos -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/ads/proto -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/ads/proto -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/ads/snapshot -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/ads/snapshot -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/ads/strategy -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/ads/strategy -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/ads/supermessenger -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/ads/supermessenger -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/attributesearch/gwsbackend -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/attributesearch/gwsbackend -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/blog/rpc -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/blog/rpc -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/blogsearch/proto -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/blogsearch/proto -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/borg/borgletlib -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/borg/borgletlib -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/cacheserving/rpc -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/cacheserving/rpc -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/caribou/ads -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/caribou/ads -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/commerce/offer -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/commerce/offer -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/commerce/onebox -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/commerce/onebox -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/contentads/rpc -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/contentads/rpc -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/contentads/vertical -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/contentads/vertical -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/coupons/rpc -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/coupons/rpc -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/daffie/annotations -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/daffie/annotations -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/daffie/annotations2 -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/daffie/annotations2 -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/daffie/metadata -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/daffie/metadata -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/daffie/search -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/daffie/search -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/directory/rpc -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/directory/rpc -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/docserving/rpc -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/docserving/rpc -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/file/base -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/file/base -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/file/fileset -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/file/fileset -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/file/logging -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/file/logging -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/file/sstablefile -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/file/sstablefile -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/finance/onebox -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/finance/onebox -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/finance/proto -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/finance/proto -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/finance/quoteserver -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/finance/quoteserver -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/froogle/base -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/froogle/base -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/froogle/currency -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/froogle/currency -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/gaia/data -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/gaia/data -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/gaia/insclient -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/gaia/insclient -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/gaia/insfriend -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/gaia/insfriend -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/geostore/base -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/geostore/base -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/groups2/browsefe -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/groups2/browsefe -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/gws/config -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/gws/config -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/gws/gws -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/gws/gws -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/gws/onebox -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/gws/onebox -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/i18n/langenc_detect -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/i18n/langenc_detect -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/i18n/localization -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/i18n/localization -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/igoogle/rpc -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/igoogle/rpc -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/indexer/perdocdata -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/indexer/perdocdata -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/indexserving/elephant_info -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/indexserving/elephant_info -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/indexserving/rpc -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/indexserving/rpc -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/kansas/datatype -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/kansas/datatype -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/kansas/rpc -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/kansas/rpc -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/kansas/showmyhistory -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/kansas/showmyhistory -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/linkserver/rpc -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/linkserver/rpc -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/localsearch/base -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/localsearch/base -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/localsearch/i18n -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/localsearch/i18n -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/localsearch/kml -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/localsearch/kml -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/location/base -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/location/base -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/location/country -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/location/country -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/logs/bigindex -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/logs/bigindex -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/logs/eventid -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/logs/eventid -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/logs/gws -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/logs/gws -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/logs/java -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/logs/java -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/logs/maps -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/logs/maps -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/logs/superroot -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/logs/superroot -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/logs/transit -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/logs/transit -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/logs/zwieback -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/logs/zwieback -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/maps/wiki_lite -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/maps/wiki_lite -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/music/clients -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/music/clients -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/music/images -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/music/images -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/mustang/repos_querycount -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/mustang/repos_querycount -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/mustang/repos_www -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/mustang/repos_www -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/mustang/servlets -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/mustang/servlets -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/net/base -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/net/base -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/net/ecatcher -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/net/ecatcher -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/net/httpsconnection -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/net/httpsconnection -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/net/proto -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/net/proto -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/net/rpc -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/net/rpc -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/net/sslagent -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/net/sslagent -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/net/util -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/net/util -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/nlp/ngrams -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/nlp/ngrams -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/ocean/acqbase -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/ocean/acqbase -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/ocean/mustangproto -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/ocean/mustangproto -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/onebox/glossary -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/onebox/glossary -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/partnerservices/distributiontracking -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/partnerservices/distributiontracking -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/personalization/profiles -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/personalization/profiles -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/personalization/util -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/personalization/util -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/premiumcontent/common -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/premiumcontent/common -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/premiumcontent/onebox -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/premiumcontent/onebox -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/production/cert_auth -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/production/cert_auth -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/quality/navboost -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/quality/navboost -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/quality/rescoring -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/quality/rescoring -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/quality/twiddler -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/quality/twiddler -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/queryrefinement/rpc -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/queryrefinement/rpc -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/queryrewrite/rpc -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/queryrewrite/rpc -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/repository/base -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/repository/base -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/repository/docchart -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/repository/docchart -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/reviews/rpc -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/reviews/rpc -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/science_search/citation -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/science_search/citation -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/security/keymaster -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/security/keymaster -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/security/loas -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/security/loas -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/smartass/logexpansion -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/smartass/logexpansion -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/smartass/predictionmodel -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/smartass/predictionmodel -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/smartass/server -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/smartass/server -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/sortedmap/rpc -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/sortedmap/rpc -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/spelling/rpc -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/spelling/rpc -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/sstable/proto -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/sstable/proto -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/stats/io -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/stats/io -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/structuredsearch/client -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/structuredsearch/client -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/superroot/rpc -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/superroot/rpc -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/third_party/libidn -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/third_party/libidn -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/transportation/dateparser -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/transportation/dateparser -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/transportation/rpc -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/transportation/rpc -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/universalsearch/rpc -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/universalsearch/rpc -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/urlscheduler/rpc -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/urlscheduler/rpc -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/util/callback -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/util/callback -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/video/captioncrunch -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/video/captioncrunch -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/video/personalization -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/video/personalization -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/video/vcsdb -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/video/vcsdb -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/webserver/frontend -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/webserver/frontend -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/webutil/http -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/webutil/http -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/webutil/url -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/webutil/url -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/wireless/handset -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/wireless/handset -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/zwieback/proto -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/zwieback/proto -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/includes/third_party/openssl -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/includes/third_party/openssl -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/includes/third_party/stl -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/includes/third_party/stl -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/includes/third_party/zlib -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/includes/third_party/zlib -iquote third_party/SpiderMonkey/src -Ithird_party/SpiderMonkey/src -iquote third_party/htm/include -Ithird_party/htm/include -iquote third_party/icu/current -Ithird_party/icu/current -iquote third_party/pcre/pcre-6.7 -Ithird_party/pcre/pcre-6.7 -iquote third_party/zlib/v1_2_3 -Ithird_party/zlib/v1_2_3 -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/base -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/base -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/borg -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/borg -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/calculator -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/calculator -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/daffie -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/daffie -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/googlebot -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/googlebot -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/gws -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/gws -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/indexer -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/indexer -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/logs -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/logs -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/mustang -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/mustang -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/onebox -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/onebox -iquote obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/sortedmap -Iobj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/genfiles/sortedmap -iquote . -Wno-non-virtual-dtor -isystem obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/includes/third_party/stl/third_party/stl -isystem obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/includes/third_party/stl -Wno-deprecated -Woverloaded-virtual -ftemplate-depth-40 -c gws/gws-main.cc -o obj/gcc-4.1.1-glibc-2.2.2-piii-linux-g0-dbg/bin/gws/gws-main.o diff --git a/include_server/test_data/i_am_perhaps_a_directory.h/empty_file b/include_server/test_data/i_am_perhaps_a_directory.h/empty_file new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/include_server/test_data/i_am_perhaps_a_directory.h/empty_file diff --git a/include_server/test_data/include_include_next_foo.h b/include_server/test_data/include_include_next_foo.h new file mode 100755 index 0000000..f7469fe --- /dev/null +++ b/include_server/test_data/include_include_next_foo.h @@ -0,0 +1 @@ +#include "include_next_foo.h" diff --git a/include_server/test_data/maps/foo.tpl.varnames.h b/include_server/test_data/maps/foo.tpl.varnames.h new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/include_server/test_data/maps/foo.tpl.varnames.h @@ -0,0 +1 @@ + diff --git a/include_server/test_data/more_macros.c b/include_server/test_data/more_macros.c new file mode 100644 index 0000000..28dd506 --- /dev/null +++ b/include_server/test_data/more_macros.c @@ -0,0 +1,14 @@ + +#define TEMPLATE_VARNAME(_filename_) \ + AS_STRING\ +(maps/_filename_.tpl.varnames.h) + +#define ILLFORMED(_filename_,(x)) \ + AS_STRING(maps/_filename_.tpl.varnames.h, NOTHANDLED(_filename_)) + +// #define BEHINDCOMMENT(x) x + x + +#define AS_STRING(x) AS_STRING_INTERNAL(x) +#define AS_STRING_INTERNAL(x) #x + +#include TEMPLATE_VARNAME(foo) diff --git a/include_server/test_data/p1.h b/include_server/test_data/p1.h new file mode 100755 index 0000000..8b13789 --- /dev/null +++ b/include_server/test_data/p1.h @@ -0,0 +1 @@ + diff --git a/include_server/test_data/parse.c b/include_server/test_data/parse.c new file mode 100644 index 0000000..956d282 --- /dev/null +++ b/include_server/test_data/parse.c @@ -0,0 +1,8 @@ +#includenext "incnext.h" +#include <angle.c> +#include "quote.c" + # include \ + /* comment */ "quote1\ +.c" +#include "foo.h" // in dfoo + diff --git a/include_server/test_data/stat_triggers.c b/include_server/test_data/stat_triggers.c new file mode 100644 index 0000000..5c32f98 --- /dev/null +++ b/include_server/test_data/stat_triggers.c @@ -0,0 +1 @@ +#include "stat_triggers.h" diff --git a/include_server/test_data/stat_triggers.h b/include_server/test_data/stat_triggers.h new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/include_server/test_data/stat_triggers.h diff --git a/include_server/test_data/symlink_farm/abc_post.c b/include_server/test_data/symlink_farm/abc_post.c new file mode 120000 index 0000000..4fcd3a9 --- /dev/null +++ b/include_server/test_data/symlink_farm/abc_post.c @@ -0,0 +1 @@ +../abc_post.c
\ No newline at end of file diff --git a/include_server/test_data/symlink_farm/abc_pre.c b/include_server/test_data/symlink_farm/abc_pre.c new file mode 120000 index 0000000..4e864a5 --- /dev/null +++ b/include_server/test_data/symlink_farm/abc_pre.c @@ -0,0 +1 @@ +../abc_pre.c
\ No newline at end of file diff --git a/include_server/test_data/symlink_farm/computed_includes.c b/include_server/test_data/symlink_farm/computed_includes.c new file mode 120000 index 0000000..2a694d0 --- /dev/null +++ b/include_server/test_data/symlink_farm/computed_includes.c @@ -0,0 +1 @@ +../computed_includes.c
\ No newline at end of file diff --git a/include_server/test_data/symlink_farm/dbar b/include_server/test_data/symlink_farm/dbar new file mode 120000 index 0000000..a261f21 --- /dev/null +++ b/include_server/test_data/symlink_farm/dbar @@ -0,0 +1 @@ +../dbar
\ No newline at end of file diff --git a/include_server/test_data/symlink_farm/dfoo b/include_server/test_data/symlink_farm/dfoo new file mode 120000 index 0000000..97fa2d0 --- /dev/null +++ b/include_server/test_data/symlink_farm/dfoo @@ -0,0 +1 @@ +../dfoo
\ No newline at end of file diff --git a/include_server/test_data/symlink_farm/foo b/include_server/test_data/symlink_farm/foo new file mode 100644 index 0000000..cd9390c --- /dev/null +++ b/include_server/test_data/symlink_farm/foo @@ -0,0 +1 @@ +#include "sub_farm/link_to_dotdot_dotdot_dfoo_include_dotdot_foo" diff --git a/include_server/test_data/symlink_farm/p1.h b/include_server/test_data/symlink_farm/p1.h new file mode 120000 index 0000000..58fa3b8 --- /dev/null +++ b/include_server/test_data/symlink_farm/p1.h @@ -0,0 +1 @@ +../p1.h
\ No newline at end of file diff --git a/include_server/test_data/symlink_farm/parse.c b/include_server/test_data/symlink_farm/parse.c new file mode 120000 index 0000000..cf5775d --- /dev/null +++ b/include_server/test_data/symlink_farm/parse.c @@ -0,0 +1 @@ +../parse.c
\ No newline at end of file diff --git a/include_server/test_data/symlink_farm/sub_farm/link_to_dotdot_dotdot_dfoo_include_dotdot_foo b/include_server/test_data/symlink_farm/sub_farm/link_to_dotdot_dotdot_dfoo_include_dotdot_foo new file mode 120000 index 0000000..3f08d7c --- /dev/null +++ b/include_server/test_data/symlink_farm/sub_farm/link_to_dotdot_dotdot_dfoo_include_dotdot_foo @@ -0,0 +1 @@ +../../dfoo/include_dotdot_foo
\ No newline at end of file diff --git a/include_server/test_data/symlink_farm/test_directory_probing.c b/include_server/test_data/symlink_farm/test_directory_probing.c new file mode 120000 index 0000000..0af39d3 --- /dev/null +++ b/include_server/test_data/symlink_farm/test_directory_probing.c @@ -0,0 +1 @@ +../test_directory_probing.c
\ No newline at end of file diff --git a/include_server/test_data/symlink_farm/test_include_next b/include_server/test_data/symlink_farm/test_include_next new file mode 120000 index 0000000..9aa56db --- /dev/null +++ b/include_server/test_data/symlink_farm/test_include_next @@ -0,0 +1 @@ +../test_include_next
\ No newline at end of file diff --git a/include_server/test_data/test_computed_includes/helper.c b/include_server/test_data/test_computed_includes/helper.c new file mode 100644 index 0000000..02221a6 --- /dev/null +++ b/include_server/test_data/test_computed_includes/helper.c @@ -0,0 +1 @@ +#include INCL diff --git a/include_server/test_data/test_computed_includes/incl.h b/include_server/test_data/test_computed_includes/incl.h new file mode 100644 index 0000000..1e29313 --- /dev/null +++ b/include_server/test_data/test_computed_includes/incl.h @@ -0,0 +1 @@ +#define MSG "hello" diff --git a/include_server/test_data/test_computed_includes/inclA.h b/include_server/test_data/test_computed_includes/inclA.h new file mode 100644 index 0000000..43ad022 --- /dev/null +++ b/include_server/test_data/test_computed_includes/inclA.h @@ -0,0 +1 @@ +#define MSG "hello A" diff --git a/include_server/test_data/test_computed_includes/src.c b/include_server/test_data/test_computed_includes/src.c new file mode 100644 index 0000000..a361343 --- /dev/null +++ b/include_server/test_data/test_computed_includes/src.c @@ -0,0 +1,9 @@ +#define INCL "incl.h" +#include "helper.c" + +#include<stdio.h> +int main() { + printf(MSG); + printf("\n"); + return 0; +} diff --git a/include_server/test_data/test_computed_includes/srcA.c b/include_server/test_data/test_computed_includes/srcA.c new file mode 100644 index 0000000..075a898 --- /dev/null +++ b/include_server/test_data/test_computed_includes/srcA.c @@ -0,0 +1,9 @@ +#define INCL "inclA.h" +#include "helper.c" +#include <stdio.h> + +int main() { + printf(MSG); + printf("\n"); + return 0; +} diff --git a/include_server/test_data/test_directory_probing.c b/include_server/test_data/test_directory_probing.c new file mode 100644 index 0000000..edadb76 --- /dev/null +++ b/include_server/test_data/test_directory_probing.c @@ -0,0 +1,4 @@ +// For the include: should not be distracted by the directory +// i_am_perhaps_a_directory.h in the present directory (test_data). + +#include "i_am_perhaps_a_directory.h" diff --git a/include_server/test_data/test_include_next/bar/x.h b/include_server/test_data/test_include_next/bar/x.h new file mode 100755 index 0000000..8f6876d --- /dev/null +++ b/include_server/test_data/test_include_next/bar/x.h @@ -0,0 +1,3 @@ +Now bar/x.h +#include_next "x.h" + diff --git a/include_server/test_data/test_include_next/bar/y.h b/include_server/test_data/test_include_next/bar/y.h new file mode 100755 index 0000000..f44afac --- /dev/null +++ b/include_server/test_data/test_include_next/bar/y.h @@ -0,0 +1,3 @@ +Now bar/y.h +#include_next "y.h" + diff --git a/include_server/test_data/test_include_next/baz/start_x.c b/include_server/test_data/test_include_next/baz/start_x.c new file mode 100755 index 0000000..44a0921 --- /dev/null +++ b/include_server/test_data/test_include_next/baz/start_x.c @@ -0,0 +1,2 @@ +Now baz/start_x.h +#include "x.h" diff --git a/include_server/test_data/test_include_next/baz/start_y.c b/include_server/test_data/test_include_next/baz/start_y.c new file mode 100755 index 0000000..1e6a9c8 --- /dev/null +++ b/include_server/test_data/test_include_next/baz/start_y.c @@ -0,0 +1,2 @@ +Now baz/start_y.h +#include "../foo/y.h" diff --git a/include_server/test_data/test_include_next/baz/x.h b/include_server/test_data/test_include_next/baz/x.h new file mode 100755 index 0000000..69218e4 --- /dev/null +++ b/include_server/test_data/test_include_next/baz/x.h @@ -0,0 +1,3 @@ +Now in baz/x.h +#include_next "x.h" + diff --git a/include_server/test_data/test_include_next/baz/y.h b/include_server/test_data/test_include_next/baz/y.h new file mode 100755 index 0000000..50ca3e8 --- /dev/null +++ b/include_server/test_data/test_include_next/baz/y.h @@ -0,0 +1,6 @@ +Now baz/y.h +#ifndef baz_y_h + #define baz_y_h + #include y.h +#endif + diff --git a/include_server/test_data/test_include_next/biz/x.h b/include_server/test_data/test_include_next/biz/x.h new file mode 100755 index 0000000..fcb7a34 --- /dev/null +++ b/include_server/test_data/test_include_next/biz/x.h @@ -0,0 +1 @@ +Now biz/x.h diff --git a/include_server/test_data/test_include_next/foo/x.h b/include_server/test_data/test_include_next/foo/x.h new file mode 100755 index 0000000..c9be0ed --- /dev/null +++ b/include_server/test_data/test_include_next/foo/x.h @@ -0,0 +1,2 @@ +Now: foo/x.h +#include_next "x.h" diff --git a/include_server/test_data/test_include_next/foo/y.h b/include_server/test_data/test_include_next/foo/y.h new file mode 100755 index 0000000..965bf4e --- /dev/null +++ b/include_server/test_data/test_include_next/foo/y.h @@ -0,0 +1,2 @@ +Now: foo/y.h +#include_next "y.h" |
