<html>
  <head>

    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <p>Dear all,</p>
    <p><br>
    </p>
    <p>I'm struggling to compile PETSc 3.3-p6 on a cluster where it is
      to be provided in a read-only folder.<br>
    </p>
    <p><br>
    </p>
    <p>My scenario is the following:</p>
    <p>PETSc shall end up in a folder into which I can write from a
      login node but which is read-only on compute nodes: I'll call it
      /readonly/ below.<br>
      So, using a compute node, I need to compile PETSc in a different
      location, which I'll call /temporary/</p>
    <p>I have read numerous instructions on the web and here are the
      steps that I came up with:</p>
    <p><br>
    </p>
    <p>1. on a compute node: unpack the PETSc source to /temporary/ and
      navigate there.</p>
    <p>2. configure:<br>
    </p>
    <p><tt>./configure                                                                                                      
        \</tt><br>
      <tt>                 --prefix=/readonly/   
                                                                         
        \</tt><br>
      <tt>    
--with-gnu-compilers=0                                                                                      
        \</tt><br>
      <tt> 
--with-vendor-compilers=intel                                                                                  
        \</tt><br>
      <tt>    
--with-large-file-io=1                                                                                      
        \</tt><br>
      <tt>                 --CFLAGS="-fPIC -L${I_MPI_ROOT}/intel64/lib
        -I${I_MPI_ROOT}/intel64/include -lmpi"           \</tt><br>
      <tt>               --CXXFLAGS="-fPIC -L${I_MPI_ROOT}/intel64/lib
        -I${I_MPI_ROOT}/intel64/include -lmpi -lmpicxx"  \</tt><br>
      <tt>                 --FFLAGS="-fPIC -L${I_MPI_ROOT}/intel64/lib
        -I${I_MPI_ROOT}/intel64/include -lmpi"           \</tt><br>
      <tt>                --LDFLAGS="-L${I_MPI_ROOT}/intel64/lib
        -I${I_MPI_ROOT}/intel64/include -lmpi"                 \</tt><br>
      <tt>                COPTFLAGS="-O3 -axCORE-AVX2 -xSSE4.2 -fp-model
        consistent -fp-model source -fp-speculation=safe -ftz"  \</tt><br>
      <tt>              CXXOPTFLAGS="-O3 -axCORE-AVX2 -xSSE4.2 -fp-model
        consistent -fp-model source -fp-speculation=safe -ftz"  \</tt><br>
      <tt>                FOPTFLAGS="-O3 -axCORE-AVX2 -xSSE4.2 -fp-model
        consistent -fp-model source -fp-speculation=safe -ftz"  \</tt><br>
      <tt>  
--with-blas-lapack-dir="${MKLROOT}/lib/intel64"                                                            
        \</tt><br>
      <tt>        
--download-hypre                                                                                        
        \</tt><br>
      <tt>         --with-debugging=no</tt><br>
      <br>
    </p>
    <p>3. <tt>make all</tt></p>
    <p>4. on a login node: <tt>make install</tt></p>
    <p>5. From now on set <tt>PETSC_DIR=/readonly PETSC_ARCH=''</tt><br>
    </p>
    <p>step 4 moves the compiled PETSc to /readonly/ and it works, but
      when I compile a program with it the following line pops up in the
      linking command:<br>
    </p>
    <pre class="western"><tt>-Wl,-rpath,</tt><tt><span style="background: #ffff00">/temporary/-Xlinker</span></tt></pre>
    <p>
      <style type="text/css">pre { direction: ltr; color: rgb(0, 0, 10); text-align: left; }pre.western { font-family: "Liberation Mono", sans-serif; }pre.cjk { font-family: "AR PL SungtiL GB"; }pre.ctl { font-family: "Liberation Mono"; }p { margin-top: 1.01mm; margin-bottom: 1.01mm; direction: ltr; color: rgb(0, 0, 10); line-height: 100%; text-align: justify; }p.western { font-family: "Open Sans", sans-serif; font-size: 10pt; }p.cjk { font-family: "AR PL SungtiL GB"; font-size: 10pt; }p.ctl { font-family: "FreeSans"; font-size: 12pt; }a.western:visited { }a.cjk:visited { }a.ctl:visited { }a:link { color: rgb(5, 99, 193); }</style></p>
    <p>This is a problem when the drive on which /temporary/ is placed
      is not reachable which is the case right now due to technical
      issues. This causes the linking process to get stuck.<br>
      The folder /temporary/ is to be deleted anyway so I do not see why
      it should be referenced here.</p>
    <p><br>
    </p>
    <p>Am I missing something?<br>
    </p>
    <p><br>
    </p>
    <p>- Bastian<br>
    </p>
  </body>
</html>