[R] make install libgfortran.so.5: cannot open shared object file: No such file or directory; conftest.c:1:10: fatal error: jni.h: No such file or directory

Rob Kudyba rk3199 @end|ng |rom co|umb|@@edu
Mon Nov 21 16:19:36 CET 2022

On Sun, Nov 20, 2022 at 2:26 PM Ivan Krylov <krylov.r00t using gmail.com> wrote:

> On Sun, 20 Nov 2022 14:03:34 -0500
> Rob Kudyba <rk3199 using columbia.edu> wrote:
> > /path/to/gcc-11.2/lib is definitely in LD_LIBRARY_PATH when loading
> > the GCC 11.2 module.
> >
> > If using the /path/to/R-4.2.2/etc/ldpaths where would I put the
> > correct path? I would've hoped the configure/make process would've
> > found this automatically.
> Interesting that bin/R works but calling bin/R from what amounts to
> `make -C src/library install` doesn't. I think that the failing step is
> the following command:
> @$(ECHO) "  building HTML index ..."
> @$(ECHO) "utils:::make.packages.html(.Library, verbose=FALSE,
> docdir=\"$(DESTDIR)${rdocdir}\")" | \
> I don't see a reason for Make to lose the LD_LIBRARY_PATH when
> launching R like this.
> Can you see the failing step in the `make -d install` output? There
> will be a lot of text, most of it unrelated, unfortunately.

I've uploaded the output to https://easyupload.io/scuujn
The gcc-related part has this:
  Considering target file `install-main'.
   File `install-main' does not exist.
    Considering target file `install-Rscript'.
     File `install-Rscript' does not exist.
     Finished prerequisites of target file `install-Rscript'.
    Must remake target `install-Rscript'.
Invoking recipe from Makefile:71 to update target `install-Rscript'.
make[2]: Entering directory `/path/to/me/R-4.2.2/src/unix'
gcc -I. -I../../src/include -I../../src/include  -I/usr/local/include
-DHAVE_CONFIG_H    -g -O2  -L/usr/local/lib64
-DR_HOME='"/path/to/R-4.2/lib64/R"' \
  -o Rscript ./Rscript.c
Putting child 0x65bc00 (install-Rscript) PID 240122 on the chain.
Live child 0x65bc00 (install-Rscript) PID 240122

If something loses the LD_LIBRARY_PATH environment variable on the way
> from Make to R, hard-coding it in etc/ldpaths should work around the
> problem, but it may be hard to find out what went wrong.

I edited the last line to be:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/path/to/gcc-11.2/lib64 then make
install errored with:
/path/to/R-4.2.2/bin/exec/R: error while loading shared libraries:
libpcre2-8.so.0: cannot open shared object file: No such file or directory

So it appears that the same issue happens for PCRE! I then edited the line
to be:

Then make install finished with:
Successfully remade target file `install'.

> If you run `mkfifo /tmp/1` and insert `read foo </tmp/1` into
> etc/ldpaths, it should hang until you write something into /tmp/1.
> Using this, it should be possible to inspect /proc/${pid}/environ for
> the whole process tree from the parent Make process to the shell that's
> about to launch R. Can you find the first process that lacks the proper
> LD_LIBRARY_PATH environment variable?

I ran the 1st command and then added the 'read' to the file. I'm not
following what should've happened? I didn't need to include the back
ticks,`, in the file, correct? Perhaps the debug from make install will
provide you more info?

Would this be considered a bug or enhancement?

Thanks for your help on this.


	[[alternative HTML version deleted]]

More information about the R-help mailing list