FreeBSD and Eggdrop – tclhash.c – SEGMENT VIOLATION – CRASHING

Ran into this issue, where the eggdrop binary would generally seg fault on a system where it had previously worked. The FreeBSD box had loaded a newer version of TCL, 8.6.
Simple way to check with version of TCL is around, ls /usr/local/include/tcl*

The fix for the error is very simple. Two lines need to have a small value changed before the binary is compiled.
The actual edits are displayed, highlighted in yellow – http://cvs.eggheads.org/viewvc/eggdrop1.8/src/tclhash.c?r1=1.3.2.3&r2=1.3.2.4&diff_format=l
For more detailed information surrounding the issue, there is a great thread – http://forum.egghelp.org/viewtopic.php?p=97173#97173

After making the changes to the tclhash.c file in the src directory, simply compile and it should be fixed! Hope this helps somebody save some time as it took me a little while to track down the issue through all the threads and posts!

The error output before patching the issue is as follows:
Eggdrop v1.6.20 (C) 1997 Robey Pointer (C) 2010 Eggheads
— Loading eggdrop v1.6.20 (Thu Jul 21 2011)
[17:09:54] Module loaded: blowfish
[17:09:54] Module loaded: dns
[17:09:54] Module loaded: channels
[17:09:54] Module loaded: server
[17:09:54] * Last context: tclhash.c/242 []
[17:09:54] * Please REPORT this BUG!
[17:09:54] * Check doc/BUG-REPORT on how to do so.
[17:09:54] * Wrote DEBUG
[17:09:54] * SEGMENT VIOLATION — CRASHING!
Segmentation fault: 11 (core dumped)

2 comments on “FreeBSD and Eggdrop – tclhash.c – SEGMENT VIOLATION – CRASHING
  1. Frank says:

    Thanks a lot!

    Had the same problem on FreeBSD and your fix solved it.

  2. Chris says:

    I also found if you recompiled the bot to use TCL8.4 (which you can compile in your ports /usr/ports/lang/tcl8.4 and tell the bot to specificly compile with the 8.4 version the issue simply goes away.

    ./configure –with-tcllib=/usr/local/lib/libtcl84.so –with-tclinc=/usr/local/include/tcl8.4/tcl.h –prefix=(put your compile location)

Leave a Reply

Your email address will not be published. Required fields are marked *

*