autotools-mirror/libtool

libtool usage in ImageMagick - advice desired

Opened this issue · 0 comments

Hi,

I'm hoping you can give some advice on errors that people are having with libtool, and the usage of it in ImageMagick.

There is a discussion of an error message being generated when compiling ImageMagick here. The symptom is that during compilation, the build process spits out the message:

libtool:   error: unsupported hardcode properties See the libtool documentation for more information. Fatal configuration error.
make[1]: *** [Makefile:8217: utilities/magick] Error 1

There are several suggestions of how to fix the issue. Somewhat bizarrely, one of those fixes used to work for me, but has recently stopped working.

The people who maintain ImageMagick take the not unreasonable position that they can't investigate every single issue that comes their way, particularly not issues that look like a computer system that doesn't have all the tools needed to build ImageMagick installed correctly. And so they are not going to investigate the issue.

I would very much appreciate it if you could give me advice on what libtool is doing in the snippet that I have put below. It contains the only instance of the phrase unsupported hardcode properties, so presumably something is going wrong here. Though I find it very difficult to understand what is happening.

In case it matters, I'm attempting to compile ImageMagick inside a docker container

	  if test prog = "$linkmode" || test relink != "$opt_mode"; then
	    add_shlibpath=
	    add_dir=
	    add=
	    lib_linked=yes
	    case $hardcode_action in
	    immediate | unsupported)
	      if test no = "$hardcode_direct"; then
		add=$dir/$linklib
		case $host in
		  *-*-sco3.2v5.0.[024]*) add_dir=-L$dir ;;
		  *-*-sysv4*uw2*) add_dir=-L$dir ;;
		  *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \
		    *-*-unixware7*) add_dir=-L$dir ;;
		  *-*-darwin* )
		    # if the lib is a (non-dlopened) module then we cannot
		    # link against it, someone is ignoring the earlier warnings
		    if /usr/bin/file -L $add 2> /dev/null |
			 $GREP ": [^:]* bundle" >/dev/null; then
		      if test "X$dlopenmodule" != "X$lib"; then
			$ECHO "*** Warning: lib $linklib is a module, not a shared library"
			if test -z "$old_library"; then
			  echo
			  echo "*** And there doesn't seem to be a static archive available"
			  echo "*** The link will probably fail, sorry"
			else
			  add=$dir/$old_library
			fi
		      elif test -n "$old_library"; then
			add=$dir/$old_library
		      fi
		    fi
		esac
	      elif test no = "$hardcode_minus_L"; then
		case $host in
		*-*-sunos*) add_shlibpath=$dir ;;
		esac
		add_dir=-L$dir
		add=-l$name
	      elif test no = "$hardcode_shlibpath_var"; then
		add_shlibpath=$dir
		add=-l$name
	      else
		lib_linked=no
	      fi
	      ;;
	    relink)
	      if test yes = "$hardcode_direct" &&
	         test no = "$hardcode_direct_absolute"; then
		add=$dir/$linklib
	      elif test yes = "$hardcode_minus_L"; then
		add_dir=-L$absdir
		# Try looking first in the location we're being installed to.
		if test -n "$inst_prefix_dir"; then
		  case $libdir in
		    [\\/]*)
		      func_append add_dir " -L$inst_prefix_dir$libdir"
		      ;;
		  esac
		fi
		add=-l$name
	      elif test yes = "$hardcode_shlibpath_var"; then
		add_shlibpath=$dir
		add=-l$name
	      else
		lib_linked=no
	      fi
	      ;;
	    *) lib_linked=no ;;
	    esac

	    if test yes != "$lib_linked"; then
	      func_fatal_configuration "unsupported hardcode properties"
	    fi

In case it is of use, a copy of my config.log should be here.