Debian Bug report logs - #841438
--enable-default-pie breaks kernel build on amd64

version graph

Package: gcc-6; Maintainer for gcc-6 is Debian GCC Maintainers <debian-gcc@lists.debian.org>; Source for gcc-6 is src:gcc-6 (PTS, buildd, popcon).

Reported by: Klaus Ethgen <Klaus@Ethgen.de>

Date: Thu, 20 Oct 2016 16:51:04 UTC

Severity: important

Merged with 841419, 841500

Found in version gcc-6/6.2.0-7

Reply or subscribe to this bug.

Toggle useless messages

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to debian-bugs-dist@lists.debian.org, Debian GCC Maintainers <debian-gcc@lists.debian.org>:
Bug#841438; Package gcc-6. (Thu, 20 Oct 2016 16:51:06 GMT) (full text, mbox, link).


Acknowledgement sent to Klaus Ethgen <Klaus@Ethgen.de>:
New Bug report received and forwarded. Copy sent to Debian GCC Maintainers <debian-gcc@lists.debian.org>. (Thu, 20 Oct 2016 16:51:06 GMT) (full text, mbox, link).


Message #5 received at submit@bugs.debian.org (full text, mbox, reply):

From: Klaus Ethgen <Klaus@Ethgen.de>
To: Debian Bug Tracking System <submit@bugs.debian.org>
Subject: --enable-default-pie breaks kernel build on amd64
Date: Thu, 20 Oct 2016 17:48:52 +0100
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

Package: gcc-6
Version: 6.2.0-7
Severity: critical

The --enable-default-pie option breaks make-kpkg and normal kernel
builds as the kernel cannot be compiled with pie option.

