📄 ltcf-cxx.sh
字号:
beos* | irix5* | irix6* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; aix*) # Below there is a dirty hack to force normal static linking with -ldl # The problem is because libdl dynamically linked with both libc and # libC (AIX C++ library), which obviously doesn't included in libraries # list by gcc. This cause undefined symbols with -static flags. # This hack allows C programs to be linked with "-static -ldl", but # we not sure about C++ programs. ac_cv_prog_cc_static="$ac_cv_prog_cc_static ${ac_cv_prog_cc_wl}-lC" ;; cygwin* | mingw* | os2*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). ac_cv_prog_cc_pic='-DDLL_EXPORT' ;; amigaos*) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. ac_cv_prog_cc_pic='-m68020 -resident32 -malways-restore-a4' ;; sysv4*MP*) if test -d /usr/nec; then ac_cv_prog_cc_pic=-Kconform_pic fi ;; *) ac_cv_prog_cc_pic='-fPIC' ;; esacelse case "$host_os" in aix4*) # All AIX code is PIC. ;; chorus*) case "$cc_basename" in cxch68) # Green Hills C++ Compiler # ac_cv_prog_cc_static="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" ;; esac ;; dgux*) case "$cc_basename" in ec++) ac_cv_prog_cc_pic='-KPIC' ;; ghcx) # Green Hills C++ Compiler ac_cv_prog_cc_pic='-pic' ;; *) ;; esac ;; freebsd*) # FreeBSD uses GNU C++ ;; hpux9* | hpux10* | hpux11*) case "$cc_basename" in CC) ac_cv_prog_cc_wl='-Wl,' ac_cv_prog_cc_static="${ac_cv_prog_cc_wl}-a ${ac_cv_prog_cc_wl}archive" ac_cv_prog_cc_pic='+Z' ;; aCC) ac_cv_prog_cc_wl='-Wl,' ac_cv_prog_cc_static="${ac_cv_prog_cc_wl}-a ${ac_cv_prog_cc_wl}archive" ac_cv_prog_cc_pic='+Z' ;; *) ;; esac ;; irix5* | irix6*) case "$cc_basename" in CC) ac_cv_prog_cc_wl='-Wl,' ac_cv_prog_cc_static='-non_shared' ac_cv_prog_cc_pic='-KPIC' ;; *) ;; esac ;; linux*) case "$cc_basename" in KCC) # KAI C++ Compiler ac_cv_prog_cc_wl='--backend -Wl,' ac_cv_prog_cc_pic='-fPIC' ;; cxx) # Compaq C++ # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. ac_cv_prog_cc_pic= ac_cv_prog_cc_static='-non_shared' ;; *) ;; esac ;; lynxos*) ;; m88k*) ;; mvs*) case "$cc_basename" in cxx) ac_cv_prog_cc_pic='-W c,exportall' ;; *) ;; esac ;; netbsd*) ;; osf3* | osf4* | osf5*) case "$cc_basename" in KCC) ac_cv_prog_cc_wl='--backend -Wl,' ;; RCC) # Rational C++ 2.4.1 ac_cv_prog_cc_pic='-pic' ;; cxx) # Digital/Compaq C++ ac_cv_prog_cc_wl='-Wl,' # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. ac_cv_prog_cc_pic= ac_cv_prog_cc_static='-non_shared' ;; *) ;; esac ;; psos*) ;; sco*) case "$cc_basename" in CC) ac_cv_prog_cc_pic='-fPIC' ;; *) ;; esac ;; solaris*) case "$cc_basename" in CC) # Sun C++ 4.2, 5.x and Centerline C++ ac_cv_prog_cc_pic='-KPIC' ac_cv_prog_cc_static='-Bstatic' ac_cv_prog_cc_wl='-Qoption ld ' ;; gcx) # Green Hills C++ Compiler ac_cv_prog_cc_pic='-PIC' ;; *) ;; esac ;; sunos4*) case "$cc_basename" in CC) # Sun C++ 4.x ac_cv_prog_cc_pic='-pic' ac_cv_prog_cc_static='-Bstatic' ;; lcc) # Lucid ac_cv_prog_cc_pic='-pic' ;; *) ;; esac ;; tandem*) case "$cc_basename" in NCC) # NonStop-UX NCC 3.20 ac_cv_prog_cc_pic='-KPIC' ;; *) ;; esac ;; unixware*) ;; vxworks*) ;; *) ac_cv_prog_cc_can_build_shared=no ;; esacfiac_cv_prog_cc_pic="$ac_cv_prog_cc_pic -DPIC"# Figure out "hidden" C++ library dependencies from verbose# compiler output whening linking a shared library.cat > conftest.$ac_ext <<EOFclass Foo{public: Foo (void) { a = 0; }private: int a;};EOFif eval $ac_compile 2>&5; then # Parse the compiler output and extract the necessary # objects, libraries and library flags. # Sentinel used to keep track of whether or not we are before # the conftest object file. pre_test_object_deps_done=no for p in `eval $output_verbose_link_cmds`; do case $p in -L* | -R* | -l*) # Some compilers place space between "-{L,R}" and the path. # Remove the space. if test $p = "-L" \ || test $p = "-R"; then prev=$p continue else prev= fi if test "$pre_test_object_deps_done" = no; then case $p in -L* | -R*) # Internal compiler library paths should come after those # provided the user. The postdeps already come after the # user supplied libs so there is no need to process them. if test -z "$compiler_lib_search_path"; then compiler_lib_search_path="${prev}${p}" else compiler_lib_search_path="${compiler_lib_search_path} ${prev}${p}" fi ;; # The "-l" case would never come before the object being # linked, so don't bother handling this case. esac else if test -z "$postdeps"; then postdeps="${prev}${p}" else postdeps="${postdeps} ${prev}${p}" fi fi ;; *.$objext) # This assumes that the test object file only shows up # once in the compiler output. if test "$p" = "conftest.$objext"; then pre_test_object_deps_done=yes continue fi if test "$pre_test_object_deps_done" = no; then if test -z "$predep_objects"; then predep_objects="$p" else predep_objects="$predep_objects $p" fi else if test -z "$postdep_objects"; then postdep_objects="$p" else postdep_objects="$postdep_objects $p" fi fi ;; *) ;; # Ignore the rest. esac done # Clean up. rm -f a.outelse echo "ltcf-cxx.sh: error: problem compiling test program"fi$rm -f confest.$objextcase " $postdeps " in*" -lc "*) need_lc=no ;;*) need_lc=yes ;;esac
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -