* [PATCH 0/3] perf tools: Fixes for some compile errors.
@ 2012-08-27 7:38 Feng Tang
2012-08-27 7:38 ` [PATCH 1/3] perf tools: Fix a compiling error in trace-event-perl.c for 32 bits machine Feng Tang
` (2 more replies)
0 siblings, 3 replies; 11+ messages in thread
From: Feng Tang @ 2012-08-27 7:38 UTC (permalink / raw)
To: acme; +Cc: mingo, a.p.zijlstra, namhyung, dsahern, linux-kernel, Feng Tang
Hi Arnaldo and all,
I met 3 compiling problems on my x86_32 machine, and these are the fixes,
patch 1/3 only applies for perf/core branch of your git, while patch 2
applies to Linus' tree also. please review.
Thanks,
Feng
---
Feng Tang (3):
perf tools: Fix a compiling error in trace-event-perl.c for 32 bits
machine
Perf tools: Fix a compiling error in util/map.c
perf tools: Fix a misuse of for_each_set_bit() in session.c
tools/perf/util/map.c | 5 ++---
.../perf/util/scripting-engines/trace-event-perl.c | 2 +-
tools/perf/util/session.c | 9 ++++-----
3 files changed, 7 insertions(+), 9 deletions(-)
^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH 1/3] perf tools: Fix a compiling error in trace-event-perl.c for 32 bits machine
2012-08-27 7:38 [PATCH 0/3] perf tools: Fixes for some compile errors Feng Tang
@ 2012-08-27 7:38 ` Feng Tang
2012-08-27 15:33 ` Arnaldo Carvalho de Melo
2012-08-27 7:38 ` [PATCH 2/3] Perf tools: Fix a compiling error in util/map.c Feng Tang
2012-08-27 7:38 ` [PATCH 3/3] perf tools: Fix a misuse of for_each_set_bit() in session.c Feng Tang
2 siblings, 1 reply; 11+ messages in thread
From: Feng Tang @ 2012-08-27 7:38 UTC (permalink / raw)
To: acme; +Cc: mingo, a.p.zijlstra, namhyung, dsahern, linux-kernel, Feng Tang
On my x86_32 mahcine, there is a compile error:
CC util/scripting-engines/trace-event-perl.o
cc1: warnings being treated as errors
util/scripting-engines/trace-event-perl.c: In function ‘perl_process_tracepoint’:
util/scripting-engines/trace-event-perl.c:285: error: format ‘%d’ expects type ‘int’, but argument 2 has type ‘__u64’
make: *** [util/scripting-engines/trace-event-perl.o] Error 1
Fix it by using the "%lld" for __u64.
Signed-off-by: Feng Tang <feng.tang@intel.com>
---
.../perf/util/scripting-engines/trace-event-perl.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/tools/perf/util/scripting-engines/trace-event-perl.c b/tools/perf/util/scripting-engines/trace-event-perl.c
index d280010..1cde6aa 100644
--- a/tools/perf/util/scripting-engines/trace-event-perl.c
+++ b/tools/perf/util/scripting-engines/trace-event-perl.c
@@ -282,7 +282,7 @@ static void perl_process_tracepoint(union perf_event *perf_event __unused,
event = find_cache_event(evsel);
if (!event)
- die("ug! no event found for type %d", evsel->attr.config);
+ die("ug! no event found for type %lld", evsel->attr.config);
pid = raw_field_value(event, "common_pid", data);
--
1.7.1
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH 2/3] Perf tools: Fix a compiling error in util/map.c
2012-08-27 7:38 [PATCH 0/3] perf tools: Fixes for some compile errors Feng Tang
2012-08-27 7:38 ` [PATCH 1/3] perf tools: Fix a compiling error in trace-event-perl.c for 32 bits machine Feng Tang
@ 2012-08-27 7:38 ` Feng Tang
2012-09-27 4:23 ` [tip:perf/core] perf " tip-bot for Feng Tang
2012-08-27 7:38 ` [PATCH 3/3] perf tools: Fix a misuse of for_each_set_bit() in session.c Feng Tang
2 siblings, 1 reply; 11+ messages in thread
From: Feng Tang @ 2012-08-27 7:38 UTC (permalink / raw)
To: acme; +Cc: mingo, a.p.zijlstra, namhyung, dsahern, linux-kernel, Feng Tang
This patch fix a compile warning taken as error:
CC util/map.o
cc1: warnings being treated as errors
util/map.c: In function ‘map__fprintf_dsoname’:
util/map.c:240: error: ‘dsoname’ may be used uninitialized in this function
make: *** [util/map.o] Error 1
Signed-off-by: Feng Tang <feng.tang@intel.com>
---
tools/perf/util/map.c | 5 ++---
1 files changed, 2 insertions(+), 3 deletions(-)
diff --git a/tools/perf/util/map.c b/tools/perf/util/map.c
index 7d37159..5f90dda 100644
--- a/tools/perf/util/map.c
+++ b/tools/perf/util/map.c
@@ -237,15 +237,14 @@ size_t map__fprintf(struct map *self, FILE *fp)
size_t map__fprintf_dsoname(struct map *map, FILE *fp)
{
- const char *dsoname;
+ const char *dsoname = "[unknown]";
if (map && map->dso && (map->dso->name || map->dso->long_name)) {
if (symbol_conf.show_kernel_path && map->dso->long_name)
dsoname = map->dso->long_name;
else if (map->dso->name)
dsoname = map->dso->name;
- } else
- dsoname = "[unknown]";
+ }
return fprintf(fp, "%s", dsoname);
}
--
1.7.1
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH 3/3] perf tools: Fix a misuse of for_each_set_bit() in session.c
2012-08-27 7:38 [PATCH 0/3] perf tools: Fixes for some compile errors Feng Tang
2012-08-27 7:38 ` [PATCH 1/3] perf tools: Fix a compiling error in trace-event-perl.c for 32 bits machine Feng Tang
2012-08-27 7:38 ` [PATCH 2/3] Perf tools: Fix a compiling error in util/map.c Feng Tang
@ 2012-08-27 7:38 ` Feng Tang
2012-08-27 7:59 ` Namhyung Kim
2 siblings, 1 reply; 11+ messages in thread
From: Feng Tang @ 2012-08-27 7:38 UTC (permalink / raw)
To: acme; +Cc: mingo, a.p.zijlstra, namhyung, dsahern, linux-kernel, Feng Tang
In regs_dump__printf() it use for_each_set_bit() for bit ops by
casting a (u64 *) to a (unsigned long *), this works for 64 bits
machine, but will fail on 32 bits ones.
Fix it by using the raw bit comparing method.
Signed-off-by: Feng Tang <feng.tang@intel.com>
---
tools/perf/util/session.c | 9 ++++-----
1 files changed, 4 insertions(+), 5 deletions(-)
diff --git a/tools/perf/util/session.c b/tools/perf/util/session.c
index f7bb7ae..afcea6c 100644
--- a/tools/perf/util/session.c
+++ b/tools/perf/util/session.c
@@ -904,11 +904,10 @@ static void regs_dump__printf(u64 mask, u64 *regs)
{
unsigned rid, i = 0;
- for_each_set_bit(rid, (unsigned long *) &mask, sizeof(mask) * 8) {
- u64 val = regs[i++];
-
- printf(".... %-5s 0x%" PRIx64 "\n",
- perf_reg_name(rid), val);
+ for (rid = 0; rid < 64; rid++) {
+ if (mask & (1 << rid))
+ printf(".... %-5s 0x%" PRIx64 "\n",
+ perf_reg_name(rid), regs[i++]);
}
}
--
1.7.1
^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [PATCH 3/3] perf tools: Fix a misuse of for_each_set_bit() in session.c
2012-08-27 7:38 ` [PATCH 3/3] perf tools: Fix a misuse of for_each_set_bit() in session.c Feng Tang
@ 2012-08-27 7:59 ` Namhyung Kim
2012-08-27 8:18 ` Feng Tang
0 siblings, 1 reply; 11+ messages in thread
From: Namhyung Kim @ 2012-08-27 7:59 UTC (permalink / raw)
To: Feng Tang; +Cc: acme, mingo, a.p.zijlstra, dsahern, linux-kernel
Hi,
On Mon, 27 Aug 2012 15:38:27 +0800, Feng Tang wrote:
> In regs_dump__printf() it use for_each_set_bit() for bit ops by
> casting a (u64 *) to a (unsigned long *), this works for 64 bits
> machine, but will fail on 32 bits ones.
>
> Fix it by using the raw bit comparing method.
Did it really cause a build failure or a program error? If not, it
looks better to keep using for_each_set_bit() interface. How about
casting the @mask to (void *) ?
Thanks,
Namhyung
>
> Signed-off-by: Feng Tang <feng.tang@intel.com>
> ---
> tools/perf/util/session.c | 9 ++++-----
> 1 files changed, 4 insertions(+), 5 deletions(-)
>
> diff --git a/tools/perf/util/session.c b/tools/perf/util/session.c
> index f7bb7ae..afcea6c 100644
> --- a/tools/perf/util/session.c
> +++ b/tools/perf/util/session.c
> @@ -904,11 +904,10 @@ static void regs_dump__printf(u64 mask, u64 *regs)
> {
> unsigned rid, i = 0;
>
> - for_each_set_bit(rid, (unsigned long *) &mask, sizeof(mask) * 8) {
> - u64 val = regs[i++];
> -
> - printf(".... %-5s 0x%" PRIx64 "\n",
> - perf_reg_name(rid), val);
> + for (rid = 0; rid < 64; rid++) {
> + if (mask & (1 << rid))
> + printf(".... %-5s 0x%" PRIx64 "\n",
> + perf_reg_name(rid), regs[i++]);
> }
> }
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 3/3] perf tools: Fix a misuse of for_each_set_bit() in session.c
2012-08-27 7:59 ` Namhyung Kim
@ 2012-08-27 8:18 ` Feng Tang
2012-12-18 17:39 ` Akemi Yagi
0 siblings, 1 reply; 11+ messages in thread
From: Feng Tang @ 2012-08-27 8:18 UTC (permalink / raw)
To: Namhyung Kim; +Cc: acme, mingo, a.p.zijlstra, dsahern, linux-kernel
Hi,
On Mon, 27 Aug 2012 16:59:07 +0900
Namhyung Kim <namhyung@kernel.org> wrote:
> Hi,
>
> On Mon, 27 Aug 2012 15:38:27 +0800, Feng Tang wrote:
> > In regs_dump__printf() it use for_each_set_bit() for bit ops by
> > casting a (u64 *) to a (unsigned long *), this works for 64 bits
> > machine, but will fail on 32 bits ones.
> >
> > Fix it by using the raw bit comparing method.
>
> Did it really cause a build failure or a program error? If not, it
> looks better to keep using for_each_set_bit() interface. How about
> casting the @mask to (void *) ?
It's a compile error:
cc1: warnings being treated as errors
util/session.c: In function ‘perf_session_deliver_event’:
util/include/linux/bitops.h:104: error: dereferencing pointer ‘p’ does break strict-aliasing rules
util/include/linux/bitops.h:96: error: dereferencing pointer ‘p’ does break strict-aliasing rules
util/session.c:907: note: initialized from here
util/include/linux/bitops.h:96: note: initialized from here
make: *** [util/session.o] Error 1
make: *** Waiting for unfinished jobs....
Casting the @mask to (void *) still sees the same error
Thanks,
Feng
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 1/3] perf tools: Fix a compiling error in trace-event-perl.c for 32 bits machine
2012-08-27 7:38 ` [PATCH 1/3] perf tools: Fix a compiling error in trace-event-perl.c for 32 bits machine Feng Tang
@ 2012-08-27 15:33 ` Arnaldo Carvalho de Melo
2012-08-28 2:17 ` [PATCH v2 " Feng Tang
0 siblings, 1 reply; 11+ messages in thread
From: Arnaldo Carvalho de Melo @ 2012-08-27 15:33 UTC (permalink / raw)
To: Feng Tang; +Cc: mingo, a.p.zijlstra, namhyung, dsahern, linux-kernel
Em Mon, Aug 27, 2012 at 03:38:25PM +0800, Feng Tang escreveu:
> On my x86_32 mahcine, there is a compile error:
>
> CC util/scripting-engines/trace-event-perl.o
> cc1: warnings being treated as errors
> util/scripting-engines/trace-event-perl.c: In function ‘perl_process_tracepoint’:
> util/scripting-engines/trace-event-perl.c:285: error: format ‘%d’ expects type ‘int’, but argument 2 has type ‘__u64’
> make: *** [util/scripting-engines/trace-event-perl.o] Error 1
>
> Fix it by using the "%lld" for __u64.
>
> Signed-off-by: Feng Tang <feng.tang@intel.com>
> ---
> .../perf/util/scripting-engines/trace-event-perl.c | 2 +-
> 1 files changed, 1 insertions(+), 1 deletions(-)
>
> diff --git a/tools/perf/util/scripting-engines/trace-event-perl.c b/tools/perf/util/scripting-engines/trace-event-perl.c
> index d280010..1cde6aa 100644
> --- a/tools/perf/util/scripting-engines/trace-event-perl.c
> +++ b/tools/perf/util/scripting-engines/trace-event-perl.c
> @@ -282,7 +282,7 @@ static void perl_process_tracepoint(union perf_event *perf_event __unused,
>
> event = find_cache_event(evsel);
> if (!event)
> - die("ug! no event found for type %d", evsel->attr.config);
> + die("ug! no event found for type %lld", evsel->attr.config);
Please use PRIu64 instead, like in:
grep PRIu64 tools/perf/*/*.c
> pid = raw_field_value(event, "common_pid", data);
>
> --
> 1.7.1
^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH v2 1/3] perf tools: Fix a compiling error in trace-event-perl.c for 32 bits machine
2012-08-27 15:33 ` Arnaldo Carvalho de Melo
@ 2012-08-28 2:17 ` Feng Tang
2012-09-27 4:22 ` [tip:perf/core] " tip-bot for Feng Tang
0 siblings, 1 reply; 11+ messages in thread
From: Feng Tang @ 2012-08-28 2:17 UTC (permalink / raw)
To: Arnaldo Carvalho de Melo
Cc: mingo, a.p.zijlstra, namhyung, dsahern, linux-kernel
>From 8e2fe258906fc83869be10a1b4a40ef9acc4a2a6 Mon Sep 17 00:00:00 2001
From: Feng Tang <feng.tang@intel.com>
Date: Mon, 27 Aug 2012 14:01:33 +0800
Subject: [PATCH 1/3] perf tools: Fix a compiling error in trace-event-perl.c for 32 bits machine
On my x86_32 mahcine, there is a compile error:
CC util/scripting-engines/trace-event-perl.o
cc1: warnings being treated as errors
util/scripting-engines/trace-event-perl.c: In function ‘perl_process_tracepoint’:
util/scripting-engines/trace-event-perl.c:285: error: format ‘%d’ expects type ‘int’, but argument 2 has type ‘__u64’
make: *** [util/scripting-engines/trace-event-perl.o] Error 1
Fix it by using the "%PRIu64" for __u64.
v2: use PRIu64 as suggested by Arnaldo.
Signed-off-by: Feng Tang <feng.tang@intel.com>
---
.../perf/util/scripting-engines/trace-event-perl.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/tools/perf/util/scripting-engines/trace-event-perl.c b/tools/perf/util/scripting-engines/trace-event-perl.c
index d280010..09db03f 100644
--- a/tools/perf/util/scripting-engines/trace-event-perl.c
+++ b/tools/perf/util/scripting-engines/trace-event-perl.c
@@ -282,7 +282,7 @@ static void perl_process_tracepoint(union perf_event *perf_event __unused,
event = find_cache_event(evsel);
if (!event)
- die("ug! no event found for type %d", evsel->attr.config);
+ die("ug! no event found for type %" PRIu64, evsel->attr.config);
pid = raw_field_value(event, "common_pid", data);
--
1.7.1
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [tip:perf/core] perf tools: Fix a compiling error in trace-event-perl.c for 32 bits machine
2012-08-28 2:17 ` [PATCH v2 " Feng Tang
@ 2012-09-27 4:22 ` tip-bot for Feng Tang
0 siblings, 0 replies; 11+ messages in thread
From: tip-bot for Feng Tang @ 2012-09-27 4:22 UTC (permalink / raw)
To: linux-tip-commits
Cc: acme, linux-kernel, hpa, mingo, a.p.zijlstra, namhyung, dsahern,
tglx, feng.tang
Commit-ID: b1ab1bd1921536c2a97adb888effeff4370a3246
Gitweb: http://git.kernel.org/tip/b1ab1bd1921536c2a97adb888effeff4370a3246
Author: Feng Tang <feng.tang@intel.com>
AuthorDate: Thu, 20 Sep 2012 08:30:21 -0300
Committer: Arnaldo Carvalho de Melo <acme@redhat.com>
CommitDate: Thu, 20 Sep 2012 08:30:21 -0300
perf tools: Fix a compiling error in trace-event-perl.c for 32 bits machine
On my x86_32 mahcine, there is a compile error:
CC util/scripting-engines/trace-event-perl.o
cc1: warnings being treated as errors
util/scripting-engines/trace-event-perl.c: In function
perl_process_tracepoint:
util/scripting-engines/trace-event-perl.c:285: error: format
expects type 'int', but argument 2 has type '__u64'
make: *** [util/scripting-engines/trace-event-perl.o] Error 1
Fix it by using the "%PRIu64" for __u64.
v2: use PRIu64 as suggested by Arnaldo.
Signed-off-by: Feng Tang <feng.tang@intel.com>
Cc: David Ahern <dsahern@gmail.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Link: http://lkml.kernel.org/r/20120828101730.6b2fd97e@feng-i7
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
.../perf/util/scripting-engines/trace-event-perl.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/tools/perf/util/scripting-engines/trace-event-perl.c b/tools/perf/util/scripting-engines/trace-event-perl.c
index ffde3e4..f80605e 100644
--- a/tools/perf/util/scripting-engines/trace-event-perl.c
+++ b/tools/perf/util/scripting-engines/trace-event-perl.c
@@ -282,7 +282,7 @@ static void perl_process_tracepoint(union perf_event *perf_event __maybe_unused,
event = find_cache_event(evsel);
if (!event)
- die("ug! no event found for type %d", evsel->attr.config);
+ die("ug! no event found for type %" PRIu64, evsel->attr.config);
pid = raw_field_value(event, "common_pid", data);
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [tip:perf/core] perf tools: Fix a compiling error in util/map.c
2012-08-27 7:38 ` [PATCH 2/3] Perf tools: Fix a compiling error in util/map.c Feng Tang
@ 2012-09-27 4:23 ` tip-bot for Feng Tang
0 siblings, 0 replies; 11+ messages in thread
From: tip-bot for Feng Tang @ 2012-09-27 4:23 UTC (permalink / raw)
To: linux-tip-commits
Cc: acme, linux-kernel, hpa, mingo, a.p.zijlstra, namhyung, dsahern,
tglx, feng.tang, mingo
Commit-ID: 8f28f19a87cb48d13570ba774a3e85776eb36bb4
Gitweb: http://git.kernel.org/tip/8f28f19a87cb48d13570ba774a3e85776eb36bb4
Author: Feng Tang <feng.tang@intel.com>
AuthorDate: Mon, 27 Aug 2012 15:38:26 +0800
Committer: Arnaldo Carvalho de Melo <acme@redhat.com>
CommitDate: Thu, 20 Sep 2012 08:36:34 -0300
perf tools: Fix a compiling error in util/map.c
This patch fix a compile warning taken as error:
CC util/map.o
cc1: warnings being treated as errors
util/map.c: In function ‘map__fprintf_dsoname’:
util/map.c:240: error: ‘dsoname’ may be used uninitialized in this function
make: *** [util/map.o] Error 1
Signed-off-by: Feng Tang <feng.tang@intel.com>
Cc: David Ahern <dsahern@gmail.com>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Link: http://lkml.kernel.org/r/1346053107-11946-3-git-send-email-feng.tang@intel.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/util/map.c | 5 ++---
1 files changed, 2 insertions(+), 3 deletions(-)
diff --git a/tools/perf/util/map.c b/tools/perf/util/map.c
index b442ee4..ead5316 100644
--- a/tools/perf/util/map.c
+++ b/tools/perf/util/map.c
@@ -243,15 +243,14 @@ size_t map__fprintf(struct map *self, FILE *fp)
size_t map__fprintf_dsoname(struct map *map, FILE *fp)
{
- const char *dsoname;
+ const char *dsoname = "[unknown]";
if (map && map->dso && (map->dso->name || map->dso->long_name)) {
if (symbol_conf.show_kernel_path && map->dso->long_name)
dsoname = map->dso->long_name;
else if (map->dso->name)
dsoname = map->dso->name;
- } else
- dsoname = "[unknown]";
+ }
return fprintf(fp, "%s", dsoname);
}
^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [PATCH 3/3] perf tools: Fix a misuse of for_each_set_bit() in session.c
2012-08-27 8:18 ` Feng Tang
@ 2012-12-18 17:39 ` Akemi Yagi
0 siblings, 0 replies; 11+ messages in thread
From: Akemi Yagi @ 2012-12-18 17:39 UTC (permalink / raw)
To: linux-kernel
On Mon, 27 Aug 2012 16:18:15 +0800, Feng Tang wrote:
> It's a compile error:
>
> cc1: warnings being treated as errors util/session.c: In function
> ‘perf_session_deliver_event’: util/include/linux/bitops.h:104: error:
> dereferencing pointer ‘p’ does break strict-aliasing rules
> util/include/linux/bitops.h:96: error: dereferencing pointer ‘p’ does
> break strict-aliasing rules util/session.c:907: note: initialized from
> here util/include/linux/bitops.h:96: note: initialized from here make:
> *** [util/session.o] Error 1
> make: *** Waiting for unfinished jobs....
>
> Casting the @mask to (void *) still sees the same error
>
> Thanks,
> Feng
We (ELRepo) are seeing the same error while building kernel 3.7 for RHEL
6.3 on a 32-bit system. The perf package would build fine if we run
rpmbuild with the 'i686' target specified on a 64-bit system.
http://elrepo.org/bugs/view.php?id=335
Akemi
^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2012-12-18 17:39 UTC | newest]
Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-08-27 7:38 [PATCH 0/3] perf tools: Fixes for some compile errors Feng Tang
2012-08-27 7:38 ` [PATCH 1/3] perf tools: Fix a compiling error in trace-event-perl.c for 32 bits machine Feng Tang
2012-08-27 15:33 ` Arnaldo Carvalho de Melo
2012-08-28 2:17 ` [PATCH v2 " Feng Tang
2012-09-27 4:22 ` [tip:perf/core] " tip-bot for Feng Tang
2012-08-27 7:38 ` [PATCH 2/3] Perf tools: Fix a compiling error in util/map.c Feng Tang
2012-09-27 4:23 ` [tip:perf/core] perf " tip-bot for Feng Tang
2012-08-27 7:38 ` [PATCH 3/3] perf tools: Fix a misuse of for_each_set_bit() in session.c Feng Tang
2012-08-27 7:59 ` Namhyung Kim
2012-08-27 8:18 ` Feng Tang
2012-12-18 17:39 ` Akemi Yagi
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).