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 | ------------------------------------------------------------------ |
Avi Drissman | ea62cfa | 2023-01-24 14:57:29 -0500 | [diff] [blame] | 89 | commit 3dc3d47978ef567966cb21a7b6d617fb688e6029 |
| 90 | Author: Byoungchan Lee <daniel.l@hpcnt.com> |
| 91 | Date: Tue Jul 27 05:09:09 2021 +0900 |
Dale Curtis | 15066c3 | 2020-07-08 12:40:19 -0700 | [diff] [blame] | 92 | |
Avi Drissman | ea62cfa | 2023-01-24 14:57:29 -0500 | [diff] [blame] | 93 | Emit the LC_BUILD_VERSION load command when creating a mach object. |
Dale Curtis | 15066c3 | 2020-07-08 12:40:19 -0700 | [diff] [blame] | 94 | |
Avi Drissman | ea62cfa | 2023-01-24 14:57:29 -0500 | [diff] [blame] | 95 | LC_BUILD_VERSION contains the min OS version on which this binary |
| 96 | was built to run for its platform in mach object. It is required for |
| 97 | targets like iOS Catalyst. |
Dale Curtis | 15066c3 | 2020-07-08 12:40:19 -0700 | [diff] [blame] | 98 | |
Avi Drissman | ea62cfa | 2023-01-24 14:57:29 -0500 | [diff] [blame] | 99 | Also, emit the __LLVM segment, __asm section to tell the Apple |
| 100 | toolchain that this object is from assembler and has no bitcode. |
| 101 | This trick is used in Kotlin/Native, Rust, Flutter, Golang and yasm. |
Dale Curtis | 15066c3 | 2020-07-08 12:40:19 -0700 | [diff] [blame] | 102 | |
Avi Drissman | ea62cfa | 2023-01-24 14:57:29 -0500 | [diff] [blame] | 103 | Bug: 1145197, webrtc:11516 |
| 104 | Change-Id: I6859cc171f80d1aa86d9d7187c2f8ceac7b8c4f3 |
Dale Curtis | 15066c3 | 2020-07-08 12:40:19 -0700 | [diff] [blame] | 105 | |
| 106 | Affects: |
Avi Drissman | ea62cfa | 2023-01-24 14:57:29 -0500 | [diff] [blame] | 107 | asm/nasm.c |
| 108 | output/macho.h |
| 109 | output/outmacho.c |
| 110 | |
| 111 | ------------------------------------------------------------------ |
| 112 | commit 9215e8e1d0fe474ffd3e16c1a07a0f97089e6224 |
| 113 | Author: Nico Weber <thakis@chromium.org> |
| 114 | Date: Mon Oct 18 15:16:22 2021 -0400 |
| 115 | |
| 116 | nasm: Cherry-pick -Wbitwise-instead-of-logical fix |
| 117 | |
| 118 | This cherry-picks https://github.com/netwide-assembler/nasm/pull/17 |
| 119 | |
| 120 | Bug: chromium:1255745 |
| 121 | Change-Id: I230b9ab9fd0a8baa1cdc8dd6e62cdc069cb14070 |
| 122 | |
| 123 | Affects: |
| 124 | asm/preproc.c |
Dale Curtis | 15066c3 | 2020-07-08 12:40:19 -0700 | [diff] [blame] | 125 | |