文章目录
-v
编译器自身的编译参数
gcc -v
sg built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/8/lto-wrapper
OFFLOAD_TARGET_NAMES=nvptx-none
OFFLOAD_TARGET_DEFAULT=1
Target: x86_64-redhat-linux
Configured with: …/configure --enable-bootstrap --enable-languages=c,c++,fortran,lto --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info
–with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-shared --enable-threads=posix --enable-checking=release --enable-multilib --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-gcc-major-version-only --with-linker-hash-style=gnu --enable-plugin --enable-initfini-array --with-isl --disable-libmpx --enable-offload-targets=nvptx-none --without-cuda-driver --enable-gnu-indirect-function --enable-cet --with-tune=generic --with-arch_32=x86-64 --build=x86_64-redhat-linux
Thread model: posix
编译选项
enable_threads
这个在gcc/configure文件又解析该文件
target_thread_file 变量设置成参数值,例如 --enable-threads=posix; target_thread_file = “posix”
thread_file = “poxis”
然后在 /libgcc/configure 文件种有用到这个文件变量
# Map from thread model to thread header.
case $target_thread_file in
aix) thread_header=config/rs6000/gthr-aix.h ;;
dce) thread_header=config/pa/gthr-dce.h ;;
lynx) thread_header=config/gthr-lynx.h ;;
mipssde) thread_header=config/mips/gthr-mipssde.h ;;
posix) thread_header=gthr-posix.h ;; 、、、如果是posix,使用的头文件是gthr-posix.h
rtems) thread_header=config/gthr-rtems.h ;;
single) thread_header=gthr-single.h ;;
tpf) thread_header=config/s390/gthr-tpf.h ;;
vxworks) thread_header=config/gthr-vxworks.h ;;
win32) thread_header=config/i386/gthr-win32.h ;;
esac
走到这里,下面两个宏定义就设置上了
#define __GTHREADS 1
#define __GTHREADS_CXX0X 1