From acc93e344a6d1470666a6016a1fd78adda5fd3ed Mon Sep 17 00:00:00 2001 From: Bruno Haible Date: Thu, 1 Mar 2007 02:54:42 +0000 Subject: Move relocatability infrastructure to gnulib. --- build-aux/config.libpath | 148 ----------------------------------------------- build-aux/install-reloc | 130 ----------------------------------------- build-aux/reloc-ldflags | 102 -------------------------------- 3 files changed, 380 deletions(-) delete mode 100755 build-aux/config.libpath delete mode 100755 build-aux/install-reloc delete mode 100755 build-aux/reloc-ldflags (limited to 'build-aux') diff --git a/build-aux/config.libpath b/build-aux/config.libpath deleted file mode 100755 index 2a1f8ea..0000000 --- a/build-aux/config.libpath +++ /dev/null @@ -1,148 +0,0 @@ -#! /bin/sh -# Output a system dependent set of variables, describing how to set the -# run time search path of shared libraries in an executable at run time. -# -# Copyright 1996-2005 Free Software Foundation, Inc. -# Taken from GNU libtool, 2003 -# Originally by Gordon Matzigkeit , 1996 -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software Foundation, -# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -# -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. -# -# The first argument passed to this file is the canonical host specification, -# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM -# or -# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM -# The environment variable LD should be set by the caller. -# -# The set of defined variables is at the end of this script. - -host="$1" -host_cpu=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` -host_vendor=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` -host_os=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` - -shlibpath_var= -case $host_os in - aix3*) - shlibpath_var=LIBPATH - ;; - aix4* | aix5*) - if test "$host_cpu" = ia64; then - # AIX 5 supports IA64 - shlibpath_var=LD_LIBRARY_PATH - else - shlibpath_var=LIBPATH - fi - ;; - beos*) - shlibpath_var=LIBRARY_PATH - ;; - bsdi4*) - shlibpath_var=LD_LIBRARY_PATH - ;; - cygwin* | mingw* | pw32*) - # FIXME: first we should search . and the directory the executable is in - shlibpath_var=PATH - ;; - darwin* | rhapsody*) - shlibpath_var=DYLD_LIBRARY_PATH - ;; - freebsd1*) - ;; - kfreebsd*-gnu) - shlibpath_var=LD_LIBRARY_PATH - ;; - freebsd*) - shlibpath_var=LD_LIBRARY_PATH - ;; - gnu*) - shlibpath_var=LD_LIBRARY_PATH - ;; - hpux9* | hpux10* | hpux11*) - shlibpath_var=SHLIB_PATH - ;; - irix5* | irix6* | nonstopux*) - case $host_os in - irix5* | nonstopux*) - shlibsuff= - ;; - *) - case $LD in # libtool.m4 will add one of these switches to LD - *-32|*"-32 ") shlibsuff= ;; - *-n32|*"-n32 ") shlibsuff=N32 ;; - *-64|*"-64 ") shlibsuff=64 ;; - *) shlibsuff= ;; - esac - ;; - esac - shlibpath_var=LD_LIBRARY${shlibsuff}_PATH - ;; - linux-gnu*) - shlibpath_var=LD_LIBRARY_PATH - ;; - knetbsd*-gnu) - shlibpath_var=LD_LIBRARY_PATH - ;; - netbsd*) - shlibpath_var=LD_LIBRARY_PATH - ;; - newsos6) - shlibpath_var=LD_LIBRARY_PATH - ;; - openbsd*) - shlibpath_var=LD_LIBRARY_PATH - ;; - os2*) - shlibpath_var=LIBPATH - ;; - osf3* | osf4* | osf5*) - shlibpath_var=LD_LIBRARY_PATH - ;; - sco3.2v5*) - shlibpath_var=LD_LIBRARY_PATH - ;; - solaris*) - shlibpath_var=LD_LIBRARY_PATH - ;; - sunos4*) - shlibpath_var=LD_LIBRARY_PATH - ;; - sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) - shlibpath_var=LD_LIBRARY_PATH - ;; - uts4*) - shlibpath_var=LD_LIBRARY_PATH - ;; - dgux*) - shlibpath_var=LD_LIBRARY_PATH - ;; - sysv4*MP*) - if test -d /usr/nec ;then - shlibpath_var=LD_LIBRARY_PATH - fi - ;; -esac - -LC_ALL=C sed -e 's/^\([a-zA-Z0-9_]*\)=/acl_cv_\1=/' <, 2003. -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software Foundation, -# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - -# Usage: -# install-reloc library_path_var library_path_value prefix compile_command srcdir config_h_dir exeext install_command... destprog -# where -# - library_path_var is the platform dependent runtime library path variable -# - library_path_value is a colon separated list of directories that contain -# the libraries at installation time (use this instead of -rpath) -# - prefix is the base directory at installation time -# - compile_command is a C compiler compilation and linking command -# - srcdir is the directory where to find relocwrapper.c and its dependencies -# - builddir is the directory where to find built dependencies (namely, -# alloca.h and stdbool.h) -# - config_h_dir is the directory where to find config.h -# - exeext is platform dependent suffix of executables -# - install-command is the install command line, excluding the final destprog -# - destprog is the destination program name -# install-reloc renames destprog to destprog.bin and installs a relocating -# wrapper in the place of destprog. - -progname=$0 - -if test $# -eq 2; then - # Get arguments from environment variables. - library_path_var=$RELOC_LIBRARY_PATH_VAR - library_path_value=$RELOC_LIBRARY_PATH_VALUE - prefix=$RELOC_PREFIX - compile_command=$RELOC_COMPILE_COMMAND - srcdir=$RELOC_SRCDIR - builddir=$RELOC_BUILDDIR - config_h_dir=$RELOC_CONFIG_H_DIR - exeext=$RELOC_EXEEXT - install_prog=$RELOC_INSTALL_PROG # including the "-c" option -else - if test $# -ge 9; then - # Get fixed position arguments. - library_path_var=$1 - library_path_value=$2 - prefix=$3 - compile_command=$4 - srcdir=$5 - builddir=$6 - config_h_dir=$7 - exeext=$8 - install_prog=$9 # maybe not including the "-c" option - shift - shift - shift - shift - shift - shift - shift - shift - shift - else - echo "Usage: $0 library_path_var library_path_value prefix compile_command srcdir builddir config_h_dir exeext install_command... destprog" 1>&2 - exit 1 - fi -fi - -# Get destprog, last argument. -destprog= -for arg -do - destprog=$arg -done -# Remove trailing $exeext, if present. -if test -n "$exeext"; then - sedexpr='s|'`echo "$exeext" | sed -e 's,\.,\\\.,g'`'$||' - destprog=`echo "$destprog" | sed -e "$sedexpr"` -fi - -# Outputs a command and runs it. -func_verbose () -{ - echo "$@" - "$@" -} - -# Run install_command. -func_verbose $install_prog "$@" || exit $? - -# If the platform doesn't support LD_LIBRARY_PATH or similar, we cannot build -# a wrapper. -test -n "$library_path_var" || exit 0 - -libdirs= -save_IFS="$IFS"; IFS=":" -for dir in $library_path_value; do - IFS="$save_IFS" - if test -n "$dir"; then - case "$libdirs" in - *"\"$dir\""*) ;; # remove duplicate - *) libdirs="$libdirs\"$dir\"," ;; - esac - fi -done -IFS="$save_IFS" -# If there are no library directories to add at runtime, we don't need a -# wrapper. -test -n "$libdirs" || exit 0 - -# Compile wrapper. -installdir=`echo "$destprog" | sed -e 's,/[^/]*$,,'` -func_verbose $compile_command -I"$builddir" -I"$srcdir" -I"$config_h_dir" -DHAVE_CONFIG_H -DIN_RELOCWRAPPER -DNO_XMALLOC -D"INSTALLPREFIX=\"$prefix\"" -D"INSTALLDIR=\"$installdir\"" -D"LIBPATHVAR=\"$library_path_var\"" -D"LIBDIRS=$libdirs" -D"EXEEXT=\"$exeext\"" "$srcdir"/relocwrapper.c "$srcdir"/progname.c "$srcdir"/progreloc.c "$srcdir"/xreadlink.c "$srcdir"/readlink.c "$srcdir"/canonicalize-lgpl.c "$srcdir"/allocsa.c "$srcdir"/relocatable.c "$srcdir"/setenv.c "$srcdir"/strerror.c -o "$destprog.wrapper$exeext" || exit $? - -# Rename $destprog.wrapper -> $destprog -> $destprog.bin. -ln -f "$destprog$exeext" "$destprog.bin$exeext" \ - || { rm -f "$destprog.bin$exeext" && cp -p "$destprog$exeext" "$destprog.bin$exeext"; } \ - || exit 1 -mv "$destprog.wrapper$exeext" "$destprog$exeext" || exit 1 - -exit 0 diff --git a/build-aux/reloc-ldflags b/build-aux/reloc-ldflags deleted file mode 100755 index 91f3709..0000000 --- a/build-aux/reloc-ldflags +++ /dev/null @@ -1,102 +0,0 @@ -#! /bin/sh -# Output a system dependent linker command for putting a relocatable library -# search path into an executable. -# -# Copyright 2003 Free Software Foundation, Inc. -# Written by Bruno Haible , 2003. -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software Foundation, -# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -# -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. -# -# The first argument passed to this file is the canonical host specification, -# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM -# or -# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM -# The environment variable LD should be set by the caller. -# -# The second argument is a colon separated list of directories that contain -# the libraries at installation time. -# -# The third argument is the directory into which the executable is going to be -# installed. - -host="$1" -host_cpu=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` -host_vendor=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` -host_os=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` - -library_path_value=$2 - -installdir=$3 - -# Verify that installdir is absolute. -case "$installdir" in - /*) ;; - *) - echo "installdir is not absolute: $installdir" 1>&2 - exit 1 - ;; -esac - -case "$host_os" in - linux*) # Supported since Linux 2.1 and glibc 2.1. - rpath= - save_IFS="$IFS"; IFS=":" - for dir in $library_path_value; do - IFS="$save_IFS" - case "$dir" in - /*) - # Make dir relative to installdir. (Works only if dir is absolute.) - idir="$installdir" - while true; do - dfirst=`echo "$dir" | sed -n -e 's,^//*\([^/]*\).*$,/\1,p'` - ifirst=`echo "$idir" | sed -n -e 's,^//*\([^/]*\).*$,/\1,p'` - if test -z "$dfirst" || test -z "$ifirst"; then - break - fi - if test "$dfirst" != "$ifirst"; then - break - fi - dir=`echo "$dir" | sed -e 's,^//*[^/]*,,'` - idir=`echo "$idir" | sed -e 's,^//*[^/]*,,'` - done - dir="\$ORIGIN"`echo "$idir" | sed -e 's,//*[^/]*,/..,g'`"$dir" - # Add dir to rpath. - rpath="${rpath}${rpath:+ }$dir" - ;; - *) - if test -n "$dir"; then - echo "libdir is not absolute: $dir" 1>&2 - fi - ;; - esac - done - IFS="$save_IFS" - # Output it. - if test -n "$rpath"; then - echo "-Wl,-rpath,$rpath" - fi - ;; - *) - echo "relocation via rpath not supported on this system: $host" 1>&2 - exit 1 - ;; -esac - -exit 0 -- cgit v1.1