blob: e5d7a1196749a77e119643643dfb928882c8ed7f [file] [log] [blame]
Dale Curtis9596cc02018-10-31 14:25:55 -07001Name: Netwide Assembler
2Short Name: nasm
3URL: https://www.nasm.us/
Dale Curtis8784bed2020-07-13 10:48:27 -07004Version: 2.15.03rc6 / f1cf95480d9df9e7854a4be6844f86ff854e03d2
5CPEPrefix: cpe:/a:nasm:netwide_assembler:2.15.03rc6
Dale Curtis9596cc02018-10-31 14:25:55 -07006License: 2-Clause BSD
Raphael Kubo da Costa63707e52018-12-05 12:18:29 +01007License File: LICENSE
Dale Curtis9596cc02018-10-31 14:25:55 -07008Security Critical: no
Dale Curtis81fc45a2020-07-01 12:22:26 -07009Source: https://github.com/netwide-assembler/nasm
Dale Curtis9596cc02018-10-31 14:25:55 -070010
Dale Curtis417709d2018-11-19 15:46:52 -080011--[ DESCRIPTION ] ------------------
Dale Curtis9596cc02018-10-31 14:25:55 -070012This contains the source to NASM, the assembler used for parts of Chromium.
13
Dale Curtis9596cc02018-10-31 14:25:55 -070014
Dale Curtis417709d2018-11-19 15:46:52 -080015--[ PATCHES ] ------------------
16* See README.patches for the full listing.
17
18If you make any changes to nasm which are not in upstream, please update the
19README.patches file with the following command:
20
21 ./find_patches.py > README.patches
22
23Note: This script only works if you have added upstream as a remote per the
24directions in updating below.
25
26
27--[ UPDATING ] ------------------
Dale Curtis9596cc02018-10-31 14:25:55 -070028To update, have clang in your system path (from //third_party/llvm-
29build/Release+Asserts/bin) then do the following:
30
Dale Curtis81fc45a2020-07-01 12:22:26 -070031 git remote add upstream https://github.com/netwide-assembler/nasm.git
Dale Curtis3dacc5e2018-11-01 10:48:41 -070032 git fetch upstream
33 git merge upstream/master
Dale Curtis0e9e5be2018-11-01 17:34:21 -070034
35 # Maybe use git mergetool to resolve any conflicts with local patches.
36
37 # ***DO NOT USE*** git cl upload for this part or you will spam every author
38 # who committed something upstream with a Gerrit issue... :O You must also
39 # have the correct Gerrit permissions from one of the OWNERS to do this.
40 git push origin master
41
42 # You can safely use git cl upload for all of your own modifications past this
43 # point; I.e., once you have pushed all the commits from the git merge.
44
Dale Curtis352a7a12020-07-10 11:34:02 -070045 CC=clang CXX=clang++ CFLAGS="-std=c11 -Werror" ./autogen.sh
46 CC=clang CXX=clang++ CFLAGS="-std=c11 -Werror" ./configure
Dale Curtis3dacc5e2018-11-01 10:48:41 -070047 make perlreq
48 ./generate_nasm_sources.py
49 git add <any new .c/.h files which show up>
Dale Curtis9596cc02018-10-31 14:25:55 -070050
Dale Curtis03afeee2020-07-14 16:24:11 -070051 # Copy config/config.h to config-(mac|linux).h
Dale Curtis3dacc5e2018-11-01 10:48:41 -070052 # Revert config/config.h to the checked in version
53
54 git commit -a
55
Dale Curtis417709d2018-11-19 15:46:52 -080056
57--[ CONFIG_H_ ] ------------------
Dale Curtis3dacc5e2018-11-01 10:48:41 -070058In the event any new config.h flags are added, you may need to regenerate the
Dale Curtis405ddf72020-07-01 15:48:40 -070059config.h for Linux and Mac -- maybe for Windows if they haven't fixed msvc.h.
Dale Curtis3dacc5e2018-11-01 10:48:41 -070060
Dale Curtise2938142020-06-29 15:29:48 -070061To run the script on macOS you can follow the same instructions as above after
62setting up autoconf; with Homebrew: brew install autoconf automake libtool
63
64You will likely need to set SDKROOT to point to the macOS SDK if you haven't
65setup Xcode in the past. If you have the hermetic macOS toolchain in your
66checkout just add:
67
68export SDKROOT=$path_to_chrome_src/build/mac_files/xcode_binaries/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk
69
70You can stop after configure. Then just follow the copy instructions above.
Dale Curtis3dacc5e2018-11-01 10:48:41 -070071
Dale Curtis417709d2018-11-19 15:46:52 -080072
73--[ TODOS ] ------------------
Dale Curtis03afeee2020-07-14 16:24:11 -070074None at this time.
75