Skip to content

Add make clean in docker/build.sh to avoid link problem among different environment #8075

Closed
@luotao1

Description

@luotao1

There is no make clean before make -j now.

function run_build() {
cat <<EOF
============================================
Building in /paddle/build ...
============================================
EOF
make -j `nproc`
}

The test order of teamcity is: 1. CPU(openblas), 2.CPU(mkl)+GPU

Thus, #7827 encounter a multiple definition mistake when compiling static library libpaddle_fluid.a in the second CPU+GPU mode.

[22:21:24]	libpaddle_fluid.a(tensor_generated_tensor_util.cu.o): In function `paddle::framework::HasInf(paddle::framework::Tensor const&)':
[22:21:24]	tmpxft_00003645_00000000-4_tensor_util.compute_61.cudafe1.cpp:(.text+0x5c0): multiple definition of `paddle::framework::HasInf(paddle::framework::Tensor const&)'
[22:21:24]	libpaddle_fluid.a(tensor_util.cc.o):tensor_util.cc:(.text+0x190): first defined here
[22:21:24]	libpaddle_fluid.a(tensor_generated_tensor_util.cu.o): In function `paddle::framework::HasNAN(paddle::framework::Tensor const&)':
[22:21:24]	tmpxft_00003645_00000000-4_tensor_util.compute_61.cudafe1.cpp:(.text+0xf40): multiple definition of `paddle::framework::HasNAN(paddle::framework::Tensor const&)'
[22:21:24]	libpaddle_fluid.a(tensor_util.cc.o):tensor_util.cc:(.text+0x430): first defined here
[22:21:24]	libpaddle_fluid.a(tensor_util.cc.o): In function `paddle::framework::Tensor::mutable_data(boost::variant<paddle::platform::CUDAPlace, paddle::platform::CPUPlace>, std::type_index)':
[22:21:24]	tensor_util.cc:(.text._ZN6paddle9framework6Tensor12mutable_dataEN5boost7variantINS_8platform9CUDAPlaceEJNS4_8CPUPlaceEEEESt10type_index[_ZN6paddle9framework6Tensor12mutable_dataEN5boost7variantINS_8platform9CUDAPlaceEJNS4_8CPUPlaceEEEESt10type_index]+0x2c3): undefined reference to `paddle::platform::is_cpu_place(boost::variant<paddle::platform::CUDAPlace, paddle::platform::CPUPlace> const&)'
[22:21:24]	tensor_util.cc:(.text._ZN6paddle9framework6Tensor12mutable_dataEN5boost7variantINS_8platform9CUDAPlaceEJNS4_8CPUPlaceEEEESt10type_index[_ZN6paddle9framework6Tensor12mutable_dataEN5boost7variantINS_8platform9CUDAPlaceEJNS4_8CPUPlaceEEEESt10type_index]+0x2cf): undefined reference to `paddle::platform::is_gpu_place(boost::variant<paddle::platform::CUDAPlace, paddle::platform::CPUPlace> const&)'
[22:21:24]	tensor_util.cc:(.text._ZN6paddle9framework6Tensor12mutable_dataEN5boost7variantINS_8platform9CUDAPlaceEJNS4_8CPUPlaceEEEESt10type_index[_ZN6paddle9framework6Tensor12mutable_dataEN5boost7variantINS_8platform9CUDAPlaceEJNS4_8CPUPlaceEEEESt10type_index]+0xa70): undefined reference to `paddle::platform::is_cpu_place(boost::variant<paddle::platform::CUDAPlace, paddle::platform::CPUPlace> const&)'
[22:21:24]	libpaddle_fluid.a(tensor_util.cc.o): In function `bool paddle::framework::AnyVisitor<paddle::framework::HasInfPredicate>::operator()<paddle::platform::CPUPlace>(paddle::platform::CPUPlace const&) const':
[22:21:24]	tensor_util.cc:(.text._ZNK6paddle9framework10AnyVisitorINS0_15HasInfPredicateEEclINS_8platform8CPUPlaceEEEbRKT_[_ZNK6paddle9framework10AnyVisitorINS0_15HasInfPredicateEEclINS_8platform8CPUPlaceEEEbRKT_]+0x766): undefined reference to `paddle::platform::DeviceContextPool::Get(boost::variant<paddle::platform::CUDAPlace, paddle::platform::CPUPlace> const&)'
[22:21:24]	libpaddle_fluid.a(tensor_util.cc.o): In function `bool paddle::framework::AnyVisitor<paddle::framework::HasNANPredicate>::operator()<paddle::platform::CPUPlace>(paddle::platform::CPUPlace const&) const':
[22:21:24]	tensor_util.cc:(.text._ZNK6paddle9framework10AnyVisitorINS0_15HasNANPredicateEEclINS_8platform8CPUPlaceEEEbRKT_[_ZNK6paddle9framework10AnyVisitorINS0_15HasNANPredicateEEclINS_8platform8CPUPlaceEEEbRKT_]+0x766): undefined reference to `paddle::platform::DeviceContextPool::Get(boost::variant<paddle::platform::CUDAPlace, paddle::platform::CPUPlace> const&)'

The reason is that tensor_util.cu is a soft link to tensor_util.cc

./tensor_util.cc

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