devel/powerpc64-xtoolchain-gcc on powerpc64 failed to buildkernel: .ERROR_TARGET='ath_hal_ar5212.kld': ctfmerge.13434.core generated for SIGSEGV
Mark Millard
markmi at dsl-only.net
Sun Oct 8 02:38:49 UTC 2017
My attempt to buildworld buildkernel via devel/powerpc64-xtoolchain-gcc
material via my historical technique failed during buildkernel as
follows.
First: a little context. . .
# uname -apKU
FreeBSD FBSDG5L 12.0-CURRENT FreeBSD 12.0-CURRENT r324071M powerpc powerpc64 1200047 1200047
The buidworld and buildkernel for the above was via
system-clang from head -r324071 as well.
# svnlite info /usr/ports/ | grep "Re[plv]"
Relative URL: ^/head
Repository Root: svn://svn0.us-west.freebsd.org/ports
Repository UUID: 35697150-7ecd-e111-bb59-0022644237b5
Revision: 450478
Last Changed Rev: 450478
# pkg info | egrep -i "(gcc|binutil)"
binutils-2.28,1 GNU binary tools
gcc7-7.2.0_1 GNU Compiler Collection 7
powerpc64-binutils-2.28,1 GNU binutils for powerpc64 cross-development
powerpc64-gcc-6.3.0 Cross GNU Compiler Collection for powerpc64
powerpc64-xtoolchain-gcc-0.2 Pre seeded toolchain to cross build FreeBSD base
[powerpc64 "self hosted cross development" is in
use here. I cause gcc7 to be treated as the
host compiler and powerpc64-gcc to be treated
as the cross compiler.]
[Note that powerpc64-gcc/g++ is passed -v in the
later log file material (via CFLAGS.gcc) so lots
of context details are shown.]
Second: the failure as seen via /var/crash/ . . .
-rw------- 1 root wheel 10002432 Oct 7 09:43:14 2017 ctfmerge.13434.core
instead of directly having a ld failure. And:
# /usr/libexec/gdb /usr/obj/powerpc64vtsc_xtoolchain-gcc/powerpc.powerpc64/usr/src/tmp/usr/bin/ctfmerge /var/crash/ctfmerge.13434.core
. . .
Core was generated by `ctfmerge -L VERSION -g -o ath_hal_ar5212.kld ah_osdep_ar5212.o ar5212_ani.o ar52'.
Program terminated with signal 11, Segmentation fault.
#0 0x000000001009a164 in .memset ()
[New Thread 508f6a00 (LWP 100299/<unknown>)]
[New Thread 508f6500 (LWP 100298/<unknown>)]
[New Thread 508f6000 (LWP 100237/<unknown>)]
(gdb) info threads
* 3 Thread 508f6000 (LWP 100237/<unknown>) 0x000000001009a164 in .memset ()
2 Thread 508f6500 (LWP 100298/<unknown>) 0x00000000100346a0 in .thread_start ()
1 Thread 508f6a00 (LWP 100299/<unknown>) 0x00000000100346a0 in .thread_start ()
(gdb) bt
#0 0x000000001009a164 in .memset ()
#1 0x0000000010076d2c in .__libc_allocate_tls ()
#2 0x0000000010040c58 in ._tcb_ctor ()
#3 0x000000001003fa9c in ._thr_alloc ()
#4 0x0000000010033e30 in ._pthread_create ()
#5 0x0000000010000b6c in .main ()
#6 0x000000001000147c in ._start ()
(gdb) info reg pc
pc 0x1009a164 269066596
(gdb) disass
Dump of assembler code for function .memset:
0x000000001009a0a4 <.memset+0>: cmpldi r5,11
. . .
0x000000001009a138 <.memset+148>: b 0x1009a184 <.memset+224>
0x000000001009a13c <.memset+152>: rlwinm r11,r10,2,29,29
0x000000001009a140 <.memset+156>: clrldi r9,r10,63
0x000000001009a144 <.memset+160>: std r30,-16(r1)
0x000000001009a148 <.memset+164>: addi r30,r6,4
0x000000001009a14c <.memset+168>: subf r0,r11,r7
0x000000001009a150 <.memset+172>: subf r12,r9,r10
0x000000001009a154 <.memset+176>: addi r11,r6,-8
0x000000001009a158 <.memset+180>: add r10,r6,r0
0x000000001009a15c <.memset+184>: addi r12,r12,-2
0x000000001009a160 <.memset+188>: addi r0,r30,8
0x000000001009a164 <.memset+192>: stwu r8,8(r11)
0x000000001009a168 <.memset+196>: stw r8,0(r30)
0x000000001009a16c <.memset+200>: cmpldi r12,0
0x000000001009a170 <.memset+204>: mr r30,r0
0x000000001009a174 <.memset+208>: bne+ 0x1009a15c <.memset+184>
(gdb) info reg r11
r11 0x50908ff8 1351651320
(gdb) x/gx 8+0x50908ff8
0x50909000: Cannot access memory at address 0x50909000
(gdb) x/gx 0x50908ff8
0x50908ff8: 0x0000000000000000
So memset seems to have been told to wonder
off outside the mapped pages.
( /usr/local/bin/gdb gets its own SIGSEGV
during bt so I used /usr/libexec/gdb that
generally works better for the powerpc
families as things are.)
# file /usr/obj/powerpc64vtsc_xtoolchain-gcc/powerpc.powerpc64/usr/src/tmp/usr/bin/ctfmerge
/usr/obj/powerpc64vtsc_xtoolchain-gcc/powerpc.powerpc64/usr/src/tmp/usr/bin/ctfmerge: ELF 64-bit MSB executable, 64-bit PowerPC or cisco 7500, version 1 (FreeBSD), statically linked, for FreeBSD 12.0 (1200047), FreeBSD-style, not stripped
Third: the log file content. . .
--- all_subdir_ath_hal_ar5212 ---
. . .
Building /usr/obj/powerpc64vtsc_xtoolchain-gcc/powerpc.powerpc64/usr/src/sys/GENERIC64vtsc-NODBG/modules/usr/src/sys/modules/ath_hal_ar5212/ath_hal_ar5212.kld
. . .
--- all_subdir_ath_hal_ar5212 ---
--- ath_hal_ar5212.kld ---
Segmentation fault (core dumped)
*** [ath_hal_ar5212.kld] Error code 139
make[4]: stopped in /usr/src/sys/modules/ath_hal_ar5212
.ERROR_TARGET='ath_hal_ar5212.kld'
.ERROR_META_FILE='/usr/obj/powerpc64vtsc_xtoolchain-gcc/powerpc.powerpc64/usr/src/sys/GENERIC64vtsc-NODBG/modules/usr/src/sys/modules/ath_hal_ar5212/ath_hal_ar5212.kld.meta'
.MAKE.LEVEL='4'
MAKEFILE=''
.MAKE.MODE='meta missing-filemon=yes missing-meta=yes silent=yes verbose'
_ERROR_CMD='/usr/local/powerpc64-freebsd/bin/ld -m elf64ppc_fbsd -d -warn-common --build-id=sha1 -r -d -o ath_hal_ar5212.kld ah_osdep_ar5212.o ar5212_ani.o ar5212_attach.o ar5212_beacon.o ar5212_eeprom.o ar5212_gpio.o ar5212_interrupts.o ar5212_keycache.o ar5212_misc.o ar5212_phy.o ar5212_power.o ar5212_recv.o ar5212_reset.o ar5212_rfgain.o ar5212_xmit.o ar5111.o ar5112.o ar2413.o ar2425.o ar5413.o; ctfmerge -L VERSION -g -o ath_hal_ar5212.kld ah_osdep_ar5212.o ar5212_ani.o ar5212_attach.o ar5212_beacon.o ar5212_eeprom.o ar5212_gpio.o ar5212_interrupts.o ar5212_keycache.o ar5212_misc.o ar5212_phy.o ar5212_power.o ar5212_recv.o ar5212_reset.o ar5212_rfgain.o ar5212_xmit.o ar5111.o ar5112.o ar2413.o ar2425.o ar5413.o; :> export_syms; awk -f /usr/src/sys/conf/kmod_syms.awk ath_hal_ar5212.kld export_syms | xargs -J% /usr/local/powerpc64-freebsd/bin/objcopy % ath_hal_ar5212.kld;'
.CURDIR='/usr/src/sys/modules/ath_hal_ar5212'
.MAKE='make'
.OBJDIR='/usr/obj/powerpc64vtsc_xtoolchain-gcc/powerpc.powerpc64/usr/src/sys/GENERIC64vtsc-NODBG/modules/usr/src/sys/modules/ath_hal_ar5212'
.TARGETS='all'
DESTDIR=''
LD_LIBRARY_PATH=''
MACHINE='powerpc'
MACHINE_ARCH='powerpc64'
MAKEOBJDIRPREFIX='/usr/obj/powerpc64vtsc_xtoolchain-gcc/powerpc.powerpc64/usr/src/sys/GENERIC64vtsc-NODBG/modules'
MAKESYSPATH='/usr/src/share/mk'
MAKE_VERSION='20170720'
PATH='/usr/obj/powerpc64vtsc_xtoolchain-gcc/powerpc.powerpc64/usr/src/tmp/legacy/usr/sbin:/usr/obj/powerpc64vtsc_xtoolchain-gcc/powerpc.powerpc64/usr/src/tmp/legacy/usr/bin:/usr/obj/powerpc64vtsc_xtoolchain-gcc/powerpc.powerpc64/usr/src/tmp/legacy/bin:/usr/obj/powerpc64vtsc_xtoolchain-gcc/powerpc.powerpc64/usr/src/tmp/usr/sbin:/usr/obj/powerpc64vtsc_xtoolchain-gcc/powerpc.powerpc64/usr/src/tmp/usr/bin:/sbin:/bin:/usr/sbin:/usr/bin'
SRCTOP='/usr/src'
OBJTOP='/usr/obj/powerpc64vtsc_xtoolchain-gcc/powerpc.powerpc64/usr/src/sys/GENERIC64vtsc-NODBG/modules/usr/src'
.MAKE.MAKEFILES='/usr/src/share/mk/sys.mk /usr/src/share/mk/local.sys.env.mk /usr/src/share/mk/src.sys.env.mk /root/src.configs/src.conf.powerpc64-xtoolchain-gcc.powerpc64-host /usr/src/share/mk/bsd.mkopt.mk /usr/src/share/mk/bsd.suffixes.mk /root/src.configs/make.conf /usr/src/share/mk/local.sys.mk /usr/src/share/mk/src.sys.mk /dev/null /usr/src/sys/modules/ath_hal_ar5212/Makefile /usr/src/share/mk/bsd.kmod.mk /usr/src/sys/conf/kmod.mk /usr/src/share/mk/bsd.init.mk /usr/src/share/mk/bsd.opts.mk /usr/src/share/mk/bsd.cpu.mk /usr/src/share/mk/local.init.mk /usr/src/share/mk/src.init.mk /usr/src/sys/modules/ath_hal_ar5212/../Makefile.inc /usr/src/share/mk/bsd.own.mk /usr/src/share/mk/bsd.compiler.mk /usr/src/share/mk/bsd.linker.mk /usr/src/sys/conf/kern.opts.mk /usr/src/sys/conf/config.mk /usr/src/share/mk/bsd.links.mk /usr/src/share/mk/bsd.dep.mk /usr/src/share/mk/bsd.clang-analyze.mk /usr/src/share/mk/bsd.obj.mk /usr/src/share/mk/bsd.subdir.mk /usr/src/sys/conf/kern.mk'
.PATH='. /usr/src/sys/modules/ath_hal_ar5212 /usr/src/sys/dev/ath /usr/src/sys/dev/ath/ath_hal /usr/src/sys/dev/ath/ /usr/src/sys/dev/ath/ath_hal/ar5212 /usr/obj/powerpc64vtsc_xtoolchain-gcc/powerpc.powerpc64/usr/src/sys/GENERIC64vtsc-NODBG'
1 error
make[4]: stopped in /usr/src/sys/modules/ath_hal_ar5212
.ERROR_TARGET='ath_hal_ar5212.kld'
.ERROR_META_FILE='/usr/obj/powerpc64vtsc_xtoolchain-gcc/powerpc.powerpc64/usr/src/sys/GENERIC64vtsc-NODBG/modules/usr/src/sys/modules/ath_hal_ar5212/ath_hal_ar5212.kld.meta'
.MAKE.LEVEL='4'
MAKEFILE=''
.MAKE.MODE='meta missing-filemon=yes missing-meta=yes silent=yes verbose'
_ERROR_CMD='/usr/local/powerpc64-freebsd/bin/ld -m elf64ppc_fbsd -d -warn-common --build-id=sha1 -r -d -o ath_hal_ar5212.kld ah_osdep_ar5212.o ar5212_ani.o ar5212_attach.o ar5212_beacon.o ar5212_eeprom.o ar5212_gpio.o ar5212_interrupts.o ar5212_keycache.o ar5212_misc.o ar5212_phy.o ar5212_power.o ar5212_recv.o ar5212_reset.o ar5212_rfgain.o ar5212_xmit.o ar5111.o ar5112.o ar2413.o ar2425.o ar5413.o; ctfmerge -L VERSION -g -o ath_hal_ar5212.kld ah_osdep_ar5212.o ar5212_ani.o ar5212_attach.o ar5212_beacon.o ar5212_eeprom.o ar5212_gpio.o ar5212_interrupts.o ar5212_keycache.o ar5212_misc.o ar5212_phy.o ar5212_power.o ar5212_recv.o ar5212_reset.o ar5212_rfgain.o ar5212_xmit.o ar5111.o ar5112.o ar2413.o ar2425.o ar5413.o; :> export_syms; awk -f /usr/src/sys/conf/kmod_syms.awk ath_hal_ar5212.kld export_syms | xargs -J% /usr/local/powerpc64-freebsd/bin/objcopy % ath_hal_ar5212.kld;'
.CURDIR='/usr/src/sys/modules/ath_hal_ar5212'
.MAKE='make'
.OBJDIR='/usr/obj/powerpc64vtsc_xtoolchain-gcc/powerpc.powerpc64/usr/src/sys/GENERIC64vtsc-NODBG/modules/usr/src/sys/modules/ath_hal_ar5212'
.TARGETS='all'
DESTDIR=''
LD_LIBRARY_PATH=''
MACHINE='powerpc'
MACHINE_ARCH='powerpc64'
MAKEOBJDIRPREFIX='/usr/obj/powerpc64vtsc_xtoolchain-gcc/powerpc.powerpc64/usr/src/sys/GENERIC64vtsc-NODBG/modules'
MAKESYSPATH='/usr/src/share/mk'
MAKE_VERSION='20170720'
PATH='/usr/obj/powerpc64vtsc_xtoolchain-gcc/powerpc.powerpc64/usr/src/tmp/legacy/usr/sbin:/usr/obj/powerpc64vtsc_xtoolchain-gcc/powerpc.powerpc64/usr/src/tmp/legacy/usr/bin:/usr/obj/powerpc64vtsc_xtoolchain-gcc/powerpc.powerpc64/usr/src/tmp/legacy/bin:/usr/obj/powerpc64vtsc_xtoolchain-gcc/powerpc.powerpc64/usr/src/tmp/usr/sbin:/usr/obj/powerpc64vtsc_xtoolchain-gcc/powerpc.powerpc64/usr/src/tmp/usr/bin:/sbin:/bin:/usr/sbin:/usr/bin'
SRCTOP='/usr/src'
OBJTOP='/usr/obj/powerpc64vtsc_xtoolchain-gcc/powerpc.powerpc64/usr/src/sys/GENERIC64vtsc-NODBG/modules/usr/src'
.MAKE.MAKEFILES='/usr/src/share/mk/sys.mk /usr/src/share/mk/local.sys.env.mk /usr/src/share/mk/src.sys.env.mk /root/src.configs/src.conf.powerpc64-xtoolchain-gcc.powerpc64-host /usr/src/share/mk/bsd.mkopt.mk /usr/src/share/mk/bsd.suffixes.mk /root/src.configs/make.conf /usr/src/share/mk/local.sys.mk /usr/src/share/mk/src.sys.mk /dev/null /usr/src/sys/modules/ath_hal_ar5212/Makefile /usr/src/share/mk/bsd.kmod.mk /usr/src/sys/conf/kmod.mk /usr/src/share/mk/bsd.init.mk /usr/src/share/mk/bsd.opts.mk /usr/src/share/mk/bsd.cpu.mk /usr/src/share/mk/local.init.mk /usr/src/share/mk/src.init.mk /usr/src/sys/modules/ath_hal_ar5212/../Makefile.inc /usr/src/share/mk/bsd.own.mk /usr/src/share/mk/bsd.compiler.mk /usr/src/share/mk/bsd.linker.mk /usr/src/sys/conf/kern.opts.mk /usr/src/sys/conf/config.mk /usr/src/share/mk/bsd.links.mk /usr/src/share/mk/bsd.dep.mk /usr/src/share/mk/bsd.clang-analyze.mk /usr/src/share/mk/bsd.obj.mk /usr/src/share/mk/bsd.subdir.mk /usr/src/sys/conf/kern.mk'
.PATH='. /usr/src/sys/modules/ath_hal_ar5212 /usr/src/sys/dev/ath /usr/src/sys/dev/ath/ath_hal /usr/src/sys/dev/ath/ /usr/src/sys/dev/ath/ath_hal/ar5212 /usr/obj/powerpc64vtsc_xtoolchain-gcc/powerpc.powerpc64/usr/src/sys/GENERIC64vtsc-NODBG'
*** [all_subdir_ath_hal_ar5212] Error code 2
Finally: other details. . .
# more ~/sys_build_scripts.powerpc64-host/make_powerpc64vtsc_nodebug_incl_clang_xtoolchain-gcc-powerpc64-host.sh
kldload -n filemon && \
script ~/sys_typescripts/typescript_make_powerpc64vtsc_nodebug_incl_clang_xtoolchain-gcc-powerpc64-host-$(date +%Y-%m-%d:%H:%M:%S) \
env __MAKE_CONF="/root/src.configs/make.conf" \
SRCCONF="/dev/null" SRC_ENV_CONF="/root/src.configs/src.conf.powerpc64-xtoolchain-gcc.powerpc64-host" \
WITH_META_MODE=yes \
MAKEOBJDIRPREFIX="/usr/obj/powerpc64vtsc_xtoolchain-gcc/powerpc.powerpc64" \
make $*
Note: Variations of the below have been in use for along time
but it been some time since I've checked if
devel/powerpc64-xtoolchain-gcc
was working. The below is set up to use lang/gcc7 as the host-
compiler/toolchain and devel/powerpc64-xtoolchain-gcc material
as the cross-compiler/toolchain. The src.conf file has history
going back to my using lang/gcc49 as the host-compiler instead,
updated as things have progressed.
# more /root/src.configs/src.conf.powerpc64-xtoolchain-gcc.powerpc64-host
TO_TYPE=powerpc64
TOOLS_TO_TYPE=${TO_TYPE}
FROM_TYPE=${TO_TYPE}
TOOLS_FROM_TYPE=${FROM_TYPE}
VERSION_CONTEXT=12.0
#
KERNCONF=GENERIC64vtsc-NODBG
TARGET=powerpc
.if ${.MAKE.LEVEL} == 0
TARGET_ARCH=${TO_TYPE}
.export TARGET_ARCH
.endif
#
WITHOUT_CROSS_COMPILER=
WITHOUT_SYSTEM_COMPILER=
#
WITH_LIBCPLUSPLUS=
WITHOUT_BINUTILS_BOOTSTRAP=
WITHOUT_ELFTOOLCHAIN_BOOTSTRAP=
WITHOUT_CLANG_BOOTSTRAP=
WITH_CLANG=
WITH_CLANG_IS_CC=
WITH_CLANG_FULL=
WITH_CLANG_EXTRAS=
WITH_LLD=
WITH_LLDB=
#
WITH_BOOT=
# powerpc64 LIB32 builds via gcc 4.9 or later variants that I've tried
# but the LIB32 does not work [crtbeginS code problem(s)]
WITHOUT_LIB32=
#
WITHOUT_GCC_BOOTSTRAP=
WITHOUT_GCC=
WITHOUT_GCC_IS_CC=
WITHOUT_GNUCXX=
#
NO_WERROR=
#
# Avoid db_trace.o getting:
# calling '__builtin_frame_address' with a nonzero argument is unsafe
# as an error? Other such points as well.
WERROR=
MALLOC_PRODUCTION=
#
WITH_REPRODUCIBLE_BUILD=
WITH_DEBUG_FILES=
#
#
# For TO (so-called "cross") stages . . .
# So-called-cross via ${TO_TYPE}-xtoolchain-gcc/${TO_TYPE}-gcc. . .
# TOOLS_TO_TYPE based on ${TO_TYPE}-xtoolchain-gcc related binutils. . .
#
CROSS_TOOLCHAIN=${TO_TYPE}-gcc
X_COMPILER_TYPE=gcc
CROSS_BINUTILS_PREFIX=/usr/local/${TOOLS_TO_TYPE}-freebsd/bin/
.if ${.MAKE.LEVEL} == 0
XCC=/usr/local/bin/${TOOLS_TO_TYPE}-unknown-freebsd${VERSION_CONTEXT}-gcc
XCXX=/usr/local/bin/${TOOLS_TO_TYPE}-unknown-freebsd${VERSION_CONTEXT}-g++
XCPP=/usr/local/bin/${TOOLS_TO_TYPE}-unknown-freebsd${VERSION_CONTEXT}-cpp
.export XCC
.export XCXX
.export XCPP
XAS=/usr/local/${TOOLS_TO_TYPE}-freebsd/bin/as
XAR=/usr/local/${TOOLS_TO_TYPE}-freebsd/bin/ar
XLD=/usr/local/${TOOLS_TO_TYPE}-freebsd/bin/ld
XNM=/usr/local/${TOOLS_TO_TYPE}-freebsd/bin/nm
XOBJCOPY=/usr/local/${TOOLS_TO_TYPE}-freebsd/bin/objcopy
XOBJDUMP=/usr/local/${TOOLS_TO_TYPE}-freebsd/bin/objdump
XRANLIB=/usr/local/${TOOLS_TO_TYPE}-freebsd/bin/ranlib
XSIZE=/usr/local/${TOOLS_TO_TYPE}-freebsd/bin/size
#NO-SUCH: XSTRINGS=/usr/local/${TOOLS_TO_TYPE}-freebsd/bin/strings
XSTRINGS=/usr/local/bin/${TOOLS_TO_TYPE}-freebsd-strings
.export XAS
.export XAR
.export XLD
.export XNM
.export XOBJCOPY
.export XOBJDUMP
.export XRANLIB
.export XSIZE
.export XSTRINGS
.endif
#
#
# For FROM (host) stages . . .
# From gccXY (such as gcc49 but not xtoolchain)
# TOOLS_FROM_TYPE's appropriate binutils. . .
#
.if ${.MAKE.LEVEL} == 0
CC=env C_INCLUDE_PATH=/usr/include /usr/local/bin/gcc7 -L/usr/lib
CXX=env C_INCLUDE_PATH=/usr/include CPLUS_INCLUDE_PATH=/usr/include/c++/v1 /usr/local/bin/g++7 -std=c++11 -nostdinc++ -L/usr/lib
CPP=/usr/local/bin/cpp7
.export CC
.export CXX
.export CPP
AS=/usr/local/${TOOLS_FROM_TYPE}-portbld-freebsd${VERSION_CONTEXT}/bin/as
AR=/usr/local/${TOOLS_FROM_TYPE}-portbld-freebsd${VERSION_CONTEXT}/bin/ar
LD=/usr/local/${TOOLS_FROM_TYPE}-portbld-freebsd${VERSION_CONTEXT}/bin/ld
NM=/usr/local/${TOOLS_FROM_TYPE}-portbld-freebsd${VERSION_CONTEXT}/bin/nm
OBJCOPY=/usr/local/${TOOLS_FROM_TYPE}-portbld-freebsd${VERSION_CONTEXT}/bin/objcopy
OBJDUMP=/usr/local/${TOOLS_FROM_TYPE}-portbld-freebsd${VERSION_CONTEXT}/bin/objdump
RANLIB=/usr/local/${TOOLS_FROM_TYPE}-portbld-freebsd${VERSION_CONTEXT}/bin/ranlib
SIZE=/usr/local/${TOOLS_FROM_TYPE}-portbld-freebsd${VERSION_CONTEXT}/bin/size
#NO-SUCH: STRINGS=/usr/local/${TOOLS_FROM_TYPE}-portbld-freebsd${VERSION_CONTEXT}/bin/strings
STRINGS=/usr/local/bin/strings
.export AS
.export AR
.export LD
.export NM
.export OBJCOPY
.export OBJDUMP
.export RANLIB
.export SIZE
.export STRINGS
.endif
# more ~/src.configs/make.conf
CFLAGS.gcc+= -v
===
Mark Millard
markmi at dsl-only.net
More information about the freebsd-ppc
mailing list