Andrew Black wrote:
Greetings all.

Attached is a patch that cleans up some of the internal logic of the exec utility. The main purpose is to remove the dependency on the diff utility and make the error handling more consistent.

This is in: http://svn.apache.org/viewvc?rev=426676&view=rev

Btw., we'll need to clean up the failures that we get with EDG eccp
(below). They happen because with that compiler we use a super-anal
mode where only the names required to be declared by the standard
are declared in the standard headers. I think the only way to deal
with this will be to compile the utility in a less strict mode,
will mean changing the command line options and also removing the
-I from our command line. And when we do that, we might as well
compile the whole thing as C (and make the changes to the build
infrastructure to allow that in general).

Martin

eccp -c -I/build/sebor/dev/stdlib/include/ansi -D_RWSTDDEBUG -D_RWSTD_USE_CONFIG -I/build/sebor/dev/stdlib/include -I/build/sebor/eccp-3.8-11s/include -I/build/sebor/dev/stdlib/include/loc -A -x --template_directory=/build/sebor/eccp-3.8-11s/lib -g --display_error_number --remarks --diag_suppress 193,236,340,401,261,479,487,678,679,815 /build/sebor/dev/stdlib/src/util/exec.cpp
"/build/sebor/dev/stdlib/src/util/exec.cpp", line 247: error #20: identifier
          "snprintf" is undefined
      snprintf (def, sizeof def, "SIG#%d", signo);
      ^

"/build/sebor/dev/stdlib/src/util/exec.cpp", line 265: error #20: identifier
          "SIGALRM" is undefined
      if (SIGALRM == signo)
          ^

"/build/sebor/dev/stdlib/src/util/exec.cpp", line 295: error #20: identifier
          "SIGHUP" is undefined
          SIGHUP, SIGINT, SIGTERM, SIGKILL, SIGKILL
          ^

"/build/sebor/dev/stdlib/src/util/exec.cpp", line 295: error #20: identifier
          "SIGKILL" is undefined
          SIGHUP, SIGINT, SIGTERM, SIGKILL, SIGKILL
                                   ^

"/build/sebor/dev/stdlib/src/util/exec.cpp", line 300: error #70: incomplete
          type is not allowed
      struct sigaction act;
                       ^

"/build/sebor/dev/stdlib/src/util/exec.cpp", line 323: error #70: incomplete
          type is not allowed
      sigaction (SIGALRM, &act, 0);
      ^

"/build/sebor/dev/stdlib/src/util/exec.cpp", line 323: error #20: identifier
          "SIGALRM" is undefined
      sigaction (SIGALRM, &act, 0);
                 ^

"/build/sebor/dev/stdlib/src/util/exec.cpp", line 323: error #18: expected a
          ")"
      sigaction (SIGALRM, &act, 0);
                        ^

"/build/sebor/dev/stdlib/src/util/exec.cpp", line 343: error #20: identifier
          "EINTR" is undefined
              if (EINTR == errno && alarm_timeout) {
                  ^

"/build/sebor/dev/stdlib/src/util/exec.cpp", line 355: error #20: identifier
          "kill" is undefined
                  (void)kill (child_pid, signals [siginx]);
                        ^

"/build/sebor/dev/stdlib/src/util/exec.cpp", line 380: error #20: identifier
          "EINVAL" is undefined
              else if (EINVAL == errno) {
                       ^

"/build/sebor/dev/stdlib/src/util/exec.cpp", line 387: error #20: identifier
          "ECHILD" is undefined
              else if (ECHILD == errno) {
                       ^

"/build/sebor/dev/stdlib/src/util/exec.cpp", line 457: error #20: identifier
          "ENOENT" is undefined
          if (ENOENT != errno)
              ^

"/build/sebor/dev/stdlib/src/util/exec.cpp", line 566: error #20: identifier
          "fdopen" is undefined
              error_file = fdopen (error_cache,"a");
                           ^

14 errors detected in the compilation of "/build/sebor/dev/stdlib/src/util/exec.cpp".

Reply via email to