On Sun, Jun 1, 2025 at 1:15 AM SN248 <sn...@cornell.edu> wrote:
> ❯ checking compiled code ...
> > WARNING File ‘sundialr/libs/sundialr.so’:
> > Found ‘abort’, possibly from ‘abort’ (C) Object:
> > ‘../inst/lib/libsundials_core.a’
> > Found ‘puts’, possibly from ‘printf’ (C), ‘puts’ (C) Object:
> > ‘../inst/lib/libsundials_core.a’

One interesting side aspect is that while one of the warnings comes
from the .so file that will be used by R, most of the other messages
come from the intermediate .a files. You absolutely have to fix the
former ones. However, it sometimes happens that code is present in the
library and therefore compiled into the .a file, but it is not used in
the code exposed to R and therefore does not end up in the .so file.
In that case it helps to delete the intermediate .a file once the .so
file has been built. In swephR I do this with the following
src/Makevars file:

PKG_LIBS=-L. -lswe
PKG_CPPFLAGS=-I./libswe/ -DSTRICT_R_HEADERS

all: $(SHLIB) purify

$(SHLIB): libswe.a

LIBSWE = libswe/swedate.o libswe/swehouse.o libswe/swejpl.o libswe/swemmoon.o \
         libswe/swemplan.o libswe/sweph.o \
         libswe/swephlib.o libswe/swecl.o libswe/swehel.o
libswe.a: $(LIBSWE)
        $(AR) rcs libswe.a $(LIBSWE)

purify: $(SHLIB)
        @rm -rf libswe.a || true


ralf

______________________________________________
R-package-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-package-devel

Reply via email to