xref: /aosp_15_r20/external/mbedtls/programs/test/dlopen_demo.sh (revision 62c56f9862f102b96d72393aff6076c951fb8148)
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