Re: svn commit: r338930 - head/libexec/rtld-elf/powerpc

2018-09-28 Thread Andreas Tobler

On 28.09.18 01:12, Konstantin Belousov wrote:

On Thu, Sep 27, 2018 at 09:37:31PM +0200, Andreas Tobler wrote:

On 27.09.18 20:48, Michael Tuexen wrote:

On 25. Sep 2018, at 21:29, Andreas Tobler  wrote:

Author: andreast
Date: Tue Sep 25 19:29:35 2018
New Revision: 338930
URL: https://svnweb.freebsd.org/changeset/base/338930

Log:
   Bring the 32-bit powerpc (PowerMac) back to live. The commit 338486 reworked
   some TLS bits. This broke operation on the PowerMac. Namely one could not 
login.
   At login the screen/shell was giving back lots of backslashes and the login
   shell dumped core.

   The fix to this issue is to revert the powerpc commit from 338486 and to
   increase the TLS_TCB_SIZE to 16.
   Reverting only did not help, login was possible but userland applications
   aborted with strange messages.

   I tested this patch with world/kernel builds and with port upgrades.
   Additionally a full gcc8 bootstrap was successfully completed.

   Reviewed by: jhibbits@
   Approved by: re (Glen)

Modified:
   head/libexec/rtld-elf/powerpc/rtld_machdep.h

Modified: head/libexec/rtld-elf/powerpc/rtld_machdep.h
==
--- head/libexec/rtld-elf/powerpc/rtld_machdep.hTue Sep 25 18:54:18 
2018(r338929)
+++ head/libexec/rtld-elf/powerpc/rtld_machdep.hTue Sep 25 19:29:35 
2018(r338930)
@@ -69,12 +69,12 @@ void _rtld_powerpc_pltcall(void);

#define TLS_TP_OFFSET   0x7000
#define TLS_DTV_OFFSET  0x8000
-#define TLS_TCB_SIZE   8
+#define TLS_TCB_SIZE   16

#define round(size, align) \
  (((size) + (align) - 1) & ~((align) - 1))
#define calculate_first_tls_offset(size, align) \
-TLS_TCB_SIZE
+round(8, align)
#define calculate_tls_offset(prev_offset, prev_size, size, align) \
  round(prev_offset + prev_size, align)
#define calculate_tls_end(off, size)((off) + (size))


After performing a buildworld/buildkernel and running r338956 on a 32-bit 
powerpc machine (G4 Mac Mini),
the following program:

#include 
#include 
#include 

void *
f(void * arg)
{
return (arg);
}

int
main(void)
{
void *res;
pthread_t tid;
int err;

if ((err = pthread_create(, NULL, f, NULL)) != 0) {
fprintf(stderr, "pthread_create: %s\n", strerror(err));
}
if ((err = pthread_join(tid, )) != 0) {
fprintf(stderr, "pthread_join: %s\n", strerror(err));
}
return (0);
}

is killed:

tuexen@bsd5:~ % ./test
ld-elf.so.1: assert failed: /usr/home/tuexen/head/libexec/rtld-elf/rtld.c:4753
Abort (core dumped)

gdb shows:

