osvenskan / posix_ipc

Other
135 stars 24 forks source link

Error Compiling manylinux2010 Wheel #24

Closed william-silversmith closed 4 years ago

william-silversmith commented 4 years ago

Hi and thank you so much for this library! It's been helping scientists perform rapid IO and apply multi-processing to large 3D images.

I've been trying to generate binary wheels for one of my libraries, but posix_ipc has been generating an error during compilation. This is odd, because installing from source on a target machine works. It's only during wheel generation that this happens.

The first error that the compiler spits out is:

    posix_ipc_module.c:1567:37: error: invalid conversion from ‘void*’ to ‘const char*’ [-fpermissive]
             rc = mq_send(self->mqd, msg.buf, msg.len, (unsigned int)priority);

It seems that this is something I might be able to fix by providing appropriate compiler flags, but it seems like this could result in undefined behavior. Is there something I can safely do about this?

Here's the commands that were run:

    Running setup.py install for posix-ipc: started
    Running setup.py install for posix-ipc: finished with status 'error'
    ERROR: Command errored out with exit status 1:
     command: /opt/_internal/cpython-3.7.9/bin/python3.7 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-1g9dkw8w/posix-ipc/setup.py'"'"'; __file__='"'"'/tmp/pip-install-1g9dkw8w/posix-ipc/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-8yzle7l9/install-record.txt --single-version-externally-managed --compile --install-headers /opt/_internal/cpython-3.7.9/include/python3.7m/posix-ipc
         cwd: /tmp/pip-install-1g9dkw8w/posix-ipc/
    Complete output (81 lines):
    running install
    running build
    running build_ext
    building 'posix_ipc' extension
    creating build
    creating build/temp.linux-x86_64-3.7
    g++ -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -I/opt/_internal/cpython-3.7.9/include/python3.7m -c posix_ipc_module.c -o build/temp.linux-x86_64-3.7/posix_ipc_module.o

Oddly, if I log into the base docker image docker run -it -v $PWD:/posix_ipc quay.io/pypa/manylinux2010_x86_64 /bin/bash and try to run /opt/python/cp37-cp37m/bin/python3.7 setup.py develop it compiles normally.

It's crashing during this docker script:

FROM quay.io/pypa/manylinux2010_x86_64 
ENV CC "g++"
RUN /opt/python/cp37-cp37m/bin/pip3.7 install posix-ipc
william-silversmith commented 4 years ago

Oops. This is totally my fault. That should have been ENV CXX "g++" and ENV CC "gcc". Sorry to bother you!

osvenskan commented 4 years ago

@william-silversmith glad you got it working