5eb667aca135f8c963f5eb9e534c0cd1fdc81fcdRobert Mustacchi#
5eb667aca135f8c963f5eb9e534c0cd1fdc81fcdRobert Mustacchi# CDDL HEADER START
5eb667aca135f8c963f5eb9e534c0cd1fdc81fcdRobert Mustacchi#
5eb667aca135f8c963f5eb9e534c0cd1fdc81fcdRobert Mustacchi# The contents of this file are subject to the terms of the
5eb667aca135f8c963f5eb9e534c0cd1fdc81fcdRobert Mustacchi# Common Development and Distribution License (the "License").
5eb667aca135f8c963f5eb9e534c0cd1fdc81fcdRobert Mustacchi# You may not use this file except in compliance with the License.
5eb667aca135f8c963f5eb9e534c0cd1fdc81fcdRobert Mustacchi#
5eb667aca135f8c963f5eb9e534c0cd1fdc81fcdRobert Mustacchi# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
5eb667aca135f8c963f5eb9e534c0cd1fdc81fcdRobert Mustacchi# or http://www.opensolaris.org/os/licensing.
5eb667aca135f8c963f5eb9e534c0cd1fdc81fcdRobert Mustacchi# See the License for the specific language governing permissions
5eb667aca135f8c963f5eb9e534c0cd1fdc81fcdRobert Mustacchi# and limitations under the License.
5eb667aca135f8c963f5eb9e534c0cd1fdc81fcdRobert Mustacchi#
5eb667aca135f8c963f5eb9e534c0cd1fdc81fcdRobert Mustacchi# When distributing Covered Code, include this CDDL HEADER in each
5eb667aca135f8c963f5eb9e534c0cd1fdc81fcdRobert Mustacchi# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
5eb667aca135f8c963f5eb9e534c0cd1fdc81fcdRobert Mustacchi# If applicable, add the following below this CDDL HEADER, with the
5eb667aca135f8c963f5eb9e534c0cd1fdc81fcdRobert Mustacchi# fields enclosed by brackets "[]" replaced with your own identifying
5eb667aca135f8c963f5eb9e534c0cd1fdc81fcdRobert Mustacchi# information: Portions Copyright [yyyy] [name of copyright owner]
5eb667aca135f8c963f5eb9e534c0cd1fdc81fcdRobert Mustacchi#
5eb667aca135f8c963f5eb9e534c0cd1fdc81fcdRobert Mustacchi# CDDL HEADER END
5eb667aca135f8c963f5eb9e534c0cd1fdc81fcdRobert Mustacchi#
5eb667aca135f8c963f5eb9e534c0cd1fdc81fcdRobert Mustacchi
5eb667aca135f8c963f5eb9e534c0cd1fdc81fcdRobert Mustacchi#
5eb667aca135f8c963f5eb9e534c0cd1fdc81fcdRobert Mustacchi# Copyright (c) 2011, Joyent Inc. All rights reserved.
5eb667aca135f8c963f5eb9e534c0cd1fdc81fcdRobert Mustacchi# Use is subject to license terms.
5eb667aca135f8c963f5eb9e534c0cd1fdc81fcdRobert Mustacchi#
5eb667aca135f8c963f5eb9e534c0cd1fdc81fcdRobert Mustacchi
5eb667aca135f8c963f5eb9e534c0cd1fdc81fcdRobert Mustacchi#
5eb667aca135f8c963f5eb9e534c0cd1fdc81fcdRobert Mustacchi# Test to catch that we properly look for libraries dependencies in
5eb667aca135f8c963f5eb9e534c0cd1fdc81fcdRobert Mustacchi# our full library parth
5eb667aca135f8c963f5eb9e534c0cd1fdc81fcdRobert Mustacchi#
5eb667aca135f8c963f5eb9e534c0cd1fdc81fcdRobert Mustacchi
5eb667aca135f8c963f5eb9e534c0cd1fdc81fcdRobert Mustacchiif [ $# != 1 ]; then
5eb667aca135f8c963f5eb9e534c0cd1fdc81fcdRobert Mustacchi echo expected one argument: '<'dtrace-path'>'
5eb667aca135f8c963f5eb9e534c0cd1fdc81fcdRobert Mustacchi exit 2
5eb667aca135f8c963f5eb9e534c0cd1fdc81fcdRobert Mustacchifi
5eb667aca135f8c963f5eb9e534c0cd1fdc81fcdRobert Mustacchi
5eb667aca135f8c963f5eb9e534c0cd1fdc81fcdRobert Mustacchilibdira=${TMPDIR:-/tmp}/libdepa.$$
5eb667aca135f8c963f5eb9e534c0cd1fdc81fcdRobert Mustacchilibdirb=${TMPDIR:-/tmp}/libdepb.$$
5eb667aca135f8c963f5eb9e534c0cd1fdc81fcdRobert Mustacchilibdirc=${TMPDIR:-/tmp}/libdepc.$$
5eb667aca135f8c963f5eb9e534c0cd1fdc81fcdRobert Mustacchidtrace=$1
5eb667aca135f8c963f5eb9e534c0cd1fdc81fcdRobert Mustacchi
5eb667aca135f8c963f5eb9e534c0cd1fdc81fcdRobert Mustacchisetup_libs()
5eb667aca135f8c963f5eb9e534c0cd1fdc81fcdRobert Mustacchi{
5eb667aca135f8c963f5eb9e534c0cd1fdc81fcdRobert Mustacchi mkdir $libdira
5eb667aca135f8c963f5eb9e534c0cd1fdc81fcdRobert Mustacchi mkdir $libdirb
5eb667aca135f8c963f5eb9e534c0cd1fdc81fcdRobert Mustacchi mkdir $libdirc
5eb667aca135f8c963f5eb9e534c0cd1fdc81fcdRobert Mustacchi cat > $libdira/liba.$$.d <<EOF
5eb667aca135f8c963f5eb9e534c0cd1fdc81fcdRobert Mustacchi#pragma D depends_on library libb.$$.d
5eb667aca135f8c963f5eb9e534c0cd1fdc81fcdRobert Mustacchi#pragma D depends_on library libc.$$.d
5eb667aca135f8c963f5eb9e534c0cd1fdc81fcdRobert Mustacchi#pragma D depends_on library libd.$$.d
5eb667aca135f8c963f5eb9e534c0cd1fdc81fcdRobert MustacchiEOF
5eb667aca135f8c963f5eb9e534c0cd1fdc81fcdRobert Mustacchi cat > $libdirb/libb.$$.d <<EOF
5eb667aca135f8c963f5eb9e534c0cd1fdc81fcdRobert Mustacchi#pragma D depends_on library libc.$$.d
5eb667aca135f8c963f5eb9e534c0cd1fdc81fcdRobert MustacchiEOF
5eb667aca135f8c963f5eb9e534c0cd1fdc81fcdRobert Mustacchi cat > $libdirb/libc.$$.d <<EOF
5eb667aca135f8c963f5eb9e534c0cd1fdc81fcdRobert MustacchiEOF
5eb667aca135f8c963f5eb9e534c0cd1fdc81fcdRobert Mustacchi cat > $libdirb/libd.$$.d <<EOF
5eb667aca135f8c963f5eb9e534c0cd1fdc81fcdRobert MustacchiEOF
5eb667aca135f8c963f5eb9e534c0cd1fdc81fcdRobert Mustacchi cat > $libdirc/libe.$$.d <<EOF
5eb667aca135f8c963f5eb9e534c0cd1fdc81fcdRobert Mustacchi#pragma D depends_on library liba.$$.d
5eb667aca135f8c963f5eb9e534c0cd1fdc81fcdRobert MustacchiEOF
5eb667aca135f8c963f5eb9e534c0cd1fdc81fcdRobert Mustacchi cat > $libdirc/libf.$$.d <<EOF
5eb667aca135f8c963f5eb9e534c0cd1fdc81fcdRobert MustacchiEOF
5eb667aca135f8c963f5eb9e534c0cd1fdc81fcdRobert Mustacchi}
5eb667aca135f8c963f5eb9e534c0cd1fdc81fcdRobert Mustacchi
5eb667aca135f8c963f5eb9e534c0cd1fdc81fcdRobert Mustacchi
5eb667aca135f8c963f5eb9e534c0cd1fdc81fcdRobert Mustacchisetup_libs
5eb667aca135f8c963f5eb9e534c0cd1fdc81fcdRobert Mustacchi
5eb667aca135f8c963f5eb9e534c0cd1fdc81fcdRobert Mustacchi$dtrace -L$libdira -L$libdirb -L$libdirc -e
5eb667aca135f8c963f5eb9e534c0cd1fdc81fcdRobert Mustacchi
5eb667aca135f8c963f5eb9e534c0cd1fdc81fcdRobert Mustacchistatus=$?
5eb667aca135f8c963f5eb9e534c0cd1fdc81fcdRobert Mustacchirm -rf $libdira
5eb667aca135f8c963f5eb9e534c0cd1fdc81fcdRobert Mustacchirm -rf $libdirb
5eb667aca135f8c963f5eb9e534c0cd1fdc81fcdRobert Mustacchirm -rf $libdirc
5eb667aca135f8c963f5eb9e534c0cd1fdc81fcdRobert Mustacchireturn $status
5eb667aca135f8c963f5eb9e534c0cd1fdc81fcdRobert Mustacchi