Dale Curtis | 417709d | 2018-11-19 15:46:52 -0800 | [diff] [blame] | 1 | --------------------------------------------------------------------- |
| 2 | -- Chromium Patches. Autogenerated by find_patches.py, do not edit -- |
| 3 | --------------------------------------------------------------------- |
| 4 | |
| 5 | |
| 6 | ------------------------------------------------------------------ |
| 7 | commit 107604940bdc9787bc12fab8cdcc22ca6d53fdbb |
| 8 | Author: Dale Curtis <dalecurtis@chromium.org> |
| 9 | Date: Wed Oct 31 13:03:37 2018 -0700 |
| 10 | |
| 11 | Apply deterministic build patch. |
| 12 | |
| 13 | This removes __DATE__ from a few places to ensure the build is always |
| 14 | the same. Patch originally authored by davidben at chromium.org |
| 15 | |
| 16 | This is one of the initial commits preparing NASM for use in Chrome. |
| 17 | |
| 18 | BUG=766721 |
| 19 | |
| 20 | Change-Id: I4217f9ffed1455b8f244b024dc10dbb8c5c0664d |
| 21 | |
| 22 | Affects: |
| 23 | asm/nasm.c |
| 24 | disasm/ndisasm.c |
| 25 | include/ver.h |
| 26 | nasmlib/ver.c |
| 27 | |
Dale Curtis | 4ee6a69 | 2018-11-19 13:52:05 -0800 | [diff] [blame] | 28 | ------------------------------------------------------------------ |
Reid Kleckner | e62fca4 | 2019-08-06 15:24:48 -0700 | [diff] [blame] | 29 | commit 4ee6a69ce33be1e96fd3c44a6e3ae3d8177453da |
Dale Curtis | 4ee6a69 | 2018-11-19 13:52:05 -0800 | [diff] [blame] | 30 | Author: Dale Curtis <dalecurtis@chromium.org> |
Reid Kleckner | e62fca4 | 2019-08-06 15:24:48 -0700 | [diff] [blame] | 31 | Date: Mon Nov 19 13:52:05 2018 -0800 |
Dale Curtis | 4ee6a69 | 2018-11-19 13:52:05 -0800 | [diff] [blame] | 32 | |
| 33 | Remove uses of time(NULL) for build determism. |
| 34 | |
| 35 | Removes cases suggested on the bug. |
| 36 | |
| 37 | BUG=766721 |
| 38 | TEST=none |
| 39 | |
Reid Kleckner | e62fca4 | 2019-08-06 15:24:48 -0700 | [diff] [blame] | 40 | Change-Id: I88c11d052aef8a9c4e48b3b976ad432f3b008dd6 |
| 41 | |
Dale Curtis | 4ee6a69 | 2018-11-19 13:52:05 -0800 | [diff] [blame] | 42 | Affects: |
Dale Curtis | 4ee6a69 | 2018-11-19 13:52:05 -0800 | [diff] [blame] | 43 | asm/nasm.c |
Reid Kleckner | e62fca4 | 2019-08-06 15:24:48 -0700 | [diff] [blame] | 44 | output/outcoff.c |
| 45 | |
| 46 | ------------------------------------------------------------------ |
Dale Curtis | 15066c3 | 2020-07-08 12:40:19 -0700 | [diff] [blame] | 47 | commit e62fca4a4a7f10e4f1e0506f2cfdb6c1c4b7cf3a |
Reid Kleckner | e62fca4 | 2019-08-06 15:24:48 -0700 | [diff] [blame] | 48 | Author: Reid Kleckner <rnk@google.com> |
Dale Curtis | 15066c3 | 2020-07-08 12:40:19 -0700 | [diff] [blame] | 49 | Date: Tue Aug 6 15:24:48 2019 -0700 |
Reid Kleckner | e62fca4 | 2019-08-06 15:24:48 -0700 | [diff] [blame] | 50 | |
| 51 | Fix extern_inline for MSVC and clang-cl |
| 52 | |
| 53 | Prior to this change, no inline function bodies would be provided for |
| 54 | MSVC. This change fixes that, so nasm will be slightly faster. |
| 55 | |
| 56 | With clang-cl, however, there would be LNK4006 warnings if the compiler |
| 57 | chooses not to inline the ilog2 functions. The easiest way to observe |
| 58 | this is with `nmake /f Mkfiles/msvc.mak CC=clang-cl DEBUG=1`. This |
| 59 | disables inlining, and I see this at the end of the link: |
| 60 | ilog2.obj : warning LNK4006: ilog2_32 already defined in outmacho.obj; second definition ignored |
| 61 | ilog2.obj : warning LNK4006: ilog2_64 already defined in eval.obj; second definition ignored |
| 62 | ilog2.obj : warning LNK4006: alignlog2_32 already defined in outmacho.obj; second definition ignored |
| 63 | |
| 64 | When additional instrumentation (-fprofile-instr-generate) is enabled, |
| 65 | the warning can become an error, as we discovered in |
| 66 | https://crbug.com/989745. |
| 67 | |
| 68 | MSVC and compilers pretending to be MSVC (clang-cl) implement inline in |
| 69 | C with C++ semantics. In C++, inline functions are emitted by the |
| 70 | compiler whenever they are needed and the linker discards duplicate |
| 71 | inline function definitions. This change adds a new HAVE_MSVC_INLINE |
| 72 | macro and adjusts the ifdefs to handle this mode. I chose to keep |
| 73 | ilog2.c as part of the build, and to have it emit duplicate definitions |
| 74 | of all the inline functions. An alternative solution would be to exclude |
| 75 | it from the build, but I felt it was best to solve this in source code |
| 76 | instead of the build system. |
| 77 | |
Dale Curtis | 15066c3 | 2020-07-08 12:40:19 -0700 | [diff] [blame] | 78 | R=dalecurtis@chromium.org, davidben@chromium.org |
| 79 | |
| 80 | Chromium-specific: I reran find_patches.py with some modifications to |
| 81 | make it work on Windows. |
| 82 | Change-Id: I21011ed4f619f920c53f7cfc3afaa32dc2c0ff4e |
| 83 | |
Reid Kleckner | e62fca4 | 2019-08-06 15:24:48 -0700 | [diff] [blame] | 84 | Affects: |
| 85 | include/compiler.h |
| 86 | include/ilog2.h |
Dale Curtis | 4ee6a69 | 2018-11-19 13:52:05 -0800 | [diff] [blame] | 87 | |
Dale Curtis | 15066c3 | 2020-07-08 12:40:19 -0700 | [diff] [blame] | 88 | ------------------------------------------------------------------ |
| 89 | commit 2326c263ecb55e2fb0747def58855198bdd0fbc4 |
| 90 | Author: H. Peter Anvin (Intel) <hpa@zytor.com> |
| 91 | Date: Mon Jul 6 21:46:43 2020 -0700 |
| 92 | |
| 93 | BR 3392692: outcoff: allow user to reduce the default alignment |
| 94 | |
| 95 | NASM would incorrectly only allow for the alignment to be increased, |
| 96 | even when overridden by the user. Allow the user to specify any |
| 97 | alignment value and have it override the partition type default. |
| 98 | |
| 99 | The user can increade their own alignment value specification later, |
| 100 | of course, and the sectalign directive will present a floor for either |
| 101 | kind of specification. |
| 102 | |
| 103 | Reported-by: Dale Curtis <dalecurtis@chromium.org> |
| 104 | Signed-off-by: H. Peter Anvin (Intel) <hpa@zytor.com> |
| 105 | |
| 106 | Affects: |
| 107 | doc/nasmdoc.src |
| 108 | output/outcoff.c |
| 109 | output/pecoff.h |
| 110 | |