diff options
Diffstat (limited to '')
-rwxr-xr-x | taskcluster/scripts/misc/build-nasm.sh | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/taskcluster/scripts/misc/build-nasm.sh b/taskcluster/scripts/misc/build-nasm.sh new file mode 100755 index 0000000000..2c1cd8de57 --- /dev/null +++ b/taskcluster/scripts/misc/build-nasm.sh @@ -0,0 +1,53 @@ +#!/bin/bash +set -x -e -v + +COMPRESS_EXT=bz2 + +if [ -n "$TOOLTOOL_MANIFEST" ]; then + . $GECKO_PATH/taskcluster/scripts/misc/tooltool-download.sh +fi + +cd $MOZ_FETCHES_DIR/nasm-* +case "$1" in + win64) + export PATH="$MOZ_FETCHES_DIR/clang/bin:$PATH" + ./configure CC=x86_64-w64-mingw32-clang AR=llvm-ar RANLIB=llvm-ranlib --host=x86_64-w64-mingw32 + EXE=.exe + ;; + macosx64) + export PATH="$MOZ_FETCHES_DIR/clang/bin:$MOZ_FETCHES_DIR/cctools/bin:$PATH" + export LD_LIBRARY_PATH="$MOZ_FETCHES_DIR/clang/lib" + ./configure CC="clang --target=x86_64-apple-darwin -isysroot $MOZ_FETCHES_DIR/MacOSX10.12.sdk" --host=x86_64-apple-darwin + cat config.log + EXE= + ;; + *) + # Fix for .debug_loc section containing garbage on elf32 + # https://bugzilla.nasm.us/show_bug.cgi?id=3392631 + patch -p1 <<'EOF' +diff --git a/output/outelf.c b/output/outelf.c +index de99d076..47031e12 100644 +--- a/output/outelf.c ++++ b/output/outelf.c +@@ -3275,7 +3275,7 @@ static void dwarf_generate(void) + WRITELONG(pbuf,framelen-4); /* initial length */ + + /* build loc section */ +- loclen = 16; ++ loclen = is_elf64() ? 16 : 8; + locbuf = pbuf = nasm_malloc(loclen); + if (is_elf32()) { + WRITELONG(pbuf,0); /* null beginning offset */ +EOF + ./configure + EXE= + ;; +esac +make -j$(nproc) + +mv nasm$EXE nasm-tmp +mkdir nasm +mv nasm-tmp nasm/nasm$EXE +tar -acf nasm.tar.$COMPRESS_EXT nasm +mkdir -p "$UPLOAD_DIR" +cp nasm.tar.$COMPRESS_EXT "$UPLOAD_DIR" |