From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wm1-x32e.google.com (mail-wm1-x32e.google.com [IPv6:2a00:1450:4864:20::32e]) by sourceware.org (Postfix) with ESMTPS id 343793846033; Thu, 7 Jan 2021 00:41:52 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 343793846033 Received: by mail-wm1-x32e.google.com with SMTP id a6so3796971wmc.2; Wed, 06 Jan 2021 16:41:52 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=W/jwBWwNceD+Vu7FfnBzPxP+tdh1w5WWVk2vOmYPFL0=; b=KVtEc40YuTGfeAnEUxkUyHt/OSdJj/nPLODPhlrdC6YQ8A1CvUnSRKQ+XfcHW45kLb h/Fe4unWUMyyp30fY3FeEcINoHWRNb/DXOSN2C9zsmAC++sW41elpUOL7xIWlxWa3bxa gv7LCypNtfrZENfFCCn/JTLVhaXvgKIEKjlX1YHw/sJhwfpEKlNPUq3U162K0AakUVir KArKYFL/8f22Eu2WikbB4+Mo5jvNh3aEhyqFT3oqmgy8Uwkl6nBqVS7VnhAUpKJfZ3Ng nogVrxCaqspU43eRNiuUcJEJXHlqEPY9uzQNGjPho0vdTSpEKRyXNE0mDe4n2pYF17bJ RNlA== X-Gm-Message-State: AOAM532pobqmxSF1M4VTRROq0tLFD+UvGCpv6e5q/L86R2/cSg2IHABP YIugCirWUeP5H36ySdRcoQL7mBD4hBZGxerhP78= X-Google-Smtp-Source: ABdhPJxQGFqUV7lJckQIM+8P0NKEMD1XQYx4tCV83IPM1DOt1Ysbv/E3B6BQf5lEwoJk66kLRye//IMSHXy/FboV0Yo= X-Received: by 2002:a1c:7716:: with SMTP id t22mr5681355wmi.126.1609980111276; Wed, 06 Jan 2021 16:41:51 -0800 (PST) MIME-Version: 1.0 References: <20210106193746.GD725145@tucnak> <20210106214159.GF725145@tucnak> <20210106233937.GH725145@tucnak> <20210106234549.GA3748@tucnak> In-Reply-To: <20210106234549.GA3748@tucnak> From: David Edelsohn Date: Wed, 6 Jan 2021 19:41:38 -0500 Message-ID: Subject: Re: [PATCH, libstdc++] GLIBCXX_HAVE_INT64_T To: Jakub Jelinek Cc: Jonathan Wakely , Iain Sandoe , "libstdc++" , GCC Patches , "CHIGOT, CLEMENT" Content-Type: text/plain; charset="UTF-8" X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_FROM, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 07 Jan 2021 00:41:53 -0000 Thanks for clarifying the issue. As you implicitly point out, GCC knows the type of INT64 and defines the macro __INT64_TYPE__ . The revised code can use that directly, such as: #if defined(_GLIBCXX_HAVE_INT64_T_LONG) \ || defined(_GLIBCXX_HAVE_INT64_T_LONG_LONG) typedef __INT64_TYPE__ streamoff; #elif defined(_GLIBCXX_HAVE_INT64_T) typedef int64_t streamoff; #else typedef long long streamoff; #endif Are there any additional issues not addressed by that approach, other than possible further simplification? Thanks, David On Wed, Jan 6, 2021 at 6:45 PM Jakub Jelinek wrote: > > On Thu, Jan 07, 2021 at 12:39:39AM +0100, Jakub Jelinek wrote: > > We are talking past each other. > > > > Consider an OS that has in stdint.h > > typedef long long int64_t; > > And, from grepping INT64_TYPE in config/* config/*/* > it isn't just theoretic, Darwin and OpenBSD behave that way. > > Jakub >