1#!/bin/bash 2 3# build_linklists.sh 4# Libc 5 6# Skip script during installhdrs 7if [ "$ACTION" == installhdrs ]; then exit 0; fi 8# BUILD_ARCHIVES needs to be set in the project settings 9if [ -z "$BUILD_ARCHIVES" ]; then exit 0; fi 10 11[ ! -d "$BUILT_PRODUCTS_DIR" ] && mkdir -p "$BUILT_PRODUCTS_DIR" 12[ ! -d "$DERIVED_FILES_DIR" ] && mkdir -p "$DERIVED_FILES_DIR" 13 14NORMAL_LIST="$BUILT_PRODUCTS_DIR/normal.linklist" 15DEBUG_LIST="$BUILT_PRODUCTS_DIR/debug.linklist" 16INTERPOSABLE_LIST="$DERIVED_FILES_DIR/interposable.list" 17UNEXPORT_LIST="$DERIVED_FILES_DIR/unexport.list" 18 19rm -f $NORMAL_LIST 20rm -f $DEBUG_LIST 21rm -f $INTERPOSABLE_LIST 22rm -f $UNEXPORT_LIST 23 24for x in ${BUILD_ARCHIVES[@]}; do 25 nm -AUamgf "$BUILT_PRODUCTS_DIR/lib${x}.a" 2>/dev/null | \ 26 grep '__TEXT,__text' | \ 27 grep -vE '\$VARIANT' | \ 28 awk '{ print $NF }' >> $INTERPOSABLE_LIST 29 30 nm -AUamgf "$BUILT_PRODUCTS_DIR/lib${x}.a" 2>/dev/null | \ 31 awk '/\$VARIANT/ { print $NF }' >> $UNEXPORT_LIST 32 33 echo "$BUILT_PRODUCTS_DIR/lib${x}.a" >> $NORMAL_LIST 34 echo "$BUILT_PRODUCTS_DIR/lib${x}_debug.a" >> $DEBUG_LIST 35done 36 37touch "$BUILT_PRODUCTS_DIR/deps.c" 38 39exit 0 40