)]}'
{
  "commit": "f772acf8a584067033eff1e231fcd1fb3a00d3d9",
  "tree": "27ee499971364e7116fecdbb065e8826910528cd",
  "parents": [
    "b9cce2c7732af7adfd4397398cef230875137261"
  ],
  "author": {
    "name": "Wolfgang Denk",
    "email": "wd@denx.de",
    "time": "Mon Aug 17 13:17:29 2009 +0200"
  },
  "committer": {
    "name": "Wolfgang Denk",
    "email": "wd@denx.de",
    "time": "Fri Aug 21 23:11:53 2009 +0200"
  },
  "message": "ARM: compiler options cleanup - improve tool chain support\n\nFor some time there have been repeated reports about build problems\nwith some ARM (cross) tool chains.  Especially issues about\n(in)compatibility with the tool chain provided runtime support\nlibrary libgcc.a caused to add and support a private implementation\nof such runtime support code in U-Boot.  A closer look at the code\nindicated that some of these issues are actually home-made.  This\npatch attempts to clean up some of the most obvious problems and make\nbuilding of U-Boot with different tool chains easier:\n\n- Even though all ARM systems basicy used the same compiler options\n  to select a specific ABI from the tool chain, the code for this was\n  distributed over all cpu/*/config.mk files.  We move this one level\n  up into lib_arm/config.mk instead.\n\n- So far, we only checked if \"-mapcs-32\" was supported by the tool\n  chain; if yes, this was used, if not, \"-mabi\u003dapcs-gnu\" was\n  selected, no matter if the tool chain actually understood this\n  option.  There was no support for EABI conformant tool chains.\n  This patch implements the following logic:\n\n  1) If the tool chain supports\n\t\"-mabi\u003daapcs-linux -mno-thumb-interwork\"\n     we use these options (EABI conformant tool chain).\n  2) Otherwise, we check first if\n\t\"-mapcs-32\"\n     is supported, and then check for\n\t\"-mabi\u003dapcs-gnu\"\n     If one test succeeds, we use the first found option.\n  3) In case 2), we also test if \"-mno-thumb-interwork\", and use\n     this if the test succeeds. [For \"-mabi\u003daapcs-linux\" we set\n     \"-mno-thumb-interwork\" mandatorily.]\n\n  This way we use a similar logic for the compile options as the\n  Linux kernel does.\n\n- Some EABI conformant tool chains cause external references to\n  utility functions like raise(); such functions are provided in the\n  new file lib_arm/eabi_compat.c\n\n  Note that lib_arm/config.mk gets parsed several times, so we must\n  make sure to add eabi_compat.o only once to the linker list.\n\nSigned-off-by: Wolfgang Denk \u003cwd@denx.de\u003e\nCc: Jean-Christophe PLAGNIOL-VILLARD \u003cplagnioj@jcrosoft.com\u003e\nCc: Dirk Behme \u003cdirk.behme@googlemail.com\u003e\nCc: Magnus Lilja \u003clilja.magnus@gmail.com\u003e\nCc: Tom Rix \u003cTom.Rix@windriver.com\u003e\nCc: Prafulla Wadaskar \u003cprafulla@marvell.com\u003e\nAcked-by: Sergey Kubushyn \u003cksi@koi8.net\u003e\nTested-by: Magnus Lilja \u003clilja.magnus@gmail.com\u003e\nTested-by: Andrzej Wolski \u003cawolski@poczta.fm\u003e\nTested-by: Gaye Abdoulaye Walsimou \u003cwalsimou@walsimou.com\u003e\nTested-by: Tom Rix \u003cTom.Rix@windriver.com\u003e\nTested-by: Jean-Christophe PLAGNIOL-VILLARD \u003cplagnioj@jcrosoft.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "fd56621fefe1602a21562291276152c47f8246c2",
      "old_mode": 33188,
      "old_path": "config.mk",
      "new_id": "0c6d1d1aa76cdd15afd2658537b7e790e33f3594",
      "new_mode": 33188,
      "new_path": "config.mk"
    },
    {
      "type": "modify",
      "old_id": "295e8a5b87afaf029084ced6e850f63bb178e66d",
      "old_mode": 33188,
      "old_path": "cpu/arm1136/config.mk",
      "new_id": "61d5a382ed82816456c1c90f61abde19219cd969",
      "new_mode": 33188,
      "new_path": "cpu/arm1136/config.mk"
    },
    {
      "type": "modify",
      "old_id": "d2f057bf74fd18ea4aa8c22e229356c5ad6cebce",
      "old_mode": 33188,
      "old_path": "cpu/arm1176/config.mk",
      "new_id": "a31c7b0f8979d1d0bffa292c3a38a7bbcf73a4e7",
      "new_mode": 33188,
      "new_path": "cpu/arm1176/config.mk"
    },
    {
      "type": "modify",
      "old_id": "4f3b66c5d743205f5f962eb136f00dcc49ae82c5",
      "old_mode": 33188,
      "old_path": "cpu/arm1176/s3c64xx/config.mk",
      "new_id": "a31c7b0f8979d1d0bffa292c3a38a7bbcf73a4e7",
      "new_mode": 33188,
      "new_path": "cpu/arm1176/s3c64xx/config.mk"
    },
    {
      "type": "modify",
      "old_id": "3cae1dc8f7326d50f0ccbefda7ddb4009659100c",
      "old_mode": 33188,
      "old_path": "cpu/arm720t/config.mk",
      "new_id": "74d52831edef9961fd8e3f7b3aeaf1d5b112f37f",
      "new_mode": 33188,
      "new_path": "cpu/arm720t/config.mk"
    },
    {
      "type": "modify",
      "old_id": "5d8a10ff6281282af6c659d685502cff40e9e275",
      "old_mode": 33188,
      "old_path": "cpu/arm920t/config.mk",
      "new_id": "a43b15671106fb113cb03c3e3ce6cbac5be6397f",
      "new_mode": 33188,
      "new_path": "cpu/arm920t/config.mk"
    },
    {
      "type": "modify",
      "old_id": "5d8a10ff6281282af6c659d685502cff40e9e275",
      "old_mode": 33188,
      "old_path": "cpu/arm925t/config.mk",
      "new_id": "a43b15671106fb113cb03c3e3ce6cbac5be6397f",
      "new_mode": 33188,
      "new_path": "cpu/arm925t/config.mk"
    },
    {
      "type": "modify",
      "old_id": "885d5c134e904f8acd53a3832c7628620014b437",
      "old_mode": 33188,
      "old_path": "cpu/arm926ejs/config.mk",
      "new_id": "90eb3c0edec62332e0553e0aa04da6e13d6f2341",
      "new_mode": 33188,
      "new_path": "cpu/arm926ejs/config.mk"
    },
    {
      "type": "modify",
      "old_id": "a57d03aa01de733f2f3ad6e1da577d111e56981c",
      "old_mode": 33188,
      "old_path": "cpu/arm926ejs/davinci/config.mk",
      "new_id": "7757be398ae59546553d023dda9e0ebb0d6774a6",
      "new_mode": 33188,
      "new_path": "cpu/arm926ejs/davinci/config.mk"
    },
    {
      "type": "modify",
      "old_id": "9d62ba8e3f486507e9f3b3e3ace002d5f60fffc9",
      "old_mode": 33188,
      "old_path": "cpu/arm946es/config.mk",
      "new_id": "a81321bd3ccff634c8671f04f7fd51040d0fbc5c",
      "new_mode": 33188,
      "new_path": "cpu/arm946es/config.mk"
    },
    {
      "type": "modify",
      "old_id": "3bfe3db20c9dce7dd6c15730896a567da513167c",
      "old_mode": 33188,
      "old_path": "cpu/arm_cortexa8/config.mk",
      "new_id": "da5ee162c5f2971cbf1a91a7b4780e16bf74654d",
      "new_mode": 33188,
      "new_path": "cpu/arm_cortexa8/config.mk"
    },
    {
      "type": "modify",
      "old_id": "233728762f9f00c862f4b385d694e1ff43337ffc",
      "old_mode": 33188,
      "old_path": "cpu/arm_cortexa8/omap3/board.c",
      "new_id": "b8bd0524af9b527b689437293a0ea38fc7ae468f",
      "new_mode": 33188,
      "new_path": "cpu/arm_cortexa8/omap3/board.c"
    },
    {
      "type": "modify",
      "old_id": "9d62ba8e3f486507e9f3b3e3ace002d5f60fffc9",
      "old_mode": 33188,
      "old_path": "cpu/arm_intcm/config.mk",
      "new_id": "a81321bd3ccff634c8671f04f7fd51040d0fbc5c",
      "new_mode": 33188,
      "new_path": "cpu/arm_intcm/config.mk"
    },
    {
      "type": "modify",
      "old_id": "a71a20b822d61051f2de7f47c952b3fa459d23be",
      "old_mode": 33188,
      "old_path": "cpu/ixp/config.mk",
      "new_id": "2c33b40a2cb20db2a3f8cf3b56e33c3e281e7439",
      "new_mode": 33188,
      "new_path": "cpu/ixp/config.mk"
    },
    {
      "type": "modify",
      "old_id": "c0e7a1d0448ed9fbd917bc9b6cc22535be8c3779",
      "old_mode": 33188,
      "old_path": "cpu/lh7a40x/config.mk",
      "new_id": "27bc48126065b74abf4df3416b61c2c5106702a0",
      "new_mode": 33188,
      "new_path": "cpu/lh7a40x/config.mk"
    },
    {
      "type": "modify",
      "old_id": "af910e2f67069b5df76aa8ccde304decf9e42189",
      "old_mode": 33188,
      "old_path": "cpu/pxa/config.mk",
      "new_id": "f360478d0c287546366ebffa4d01d27927f00333",
      "new_mode": 33188,
      "new_path": "cpu/pxa/config.mk"
    },
    {
      "type": "modify",
      "old_id": "01e7040d61d4830a16638eb5a9acfc3fe092d142",
      "old_mode": 33188,
      "old_path": "cpu/s3c44b0/config.mk",
      "new_id": "3623f2503e229c0451eaae14ac72e9db6f854452",
      "new_mode": 33188,
      "new_path": "cpu/s3c44b0/config.mk"
    },
    {
      "type": "modify",
      "old_id": "9ef4a19d339d449c0038cbdd9e1aa75165f323bd",
      "old_mode": 33188,
      "old_path": "cpu/sa1100/config.mk",
      "new_id": "553cd0c9cfcbf51bcc20b0655d14cabdc20f960c",
      "new_mode": 33188,
      "new_path": "cpu/sa1100/config.mk"
    },
    {
      "type": "modify",
      "old_id": "c37e2e0d8a989802dfef2b9b7b0efb43f07d1b4f",
      "old_mode": 33188,
      "old_path": "lib_arm/Makefile",
      "new_id": "02933485cd16600f4f9dbae073a85184a40a7d8d",
      "new_mode": 33188,
      "new_path": "lib_arm/Makefile"
    },
    {
      "type": "modify",
      "old_id": "a13603e40917b32db8b9703814bbd01f1e8d3c92",
      "old_mode": 33188,
      "old_path": "lib_arm/config.mk",
      "new_id": "705dfc306c4d578d0142f70fc610dc8ddb15858b",
      "new_mode": 33188,
      "new_path": "lib_arm/config.mk"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "86eacf1b0e9486258be562726c47178e5fa56dd6",
      "new_mode": 33188,
      "new_path": "lib_arm/eabi_compat.c"
    }
  ]
}
