Linux-arch Archive on lore.kernel.org
 help / color / Atom feed
* [PATCH v2] vmlinux.lds.h: Keep .ctors.* with .ctors
@ 2020-10-05  2:57 Kees Cook
  2020-10-05 17:36 ` Nick Desaulniers
                   ` (2 more replies)
  0 siblings, 3 replies; 10+ messages in thread
From: Kees Cook @ 2020-10-05  2:57 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: Kees Cook, Stephen Rothwell, Nick Desaulniers, Arnd Bergmann,
	clang-built-linux, linux-arch, linux-kernel

Under some circumstances, the compiler generates .ctors.* sections. This
is seen doing a cross compile of x86_64 from a powerpc64el host:

x86_64-linux-gnu-ld: warning: orphan section `.ctors.65435' from `kernel/trace/trace_clock.o' being
placed in section `.ctors.65435'
x86_64-linux-gnu-ld: warning: orphan section `.ctors.65435' from `kernel/trace/ftrace.o' being
placed in section `.ctors.65435'
x86_64-linux-gnu-ld: warning: orphan section `.ctors.65435' from `kernel/trace/ring_buffer.o' being
placed in section `.ctors.65435'

Include these orphans along with the regular .ctors section.

Reported-by: Stephen Rothwell <sfr@canb.auug.org.au>
Tested-by: Stephen Rothwell <sfr@canb.auug.org.au>
Fixes: 83109d5d5fba ("x86/build: Warn on orphan section placement")
Signed-off-by: Kees Cook <keescook@chromium.org>
---
v2: brown paper bag version: fix whitespace for proper backslash alignment
---
 include/asm-generic/vmlinux.lds.h | 1 +
 1 file changed, 1 insertion(+)

diff --git a/include/asm-generic/vmlinux.lds.h b/include/asm-generic/vmlinux.lds.h
index 5430febd34be..b83c00c63997 100644
--- a/include/asm-generic/vmlinux.lds.h
+++ b/include/asm-generic/vmlinux.lds.h
@@ -684,6 +684,7 @@
 #ifdef CONFIG_CONSTRUCTORS
 #define KERNEL_CTORS()	. = ALIGN(8);			   \
 			__ctors_start = .;		   \
+			KEEP(*(SORT(.ctors.*)))		   \
 			KEEP(*(.ctors))			   \
 			KEEP(*(SORT(.init_array.*)))	   \
 			KEEP(*(.init_array))		   \
-- 
2.25.1


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH v2] vmlinux.lds.h: Keep .ctors.* with .ctors
  2020-10-05  2:57 [PATCH v2] vmlinux.lds.h: Keep .ctors.* with .ctors Kees Cook
@ 2020-10-05 17:36 ` Nick Desaulniers
  2020-10-14 23:04 ` Kees Cook
  2020-10-21 20:04 ` Kees Cook
  2 siblings, 0 replies; 10+ messages in thread
From: Nick Desaulniers @ 2020-10-05 17:36 UTC (permalink / raw)
  To: Kees Cook
  Cc: Ingo Molnar, Stephen Rothwell, Arnd Bergmann, clang-built-linux,
	linux-arch, LKML, linux-toolchains, Segher Boessenkool

