From owner-freebsd-ports@freebsd.org Sun Feb 17 16:10:29 2019 Return-Path: Delivered-To: freebsd-ports@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id DEA8D14F84B1 for ; Sun, 17 Feb 2019 16:10:28 +0000 (UTC) (envelope-from eugen@grosbein.net) Received: from hz.grosbein.net (hz.grosbein.net [IPv6:2a01:4f8:d12:604::2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "hz.grosbein.net", Issuer "hz.grosbein.net" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id B8BD5739A4 for ; Sun, 17 Feb 2019 16:10:27 +0000 (UTC) (envelope-from eugen@grosbein.net) Received: from eg.sd.rdtc.ru (eg.sd.rdtc.ru [IPv6:2a03:3100:c:13:0:0:0:5]) by hz.grosbein.net (8.15.2/8.15.2) with ESMTPS id x1HGABAd021681 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Sun, 17 Feb 2019 17:10:12 +0100 (CET) (envelope-from eugen@grosbein.net) X-Envelope-From: eugen@grosbein.net X-Envelope-To: db@db.net Received: from [10.58.0.4] ([10.58.0.4]) by eg.sd.rdtc.ru (8.15.2/8.15.2) with ESMTPS id x1HGABbS018255 (version=TLSv1.2 cipher=DHE-RSA-AES128-SHA bits=128 verify=NOT); Sun, 17 Feb 2019 23:10:11 +0700 (+07) (envelope-from eugen@grosbein.net) Subject: Re: FreeCAD 0.17 && /lib//libgcc_s.so.1 To: Diane Bruce References: <20190217051109.GA91424@troutmask.apl.washington.edu> <692e3772-9b06-03fa-790b-73117f3c6ec8@grosbein.net> <20190217055655.GA91549@troutmask.apl.washington.edu> <532b1923-33b4-d0c7-3499-175900c98d9e@grosbein.net> <20190217061920.GB91668@troutmask.apl.washington.edu> <4afa5358-4190-6ff3-1b5d-1c4e324abf38@grosbein.net> <20190217154159.GB96676@night.db.net> Cc: sgk@troutmask.apl.washington.edu, "Russell L. Carter" , FreeBSD Ports ML From: Eugene Grosbein Message-ID: Date: Sun, 17 Feb 2019 23:10:05 +0700 User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.8.0 MIME-Version: 1.0 In-Reply-To: <20190217154159.GB96676@night.db.net> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=0.3 required=5.0 tests=BAYES_00,LOCAL_FROM,SPF_PASS autolearn=no autolearn_force=no version=3.4.2 X-Spam-Report: * -2.3 BAYES_00 BODY: Bayes spam probability is 0 to 1% * [score: 0.0000] * -0.0 SPF_PASS SPF: sender matches SPF record * 2.6 LOCAL_FROM From my domains X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on hz.grosbein.net X-Rspamd-Queue-Id: B8BD5739A4 X-Spamd-Bar: --- Authentication-Results: mx1.freebsd.org; spf=permerror (mx1.freebsd.org: domain of eugen@grosbein.net uses mechanism not recognized by this client) smtp.mailfrom=eugen@grosbein.net X-Spamd-Result: default: False [-3.59 / 15.00]; ARC_NA(0.00)[]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; MX_INVALID(0.50)[cached]; FROM_HAS_DN(0.00)[]; RCPT_COUNT_THREE(0.00)[4]; TO_DN_SOME(0.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; MIME_GOOD(-0.10)[text/plain]; DMARC_NA(0.00)[grosbein.net]; RCVD_COUNT_THREE(0.00)[3]; TO_MATCH_ENVRCPT_SOME(0.00)[]; R_SPF_PERMFAIL(0.00)[]; NEURAL_HAM_SHORT(-0.67)[-0.672,0]; IP_SCORE(-1.32)[ip: (-1.98), ipnet: 2a01:4f8::/29(-2.36), asn: 24940(-2.25), country: DE(-0.01)]; FROM_EQ_ENVFROM(0.00)[]; R_DKIM_NA(0.00)[]; MIME_TRACE(0.00)[0:+]; ASN(0.00)[asn:24940, ipnet:2a01:4f8::/29, country:DE]; MID_RHS_MATCH_FROM(0.00)[]; RCVD_TLS_ALL(0.00)[] X-BeenThere: freebsd-ports@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Porting software to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 17 Feb 2019 16:10:29 -0000 17.02.2019 22:41, Diane Bruce wrote: >> Setting rpath for resulting binary should solve the problem. > > No no no no no. Not for an interpreter. The interpreter doesn't 'know' > you are about to load a binary module that needs libgcc_s and until > it loads something that uses gfortran it doesn't matter > which libgcc_s so it picks the 'wrong' one. > > As my wiki page article says: > We can rename our libgcc (Yes other complications but...) > > We can fix our system libgcc to have the missing functions/data that > current libgcc has then bump our version > > We can use a specific port which PRELOADs the gfortran libgcc_s.so > e.g. python2_gfortran8 or whatever. (What a mess and it's ugly but > it would work) > > Individual python ports could be modified to do the PRELOAD with > a tiny sh script e.g. opencad could envoke a small sh script > that then starts the python interpreter. This would mean exposing the > PATH from Mk/USES/fortan.mk > > e.g. we currently do this: > > FFLAGS+= -Wl,-rpath=${LOCALBASE}/lib/gcc${_GCC_VER} > FCFLAGS+= -Wl,-rpath=${LOCALBASE}/lib/gcc${_GCC_VER} > LDFLAGS+= -Wl,-rpath=${LOCALBASE}/lib/gcc${_GCC_VER} \ > > We'd need FRPATH=${LOCALBASE}/lib/gcc${_GCC_VER} > exposed > > blah. I finally just looked at openscad it's a binary not a python script > As Steve sez it's missing the -Wl,-rpath stuff then If all involved binaries and libraries in a chain starting from the interpreter and including libraries have mappings for libgcc_s.so to right file, the problem should be solved. And libmap.conf(5) should do the job.