📄 ltconfig
字号:
;; osf3* | osf4*) if test "$with_gcc" = yes; then allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' archive_cmds='$CC -shared${allow_undefined_flag} -o $lib ${wl}-soname ${wl}$soname ${wl}-set_version ${wl}$verstring$libobjs$deplibs' else allow_undefined_flag=' -expect_unresolved \*' archive_cmds='$LD -shared${allow_undefined_flag} -o $lib -soname $soname -set_version $verstring$libobjs$deplibs' fi hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: ;; sco3.2v5*) archive_cmds='$LD -G -o $lib$libobjs$deplibs' hardcode_direct=yes ;; solaris*) no_undefined_flag=' -z text' # $CC -shared without GNU ld will not create a library from C++ # object files and a static libstdc++, better avoid it by now archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib$libobjs$deplibs' archive_sym_cmds='$echo "{ global:" > $lib.exp~sed $export_symbols -e "s/.*/\1;/" >> $lib.exp~$echo "local: * }" >> $lib.exp~ $LD -G${allow_undefined_flag} -M $export_symbols -h $soname -o $lib$libobjs$deplibs~$rm $lib.exp' hardcode_libdir_flag_spec='-R$libdir' hardcode_shlibpath_var=no # Solaris 2 before 2.5 hardcodes -L paths. case "$host_os" in solaris2.[0-4]*) hardcode_minus_L=yes ;; esac ;; sunos4*) # Why do we need -Bstatic? To avoid inter-library dependencies, maybe... if test "$with_gcc" = yes; then archive_cmds='$CC -shared ${wl}-Bstatic -o $lib$libobjs$deplibs' else archive_cmds='$LD -assert pure-text -Bstatic -o $lib$libobjs$deplibs' fi hardcode_libdir_flag_spec='-L$libdir' hardcode_direct=yes hardcode_minus_L=yes hardcode_shlibpath_var=no ;; uts4*) archive_cmds='$LD -G -h $soname -o $lib$libobjs$deplibs' hardcode_libdir_flag_spec='-L$libdir' hardcode_direct=no hardcode_minus_L=no hardcode_shlibpath_var=no ;; dgux*) archive_cmds='$LD -G -h $soname -o $lib$libobjs$deplibs' hardcode_libdir_flag_spec='-L$libdir' hardcode_direct=no hardcode_minus_L=no hardcode_shlibpath_var=no ;; *) ld_shlibs=no can_build_shared=no ;; esacfiecho "$ac_t$ld_shlibs" 1>&6if test -z "$NM"; then echo $ac_n "checking for BSD-compatible nm... $ac_c" 1>&6 case "$NM" in /* | [A-Za-z]:[/\\]*) ;; # Let the user override the test with a path. *) IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" for ac_dir in /usr/ucb /usr/ccs/bin $PATH /bin; do test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/nm; then # Check to see if the nm accepts a BSD-compat flag. # Adding the `sed 1q' prevents false positives on HP-UX, which says: # nm: unknown option "B" ignored if ($ac_dir/nm -B /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then NM="$ac_dir/nm -B" elif ($ac_dir/nm -p /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then NM="$ac_dir/nm -p" else NM="$ac_dir/nm" fi break fi done IFS="$ac_save_ifs" test -z "$NM" && NM=nm ;; esac echo "$ac_t$NM" 1>&6fi# Check for command to grab the raw symbol name followed by C symbol from nm.echo $ac_n "checking command to parse $NM output... $ac_c" 1>&6# These are sane defaults that work on at least a few old systems.# [They come from Ultrix. What could be older than Ultrix?!! ;)]# Character class describing NM global symbol codes.symcode='[BCDEGRSTU]'# Regexp to match symbols that can be accessed directly from C.sympat='\([_A-Za-z][_A-Za-z0-9]*\)'# Transform the above into a raw symbol and a C symbol.symxfrm='\1 \1'# Define system-specific variables.case "$host_os" inaix*) symcode='[BCDTU]' ;;sunos* | cygwin32* | mingw32*) sympat='_\([_A-Za-z][_A-Za-z0-9]*\)' symxfrm='_\1 \1' ;;irix*) # Cannot use undefined symbols on IRIX because inlined functions mess us up. symcode='[BCDEGRST]' ;;solaris*) symcode='[BDTU]' ;;esac# If we're using GNU nm, then use its standard symbol codes.if $NM -V 2>&1 | egrep '(GNU|with BFD)' > /dev/null; then symcode='[ABCDGISTUW]'ficase "$host_os" incygwin32* | mingw32*) # We do not want undefined symbols on cygwin32. The user must # arrange to define them via -l arguments. symcode='[ABCDGISTW]' ;;esac# Write the raw and C identifiers.global_symbol_pipe="sed -n -e 's/^.* $symcode $sympat$/$symxfrm/p'"# Check to see that the pipe works correctly.pipe_works=no$rm conftest*cat > conftest.c <<EOF#ifdef __cplusplusextern "C" {#endifchar nm_test_var;void nm_test_func(){}#ifdef __cplusplus}#endifmain(){nm_test_var='a';nm_test_func();return(0);}EOFecho "$progname:1425: checking if global_symbol_pipe works" >&5if { (eval echo $progname:1426: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; } && test -s conftest.$objext; then # Now try to grab the symbols. nlist=conftest.nm if { echo "$progname:1429: eval \"$NM conftest.$objext | $global_symbol_pipe > $nlist\"" >&5; eval "$NM conftest.$objext | $global_symbol_pipe > $nlist 2>&5"; } && test -s "$nlist"; then # Try sorting and uniquifying the output. if sort "$nlist" | uniq > "$nlist"T; then mv -f "$nlist"T "$nlist" wcout=`wc "$nlist" 2>/dev/null` count=`$echo "X$wcout" | $Xsed -e 's/^[ ]*\([0-9][0-9]*\).*$/\1/'` (test "$count" -ge 0) 2>/dev/null || count=-1 else rm -f "$nlist"T count=-1 fi # Make sure that we snagged all the symbols we need. if egrep ' nm_test_var$' "$nlist" >/dev/null; then if egrep ' nm_test_func$' "$nlist" >/dev/null; then cat <<EOF > conftest.c#ifdef __cplusplusextern "C" {#endifEOF # Now generate the symbol file. sed 's/^.* \(.*\)$/extern char \1;/' < "$nlist" >> conftest.c cat <<EOF >> conftest.c#if defined (__STDC__) && __STDC__# define __ptr_t void *#else# define __ptr_t char *#endif/* The number of symbols in dld_preloaded_symbols, -1 if unsorted. */int dld_preloaded_symbol_count = $count;/* The mapping between symbol names and symbols. */struct { char *name; __ptr_t address;}dld_preloaded_symbols[] ={EOF sed 's/^\(.*\) \(.*\)$/ {"\1", (__ptr_t) \&\2},/' < "$nlist" >> conftest.c cat <<\EOF >> conftest.c {0, (__ptr_t) 0}};#ifdef __cplusplus}#endifEOF # Now try linking the two files. mv conftest.$objext conftestm.$objext save_LIBS="$LIBS" save_CFLAGS="$CFLAGS" LIBS="conftestm.$objext" CFLAGS="$CFLAGS$no_builtin_flag" if { (eval echo $progname:1487: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then pipe_works=yes else echo "$progname: failed program was:" >&5 cat conftest.c >&5 fi LIBS="$save_LIBS" else echo "cannot find nm_test_func in $nlist" >&5 fi else echo "cannot find nm_test_var in $nlist" >&5 fi else echo "cannot run $global_symbol_pipe" >&5 fielse echo "$progname: failed program was:" >&5 cat conftest.c >&5fi$rm conftest*# Do not use the global_symbol_pipe unless it works.echo "$ac_t$pipe_works" 1>&6test "$pipe_works" = yes || global_symbol_pipe=# Check hardcoding attributes.echo $ac_n "checking how to hardcode library paths into programs... $ac_c" 1>&6hardcode_action=if test -n "$hardcode_libdir_flag_spec" || \ test -n "$runpath_var"; then # We can hardcode non-existant directories. if test "$hardcode_direct" != no && \ test "$hardcode_minus_L" != no && \ test "$hardcode_shlibpath_var" != no; then # Linking always hardcodes the temporary library directory. hardcode_action=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. hardcode_action=immediate fielse # We cannot hardcode anything, or else we can only hardcode existing # directories. hardcode_action=unsupportedfiecho "$ac_t$hardcode_action" 1>&6reload_flag=reload_cmds='$LD$reload_flag -o $output$reload_objs'echo $ac_n "checking for $LD option to reload object files... $ac_c" 1>&6# PORTME Some linkers may need a different reload flag.reload_flag='-r'echo "$ac_t$reload_flag" 1>&6test -n "$reload_flag" && reload_flag=" $reload_flag"# PORTME Fill in your ld.so characteristicslibrary_names_spec=libname_spec='lib$name'soname_spec=postinstall_cmds=postuninstall_cmds=finish_cmds=finish_eval=shlibpath_var=version_type=nonedynamic_linker="$host_os ld.so"sys_lib_search_path="/lib /usr/lib /usr/local/lib"check_shared_deplibs_method='none'# Need to set the preceding variable on all platforms that support# interlibrary dependencies.# 'none' -- dependencies not supported.# 'pass_all' -- all dependencies passed with no checks.# 'test_compile' -- check by making test program.# 'file_regex' -- check by looking for filenames that look like the shared# library in the library path.# 'file_magic [regex]' -- check by looking for files in library path which# responds to the "file" command with a given regex. This is actually a# superset of the file_regex command. If you have file on your system, you'll# want to use this instead.# Notes: regexes are run through expr.echo $ac_n "checking dynamic linker characteristics... $ac_c" 1>&6case "$host_os" inaix3* | aix4*) version_type=linux library_names_spec='${libname}${release}.so$versuffix $libname.a' shlibpath_var=LIBPATH # AIX has no versioning support, so we append a major version to the name. soname_spec='${libname}${release}.so$major' ;;amigaos*) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "(cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a)"; (cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a) || exit 1; done' ;;bsdi4*) version_type=linux library_names_spec='${libname}.so.$major ${libname}.so' soname_spec='${libname}.so' finish_cmds='PATH="$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH ;;cygwin32* | mingw32*) version_type=windows if test "$with_gcc" = yes; then library_names_spec='${libname}`echo ${release} | sed -e 's/[.]/-/g'`${versuffix}.dll $libname.a' else library_names_spec='${libname}`echo ${release} | sed -e 's/[.]/-/g'`${versuffix}.dll $libname.lib' fi dynamic_linker='Win32 ld.exe' libname_spec='$name' shlibpath_var=PATH ;;freebsd2* | freebsd3*) objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout` version_type=freebsd-$objformat library_names_spec='${libname}${release}.so$versuffix $libname.so' finish_cmds='PATH="$PATH:/sbin" OBJFORMAT="$objformat" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH ;;gnu*) version_type=linux library_names_spec='${libname}${release}.so$versuffix ${libname}.so' shlibpath_var=LD_LIBRARY_PATH ;;hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. dynamic_linker="$host_os dld.sl" version_type=sunos shlibpath_var=SHLIB_PATH library_names_spec='${libname}${release}.sl$versuffix ${libname}${release}.sl$major $libname.sl' soname_spec='${libname}${release}.sl$major' # HP-UX runs *really* slowly unless shared libraries are mode 555. postinstall_cmds='chmod 555 $lib' ;;irix5*) version_type=osf soname_spec='${libname}${release}.so' library_names_spec='${libname}${release}.so$versuffix $libname.so' shlibpath_var=LD_LIBRARY_PATH ;;irix6*) version_type=osf soname_spec='${libname}${release}.so' library_names_spec='${libname}${release}.so$versuffix $libname.so' shlibpath_var=LD_LIBRARYN32_PATH ;;# No shared lib support for Linux oldld, aout, or coff.linux-gnuoldld* | linux-gnuaout* | linux-gnucoff*) dynamic_linker=no ;;# This must be Linux ELF.linux-gnu*) version_type=linux library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' soname_spec='${libname}${release}.so$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH check_shared_deplibs_method='file_magic ELF 32-bit LSB shared object' sys_lib_search_path="/lib /usr/lib /usr/local/lib `echo $LD_LIBRARY_PATH | sed -e 's/:/ /g'`" if test -f /lib/ld.so.1; then dynamic_linker='GNU ld.so' else # Only the GNU ld.so supports shared libraries on MkLinux. case "$host_cpu" in powerpc*) dynamic_linker=no ;; *) dynamic_linker='Linux ld.so' ;; esac fi ;;netbsd* | openbsd*) version_type=sunos
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -