- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi everyone,
I'm trying to build WRF for Xeon Phi (option no.21 after running ./configure), however, I get the following errors when using ./compile wrf :
x86_64-k1om-linux-ld: skipping incompatible /usr/local/lib/libnetcdff.so when searching for -lnetcdff
x86_64-k1om-linux-ld: skipping incompatible /usr/local/lib/libnetcdff.a when searching for -lnetcdff
x86_64-k1om-linux-ld: cannot find -lnetcdff
x86_64-k1om-linux-ld: skipping incompatible /usr/local/lib/libnetcdf.so when searching for -lnetcdf
x86_64-k1om-linux-ld: skipping incompatible /usr/local/lib/libnetcdf.a when searching for -lnetcdf
x86_64-k1om-linux-ld: cannot find -lnetcdf
I did not find any article that describes how to build netcdf for MIC, please let me know what am I doing wrong :)
Thank you,
Dennis.
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Refer to How to get WRF running on the Intel(R) Xeon Phi(tm) Coprocessor
The particular error you received occurs when linking the host-compiled (Intel® 64) version of the netcdf library where the WRF build requires a version built specifically for the Intel Xeon Phi™ coprocessor. This is discussed in the article noted above.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I've done everything according to the Step By Step and I get the following error :
/bin/sh ../libtool --tag=CC --mode=link icc -I/usr/local/include -mmic -version-info 9:0:2 -L/usr/local/lib -mmic -o libnetcdf.la -rpath /usr/local/lib libnetcdf_la-stub.lo ../libdispatch/libnetcdf2.la ../libdispatch/libdispatch.la ../libsrc/libnetcdf3.la ../libdap2/libdap2.la ../oc2/liboc.la ../libsrc4/libnetcdf4.la -lhdf5_hl -lhdf5 -lm -lcurl
libtool: link: icc -shared -fPIC -DPIC .libs/libnetcdf_la-stub.o -Wl,--whole-archive ../libdispatch/.libs/libnetcdf2.a ../libdispatch/.libs/libdispatch.a ../libsrc/.libs/libnetcdf3.a ../libdap2/.libs/libdap2.a ../oc2/.libs/liboc.a ../libsrc4/.libs/libnetcdf4.a -Wl,--no-whole-archive -Wl,-rpath -Wl,/usr/local/lib -Wl,-rpath -Wl,/usr/local/lib -L/usr/local/lib /usr/local/lib/libhdf5_hl.so /usr/local/lib/libhdf5.so /usr/local/lib/libsz.so -ldl -lm /usr/local/lib/libcurl.so -lidn -lssl -lcrypto -lldap -lz -lrt -mmic -mmic -Wl,-soname -Wl,libnetcdf.so.7 -o .libs/libnetcdf.so.7.2.0
/usr/local/lib/libhdf5_hl.so: could not read symbols: File in wrong format
make[2]: *** [libnetcdf.la] Error 1
make[2]: Leaving directory `/usr/local/src/netcdf-4.3.1.1/liblib'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/usr/local/src/netcdf-4.3.1.1'
make: *** [all] Error 2
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I've done everything according to the Step By Step and I get the following error :
/bin/sh ../libtool --tag=CC --mode=link icc -I/usr/local/include -mmic -version-info 9:0:2 -L/usr/local/lib -mmic -o libnetcdf.la -rpath /usr/local/lib libnetcdf_la-stub.lo ../libdispatch/libnetcdf2.la ../libdispatch/libdispatch.la ../libsrc/libnetcdf3.la ../libdap2/libdap2.la ../oc2/liboc.la ../libsrc4/libnetcdf4.la -lhdf5_hl -lhdf5 -lm -lcurl
libtool: link: icc -shared -fPIC -DPIC .libs/libnetcdf_la-stub.o -Wl,--whole-archive ../libdispatch/.libs/libnetcdf2.a ../libdispatch/.libs/libdispatch.a ../libsrc/.libs/libnetcdf3.a ../libdap2/.libs/libdap2.a ../oc2/.libs/liboc.a ../libsrc4/.libs/libnetcdf4.a -Wl,--no-whole-archive -Wl,-rpath -Wl,/usr/local/lib -Wl,-rpath -Wl,/usr/local/lib -L/usr/local/lib /usr/local/lib/libhdf5_hl.so /usr/local/lib/libhdf5.so /usr/local/lib/libsz.so -ldl -lm /usr/local/lib/libcurl.so -lidn -lssl -lcrypto -lldap -lz -lrt -mmic -mmic -Wl,-soname -Wl,libnetcdf.so.7 -o .libs/libnetcdf.so.7.2.0
/usr/local/lib/libhdf5_hl.so: could not read symbols: File in wrong format
make[2]: *** [libnetcdf.la] Error 1
make[2]: Leaving directory `/usr/local/src/netcdf-4.3.1.1/liblib'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/usr/local/src/netcdf-4.3.1.1'
make: *** [all] Error 2
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I've done everything according to the Step By Step and I get the following error :
/bin/sh ../libtool --tag=CC --mode=link icc -I/usr/local/include -mmic -version-info 9:0:2 -L/usr/local/lib -mmic -o libnetcdf.la -rpath /usr/local/lib libnetcdf_la-stub.lo ../libdispatch/libnetcdf2.la ../libdispatch/libdispatch.la ../libsrc/libnetcdf3.la ../libdap2/libdap2.la ../oc2/liboc.la ../libsrc4/libnetcdf4.la -lhdf5_hl -lhdf5 -lm -lcurl
libtool: link: icc -shared -fPIC -DPIC .libs/libnetcdf_la-stub.o -Wl,--whole-archive ../libdispatch/.libs/libnetcdf2.a ../libdispatch/.libs/libdispatch.a ../libsrc/.libs/libnetcdf3.a ../libdap2/.libs/libdap2.a ../oc2/.libs/liboc.a ../libsrc4/.libs/libnetcdf4.a -Wl,--no-whole-archive -Wl,-rpath -Wl,/usr/local/lib -Wl,-rpath -Wl,/usr/local/lib -L/usr/local/lib /usr/local/lib/libhdf5_hl.so /usr/local/lib/libhdf5.so /usr/local/lib/libsz.so -ldl -lm /usr/local/lib/libcurl.so -lidn -lssl -lcrypto -lldap -lz -lrt -mmic -mmic -Wl,-soname -Wl,libnetcdf.so.7 -o .libs/libnetcdf.so.7.2.0
/usr/local/lib/libhdf5_hl.so: could not read symbols: File in wrong format
make[2]: *** [libnetcdf.la] Error 1
make[2]: Leaving directory `/usr/local/src/netcdf-4.3.1.1/liblib'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/usr/local/src/netcdf-4.3.1.1'
make: *** [all] Error 2
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I've done everything according to the Step By Step and I get the following error :
/bin/sh ../libtool --tag=CC --mode=link icc -I/usr/local/include -mmic -version-info 9:0:2 -L/usr/local/lib -mmic -o libnetcdf.la -rpath /usr/local/lib libnetcdf_la-stub.lo ../libdispatch/libnetcdf2.la ../libdispatch/libdispatch.la ../libsrc/libnetcdf3.la ../libdap2/libdap2.la ../oc2/liboc.la ../libsrc4/libnetcdf4.la -lhdf5_hl -lhdf5 -lm -lcurl
libtool: link: icc -shared -fPIC -DPIC .libs/libnetcdf_la-stub.o -Wl,--whole-archive ../libdispatch/.libs/libnetcdf2.a ../libdispatch/.libs/libdispatch.a ../libsrc/.libs/libnetcdf3.a ../libdap2/.libs/libdap2.a ../oc2/.libs/liboc.a ../libsrc4/.libs/libnetcdf4.a -Wl,--no-whole-archive -Wl,-rpath -Wl,/usr/local/lib -Wl,-rpath -Wl,/usr/local/lib -L/usr/local/lib /usr/local/lib/libhdf5_hl.so /usr/local/lib/libhdf5.so /usr/local/lib/libsz.so -ldl -lm /usr/local/lib/libcurl.so -lidn -lssl -lcrypto -lldap -lz -lrt -mmic -mmic -Wl,-soname -Wl,libnetcdf.so.7 -o .libs/libnetcdf.so.7.2.0
/usr/local/lib/libhdf5_hl.so: could not read symbols: File in wrong format
make[2]: *** [libnetcdf.la] Error 1
make[2]: Leaving directory `/usr/local/src/netcdf-4.3.1.1/liblib'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/usr/local/src/netcdf-4.3.1.1'
make: *** [all] Error 2
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi - the process for building netcdf is described in section V of that same document (scroll down to that section)-
http://software.intel.com/en-us/articles/how-to-get-wrf-running-on-the-intelr-xeon-phitm-coprocessor
Your error message is odd -- could you be stumbling on libraries you previously compiled (for a different architecture/OS/build)?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I'm sorry for the x4 post, my browser was stuck.
I removed all RPM's and ran make uninstall on everything that related to HDF5 and NetCDF.
1. When I'm running the following make I get the following error : make CFLAGS=-mmic FCLAGS=-mmic LDFLAGS=-mmic
In file included from nc4attr.c(15):
../include/nc4internal.h(18): catastrophic error: cannot open source file "hdf5.h"
#include <hdf5.h>
^compilation aborted for nc4attr.c (code 4)
make[2]: *** [libnetcdf4_la-nc4attr.lo] Error 1
make[2]: Leaving directory `/usr/local/src/netcdf-4.3.1.1/libsrc4'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/usr/local/src/netcdf-4.3.1.1'
make: *** [all] Error 2
** Before running the make command, I ran export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib to point out where HDF5's libraries are.
2. When I'm running the following make, I get the next error: make CFLAGS='-I/usr/local/include -mmic' FCLAGS=-mmic LDFLAGS='-L/usr/local/lib -mmic'
/usr/local/lib/libhdf5_hl.so: could not read symbols: File in wrong format
make[2]: *** [libnetcdf.la] Error 1
make[2]: Leaving directory `/usr/local/src/netcdf-4.3.1.1/liblib'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/usr/local/src/netcdf-4.3.1.1'
make: *** [all] Error 2
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi, Dennis,
Did you ever get WRF to build for you? In looking back over this post, I got to wondering - maybe it would help to set up specific directories to hold the coprocessor versions of the libraries.
If you look at your environment after you run 'source /opt/intel/composer_xe_2013.2.146/bin/compilervars.sh intel64', you will see there is a LIBRARY_PATH and a MIC_LIBRARY_PATH, an LD_LIBRARY_PATH and a MIC_LD_LIBRARY_PATH. In the MIC versions of the path variables, the paths all have mic in the pathname. So, maybe putting the coprocessor versions of the libraries into /usr/local/lib/mic and adding that path to MIC_LIBRARY_PATH and MIC_LD_LIBRARY_PATH might help?

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page