From owner-freebsd-toolchain@freebsd.org Sun Oct 14 02:55:10 2018 Return-Path: Delivered-To: freebsd-toolchain@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 8062310C07AD for ; Sun, 14 Oct 2018 02:55:10 +0000 (UTC) (envelope-from marklmi@yahoo.com) Received: from sonic306-21.consmr.mail.gq1.yahoo.com (sonic306-21.consmr.mail.gq1.yahoo.com [98.137.68.84]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 052DF74B9A for ; Sun, 14 Oct 2018 02:55:09 +0000 (UTC) (envelope-from marklmi@yahoo.com) X-YMail-OSG: MeECsXEVM1mPom3Zl28sGCPJhj3b9oS4Hhh6Tt2SYTDs41ePYngoowVSgkXKglV MAHHQ1mNxRjbortaqflht83NGJ6GlIlsSaUSlqRvT5B7FiWOhrb81.5u09Cwj5D5ASO_IOJ8xiMP 0sc3zwhRI_56KlzrscH.WGwB4pCfvQlD8jONXS12RVRiPKE15uakF9k4xLeV8uoX2YD6ZYBMpSho ZZPFiHI0nCaM36p4v84EeUsz2plgtl085s5NyH07YGcEn7bK5tFUWPvzk9lIE46L9vAEaivz86bK tosiL9Sr9NPW.azPE.TDLycLkub4TJeeh35sHwVjqwalCl_pFSE3wR8hPOcLRa3yL9xn3K2alS_x aPLR.shktmwKeXb3KjJSWKuv6zcqCzROPC_M797drzaGXYLdxpDATgnVLrHGWOZC2qdKX5mtmVGz HN1VDjBn10DSyUk3Nq9JQic1MDs27jWGNzMzJDYoBjLIsuFKI9lQUdVfjPLq2ycBV.Dcp1UlmUK3 Dsbh4WPvMG5HgSwAzZkd_av_CkibDVyxJzv7MMvJovad_WBMQsSaK87UaqraKLIJsDOY1eO.9GbL m_MDwqvFPE2pN9fln8Rk5PKTQ2gvtQwQNVTikGml9XgbGqfl2t0UvCcWXagOUQlkEXq5zeIHCVeI dHCCGp8_ref4T_SwGZS4gag5NReOnOl6EwPOSIRGfxEx8YY0h59wbG5TD4kTuQywGUKtm3HcQt5n aYBigrCHRsvZKoRAueMOE0qlR.4ylaIfZWjD8rTcjf.RyLmMYcBiWUr4JsjtEzkKzBfso.K1N5eo 3gms_xkbFQk380Q6PBhfTG_eio3YS_qOZtV.OZgc43BsQCY94kOlPmn6GQE8b_Pt5PYaf9YqwMc6 whQOzXiR.QN9HiExqh753qgq2QfIbr2dT6nebU53hFHTNsDkFwOuyuhHmsCER6KXNSVXRlhQVthW BFQtQkHcoqIiamC8Ry6MDvwFRyKXcTY9ho5kZghhbK41vYlujA2fpZdJXTX7tA7ej4qCMYhJBj5E igO0UDV2xk_tFPGKAF3dF3qzCa_MT9bRVf.onfwME5naUM7DhOo.BRxqzzUa2ugTDXsFzG4ABOgT twP7fcA-- Received: from sonic.gate.mail.ne1.yahoo.com by sonic306.consmr.mail.gq1.yahoo.com with HTTP; Sun, 14 Oct 2018 02:55:02 +0000 Received: from c-76-115-7-162.hsd1.or.comcast.net (EHLO [192.168.1.25]) ([76.115.7.162]) by smtp424.mail.gq1.yahoo.com (Oath Hermes SMTP Server) with ESMTPA ID df806d173a48fc7c698ff08210daf5fc; Sun, 14 Oct 2018 02:54:58 +0000 (UTC) Content-Type: text/plain; charset=utf-8 Mime-Version: 1.0 (Mac OS X Mail 11.5 \(3445.9.1\)) Subject: Re: GPL requirements vs. "some of which are compiled with GCC" terms in special exceptions? From: Mark Millard In-Reply-To: Date: Sat, 13 Oct 2018 19:54:58 -0700 Cc: FreeBSD Toolchain Content-Transfer-Encoding: quoted-printable Message-Id: References: <5449BAA6-E022-4DE4-870A-8AE132A6F9FA@yahoo.com> <61B6C299-2F93-4678-8928-3CABDFED6623@FreeBSD.org> To: David Chisnall X-Mailer: Apple Mail (2.3445.9.1) X-BeenThere: freebsd-toolchain@freebsd.org X-Mailman-Version: 2.1.27 Precedence: list List-Id: Maintenance of FreeBSD's integrated toolchain List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 14 Oct 2018 02:55:10 -0000 On 2018-Oct-13, at 7:40 PM, Mark Millard wrote: > On 2018-Oct-13, at 10:15 AM, David Chisnall = wrote: >=20 >> This is a known problem with the GCC runtime libraries. GCC 4.3 and = later have a much better exemption (which talks about any eligible = compilation process, rather than being compiled with GCC), but those are = GPLv3 and so unacceptable for FreeBSD. >=20 > I see. Good to know. Hmm. As of head -r339076 the src.conf man page says: WITHOUT_LLVM_LIBUNWIND Set to use GCC's stack unwinder (instead of LLVM's = libunwind). This is a default setting on arm/arm, arm/armv6, arm/armv7, powerpc/powerpc, powerpc/powerpc64, powerpc/powerpcspe and sparc64/sparc64. I believe arm/armv7, arm/armv6, and arm/arm are using clang for such vintages: WITH_CLANG_BOOTSTRAP Set to build the Clang C/C++ compiler during the bootstrap = phase of the build. This is a default setting on amd64/amd64, arm/arm, = arm/armv6, arm/armv7, arm64/aarch64 and i386/i386. But may be the man page is just out of date for WITHOUT_LLVM_LIBUNWIND ? >> I don=E2=80=99t believe that we are using any of those files on = platforms where clang is the default system compiler. LLVM=E2=80=99s = libUnwind should be able to handle PowerPC on Linux, so it=E2=80=99s = worth checking if this is the case on FreeBSD. >=20 > Last I tried llvm's libunwind for powerpc64 was back in = 2016-Dec/2017-Jan. > See https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D215039 . There = was also > the llvm submittal 31590. >=20 > I might try it again at some point. But clang and llvm have other = issues for > use for buildworld buildkernel as well as I understand. (But I'm doing = some > new experiments these days.) >=20 > I've no clue if llvm's libunwind is intended to be compliant with the > powerpc64 and powerpc ABIs that FreeBSD bases itself on for the = powerpc > family. >=20 >>> On 13 Oct 2018, at 18:12, Mark Millard via freebsd-toolchain = wrote: >>>=20 >>> While investigating powerpc64 C++ exception handling for >>> builds under devel/powerpc64-gcc I ran into the following >>> in /usr/src/contrib/gcc/unwind-dw2-fde-glibc.c : >>>=20 >>> /* As a special exception, if you link this library with other = files, >>> some of which are compiled with GCC, to produce an executable, >>> this library does not by itself cause the resulting executable >>> to be covered by the GNU General Public License. >>> This exception does not however invalidate any other reasons why >>> the executable file might be covered by the GNU General Public = License. */ >>>=20 >>> So in contexts were clang/llvm is used to exclusion . . . are >>> any such files in use? (I happen to be using devel/powerpc64-gcc at >>> the moment.) >>>=20 >>> For me this has no real implications: I do not distribute >>> my experiments. But I was surprised by what I read. >>>=20 >>> Looking I find: >>>=20 >>> # grep -r "some of which are compiled with GCC" /usr/src/* | more >>> /usr/src/contrib/gcc/config/i386/gthr-win32.c: some of which are = compiled with GCC, to produce an executable, >>> /usr/src/contrib/gcc/config/ia64/crtend.asm: some of which are = compiled with GCC, to produce an executable, >>> /usr/src/contrib/gcc/config/ia64/fde-glibc.c: some of which are = compiled with GCC, to produce an executable, >>> /usr/src/contrib/gcc/config/ia64/crtbegin.asm: some of which are = compiled with GCC, to produce an executable, >>> /usr/src/contrib/gcc/config/ia64/lib1funcs.asm: some of which are = compiled with GCC, to produce an executable, >>> /usr/src/contrib/gcc/config/ia64/crtfastmath.c: some of which are = compiled with GCC, to produce an executable, >>> /usr/src/contrib/gcc/config/ia64/unwind-ia64.c: some of which are = compiled with GCC, to produce an executable, >>> /usr/src/contrib/gcc/config/mips/mips16.S: some of which are = compiled with GCC, to produce an executable, >>> /usr/src/contrib/gcc/config/vxlib.c: some of which are compiled = with GCC, to produce an executable, >>> /usr/src/contrib/gcc/libgcc2.h: some of which are compiled with = GCC, to produce an executable, >>> /usr/src/contrib/gcc/gthr-posix95.h: some of which are compiled = with GCC, to produce an executable, >>> /usr/src/contrib/gcc/gthr-posix.h: some of which are compiled with = GCC, to produce an executable, >>> /usr/src/contrib/gcc/gthr-posix.c: some of which are compiled with = GCC, to produce an executable, >>> /usr/src/contrib/gcc/gbl-ctors.h: some of which are compiled with = GCC, to produce an executable, >>> /usr/src/contrib/gcc/gthr-gnat.c: some of which are compiled with = GCC, to produce an executable, >>> /usr/src/contrib/gcc/gthr-rtems.h: some of which are compiled with = GCC, to produce an executable, >>> /usr/src/contrib/gcc/gthr-vxworks.h: some of which are compiled = with GCC, to produce an executable, >>> /usr/src/contrib/gcc/gthr-dce.h: some of which are compiled with = GCC, to produce an executable, >>> /usr/src/contrib/gcc/gthr-nks.h: some of which are compiled with = GCC, to produce an executable, >>> /usr/src/contrib/gcc/gthr-tpf.h: some of which are compiled with = GCC, to produce an executable, >>> /usr/src/contrib/gcc/gthr-aix.h: some of which are compiled with = GCC, to produce an executable, >>> /usr/src/contrib/gcc/gthr-lynx.h: some of which are compiled with = GCC, to produce an executable, >>> /usr/src/contrib/gcc/gthr-solaris.h: some of which are compiled = with GCC, to produce an executable, >>> /usr/src/contrib/gcc/gthr.h: some of which are compiled with GCC, = to produce an executable, >>> /usr/src/contrib/gcc/gcov-io.h: some of which are compiled with = GCC, to produce an executable, >>> /usr/src/contrib/gcc/gthr-gnat.h: some of which are compiled with = GCC, to produce an executable, >>> /usr/src/contrib/gcc/gthr-single.h: some of which are compiled = with GCC, to produce an executable, >>> /usr/src/contrib/gcc/gthr-win32.h: some of which are compiled with = GCC, to produce an executable, >>> /usr/src/contrib/gcc/tsystem.h: some of which are compiled with = GCC, to produce an executable, >>> /usr/src/contrib/gcc/typeclass.h: some of which are compiled with = GCC, to produce an executable, >>> /usr/src/contrib/gcc/unwind-dw2-fde-glibc.c: some of which are = compiled with GCC, to produce an executable, >>> /usr/src/contrib/gcc/unwind-dw2-fde-darwin.c: some of which are = compiled with GCC, to produce an executable, >>=20 =3D=3D=3D Mark Millard marklmi at yahoo.com ( dsl-only.net went away in early 2018-Mar)