looks like I found the problem.  Or at least how to trivially
recreate the problem and how to work around it for those people that
need to do so.  I've cc'd current since I've been talking there with
people about it.

I'm fairly certain that there are malloc related bugs in the new
binutils.  If I have malloc.conf pointing at AJ, then we die in ld all
the time.  If I remove that file, then we don't and things appear to
work.  That's why some people succeeded in their upgrade, and why some

I get these failures on hello world:

int main() { printf("hello world\n"); }

cc -c xxx.c
cc -o xxx xxx.o
<ld error here>

I think that this is strong evidence that there are bugs in the new
binutils that AJ is finding.  I think it may be that it incorrectly
expects memory to be zero'd when it gets it or something.

So if you have to update your system, don't have /etc/malloc.conf
pointing at AJ:

     A       All warnings (except for the warning about unknown flags being
             set), and failure to allocate memory become fatal.  The process
             will call abort(3) in these cases.

     J       Each byte of new memory allocated by malloc(), realloc() or
             reallocf() as well as all memory returned by free(), realloc() or
             reallocf() will be initialized to 0xd0.  This options also sets
             the ``R'' option.  This is intended for debugging and will impact
             performance negatively.

     R       Causes the realloc() and reallocf() functions to always reallo-
             cate memory even if the initial allocation was sufficiently
             large.  This can substantially aid in compacting memory.


P.S.  One more beer to phk for putting this functionality into malloc :-)

To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message

Reply via email to