1*62c56f98SSadaf Ebrahimi#!/bin/sh 2*62c56f98SSadaf Ebrahimi 3*62c56f98SSadaf Ebrahimi# Run the shared library dynamic loading demo program. 4*62c56f98SSadaf Ebrahimi# This is only expected to work when Mbed TLS is built as a shared library. 5*62c56f98SSadaf Ebrahimi 6*62c56f98SSadaf Ebrahimi# Copyright The Mbed TLS Contributors 7*62c56f98SSadaf Ebrahimi# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later 8*62c56f98SSadaf Ebrahimi 9*62c56f98SSadaf Ebrahimiset -e -u 10*62c56f98SSadaf Ebrahimi 11*62c56f98SSadaf Ebrahimiprogram_name="dlopen" 12*62c56f98SSadaf Ebrahimiprogram_dir="${0%/*}" 13*62c56f98SSadaf Ebrahimiprogram="$program_dir/$program_name" 14*62c56f98SSadaf Ebrahimi 15*62c56f98SSadaf Ebrahimiif [ ! -e "$program" ]; then 16*62c56f98SSadaf Ebrahimi # Look for programs in the current directory and the directories above it 17*62c56f98SSadaf Ebrahimi for dir in "." ".." "../.."; do 18*62c56f98SSadaf Ebrahimi program_dir="$dir/programs/test" 19*62c56f98SSadaf Ebrahimi program="$program_dir/$program_name" 20*62c56f98SSadaf Ebrahimi if [ -e "$program" ]; then 21*62c56f98SSadaf Ebrahimi break 22*62c56f98SSadaf Ebrahimi fi 23*62c56f98SSadaf Ebrahimi done 24*62c56f98SSadaf Ebrahimi if [ ! -e "$program" ]; then 25*62c56f98SSadaf Ebrahimi echo "Could not find $program_name program" 26*62c56f98SSadaf Ebrahimi 27*62c56f98SSadaf Ebrahimi echo "Make sure that Mbed TLS is built as a shared library." \ 28*62c56f98SSadaf Ebrahimi "If building out-of-tree, this script must be run" \ 29*62c56f98SSadaf Ebrahimi "from the project build directory." 30*62c56f98SSadaf Ebrahimi exit 1 31*62c56f98SSadaf Ebrahimi fi 32*62c56f98SSadaf Ebrahimifi 33*62c56f98SSadaf Ebrahimi 34*62c56f98SSadaf Ebrahimitop_dir="$program_dir/../.." 35*62c56f98SSadaf Ebrahimilibrary_dir="$top_dir/library" 36*62c56f98SSadaf Ebrahimi 37*62c56f98SSadaf Ebrahimi# ELF-based Unix-like (Linux, *BSD, Solaris, ...) 38*62c56f98SSadaf Ebrahimiif [ -n "${LD_LIBRARY_PATH-}" ]; then 39*62c56f98SSadaf Ebrahimi LD_LIBRARY_PATH="$library_dir:$LD_LIBRARY_PATH" 40*62c56f98SSadaf Ebrahimielse 41*62c56f98SSadaf Ebrahimi LD_LIBRARY_PATH="$library_dir" 42*62c56f98SSadaf Ebrahimifi 43*62c56f98SSadaf Ebrahimiexport LD_LIBRARY_PATH 44*62c56f98SSadaf Ebrahimi 45*62c56f98SSadaf Ebrahimi# OSX/macOS 46*62c56f98SSadaf Ebrahimiif [ -n "${DYLD_LIBRARY_PATH-}" ]; then 47*62c56f98SSadaf Ebrahimi DYLD_LIBRARY_PATH="$library_dir:$DYLD_LIBRARY_PATH" 48*62c56f98SSadaf Ebrahimielse 49*62c56f98SSadaf Ebrahimi DYLD_LIBRARY_PATH="$library_dir" 50*62c56f98SSadaf Ebrahimifi 51*62c56f98SSadaf Ebrahimiexport DYLD_LIBRARY_PATH 52*62c56f98SSadaf Ebrahimi 53*62c56f98SSadaf Ebrahimiecho "Running dynamic loading test program: $program" 54*62c56f98SSadaf Ebrahimiecho "Loading libraries from: $library_dir" 55*62c56f98SSadaf Ebrahimi"$program" 56