)]}'
{
  "commit": "353cb291a486af3be93dd9320dde9e38b542a1bd",
  "tree": "3f924fc500ae24169f85c2c94ac6c99c7c2401a2",
  "parents": [
    "730f52e05a1fb5c8cd92e352e9b191a6332be5c2"
  ],
  "author": {
    "name": "Iain Sandoe",
    "email": "iain@sandoe.co.uk",
    "time": "Fri Jun 14 19:14:30 2019 +0100"
  },
  "committer": {
    "name": "Iain Sandoe",
    "email": "iain@sandoe.co.uk",
    "time": "Fri Oct 15 19:44:41 2021 +0100"
  },
  "message": "Darwin: Revise handling of some driver opts.\n\nDarwin has a user convenience feature where some linker options are exposed\nat the driver level (so one can type \u0027-all_load\u0027 instead of \u0027-Wl,-all_load\u0027\nor \u0027-Xlinker -all_load\u0027).  We retain this feature, but now these options are\nall marked as \u0027Driver\u0027 and we process them as early as possible so that they\nget allocated to the right toolchain command.  There are a couple of special\ncases where these driver opts are used multiple times, or to control\noperations on more than one command (e.g. dynamiclib).  These are handled\nspecially and we then add %\u003cxxxx specs for the commands that _do not_ need\nthem.  NOTE: the ordering of \u0027shared\u0027 and \u0027dynamiclib\u0027 is significant, hence\nthey are placed out of alphabetical order at the start.  Likewise, we keep\na couple of cases where a negative option originally appeared after the\npositive alternate, potentially overriding it.\n\nWhen we report an error with %e, it seems necessary to strip the option\nbefore doing so, otherwise it survives to the cc1 command line (%e does not\nappear to abort the program before this).\n\nRight now there is no mechanism to split up the \u0027variable portion\u0027 (%*) of\nthe matched spec string, so where we have some driver specs that take 2 or\n3 arguments, these cannot be processed here, but are deferred until the\nLINK_SPEC, where they are copied verbatim.\n\nWe have a \u0027safe\u0027 version of the macOS version string, that has been sanity-\nchecked and truncated to minor version.  If the \u0027tiny\u0027 (3rd) portion of the\nvalue is not significant, it is better to use the safe one in version-compare().\n\nSigned-off-by: Iain Sandoe \u003ciain@sandoe.co.uk\u003e\n\ngcc/ChangeLog:\n\n\t* config/darwin-driver.c (darwin_driver_init): Revise comments, handle\n\tfilelist and framework options in specs instead of code.\n\t* config/darwin.h (SUBTARGET_DRIVER_SELF_SPECS): Update to handle link\n\tspecs that are really driver ones.\n\t(DARWIN_CC1_SPEC): Likewise.\n\t(CPP_SPEC): Likewise.\n\t(SYSROOT_SPEC): Append space.\n\t(LINK_SYSROOT_SPEC): Remove most driver link specs.\n\t(STANDARD_STARTFILE_PREFIX_2): Update link-related specs.\n\t(STARTFILE_SPEC): Likewise.\n\t(ASM_MMACOSX_VERSION_MIN_SPEC): Fix line wrap.\n\t(ASM_SPEC): Update driver-related specs.\n\t(ASM_FINAL_SPEC): Likewise.\n\t* config/darwin.opt: Remove now unused option aliases.\n\t* config/i386/darwin.h (EXTRA_ASM_OPTS): Ensure space after opt.\n\t(ASM_SPEC): Update driver-related specs.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "573abae4782d91e4a5840a05ba110cb11cb86032",
      "old_mode": 33188,
      "old_path": "gcc/config/darwin-driver.c",
      "new_id": "a036e091c48b02d072e22965953817f72d2fcfca",
      "new_mode": 33188,
      "new_path": "gcc/config/darwin-driver.c"
    },
    {
      "type": "modify",
      "old_id": "0fa1c572bc9a237c4e93c9d8d62c5f67996ab467",
      "old_mode": 33188,
      "old_path": "gcc/config/darwin.h",
      "new_id": "4aedf467c17ac5b0cfa5e886432bfc0dd941cf00",
      "new_mode": 33188,
      "new_path": "gcc/config/darwin.h"
    },
    {
      "type": "modify",
      "old_id": "23f359367ce3156958660e0acc19d6759e8d48b4",
      "old_mode": 33188,
      "old_path": "gcc/config/darwin.opt",
      "new_id": "d1d1f816912b292c5e7461ae4042ef47fbd6b033",
      "new_mode": 33188,
      "new_path": "gcc/config/darwin.opt"
    },
    {
      "type": "modify",
      "old_id": "c4a6f4dfda7dd93fda54b0c7186b5d5194af5957",
      "old_mode": 33188,
      "old_path": "gcc/config/i386/darwin.h",
      "new_id": "741f29aa96229d86213c09343bbd5dd7a6467580",
      "new_mode": 33188,
      "new_path": "gcc/config/i386/darwin.h"
    }
  ]
}