tuexen@bsd5:~ % gdb -c test.core test
GNU gdb (GDB) 8.1 [GDB v8.1 for FreeBSD]
Copyright (C) 2018 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later 
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "powerpc-portbld-freebsd12.0".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
.
Find the GDB manual and other documentation resources online at:
.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from test...done.
[New LWP 100112]
Core was generated by `./test'.
Program terminated with signal SIGABRT, Aborted.
#0  0x41829a58 in thr_kill () at thr_kill.S:3
3   RSYSCALL(thr_kill)
(gdb) bt
#0  0x41829a58 in thr_kill () at thr_kill.S:3
#1  0x41829378 in __raise (s=6)
  at /usr/home/tuexen/head/lib/libc/gen/raise.c:52
#2  0x41823b84 in abort () at /usr/home/tuexen/head/lib/libc/stdlib/abort.c:67
#3  0x41813f58 in allocate_tls (objs=0x41843000, oldtcb=,
  tcbsize=8, tcbalign=)
  at /usr/home/tuexen/head/libexec/rtld-elf/rtld.c:4753
#4  0x41813fc0 in _rtld_allocate_tls (oldtls=0x0, tcbsize=8, tcbalign=16)
  at /usr/home/tuexen/head/libexec/rtld-elf/rtld.c:5030
#5  0x41877438 in _tcb_ctor (thread=0x41a8d300, initial=)
  at /usr/home/tuexen/head/lib/libthr/thread/thr_ctrdtr.c:45
#6  0x41876ebc in _thr_alloc (curthread=0x41a8d000)
  at /usr/home/tuexen/head/lib/libthr/thread/thr_list.c:172
#7  0x41867118 in _pthread_create (thread=0xdc10, attr=0x0,
  start_routine=0x180073c , arg=0x0)
  at /usr/home/tuexen/head/lib/libthr/thread/thr_create.c:81
#8  0x01800798 in main ()
(gdb) quit

Any idea what is wrong?


TLS is broken on powerpc ;)

I see the same.

Would you mind reverting my commit and see if it is better/different and
how different?

For me the commit was an improvement, but I agree this is not enough.

I try to analyze what is going on. Any help is appreciated.


The cause is quite clear, sizeof(struct tcb) is 8 on power 32bit, see
lib/libthread/arch/powerpc/include/pthread_md.h.  I do not 

Re: svn commit: r338930 - head/libexec/rtld-elf/powerpc

2018-09-27 Thread Konstantin Belousov
On Thu, Sep 27, 2018 at 09:37:31PM +0200, Andreas Tobler wrote:
> On 27.09.18 20:48, Michael Tuexen wrote:
> >> On 25. Sep 2018, at 21:29, Andreas Tobler  wrote:
> >>
> >> Author: andreast
> >> Date: Tue Sep 25 19:29:35 2018
> >> New Revision: 338930
> >> URL: https://svnweb.freebsd.org/changeset/base/338930
> >>
> >> Log:
> >>   Bring the 32-bit powerpc (PowerMac) back to live. The commit 338486 
> >> reworked
> >>   some TLS bits. This broke operation on the PowerMac. Namely one could 
> >> not login.
> >>   At login the screen/shell was giving back lots of backslashes and the 
> >> login
> >>   shell dumped core.
> >>
> >>   The fix to this issue is to revert the powerpc commit from 338486 and to
> >>   increase the TLS_TCB_SIZE to 16.
> >>   Reverting only did not help, login was possible but userland applications
> >>   aborted with strange messages.
> >>
> >>   I tested this patch with world/kernel builds and with port upgrades.
> >>   Additionally a full gcc8 bootstrap was successfully completed.
> >>
> >>   Reviewed by: jhibbits@
> >>   Approved by: re (Glen)
> >>
> >> Modified:
> >>   head/libexec/rtld-elf/powerpc/rtld_machdep.h
> >>
> >> Modified: head/libexec/rtld-elf/powerpc/rtld_machdep.h
> >> ==
> >> --- head/libexec/rtld-elf/powerpc/rtld_machdep.h   Tue Sep 25 18:54:18 
> >> 2018(r338929)
> >> +++ head/libexec/rtld-elf/powerpc/rtld_machdep.h   Tue Sep 25 19:29:35 
> >> 2018(r338930)
> >> @@ -69,12 +69,12 @@ void _rtld_powerpc_pltcall(void);
> >>
> >> #define TLS_TP_OFFSET  0x7000
> >> #define TLS_DTV_OFFSET 0x8000
> >> -#define TLS_TCB_SIZE  8
> >> +#define TLS_TCB_SIZE  16
> >>
> >> #define round(size, align) \
> >>  (((size) + (align) - 1) & ~((align) - 1))
> >> #define calculate_first_tls_offset(size, align) \
> >> -TLS_TCB_SIZE
> >> +round(8, align)
> >> #define calculate_tls_offset(prev_offset, prev_size, size, align) \
> >>  round(prev_offset + prev_size, align)
> >> #define calculate_tls_end(off, size)((off) + (size))
> >>
> > After performing a buildworld/buildkernel and running r338956 on a 32-bit 
> > powerpc machine (G4 Mac Mini),
> > the following program:
> > 
> > #include 
> > #include 
> > #include 
> > 
> > void *
> > f(void * arg)
> > {
> > return (arg);
> > }
> > 
> > int
> > main(void)
> > {
> > void *res;
> > pthread_t tid;
> > int err;
> > 
> > if ((err = pthread_create(, NULL, f, NULL)) != 0) {
> > fprintf(stderr, "pthread_create: %s\n", strerror(err));
> > }
> > if ((err = pthread_join(tid, )) != 0) {
> > fprintf(stderr, "pthread_join: %s\n", strerror(err));
> > }
> > return (0);
> > }
> > 
> > is killed:
> > 
> > tuexen@bsd5:~ % ./test
> > ld-elf.so.1: assert failed: 
> > /usr/home/tuexen/head/libexec/rtld-elf/rtld.c:4753
> > Abort (core dumped)
> > 
> > gdb shows:
> > 
> > tuexen@bsd5:~ % gdb -c test.core test
> > GNU gdb (GDB) 8.1 [GDB v8.1 for FreeBSD]
> > Copyright (C) 2018 Free Software Foundation, Inc.
> > License GPLv3+: GNU GPL version 3 or later 
> > 
> > This is free software: you are free to change and redistribute it.
> > There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
> > and "show warranty" for details.
> > This GDB was configured as "powerpc-portbld-freebsd12.0".
> > Type "show configuration" for configuration details.
> > For bug reporting instructions, please see:
> > .
> > Find the GDB manual and other documentation resources online at:
> > .
> > For help, type "help".
> > Type "apropos word" to search for commands related to "word"...
> > Reading symbols from test...done.
> > [New LWP 100112]
> > Core was generated by `./test'.
> > Program terminated with signal SIGABRT, Aborted.
> > #0  0x41829a58 in thr_kill () at thr_kill.S:3
> > 3   RSYSCALL(thr_kill)
> > (gdb) bt
> > #0  0x41829a58 in thr_kill () at thr_kill.S:3
> > #1  0x41829378 in __raise (s=6)
> >  at /usr/home/tuexen/head/lib/libc/gen/raise.c:52
> > #2  0x41823b84 in abort () at 
> > /usr/home/tuexen/head/lib/libc/stdlib/abort.c:67
> > #3  0x41813f58 in allocate_tls (objs=0x41843000, oldtcb=,
> >  tcbsize=8, tcbalign=)
> >  at /usr/home/tuexen/head/libexec/rtld-elf/rtld.c:4753
> > #4  0x41813fc0 in _rtld_allocate_tls (oldtls=0x0, tcbsize=8, tcbalign=16)
> >  at /usr/home/tuexen/head/libexec/rtld-elf/rtld.c:5030
> > #5  0x41877438 in _tcb_ctor (thread=0x41a8d300, initial=)
> >  at /usr/home/tuexen/head/lib/libthr/thread/thr_ctrdtr.c:45
> > #6  0x41876ebc in _thr_alloc (curthread=0x41a8d000)
> >  at /usr/home/tuexen/head/lib/libthr/thread/thr_list.c:172
> > #7  0x41867118 in _pthread_create (thread=0xdc10, attr=0x0,
> >  start_routine=0x180073c , arg=0x0)
> >  at /usr/home/tuexen/head/lib/libthr/thread/thr_create.c:81
> > #8  

