- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi, I am on linux os. I want to compile a library and link it to the main procedure by Makefile. The object files are compiled as the link https://www.cita.utoronto.ca/~merz/intel_c10b/main_cls/mergedProjects/optaps_cls/common/optaps_ipo_lib.htm . But when I link the library, it compiles :"error adding symbols: archive has no index; run ranlib to add one " . The error will be removed after remove the IPO. Why this happens? Thank you!
Makefile likes follows:
$(LIB_scalapack): $(SOLVESH_LIB)
xiar cr -o $(LIB_scalapack) $(SOLVESH_LIB)
ranlib libscalapack_base.a
endif
$(SOLVESH_LIB): xx.f90
mpiifx -O3 -r8 -fpp -ipo -fpe0 -ftz -align -qopenmp -fpp -auto -c xx.f90
main: $(LIB_scalapack) main.o
mpiifx -r8 -fpp -ipo -fpe0 -ftz -align -qopenmp -fpp -auto -O3 -l$(LIB_scalapack) -o main main.o
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
IPO object formats are not the same between our older compilers icc icpc and ifort and the newer compilers icx icpx and ifx. the libscalack is therefore not usable with IPO with ifx.
Instead of xiar you have to use the LLVM replacements we have in
<root path>/compiler/<version>/bin/compiler
llmv-ar instead of xiar
And compile scalapack with icx -ipo before using this.
In that dir <root path>/compiler/<version>/bin/compiler you will find our replacement utils. Use these if you have IPO compiled objects/libs. It is NOT added to PATH so you will need to do that or fully path the utils.

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