Zha0q1 commented on a change in pull request #19174:
URL: https://github.com/apache/incubator-mxnet/pull/19174#discussion_r527255648
##########
File path: tools/dependencies/openblas.sh
##########
@@ -31,7 +31,8 @@ if [[ (! -e $DEPS_PATH/lib/libopenblas.a) ]]; then
cd $DEPS_PATH/OpenBLAS-${OPENBLAS_VERSION}
# Adding NO_DYNAMIC=1 flag causes make install to fail
- CFLAGS="-fPIC" CXXFLAGS="-fPIC" $MAKE DYNAMIC_ARCH=1 DYNAMIC_OLDER=1
USE_OPENMP=1
+ CFLAGS="-fPIC" CXXFLAGS="-fPIC" $MAKE DYNAMIC_ARCH=1 DYNAMIC_OLDER=1
USE_OPENMP=1 \
+ INTERFACE64=1 BINARY=64
Review comment:
> Also past the output of `ldd libmxnet.so` to verify that it statically
links to openblas
Yeah I have confirmed the binaries with several builds. Here is one result:
(unix)
```
ubuntu@ip-172-31-38-169:~/fixstaticbuild/lib$ ldd libmxnet.so
linux-vdso.so.1 (0x00007ffd3b5a0000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007eff359f2000)
librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007eff357ea000)
libgfortran.so.4 => /home/ubuntu/fixstaticbuild/lib/./libgfortran.so.4
(0x00007eff3540b000)
libcudnn.so.7 => /usr/local/cuda/lib64/libcudnn.so.7
(0x00007eff1fdec000)
libnvidia-ml.so.1 => /usr/lib/x86_64-linux-gnu/libnvidia-ml.so.1
(0x00007eff1f758000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0
(0x00007eff1f539000)
libcudart.so.10.0 => /usr/local/cuda/lib64/libcudart.so.10.0
(0x00007eff1f2bf000)
libcufft.so.10.0 => /usr/local/cuda/lib64/libcufft.so.10.0
(0x00007eff18e0b000)
libcublas.so.10.0 => /usr/local/cuda/lib64/libcublas.so.10.0
(0x00007eff14875000)
libcusolver.so.10.0 => /usr/local/cuda/lib64/libcusolver.so.10.0
(0x00007eff0c18e000)
libcurand.so.10.0 => /usr/local/cuda/lib64/libcurand.so.10.0
(0x00007eff08027000)
libcuda.so.1 => /usr/lib/x86_64-linux-gnu/libcuda.so.1
(0x00007eff06b74000)
libnvrtc.so.10.0 => /usr/local/cuda/lib64/libnvrtc.so.10.0
(0x00007eff05558000)
libnvToolsExt.so.1 => /usr/local/cuda/lib64/libnvToolsExt.so.1
(0x00007eff0534f000)
libgomp.so.1 => /usr/lib/x86_64-linux-gnu/libgomp.so.1
(0x00007eff05120000)
libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6
(0x00007eff04d97000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007eff049f9000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1
(0x00007eff047e1000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007eff043f0000)
/lib64/ld-linux-x86-64.so.2 (0x00007eff6a210000)
libquadmath.so.0 => /usr/lib/x86_64-linux-gnu/libquadmath.so.0
(0x00007eff041b0000)
```
Also I used `nm -D libmxnet.so | grep blas` `nm -D libmxnet.so | grep getrf`
to confirm that the symbols are hidden.
I am forcing link to `libopenblas.a` so there should be no problem wrt
static linking
##########
File path: tools/dependencies/openblas.sh
##########
@@ -31,7 +31,8 @@ if [[ (! -e $DEPS_PATH/lib/libopenblas.a) ]]; then
cd $DEPS_PATH/OpenBLAS-${OPENBLAS_VERSION}
# Adding NO_DYNAMIC=1 flag causes make install to fail
- CFLAGS="-fPIC" CXXFLAGS="-fPIC" $MAKE DYNAMIC_ARCH=1 DYNAMIC_OLDER=1
USE_OPENMP=1
+ CFLAGS="-fPIC" CXXFLAGS="-fPIC" $MAKE DYNAMIC_ARCH=1 DYNAMIC_OLDER=1
USE_OPENMP=1 \
+ INTERFACE64=1 BINARY=64
Review comment:
> Also past the output of `ldd libmxnet.so` to verify that it statically
links to openblas
Yeah I have confirmed the binaries with several builds. Here is one result:
(ubuntu)
```
ubuntu@ip-172-31-38-169:~/fixstaticbuild/lib$ ldd libmxnet.so
linux-vdso.so.1 (0x00007ffd3b5a0000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007eff359f2000)
librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007eff357ea000)
libgfortran.so.4 => /home/ubuntu/fixstaticbuild/lib/./libgfortran.so.4
(0x00007eff3540b000)
libcudnn.so.7 => /usr/local/cuda/lib64/libcudnn.so.7
(0x00007eff1fdec000)
libnvidia-ml.so.1 => /usr/lib/x86_64-linux-gnu/libnvidia-ml.so.1
(0x00007eff1f758000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0
(0x00007eff1f539000)
libcudart.so.10.0 => /usr/local/cuda/lib64/libcudart.so.10.0
(0x00007eff1f2bf000)
libcufft.so.10.0 => /usr/local/cuda/lib64/libcufft.so.10.0
(0x00007eff18e0b000)
libcublas.so.10.0 => /usr/local/cuda/lib64/libcublas.so.10.0
(0x00007eff14875000)
libcusolver.so.10.0 => /usr/local/cuda/lib64/libcusolver.so.10.0
(0x00007eff0c18e000)
libcurand.so.10.0 => /usr/local/cuda/lib64/libcurand.so.10.0
(0x00007eff08027000)
libcuda.so.1 => /usr/lib/x86_64-linux-gnu/libcuda.so.1
(0x00007eff06b74000)
libnvrtc.so.10.0 => /usr/local/cuda/lib64/libnvrtc.so.10.0
(0x00007eff05558000)
libnvToolsExt.so.1 => /usr/local/cuda/lib64/libnvToolsExt.so.1
(0x00007eff0534f000)
libgomp.so.1 => /usr/lib/x86_64-linux-gnu/libgomp.so.1
(0x00007eff05120000)
libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6
(0x00007eff04d97000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007eff049f9000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1
(0x00007eff047e1000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007eff043f0000)
/lib64/ld-linux-x86-64.so.2 (0x00007eff6a210000)
libquadmath.so.0 => /usr/lib/x86_64-linux-gnu/libquadmath.so.0
(0x00007eff041b0000)
```
Also I used `nm -D libmxnet.so | grep blas` `nm -D libmxnet.so | grep getrf`
to confirm that the symbols are hidden.
I am forcing link to `libopenblas.a` so there should be no problem wrt
static linking
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]