Skip to content

-fPIC is required to build shared objects #4951

@yurivict

Description

@yurivict

Link fails on FreeBSD:

FAILED: lib/halide.so 
: && /usr/bin/c++ -fPIC -O2 -pipe -fno-omit-frame-pointer -fstack-protector-strong -fno-strict-aliasing -fno-omit-frame-pointer -O2 -pipe -fno-omit-frame-pointer -fstack-protector-strong -fno-strict-aliasing -fno-omit-frame-pointer  -fstack-protector-strong  -rdynamic -shared  -o lib/halide.so python_bindings/src/CMakeFiles/halide_py.dir/PyArgument.cpp.o python_bindings/src/CMakeFiles/halide_py.dir/PyBoundaryConditions.cpp.o python_bindings/src/CMakeFiles/halide_py.dir/PyBuffer.cpp.o python_bindings/src/CMakeFiles/halide_py.dir/PyConciseCasts.cpp.o python_bindings/src/CMakeFiles/halide_py.dir/PyDerivative.cpp.o python_bindings/src/CMakeFiles/halide_py.dir/PyEnums.cpp.o python_bindings/src/CMakeFiles/halide_py.dir/PyError.cpp.o python_bindings/src/CMakeFiles/halide_py.dir/PyExpr.cpp.o python_bindings/src/CMakeFiles/halide_py.dir/PyExternFuncArgument.cpp.o python_bindings/src/CMakeFiles/halide_py.dir/PyFunc.cpp.o python_bindings/src/CMakeFiles/halide_py.dir/PyFuncRef.cpp.o python_bindings/src/CMakeFiles/halide_py.dir/PyHalide.cpp.o python_bindings/src/CMakeFiles/halide_py.dir/PyIROperator.cpp.o python_bindings/src/CMakeFiles/halide_py.dir/PyImageParam.cpp.o python_bindings/src/CMakeFiles/halide_py.dir/PyInlineReductions.cpp.o python_bindings/src/CMakeFiles/halide_py.dir/PyLambda.cpp.o python_bindings/src/CMakeFiles/halide_py.dir/PyLoopLevel.cpp.o python_bindings/src/CMakeFiles/halide_py.dir/PyMachineParams.cpp.o python_bindings/src/CMakeFiles/halide_py.dir/PyModule.cpp.o python_bindings/src/CMakeFiles/halide_py.dir/PyParam.cpp.o python_bindings/src/CMakeFiles/halide_py.dir/PyPipeline.cpp.o python_bindings/src/CMakeFiles/halide_py.dir/PyRDom.cpp.o python_bindings/src/CMakeFiles/halide_py.dir/PyStage.cpp.o python_bindings/src/CMakeFiles/halide_py.dir/PyTarget.cpp.o python_bindings/src/CMakeFiles/halide_py.dir/PyTuple.cpp.o python_bindings/src/CMakeFiles/halide_py.dir/PyType.cpp.o python_bindings/src/CMakeFiles/halide_py.dir/PyVar.cpp.o python_bindings/src/CMakeFiles/halide_py.dir/PyVarOrRVar.cpp.o  -Wl,-rpath,/usr/local/llvm90/lib:  -flto  lib/libHalide.a  /usr/local/llvm90/lib/libLLVM-9.so && cd /usr/ports/lang/halide/work/.build/python_bindings/src && /usr/bin/strip /usr/ports/lang/halide/work/.build/lib/halide.so
ld: error: relocation R_X86_64_PC32 cannot be used against symbol __stack_chk_guard; recompile with -fPIC
>>> defined in /lib/libc.so.7
>>> referenced by Argument.cpp
>>>               Argument.cpp.o:(Halide::Argument::Argument(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, Halide::Argument::Kind, Halide::Type const&, int, Halide::ArgumentEstimates const&)) in archive lib/libHalide.a

ld: error: can't create dynamic relocation R_X86_64_32 against local symbol in readonly segment; recompile object files with -fPIC or pass '-Wl,-z,notext' to allow text relocations in the output
>>> defined in lib/libHalide.a(Argument.cpp.o)
>>> referenced by Argument.cpp
>>>               Argument.cpp.o:(Halide::Argument::Argument(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, Halide::Argument::Kind, Halide::Type const&, int, Halide::ArgumentEstimates const&)) in archive lib/libHalide.a

HALIDE_SHARED_LIBRARY was OFF

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions