python numpy包調用core dumped、Linux VDSO機制

一、問題描述: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

相關文章
相關標籤/搜索