Skip to content

libxml2.so link failure against libz.so looking for gzopen64@ZLIB_1.2.3.3 #12143

@bartlettroscoe

Description

@bartlettroscoe

snl-atdm-issue

CC: @becker33, @fryeguy52

When trying to link Trilinos with against packages built with Spack with shared libs on an SNL COE RHEL6 machine we get the link errors in Trilinos like:

FAILED: packages/seacas/libraries/ioss/src/main/cth_pressure_map
...
/home/rabartl/Spack.base7/atdm-spack/spack/opt/spack/linux-rhel6-x86_64/gcc-7.2.0/libxml2-2.9.8-qckwa5f4brssbbwbbtxe7tvdy4dnhwlw/lib/libxml2.so.2: undefined reference to 'gzopen64@ZLIB_1.2.3.3'

The full link line in Trilinos for this was:

FULL LINK LINE (click to expand)

/home/rabartl/Spack.base7/atdm-spack/spack/opt/spack/linux-rhel6-x86_64/gcc-7.2.0/openmpi-1.10.1-x2ipjvmrhhgydtcpz5i6s2ln6zjuzvqj/bin/mpicxx --std=c++11 -g -fopenmp -O3 -DNDEBUG packages/seacas/libraries/ioss/src/main/CMakeFiles/cth_pressure_map.dir/cth_pressure_map.C.o packages/seacas/libraries/ioss/src/main/CMakeFiles/cth_pressure_map.dir/vector3d.C.o -o packages/seacas/libraries/ioss/src/main/cth_pressure_map -Wl,-rpath,/home/rabartl/Spack.base7/atdm-spack/spack/opt/spack/linux-rhel6-x86_64/gcc-7.2.0/netcdf-4.4.1-zyizihnvwgg6u7yt5pldcj4vfpmqt7ki/lib:/home/rabartl/Spack.base7/atdm-spack/spack/opt/spack/linux-rhel6-x86_64/gcc-7.2.0/hdf5-1.8.21-tmyizpmttnq3d3lpjq3usvuhksngh3zw/lib:/home/rabartl/Spack.base7/atdm-spack/spack/opt/spack/linux-rhel6-x86_64/gcc-7.2.0/zlib-1.2.11-aqhxxoj2tgtjgdkqpxtdyzo6sfwsi6vg/lib:/home/rabartl/Spack.base7/atdm-spack/spack/opt/spack/linux-rhel6-x86_64/gcc-7.2.0/metis-5.1.0-ui6om2qpphok7c5uqdiwqle6om7funue/lib:/home/rabartl/Spack.base7/atdm-spack/spack/opt/spack/linux-rhel6-x86_64/gcc-7.2.0/parmetis-4.0.3-rpa6ngvxiacewkq3twiic2pxh5ea64r6/lib::::::::::::::: packages/seacas/libraries/ioss/src/main/libio_info_lib.a packages/seacas/libraries/ioss/src/init/libIonit.a packages/seacas/libraries/ioss/src/transform/libIotr.a packages/seacas/libraries/ioss/src/heartbeat/libIohb.a packages/seacas/libraries/ioss/src/gen_struc/libIogs.a packages/seacas/libraries/ioss/src/generated/libIogn.a packages/seacas/libraries/ioss/src/visualization/libIovs.a packages/seacas/libraries/ioss/src/cgns/libIocgns.a packages/seacas/libraries/ioss/src/pamgen/libIopg.a packages/seacas/libraries/ioss/src/exo_fac/libIoexo_fac.a packages/seacas/libraries/ioss/src/exo_par/libIopx.a packages/seacas/libraries/ioss/src/exo_fpp/libIofx.a packages/seacas/libraries/ioss/src/exodus/libIoex.a packages/seacas/libraries/ioss/src/libIoss.a packages/seacas/libraries/exodus/libexodus.a /home/rabartl/Spack.base7/atdm-spack/spack/opt/spack/linux-rhel6-x86_64/gcc-7.2.0/netcdf-4.4.1-zyizihnvwgg6u7yt5pldcj4vfpmqt7ki/lib/libnetcdf.so /home/rabartl/Spack.base7/atdm-spack/spack/opt/spack/linux-rhel6-x86_64/gcc-7.2.0/hdf5-1.8.21-tmyizpmttnq3d3lpjq3usvuhksngh3zw/lib/libhdf5_hl.so /home/rabartl/Spack.base7/atdm-spack/spack/opt/spack/linux-rhel6-x86_64/gcc-7.2.0/hdf5-1.8.21-tmyizpmttnq3d3lpjq3usvuhksngh3zw/lib/libhdf5.so /usr/lib64/libdl.so /usr/lib64/libm.so /home/rabartl/Spack.base7/atdm-spack/spack/opt/spack/linux-rhel6-x86_64/gcc-7.2.0/parallel-netcdf-1.11.0-yo2opthsskufdzqep2tgb56ztn2kdya5/lib/libpnetcdf.a packages/pamgen/src/libpamgen_extras.a packages/pamgen/src/libpamgen.a packages/zoltan/src/libzoltan.a -lm packages/kokkos/algorithms/src/libkokkosalgorithms.a packages/kokkos/containers/src/libkokkoscontainers.a packages/kokkos/core/src/libkokkoscore.a /home/rabartl/Spack.base7/atdm-spack/spack/opt/spack/linux-rhel6-x86_64/gcc-7.2.0/cgns-snl-atdm-ep36qaokeela4hyhnwypxehgx5dax4fq/lib/libcgns.a -L/home/rabartl/Spack.base7/atdm-spack/spack/opt/spack/linux-rhel6-x86_64/gcc-7.2.0/hdf5-1.8.21-tmyizpmttnq3d3lpjq3usvuhksngh3zw/lib -lz /home/rabartl/Spack.base7/atdm-spack/spack/opt/spack/linux-rhel6-x86_64/gcc-7.2.0/hdf5-1.8.21-tmyizpmttnq3d3lpjq3usvuhksngh3zw/lib/libhdf5_hl.a /home/rabartl/Spack.base7/atdm-spack/spack/opt/spack/linux-rhel6-x86_64/gcc-7.2.0/hdf5-1.8.21-tmyizpmttnq3d3lpjq3usvuhksngh3zw/lib/libhdf5.a /home/rabartl/Spack.base7/atdm-spack/spack/opt/spack/linux-rhel6-x86_64/gcc-7.2.0/zlib-1.2.11-aqhxxoj2tgtjgdkqpxtdyzo6sfwsi6vg/lib/libz.so -ldl /home/rabartl/Spack.base7/atdm-spack/spack/opt/spack/linux-rhel6-x86_64/gcc-7.2.0/metis-5.1.0-ui6om2qpphok7c5uqdiwqle6om7funue/lib/libmetis.so /home/rabartl/Spack.base7/atdm-spack/spack/opt/spack/linux-rhel6-x86_64/gcc-7.2.0/parmetis-4.0.3-rpa6ngvxiacewkq3twiic2pxh5ea64r6/lib/libparmetis.so