- -- System Information:
Debian Release: stretch/sid
  APT prefers unstable
  APT policy: (500, 'unstable'), (500, 'testing'), (1, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 4.7.7 (SMP w/8 CPU cores)
Locale: LANG=de_DE, LC_CTYPE=de_DE (charmap=ISO-8859-1)
Shell: /bin/sh linked to /bin/dash
Init: sysvinit (via /sbin/init)

Versions of packages gcc-6 depends on:
ii  binutils      2.27-9
ii  cpp-6         6.2.0-7
ii  gcc-6-base    6.2.0-7
ii  libc6         2.24-5
ii  libcc1-0      6.2.0-7
ii  libgcc-6-dev  6.2.0-7
ii  libgcc1       1:6.2.0-7
ii  libgmp10      2:6.1.1+dfsg-1
ii  libisl15      0.17.1-1
ii  libmpc3       1.0.3-1
ii  libmpfr4      3.1.5-1
ii  libstdc++6    6.2.0-7
ii  zlib1g        1:1.2.8.dfsg-2+b1

Versions of packages gcc-6 recommends:
ii  libc6-dev  2.24-5

Versions of packages gcc-6 suggests:
pn  gcc-6-doc         <none>
pn  gcc-6-locales     <none>
pn  gcc-6-multilib    <none>
pn  libasan3-dbg      <none>
pn  libatomic1-dbg    <none>
pn  libcilkrts5-dbg   <none>
pn  libgcc1-dbg       <none>
pn  libgomp1-dbg      <none>
pn  libitm1-dbg       <none>
pn  liblsan0-dbg      <none>
pn  libmpx2-dbg       <none>
pn  libquadmath0-dbg  <none>
pn  libtsan0-dbg      <none>
pn  libubsan0-dbg     <none>

- -- no debconf information

- -- 
Klaus Ethgen                                       http://www.ethgen.ch/
pub  4096R/4E20AF1C 2011-05-16            Klaus Ethgen <Klaus@Ethgen.ch>
Fingerprint: 85D4 CA42 952C 949B 1753  62B3 79D0 B06F 4E20 AF1C
-----BEGIN PGP SIGNATURE-----
Comment: Charset: ISO-8859-1

iQGcBAEBCgAGBQJYCPVeAAoJEKZ8CrGAGfas4eML/2Lzj5nMOI4LZN8W8M7G9yPE
t9wMtol2biR16UbyyVLVK3yT6uf3qsR+Z43+Eva/HD1hFgGySm7rpSRsCpJ8tN9n
qVFth4mF5O4q9sEA+d7p+xUqhkKP/GjY+a42gGwyimdtVQDyNeuYyph7ZCy9nDBT
QwB7khSpaLI2GSSB8Fmn+O0P5khKh1aJjox/OaKID57a+d2Usgdh23+eaCPt2dlz
6limIuzjR/G4TZe01K2UkyAv1zEdgM1mfDWku/W4yIA5Ld9J1mh0ljXhhZaoscqb
r7qRRyArrZj4RySInLL/uEOxO3ezuNR19Z9OA7J57zodhksNWGZef+87KJ1TV3cY
d/uIEhROKX9kXfAXgoSlTbXu982a6vm8u18gEjnxUbMzWSUPomhMUCjp2OODTea+
GwpM3nE7tKbsStz2esLE93hGg0xdKj/D1mQHdqiI8bd2zeHLsOi+H6lQMI+DN/CV
npd34DibnrkziQTAMoiCpCPENE5XUW6DktYK8I43SQ==
=xLja
-----END PGP SIGNATURE-----



Information forwarded to debian-bugs-dist@lists.debian.org, Debian GCC Maintainers <debian-gcc@lists.debian.org>:
Bug#841438; Package gcc-6. (Thu, 20 Oct 2016 17:03:03 GMT) (full text, mbox, link).


Acknowledgement sent to Niels Thykier <niels@thykier.net>:
Extra info received and forwarded to list. Copy sent to Debian GCC Maintainers <debian-gcc@lists.debian.org>. (Thu, 20 Oct 2016 17:03:03 GMT) (full text, mbox, link).


Message #10 received at 841438@bugs.debian.org (full text, mbox, reply):

From: Niels Thykier <niels@thykier.net>
To: 841438@bugs.debian.org
Subject: Re: --enable-default-pie breaks kernel build on amd64
Date: Thu, 20 Oct 2016 16:57:00 +0000
Control: severity -1 normal

On Thu, 20 Oct 2016 17:48:52 +0100 Klaus Ethgen <Klaus@Ethgen.de> wrote:
> 
> Package: gcc-6
> Version: 6.2.0-7
> Severity: critical
> 
> The --enable-default-pie option breaks make-kpkg and normal kernel
> builds as the kernel cannot be compiled with pie option.
> 
> [...]
> 
> - -- 
> Klaus Ethgen                                       http://www.ethgen.ch/

Hi Klaus,

There was consensus on enabling PIE by default via the
--enable-default-pie option.  If the make-kpkg and kernel packages now
FTBFS, we should reassign the bug to those packages.

Thanks,
~Niels





Severity set to 'normal' from 'critical' Request was from Niels Thykier <niels@thykier.net> to 841438-submit@bugs.debian.org. (Thu, 20 Oct 2016 17:03:03 GMT) (full text, mbox, link).


Information forwarded to debian-bugs-dist@lists.debian.org, Debian GCC Maintainers <debian-gcc@lists.debian.org>:
Bug#841438; Package gcc-6. (Thu, 20 Oct 2016 17:09:04 GMT) (full text, mbox, link).


Acknowledgement sent to Gianfranco Costamagna <locutusofborg@debian.org>:
Extra info received and forwarded to list. Copy sent to Debian GCC Maintainers <debian-gcc@lists.debian.org>. (Thu, 20 Oct 2016 17:09:04 GMT) (full text, mbox, link).


Message #17 received at 841438@bugs.debian.org (full text, mbox, reply):

From: Gianfranco Costamagna <locutusofborg@debian.org>
To: 841438@bugs.debian.org
Subject: --enable-default-pie breaks kernel build on amd64
Date: Thu, 20 Oct 2016 19:05:51 +0200
[Message part 1 (text/plain, inline)]
control: severity -1 normal
control: reassign -1 src:linux
control: affects -1 gcc-6

Hi Linux Kernel maintainers,
as you already know, the default PIE flag breaks the kernel build, can I suggest you to apply a similar patch
to the one that Ubuntu appplied some time ago?
https://bugs.launchpad.net/ubuntu/+source/gcc-defaults/+bug/1574982/comments/39

--- a/Makefile
+++ b/Makefile
@@ -612,6 +612,12 @@ endif # $(dot-config)
 # Defaults to vmlinux, but the arch makefile usually adds further targets
 all: vmlinux
 
+# force no-pie for distro compilers that enable pie by default
+KBUILD_CFLAGS += $(call cc-option, -fno-pie)
+KBUILD_CFLAGS += $(call cc-option, -no-pie)
+KBUILD_AFLAGS += $(call cc-option, -fno-pie)
+KBUILD_CPPFLAGS += $(call cc-option, -fno-pie)
+
 # The arch Makefile can set ARCH_{CPP,A,C}FLAGS to override the default
 # values of the respective KBUILD_* variables
 ARCH_CPPFLAGS :=

thanks

Gianfranco

[signature.asc (application/pgp-signature, attachment)]

Bug reassigned from package 'gcc-6' to 'src:linux'. Request was from Gianfranco Costamagna <locutusofborg@debian.org> to 841438-submit@bugs.debian.org. (Thu, 20 Oct 2016 17:09:04 GMT) (full text, mbox, link).


No longer marked as found in versions gcc-6/6.2.0-7. Request was from Gianfranco Costamagna <locutusofborg@debian.org> to 841438-submit@bugs.debian.org. (Thu, 20 Oct 2016 17:09:05 GMT) (full text, mbox, link).


Added indication that 841438 affects gcc-6 Request was from Gianfranco Costamagna <locutusofborg@debian.org> to 841438-submit@bugs.debian.org. (Thu, 20 Oct 2016 17:09:05 GMT) (full text, mbox, link).


Information forwarded to debian-bugs-dist@lists.debian.org, Debian Kernel Team <debian-kernel@lists.debian.org>:
Bug#841438; Package src:linux. (Thu, 20 Oct 2016 21:57:17 GMT) (full text, mbox, link).


Acknowledgement sent to eric.valette@free.fr:
Extra info received and forwarded to list. Copy sent to Debian Kernel Team <debian-kernel@lists.debian.org>. (Thu, 20 Oct 2016 21:57:17 GMT) (full text, mbox, link).


Message #28 received at 841438@bugs.debian.org (full text, mbox, reply):

From: Eric Valette <eric.valette@free.fr>
To: 841438@bugs.debian.org
Subject: This is agcc bug : upstream kernel irself fails to build with this gcc so reassigne to gcc-6
Date: Thu, 20 Oct 2016 23:47:54 +0200
I never use debian kernel and connaot compile upstream kernel with gcc-6 
now.

--eric



Merged 841419 841438 Request was from Ben Hutchings <ben@decadent.org.uk> to control@bugs.debian.org. (Thu, 20 Oct 2016 22:09:05 GMT) (full text, mbox, link).


Information forwarded to debian-bugs-dist@lists.debian.org, Debian Kernel Team <debian-kernel@lists.debian.org>:
Bug#841438; Package src:linux. (Thu, 20 Oct 2016 22:12:04 GMT) (full text, mbox, link).


Acknowledgement sent to Ben Hutchings <ben@decadent.org.uk>:
Extra info received and forwarded to list. Copy sent to Debian Kernel Team <debian-kernel@lists.debian.org>. (Thu, 20 Oct 2016 22:12:04 GMT) (full text, mbox, link).


Message #35 received at 841438@bugs.debian.org (full text, mbox, reply):

From: Ben Hutchings <ben@decadent.org.uk>
To: gcc-6@packages.debian.org, Niels Thykier <niels@thykier.net>
Cc: 841438@bugs.debian.org
Subject: Re: --enable-default-pie breaks kernel build on amd64
Date: Thu, 20 Oct 2016 23:09:38 +0100
[Message part 1 (text/plain, inline)]
On Thu, 20 Oct 2016 19:05:51 +0200 Gianfranco Costamagna <locutusofborg@debian.org> wrote:
> control: severity -1 normal
> control: reassign -1 src:linux
> control: affects -1 gcc-6
> 
> Hi Linux Kernel maintainers,
> as you already know, the default PIE flag breaks the kernel build, can I suggest you to apply a similar patch
> to the one that Ubuntu appplied some time ago?
> https://bugs.launchpad.net/ubuntu/+source/gcc-defaults/+bug/1574982/comments/39

Many Debian users do not use our packaged kernel, so working around
this in src:linux does not solve the problem.  The default compiler in
Debian *must* be able to compile the upstream Linux kernel.  I will not
accept any patches for this that have not been accepted upstream.

A better approach might be to make -mcmodel=kernel automatically
override the default of -fPIE.

Ben.

> --- a/Makefile
> +++ b/Makefile
> @@ -612,6 +612,12 @@ endif # $(dot-config)
>  # Defaults to vmlinux, but the arch makefile usually adds further targets
>  all: vmlinux
>  
> +# force no-pie for distro compilers that enable pie by default
> +KBUILD_CFLAGS += $(call cc-option, -fno-pie)
> +KBUILD_CFLAGS += $(call cc-option, -no-pie)
> +KBUILD_AFLAGS += $(call cc-option, -fno-pie)
> +KBUILD_CPPFLAGS += $(call cc-option, -fno-pie)
> +
>  # The arch Makefile can set ARCH_{CPP,A,C}FLAGS to override the default
>  # values of the respective KBUILD_* variables
>  ARCH_CPPFLAGS :=
> 
> thanks
> 
> Gianfranco
> 

-- 
Ben Hutchings
Never put off till tomorrow what you can avoid all togethe
[signature.asc (application/pgp-signature, inline)]

Severity set to 'grave' from 'normal' Request was from Gianfranco Costamagna <locutusofborg@debian.org> to 841500-submit@bugs.debian.org. (Fri, 21 Oct 2016 09:18:11 GMT) (full text, mbox, link).


Removed indication that 841438 affects gcc-6 Request was from Gianfranco Costamagna <locutusofborg@debian.org> to 841500-submit@bugs.debian.org. (Fri, 21 Oct 2016 09:18:12 GMT) (full text, mbox, link).


Merged 841419 841438 841500 Request was from Gianfranco Costamagna <locutusofborg@debian.org> to 841500-submit@bugs.debian.org. (Fri, 21 Oct 2016 09:18:13 GMT) (full text, mbox, link).


Severity set to 'normal' from 'grave' Request was from Gianfranco Costamagna <locutusofborg@debian.org> to control@bugs.debian.org. (Fri, 21 Oct 2016 09:18:17 GMT) (full text, mbox, link).


Bug reassigned from package 'src:linux' to 'gcc-6'. Request was from Eric Valette <Eric.Valette@Free.fr> to control@bugs.debian.org. (Fri, 21 Oct 2016 09:42:04 GMT) (full text, mbox, link).


Disconnected #841500 from all other report(s). Request was from Eric Valette <Eric.Valette@Free.fr> to control@bugs.debian.org. (Fri, 21 Oct 2016 12:00:07 GMT) (full text, mbox, link).


Information forwarded to debian-bugs-dist@lists.debian.org, Debian GCC Maintainers <debian-gcc@lists.debian.org>:
Bug#841438; Package gcc-6. (Fri, 21 Oct 2016 23:27:04 GMT) (full text, mbox, link).


Acknowledgement sent to balint@balintreczey.hu:
Extra info received and forwarded to list. Copy sent to Debian GCC Maintainers <debian-gcc@lists.debian.org>. (Fri, 21 Oct 2016 23:27:04 GMT) (full text, mbox, link).


Message #52 received at 841438@bugs.debian.org (full text, mbox, reply):

From: Bálint Réczey <balint@balintreczey.hu>
To: Gianfranco Costamagna <locutusofborg@debian.org>, 841438@bugs.debian.org, Steve Beattie <steve.beattie@canonical.com>, Andy Whitcroft <apw@canonical.com>, Tim Gardner <tim.gardner@canonical.com>, Stefan Bader <stefan.bader@canonical.com>, Kamal Mostafa <kamal@canonical.com>
Subject: Re: Bug#841438: --enable-default-pie breaks kernel build on amd64
Date: Sat, 22 Oct 2016 01:24:01 +0200
Dear Ubuntu Developers,

Have you tried upstreaming the patch? It would be a great help.

Cheers,
Balint


2016-10-20 19:05 GMT+02:00 Gianfranco Costamagna <locutusofborg@debian.org>:
> control: severity -1 normal
> control: reassign -1 src:linux
> control: affects -1 gcc-6
>
> Hi Linux Kernel maintainers,
> as you already know, the default PIE flag breaks the kernel build, can I suggest you to apply a similar patch
> to the one that Ubuntu appplied some time ago?
> https://bugs.launchpad.net/ubuntu/+source/gcc-defaults/+bug/1574982/comments/39
>
> --- a/Makefile
> +++ b/Makefile
> @@ -612,6 +612,12 @@ endif # $(dot-config)
>  # Defaults to vmlinux, but the arch makefile usually adds further targets
>  all: vmlinux
>
> +# force no-pie for distro compilers that enable pie by default
> +KBUILD_CFLAGS += $(call cc-option, -fno-pie)
> +KBUILD_CFLAGS += $(call cc-option, -no-pie)
> +KBUILD_AFLAGS += $(call cc-option, -fno-pie)
> +KBUILD_CPPFLAGS += $(call cc-option, -fno-pie)
> +
>  # The arch Makefile can set ARCH_{CPP,A,C}FLAGS to override the default
>  # values of the respective KBUILD_* variables
>  ARCH_CPPFLAGS :=
>
> thanks
>
> Gianfranco
>



Information forwarded to debian-bugs-dist@lists.debian.org, Debian GCC Maintainers <debian-gcc@lists.debian.org>:
Bug#841438; Package gcc-6. (Sat, 22 Oct 2016 11:33:03 GMT) (full text, mbox, link).


Acknowledgement sent to Gianfranco Costamagna <locutusofborg@debian.org>:
Extra info received and forwarded to list. Copy sent to Debian GCC Maintainers <debian-gcc@lists.debian.org>. (Sat, 22 Oct 2016 11:33:03 GMT) (full text, mbox, link).


Message #57 received at 841438@bugs.debian.org (full text, mbox, reply):

From: Gianfranco Costamagna <locutusofborg@debian.org>
To: "balint@balintreczey.hu" <balint@balintreczey.hu>, "841438@bugs.debian.org" <841438@bugs.debian.org>, Steve Beattie <steve.beattie@canonical.com>, Andy Whitcroft <apw@canonical.com>, Tim Gardner <tim.gardner@canonical.com>, Stefan Bader <stefan.bader@canonical.com>, Kamal Mostafa <kamal@canonical.com>
Subject: Re: Bug#841438: --enable-default-pie breaks kernel build on amd64
Date: Sat, 22 Oct 2016 11:30:41 +0000 (UTC)
Hi

>Have you tried upstreaming the patch? It would be a great help.


I think message 35 would be the right way to go

https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=841438#35
G.

2016-10-20 19:05 GMT+02:00 Gianfranco Costamagna <locutusofborg@debian.org>:
> control: severity -1 normal
> control: reassign -1 src:linux
> control: affects -1 gcc-6
>
> Hi Linux Kernel maintainers,
> as you already know, the default PIE flag breaks the kernel build, can I suggest you to apply a similar patch
> to the one that Ubuntu appplied some time ago?
> https://bugs.launchpad.net/ubuntu/+source/gcc-defaults/+bug/1574982/comments/39
>
> --- a/Makefile
> +++ b/Makefile
> @@ -612,6 +612,12 @@ endif # $(dot-config)
>  # Defaults to vmlinux, but the arch makefile usually adds further targets
>  all: vmlinux
>
> +# force no-pie for distro compilers that enable pie by default
> +KBUILD_CFLAGS += $(call cc-option, -fno-pie)
> +KBUILD_CFLAGS += $(call cc-option, -no-pie)
> +KBUILD_AFLAGS += $(call cc-option, -fno-pie)
> +KBUILD_CPPFLAGS += $(call cc-option, -fno-pie)
> +
>  # The arch Makefile can set ARCH_{CPP,A,C}FLAGS to override the default
>  # values of the respective KBUILD_* variables
>  ARCH_CPPFLAGS :=
>
> thanks
>
> Gianfranco
>



Information forwarded to debian-bugs-dist@lists.debian.org, Debian GCC Maintainers <debian-gcc@lists.debian.org>:
Bug#841438; Package gcc-6. (Sat, 22 Oct 2016 16:33:05 GMT) (full text, mbox, link).


Acknowledgement sent to balint@balintreczey.hu:
Extra info received and forwarded to list. Copy sent to Debian GCC Maintainers <debian-gcc@lists.debian.org>. (Sat, 22 Oct 2016 16:33:05 GMT) (full text, mbox, link).


Message #62 received at 841438@bugs.debian.org (full text, mbox, reply):

From: Bálint Réczey <balint@balintreczey.hu>
To: Gianfranco Costamagna <locutusofborg@debian.org>
Cc: "841438@bugs.debian.org" <841438@bugs.debian.org>, Steve Beattie <steve.beattie@canonical.com>, Andy Whitcroft <apw@canonical.com>, Tim Gardner <tim.gardner@canonical.com>, Stefan Bader <stefan.bader@canonical.com>, Kamal Mostafa <kamal@canonical.com>
Subject: Re: Bug#841438: --enable-default-pie breaks kernel build on amd64
Date: Sat, 22 Oct 2016 18:29:03 +0200
2016-10-22 13:30 GMT+02:00 Gianfranco Costamagna <locutusofborg@debian.org>:
> Hi
>
>>Have you tried upstreaming the patch? It would be a great help.
>
>
> I think message 35 would be the right way to go
>
> https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=841438#35

I think disabling PIE from GCC for the kernel would interefere with
this proposed patch:
https://lkml.org/lkml/2016/10/20/141

I think the final solution would be patching to kernel.

Kernel upstream is already aware of the situation
https://lkml.org/lkml/2016/10/21/904
https://lkml.org/lkml/2016/10/21/351

and Ubuntu users already hit the problem with 16.10, too:
https://lkml.org/lkml/2016/10/20/616

Cheers,
Balint


> G.
>
> 2016-10-20 19:05 GMT+02:00 Gianfranco Costamagna <locutusofborg@debian.org>:
>> control: severity -1 normal
>> control: reassign -1 src:linux
>> control: affects -1 gcc-6
>>
>> Hi Linux Kernel maintainers,
>> as you already know, the default PIE flag breaks the kernel build, can I suggest you to apply a similar patch
>> to the one that Ubuntu appplied some time ago?
>> https://bugs.launchpad.net/ubuntu/+source/gcc-defaults/+bug/1574982/comments/39
>>
>> --- a/Makefile
>> +++ b/Makefile
>> @@ -612,6 +612,12 @@ endif # $(dot-config)
>>  # Defaults to vmlinux, but the arch makefile usually adds further targets
>>  all: vmlinux
>>
>> +# force no-pie for distro compilers that enable pie by default
>> +KBUILD_CFLAGS += $(call cc-option, -fno-pie)
>> +KBUILD_CFLAGS += $(call cc-option, -no-pie)
>> +KBUILD_AFLAGS += $(call cc-option, -fno-pie)
>> +KBUILD_CPPFLAGS += $(call cc-option, -fno-pie)
>> +
>>  # The arch Makefile can set ARCH_{CPP,A,C}FLAGS to override the default
>>  # values of the respective KBUILD_* variables
>>  ARCH_CPPFLAGS :=
>>
>> thanks
>>
>> Gianfranco
>>



Marked as found in versions gcc-6/6.2.0-7. Request was from Niels Thykier <niels@thykier.net> to 841500-submit@bugs.debian.org. (Thu, 27 Oct 2016 06:27:06 GMT) (full text, mbox, link).


Merged 841419 841438 841500 Request was from Niels Thykier <niels@thykier.net> to 841500-submit@bugs.debian.org. (Thu, 27 Oct 2016 06:27:07 GMT) (full text, mbox, link).


Severity set to 'important' from 'normal' Request was from Gianfranco Costamagna <locutusofborg@debian.org> to control@bugs.debian.org. (Thu, 27 Oct 2016 13:18:05 GMT) (full text, mbox, link).


Send a report that this bug log contains spam.


Debian bug tracking system administrator <owner@bugs.debian.org>. Last modified: Sat Jan 6 06:16:26 2018; Machine Name: beach

Debian Bug tracking system

Debbugs is free software and licensed under the terms of the GNU Public License version 2. The current version can be obtained from https://bugs.debian.org/debbugs-source/.

Copyright © 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson, 2005-2017 Don Armstrong, and many other contributors.