blob: 9e5c86e39b77cc00abe2072e7fc50b1088e3a517 [file] [log] [blame]
Dale Curtis417709d2018-11-19 15:46:52 -08001---------------------------------------------------------------------
2-- Chromium Patches. Autogenerated by find_patches.py, do not edit --
3---------------------------------------------------------------------
4
5
6------------------------------------------------------------------
7commit 107604940bdc9787bc12fab8cdcc22ca6d53fdbb
8Author: Dale Curtis <dalecurtis@chromium.org>
9Date: 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
22Affects:
23 asm/nasm.c
24 disasm/ndisasm.c
25 include/ver.h
26 nasmlib/ver.c
27
Dale Curtis4ee6a692018-11-19 13:52:05 -080028------------------------------------------------------------------
Reid Klecknere62fca42019-08-06 15:24:48 -070029commit 4ee6a69ce33be1e96fd3c44a6e3ae3d8177453da
Dale Curtis4ee6a692018-11-19 13:52:05 -080030Author: Dale Curtis <dalecurtis@chromium.org>
Reid Klecknere62fca42019-08-06 15:24:48 -070031Date: Mon Nov 19 13:52:05 2018 -0800
Dale Curtis4ee6a692018-11-19 13:52:05 -080032
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 Klecknere62fca42019-08-06 15:24:48 -070040 Change-Id: I88c11d052aef8a9c4e48b3b976ad432f3b008dd6
41
Dale Curtis4ee6a692018-11-19 13:52:05 -080042Affects:
Dale Curtis4ee6a692018-11-19 13:52:05 -080043 asm/nasm.c
Reid Klecknere62fca42019-08-06 15:24:48 -070044 output/outcoff.c
45
46------------------------------------------------------------------
Dale Curtis15066c32020-07-08 12:40:19 -070047commit e62fca4a4a7f10e4f1e0506f2cfdb6c1c4b7cf3a
Reid Klecknere62fca42019-08-06 15:24:48 -070048Author: Reid Kleckner <rnk@google.com>
Dale Curtis15066c32020-07-08 12:40:19 -070049Date: Tue Aug 6 15:24:48 2019 -0700
Reid Klecknere62fca42019-08-06 15:24:48 -070050
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 Curtis15066c32020-07-08 12:40:19 -070078 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 Klecknere62fca42019-08-06 15:24:48 -070084Affects:
85 include/compiler.h
86 include/ilog2.h
Dale Curtis4ee6a692018-11-19 13:52:05 -080087
Dale Curtis15066c32020-07-08 12:40:19 -070088------------------------------------------------------------------
Avi Drissmanea62cfa2023-01-24 14:57:29 -050089commit 3dc3d47978ef567966cb21a7b6d617fb688e6029
90Author: Byoungchan Lee <daniel.l@hpcnt.com>
91Date: Tue Jul 27 05:09:09 2021 +0900
Dale Curtis15066c32020-07-08 12:40:19 -070092
Avi Drissmanea62cfa2023-01-24 14:57:29 -050093 Emit the LC_BUILD_VERSION load command when creating a mach object.
Dale Curtis15066c32020-07-08 12:40:19 -070094
Avi Drissmanea62cfa2023-01-24 14:57:29 -050095 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 Curtis15066c32020-07-08 12:40:19 -070098
Avi Drissmanea62cfa2023-01-24 14:57:29 -050099 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 Curtis15066c32020-07-08 12:40:19 -0700102
Avi Drissmanea62cfa2023-01-24 14:57:29 -0500103 Bug: 1145197, webrtc:11516
104 Change-Id: I6859cc171f80d1aa86d9d7187c2f8ceac7b8c4f3
Dale Curtis15066c32020-07-08 12:40:19 -0700105
106Affects:
Avi Drissmanea62cfa2023-01-24 14:57:29 -0500107 asm/nasm.c
108 output/macho.h
109 output/outmacho.c
110
111------------------------------------------------------------------
112commit 9215e8e1d0fe474ffd3e16c1a07a0f97089e6224
113Author: Nico Weber <thakis@chromium.org>
114Date: 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
123Affects:
124 asm/preproc.c
Dale Curtis15066c32020-07-08 12:40:19 -0700125