On Sun, Oct 4, 2020 at 7:57 PM Kees Cook <keescook@chromium.org> wrote:
>
> Under some circumstances, the compiler generates .ctors.* sections. This
> is seen doing a cross compile of x86_64 from a powerpc64el host:
>
> x86_64-linux-gnu-ld: warning: orphan section `.ctors.65435' from `kernel/trace/trace_clock.o' being
> placed in section `.ctors.65435'
> x86_64-linux-gnu-ld: warning: orphan section `.ctors.65435' from `kernel/trace/ftrace.o' being
> placed in section `.ctors.65435'
> x86_64-linux-gnu-ld: warning: orphan section `.ctors.65435' from `kernel/trace/ring_buffer.o' being
> placed in section `.ctors.65435'
>
> Include these orphans along with the regular .ctors section.

It's very curious to see different behavior based on whether one is
targeting x86_64 via native compilation vs cross compilation.

Acked-by: Nick Desaulniers <ndesaulniers@google.com>

>
> Reported-by: Stephen Rothwell <sfr@canb.auug.org.au>
> Tested-by: Stephen Rothwell <sfr@canb.auug.org.au>
> Fixes: 83109d5d5fba ("x86/build: Warn on orphan section placement")
> Signed-off-by: Kees Cook <keescook@chromium.org>
> ---
> v2: brown paper bag version: fix whitespace for proper backslash alignment
> ---
>  include/asm-generic/vmlinux.lds.h | 1 +
>  1 file changed, 1 insertion(+)
>
> diff --git a/include/asm-generic/vmlinux.lds.h b/include/asm-generic/vmlinux.lds.h
> index 5430febd34be..b83c00c63997 100644
> --- a/include/asm-generic/vmlinux.lds.h
> +++ b/include/asm-generic/vmlinux.lds.h
> @@ -684,6 +684,7 @@
>  #ifdef CONFIG_CONSTRUCTORS
>  #define KERNEL_CTORS() . = ALIGN(8);                      \
>                         __ctors_start = .;                 \
> +                       KEEP(*(SORT(.ctors.*)))            \
>                         KEEP(*(.ctors))                    \
>                         KEEP(*(SORT(.init_array.*)))       \
>                         KEEP(*(.init_array))               \
> --
> 2.25.1
>


-- 
Thanks,
~Nick Desaulniers

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH v2] vmlinux.lds.h: Keep .ctors.* with .ctors
  2020-10-05  2:57 [PATCH v2] vmlinux.lds.h: Keep .ctors.* with .ctors Kees Cook
  2020-10-05 17:36 ` Nick Desaulniers
@ 2020-10-14 23:04 ` Kees Cook
  2020-10-15  4:53   ` Fāng-ruì Sòng
  2020-10-21 20:04 ` Kees Cook
  2 siblings, 1 reply; 10+ messages in thread
From: Kees Cook @ 2020-10-14 23:04 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: Stephen Rothwell, Nick Desaulniers, Arnd Bergmann,
	clang-built-linux, linux-arch, linux-kernel, x86

On Sun, Oct 04, 2020 at 07:57:20PM -0700, Kees Cook wrote:
> Under some circumstances, the compiler generates .ctors.* sections. This
> is seen doing a cross compile of x86_64 from a powerpc64el host:
> 
> x86_64-linux-gnu-ld: warning: orphan section `.ctors.65435' from `kernel/trace/trace_clock.o' being
> placed in section `.ctors.65435'
> x86_64-linux-gnu-ld: warning: orphan section `.ctors.65435' from `kernel/trace/ftrace.o' being
> placed in section `.ctors.65435'
> x86_64-linux-gnu-ld: warning: orphan section `.ctors.65435' from `kernel/trace/ring_buffer.o' being
> placed in section `.ctors.65435'
> 
> Include these orphans along with the regular .ctors section.
> 
> Reported-by: Stephen Rothwell <sfr@canb.auug.org.au>
> Tested-by: Stephen Rothwell <sfr@canb.auug.org.au>
> Fixes: 83109d5d5fba ("x86/build: Warn on orphan section placement")
> Signed-off-by: Kees Cook <keescook@chromium.org>

Ping -- please take this for tip/urgent, otherwise we're drowning sfr in
warnings. :)

-Kees

> ---
> v2: brown paper bag version: fix whitespace for proper backslash alignment
> ---
>  include/asm-generic/vmlinux.lds.h | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/include/asm-generic/vmlinux.lds.h b/include/asm-generic/vmlinux.lds.h
> index 5430febd34be..b83c00c63997 100644
> --- a/include/asm-generic/vmlinux.lds.h
> +++ b/include/asm-generic/vmlinux.lds.h
> @@ -684,6 +684,7 @@
>  #ifdef CONFIG_CONSTRUCTORS
>  #define KERNEL_CTORS()	. = ALIGN(8);			   \
>  			__ctors_start = .;		   \
> +			KEEP(*(SORT(.ctors.*)))		   \
>  			KEEP(*(.ctors))			   \
>  			KEEP(*(SORT(.init_array.*)))	   \
>  			KEEP(*(.init_array))		   \
> -- 
> 2.25.1
> 

-- 
Kees Cook

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH v2] vmlinux.lds.h: Keep .ctors.* with .ctors
  2020-10-14 23:04 ` Kees Cook
