From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mark H Weaver Subject: bug#33848: Store references in SBCL-compiled code are "invisible" Date: Sun, 23 Dec 2018 11:45:25 -0500 Message-ID: <877eg0i43j.fsf@netris.org> References: <87r2e8jpfx.fsf@gnu.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]:35238) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gb6u9-0007IZ-CG for bug-guix@gnu.org; Sun, 23 Dec 2018 11:47:06 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gb6u6-0001el-Jy for bug-guix@gnu.org; Sun, 23 Dec 2018 11:47:05 -0500 Received: from debbugs.gnu.org ([208.118.235.43]:57922) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gb6u6-0001eP-Er for bug-guix@gnu.org; Sun, 23 Dec 2018 11:47:02 -0500 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1gb6u6-0005Ms-Bs for bug-guix@gnu.org; Sun, 23 Dec 2018 11:47:02 -0500 Sender: "Debbugs-submit" Resent-Message-ID: In-Reply-To: <87r2e8jpfx.fsf@gnu.org> ("Ludovic \=\?utf-8\?Q\?Court\=C3\=A8s\=22'\?\= \=\?utf-8\?Q\?s\?\= message of "Sun, 23 Dec 2018 15:19:30 +0100") 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: Ludovic =?UTF-8?Q?Court=C3=A8s?= Cc: Pierre Neidhardt , 33848@debbugs.gnu.org Hi Ludovic, Ludovic Court=C3=A8s writes: > As discussed with Pierre at the R-B Summit, =E2=80=98sbcl-next=E2=80=99 l= acks a > reference to =E2=80=98next-gtk-webkit=E2=80=99 even though is invokes it: > > $ guix gc --references $(type -P next) | grep next- > /gnu/store/9d66xb8wvggsp0x9pxj61mzqy007978f-sbcl-next-1.1.0 > /gnu/store/pqy064fw3vkfld6lw95vi0zavj19zvrc-sbcl-next-1.1.0-lib > $ ./pre-inst-env guix run next > > WARNING: Setting locale failed. > Check the following variables for correct values: > LANG=3Den_US.utf8 > Unhandled SIMPLE-ERROR in thread # {10005885B3}>: > Couldn't execute "/gnu/store/7p6pbcmdgr53dff6033gcfl2jq0d762h-next-gtk-= webkit-1.1.0/bin/next-gtk-webkit": No such file or directory > > > (Here =E2=80=98guix run=E2=80=99 runs =E2=80=98next=E2=80=99 in a contain= er with exactly the closure of > =E2=80=98next=E2=80=99, nothing more, and the =E2=80=98next=E2=80=99 bina= ry is grafted.) > > So the problem looks a lot like that this GCC issue we fixed a while > back: . > > Looking at the =E2=80=98sbcl-next=E2=80=99 package, the reference to =E2= =80=98next-gtk-webkit=E2=80=99 > is inserted in gtk-webkit.lisp: > > (defvar *gtk-webkit-command* "next-gtk-webkit" > "Path to the GTK-Webkit platform port executable.") > > > Through hexl-mode on the =E2=80=98next=E2=80=99 binary, we can find that = reference: > > 01d0bac0: 2f00 0000 6700 0000 6e00 0000 7500 0000 /...g...n...u... > 01d0bad0: 2f00 0000 7300 0000 7400 0000 6f00 0000 /...s...t...o... > 01d0bae0: 7200 0000 6500 0000 2f00 0000 3700 0000 r...e.../...7... > 01d0baf0: 7000 0000 3600 0000 7000 0000 6200 0000 p...6...p...b... > 01d0bb00: 6300 0000 6d00 0000 6400 0000 6700 0000 c...m...d...g... > 01d0bb10: 7200 0000 3500 0000 3300 0000 6400 0000 r...5...3...d... > 01d0bb20: 6600 0000 6600 0000 3600 0000 3000 0000 f...f...6...0... > 01d0bb30: 3300 0000 3300 0000 6700 0000 6300 0000 3...3...g...c... > 01d0bb40: 6600 0000 6c00 0000 3200 0000 6a00 0000 f...l...2...j... > 01d0bb50: 7100 0000 3000 0000 6400 0000 3700 0000 q...0...d...7... > 01d0bb60: 3600 0000 3200 0000 6800 0000 2d00 0000 6...2...h...-... > 01d0bb70: 6e00 0000 6500 0000 7800 0000 7400 0000 n...e...x...t... > 01d0bb80: 2d00 0000 6700 0000 7400 0000 6b00 0000 -...g...t...k... > 01d0bb90: 2d00 0000 7700 0000 6500 0000 6200 0000 -...w...e...b... > 01d0bba0: 6b00 0000 6900 0000 7400 0000 2d00 0000 k...i...t...-... > 01d0bbb0: 3100 0000 2e00 0000 3100 0000 2e00 0000 1.......1....... > 01d0bbc0: 3000 0000 2f00 0000 6200 0000 6900 0000 0.../...b...i... > 01d0bbd0: 6e00 0000 2f00 0000 6e00 0000 6500 0000 n.../...n...e... > 01d0bbe0: 7800 0000 7400 0000 2d00 0000 6700 0000 x...t...-...g... > 01d0bbf0: 7400 0000 6b00 0000 2d00 0000 7700 0000 t...k...-...w... > 01d0bc00: 6500 0000 6200 0000 6b00 0000 6900 0000 e...b...k...i... > 01d0bc10: 7400 0000 0000 0000 0000 0000 0000 0000 t............... > 01d0bc20: e100 0100 0000 0000 2800 0000 0000 0000 ........(....... > 01d0bc30: 2a47 544b 2d57 4542 4b49 542d 434f 4d4d *GTK-WEBKIT-COMM > 01d0bc40: 414e 442a 0000 0000 0000 0000 0000 0000 AND*............ > > Apparently this string literal is stored as UTF-32 (UCS-4) or similar, > which prevents the reference scanner and the grafting code from finding > it, and problems ensue. :-) IMO, we should consider modifying Guix to search for store references encoded in UTF-32 and/or UTF-16. I wouldn't be surprised if some other programs use those encodings. I'd be willing to work on it. What do you think? Mark