From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp2 ([2001:41d0:8:6d80::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms11 with LMTPS id kE/TFbXqR2BxLAAA0tVLHw (envelope-from ) for ; Tue, 09 Mar 2021 21:37:57 +0000 Received: from aspmx1.migadu.com ([2001:41d0:8:6d80::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp2 with LMTPS id UCiZEbXqR2ANMwAAB5/wlQ (envelope-from ) for ; Tue, 09 Mar 2021 21:37:57 +0000 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id 9E0E61CF7F for ; Tue, 9 Mar 2021 22:37:56 +0100 (CET) Received: from localhost ([::1]:41168 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lJk39-0007yh-IW for larch@yhetil.org; Tue, 09 Mar 2021 16:37:55 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:35350) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lJk1K-0004hy-6b for bug-guix@gnu.org; Tue, 09 Mar 2021 16:36:02 -0500 Received: from debbugs.gnu.org ([209.51.188.43]:36589) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1lJk1J-0005vJ-Rr for bug-guix@gnu.org; Tue, 09 Mar 2021 16:36:01 -0500 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1lJk1J-0008U3-Po for bug-guix@gnu.org; Tue, 09 Mar 2021 16:36:01 -0500 Subject: bug#32767: glibc shadows gcc's C++ headers Resent-From: Maxim Cournoyer Original-Sender: "Debbugs-submit" Resent-To: bug-guix@gnu.org Resent-Date: Tue, 09 Mar 2021 21:36:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: cc-closed 32767 X-GNU-PR-Package: guix X-GNU-PR-Keywords: To: Robin Templeton Mail-Followup-To: 32767@debbugs.gnu.org, maxim.cournoyer@gmail.com, robin@igalia.com Received: via spool by 32767-done@debbugs.gnu.org id=D32767.161532572832563 (code D ref 32767); Tue, 09 Mar 2021 21:36:01 +0000 Received: (at 32767-done) by debbugs.gnu.org; 9 Mar 2021 21:35:28 +0000 Received: from localhost ([127.0.0.1]:48133 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lJk0m-0008T9-CU for submit@debbugs.gnu.org; Tue, 09 Mar 2021 16:35:28 -0500 Received: from mail-qt1-f178.google.com ([209.85.160.178]:42643) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lJk0k-0008Sw-Q9 for 32767-done@debbugs.gnu.org; Tue, 09 Mar 2021 16:35:27 -0500 Received: by mail-qt1-f178.google.com with SMTP id d11so11424257qtx.9 for <32767-done@debbugs.gnu.org>; Tue, 09 Mar 2021 13:35:26 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version; bh=3y17KXTnlzbUQDbtDd5I4KARZ5g8fMIu8hhGAf18D60=; b=XY37aDNYqITlf1ycAjBVwjofPTwXRBjjJ9MLqIdL/vsOwSmwPiMQYuQaeMMpUE3/3s QpOskR3WtaacMhqXcBe+KjMOLWjltYt0lzu/4d2lsX1EVSfsK6sm352NRIKEJIl76+dc WqZdgeWrTjHB8e+TGz1zCwrkmCEwKyE2iSRjdnyJMeUAhT/Wm38Ud9cDW4n3XPKGzT6H Ftpd6hjlTCacQuFOFjgmOyUnzBF2yAMeVjmJDi2hwcgr8DDdq3mMXKtS/p9NKIyxzKEC rm+ZBEcyGsLfbgnywy4kcIED1IzYLEHvf7ogZRAGKcEAyaTqnyzYO4KrhR3wN3LlJWoU W0Gw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:references:date:in-reply-to :message-id:user-agent:mime-version; bh=3y17KXTnlzbUQDbtDd5I4KARZ5g8fMIu8hhGAf18D60=; b=qHnYazU4i3lpaXhlpu699o89NPgxNbjXedEAHpkmPnpiBzGAYvtKqSDAKUtvOqZwV4 D8oXdgu9f8fyONHGOjWWF3+CbUCcHAmnWA3k6dY5cQ0Is+K5R41qI5gkVChnKoUx84n4 Dn+lcm8/fIZ07HAJmJCTe1fr+E4+poaohp/YaBiRDOvD+n3MWR581Q2d/YzbA4kuwkeb oci+8vOOx5DcUlIVkgyIq//EKLx6iAlNym7HQszmGeFZJHjKjMTDrburhdJBEUypiH9D IM6nNMGzP3B+mmW8Y2GOrl0oqhxHdle8fD2Hc/iNJ0erTNjCIF7OkoKdmC/XL/EHRLVB IsoQ== X-Gm-Message-State: AOAM533Vt278Us8l6tn2O/gDhgini3oddX8lkPFbsWZlPxG4EL0yv72E KjRxK4vdiba+QXlFI7qryZeIu6a46tFNjg== X-Google-Smtp-Source: ABdhPJyQ5YVwC7d6aETiz1/V2ygEn7IWgkPPWWT3k6aOZCIjkHYZnfPhayKrRzL28ujAkedWnTv+DQ== X-Received: by 2002:ac8:5912:: with SMTP id 18mr50928qty.18.1615325720962; Tue, 09 Mar 2021 13:35:20 -0800 (PST) Received: from hurd (dsl-205-233-125-67.b2b2c.ca. [205.233.125.67]) by smtp.gmail.com with ESMTPSA id c5sm11230126qkl.21.2021.03.09.13.35.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 09 Mar 2021 13:35:20 -0800 (PST) From: Maxim Cournoyer References: <87efdquy26.fsf@terpri.org> Date: Tue, 09 Mar 2021 16:35:19 -0500 In-Reply-To: <87efdquy26.fsf@terpri.org> (Robin Templeton's message of "Tue, 18 Sep 2018 20:32:17 -0400") Message-ID: <87h7lkui20.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.1 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-guix@gnu.org List-Id: Bug reports for GNU Guix List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: 32767-done@debbugs.gnu.org Errors-To: bug-guix-bounces+larch=yhetil.org@gnu.org Sender: "bug-Guix" X-Migadu-Flow: FLOW_IN ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1615325876; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:resent-to:resent-from:resent-sender: resent-message-id:in-reply-to:in-reply-to:references:references: list-id:list-help:list-unsubscribe:list-subscribe:list-post: dkim-signature; bh=3y17KXTnlzbUQDbtDd5I4KARZ5g8fMIu8hhGAf18D60=; b=S/nT1FkQz5zLaUzEOXnn5S8Lx8enNjfABJZbsj7VTdON202YRjKPGMU16NL7+XkFo+cDr4 CDs5eiUj4RNEE4Hmhay1/qMqmHPcVyGTJiFoCBUboA/FYwHxR3cM6hnw0IbBmAwC36IoiU gkM09b//jjIM5zKvXoDunXdjXZ+9AA0rNR/RhnkjfStOk7PrL5fg4NwIG7NVtjH6j1pwHG b/4YvYjrACYGSlrsgeoaeUPk2xRmB1Zo4AU8uyD+fOSVWWL7+qNC1GxtlkrQW2NViUsHQt UP+XcSsaWlxxm7nv8dco6JxACD5y5bvYX+h3hOA8WGNa+TKWfyGR8/shk+YlRw== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1615325876; a=rsa-sha256; cv=none; b=ppADBk6csssCnev/yS1LOk4OL4qd0BJUVd2nUJw5GU3GheFxUmpbDuqC8jIXqABsDLxBrZ ulM8YBFnmfN7H3SIBXqHBKsjxAkeZRdDjKoVJwA1JKUoWkbGu8EHzY3sK0Q2YAHrP/LIc2 664nt9vAbZRiwb1WeUdHsrc08gfVrURE3vbu6ngAJGx3Lt0gZu27DJdXVckFnR71+QZ9jI YxBsfXWty8s1Jo1vNpnPP0PweAOO9xfIjdVOBMyYUXB5dC0GxKh5XI0/70sZ7GpraYHNZK ao3kgMwjUBTWQTBc97YflUfbFxp0VvcCg7oIrG/IAwRuqrdNXgop2oSvKKNSdw== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=fail ("headers rsa verify failed") header.d=gmail.com header.s=20161025 header.b=XY37aDNY; dmarc=fail reason="SPF not aligned (relaxed)" header.from=gmail.com (policy=none); spf=pass (aspmx1.migadu.com: domain of bug-guix-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=bug-guix-bounces@gnu.org X-Migadu-Spam-Score: -1.28 Authentication-Results: aspmx1.migadu.com; dkim=fail ("headers rsa verify failed") header.d=gmail.com header.s=20161025 header.b=XY37aDNY; dmarc=fail reason="SPF not aligned (relaxed)" header.from=gmail.com (policy=none); spf=pass (aspmx1.migadu.com: domain of bug-guix-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=bug-guix-bounces@gnu.org X-Migadu-Queue-Id: 9E0E61CF7F X-Spam-Score: -1.28 X-Migadu-Scanner: scn0.migadu.com X-TUID: FSmKtXfgMn68 Hello, Robin Templeton writes: > When compiling C++ programs, glibc's include directory takes precedence > over gcc's for standard C headers like math.h, but glibc's headers > aren't completely compatible with C++. For example, isnan from math.h is > supposed to be a function, but glibc defines it as a macro. > > This program demonstrates the problem: > > #include > int main(void) { int isnan(0); return isnan; } > > It works as expected when gcc's built-in C++ headers are used, but not > if glibc is installed: > > % guix environment --pure --ad-hoc gcc -- g++ -E isnan.cpp | tail -n1 > int main (void) { int isnan (0); return isnan; } > % guix environment --pure --ad-hoc gcc glibc -- g++ -E isnan.cpp | tail -n1 > int main (void) { int __builtin_isnan (0); return isnan; } > > As a temporary workaround, I'm using the following package as a > replacement for glibc, to keep the glibc headers out of $CPATH. If it's > installed along with gcc, ld-wrapper and binutils, the test program > compiles without errors. > > (use-modules (guix) (gnu)) > (use-package-modules base) > (package > (inherit glibc) > (name "my-glibc") > (arguments > (substitute-keyword-arguments (package-arguments glibc) > ((#:phases phases) > `(modify-phases ,phases > (add-after 'install 'move-include > (lambda _ > (rename-file (string-append %output "/include") > (string-append %output "/include-glibc")) > #t))))))) Thanks for the report. Nowadays the recommended way to install the GCC-based toolchain is to use the 'gcc-toolchain' package. The 'gcc' package is now even made hidden in Guix, which doesn't seem to have this particular issue: $ guix environment --pure --ad-hoc gcc-toolchain -- g++ -E /tmp/isnan.cpp | tail -n1 int main(void) { int isnan(0); return isnan; } $ guix environment --pure --ad-hoc gcc-toolchain glibc -- g++ -E /tmp/isnan.cpp | tail -n1 int main(void) { int isnan(0); return isnan; } I'm closing this issue, but feel free to open a fresh one if you still encounter problems. Thank you, Maxim