@ 2020-10-15  4:53   ` Fāng-ruì Sòng
  2020-10-21 20:09     ` Kees Cook
  0 siblings, 1 reply; 10+ messages in thread
From: Fāng-ruì Sòng @ 2020-10-15  4:53 UTC (permalink / raw)
  To: Kees Cook
  Cc: Ingo Molnar, Stephen Rothwell, Nick Desaulniers, Arnd Bergmann,
	clang-built-linux, linux-arch, LKML, X86 ML

On Wed, Oct 14, 2020 at 4:04 PM Kees Cook <keescook@chromium.org> wrote:
>
> On Sun, Oct 04, 2020 at 07:57:20PM -0700, Kees Cook wrote:
> > Under some circumstances, the compiler generates .ctors.* sections. This
> > is seen doing a cross compile of x86_64 from a powerpc64el host:
> >
> > x86_64-linux-gnu-ld: warning: orphan section `.ctors.65435' from `kernel/trace/trace_clock.o' being
> > placed in section `.ctors.65435'
> > x86_64-linux-gnu-ld: warning: orphan section `.ctors.65435' from `kernel/trace/ftrace.o' being
> > placed in section `.ctors.65435'
> > x86_64-linux-gnu-ld: warning: orphan section `.ctors.65435' from `kernel/trace/ring_buffer.o' being
> > placed in section `.ctors.65435'
> >
> > Include these orphans along with the regular .ctors section.
> >
> > Reported-by: Stephen Rothwell <sfr@canb.auug.org.au>
> > Tested-by: Stephen Rothwell <sfr@canb.auug.org.au>
> > Fixes: 83109d5d5fba ("x86/build: Warn on orphan section placement")
> > Signed-off-by: Kees Cook <keescook@chromium.org>
>
> Ping -- please take this for tip/urgent, otherwise we're drowning sfr in
> warnings. :)
>
> -Kees
>
> > ---
> > v2: brown paper bag version: fix whitespace for proper backslash alignment
> > ---
> >  include/asm-generic/vmlinux.lds.h | 1 +
> >  1 file changed, 1 insertion(+)
> >
> > diff --git a/include/asm-generic/vmlinux.lds.h b/include/asm-generic/vmlinux.lds.h
> > index 5430febd34be..b83c00c63997 100644
> > --- a/include/asm-generic/vmlinux.lds.h
> > +++ b/include/asm-generic/vmlinux.lds.h
> > @@ -684,6 +684,7 @@
> >  #ifdef CONFIG_CONSTRUCTORS
> >  #define KERNEL_CTORS()       . = ALIGN(8);                      \
> >                       __ctors_start = .;                 \
> > +                     KEEP(*(SORT(.ctors.*)))            \
> >                       KEEP(*(.ctors))                    \
> >                       KEEP(*(SORT(.init_array.*)))       \
> >                       KEEP(*(.init_array))               \
> > --
> > 2.25.1
> >
>
> --
> Kees Cook
>
> --
> You received this message because you are subscribed to the Google Groups "Clang Built Linux" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to clang-built-linux+unsubscribe@googlegroups.com.
> To view this discussion on the web visit https://groups.google.com/d/msgid/clang-built-linux/202010141603.49EA0CE%40keescook.

I think it would be great to figure out why these .ctors.* .dtors.*
are generated.
~GCC 4.7 switched to default to .init_array/.fini_array if libc
supports it. I have some refactoring in this area of Clang as well
(e.g. https://reviews.llvm.org/D71393)

And I am not sure SORT(.init_array.*) or SORT(.ctors.*) will work. The
correct construct is SORT_BY_INIT_PRIORITY(.init_array.*)

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH v2] vmlinux.lds.h: Keep .ctors.* with .ctors
  2020-10-05  2:57 [PATCH v2] vmlinux.lds.h: Keep .ctors.* with .ctors Kees Cook
  2020-10-05 17:36 ` Nick Desaulniers
  2020-10-14 23:04 ` Kees Cook
@ 2020-10-21 20:04 ` Kees Cook
  2020-10-21 22:22   ` Borislav Petkov
  2 siblings, 1 reply; 10+ messages in thread
From: Kees Cook @ 2020-10-21 20:04 UTC (permalink / raw)
  To: Ingo Molnar, x86
  Cc: Stephen Rothwell, Nick Desaulniers, Arnd Bergmann,
	clang-built-linux, linux-arch, linux-kernel

[thread ping: x86 maintainers, can someone please take this?]

On Sun, Oct 04, 2020 at 07:57:20PM -0700, Kees Cook wrote:
> Under some circumstances, the compiler generates .ctors.* sections. This
> is seen doing a cross compile of x86_64 from a powerpc64el host:
> 
> x86_64-linux-gnu-ld: warning: orphan section `.ctors.65435' from `kernel/trace/trace_clock.o' being
> placed in section `.ctors.65435'
> x86_64-linux-gnu-ld: warning: orphan section `.ctors.65435' from `kernel/trace/ftrace.o' being
> placed in section `.ctors.65435'
> x86_64-linux-gnu-ld: warning: orphan section `.ctors.65435' from `kernel/trace/ring_buffer.o' being
> placed in section `.ctors.65435'
> 
> Include these orphans along with the regular .ctors section.
> 
> Reported-by: Stephen Rothwell <sfr@canb.auug.org.au>
> Tested-by: Stephen Rothwell <sfr@canb.auug.org.au>
> Fixes: 83109d5d5fba ("x86/build: Warn on orphan section placement")
> Signed-off-by: Kees Cook <keescook@chromium.org>
> ---
> v2: brown paper bag version: fix whitespace for proper backslash alignment
> ---
>  include/asm-generic/vmlinux.lds.h | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/include/asm-generic/vmlinux.lds.h b/include/asm-generic/vmlinux.lds.h
> index 5430febd34be..b83c00c63997 100644
> --- a/include/asm-generic/vmlinux.lds.h
> +++ b/include/asm-generic/vmlinux.lds.h
> @@ -684,6 +684,7 @@
>  #ifdef CONFIG_CONSTRUCTORS
>  #define KERNEL_CTORS()	. = ALIGN(8);			   \
>  			__ctors_start = .;		   \
> +			KEEP(*(SORT(.ctors.*)))		   \
>  			KEEP(*(.ctors))			   \
>  			KEEP(*(SORT(.init_array.*)))	   \
>  			KEEP(*(.init_array))		   \
> -- 
> 2.25.1
> 

-- 
Kees Cook

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH v2] vmlinux.lds.h: Keep .ctors.* with .ctors
  2020-10-15  4:53   ` Fāng-ruì Sòng
