Project

General

Profile

Final linking issue .so vs. .a

Added by Ray Sheppard about 5 years ago

Hi,
I have been trying to build v. 1.9.6 on a Cray XT-7. I have set the program environment to GNU, loaded cray-hdf5/1.8.16, cray-netcdf/4.4.0, fftw/3.3.4.7 modules. The Cray loads cray-mpich/7.3.2 by default.
I have tried many different configures. I have tried just static, shared and many different settings of LIVS and LDFLAGS. Everything goes well until the link. It insists on skipping over the static library and failing trying to link the dynamic library to the the .so library of the same name in the same directory. A promising configure was:

./configure --prefix=/N/soft/cle5/cdo/gnu/1.9.6 --with-netcdf=yes --with-hdf5=yes  --with-fftw  CC=cc F77=ftn CXX=CC LIBS="-L/opt/cray/fftw/3.3.4.7/interlagos/lib/libfftw3.a -L/opt/cray/fftw/3.3.4.7/interlagos/lib/libfftw3f_mpi.a"

That ultimately yields:

mv -f kdtreelib/.deps/libcdo_la-pqueue.Tpo kdtreelib/.deps/libcdo_la-pqueue.Plo
/bin/sh ../libtool --tag=CXX --mode=link CC -std=gnu++11 -g -O2 -fopenmp -o libcdo.la libcdo_la-array.lo libcdo_la-cdo_int.lo libcdo_la-cdo_pthread.lo libcdo_la-cdo_vlist.lo libcdo_la-cdo_getopt.lo libcdo_la-cdo_task.lo libcdo_la-cdo_history.lo libcdo_la-cdo_read.lo libcdo_la-cdo_season.lo libcdo_la-cdo_options.lo libcdo_la-cdo_cdiWrapper.lo libcdo_la-cdo_debugOutput.lo libcdo_la-cdo_defaultValues.lo libcdo_la-cimdOmp.lo libcdo_la-cmortable_parser.lo libcdo_la-after_sptrans.lo libcdo_la-after_fctrans.lo libcdo_la-after_dvtrans.lo libcdo_la-after_vertint.lo libcdo_la-after_namelist.lo libcdo_la-afterburnerlib.lo libcdo_la-constants.lo libcdo_la-color.lo libcdo_la-commandline.lo libcdo_la-convert_units.lo libcdo_la-datetime.lo libcdo_la-ecacore.lo libcdo_la-ecautil.lo libcdo_la-exception.lo libcdo_la-expr.lo libcdo_la-expr_fun.lo libcdo_la-expr_lex.lo libcdo_la-expr_yacc.lo libcdo_la-cdo_features.lo libcdo_la-field.lo libcdo_la-fieldc.lo libcdo_la-fieldccplx.lo libcdo_la-field2.lo libcdo_la-field2cplx.lo libcdo_la-fieldmem.lo libcdo_la-fieldmer.lo libcdo_la-fieldzon.lo libcdo_la-getMemorySize.lo libcdo_la-getRSS.lo libcdo_la-gradsdeslib.lo libcdo_la-grid.lo libcdo_la-grid_proj.lo libcdo_la-grid_area.lo libcdo_la-grid_define.lo libcdo_la-grid_gme.lo libcdo_la-grid_icosphere.lo libcdo_la-grid_rot.lo libcdo_la-grid_from_name.lo libcdo_la-grid_read.lo libcdo_la-grid_read_pingo.lo libcdo_la-grid_print.lo libcdo_la-gridreference.lo libcdo_la-griddes.lo libcdo_la-griddes_h5.lo libcdo_la-griddes_nc.lo libcdo_la-grid_cell_search.lo libcdo_la-grid_point_search.lo libcdo_la-hetaeta.lo libcdo_la-institution.lo libcdo_la-interpol.lo libcdo_la-juldate.lo libcdo_la-listarray.lo libcdo_la-list.lo libcdo_la-merge_sort2.lo libcdo_la-modules.lo libcdo_la-namelist.lo libcdo_la-normal.lo libcdo_la-nth_element.lo libcdo_la-par_io.lo libcdo_la-parse_literals.lo libcdo_la-percentiles_hist.lo libcdo_la-percentiles.lo libcdo_la-pipe.lo libcdo_la-pmlist.lo libcdo_la-sellist.lo libcdo_la-param_conversion.lo libcdo_la-printinfo.lo libcdo_la-process.lo libcdo_la-process_int.lo libcdo_la-processManager.lo libcdo_la-progress.lo libcdo_la-pstream.lo libcdo_la-pstream_int.lo libcdo_la-pthread_debug.lo libcdo_la-readline.lo libcdo_la-realtime.lo libcdo_la-remaplib.lo libcdo_la-remapsort.lo libcdo_la-remap_vars.lo libcdo_la-remap_scrip_io.lo libcdo_la-remap_search_reg2d.lo libcdo_la-remap_search_latbins.lo libcdo_la-remap_point_search.lo libcdo_la-remap_cell_search.lo libcdo_la-remap_store_link.lo libcdo_la-remap_store_link_cnsrv.lo libcdo_la-remap_conserv.lo libcdo_la-remap_conserv_scrip.lo libcdo_la-remap_distwgt.lo libcdo_la-remap_bicubic.lo libcdo_la-remap_bilinear.lo libcdo_la-stdnametable.lo libcdo_la-specspace.lo libcdo_la-statistic.lo libcdo_la-table.lo libcdo_la-text.lo libcdo_la-timer.lo libcdo_la-util_files.lo libcdo_la-util_fileextensions.lo libcdo_la-util_string.lo libcdo_la-util_wildcards.lo libcdo_la-zaxis_print.lo libcdo_la-cdo_zaxis.lo json/libcdo_la-jsmn.lo kdtreelib/libcdo_la-kdtree_cartesian.lo kdtreelib/libcdo_la-kdtree_common.lo kdtreelib/libcdo_la-kdtree_spherical.lo kdtreelib/libcdo_la-qsort.lo kdtreelib/libcdo_la-pmergesort.lo kdtreelib/libcdo_la-pqueue.lo -lm -L/opt/cray/fftw/3.3.4.7/interlagos/lib/libfftw3.a -L/opt/cray/fftw/3.3.4.7/interlagos/lib/libfftw3f_mpi.a
libtool: link: ar cru .libs/libcdo.a .libs/libcdo_la-array.o .libs/libcdo_la-cdo_int.o .libs/libcdo_la-cdo_pthread.o .libs/libcdo_la-cdo_vlist.o .libs/libcdo_la-cdo_getopt.o .libs/libcdo_la-cdo_task.o .libs/libcdo_la-cdo_history.o .libs/libcdo_la-cdo_read.o .libs/libcdo_la-cdo_season.o .libs/libcdo_la-cdo_options.o .libs/libcdo_la-cdo_cdiWrapper.o .libs/libcdo_la-cdo_debugOutput.o .libs/libcdo_la-cdo_defaultValues.o .libs/libcdo_la-cimdOmp.o .libs/libcdo_la-cmortable_parser.o .libs/libcdo_la-after_sptrans.o .libs/libcdo_la-after_fctrans.o .libs/libcdo_la-after_dvtrans.o .libs/libcdo_la-after_vertint.o .libs/libcdo_la-after_namelist.o .libs/libcdo_la-afterburnerlib.o .libs/libcdo_la-constants.o .libs/libcdo_la-color.o .libs/libcdo_la-commandline.o .libs/libcdo_la-convert_units.o .libs/libcdo_la-datetime.o .libs/libcdo_la-ecacore.o .libs/libcdo_la-ecautil.o .libs/libcdo_la-exception.o .libs/libcdo_la-expr.o .libs/libcdo_la-expr_fun.o .libs/libcdo_la-expr_lex.o .libs/libcdo_la-expr_yacc.o .libs/libcdo_la-cdo_features.o .libs/libcdo_la-field.o .libs/libcdo_la-fieldc.o .libs/libcdo_la-fieldccplx.o .libs/libcdo_la-field2.o .libs/libcdo_la-field2cplx.o .libs/libcdo_la-fieldmem.o .libs/libcdo_la-fieldmer.o .libs/libcdo_la-fieldzon.o .libs/libcdo_la-getMemorySize.o .libs/libcdo_la-getRSS.o .libs/libcdo_la-gradsdeslib.o .libs/libcdo_la-grid.o .libs/libcdo_la-grid_proj.o .libs/libcdo_la-grid_area.o .libs/libcdo_la-grid_define.o .libs/libcdo_la-grid_gme.o .libs/libcdo_la-grid_icosphere.o .libs/libcdo_la-grid_rot.o .libs/libcdo_la-grid_from_name.o .libs/libcdo_la-grid_read.o .libs/libcdo_la-grid_read_pingo.o .libs/libcdo_la-grid_print.o .libs/libcdo_la-gridreference.o .libs/libcdo_la-griddes.o .libs/libcdo_la-griddes_h5.o .libs/libcdo_la-griddes_nc.o .libs/libcdo_la-grid_cell_search.o .libs/libcdo_la-grid_point_search.o .libs/libcdo_la-hetaeta.o .libs/libcdo_la-institution.o .libs/libcdo_la-interpol.o .libs/libcdo_la-juldate.o .libs/libcdo_la-listarray.o .libs/libcdo_la-list.o .libs/libcdo_la-merge_sort2.o .libs/libcdo_la-modules.o .libs/libcdo_la-namelist.o .libs/libcdo_la-normal.o .libs/libcdo_la-nth_element.o .libs/libcdo_la-par_io.o .libs/libcdo_la-parse_literals.o .libs/libcdo_la-percentiles_hist.o .libs/libcdo_la-percentiles.o .libs/libcdo_la-pipe.o .libs/libcdo_la-pmlist.o .libs/libcdo_la-sellist.o .libs/libcdo_la-param_conversion.o .libs/libcdo_la-printinfo.o .libs/libcdo_la-process.o .libs/libcdo_la-process_int.o .libs/libcdo_la-processManager.o .libs/libcdo_la-progress.o .libs/libcdo_la-pstream.o .libs/libcdo_la-pstream_int.o .libs/libcdo_la-pthread_debug.o .libs/libcdo_la-readline.o .libs/libcdo_la-realtime.o .libs/libcdo_la-remaplib.o .libs/libcdo_la-remapsort.o .libs/libcdo_la-remap_vars.o .libs/libcdo_la-remap_scrip_io.o .libs/libcdo_la-remap_search_reg2d.o .libs/libcdo_la-remap_search_latbins.o .libs/libcdo_la-remap_point_search.o .libs/libcdo_la-remap_cell_search.o .libs/libcdo_la-remap_store_link.o .libs/libcdo_la-remap_store_link_cnsrv.o .libs/libcdo_la-remap_conserv.o .libs/libcdo_la-remap_conserv_scrip.o .libs/libcdo_la-remap_distwgt.o .libs/libcdo_la-remap_bicubic.o .libs/libcdo_la-remap_bilinear.o .libs/libcdo_la-stdnametable.o .libs/libcdo_la-specspace.o .libs/libcdo_la-statistic.o .libs/libcdo_la-table.o .libs/libcdo_la-text.o .libs/libcdo_la-timer.o .libs/libcdo_la-util_files.o .libs/libcdo_la-util_fileextensions.o .libs/libcdo_la-util_string.o .libs/libcdo_la-util_wildcards.o .libs/libcdo_la-zaxis_print.o .libs/libcdo_la-cdo_zaxis.o json/.libs/libcdo_la-jsmn.o kdtreelib/.libs/libcdo_la-kdtree_cartesian.o kdtreelib/.libs/libcdo_la-kdtree_common.o kdtreelib/.libs/libcdo_la-kdtree_spherical.o kdtreelib/.libs/libcdo_la-qsort.o kdtreelib/.libs/libcdo_la-pmergesort.o kdtreelib/.libs/libcdo_la-pqueue.o
libtool: link: ranlib .libs/libcdo.a
libtool: link: ( cd ".libs" && rm -f "libcdo.la" && ln -s "../libcdo.la" "libcdo.la" )
/bin/sh ../libtool --tag=CXX --mode=link CC -std=gnu++11 -g -O2 -fopenmp -o cdo cdo-cdo.o cdo-Adisit.o cdo-Afterburner.o cdo-Arith.o cdo-Arithc.o cdo-Arithdays.o cdo-Arithlat.o cdo-CDItest.o cdo-CDIread.o cdo-CDIwrite.o cdo-Cat.o cdo-Change.o cdo-Change_e5slm.o cdo-Cloudlayer.o cdo-CMOR.o cdo-CMOR_lite.o cdo-CMOR_table.o cdo-Collgrid.o cdo-Command.o cdo-Comp.o cdo-Compc.o cdo-Complextorect.o cdo-Cond.o cdo-Cond2.o cdo-Condc.o cdo-Consecstat.o cdo-Copy.o cdo-Deltat.o cdo-Deltime.o cdo-Derivepar.o cdo-Detrend.o cdo-Diff.o cdo-Distgrid.o cdo-Duplicate.o cdo-EOFs.o cdo-Eof3d.o cdo-EcaIndices.o cdo-Echam5ini.o cdo-Enlarge.o cdo-Enlargegrid.o cdo-Ensstat.o cdo-Ensstat3.o cdo-Ensval.o cdo-Eofcoeff.o cdo-Eofcoeff3d.o cdo-EstFreq.o cdo-Exprf.o cdo-FC.o cdo-Filedes.o cdo-Fillmiss.o cdo-Filter.o cdo-Fldrms.o cdo-Fldstat.o cdo-Fldstat2.o cdo-Fourier.o cdo-Gengrid.o cdo-Gradsdes.o cdo-Gridboxstat.o cdo-Gridcell.o cdo-Gridsearch.o cdo-Harmonic.o cdo-Hi.o cdo-Histogram.o cdo-Importamsr.o cdo-Importbinary.o cdo-Importcmsaf.o cdo-Importobs.o cdo-Importfv3grid.o cdo-Info.o cdo-Input.o cdo-Intgrid.o cdo-Intgridtraj.o cdo-Intlevel.o cdo-Intlevel3d.o cdo-Intntime.o cdo-Inttime.o cdo-Intyear.o cdo-Invert.o cdo-Invertlev.o cdo-Isosurface.o cdo-Lic.o cdo-MapReduce.o cdo-Maskbox.o cdo-Mastrfu.o cdo-Math.o cdo-Merge.o cdo-Mergegrid.o cdo-Mergetime.o cdo-Merstat.o cdo-Monarith.o cdo-Mrotuv.o cdo-Mrotuvb.o cdo-NCL_wind.o cdo-Ninfo.o cdo-Nmldump.o cdo-Output.o cdo-Outputgmt.o cdo-Pack.o cdo-Pardup.o cdo-Pinfo.o cdo-Pressure.o cdo-Recttocomplex.o cdo-Regres.o cdo-Remap.o cdo-Remapweights.o cdo-Remapeta.o cdo-Replace.o cdo-Replacevalues.o cdo-Rhopot.o cdo-Rotuv.o cdo-Runpctl.o cdo-Runstat.o cdo-Samplegrid.o cdo-Samplegridicon.o cdo-Seascount.o cdo-Seaspctl.o cdo-Seasstat.o cdo-Selbox.o cdo-Selgridcell.o cdo-Select.o cdo-Selmulti.o cdo-Seloperator.o cdo-Selrec.o cdo-Seltime.o cdo-Selvar.o cdo-Selyearidx.o cdo-Set.o cdo-Setattribute.o cdo-Setbox.o cdo-Setgatt.o cdo-Setgrid.o cdo-Sethalo.o cdo-Setmiss.o cdo-Setpartab.o cdo-Setrcaname.o cdo-Settime.o cdo-Setzaxis.o cdo-Shiftxy.o cdo-Showinfo.o cdo-Showattribute.o cdo-Sinfo.o cdo-Smooth.o cdo-Sort.o cdo-Sorttimestamp.o cdo-Specinfo.o cdo-Spectral.o cdo-Spectrum.o cdo-Split.o cdo-Splitrec.o cdo-Splitsel.o cdo-Splittime.o cdo-Splityear.o cdo-Subtrend.o cdo-Tee.o cdo-Templates.o cdo-Test.o cdo-Tests.o cdo-Timcount.o cdo-Timcumsum.o cdo-Timpctl.o cdo-Timselpctl.o cdo-Timselstat.o cdo-Timsort.o cdo-Timstat.o cdo-Timstat2.o cdo-Timstat3.o cdo-Tinfo.o cdo-Tocomplex.o cdo-Transpose.o cdo-Trend.o cdo-Trms.o cdo-Tstepcount.o cdo-Unpack.o cdo-Vargen.o cdo-Varrms.o cdo-Varsstat.o cdo-Vertintml.o cdo-Vertintap.o cdo-Vertstat.o cdo-Vertcum.o cdo-Vertwind.o cdo-Verifygrid.o cdo-Wct.o cdo-Wind.o cdo-WindTrans.o cdo-Writegrid.o cdo-Writerandom.o cdo-XTimstat.o cdo-Yearmonstat.o cdo-Ydayarith.o cdo-Ydaypctl.o cdo-Ydaystat.o cdo-Ydrunpctl.o cdo-Ydrunstat.o cdo-Yhourarith.o cdo-Yhourstat.o cdo-Ymonarith.o cdo-Ymonpctl.o cdo-Ymonstat.o cdo-Yseaspctl.o cdo-Yseasstat.o cdo-Zonstat.o cdo-Magplot.o cdo-Magvector.o cdo-Maggraph.o cdo-template_parser.o cdo-results_template_parser.o cdo-magics_template_parser.o cdo-StringUtilities.o cdo-CdoMagicsMapper.o libcdo.la ../libcdi/src/libcdi.la ../src/lib/yac/libyac.la ../src/lib/ncl/libncl.la -lm -L/opt/cray/fftw/3.3.4.7/interlagos/lib/libfftw3.a -L/opt/cray/fftw/3.3.4.7/interlagos/lib/libfftw3f_mpi.a
libtool: link: CC -std=gnu++11 -g -O2 -fopenmp -o cdo cdo-cdo.o cdo-Adisit.o cdo-Afterburner.o cdo-Arith.o cdo-Arithc.o cdo-Arithdays.o cdo-Arithlat.o cdo-CDItest.o cdo-CDIread.o cdo-CDIwrite.o cdo-Cat.o cdo-Change.o cdo-Change_e5slm.o cdo-Cloudlayer.o cdo-CMOR.o cdo-CMOR_lite.o cdo-CMOR_table.o cdo-Collgrid.o cdo-Command.o cdo-Comp.o cdo-Compc.o cdo-Complextorect.o cdo-Cond.o cdo-Cond2.o cdo-Condc.o cdo-Consecstat.o cdo-Copy.o cdo-Deltat.o cdo-Deltime.o cdo-Derivepar.o cdo-Detrend.o cdo-Diff.o cdo-Distgrid.o cdo-Duplicate.o cdo-EOFs.o cdo-Eof3d.o cdo-EcaIndices.o cdo-Echam5ini.o cdo-Enlarge.o cdo-Enlargegrid.o cdo-Ensstat.o cdo-Ensstat3.o cdo-Ensval.o cdo-Eofcoeff.o cdo-Eofcoeff3d.o cdo-EstFreq.o cdo-Exprf.o cdo-FC.o cdo-Filedes.o cdo-Fillmiss.o cdo-Filter.o cdo-Fldrms.o cdo-Fldstat.o cdo-Fldstat2.o cdo-Fourier.o cdo-Gengrid.o cdo-Gradsdes.o cdo-Gridboxstat.o cdo-Gridcell.o cdo-Gridsearch.o cdo-Harmonic.o cdo-Hi.o cdo-Histogram.o cdo-Importamsr.o cdo-Importbinary.o cdo-Importcmsaf.o cdo-Importobs.o cdo-Importfv3grid.o cdo-Info.o cdo-Input.o cdo-Intgrid.o cdo-Intgridtraj.o cdo-Intlevel.o cdo-Intlevel3d.o cdo-Intntime.o cdo-Inttime.o cdo-Intyear.o cdo-Invert.o cdo-Invertlev.o cdo-Isosurface.o cdo-Lic.o cdo-MapReduce.o cdo-Maskbox.o cdo-Mastrfu.o cdo-Math.o cdo-Merge.o cdo-Mergegrid.o cdo-Mergetime.o cdo-Merstat.o cdo-Monarith.o cdo-Mrotuv.o cdo-Mrotuvb.o cdo-NCL_wind.o cdo-Ninfo.o cdo-Nmldump.o cdo-Output.o cdo-Outputgmt.o cdo-Pack.o cdo-Pardup.o cdo-Pinfo.o cdo-Pressure.o cdo-Recttocomplex.o cdo-Regres.o cdo-Remap.o cdo-Remapweights.o cdo-Remapeta.o cdo-Replace.o cdo-Replacevalues.o cdo-Rhopot.o cdo-Rotuv.o cdo-Runpctl.o cdo-Runstat.o cdo-Samplegrid.o cdo-Samplegridicon.o cdo-Seascount.o cdo-Seaspctl.o cdo-Seasstat.o cdo-Selbox.o cdo-Selgridcell.o cdo-Select.o cdo-Selmulti.o cdo-Seloperator.o cdo-Selrec.o cdo-Seltime.o cdo-Selvar.o cdo-Selyearidx.o cdo-Set.o cdo-Setattribute.o cdo-Setbox.o cdo-Setgatt.o cdo-Setgrid.o cdo-Sethalo.o cdo-Setmiss.o cdo-Setpartab.o cdo-Setrcaname.o cdo-Settime.o cdo-Setzaxis.o cdo-Shiftxy.o cdo-Showinfo.o cdo-Showattribute.o cdo-Sinfo.o cdo-Smooth.o cdo-Sort.o cdo-Sorttimestamp.o cdo-Specinfo.o cdo-Spectral.o cdo-Spectrum.o cdo-Split.o cdo-Splitrec.o cdo-Splitsel.o cdo-Splittime.o cdo-Splityear.o cdo-Subtrend.o cdo-Tee.o cdo-Templates.o cdo-Test.o cdo-Tests.o cdo-Timcount.o cdo-Timcumsum.o cdo-Timpctl.o cdo-Timselpctl.o cdo-Timselstat.o cdo-Timsort.o cdo-Timstat.o cdo-Timstat2.o cdo-Timstat3.o cdo-Tinfo.o cdo-Tocomplex.o cdo-Transpose.o cdo-Trend.o cdo-Trms.o cdo-Tstepcount.o cdo-Unpack.o cdo-Vargen.o cdo-Varrms.o cdo-Varsstat.o cdo-Vertintml.o cdo-Vertintap.o cdo-Vertstat.o cdo-Vertcum.o cdo-Vertwind.o cdo-Verifygrid.o cdo-Wct.o cdo-Wind.o cdo-WindTrans.o cdo-Writegrid.o cdo-Writerandom.o cdo-XTimstat.o cdo-Yearmonstat.o cdo-Ydayarith.o cdo-Ydaypctl.o cdo-Ydaystat.o cdo-Ydrunpctl.o cdo-Ydrunstat.o cdo-Yhourarith.o cdo-Yhourstat.o cdo-Ymonarith.o cdo-Ymonpctl.o cdo-Ymonstat.o cdo-Yseaspctl.o cdo-Yseasstat.o cdo-Zonstat.o cdo-Magplot.o cdo-Magvector.o cdo-Maggraph.o cdo-template_parser.o cdo-results_template_parser.o cdo-magics_template_parser.o cdo-StringUtilities.o cdo-CdoMagicsMapper.o ./.libs/libcdo.a -L/opt/cray/fftw/3.3.4.7/interlagos/lib/libfftw3.a -L/opt/cray/fftw/3.3.4.7/interlagos/lib/libfftw3f_mpi.a /opt/cray/fftw/3.3.4.7/interlagos/lib/libfftw3f_mpi.so /opt/cray/fftw/3.3.4.7/interlagos/lib/libfftw3f_threads.so /opt/cray/fftw/3.3.4.7/interlagos/lib/libfftw3f.so /opt/cray/fftw/3.3.4.7/interlagos/lib/libfftw3_mpi.so -lmpich /opt/cray/fftw/3.3.4.7/interlagos/lib/libfftw3_threads.so /opt/cray/fftw/3.3.4.7/interlagos/lib/libfftw3.so /opt/gcc/5.3.0/snos/lib/../lib64/libgfortran.so /opt/gcc/5.3.0/snos/lib/../lib64/libquadmath.so /opt/gcc/5.3.0/snos/lib/../lib64/libstdc++.so ../libcdi/src/.libs/libcdi.a ../src/lib/yac/.libs/libyac.a ../src/lib/ncl/.libs/libncl.a -lm -pthread -fopenmp -Wl,-rpath -Wl,/opt/cray/fftw/3.3.4.7/interlagos/lib -Wl,-rpath -Wl,/opt/gcc/5.3.0/snos/lib/../lib64 -Wl,-rpath -Wl,/opt/cray/fftw/3.3.4.7/interlagos/lib -Wl,-rpath -Wl,/opt/gcc/5.3.0/snos/lib/../lib64
/usr/bin/ld: attempted static link of dynamic object `/opt/cray/fftw/3.3.4.7/interlagos/lib/libfftw3f_mpi.so'
collect2: error: ld returned 1 exit status
make2: * [cdo] Error 1
make2: Leaving directory `/N/dc2/projects/ray/br2/cdo/cdo-1.9.6/src'
make1:
[all] Error 2
make1: Leaving directory `/N/dc2/projects/ray/br2/cdo/cdo-1.9.6/src'
make: *
* [all-recursive] Error 1

Note that both libraries seem to exist in the failure. Adding "-L" or stubbing with "-l" or even dropping a switch, has no effect. Help would certainly be appreciated because I am stumped. I went through about 174 posts looking for something related but can not seem to find a work around. Thanks in advance.
Ray


Replies (5)

RE: Final linking issue .so vs. .a - Added by Ralf Mueller about 5 years ago

hi Ray!

I can only give some general advice since I don't know about your environment esp. the compiler. I would use the standard way of adding fftw3 with

--with-fftw3=/opt/cray/fftw/3.3.4.7/interlagos
. LIBS should not be used for that. And don't use adding yes to with options, it's not needed since there are already two version: --with-netcdf for true, --without-netcdf for false.

hth
ralf

RE: Final linking issue .so vs. .a - Added by Ray Sheppard about 5 years ago

Thanks Ralf,
I did not see in the config -h that --with-fftw had a directory option. The Crays build static by default because they are interested in fast code and shared libraries are never fast. That has always made them wonkey with packages that try to build both shared and static using the same switches. I will try to build your way with shared turned off in the package and let you know how it goes.
Thanks again!
Ray

RE: Final linking issue .so vs. .a - Added by Ray Sheppard about 5 years ago

Is there a more severe way to tell it to ignore .so libraries? Simply putting --disabled-shared does not do it.

./configure --prefix=/N/soft/cle5/cdo/gnu/1.9.6/static --disable-shared --with-gnu-ld --with-netcdf --with-hdf5 --with-fftw3=/opt/cray/fftw/3.3.4.7/interlagos CC=cc F77=ftn CXX=CC

prints in its configure tests it knows:
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... no
checking whether to build static libraries... yes

But then still throws:

/usr/bin/ld: attempted static link of dynamic object `/opt/cray/fftw/3.3.4.7/interlagos/lib/libfftw3f_mpi.so'
collect2: error: ld returned 1 exit status
make2: *** [cdo] Error 1
make2: Leaving directory `/N/dc2/projects/ray/br2/cdo/cdo-1.9.6/src'
...

I am confused. Why would it even look at shared objects if it isn't? I tried both with and without gnu-ld.
Ray

RE: Final linking issue .so vs. .a - Added by Ray Sheppard about 5 years ago

Go figure but this works for static builds:

./configure --prefix=/N/soft/cle5/cdo/gnu/1.9.6/static --enable-static --disable-shared --with-gnu-ld --with-netcdf --with-hdf5 --with-szlib=/N/soft/cle5/szip --with-fftw3=/opt/cray/fftw/3.3.4.7/interlagos CC="cc -dynamic" F77="ftn -dynamic" CXX="CC -dynamic"

Thanks for pointing me in the right direction.
Ray

RE: Final linking issue .so vs. .a - Added by Ralf Mueller about 5 years ago

hi Ray!

thx for posting the solution here, CRAY can be a pain sometimes...

cheers
ralf

    (1-5/5)