diff options
Diffstat (limited to 'src/util/make_prefix_headers.go')
-rw-r--r-- | src/util/make_prefix_headers.go | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/src/util/make_prefix_headers.go b/src/util/make_prefix_headers.go index a5e5441f..b536f14c 100644 --- a/src/util/make_prefix_headers.go +++ b/src/util/make_prefix_headers.go @@ -172,16 +172,32 @@ func writeNASMHeader(symbols []string, path string) error { ; OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN ; CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +; 32-bit Windows adds underscores to C functions, while 64-bit Windows does not. +%ifidn __OUTPUT_FORMAT__, win32 `); err != nil { return err } for _, symbol := range symbols { - if _, err := fmt.Fprintf(f, "%%define %s BORINGSSL_PREFIX %%+ %s\n", symbol, symbol); err != nil { + if _, err := fmt.Fprintf(f, "%%xdefine _%s _ %%+ BORINGSSL_PREFIX %%+ _%s\n", symbol, symbol); err != nil { return err } } + if _, err := fmt.Fprintf(f, "%%else\n"); err != nil { + return err + } + + for _, symbol := range symbols { + if _, err := fmt.Fprintf(f, "%%xdefine %s BORINGSSL_PREFIX %%+ _%s\n", symbol, symbol); err != nil { + return err + } + } + + if _, err := fmt.Fprintf(f, "%%endif\n"); err != nil { + return err + } + return nil } |