)]}' { "commit": "adff85bf1f3d576f163f1a11c24a25ced9cbd4b1", "tree": "cc1a95776b7ff81a2194063c72731f3a3287ec86", "parents": [ "0d272e46064058e6d93c814fb6955aea28b5be3d" ], "author": { "name": "Finn Thain", "email": "fthain@telegraphics.com.au", "time": "Wed Jan 16 16:23:24 2019 +1100" }, "committer": { "name": "Geert Uytterhoeven", "email": "geert@linux-m68k.org", "time": "Sun Jan 20 10:51:04 2019 +0100" }, "message": "m68k: Add -ffreestanding to CFLAGS\n\nThis patch fixes a build failure when using GCC 8.1:\n\n/usr/bin/ld: block/partitions/ldm.o: in function `ldm_parse_tocblock\u0027:\nblock/partitions/ldm.c:153: undefined reference to `strcmp\u0027\n\nThis is caused by a new optimization which effectively replaces a\nstrncmp() call with a strcmp() call. This affects a number of strncmp()\ncall sites in the kernel.\n\nThe entire class of optimizations is avoided with -fno-builtin, which\ngets enabled by -ffreestanding. This may avoid possible future build\nfailures in case new optimizations appear in future compilers.\n\nI haven\u0027t done any performance measurements with this patch but I did\ncount the function calls in a defconfig build. For example, there are now\n23 more sprintf() calls and 39 fewer strcpy() calls. The effect on the\nother libc functions is smaller.\n\nIf this harms performance we can tackle that regression by optimizing\nthe call sites, ideally using semantic patches. That way, clang and ICC\nbuilds might benfit too.\n\nCc: stable@vger.kernel.org\nReference: https://marc.info/?l\u003dlinux-m68k\u0026m\u003d154514816222244\u0026w\u003d2\nSigned-off-by: Finn Thain \u003cfthain@telegraphics.com.au\u003e\nSigned-off-by: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\n", "tree_diff": [ { "type": "modify", "old_id": "f00ca53f8c1417e7699eec4135b632cced5c47a0", "old_mode": 33188, "old_path": "arch/m68k/Makefile", "new_id": "482513b9af2c5dde54d28e19df519886b56b4fca", "new_mode": 33188, "new_path": "arch/m68k/Makefile" } ] }