)]}'
{
  "commit": "82ddcb040570411fc2d421d96b3e69711c670328",
  "tree": "fb344f5cf69968cef3739d437de97a86817c2219",
  "parents": [
    "e3e8a75d2acfc61ebf25524666a0a2c6abb0620c"
  ],
  "author": {
    "name": "Robert P. J. Day",
    "email": "rpjday@mindspring.com",
    "time": "Sat Feb 10 01:46:20 2007 -0800"
  },
  "committer": {
    "name": "Linus Torvalds",
    "email": "torvalds@woody.linux-foundation.org",
    "time": "Sun Feb 11 10:51:35 2007 -0800"
  },
  "message": "[PATCH] extend the set of \"__attribute__\" shortcut macros\n\nExtend the set of \"__attribute__\" shortcut macros, and remove identical\n(and now superfluous) definitions from a couple of source files.\n\nbased on a page at robert love\u0027s blog:\n\n\thttp://rlove.org/log/2005102601\n\nextend the set of shortcut macros defined in compiler-gcc.h with the\nfollowing:\n\n#define __packed                       __attribute__((packed))\n#define __weak                         __attribute__((weak))\n#define __naked                        __attribute__((naked))\n#define __noreturn                     __attribute__((noreturn))\n#define __pure                         __attribute__((pure))\n#define __aligned(x)                   __attribute__((aligned(x)))\n#define __printf(a,b)                  __attribute__((format(printf,a,b)))\n\nOnce these are in place, it\u0027s up to subsystem maintainers to decide if they\nwant to take advantage of them.  there is already a strong precedent for\nusing shortcuts like this in the source tree.\n\nThe ones that might give people pause are \"__aligned\" and \"__printf\", but\nshortcuts for both of those are already in use, and in some ways very\nconfusingly.  note the two very different definitions for a macro named\n\"ALIGNED\":\n\n  drivers/net/sgiseeq.c:#define ALIGNED(x) ((((unsigned long)(x)) + 0xf) \u0026 ~(0xf))\n  drivers/scsi/ultrastor.c:#define ALIGNED(x) __attribute__((aligned(x)))\n\nalso:\n\n  include/acpi/platform/acgcc.h:\n    #define ACPI_PRINTF_LIKE(c) __attribute__ ((__format__ (__printf__, c, c+1)))\n\nGiven the precedent, then, it seems logical to at least standardize on a\nconsistent set of these macros.\n\nSigned-off-by: Robert P. J. Day \u003crpjday@mindspring.com\u003e\nAcked-by: Ralf Baechle \u003cralf@linux-mips.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "1f954a238a6332b0d8aaa0a4dde2fc5903f4f225",
      "old_mode": 33188,
      "old_path": "arch/mips/mm/cache.c",
      "new_id": "31819c58bffaa188c676f9c61112c569a2f8874c",
      "new_mode": 33188,
      "new_path": "arch/mips/mm/cache.c"
    },
    {
      "type": "modify",
      "old_id": "88099ab1a180121449cfc04d7ca3a0d26b9366ef",
      "old_mode": 33188,
      "old_path": "fs/hfs/hfs.h",
      "new_id": "1445e3a56ed45695428a1633a344c2f5f6462d1b",
      "new_mode": 33188,
      "new_path": "fs/hfs/hfs.h"
    },
    {
      "type": "modify",
      "old_id": "49205531a5006b0ce731908628c5d485afeed77c",
      "old_mode": 33188,
      "old_path": "fs/hfsplus/hfsplus_raw.h",
      "new_id": "fe99fe8db61a3cb279885cee2c73cf5743704604",
      "new_mode": 33188,
      "new_path": "fs/hfsplus/hfsplus_raw.h"
    },
    {
      "type": "modify",
      "old_id": "6e1c44a935d411e5bbd5793b163d9082960d2196",
      "old_mode": 33188,
      "old_path": "include/linux/compiler-gcc.h",
      "new_id": "9008eabb9c3ded7440e75c3d2b2c6c4c9c5f7e01",
      "new_mode": 33188,
      "new_path": "include/linux/compiler-gcc.h"
    }
  ]
}
