tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

repack-clang.sh (1571B)


      1 #!/bin/bash
      2 set -x -e -v
      3 
      4 shopt -s nullglob
      5 
      6 # This script is for repacking clang for cross targets on a Linux host.
      7 
      8 cd $MOZ_FETCHES_DIR
      9 
     10 # We have a clang toolchain in $MOZ_FETCHES_DIR/clang
     11 # We have some compiler-rts in $MOZ_FETCHES_DIR/compiler-rt*
     12 # We have some libunwinds in $MOZ_FETCHES_DIR/libunwind*
     13 # We copy everything from the compiler-rts into clang/lib/clang/$version/
     14 # and everything from the libunwinds into clang/
     15 clang_ver_dir=$(echo clang/lib/clang/*/include)
     16 clang_ver_dir=${clang_ver_dir%/include}
     17 [ -n "$clang_ver_dir" ] && for c in compiler-rt* libunwind*; do
     18  case $c in
     19  compiler-rt*)
     20    clang_dir=$clang_ver_dir
     21    ;;
     22  libunwind*)
     23    clang_dir=clang
     24    ;;
     25  esac
     26  find $c -mindepth 1 -type d | while read d; do
     27    mkdir -p "$clang_dir/${d#$c/}"
     28    find $d -mindepth 1 -maxdepth 1 -not -type d | while read f; do
     29      target_file="$clang_dir/${f#$c/}"
     30      case $d in
     31      compiler-rt-*/lib/darwin)
     32        if [ -f "$target_file" ]; then
     33          # Unify overlapping files for darwin/
     34          $MOZ_FETCHES_DIR/cctools/bin/lipo -create "$f" "$target_file" -output "$target_file.new"
     35          mv "$target_file.new" "$target_file"
     36          continue
     37        fi
     38        ;;
     39      esac
     40      if [ -f "$target_file" ] && ! diff -q "$f" "$target_file" 2>/dev/null; then
     41        echo "Cannot copy $f because it is already in ${target_file%/*}" >&2 && exit 1
     42      fi
     43      cp "$f" "$target_file"
     44    done
     45  done
     46 done
     47 
     48 if [ -n "$UPLOAD_DIR" ]; then
     49  tar caf clang.tar.zst clang
     50  mkdir -p $UPLOAD_DIR
     51  mv clang.tar.zst $UPLOAD_DIR
     52 fi