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]


Reply via email to