@ 2020-10-21 20:09     ` Kees Cook
  2020-10-21 20:32       ` Fāng-ruì Sòng
  0 siblings, 1 reply; 10+ messages in thread
From: Kees Cook @ 2020-10-21 20:09 UTC (permalink / raw)
  To: Fāng-ruì Sòng
  Cc: Ingo Molnar, Stephen Rothwell, Nick Desaulniers, Arnd Bergmann,
	clang-built-linux, linux-arch, LKML, X86 ML

On Wed, Oct 14, 2020 at 09:53:39PM -0700, Fāng-ruì Sòng wrote:
> On Wed, Oct 14, 2020 at 4:04 PM Kees Cook <keescook@chromium.org> wrote:
> > > index 5430febd34be..b83c00c63997 100644
> > > --- a/include/asm-generic/vmlinux.lds.h
> > > +++ b/include/asm-generic/vmlinux.lds.h
> > > @@ -684,6 +684,7 @@
> > >  #ifdef CONFIG_CONSTRUCTORS
> > >  #define KERNEL_CTORS()       . = ALIGN(8);                      \
> > >                       __ctors_start = .;                 \
> > > +                     KEEP(*(SORT(.ctors.*)))            \
> > >                       KEEP(*(.ctors))                    \
> > >                       KEEP(*(SORT(.init_array.*)))       \
> > >                       KEEP(*(.init_array))               \
> > > --
> > > 2.25.1
> 
> I think it would be great to figure out why these .ctors.* .dtors.* are generated.