The spack build specs for these packages was:

[+]  qckwa5f              ^[email protected]%[email protected]~python arch=linux-rhel6-x86_64 
[+]  pnczpyw                  ^[email protected]%[email protected] arch=linux-rhel6-x86_64 
[+]  cptljw3                  ^[email protected]%[email protected] cppflags="-fPIC"  arch=linux-rhel6-x86_64 
[+]  4mfrw3e                  ^[email protected]%[email protected] arch=linux-rhel6-x86_64 
[+]  aqhxxoj                  ^[email protected]%[email protected]+optimize+pic+shared arch=linux-rhel6-x86_64 

The generated 'libxml2.so' library showed:

$ nm /home/rabartl/Spack.base7/atdm-spack/spack/opt/spack/linux-rhel6-x86_64/gcc-7.2.0/libxml2-2.9.8-qckwa5f4brssbbwbbtxe7tvdy4dnhwlw/lib/libxml2.so.2 | grep gzopen
                 U gzopen64@@ZLIB_1.2.3.3

The generated 'libz.so' library showed:

$ nm  /home/rabartl/Spack.base7/atdm-spack/spack/opt/spack/linux-rhel6-x86_64/gcc-7.2.0/zlib-1.2.11-aqhxxoj2tgtjgdkqpxtdyzo6sfwsi6vg/lib/libz.so | grep gzopen
000000000000d5a0 T gzopen
000000000000d590 T gzopen64
000000000000d590 t gzopen64.localalias.1

So 'libz.so' defines the symbol gzopen64 and 'libxml2.so' is looking for the symbol gzopen64@@ZLIB_1.2.3.3. What is that? I have never seen a linker symbol like that.

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions