Print this page
fixup! make: be serial if 'make', parallel if 'dmake', and parallel if '-j' is specified either way
fixup! make: translate using gettext, rather than the unmaintainable catgets
fixup! make: unifdef for two bugfixes conditioned for unknown reasons (defined)

Split Close
Expand all
Collapse all
          --- old/usr/src/cmd/make/bin/main.cc
          +++ new/usr/src/cmd/make/bin/main.cc
↓ open down ↓ 51 lines elided ↑ open up ↑
  52   52  #       include <sys/systeminfo.h>      /* sysinfo() */
  53   53  
  54   54  #include <sys/types.h>          /* stat() */
  55   55  #include <sys/wait.h>           /* wait() */
  56   56  #include <unistd.h>             /* execv(), unlink(), access() */
  57   57  #include <vroot/report.h>       /* report_dependency(), get_report_file() */
  58   58  
  59   59  // From read2.cc
  60   60  extern  Name            normalize_name(register wchar_t *name_string, register int length);
  61   61  
  62      -// From parallel.cc
  63      -#define MAXJOBS_ADJUST_RFE4694000
  64      -
  65   62  extern void job_adjust_fini();
  66   63  
  67   64  
  68   65  /*
  69   66   * Defined macros
  70   67   */
  71   68  #define LD_SUPPORT_ENV_VAR      "SGS_SUPPORT_32"
  72   69  #define LD_SUPPORT_ENV_VAR_32   "SGS_SUPPORT_32"
  73   70  #define LD_SUPPORT_ENV_VAR_64   "SGS_SUPPORT_64"
  74   71  #define LD_SUPPORT_MAKE_LIB     "libmakestate.so.1"
↓ open down ↓ 316 lines elided ↑ open up ↑
 391  388                  } else {
 392  389                          warning(gettext("Unsupported value `%s' for DMAKE_OUTPUT_MODE after -x flag (ignored)"),
 393  390                                dmake_value2->string_mb);
 394  391                  }
 395  392          }
 396  393          /*
 397  394           * Find the dmake_mode: parallel, or serial.
 398  395           */
 399  396      if ((!pmake_cap_r_specified) &&
 400  397          (!pmake_machinesfile_specified)) {
 401      -        char *s = strdup(argv[0]);    
 402      -            
      398 +        char *s, *b;
      399 +
      400 +        if ((s = strdup(argv[0])) == NULL)
      401 +                fatal(gettext("Out of memory"));
      402 +
      403 +        b = basename(s);
      404 +
 403  405          MBSTOWCS(wcs_buffer, "DMAKE_MODE");
 404  406          dmake_name2 = GETNAME(wcs_buffer, FIND_LENGTH);
 405  407          prop2 = get_prop(dmake_name2->prop, macro_prop);
 406  408          // If we're invoked as 'make' run serially, regardless of DMAKE_MODE
 407  409          // If we're invoked as 'make' but passed -j, run parallel
 408  410          // If we're invoked as 'dmake', without DMAKE_MODE, default parallel
 409  411          // If we're invoked as 'dmake' and DMAKE_MODE is set, honour it.
 410      -        if ((strcmp(basename(s), "make") == 0) &&
      412 +        if ((strcmp(b, "make") == 0) &&
 411  413              !dmake_max_jobs_specified) {
 412  414                  dmake_mode_type = serial_mode;
 413  415                  no_parallel = true;
 414  416          } else if (prop2 == NULL) {
 415  417                  /* DMAKE_MODE not defined, default based on our name */
 416      -                char *s = strdup(argv[0]);
 417      -
 418      -                if (strcmp(basename(s), "dmake") == 0) {
      418 +                if (strcmp(b, "dmake") == 0) {
 419  419                          dmake_mode_type = parallel_mode;
 420  420                          no_parallel = false;
 421  421                  }
 422  422          } else {
 423  423                  dmake_value2 = prop2->body.macro.value;
 424  424                  if (IS_EQUAL(dmake_value2->string_mb, "parallel")) {
 425  425                          dmake_mode_type = parallel_mode;
 426  426                          no_parallel = false;
 427  427                  } else if (IS_EQUAL(dmake_value2->string_mb, "serial")) {
 428  428                          dmake_mode_type = serial_mode;
↓ open down ↓ 2787 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX