[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