I haven't had the time to investigate. This patch keeps sfr's builds
from regressing, so we need at least this first.

> ~GCC 4.7 switched to default to .init_array/.fini_array if libc
> supports it. I have some refactoring in this area of Clang as well
> (e.g. https://reviews.llvm.org/D71393)
> 
> And I am not sure SORT(.init_array.*) or SORT(.ctors.*) will work. The
> correct construct is SORT_BY_INIT_PRIORITY(.init_array.*)

The kernel doesn't seem to use the init_priority attribute at all. Are
you saying the cause of the .ctors.* names are a result of some internal
use of init_priority by the compiler here?

-- 
Kees Cook

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH v2] vmlinux.lds.h: Keep .ctors.* with .ctors
  2020-10-21 20:09     ` Kees Cook
@ 2020-10-21 20:32       ` Fāng-ruì Sòng
  0 siblings, 0 replies; 10+ messages in thread
From: Fāng-ruì Sòng @ 2020-10-21 20:32 UTC (permalink / raw)
  To: Kees Cook
  Cc: Ingo Molnar, Stephen Rothwell, Nick Desaulniers, Arnd Bergmann,
	clang-built-linux, linux-arch, LKML, X86 ML

On Wed, Oct 21, 2020 at 1:09 PM Kees Cook <keescook@chromium.org> wrote:
>
> On Wed, Oct 14, 2020 at 09:53:39PM -0700, Fāng-ruì Sòng wrote:
> > On Wed, Oct 14, 2020 at 4:04 PM Kees Cook <keescook@chromium.org> wrote:
> > > > index 5430febd34be..b83c00c63997 100644
> > > > --- a/include/asm-generic/vmlinux.lds.h
> > > > +++ b/include/asm-generic/vmlinux.lds.h
> > > > @@ -684,6 +684,7 @@
> > > >  #ifdef CONFIG_CONSTRUCTORS
> > > >  #define KERNEL_CTORS()       . = ALIGN(8);                      \
> > > >                       __ctors_start = .;                 \
> > > > +                     KEEP(*(SORT(.ctors.*)))            \
> > > >                       KEEP(*(.ctors))                    \
> > > >                       KEEP(*(SORT(.init_array.*)))       \
> > > >                       KEEP(*(.init_array))               \
> > > > --
> > > > 2.25.1
> >
> > I think it would be great to figure out why these .ctors.* .dtors.* are generated.
>
> I haven't had the time to investigate. This patch keeps sfr's builds
> from regressing, so we need at least this first.

We need to know under what circumstances .ctors.* are generated.
For Clang>=10.0.1, for all *-linux triples, .init_array/.finit_array
are used by default.
There is a toggle -fno-use-init-array (not in GCC) to switch back to
.ctors/.dtors

