一、問題描述:python
centos 4.3系統,調用 numpy 發生 core dumped,而 centos 6.3正常linux
Lib/python/python-2.7.3/bin/python Python 2.7.3 (default, Oct 30 2012, 19:16:39) [GCC 3.4.5 20051201 (Red Hat 3.4.5-2)] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import numpy Floating point exception (core dumped)
centOS 4.3下 查看動態調用庫centos
ldd /Lib/python/python-2.7.3/bin/python libpthread.so.0 => /lib64/tls/libpthread.so.0 (0x0000003f0b900000) libdl.so.2 => /lib64/libdl.so.2 (0x0000003f0b300000) libutil.so.1 => /lib64/libutil.so.1 (0x0000003f0db00000) libm.so.6 => /lib64/tls/libm.so.6 (0x0000003f0b500000) libc.so.6 => /lib64/tls/libc.so.6 (0x0000003f0b000000) /lib64/ld-linux-x86-64.so.2 (0x0000003f0ae00000)
centOS 6.3下 查看動態調用庫,比centOS 4.3下多linux-vdso.so.1,能夠看到linux-vdso.so.1,沒有與任何實際的文件相對應。這個就是linux用於支持新型系統調用的「虛擬」共享庫,操作系統
ldd Lib/python/python-2.7.3/bin/python linux-vdso.so.1 => (0x00007fff265ff000) libpthread.so.0 => /lib64/libpthread.so.0 (0x000000318b200000) libdl.so.2 => /lib64/libdl.so.2 (0x000000318aa00000) libutil.so.1 => /lib64/libutil.so.1 (0x000000318de00000) libm.so.6 => /lib64/libm.so.6 (0x000000318b600000) libc.so.6 => /lib64/libc.so.6 (0x000000318ae00000) /lib64/ld-linux-x86-64.so.2 (0x000000318a600000)
二、緣由:numpy包是在 centOS 6.3 下編譯安裝的,致使在 centos4.3下找不到對應的連接庫。code
三、VDSO機制orm
linux-vdso.so.1並不存在實際的文件,它只是操做系統生成的一個虛擬動態共享庫(Virtual Dynamic Shared Library,VDSO)。由於該共享庫不是以一個文件的格式(屬於elf文件格式)存在於文件系統中,而是由內核提供的,對用戶進程而言是虛擬的。進程
查看內核版本:it
cat /proc/version
Linux version 2.6.32_1-16-0-0 (yuanlinsi@dbl-sat-dev01.dbl01.baidu.com) (gcc version 4.4.4 20100726 (Red Hat 4.4.4-13) (GCC) ) #2 SMP Tue Aug 4 10:59:02 CST 2015io