Re: svn commit: r338930 - head/libexec/rtld-elf/powerpc

2018-09-27 Thread Andreas Tobler

On 27.09.18 20:48, Michael Tuexen wrote:

On 25. Sep 2018, at 21:29, Andreas Tobler  wrote:

Author: andreast
Date: Tue Sep 25 19:29:35 2018
New Revision: 338930
URL: https://svnweb.freebsd.org/changeset/base/338930

Log:
  Bring the 32-bit powerpc (PowerMac) back to live. The commit 338486 reworked
  some TLS bits. This broke operation on the PowerMac. Namely one could not 
login.
  At login the screen/shell was giving back lots of backslashes and the login
  shell dumped core.

  The fix to this issue is to revert the powerpc commit from 338486 and to
  increase the TLS_TCB_SIZE to 16.
  Reverting only did not help, login was possible but userland applications
  aborted with strange messages.

  I tested this patch with world/kernel builds and with port upgrades.
  Additionally a full gcc8 bootstrap was successfully completed.

  Reviewed by: jhibbits@
  Approved by: re (Glen)

Modified:
  head/libexec/rtld-elf/powerpc/rtld_machdep.h

Modified: head/libexec/rtld-elf/powerpc/rtld_machdep.h
==
--- head/libexec/rtld-elf/powerpc/rtld_machdep.hTue Sep 25 18:54:18 
2018(r338929)
+++ head/libexec/rtld-elf/powerpc/rtld_machdep.hTue Sep 25 19:29:35 
2018(r338930)
@@ -69,12 +69,12 @@ void _rtld_powerpc_pltcall(void);

