From mboxrd@z Thu Jan 1 00:00:00 1970 From: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) Subject: bug#31970: epiphany: Strange "XXXXXXXXXXXXX..." entries in library RPATHs Date: Tue, 26 Jun 2018 14:48:52 +0200 Message-ID: <87r2kt4ssr.fsf@gnu.org> References: <878t725xyt.fsf@netris.org> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:50704) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fXnQ6-0000RC-7v for bug-guix@gnu.org; Tue, 26 Jun 2018 08:50:11 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fXnQ2-0003HU-BK for bug-guix@gnu.org; Tue, 26 Jun 2018 08:50:06 -0400 Received: from debbugs.gnu.org ([208.118.235.43]:56077) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1fXnQ2-0003HF-7r for bug-guix@gnu.org; Tue, 26 Jun 2018 08:50:02 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1fXnQ2-00066i-1q for bug-guix@gnu.org; Tue, 26 Jun 2018 08:50:02 -0400 Sender: "Debbugs-submit" Resent-Message-ID: In-Reply-To: <878t725xyt.fsf@netris.org> (Mark H. Weaver's message of "Mon, 25 Jun 2018 17:59:38 -0400") List-Id: Bug reports for GNU Guix List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-guix-bounces+gcggb-bug-guix=m.gmane.org@gnu.org Sender: "bug-Guix" To: Mark H Weaver Cc: 31970@debbugs.gnu.org Hi Mark, Mark H Weaver skribis: > which also changed the build-system from 'glib-or-gtk-build-system' to > 'meson-build-system', warnings started appearing in the build logs for > epiphany complaining about "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" > appearing in the RPATH of the built libraries. I suspect the only way those XXX can end up here is if Meson adds them through -Wl,-rpath. And indeed, it does! From compilers.py: --8<---------------cut here---------------start------------->8--- def build_unix_rpath_args(self, build_dir, from_dir, rpath_paths, build= _rpath, install_rpath): if not rpath_paths and not install_rpath and not build_rpath: return [] # The rpaths we write must be relative, because otherwise # they have different length depending on the build # directory. This breaks reproducible builds. rel_rpaths =3D [] for p in rpath_paths: if p =3D=3D from_dir: relative =3D '' # relpath errors out in this case else: relative =3D os.path.relpath(os.path.join(build_dir, p), os= .path.join(build_dir, from_dir)) rel_rpaths.append(relative) paths =3D ':'.join([os.path.join('$ORIGIN', p) for p in rel_rpaths]) # Build_rpath is used as-is (it is usually absolute). if build_rpath !=3D '': if paths !=3D '': paths +=3D ':' paths +=3D build_rpath if len(paths) < len(install_rpath): padding =3D 'X' * (len(install_rpath) - len(paths)) if not paths: paths =3D padding else: paths =3D paths + ':' + padding --8<---------------cut here---------------end--------------->8--- So AIUI, those XXX are here precisely so we can overwrite the RUNPATH at installation time with the final RUNPATH (this works around the fact that Meson, unlike Libtool, doesn=E2=80=99t relink files upon install.) We should take advantage of this in =E2=80=98meson-build-system=E2=80=99, o= r maybe we don=E2=80=99t need to do anything? > See below for the relevant excerpt of the build log. Note also the > RPATH entries preceeding "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", > beginning with "$ORIGIN/". I'm not sure if those are a problem or not. Use of $ORIGIN is fine. Thanks, Ludo=E2=80=99.