)]}'
{
  "commit": "4ba9ba2ceb8ca16d414c5ec8f5f48792e60165e5",
  "tree": "5e5816b1f56c2105d3a0bced3773e64a3533a642",
  "parents": [
    "af0200d544c0a00a805f2ed86e9e5776cca22266"
  ],
  "author": {
    "name": "Sriraman Tallam",
    "email": "tmsriram@google.com",
    "time": "Thu Feb 15 17:35:16 2018 -0800"
  },
  "committer": {
    "name": "Sriraman Tallam",
    "email": "tmsriram@google.com",
    "time": "Fri Apr 27 13:06:07 2018 -0700"
  },
  "message": "Fix symbol resolution with linker plugins for defsym symbols.\n\n2018-02-07  Sriraman Tallam  \u003ctmsriram@google.com\u003e\n\n\t* expression.cc (Symbol_expression::set_expr_sym_in_real_elf):\n\tNew method.\n\t(Unary_expression::set_expr_sym_in_real_elf): New method.\n\t(Binary_expression::set_expr_sym_in_real_elf): New method.\n\t(Trinary_expression::set_expr_sym_in_real_elf): New method.\n\t* plugin.cc (get_symbol_resolution_info): Fix symbol resolution if\n\tdefined or used in defsyms.\n\t* plugin.h (Plugin_manager::is_defsym_def): New method.\n\t(Plugin_manager::Plugin_manager): Initialize defsym_defines_set_.\n\t(Plugin_manager::defsym_defines_set_): New member.\n\t(Plugin_manager::Defsym_defines_set): New typedef.\n\t* script.cc (Script_options::set_defsym_uses_in_real_elf): New method.\n\t(Script_options::find_defsym_defs): New method.\n\t* script.h (Expression::set_expr_sym_in_real_elf): New method.\n\t(Symbol_assignment::is_defsym): New method.\n\t(Symbol_assignment::value): New method.\n\t(Script_options::find_defsym_defs): New method.\n\t(Script_options::set_defsym_uses_in_real_elf): New method.\n\t* testsuite/Makefile.am (plugin_test_defsym): New test.\n\t* testsuite/Makefile.in: Regenerate.\n\t* testsuite/plugin_test.c: Check for new symbol resolution.\n\t* testsuite/plugin_test_defsym.sh: New script.\n\t* testsuite/plugin_test_defsym.c: New test source.\n\n(cherry picked from commit 3281b315c89caf1d539a316e41cc095e46482f75)\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "ddcc0d7fb5b8de64cdf37f1c16b74747375b29d7",
      "old_mode": 33188,
      "old_path": "gold/ChangeLog",
      "new_id": "b6d08fc685cf9bfbef82772ef3a88c8fc5e31826",
      "new_mode": 33188,
      "new_path": "gold/ChangeLog"
    },
    {
      "type": "modify",
      "old_id": "2b598cdff40eca5c141466e76f544090b7a8ff70",
      "old_mode": 33188,
      "old_path": "gold/expression.cc",
      "new_id": "42c45eb74d4e6f3f9897929d941d0548ea0288b5",
      "new_mode": 33188,
      "new_path": "gold/expression.cc"
    },
    {
      "type": "modify",
      "old_id": "c051805cec38c4941eb4e3b7e812fcbb7ccc147e",
      "old_mode": 33188,
      "old_path": "gold/plugin.cc",
      "new_id": "02841627ecbb7f9035da6b70da9ea9e5f182d2f5",
      "new_mode": 33188,
      "new_path": "gold/plugin.cc"
    },
    {
      "type": "modify",
      "old_id": "765866850284c65b460dab75b12c9983cfa28d89",
      "old_mode": 33188,
      "old_path": "gold/plugin.h",
      "new_id": "71f2c3199d315c3735f722b333d0ca91ec8ef589",
      "new_mode": 33188,
      "new_path": "gold/plugin.h"
    },
    {
      "type": "modify",
      "old_id": "67540a59a301a8830f8f70ebc3f754fa61b979c8",
      "old_mode": 33188,
      "old_path": "gold/script.cc",
      "new_id": "f7e0fb6a6a1ad447e3d68fde76f994b98acaeb26",
      "new_mode": 33188,
      "new_path": "gold/script.cc"
    },
    {
      "type": "modify",
      "old_id": "4f2f4fd4d694497a914d96ba43c43828a4aabedb",
      "old_mode": 33188,
      "old_path": "gold/script.h",
      "new_id": "10f59d23bd98525c3a78eaad81fb08ed2ad84d86",
      "new_mode": 33188,
      "new_path": "gold/script.h"
    },
    {
      "type": "modify",
      "old_id": "738adfa875061f0aa8d8d1e8304728bf585546d5",
      "old_mode": 33188,
      "old_path": "gold/testsuite/Makefile.am",
      "new_id": "9b7b6bec7f26dfcb4e417fc3eff418da9513ed3a",
      "new_mode": 33188,
      "new_path": "gold/testsuite/Makefile.am"
    },
    {
      "type": "modify",
      "old_id": "2aa273773e91cbc4844057e2407633183d0494f5",
      "old_mode": 33188,
      "old_path": "gold/testsuite/Makefile.in",
      "new_id": "5a828867ca21db6ae7cfb195f37cb413e3c255b6",
      "new_mode": 33188,
      "new_path": "gold/testsuite/Makefile.in"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "3b004c65207b54944d7a288417bd2c5f2b06d8ac",
      "new_mode": 33188,
      "new_path": "gold/testsuite/plugin_test_defsym.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "6066f9b0c9c8d56a4900deda3733b8c53f91ce55",
      "new_mode": 33261,
      "new_path": "gold/testsuite/plugin_test_defsym.sh"
    }
  ]
}