#define TLS_TP_OFFSET   0x7000
#define TLS_DTV_OFFSET  0x8000
-#define TLS_TCB_SIZE   8
+#define TLS_TCB_SIZE   16

#define round(size, align) \
 (((size) + (align) - 1) & ~((align) - 1))
#define calculate_first_tls_offset(size, align) \
-TLS_TCB_SIZE
+round(8, align)
#define calculate_tls_offset(prev_offset, prev_size, size, align) \
 round(prev_offset + prev_size, align)
#define calculate_tls_end(off, size)((off) + (size))


After performing a buildworld/buildkernel and running r338956 on a 32-bit 
powerpc machine (G4 Mac Mini),
the following program:

#include 
#include 
#include 

void *
f(void * arg)
{
return (arg);
}

int
main(void)
{
void *res;
pthread_t tid;
int err;

if ((err = pthread_create(, NULL, f, NULL)) != 0) {
fprintf(stderr, "pthread_create: %s\n", strerror(err));
}
if ((err = pthread_join(tid, )) != 0) {
fprintf(stderr, "pthread_join: %s\n", strerror(err));
}
return (0);
}

is killed:

tuexen@bsd5:~ % ./test
ld-elf.so.1: assert failed: /usr/home/tuexen/head/libexec/rtld-elf/rtld.c:4753
Abort (core dumped)

gdb shows:

