blob: 6420336726bf6317c6df6481b63d1b3cf148e611 [file] [edit]
Name: Netwide Assembler
Short Name: nasm
URL: https://www.nasm.us/
Version: 3.01 / 19fd1bb434f2fed19b0eb82b1b42c5608b601134
CPEPrefix: cpe:/a:nasm:netwide_assembler:3.01
License: BSD-2-Clause
License File: LICENSE
Security Critical: no
Shipped: no
Source: https://github.com/netwide-assembler/nasm
Update Mechanism: Manual (https://crbug.com/495536626)
--[ DESCRIPTION ] ------------------
This contains the source to NASM, the assembler used for parts of Chromium.
--[ PATCHES ] ------------------
* See README.patches for the full listing.
If you make any changes to nasm which are not in upstream, please update the
README.patches file with the following command:
./find_patches.py > README.patches
Note: This script only works if you have added upstream as a remote per the
directions in updating below.
--[ UPDATING ] ------------------
To update, have clang in your system path (from //third_party/llvm-
build/Release+Asserts/bin) then do the following:
git remote add upstream https://github.com/netwide-assembler/nasm.git
git fetch upstream
git merge upstream/master
# Maybe use git mergetool to resolve any conflicts with local patches.
# You must be a member of the nasm-owners Gerrit group to do the next step.
# You may need to follow go/looker-gob-dev-guide#set-up-change-id-hook to
# setup a Change-Id for the pushed change. You'll get a warning during push
# if you don't have the hook setup.
git push origin HEAD:refs/for/main
# You can safely use git cl upload for all of your own modifications past this
# point; I.e., once you have pushed all the commits from the git merge.
CC=clang CXX=clang++ CFLAGS="-std=c11 -Werror" ./autogen.sh
CC=clang CXX=clang++ CFLAGS="-std=c11 -Werror" ./configure
make perlreq
# Note: If make perlreq says everything is up-to-date, you may need to run
# "make spotless" and then rerun the autogen/configure/make steps above.
./generate_nasm_sources.py
git add <any new .c/.h files which show up>
# Copy config/config.h to config-(mac|linux).h
# Revert config/config.h to the checked in version
./generate_nasm_configs.py
git commit -a
--[ CONFIG_H_ ] ------------------
In the event any new config.h flags are added, you may need to regenerate the
config.h for Linux and Mac -- maybe for Windows if they haven't fixed msvc.h.
To run the script on macOS you can follow the same instructions as above after
setting up autoconf; with Homebrew: brew install autoconf automake libtool
You will likely need to set SDKROOT to point to the macOS SDK if you haven't
setup Xcode in the past. If you have the hermetic macOS toolchain in your
checkout just add:
export SDKROOT=$path_to_chrome_src/build/mac_files/xcode_binaries/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk
You can stop after configure. Then just follow the copy instructions above
(including running generate_nasm_configs.py).
--[ TODOS ] ------------------
None at this time.