forked from OSchip/llvm-project
				
			
		
			
				
	
	
		
			109 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
			
		
		
	
	
			109 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
| #
 | |
| # Get the linker version string.
 | |
| #
 | |
| # This macro is specific to LLVM.
 | |
| #
 | |
| AC_DEFUN([AC_LINK_GET_VERSION],
 | |
|   [AC_CACHE_CHECK([for linker version],[llvm_cv_link_version],
 | |
|   [
 | |
|    version_string="$(ld -v 2>&1 | head -1)"
 | |
| 
 | |
|    # Check for ld64.
 | |
|    if (echo "$version_string" | grep -q "ld64"); then
 | |
|      llvm_cv_link_version=$(echo "$version_string" | sed -e "s#.*ld64-\([^ ]*\)#\1#")
 | |
|    else
 | |
|      llvm_cv_link_version=$(echo "$version_string" | sed -e "s#[^0-9]*\([0-9.]*\).*#\1#")
 | |
|    fi
 | |
|   ])
 | |
|   AC_DEFINE_UNQUOTED([HOST_LINK_VERSION],"$llvm_cv_link_version",
 | |
|                      [Linker version detected at compile time.])
 | |
| ])
 | |
| 
 | |
| #
 | |
| # Determine if the system can handle the -R option being passed to the linker.
 | |
| #
 | |
| # This macro is specific to LLVM.
 | |
| #
 | |
| AC_DEFUN([AC_LINK_USE_R],
 | |
| [AC_CACHE_CHECK([for compiler -Wl,-R<path> option],[llvm_cv_link_use_r],
 | |
| [ AC_LANG_PUSH([C])
 | |
|   oldcflags="$CFLAGS"
 | |
|   CFLAGS="$CFLAGS -Wl,-R."
 | |
|   AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],[[]])],
 | |
|     [llvm_cv_link_use_r=yes],[llvm_cv_link_use_r=no])
 | |
|   CFLAGS="$oldcflags"
 | |
|   AC_LANG_POP([C])
 | |
| ])
 | |
| if test "$llvm_cv_link_use_r" = yes ; then
 | |
|   AC_DEFINE([HAVE_LINK_R],[1],[Define if you can use -Wl,-R. to pass -R. to the linker, in order to add the current directory to the dynamic linker search path.])
 | |
|   fi
 | |
| ])
 | |
| 
 | |
| #
 | |
| # Determine if the system can handle the -R option being passed to the linker.
 | |
| #
 | |
| # This macro is specific to LLVM.
 | |
| #
 | |
| AC_DEFUN([AC_LINK_EXPORT_DYNAMIC],
 | |
| [AC_CACHE_CHECK([for compiler -Wl,-export-dynamic option],
 | |
|                 [llvm_cv_link_use_export_dynamic],
 | |
| [ AC_LANG_PUSH([C])
 | |
|   oldcflags="$CFLAGS"
 | |
|   CFLAGS="$CFLAGS -Wl,-export-dynamic"
 | |
|   AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],[[]])],
 | |
|     [llvm_cv_link_use_export_dynamic=yes],[llvm_cv_link_use_export_dynamic=no])
 | |
|   CFLAGS="$oldcflags"
 | |
|   AC_LANG_POP([C])
 | |
| ])
 | |
| if test "$llvm_cv_link_use_export_dynamic" = yes ; then
 | |
|   AC_DEFINE([HAVE_LINK_EXPORT_DYNAMIC],[1],[Define if you can use -Wl,-export-dynamic.])
 | |
|   fi
 | |
| ])
 | |
| 
 | |
| #
 | |
| # Determine if the system can handle the --version-script option being
 | |
| # passed to the linker.
 | |
| #
 | |
| # This macro is specific to LLVM.
 | |
| #
 | |
| AC_DEFUN([AC_LINK_VERSION_SCRIPT],
 | |
| [AC_CACHE_CHECK([for compiler -Wl,--version-script option],
 | |
|                 [llvm_cv_link_use_version_script],
 | |
| [ AC_LANG_PUSH([C])
 | |
|   oldcflags="$CFLAGS"
 | |
| 
 | |
|   # The following code is from the autoconf manual,
 | |
|   # "11.13: Limitations of Usual Tools".
 | |
|   # Create a temporary directory $tmp in $TMPDIR (default /tmp).
 | |
|   # Use mktemp if possible; otherwise fall back on mkdir,
 | |
|   # with $RANDOM to make collisions less likely.
 | |
|   : ${TMPDIR=/tmp}
 | |
|   {
 | |
|     tmp=`
 | |
|       (umask 077 && mktemp -d "$TMPDIR/fooXXXXXX") 2>/dev/null
 | |
|     ` &&
 | |
|     test -n "$tmp" && test -d "$tmp"
 | |
|   } || {
 | |
|     tmp=$TMPDIR/foo$$-$RANDOM
 | |
|     (umask 077 && mkdir "$tmp")
 | |
|   } || exit $?
 | |
| 
 | |
|   echo "{" > "$tmp/export.map"
 | |
|   echo "  global: main;" >> "$tmp/export.map"
 | |
|   echo "  local: *;" >> "$tmp/export.map"
 | |
|   echo "};" >> "$tmp/export.map"
 | |
| 
 | |
|   CFLAGS="$CFLAGS -Wl,--version-script=$tmp/export.map"
 | |
|   AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],[[]])],
 | |
|     [llvm_cv_link_use_version_script=yes],[llvm_cv_link_use_version_script=no])
 | |
|   rm "$tmp/export.map"
 | |
|   rmdir "$tmp"
 | |
|   CFLAGS="$oldcflags"
 | |
|   AC_LANG_POP([C])
 | |
| ])
 | |
| if test "$llvm_cv_link_use_version_script" = yes ; then
 | |
|   AC_SUBST(HAVE_LINK_VERSION_SCRIPT,1)
 | |
|   fi
 | |
| ])
 | |
| 
 |