tuexen@bsd5:~ % gdb -c test.core test
GNU gdb (GDB) 8.1 [GDB v8.1 for FreeBSD]
Copyright (C) 2018 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later 
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "powerpc-portbld-freebsd12.0".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
.
Find the GDB manual and other documentation resources online at:
.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from test...done.
[New LWP 100112]
Core was generated by `./test'.
Program terminated with signal SIGABRT, Aborted.
#0  0x41829a58 in thr_kill () at thr_kill.S:3
3   RSYSCALL(thr_kill)
(gdb) bt
#0  0x41829a58 in thr_kill () at thr_kill.S:3
#1  0x41829378 in __raise (s=6)
 at /usr/home/tuexen/head/lib/libc/gen/raise.c:52
#2  0x41823b84 in abort () at /usr/home/tuexen/head/lib/libc/stdlib/abort.c:67
#3  0x41813f58 in allocate_tls (objs=0x41843000, oldtcb=,
 tcbsize=8, tcbalign=)
 at /usr/home/tuexen/head/libexec/rtld-elf/rtld.c:4753
#4  0x41813fc0 in _rtld_allocate_tls (oldtls=0x0, tcbsize=8, tcbalign=16)
 at /usr/home/tuexen/head/libexec/rtld-elf/rtld.c:5030
#5  0x41877438 in _tcb_ctor (thread=0x41a8d300, initial=)
 at /usr/home/tuexen/head/lib/libthr/thread/thr_ctrdtr.c:45
#6  0x41876ebc in _thr_alloc (curthread=0x41a8d000)
 at /usr/home/tuexen/head/lib/libthr/thread/thr_list.c:172
#7  0x41867118 in _pthread_create (thread=0xdc10, attr=0x0,
 start_routine=0x180073c , arg=0x0)
 at /usr/home/tuexen/head/lib/libthr/thread/thr_create.c:81
#8  0x01800798 in main ()
(gdb) quit

Any idea what is wrong?


TLS is broken on powerpc ;)

I see the same.

Would you mind reverting my commit and see if it is better/different and 
how different?


For me the commit was an improvement, but I agree this is not enough.

I try to analyze what is going on. Any help is appreciated.

Thanks for the report.
Andreas

___
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"


Re: svn commit: r338930 - head/libexec/rtld-elf/powerpc

2018-09-27 Thread Michael Tuexen
> On 25. Sep 2018, at 21:29, Andreas Tobler  wrote:
> 
> Author: andreast
> Date: Tue Sep 25 19:29:35 2018
> New Revision: 338930
> URL: https://svnweb.freebsd.org/changeset/base/338930
> 
> Log:
>  Bring the 32-bit powerpc (PowerMac) back to live. The commit 338486 reworked
>  some TLS bits. This broke operation on the PowerMac. Namely one could not 
> login.
>  At login the screen/shell was giving back lots of backslashes and the login
>  shell dumped core.
> 
>  The fix to this issue is to revert the powerpc commit from 338486 and to
>  increase the TLS_TCB_SIZE to 16.
>  Reverting only did not help, login was possible but userland applications
>  aborted with strange messages.
> 
>  I tested this patch with world/kernel builds and with port upgrades.
>  Additionally a full gcc8 bootstrap was successfully completed.
> 
>  Reviewed by: jhibbits@
>  Approved by: re (Glen)
> 
> Modified:
>  head/libexec/rtld-elf/powerpc/rtld_machdep.h
> 
> Modified: head/libexec/rtld-elf/powerpc/rtld_machdep.h
> ==
> --- head/libexec/rtld-elf/powerpc/rtld_machdep.h  Tue Sep 25 18:54:18 
> 2018(r338929)
> +++ head/libexec/rtld-elf/powerpc/rtld_machdep.h  Tue Sep 25 19:29:35 
> 2018(r338930)
> @@ -69,12 +69,12 @@ void _rtld_powerpc_pltcall(void);
> 
> #define TLS_TP_OFFSET 0x7000
> #define TLS_DTV_OFFSET0x8000
> -#define TLS_TCB_SIZE 8
> +#define TLS_TCB_SIZE 16
> 
> #define round(size, align) \
> (((size) + (align) - 1) & ~((align) - 1))
> #define calculate_first_tls_offset(size, align) \
> -TLS_TCB_SIZE
> +round(8, align)
> #define calculate_tls_offset(prev_offset, prev_size, size, align) \
> round(prev_offset + prev_size, align)
> #define calculate_tls_end(off, size)((off) + (size))
> 
After performing a buildworld/buildkernel and running r338956 on a 32-bit 
powerpc machine (G4 Mac Mini),
the following program:

#include 
#include 
#include 

void *
f(void * arg)
{
return (arg);
}

int
main(void)
{
void *res;
pthread_t tid;
int err;

if ((err = pthread_create(, NULL, f, NULL)) != 0) {
fprintf(stderr, "pthread_create: %s\n", strerror(err));
}
if ((err = pthread_join(tid, )) != 0) {
fprintf(stderr, "pthread_join: %s\n", strerror(err));
}
return (0);
}

is killed:

tuexen@bsd5:~ % ./test
ld-elf.so.1: assert failed: /usr/home/tuexen/head/libexec/rtld-elf/rtld.c:4753
Abort (core dumped)

gdb shows:

tuexen@bsd5:~ % gdb -c test.core test
GNU gdb (GDB) 8.1 [GDB v8.1 for FreeBSD]
Copyright (C) 2018 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later 
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "powerpc-portbld-freebsd12.0".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
.
Find the GDB manual and other documentation resources online at:
.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from test...done.
[New LWP 100112]
Core was generated by `./test'.
Program terminated with signal SIGABRT, Aborted.
#0  0x41829a58 in thr_kill () at thr_kill.S:3
3   RSYSCALL(thr_kill)
(gdb) bt
#0  0x41829a58 in thr_kill () at thr_kill.S:3
#1  0x41829378 in __raise (s=6)
at /usr/home/tuexen/head/lib/libc/gen/raise.c:52
#2  0x41823b84 in abort () at /usr/home/tuexen/head/lib/libc/stdlib/abort.c:67
#3  0x41813f58 in allocate_tls (objs=0x41843000, oldtcb=, 
tcbsize=8, tcbalign=)
at /usr/home/tuexen/head/libexec/rtld-elf/rtld.c:4753
#4  0x41813fc0 in _rtld_allocate_tls (oldtls=0x0, tcbsize=8, tcbalign=16)
at /usr/home/tuexen/head/libexec/rtld-elf/rtld.c:5030
#5  0x41877438 in _tcb_ctor (thread=0x41a8d300, initial=)
at /usr/home/tuexen/head/lib/libthr/thread/thr_ctrdtr.c:45
#6  0x41876ebc in _thr_alloc (curthread=0x41a8d000)
at /usr/home/tuexen/head/lib/libthr/thread/thr_list.c:172
#7  0x41867118 in _pthread_create (thread=0xdc10, attr=0x0, 
start_routine=0x180073c , arg=0x0)
at /usr/home/tuexen/head/lib/libthr/thread/thr_create.c:81
#8  0x01800798 in main ()
(gdb) quit

