Re: problem using ctypes with MMX intrinsics

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Robert Kern

    #1

    Re: problem using ctypes with MMX intrinsics

    dcharno wrote:
    Is it possible to use ctypes with a shared library which uses MMX/SSE
    intrinsics? I can load the library and access functions inside it, but
    I getting a seg fault when I hit one of the intrinsics. I'm wondering
    if there might be some sort of stack alignment problem.
    >
    I am using gcc version 4.2.3 and Python 2.5.2 on Ubuntu 8.04.
    >
    Any suggestions would be helpful.
    Well, stack alignment would be a problem with how the shared library gets
    compiled, nothing to do with ctypes (I think). However, if you are passing in
    arrays from ctypes, *they* may also be misaligned. Try to check the addresses of
    the ctypes values you are passing in. I'm not entirely sure how to do that, though.

    --
    Robert Kern

    "I have come to believe that the whole world is an enigma, a harmless enigma
    that is made terrible by our own mad attempt to interpret it as though it had
    an underlying truth."
    -- Umberto Eco

  • Diez B. Roggisch

    #2
    Re: problem using ctypes with MMX intrinsics

    Robert Kern schrieb:
    dcharno wrote:
    >Is it possible to use ctypes with a shared library which uses MMX/SSE
    >intrinsics? I can load the library and access functions inside it,
    >but I getting a seg fault when I hit one of the intrinsics. I'm
    >wondering if there might be some sort of stack alignment problem.
    >>
    >I am using gcc version 4.2.3 and Python 2.5.2 on Ubuntu 8.04.
    >>
    >Any suggestions would be helpful.
    >
    Well, stack alignment would be a problem with how the shared library
    gets compiled, nothing to do with ctypes (I think). However, if you are
    passing in arrays from ctypes, *they* may also be misaligned. Try to
    check the addresses of the ctypes values you are passing in. I'm not
    entirely sure how to do that, though.
    there is the addressof-function. If this is really the problem, it
    should be possible to allocate data + margin (e.g. c_int-arrays), and
    cast the proper aligned address via from_address.

    Diez

    Comment

    • Lawrence D'Oliveiro

      #3
      Re: problem using ctypes with MMX intrinsics

      In message <mailman.2521.1 224096959.3487. python-list@python.org >, Robert
      Kern wrote:
      Try to check the addresses of the ctypes values you are passing in. I'm
      not entirely sure how to do that, though.
      Cast the address to an integer and print it out? I think the data needs to
      be 16-byte-aligned, so in hex, the units digit of the address should always
      be zero.

      Comment

      Working...