pypa / setuptools

Official project repository for the Setuptools build system
https://pypi.org/project/setuptools/
MIT License
2.46k stars 1.18k forks source link

Setuptools generated compilation command incorrectly specifying library directories #1448

Open seanpianka opened 6 years ago

seanpianka commented 6 years ago

After running python3 setup.py build_ext, the following command is generated throughout the build sequence:

arm-poky-linux-gnueabi-g++ ... \
-L=/opt/cortexa9hf-neon-poky-linux-gnueabi/usr/lib/ \
-L=/opt/cortexa9hf-neon-poky-linux-gnueabi/lib/ \
-lpython3.5m \
-o build/lib.linux-x86_64-3.5/kiwisolver.cpython-35m-x86_64-linux-gnu.so

which produces the following errors:

/opt/x86_64-linux/usr/libexec/arm-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/5.4.0/real-ld: cannot find crti.o: No such file or directory
/opt/x86_64-linux/usr/libexec/arm-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/5.4.0/real-ld: cannot find crtbeginS.o: No such file or directory
/opt/x86_64-linux/usr/libexec/arm-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/5.4.0/real-ld: cannot find -lpython3.5m
/opt/x86_64-linux/usr/libexec/arm-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/5.4.0/real-ld: cannot find -lstdc++
/opt/x86_64-linux/usr/libexec/arm-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/5.4.0/real-ld: cannot find -lm
/opt/x86_64-linux/usr/libexec/arm-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/5.4.0/real-ld: cannot find -lgcc_s
/opt/x86_64-linux/usr/libexec/arm-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/5.4.0/real-ld: cannot find -lc
/opt/x86_64-linux/usr/libexec/arm-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/5.4.0/real-ld: cannot find -lgcc_s
/opt/x86_64-linux/usr/libexec/arm-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/5.4.0/real-ld: cannot find crtendS.o: No such file or directory
/opt/x86_64-linux/usr/libexec/arm-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/5.4.0/real-ld: cannot find crtn.o: No such file or directory

However, when I replace the -L= with -L, the errors are reduced down to:

/opt/x86_64-linux/usr/libexec/arm-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/5.4.0/real-ld: cannot find crti.o: No such file or directory
/opt/x86_64-linux/usr/libexec/arm-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/5.4.0/real-ld: cannot find crtbeginS.o: No such file or directory
/opt/x86_64-linux/usr/libexec/arm-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/5.4.0/real-ld: cannot find -lgcc

Why does setuptools generate flags for library directories with -L=/path/ rather than -L/path/?

silkentrance commented 6 years ago

Can you please point us to the setup.py which produces said errors?

seanpianka commented 6 years ago

ext_modules = [
    Extension(
        'kiwisolver',
        ['py/kiwisolver.cpp',
         'py/constraint.cpp',
         'py/expression.cpp',
         'py/solver.cpp',
         'py/strength.cpp',
         'py/term.cpp',
         'py/variable.cpp'],
        include_dirs=[
            '.',
            '/opt/cortexa9hf-neon-poky-linux-gnueabi/usr/include/python3.5m/'
        ],
        library_dirs=[
            '/opt/cortexa9hf-neon-poky-linux-gnueabi/usr/lib/',
            '/opt/cortexa9hf-neon-poky-linux-gnueabi/lib/'
        ],
        language='c++',
        extra_compiler_args=[
            "--verbose"
        ]
    ),
]

setup(
    name='kiwisolver',
    install_requires=['setuptools'],
    ext_modules=ext_modules,
)

Here is the setup.py which generated the aforementioned errors.

pganssle commented 5 years ago

This does not seem to be enough information to reproduce the problem.

@seanpianka Would it be possible for you to craft a minimal reproducible example for this?