<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <font face="Droid Serif">Satish,<br>
      <br>
      My problem is that my application links with PETSc and another
      library (Iphreeqc) that uses libstdc++. I compiled this other
      library with a newer gcc (6.1). Then, during the configuration of
      my application (with CMake) it looks into petscvariables to get
      the additional libraries required and  there it gets the old gcc
      path.<br>
      <br>
      When I am linking my  application the linker gets libstdc++ from
      the old path instead of the new path and it breaks.<br>
      <br>
      This is not a problem if I use the default gcc (but for the system
      I am working now it is quite old) or if I do not link another
      library which requirements can conflict.<br>
      <br>
      Best regards,<br>
      <br>
      Hector<br>
      <br>
    </font><br>
    <div class="moz-cite-prefix">On 10/23/18 4:34 PM, Balay, Satish
      wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:alpine.LFD.2.21.1810231633530.2457@asterix">
      <pre class="moz-quote-pre" wrap="">BTW: You have not stated what problem you are encountering due to this reference to old gcc libraries from ifort.

Satish

On Tue, 23 Oct 2018, Balay, Satish wrote:

</pre>
      <blockquote type="cite">
        <pre class="moz-quote-pre" wrap="">You can check 'ifort -v test.F' - to see how its using gcc internally.

configure.log will have the details on where the path is coming from. [you can send us this log]

PETSc configure attempts to determine the compiler libraries - and this part could show
up with some paths that are not needed.

Workaround is to manually specify these paths to petsc configure - so that it doesn't
try to determine from 'ifort -v' - and pick up unneed stuff.

./configure LIBS=/path_to/libifcore.a

[but then ifort changes this from libifcore.a to libifcoremt.a - if openmp is enabled]

Satish


On Tue, 23 Oct 2018, Hector E Barrios Molano wrote:

</pre>
        <blockquote type="cite">
          <pre class="moz-quote-pre" wrap="">Thank you Satish for your response,

Yes I am intended to use ifort with gcc.

I changed ifort versions to one that does not include tbb.

However, PETSc is still including -L/usr/lib/gcc/x86_64-redhat-linux/4.1.2 in
petscvariables, attached you will find an updated petscvariables file.

ifort is not including any gcc, neither there is reference to this directory
in $PATH or $LD_LIBRARY_PATH, why is PETSc still including it?

Thanks for your help,

Hector


On 10/18/18 5:28 PM, Balay, Satish wrote:
</pre>
          <blockquote type="cite">
            <blockquote type="cite">
              <pre class="moz-quote-pre" wrap="">-L/share/apps/intel3/compilers_and_libraries_2016.2.181/linux/tbb/lib/intel64/gcc4.1
-L/usr/lib/gcc/x86_64-redhat-linux/4.1.2
</pre>
            </blockquote>
            <pre class="moz-quote-pre" wrap="">Its likely the gcc-4.1 stuff is coming from ifort.

Did you intend to use ifort with gcc? [instead of gfortran?]

Satish

On Thu, 18 Oct 2018, Hector E Barrios Molano wrote:

</pre>
            <blockquote type="cite">
              <pre class="moz-quote-pre" wrap="">Hi PETSc Experts!

I am building PETSc from the git repository and it is strange that once
PETSc
is installed the petscvariables (PETSC_WITH_EXTERNAL_LIB) file shows a
different gcc library path that the one from the compiler used and the one
defined in LD_LIBRARY_PATH. This is causing me troubles when using PETSc
with
other library that requires libstdc++

Here is the command used to build PETSc:
./configure --prefix=$DEV_lib_dir/petsc_git-debug
--PETSC_DIR=/home/hector/dwnld_prog/petsc --PETSC_ARCH=linux-intel-debug
--CC=mpicc --FC=mpifort --CXX=mpicxx --with-openmp=1 --with-valgrind=1
--with-valgri
nd-dir=/home/hector/installed --with-parmetis-dir=$DEV_lib_dir/parmetis/
--with-metis-dir=$DEV_lib_dir/parmetis/
--with-zoltan-dir=$DEV_lib_dir/zoltan/
--with-hypre-dir=$DEV_lib_dir/hypre --download-ptscotch
--with-blas-lapack-lib=\[${MKLR
OOT}/lib/intel64/libmkl_intel_lp64.a,${MKLROOT}/lib/intel64/libmkl_core.a,${MKLROOT}/lib/intel64/libmkl_intel_thread.a\]
--with-scalapack-include=${MKLROOT}/include
--with-scalapack-lib=\[${MKLROOT}/lib/intel64/libmkl_scalapack_lp64.a,${MK
LROOT}/lib/intel64/libmkl_blacs_intelmpi_lp64.a\] --with-shared-libraries=0
--FC_LINKER_FLAGS="-qopenmp -qopenmp-link static" --FFLAGS="-qopenmp
-qopenmp-link static" --LIBS="-Wl,--start-group
${MKLROOT}/lib/intel64/libmkl_intel_lp64.a ${M
KLROOT}/lib/intel64/libmkl_core.a
${MKLROOT}/lib/intel64/libmkl_intel_thread.a
-Wl,--end-group -liomp5 -ldl -lpthread -lm"

Here is LD_LIBRARY_PATH:
echo $LD_LIBRARY_PATH
/home/hector/installed/gcc-6.1/lib64:/home/hector/installed/gcc-5.1/lib64://home/hector/installed/lib:/home/hector/installed/libraries_intel/openmpi/lib:/share/apps/intel3/compilers_and_libraries_2016.2.181/linux/compiler/lib/intel64:/share/apps/intel3/compilers_and_libraries_2016.2.181/linux/compiler/lib/intel64_lin:/share/apps/intel3/compilers_and_libraries_2016.2.181/linux/mpi/intel64/lib:/share/apps/intel3/compilers_and_libraries_2016.2.181/linux/mpi/mic/lib:/share/apps/intel3/compilers_and_libraries_2016.2.181/linux/ipp/lib/intel64:/share/apps/intel3/compilers_and_libraries_2016.2.181/linux/compiler/lib/intel64:/share/apps/intel3/compilers_and_libraries_2016.2.181/linux/mkl/lib/intel64:/share/apps/intel3/compilers_and_libraries_2016.2.181/linux/tbb/lib/intel64/gcc4.1:/share/apps/intel3/debugger_2016/libipt/intel64/lib:/share/apps/intel3/compilers_and_libraries_2016.2.181/linux/daal/lib/intel64_lin:/share/apps/intel3/compilers_and_libraries_2016.2.181/linux/daal/../tbb
/li
b/intel64_lin/gcc4.4:/share/apps/intel3/compilers_and_libraries_2016.2.181/linux/daal/../compiler/lib/intel64_lin:/home/hector/installed/gcc-6.1/lib64:/home/hector/installed/gcc-5.1/lib64://home/hector/installed/lib:/home/hector/installed/gcc-6.1/lib64:/home/hector/installed/gcc-5.1/lib64://home/hector/installed/lib:/opt/gridengine/lib/lx26-amd64:/opt/openmpi/lib


Attached you will find the resulting petscvariables file. There in the
definition of PETSC_WITH_EXTERNAL_LIB it is not included the gcc-6.1
directory
and instead gcc4.1 directory is included.


What could be the problem? Thank you for your help.

Best regards,

Hector


</pre>
            </blockquote>
          </blockquote>
          <pre class="moz-quote-pre" wrap="">

</pre>
        </blockquote>
        <pre class="moz-quote-pre" wrap="">
</pre>
      </blockquote>
      <pre class="moz-quote-pre" wrap="">
</pre>
    </blockquote>
    <br>
  </body>
</html>