From owner-freebsd-arch@freebsd.org Sat Oct 7 00:04:57 2017 Return-Path: Delivered-To: freebsd-arch@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2C907E44A4B for ; Sat, 7 Oct 2017 00:04:57 +0000 (UTC) (envelope-from phk@phk.freebsd.dk) Received: from mailman.ysv.freebsd.org (unknown [127.0.1.3]) by mx1.freebsd.org (Postfix) with ESMTP id 18A2674951 for ; Sat, 7 Oct 2017 00:04:57 +0000 (UTC) (envelope-from phk@phk.freebsd.dk) Received: by mailman.ysv.freebsd.org (Postfix) id 14889E44A4A; Sat, 7 Oct 2017 00:04:57 +0000 (UTC) Delivered-To: arch@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 1179CE44A49; Sat, 7 Oct 2017 00:04:57 +0000 (UTC) (envelope-from phk@phk.freebsd.dk) Received: from phk.freebsd.dk (phk.freebsd.dk [130.225.244.222]) by mx1.freebsd.org (Postfix) with ESMTP id C5D1374950; Sat, 7 Oct 2017 00:04:56 +0000 (UTC) (envelope-from phk@phk.freebsd.dk) Received: from critter.freebsd.dk (unknown [192.168.55.3]) by phk.freebsd.dk (Postfix) with ESMTP id 0872D2738F; Sat, 7 Oct 2017 00:04:54 +0000 (UTC) Received: from critter.freebsd.dk (localhost [127.0.0.1]) by critter.freebsd.dk (8.15.2/8.15.2) with ESMTP id v9704c30030850; Sat, 7 Oct 2017 00:04:39 GMT (envelope-from phk@phk.freebsd.dk) To: John Baldwin cc: "freebsd-arch@freebsd.org" , Baptiste Daroussin , freebsd-arch@freebsd.org Subject: Re: Making C++11 a hard requirement for FreeBSD In-reply-to: <2706092.qpavixPdKK@ralph.baldwin.cx> From: "Poul-Henning Kamp" References: <20171006072010.ygq3k5ygwxykk4nb@ivaldir.net> <29630.1507308468@critter.freebsd.dk> <2706092.qpavixPdKK@ralph.baldwin.cx> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-ID: <30848.1507334678.1@critter.freebsd.dk> Date: Sat, 07 Oct 2017 00:04:38 +0000 Message-ID: <30849.1507334678@critter.freebsd.dk> X-BeenThere: freebsd-arch@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Discussion related to FreeBSD architecture List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 07 Oct 2017 00:04:57 -0000 -------- In message <2706092.qpavixPdKK@ralph.baldwin.cx>, John Baldwin writes: >Hmm, I don't quite agree. I think it's possible to use a restricted C++ >(no rtti, no exceptions, no STL) such that you are only using language >features like templates or 'auto' without requiring runtime support. That's what Bjarne used to call "C++ as a better C compiler". If the jemalloc crew can stay inside that dotted line _and_ the C++ compilers still allow you to do so, then that could be an "not quite pregnant yet" option. >[...] >Right now the C++ runtime is split into a >couple of different pieces: libc++ (STL bits, roughly), libcxxrt (rtti >/ exception support), libgcc_s (either llvm libunwind or gcc for _Unwind_* >along with intrinsics from compiler-rt). >[...] >I think bundling any of those pieces into libc makes our system less >flexible and different from all the other UNIXy systems currently in >vogue. That goes to my point about ld: The standard doesn't say which library file which bits of the C++ runtime have to go into, we get to decide that if we want to, as long as we provide a ld(1) which knows where to find things. -- Poul-Henning Kamp | UNIX since Zilog Zeus 3.20 phk@FreeBSD.ORG | TCP/IP since RFC 956 FreeBSD committer | BSD since 4.3-tahoe Never attribute to malice what can adequately be explained by incompetence.