[petsc-dev] PETSc.pc: missing rpath ?
Franck Houssen
franck.houssen at inria.fr
Tue Jan 2 08:15:05 CST 2018
----- Mail original -----
> De: "Jed Brown" <jed at jedbrown.org>
> À: "Franck Houssen" <franck.houssen at inria.fr>, "For users of the development version of PETSc"
> <petsc-dev at mcs.anl.gov>
> Envoyé: Mardi 2 Janvier 2018 15:02:17
> Objet: Re: [petsc-dev] PETSc.pc: missing rpath ?
>
> Some people don't want RPATH. It was discussed here.
>
OK
> https://mid.mail-archive.com/CAEymZafiQtwKDxh0myQ1LD_uByGKv5JyQ9PGzK3ZTmFPcOR=Kw@mail.gmail.com
>
> The RPATH flag is stored in a variable ldflag_rpath in PETSc.pc so you
> can add it to PETSc paths, as done in this sample makefile.
Reading PETSC.pc from cmake, ldflag_rpath is ignored.
> PETSc.pc := $(PETSC_DIR)/$(PETSC_ARCH)/lib/pkgconfig/PETSc.pc
>
> CC := $(shell pkg-config --variable=ccompiler $(PETSc.pc))
> CXX := $(shell pkg-config --variable=cxxcompiler $(PETSc.pc))
> FC := $(shell pkg-config --variable=fcompiler $(PETSc.pc))
> CFLAGS := $(shell pkg-config --variable=cflags_extra $(PETSc.pc)) $(shell
> pkg-config --cflags-only-other $(PETSc.pc))
> FFLAGS := $(shell pkg-config --variable=fflags_extra $(PETSc.pc))
> CPPFLAGS := $(shell pkg-config --cflags-only-I $(PETSc.pc))
> LDFLAGS := $(shell pkg-config --libs-only-L --libs-only-other $(PETSc.pc))
> LDFLAGS += $(patsubst -L%, $(shell pkg-config --variable=ldflag_rpath
> $(PETSc.pc))%, $(shell pkg-config --libs-only-L $(PETSc.pc)))
> LDLIBS := $(shell pkg-config --libs-only-l $(PETSc.pc)) -lm
>
> print:
> @echo CC=$(CC)
> @echo CFLAGS=$(CFLAGS)
> @echo CPPFLAGS=$(CPPFLAGS)
> @echo LDFLAGS=$(LDFLAGS)
> @echo LDLIBS=$(LDLIBS)
>
> Franck Houssen <franck.houssen at inria.fr> writes:
>
> > I believe -rpath is missing in PETSc.pc: is this intented ? Or forgotten ?
> > If so, can someone add this to the PETSc.pc and push that in master/maint
> > ?
> > As PETSc is a lib to be used from user-defined applications, rpath is
> > really critical !..
> >
> > Franck
> >
> >>> grep "Libs:" petsc/local/lib/pkgconfig/PETSc.pc
> >>> slepc/local/lib/pkgconfig/SLEPc.pc
> > petsc/local/lib/pkgconfig/PETSc.pc:16:Libs: -L${libdir} -lpetsc
> > slepc/local/lib/pkgconfig/SLEPc.pc:11:Libs: -Wl,-rpath,${libdir}
> > -L${libdir} -lslepc
>
More information about the petsc-dev
mailing list