Modern GCC also uses .init_array. The minimum requirement is now GCC
4.9 and thus I wonder whether the .ctors configuration is still
supported.
If it is (maybe because glibc version which is not specified on
https://www.kernel.org/doc/html/latest/process/changes.html ), we
should use
some #if to highlight that.

> > ~GCC 4.7 switched to default to .init_array/.fini_array if libc
> > supports it. I have some refactoring in this area of Clang as well
> > (e.g. https://reviews.llvm.org/D71393)
> >
> > And I am not sure SORT(.init_array.*) or SORT(.ctors.*) will work. The
> > correct construct is SORT_BY_INIT_PRIORITY(.init_array.*)
>
> The kernel doesn't seem to use the init_priority attribute at all. Are
> you saying the cause of the .ctors.* names are a result of some internal
> use of init_priority by the compiler here?
>

If no priority is intended, consider deleting SORT to avoid confusion?

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH v2] vmlinux.lds.h: Keep .ctors.* with .ctors
  2020-10-21 20:04 ` Kees Cook
@ 2020-10-21 22:22   ` Borislav Petkov
  2020-10-21 22:25     ` Kees Cook
  0 siblings, 1 reply; 10+ messages in thread
From: Borislav Petkov @ 2020-10-21 22:22 UTC (permalink / raw)
  To: Kees Cook
  Cc: Ingo Molnar, x86, Stephen Rothwell, Nick Desaulniers,
	Arnd Bergmann, clang-built-linux, linux-arch, linux-kernel

On Wed, Oct 21, 2020 at 01:04:35PM -0700, Kees Cook wrote:
> [thread ping: x86 maintainers, can someone please take this?]

$ ./scripts/get_maintainer.pl -f include/asm-generic/vmlinux.lds.h
Arnd Bergmann <arnd@arndb.de> (maintainer:GENERIC INCLUDE/ASM HEADER FILES)
...

so that's Arnd's AFAICT.

-- 
Regards/Gruss,
    Boris.

https://people.kernel.org/tglx/notes-about-netiquette

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH v2] vmlinux.lds.h: Keep .ctors.* with .ctors
  2020-10-21 22:22   ` Borislav Petkov
@ 2020-10-21 22:25     ` Kees Cook
  2020-10-21 22:29       ` Borislav Petkov
  0 siblings, 1 reply; 10+ messages in thread
From: Kees Cook @ 2020-10-21 22:25 UTC (permalink / raw)
  To: Borislav Petkov, Arnd Bergmann
  Cc: Ingo Molnar, x86, Stephen Rothwell, Nick Desaulniers,
	clang-built-linux, linux-arch, linux-kernel

On Thu, Oct 22, 2020 at 12:22:15AM +0200, Borislav Petkov wrote:
> On Wed, Oct 21, 2020 at 01:04:35PM -0700, Kees Cook wrote:
> > [thread ping: x86 maintainers, can someone please take this?]
> 
> $ ./scripts/get_maintainer.pl -f include/asm-generic/vmlinux.lds.h
> Arnd Bergmann <arnd@arndb.de> (maintainer:GENERIC INCLUDE/ASM HEADER FILES)
> ...
> 
> so that's Arnd's AFAICT.

It was a fix for the series Ingo took, so I seemed sensible to keep it
together. Though at this point, I don't care who takes it. :)

Arnd, do you have a tree that'll go to Linus before -rc1?

-- 
Kees Cook

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH v2] vmlinux.lds.h: Keep .ctors.* with .ctors
  2020-10-21 22:25     ` Kees Cook
@ 2020-10-21 22:29       ` Borislav Petkov
  0 siblings, 0 replies; 10+ messages in thread
From: Borislav Petkov @ 2020-10-21 22:29 UTC (permalink / raw)
  To: Kees Cook
  Cc: Arnd Bergmann, Ingo Molnar, x86, Stephen Rothwell,
	Nick Desaulniers, clang-built-linux, linux-arch, linux-kernel

On Wed, Oct 21, 2020 at 03:25:06PM -0700, Kees Cook wrote:
> It was a fix for the series Ingo took, so I seemed sensible to keep it
> together. Though at this point, I don't care who takes it. :)

That series is upstream already, I presume. And then it probably doesn't
matter who takes it...

Thx.

-- 
Regards/Gruss,
    Boris.

https://people.kernel.org/tglx/notes-about-netiquette

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, back to index

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-10-05  2:57 [PATCH v2] vmlinux.lds.h: Keep .ctors.* with .ctors Kees Cook
2020-10-05 17:36 ` Nick Desaulniers
2020-10-14 23:04 ` Kees Cook
2020-10-15  4:53   ` Fāng-ruì Sòng
2020-10-21 20:09     ` Kees Cook
2020-10-21 20:32       ` Fāng-ruì Sòng
2020-10-21 20:04 ` Kees Cook
2020-10-21 22:22   ` Borislav Petkov
2020-10-21 22:25     ` Kees Cook
2020-10-21 22:29       ` Borislav Petkov

Linux-arch Archive on lore.kernel.org

Archives are clonable:
	git clone --mirror https://lore.kernel.org/linux-arch/0 linux-arch/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 linux-arch linux-arch/ https://lore.kernel.org/linux-arch \
		linux-arch@vger.kernel.org
	public-inbox-index linux-arch

Example config snippet for mirrors

Newsgroup available over NNTP:
	nntp://nntp.lore.kernel.org/org.kernel.vger.linux-arch


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git