From mboxrd@z Thu Jan 1 00:00:00 1970 From: ludo@gnu.org (Ludovic =?utf-8?Q?Court=C3=A8s?=) Subject: Installing a C tool chain Date: Mon, 27 Jan 2014 10:53:21 +0100 Message-ID: <87ha8pda3y.fsf_-_@gnu.org> References: <1390507648-21659-1-git-send-email-jmd@gnu.org> <1390507648-21659-3-git-send-email-jmd@gnu.org> <8761p8ulih.fsf@gnu.org> <20140125161456.GA31777@jocasta.intra> <20140125164217.GA21259@debian> <20140125170440.GA4883@jocasta.intra> <871tzvu743.fsf@gnu.org> <20140126073815.GA19985@jocasta.intra> <20140126185413.GD9380@debian> <877g9mpmmd.fsf@gnu.org> <52E6213B.3020203@totakura.in> 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]:38608) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1W7ixa-0004tn-Gm for guix-devel@gnu.org; Mon, 27 Jan 2014 04:58:36 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1W7ixU-00058L-DD for guix-devel@gnu.org; Mon, 27 Jan 2014 04:58:30 -0500 Received: from hera.aquilenet.fr ([141.255.128.1]:46827) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1W7ixU-00058D-59 for guix-devel@gnu.org; Mon, 27 Jan 2014 04:58:24 -0500 In-Reply-To: <52E6213B.3020203@totakura.in> (Sree Harsha Totakura's message of "Mon, 27 Jan 2014 10:04:59 +0100") List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org To: Sree Harsha Totakura Cc: guix-devel@gnu.org Sree Harsha Totakura skribis: > On 01/26/2014 08:30 PM, Ludovic Court=C3=A8s wrote: >> To summarize: =E2=80=98propagated-inputs=E2=80=99 should list libraries = 99% of the >> time. Listing programs in =E2=80=98propagated-inputs=E2=80=99 just for = the sake of >> populating $PATH is a bad idea. > > I recently found that many library packages do not propagate libc. I > installed gnutls through Guix and wanted to use it for development, but > the linker complained that some symbols belonging to glibc are missing. > What is the correct way of doing this? This is undocumented/suboptimal territory. To install a working C environment in your profile, run: guix package -i gcc binutils ld-wrapper glibc and set the environment as suggested. (=E2=80=98ld-wrapper=E2=80=99 is a l= inker wrapper that takes care of adding a =E2=80=98-rpath=E2=80=99 flag for every =E2=80= =98-l=E2=80=99; see ld-wrapper.scm.) The crux here is that =E2=80=98ld-wrapper=E2=80=99 must come *after* =E2=80= =98binutils=E2=80=99 on the command line above, so that $profile/bin/ld points to it, and not to the real =E2=80=98ld=E2=80=99. I believe this could be addressed by having a simple =E2=80=9Ctoolchain=E2= =80=9D meta-package with the sole purpose of propagating these 4 inputs, and by documenting it in the manual. WDYT? Ludo=E2=80=99.