cvsup{,
d} woes after upgrading to RELENG_9 on amd64 this weekend
Dimitry Andric
dim at FreeBSD.org
Mon Jun 4 09:32:56 UTC 2012
On 2012-06-04 10:53, Trond Endrestøl wrote:
> After upgrading to RELENG_9 as of yesterday on my amd64 system, cvsup
> bombs out with Bus error: 10.
...
> The only recent change I can think of is switching to clang for
> building the kernel and base. Made I should rebuild world and kernel
> using gcc.
Currently, the ezm3 port is broken for a world compiled with clang (or
more specifically, for a world that uses SSE), see:
http://www.freebsd.org/cgi/query-pr.cgi?pr=162588
The problem is that ezm3 doesn't correctly align the stack, causing
certain routines in libz to crash, because clang emits SSE instructions
in them, whilst assuming the stack is 16-byte aligned. This could also
occur with any other compiler that uses SSE. Basically, ezm3 doesn't
seem to respect the amd64 ABI.
I haven't been able to fix ezm3's stack alignment; it is based on a very
old branch of gcc, and I am not familiar with Modula-3 in general. Any
assistance in this area will be greatly appreciated.
That said, since the ezm3 software is essentially unmaintained, the
only practical solutions to your problem currently are:
- Compile libz without SSE
- Compile libz with gcc
- Use csup instead of cvsup
- Fix ezm3 to respect the amd64 ABI
- Rewrite cvsupd in C (this is left as an exercise for the reader ;)
More information about the freebsd-stable
mailing list