2021-11-04 12:52:14 +01:00
|
|
|
#!/bin/sh
|
|
|
|
|
|
|
|
# Run the shared library dynamic loading demo program.
|
|
|
|
# This is only expected to work when Mbed TLS is built as a shared library.
|
|
|
|
|
|
|
|
# Copyright The Mbed TLS Contributors
|
|
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
|
|
#
|
|
|
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
|
|
|
# not use this file except in compliance with the License.
|
|
|
|
# You may obtain a copy of the License at
|
|
|
|
#
|
|
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
#
|
|
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
|
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
|
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
|
|
# See the License for the specific language governing permissions and
|
|
|
|
# limitations under the License.
|
|
|
|
|
|
|
|
set -e -u
|
|
|
|
|
2021-11-26 18:58:05 +01:00
|
|
|
program_name="dlopen"
|
2021-11-04 12:52:14 +01:00
|
|
|
program_dir="${0%/*}"
|
2021-11-26 18:58:05 +01:00
|
|
|
program="$program_dir/$program_name"
|
|
|
|
|
|
|
|
if [ ! -e "$program" ]; then
|
|
|
|
# Look for programs in the current directory and the directories above it
|
|
|
|
for dir in "." ".." "../.."; do
|
|
|
|
program_dir="$dir/programs/test"
|
|
|
|
program="$program_dir/$program_name"
|
|
|
|
if [ -e "$program" ]; then
|
|
|
|
break
|
|
|
|
fi
|
|
|
|
done
|
|
|
|
if [ ! -e "$program" ]; then
|
|
|
|
echo "Could not find $program_name program"
|
|
|
|
|
|
|
|
echo "Make sure that Mbed TLS is built as a shared library." \
|
|
|
|
"If building out-of-tree, this script must be run" \
|
|
|
|
"from the project build directory."
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
|
2021-11-04 12:52:14 +01:00
|
|
|
top_dir="$program_dir/../.."
|
|
|
|
library_dir="$top_dir/library"
|
|
|
|
|
|
|
|
# ELF-based Unix-like (Linux, *BSD, Solaris, ...)
|
|
|
|
if [ -n "${LD_LIBRARY_PATH-}" ]; then
|
|
|
|
LD_LIBRARY_PATH="$library_dir:$LD_LIBRARY_PATH"
|
|
|
|
else
|
|
|
|
LD_LIBRARY_PATH="$library_dir"
|
|
|
|
fi
|
|
|
|
export LD_LIBRARY_PATH
|
|
|
|
|
|
|
|
# OSX/macOS
|
|
|
|
if [ -n "${DYLD_LIBRARY_PATH-}" ]; then
|
|
|
|
DYLD_LIBRARY_PATH="$library_dir:$DYLD_LIBRARY_PATH"
|
|
|
|
else
|
|
|
|
DYLD_LIBRARY_PATH="$library_dir"
|
|
|
|
fi
|
|
|
|
export DYLD_LIBRARY_PATH
|
|
|
|
|
2021-11-10 21:04:24 +01:00
|
|
|
echo "Running dynamic loading test program: $program"
|
|
|
|
echo "Loading libraries from: $library_dir"
|
2021-11-04 12:52:14 +01:00
|
|
|
"$program"
|