Any idea what is wrong?

Best regards
Michael
___
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"


svn commit: r338930 - head/libexec/rtld-elf/powerpc

2018-09-25 Thread Andreas Tobler
Author: andreast
Date: Tue Sep 25 19:29:35 2018
New Revision: 338930
URL: https://svnweb.freebsd.org/changeset/base/338930

Log:
  Bring the 32-bit powerpc (PowerMac) back to live. The commit 338486 reworked
  some TLS bits. This broke operation on the PowerMac. Namely one could not 
login.
  At login the screen/shell was giving back lots of backslashes and the login
  shell dumped core.
  
  The fix to this issue is to revert the powerpc commit from 338486 and to
  increase the TLS_TCB_SIZE to 16.
  Reverting only did not help, login was possible but userland applications
  aborted with strange messages.
  
  I tested this patch with world/kernel builds and with port upgrades.
  Additionally a full gcc8 bootstrap was successfully completed.
  
  Reviewed by: jhibbits@
  Approved by: re (Glen)

Modified:
  head/libexec/rtld-elf/powerpc/rtld_machdep.h

Modified: head/libexec/rtld-elf/powerpc/rtld_machdep.h
==
--- head/libexec/rtld-elf/powerpc/rtld_machdep.hTue Sep 25 18:54:18 
2018(r338929)
+++ head/libexec/rtld-elf/powerpc/rtld_machdep.hTue Sep 25 19:29:35 
2018(r338930)
@@ -69,12 +69,12 @@ void _rtld_powerpc_pltcall(void);
 
 #define TLS_TP_OFFSET  0x7000
 #define TLS_DTV_OFFSET 0x8000
-#define TLS_TCB_SIZE   8
+#define TLS_TCB_SIZE   16
 
 #define round(size, align) \
 (((size) + (align) - 1) & ~((align) - 1))
 #define calculate_first_tls_offset(size, align) \
-TLS_TCB_SIZE
+round(8, align)
 #define calculate_tls_offset(prev_offset, prev_size, size, align) \
 round(prev_offset + prev_size, align)
 #define calculate_tls_end(off, size)((off) + (size))
___
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"