⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 link-order.test

📁 GNU libtool 是一个通用库支持脚本
💻 TEST
字号:
#! /bin/sh# link-order.test - make sure that library linking order matches# Test script header.need_prefix=noif test -z "$srcdir"; then  srcdir=`echo "$0" | sed 's%/[^/]*$%%'`  test "$srcdir" = "$0" && srcdir=.  test "${VERBOSE+set}" != "set" && VERBOSE=yesfi. $srcdir/defs || exit 1retcode=0eval `$libtool --config | $EGREP '^(hardcode_direct|shrext_cmds)='`module=noeval shared_ext=\"$shrext_cmds\"rm -rf linkorder.dirmkdir linkorder.dirtop_dir=`pwd`/linkorder.dirprefix_old=$top_dir/oldprefix_new=$top_dir/newsrcdir=linkorder.dir/srcmkdir $srcdir $prefix_old $prefix_new $prefix_old/lib $prefix_new/libcat >$srcdir/c.c <<EOFint c = 1;EOF$libtool --mode=compile $CC $CFLAGS -c $srcdir/c.c -o $srcdir/c.lo$libtool --mode=link $CC $CFLAGS $LDFLAGS -o $srcdir/libcee.la $srcdir/c.lo \    -rpath $prefix_old/lib$libtool --mode=install cp $srcdir/libcee.la $prefix_old/lib/libcee.lafor i in old new; do  rm -rf $srcdir  mkdir $srcdir  cat >$srcdir/a_$i.c <<EOFextern int c;extern int b_$i();int a_$i() { return c + b_$i(); }EOF  cat >$srcdir/b_$i.c <<EOFextern int c;int b_$i() { return 1 + c; }EOF  prefix=`eval echo \\$prefix_$i`  $libtool --mode=compile $CC $CFLAGS -c $srcdir/a_$i.c -o $srcdir/a.lo  $libtool --mode=compile $CC $CFLAGS -c $srcdir/b_$i.c -o $srcdir/b.lo  $libtool --mode=link $CC $CFLAGS $LDFLAGS -o $srcdir/libb.la $srcdir/b.lo \      -L$prefix_old/lib -lcee -rpath $prefix/lib  $libtool --mode=link $CC $CFLAGS -o $srcdir/liba.la $srcdir/a.lo \      $srcdir/libb.la -L$prefix_old/lib -lcee -rpath $prefix/lib  $libtool --mode=install cp $srcdir/libb.la $prefix/lib/libb.la  $libtool --mode=install cp $srcdir/liba.la $prefix/lib/liba.la \      >$srcdir/stdout 2>$srcdir/stderr || retcode=1  cat $srcdir/stdout  cat $srcdir/stderr >&2donecase $host in*-*-aix* | *-*-interix*) ;; # These systems have different path syntax*)  # Do not error if we do not relink (e.g. static-only systems)  case $hardcode_direct in  yes)    if $EGREP relinking $srcdir/stderr; then      if $EGREP " .*\/new\/lib/libb$shared_ext .*\/old\/lib/libcee$shared_ext" $srcdir/stdout; then :; else        echo "$0: wrong link order" 1>&2        retcode=1      fi    fi    ;;  *)    if $EGREP relinking $srcdir/stderr; then      if $EGREP ' -L.*\/new\/lib -lb -L.*\/old\/lib -lcee' $srcdir/stdout; then :; else        echo "$0: wrong link order" 1>&2        retcode=1      fi    fi    ;;  esac  ;;esacfor i in old new; do  cat >$srcdir/main_$i.c <<EOFextern int a_$i();int main(void) { return a_$i() != 3; }EOF  prefix=`eval echo \\$prefix_$i`  $libtool --mode=compile $CC $CFLAGS -c $srcdir/main_$i.c -o $srcdir/main_$i.lo  $libtool --mode=link $CC $CFLAGS $LDFLAGS -o $srcdir/main_$i $srcdir/main_$i.lo \      -L$prefix/lib -la || retcode=1  if $srcdir/main_$i; then :  else    echo "$0: cannot execute $srcdir/main_$i" 1>&2    if test "X$host" != "X$build"; then      echo "This may be ok since you seem to be cross-compiling." 1>&2      retcode=77    else      retcode=1    fi  fidonerm -rf $top_direxit $retcode

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -