public inbox for archer-commits@sourceware.org
help / color / mirror / Atom feed
* [SCM] archer-jankratochvil-ifunc: Revert "Remove the OSABI stub part."
@ 2010-02-26 23:05 jkratoch
0 siblings, 0 replies; only message in thread
From: jkratoch @ 2010-02-26 23:05 UTC (permalink / raw)
To: archer-commits
The branch, archer-jankratochvil-ifunc has been updated
via 86e9f958459bc5ffcb273acfbbf0994322893004 (commit)
from ce806793aa438b4c32c03081d77647e0289f22d3 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email.
- Log -----------------------------------------------------------------
commit 86e9f958459bc5ffcb273acfbbf0994322893004
Author: Jan Kratochvil <jkratoch@host1.dyn.jankratochvil.net>
Date: Sat Feb 27 00:05:23 2010 +0100
Revert "Remove the OSABI stub part."
This reverts commit 39737dfaea78edba89af8fc9fc3cb89c4fe56eba.
-----------------------------------------------------------------------
Summary of changes:
gdb/alpha-linux-tdep.c | 4 ++++
gdb/amd64-linux-tdep.c | 3 +++
gdb/arm-linux-tdep.c | 3 +++
gdb/configure.tgt | 24 ++++++++++++++----------
gdb/frv-linux-tdep.c | 26 +++++++++++++++++++++++++-
gdb/frv-tdep.c | 5 ++++-
gdb/frv-tdep.h | 3 +++
gdb/hppa-linux-tdep.c | 26 +++++++++++++++++++++++++-
gdb/hppa-tdep.c | 6 ++++--
gdb/hppa-tdep.h | 4 ++++
gdb/i386-linux-tdep.c | 3 +++
gdb/ia64-linux-tdep.c | 4 ++++
gdb/m32r-linux-tdep.c | 4 ++++
gdb/microblaze-linux-tdep.c | 4 ++++
gdb/mips-linux-tdep.c | 4 ++++
gdb/mn10300-linux-tdep.c | 4 ++++
gdb/ppc-linux-tdep.c | 36 ++++++++++++++++++++++++++++--------
gdb/sh-linux-tdep.c | 4 ++++
gdb/sparc-linux-tdep.c | 4 ++++
gdb/sparc64-linux-tdep.c | 4 ++++
gdb/xtensa-linux-tdep.c | 4 ++++
21 files changed, 156 insertions(+), 23 deletions(-)
First 500 lines of diff:
diff --git a/gdb/alpha-linux-tdep.c b/gdb/alpha-linux-tdep.c
index 3c71f2f..bbfe5a1 100644
--- a/gdb/alpha-linux-tdep.c
+++ b/gdb/alpha-linux-tdep.c
@@ -26,6 +26,7 @@
#include "symtab.h"
#include "regset.h"
#include "regcache.h"
+#include "linux-tdep.h"
#include "alpha-tdep.h"
@@ -236,6 +237,9 @@ alpha_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
set_gdbarch_regset_from_core_section
(gdbarch, alpha_linux_regset_from_core_section);
+
+ set_gdbarch_convert_from_func_ptr_addr (gdbarch,
+ linux_convert_from_func_ptr_addr);
}
/* Provide a prototype to silence -Wmissing-prototypes. */
diff --git a/gdb/amd64-linux-tdep.c b/gdb/amd64-linux-tdep.c
index c28eef7..02c11e1 100644
--- a/gdb/amd64-linux-tdep.c
+++ b/gdb/amd64-linux-tdep.c
@@ -1481,6 +1481,9 @@ amd64_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
amd64_linux_record_tdep.arg6 = AMD64_R9_REGNUM;
tdep->i386_syscall_record = amd64_linux_syscall_record;
+
+ set_gdbarch_convert_from_func_ptr_addr (gdbarch,
+ linux_convert_from_func_ptr_addr);
}
\f
diff --git a/gdb/arm-linux-tdep.c b/gdb/arm-linux-tdep.c
index af409f6..406c066 100644
--- a/gdb/arm-linux-tdep.c
+++ b/gdb/arm-linux-tdep.c
@@ -918,6 +918,9 @@ arm_linux_init_abi (struct gdbarch_info info,
set_gdbarch_displaced_step_free_closure (gdbarch,
simple_displaced_step_free_closure);
set_gdbarch_displaced_step_location (gdbarch, displaced_step_at_entry_point);
+
+ set_gdbarch_convert_from_func_ptr_addr (gdbarch,
+ linux_convert_from_func_ptr_addr);
}
/* Provide a prototype to silence -Wmissing-prototypes. */
diff --git a/gdb/configure.tgt b/gdb/configure.tgt
index 62e6683..2b9bb2f 100644
--- a/gdb/configure.tgt
+++ b/gdb/configure.tgt
@@ -40,7 +40,7 @@ alpha*-*-osf*)
alpha*-*-linux*)
# Target: Little-endian Alpha running Linux
gdb_target_obs="alpha-tdep.o alpha-mdebug-tdep.o alpha-linux-tdep.o \
- solib.o solib-svr4.o"
+ solib.o solib-svr4.o linux-tdep.o"
;;
alpha*-*-freebsd* | alpha*-*-kfreebsd*-gnu)
# Target: FreeBSD/alpha
@@ -67,7 +67,7 @@ alpha*-*-*)
am33_2.0*-*-linux*)
# Target: Matsushita mn10300 (AM33) running Linux
gdb_target_obs="mn10300-tdep.o mn10300-linux-tdep.o corelow.o \
- solib.o solib-svr4.o"
+ solib.o solib-svr4.o linux-tdep.o"
;;
arm*-wince-pe | arm*-*-mingw32ce*)
@@ -233,7 +233,7 @@ i[34567]86-*-*)
ia64-*-linux*)
# Target: Intel IA-64 running GNU/Linux
- gdb_target_obs="ia64-tdep.o ia64-linux-tdep.o \
+ gdb_target_obs="ia64-tdep.o ia64-linux-tdep.o linux-tdep.o \
solib.o solib-svr4.o symfile-mem.o"
build_gdbserver=yes
;;
@@ -263,7 +263,8 @@ m32c-*-*)
m32r*-*-linux*)
# Target: Renesas M32R running GNU/Linux
gdb_target_obs="m32r-tdep.o m32r-linux-tdep.o remote-m32r-sdi.o \
- glibc-tdep.o solib.o solib-svr4.o symfile-mem.o"
+ glibc-tdep.o solib.o solib-svr4.o symfile-mem.o \
+ linux-tdep.o"
gdb_sim=../sim/m32r/libsim.a
build_gdbserver=yes
;;
@@ -317,7 +318,7 @@ microblaze*-linux-*)
# Target: Xilinx MicroBlaze running Linux
gdb_target_obs="microblaze-tdep.o microblaze-linux-tdep.o microblaze-rom.o \
monitor.o dsrec.o solib.o solib-svr4.o corelow.o \
- symfile-mem.o"
+ symfile-mem.o linux-tdep.o"
gdb_sim=../sim/microblaze/libsim.a
;;
microblaze*-xilinx-*)
@@ -337,7 +338,8 @@ mips*-sgi-irix6*)
mips*-*-linux*)
# Target: Linux/MIPS
gdb_target_obs="mips-tdep.o mips-linux-tdep.o glibc-tdep.o \
- corelow.o solib.o solib-svr4.o symfile-mem.o"
+ corelow.o solib.o solib-svr4.o symfile-mem.o \
+ linux-tdep.o"
gdb_sim=../sim/mips/libsim.a
build_gdbserver=yes
;;
@@ -427,7 +429,7 @@ sh*-*-linux*)
# Target: GNU/Linux Super-H
gdb_target_obs="sh-tdep.o sh64-tdep.o sh-linux-tdep.o monitor.o \
dsrec.o solib.o solib-svr4.o symfile-mem.o \
- glibc-tdep.o corelow.o"
+ glibc-tdep.o corelow.o linux-tdep.o"
gdb_sim=../sim/sh/libsim.a
build_gdbserver=yes
;;
@@ -455,7 +457,8 @@ sh*)
sparc-*-linux*)
# Target: GNU/Linux SPARC
gdb_target_obs="sparc-tdep.o sparc-sol2-tdep.o sol2-tdep.o \
- sparc-linux-tdep.o solib.o solib-svr4.o symfile-mem.o"
+ sparc-linux-tdep.o solib.o solib-svr4.o symfile-mem.o \
+ linux-tdep.o"
if test "x$enable_64_bit_bfd" = "xyes"; then
# Target: GNU/Linux UltraSPARC
gdb_target_obs="sparc64-tdep.o sparc64-sol2-tdep.o \
@@ -466,7 +469,7 @@ sparc64-*-linux*)
# Target: GNU/Linux UltraSPARC
gdb_target_obs="sparc64-tdep.o sparc64-sol2-tdep.o sol2-tdep.o \
sparc64-linux-tdep.o sparc-tdep.o sparc-sol2-tdep.o \
- sparc-linux-tdep.o solib.o solib-svr4.o"
+ sparc-linux-tdep.o solib.o solib-svr4.o linux-tdep.o"
build_gdbserver=yes
;;
sparc*-*-freebsd* | sparc*-*-kfreebsd*-gnu)
@@ -601,7 +604,8 @@ x86_64-*-openbsd*)
xtensa*-*-linux*) gdb_target=linux
# Target: GNU/Linux Xtensa
gdb_target_obs="xtensa-tdep.o xtensa-config.o xtensa-linux-tdep.o \
- solib.o solib-svr4.o corelow.o symfile-mem.o"
+ solib.o solib-svr4.o corelow.o symfile-mem.o \
+ linux-tdep.o"
build_gdbserver=yes
;;
xtensa*)
diff --git a/gdb/frv-linux-tdep.c b/gdb/frv-linux-tdep.c
index c051a4d..f386dfd 100644
--- a/gdb/frv-linux-tdep.c
+++ b/gdb/frv-linux-tdep.c
@@ -32,6 +32,7 @@
#include "frame-unwind.h"
#include "regset.h"
#include "gdb_string.h"
+#include "linux-tdep.h"
/* Define the size (in bytes) of an FR-V instruction. */
static const int frv_instr_size = 4;
@@ -486,7 +487,23 @@ frv_linux_regset_from_core_section (struct gdbarch *gdbarch,
return NULL;
}
-\f
+/* Resolve both gnu-ifunc function addresses and function descriptors. */
+
+static CORE_ADDR
+frv_linux_convert_from_func_ptr_addr (struct gdbarch *gdbarch,
+ CORE_ADDR addr,
+ struct target_ops *targ)
+{
+ CORE_ADDR pc = frv_convert_from_func_ptr_addr (gdbarch, addr, targ);
+ CORE_ADDR resolved_addr;
+
+ resolved_addr = linux_convert_from_func_and_ptr (gdbarch, addr, pc);
+ if (resolved_addr != addr)
+ pc = frv_convert_from_func_ptr_addr (gdbarch, resolved_addr, targ);
+
+ return pc;
+}
+
static void
frv_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
{
@@ -494,6 +511,13 @@ frv_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
frame_unwind_append_unwinder (gdbarch, &frv_linux_sigtramp_frame_unwind);
set_gdbarch_regset_from_core_section (gdbarch,
frv_linux_regset_from_core_section);
+
+ if (frv_abi (gdbarch) == FRV_ABI_FDPIC)
+ set_gdbarch_convert_from_func_ptr_addr (gdbarch,
+ frv_linux_convert_from_func_ptr_addr);
+ else
+ set_gdbarch_convert_from_func_ptr_addr (gdbarch,
+ linux_convert_from_func_ptr_addr);
}
static enum gdb_osabi
diff --git a/gdb/frv-tdep.c b/gdb/frv-tdep.c
index a38ec8e..392108a 100644
--- a/gdb/frv-tdep.c
+++ b/gdb/frv-tdep.c
@@ -1169,7 +1169,10 @@ find_func_descr (struct gdbarch *gdbarch, CORE_ADDR entry_point)
return descr;
}
-static CORE_ADDR
+/* Resolve function descriptors. Return ADDR if no function descriptor was
+ found. */
+
+CORE_ADDR
frv_convert_from_func_ptr_addr (struct gdbarch *gdbarch, CORE_ADDR addr,
struct target_ops *targ)
{
diff --git a/gdb/frv-tdep.h b/gdb/frv-tdep.h
index 25cc9c4..95d5fe5 100644
--- a/gdb/frv-tdep.h
+++ b/gdb/frv-tdep.h
@@ -118,3 +118,6 @@ CORE_ADDR frv_fetch_objfile_link_map (struct objfile *objfile);
struct target_so_ops;
extern struct target_so_ops frv_so_ops;
+CORE_ADDR frv_convert_from_func_ptr_addr (struct gdbarch *gdbarch,
+ CORE_ADDR addr,
+ struct target_ops *targ);
diff --git a/gdb/hppa-linux-tdep.c b/gdb/hppa-linux-tdep.c
index ebfc2f5..66f925d 100644
--- a/gdb/hppa-linux-tdep.c
+++ b/gdb/hppa-linux-tdep.c
@@ -32,6 +32,7 @@
#include "regset.h"
#include "regcache.h"
#include "hppa-tdep.h"
+#include "linux-tdep.h"
#include "elf/common.h"
@@ -513,7 +514,23 @@ hppa_linux_regset_from_core_section (struct gdbarch *gdbarch,
return NULL;
}
-\f
+
+/* Resolve both gnu-ifunc function addresses and function descriptors. */
+
+static CORE_ADDR
+hppa32_linux_convert_from_func_ptr_addr (struct gdbarch *gdbarch,
+ CORE_ADDR addr,
+ struct target_ops *targ)
+{
+ CORE_ADDR pc = hppa32_convert_from_func_ptr_addr (gdbarch, addr, targ);
+ CORE_ADDR resolved_addr;
+
+ resolved_addr = linux_convert_from_func_and_ptr (gdbarch, addr, pc);
+ if (resolved_addr != addr)
+ pc = hppa32_convert_from_func_ptr_addr (gdbarch, resolved_addr, targ);
+
+ return pc;
+}
/* Forward declarations. */
extern initialize_file_ftype _initialize_hppa_linux_tdep;
@@ -555,6 +572,13 @@ hppa_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
/* Enable TLS support. */
set_gdbarch_fetch_tls_load_module_address (gdbarch,
svr4_fetch_objfile_link_map);
+
+ if (tdep->bytes_per_address == 4)
+ set_gdbarch_convert_from_func_ptr_addr (gdbarch,
+ hppa32_linux_convert_from_func_ptr_addr);
+ else
+ set_gdbarch_convert_from_func_ptr_addr (gdbarch,
+ linux_convert_from_func_ptr_addr);
}
void
diff --git a/gdb/hppa-tdep.c b/gdb/hppa-tdep.c
index a0665ef..67e008c 100644
--- a/gdb/hppa-tdep.c
+++ b/gdb/hppa-tdep.c
@@ -1245,9 +1245,11 @@ hppa64_return_value (struct gdbarch *gdbarch, struct type *func_type,
return RETURN_VALUE_REGISTER_CONVENTION;
}
-\f
-static CORE_ADDR
+/* Resolve function descriptors. Return ADDR if no function descriptor was
+ found. */
+
+CORE_ADDR
hppa32_convert_from_func_ptr_addr (struct gdbarch *gdbarch, CORE_ADDR addr,
struct target_ops *targ)
{
diff --git a/gdb/hppa-tdep.h b/gdb/hppa-tdep.h
index e2d8752..c626637 100644
--- a/gdb/hppa-tdep.h
+++ b/gdb/hppa-tdep.h
@@ -246,4 +246,8 @@ extern int hppa_in_solib_call_trampoline (struct gdbarch *gdbarch,
CORE_ADDR pc, char *name);
extern CORE_ADDR hppa_skip_trampoline_code (struct frame_info *, CORE_ADDR pc);
+extern CORE_ADDR hppa32_convert_from_func_ptr_addr (struct gdbarch *gdbarch,
+ CORE_ADDR addr,
+ struct target_ops *targ);
+
#endif /* hppa-tdep.h */
diff --git a/gdb/i386-linux-tdep.c b/gdb/i386-linux-tdep.c
index 5acd229..aec1736 100644
--- a/gdb/i386-linux-tdep.c
+++ b/gdb/i386-linux-tdep.c
@@ -798,6 +798,9 @@ i386_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
i386_linux_get_syscall_number);
set_gdbarch_get_siginfo_type (gdbarch, linux_get_siginfo_type);
+
+ set_gdbarch_convert_from_func_ptr_addr (gdbarch,
+ linux_convert_from_func_ptr_addr);
}
/* Provide a prototype to silence -Wmissing-prototypes. */
diff --git a/gdb/ia64-linux-tdep.c b/gdb/ia64-linux-tdep.c
index b12f282..8ddb24a 100644
--- a/gdb/ia64-linux-tdep.c
+++ b/gdb/ia64-linux-tdep.c
@@ -26,6 +26,7 @@
#include "osabi.h"
#include "solib-svr4.h"
#include "symtab.h"
+#include "linux-tdep.h"
/* The sigtramp code is in a non-readable (executable-only) region
of memory called the ``gate page''. The addresses in question
@@ -139,6 +140,9 @@ ia64_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
/* Enable TLS support. */
set_gdbarch_fetch_tls_load_module_address (gdbarch,
svr4_fetch_objfile_link_map);
+
+ set_gdbarch_convert_from_func_ptr_addr (gdbarch,
+ linux_convert_from_func_ptr_addr);
}
/* Provide a prototype to silence -Wmissing-prototypes. */
diff --git a/gdb/m32r-linux-tdep.c b/gdb/m32r-linux-tdep.c
index 6804609..2cb1bf9 100644
--- a/gdb/m32r-linux-tdep.c
+++ b/gdb/m32r-linux-tdep.c
@@ -30,6 +30,7 @@
#include "gdb_string.h"
#include "glibc-tdep.h"
+#include "linux-tdep.h"
#include "solib-svr4.h"
#include "symtab.h"
@@ -422,6 +423,9 @@ m32r_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
/* Enable TLS support. */
set_gdbarch_fetch_tls_load_module_address (gdbarch,
svr4_fetch_objfile_link_map);
+
+ set_gdbarch_convert_from_func_ptr_addr (gdbarch,
+ linux_convert_from_func_ptr_addr);
}
/* Provide a prototype to silence -Wmissing-prototypes. */
diff --git a/gdb/microblaze-linux-tdep.c b/gdb/microblaze-linux-tdep.c
index a691b62..d679516 100644
--- a/gdb/microblaze-linux-tdep.c
+++ b/gdb/microblaze-linux-tdep.c
@@ -35,6 +35,7 @@
#include "trad-frame.h"
#include "frame-unwind.h"
#include "tramp-frame.h"
+#include "linux-tdep.h"
static int
@@ -133,6 +134,9 @@ microblaze_linux_init_abi (struct gdbarch_info info,
/* Trampolines. */
tramp_frame_prepend_unwinder (gdbarch,
µblaze_linux_sighandler_tramp_frame);
+
+ set_gdbarch_convert_from_func_ptr_addr (gdbarch,
+ linux_convert_from_func_ptr_addr);
}
void
diff --git a/gdb/mips-linux-tdep.c b/gdb/mips-linux-tdep.c
index 6bb4eb6..2b07942 100644
--- a/gdb/mips-linux-tdep.c
+++ b/gdb/mips-linux-tdep.c
@@ -38,6 +38,7 @@
#include "target-descriptions.h"
#include "mips-linux-tdep.h"
#include "glibc-tdep.h"
+#include "linux-tdep.h"
static struct target_so_ops mips_svr4_so_ops;
@@ -1225,6 +1226,9 @@ mips_linux_init_abi (struct gdbarch_info info,
tdesc_numbered_register (feature, tdesc_data, MIPS_RESTART_REGNUM,
"restart");
}
+
+ set_gdbarch_convert_from_func_ptr_addr (gdbarch,
+ linux_convert_from_func_ptr_addr);
}
/* Provide a prototype to silence -Wmissing-prototypes. */
diff --git a/gdb/mn10300-linux-tdep.c b/gdb/mn10300-linux-tdep.c
index d4602a4..7bba707 100644
--- a/gdb/mn10300-linux-tdep.c
+++ b/gdb/mn10300-linux-tdep.c
@@ -32,6 +32,7 @@
#include "frame.h"
#include "trad-frame.h"
#include "tramp-frame.h"
+#include "linux-tdep.h"
#include <stdlib.h>
@@ -718,6 +719,9 @@ am33_linux_init_osabi (struct gdbarch_info gdbinfo, struct gdbarch *gdbarch)
tramp_frame_prepend_unwinder (gdbarch, &am33_linux_sigframe);
tramp_frame_prepend_unwinder (gdbarch, &am33_linux_rt_sigframe);
+
+ set_gdbarch_convert_from_func_ptr_addr (gdbarch,
+ linux_convert_from_func_ptr_addr);
}
/* Provide a prototype to silence -Wmissing-prototypes. */
diff --git a/gdb/ppc-linux-tdep.c b/gdb/ppc-linux-tdep.c
index fae5ab2..f8fe94a 100644
--- a/gdb/ppc-linux-tdep.c
+++ b/gdb/ppc-linux-tdep.c
@@ -48,6 +48,7 @@
#include "arch-utils.h"
#include "spu-tdep.h"
#include "xml-syscall.h"
+#include "linux-tdep.h"
#include "features/rs6000/powerpc-32l.c"
#include "features/rs6000/powerpc-altivec32l.c"
@@ -608,11 +609,7 @@ ppc64_skip_trampoline_code (struct frame_info *frame, CORE_ADDR pc)
return target? target : pc;
}
-
-/* Support for convert_from_func_ptr_addr (ARCH, ADDR, TARG) on PPC64
- GNU/Linux.
-
- Usually a function pointer's representation is simply the address
+/* Usually a function pointer's representation is simply the address
of the function. On GNU/Linux on the PowerPC however, a function
pointer may be a pointer to a function descriptor.
@@ -636,9 +633,8 @@ ppc64_skip_trampoline_code (struct frame_info *frame, CORE_ADDR pc)
random addresses such as occur when there is no symbol table. */
static CORE_ADDR
-ppc64_linux_convert_from_func_ptr_addr (struct gdbarch *gdbarch,
- CORE_ADDR addr,
- struct target_ops *targ)
+convert_from_func_ptr_addr (struct gdbarch *gdbarch, CORE_ADDR addr,
+ struct target_ops *targ)
{
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
struct target_section *s = target_section_by_addr (targ, addr);
@@ -679,6 +675,27 @@ ppc64_linux_convert_from_func_ptr_addr (struct gdbarch *gdbarch,
return addr;
}
+/* Support for convert_from_func_ptr_addr (ARCH, ADDR, TARG) on PPC64
+ GNU/Linux.
+
+ Call convert_from_func_ptr_addr for resolving PPC64 function descriptors but
+ support also gnu-ifunc functions on the GNU/Linux platform. */
+
+static CORE_ADDR
+ppc64_linux_convert_from_func_ptr_addr (struct gdbarch *gdbarch,
+ CORE_ADDR addr,
+ struct target_ops *targ)
+{
+ CORE_ADDR pc = convert_from_func_ptr_addr (gdbarch, addr, targ);
+ CORE_ADDR resolved_addr;
+
+ resolved_addr = linux_convert_from_func_and_ptr (gdbarch, addr, pc);
+ if (resolved_addr != addr)
+ pc = convert_from_func_ptr_addr (gdbarch, resolved_addr, targ);
+
+ return pc;
+}
+
/* Wrappers to handle Linux-only registers. */
static void
@@ -1478,6 +1495,9 @@ ppc_linux_init_abi (struct gdbarch_info info,
if (tdep->wordsize == 4)
hooks/post-receive
--
Repository for Project Archer.
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2010-02-26 23:05 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-02-26 23:05 [SCM] archer-jankratochvil-ifunc: Revert "Remove the OSABI stub part." jkratoch
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 read-only IMAP folder(s) and NNTP newsgroup(s).