Bugs: Compilation error under Mac OS X

Will Buckner wcc at techmonkeys.org
Mon Aug 21 11:32:35 CST 2006


Hey,

Sorry for the late response. Try this. Run ./configure as normal, and then run 
make config. Next, edit "Makefile". Find a line that starts with XLIBS = . Add 
  this to the end of the line: -lSystemStubs

Your line should now look something like this:
XLIBS = -L/usr/lib -ltcl8.4 -lm -lpthread -ldl -lSystemStubs

Then run make as normal. Tell me if it works and we can release an official patch.

Thanks,
Will

Christian BELIN wrote:
> Hi,
> I tried to compile the last version of Eggdrop (1.6.18) under MacOS X  
> 10.4.7
> I get an error during the linking.
> Please let me know hot to solve this problem.
> Hope this helps
> 
> Greetings
> 
> C. Belin
> 
> 
> 
> 
> Here is the full compilation log
> 
> 
> 
> 
> 
> 
> 
> Last login: Wed Jul 19 19:12:33 on ttyp2
> Welcome to Darwin!
> [Little-Mac:~] francis% cd ~/Desktop/eggdrop1.6.18
> [Little-Mac:~/Desktop/eggdrop1.6.18] francis% ./configure
> 
> This is Eggdrop's GNU configure script.
> It's going to run a bunch of tests to hopefully make your compile
> work without much twiddling.
> 
> checking for gcc... gcc
> checking for C compiler default output file name... a.out
> checking whether the C compiler works... yes
> checking whether we are cross compiling... no
> checking for suffix of executables...
> checking for suffix of object files... o
> checking whether we are using the GNU C compiler... yes
> checking whether gcc accepts -g... yes
> checking for gcc option to accept ANSI C... none needed
> checking how to run the C preprocessor... gcc -E
> checking for egrep... grep -E
> checking for AIX... no
> checking for library containing strerror... none required
> checking for ANSI C header files... yes
> checking for sys/types.h... yes
> checking for sys/stat.h... yes
> checking for stdlib.h... yes
> checking for string.h... yes
> checking for memory.h... yes
> checking for strings.h... yes
> checking for inttypes.h... yes
> checking for stdint.h... yes
> checking for unistd.h... yes
> checking minix/config.h usability... no
> checking minix/config.h presence... no
> checking for minix/config.h... no
> checking whether the compiler understands -Wall... yes
> checking whether the compiler understands -pipe... yes
> checking for a BSD-compatible install... /usr/bin/install -c
> checking whether make sets $(MAKE)... yes
> checking for ranlib... ranlib
> checking whether ln -s works... yes
> checking whether head -n 1 works... yes
> checking for gawk... no
> checking for mawk... no
> checking for nawk... no
> checking for awk... awk
> checking for basename... basename
> checking for uname... uname
> checking for socket in -lsocket... no
> checking for connect in -lnsl... no
> checking for gethostbyname in -ldns... no
> checking for dlopen in -ldl... yes
> checking for tan in -lm... yes
> checking for pthread_mutex_init in -lpthread... yes
> checking system type... Darwin
> checking system release... 8.7.0
> checking module loading capabilities...
> checking dl.h usability... no
> checking dl.h presence... no
> checking for dl.h... no
> checking dlfcn.h usability... no
> checking dlfcn.h presence... no
> checking for dlfcn.h... no
> checking loader.h usability... no
> checking loader.h presence... no
> checking for loader.h... no
> checking rld.h usability... no
> checking rld.h presence... no
> checking for rld.h... no
> checking mach-o/dyld.h usability... yes
> checking mach-o/dyld.h presence... yes
> checking for mach-o/dyld.h... yes
> checking mach-o/rld.h usability... no
> checking mach-o/rld.h presence... no
> checking for mach-o/rld.h... no
> checking for dlopen... yes
> checking for load... no
> checking for NSLinkModule... yes
> checking for shl_load... no
> checking for rld_load... no
> checking for bundle1.o in /lib... no
> checking for bundle1.o in /usr/lib... yes
> checking for dirent.h that defines DIR... yes
> checking for library containing opendir... none required
> checking whether time.h and sys/time.h may both be included... yes
> checking arpa/inet.h usability... yes
> checking arpa/inet.h presence... yes
> checking for arpa/inet.h... yes
> checking fcntl.h usability... yes
> checking fcntl.h presence... yes
> checking for fcntl.h... yes
> checking limits.h usability... yes
> checking limits.h presence... yes
> checking for limits.h... yes
> checking locale.h usability... yes
> checking locale.h presence... yes
> checking for locale.h... yes
> checking netdb.h usability... yes
> checking netdb.h presence... yes
> checking for netdb.h... yes
> checking netinet/in.h usability... yes
> checking netinet/in.h presence... yes
> checking for netinet/in.h... yes
> checking stdio.h usability... yes
> checking stdio.h presence... yes
> checking for stdio.h... yes
> checking std_args.h usability... no
> checking std_args.h presence... no
> checking for std_args.h... no
> checking stdarg.h usability... yes
> checking stdarg.h presence... yes
> checking for stdarg.h... yes
> checking stddef.h usability... yes
> checking stddef.h presence... yes
> checking for stddef.h... yes
> checking sys/file.h usability... yes
> checking sys/file.h presence... yes
> checking for sys/file.h... yes
> checking sys/param.h usability... yes
> checking sys/param.h presence... yes
> checking for sys/param.h... yes
> checking sys/rusage.h usability... no
> checking sys/rusage.h presence... no
> checking for sys/rusage.h... no
> checking sys/select.h usability... yes
> checking sys/select.h presence... yes
> checking for sys/select.h... yes
> checking sys/socket.h usability... yes
> checking sys/socket.h presence... yes
> checking for sys/socket.h... yes
> checking sys/time.h usability... yes
> checking sys/time.h presence... yes
> checking for sys/time.h... yes
> checking for unistd.h... (cached) yes
> checking wchar.h usability... no
> checking wchar.h presence... no
> checking for wchar.h... no
> checking for an ANSI C-conforming const... yes
> checking whether byte ordering is bigendian... yes
> checking for inline... inline
> checking for pid_t... yes
> checking for size_t... yes
> checking whether struct tm is in sys/time.h or time.h... time.h
> checking for struct tm.tm_zone... yes
> checking for working volatile... yes
> checking for socklen_t... no
> checking for long... yes
> checking size of long... 4
> checking for int... yes
> checking size of int... 4
> checking for short... yes
> checking size of short... 2
> checking for clock... yes
> checking for dprintf... no
> checking for fsync... yes
> checking for getdtablesize... yes
> checking for getrusage... yes
> checking for inet_aton... yes
> checking for isascii... yes
> checking for mbrlen... yes
> checking for memcpy... yes
> checking for memset... yes
> checking for random... yes
> checking for rename... yes
> checking for setpgid... yes
> checking for sigaction... yes
> checking for sigemptyset... yes
> checking for snprintf... yes
> checking for srandom... yes
> checking for strcasecmp... yes
> checking for strncasecmp... yes
> checking for uname... yes
> checking for vsnprintf... yes
> checking for sys/select.h... (cached) yes
> checking for sys/socket.h... (cached) yes
> checking types of arguments for select... int,fd_set *,struct timeval *
> checking for vprintf... yes
> checking for _doprnt... no
> checking for strftime... yes
> checking for stdlib.h... (cached) yes
> checking for unistd.h... (cached) yes
> checking for getpagesize... yes
> checking for working mmap... yes
> checking for broken libsafe sscanf... no
> checking for Tcl library... found /usr/lib/libtcl8.4.dylib
> checking for Tcl header... found /usr/include/tcl.h
> checking whether the Tcl system has changed... yes
> checking for Tcl version... 8.3
> checking for Tcl patch level... 8.3.4
> checking for Tcl_Free in -ltcl8.4... no
> checking for TclpFinalizeThreadData in -ltcl8.4... no
> configure: creating ./config.status
> config.status: creating Makefile
> config.status: creating doc/Makefile
> config.status: creating scripts/Makefile
> config.status: creating src/Makefile
> config.status: creating src/compat/Makefile
> config.status: creating src/md5/Makefile
> config.status: creating src/mod/Makefile
> config.status: creating config.h
> config.status: executing replace-if-changed commands
> creating lush.h
> config.status: executing catch-make-rebuild commands
> 
> Operating System: Darwin 8.7.0
> 
> Warning:
> 
>    The operating system you are using has not yet had a great
>    deal of testing with Eggdrop. For this reason, this compile
>    will default to "make static".
> 
>    To enable module support, type "make eggdrop" instead of just
>    "make" after you run "make config" (or "make iconfig").
> 
>    As we have not done a sufficient amount of testing on this
>    OS, your feedback is greatly appreciated. Please let us know
>    at bugs at eggheads.org if there are any problems compiling with
>    module support, or if you got it to work :)
> 
> If you experience any problems compiling Eggdrop, please read the
> compile guide, found in doc/COMPILE-GUIDE.
> 
> Type 'make config' to configure the modules, or type 'make iconfig'
> to interactively choose which modules to compile.
> 
> [Little-Mac:~/Desktop/eggdrop1.6.18] francis% make config
> Detecting modules.................... done.
> Calculating dependencies................... done.
> Building ./src/mod/Makefile... done.
> 
> Configuring module 'compress'.
> configure: creating cache ../../../config.cache
> checking for gcc... gcc
> checking for C compiler default output file name... a.out
> checking whether the C compiler works... yes
> checking whether we are cross compiling... no
> checking for suffix of executables...
> checking for suffix of object files... o
> checking whether we are using the GNU C compiler... yes
> checking whether gcc accepts -g... yes
> checking for gcc option to accept ANSI C... none needed
> checking for gzopen in -lz... yes
> checking how to run the C preprocessor... gcc -E
> checking for egrep... grep -E
> checking for ANSI C header files... yes
> checking for sys/types.h... yes
> checking for sys/stat.h... yes
> checking for stdlib.h... yes
> checking for string.h... yes
> checking for memory.h... yes
> checking for strings.h... yes
> checking for inttypes.h... yes
> checking for stdint.h... yes
> checking for unistd.h... yes
> checking zlib.h usability... yes
> checking zlib.h presence... yes
> checking for zlib.h... yes
> updating cache ../../../config.cache
> configure: creating ./config.status
> config.status: creating Makefile
> 
> Configuring module 'dns'.
> configure: loading cache ../../../config.cache
> checking for gcc... (cached) gcc
> checking for C compiler default output file name... a.out
> checking whether the C compiler works... yes
> checking whether we are cross compiling... no
> checking for suffix of executables...
> checking for suffix of object files... (cached) o
> checking whether we are using the GNU C compiler... (cached) yes
> checking whether gcc accepts -g... (cached) yes
> checking for gcc option to accept ANSI C... (cached) none needed
> checking for res_init... yes
> checking for res_mkquery... yes
> checking build system type... powerpc-apple-darwin8.7.0
> checking host system type... powerpc-apple-darwin8.7.0
> updating cache ../../../config.cache
> configure: creating ./config.status
> config.status: creating Makefile
> 
> Building ./src/mod/Makefile... done.
> 
> You can now compile the bot, using "make".
> 
> [Little-Mac:~/Desktop/eggdrop1.6.18] francis% make
> 
> Making module objects for static linking...
> 
> gcc -pipe -g -O2 -Wall -I. -I../../.. -I../../.. -I../../../src/mod - 
> DHAVE_CONFIG_H -DSTATIC  -DMAKING_MODS -c .././assoc.mod/assoc.c
> mv assoc.o ../
> gcc -pipe -g -O2 -Wall -I. -I../../.. -I../../.. -I../../../src/mod - 
> DHAVE_CONFIG_H -DSTATIC  -DMAKING_MODS -c .././blowfish.mod/blowfish.c
> mv blowfish.o ../
> gcc -pipe -g -O2 -Wall -I. -I../../.. -I../../.. -I../../../src/mod - 
> DHAVE_CONFIG_H -DSTATIC  -DMAKING_MODS -c .././channels.mod/channels.c
> mv channels.o ../
> gcc -pipe -g -O2 -Wall -I. -I../../.. -I../../.. -I../../../src/mod - 
> DHAVE_CONFIG_H -DSTATIC  -DMAKING_MODS -c .././compress.mod/compress.c
> rm -f ../compress.o
> mv compress.o ../
> gcc -pipe -g -O2 -Wall -I. -I../../.. -I../../.. -I../../../src/mod - 
> DHAVE_CONFIG_H -DSTATIC  -DMAKING_MODS -c .././console.mod/console.c
> mv console.o ../
> gcc -pipe -g -O2 -Wall -I. -I../../.. -I../../.. -I../../../src/mod - 
> DHAVE_CONFIG_H -DSTATIC  -DMAKING_MODS -c .././ctcp.mod/ctcp.c
> mv ctcp.o ../
> gcc -pipe -g -O2 -Wall -I. -I../../.. -I../../.. -I../../../src/mod - 
> DHAVE_CONFIG_H -DSTATIC   -DMAKING_MODS -c .././dns.mod/dns.c
> mv dns.o ../
> gcc -pipe -g -O2 -Wall -I. -I../../.. -I../../.. -I../../../src/mod - 
> DHAVE_CONFIG_H -DSTATIC  -DMAKING_MODS -c .././filesys.mod/filesys.c
> mv filesys.o ../
> gcc -pipe -g -O2 -Wall -I. -I../../.. -I../../.. -I../../../src/mod - 
> DHAVE_CONFIG_H -DSTATIC  -DMAKING_MODS -c .././irc.mod/irc.c
> mv irc.o ../
> gcc -pipe -g -O2 -Wall -I. -I../../.. -I../../.. -I../../../src/mod - 
> DHAVE_CONFIG_H -DSTATIC  -DMAKING_MODS -c .././notes.mod/notes.c
> mv notes.o ../
> gcc -pipe -g -O2 -Wall -I. -I../../.. -I../../.. -I../../../src/mod - 
> DHAVE_CONFIG_H -DSTATIC  -DMAKING_MODS -c .././seen.mod/seen.c
> mv seen.o ../
> gcc -pipe -g -O2 -Wall -I. -I../../.. -I../../.. -I../../../src/mod - 
> DHAVE_CONFIG_H -DSTATIC  -DMAKING_MODS -c .././server.mod/server.c
> mv server.o ../
> gcc -pipe -g -O2 -Wall -I. -I../../.. -I../../.. -I../../../src/mod - 
> DHAVE_CONFIG_H -DSTATIC  -DMAKING_MODS -c .././share.mod/share.c
> mv share.o ../
> gcc -pipe -g -O2 -Wall -I. -I../../.. -I../../.. -I../../../src/mod - 
> DHAVE_CONFIG_H -DSTATIC  -DMAKING_MODS -c .././transfer.mod/transfer.c
> mv transfer.o ../
> gcc -pipe -g -O2 -Wall -I. -I../../.. -I../../.. -I../../../src/mod - 
> DHAVE_CONFIG_H -DSTATIC  -DMAKING_MODS -c .././uptime.mod/uptime.c
> mv uptime.o ../
> gcc -pipe -g -O2 -Wall -I. -I../../.. -I../../.. -I../../../src/mod - 
> DHAVE_CONFIG_H -DSTATIC  -DMAKING_MODS -c .././wire.mod/wire.c
> mv wire.o ../
> Building static.h................... done.
> 
> Making core eggdrop for static linking...
> 
> This may take a while. Go get some runts.
> 
> gcc -pipe -g -O2 -Wall -I.. -I.. -DHAVE_CONFIG_H -DSTATIC  -c bg.c
> gcc -pipe -g -O2 -Wall -I.. -I.. -DHAVE_CONFIG_H -DSTATIC  -c botcmd.c
> gcc -pipe -g -O2 -Wall -I.. -I.. -DHAVE_CONFIG_H -DSTATIC  -c botmsg.c
> gcc -pipe -g -O2 -Wall -I.. -I.. -DHAVE_CONFIG_H -DSTATIC  -c botnet.c
> gcc -pipe -g -O2 -Wall -I.. -I.. -DHAVE_CONFIG_H -DSTATIC  -c chanprog.c
> gcc -pipe -g -O2 -Wall -I.. -I.. -DHAVE_CONFIG_H -DSTATIC  -c cmds.c
> gcc -pipe -g -O2 -Wall -I.. -I.. -DHAVE_CONFIG_H -DSTATIC  -c dcc.c
> gcc -pipe -g -O2 -Wall -I.. -I.. -DHAVE_CONFIG_H -DSTATIC  -c dccutil.c
> gcc -pipe -g -O2 -Wall -I.. -I.. -DHAVE_CONFIG_H -DSTATIC  -c dns.c
> gcc -pipe -g -O2 -Wall -I.. -I.. -DHAVE_CONFIG_H -DSTATIC  -c flags.c
> gcc -pipe -g -O2 -Wall -I.. -I.. -DHAVE_CONFIG_H -DSTATIC  -c language.c
> gcc -pipe -g -O2 -Wall -I.. -I.. -DHAVE_CONFIG_H -DSTATIC  -c match.c
> gcc -pipe -g -O2 -Wall -I.. -I.. -DHAVE_CONFIG_H -DSTATIC  \
> '-DCCFLAGS="gcc -pipe -g -O2 -Wall -I.. -I.. -DHAVE_CONFIG_H -DSTATIC  
> "' \
> '-DLDFLAGS="gcc -pipe"' \
> '-DSTRIPFLAGS="touch"' -c ./main.c
> gcc -pipe -g -O2 -Wall -I.. -I.. -DHAVE_CONFIG_H -DSTATIC  -c mem.c
> gcc -pipe -g -O2 -Wall -I.. -I.. -DHAVE_CONFIG_H -DSTATIC  -c misc.c
> gcc -pipe -g -O2 -Wall -I.. -I.. -DHAVE_CONFIG_H -DSTATIC  -c  
> misc_file.c
> gcc -pipe -g -O2 -Wall -I.. -I.. -DHAVE_CONFIG_H -DSTATIC  -c modules.c
> modules.c:48: undefined or invalid # directive
> gcc -pipe -g -O2 -Wall -I.. -I.. -DHAVE_CONFIG_H -DSTATIC  -c net.c
> net.c: In function `tell_netdebug':
> net.c:1083: warning: unsigned int format, long unsigned int arg (arg 3)
> gcc -pipe -g -O2 -Wall -I.. -I.. -DHAVE_CONFIG_H -DSTATIC  -c rfc1459.c
> gcc -pipe -g -O2 -Wall -I.. -I.. -DHAVE_CONFIG_H -DSTATIC  -c tcl.c
> gcc -pipe -g -O2 -Wall -I.. -I.. -DHAVE_CONFIG_H -DSTATIC  -c tcldcc.c
> gcc -pipe -g -O2 -Wall -I.. -I.. -DHAVE_CONFIG_H -DSTATIC  -c tclhash.c
> gcc -pipe -g -O2 -Wall -I.. -I.. -DHAVE_CONFIG_H -DSTATIC  -c tclmisc.c
> gcc -pipe -g -O2 -Wall -I.. -I.. -DHAVE_CONFIG_H -DSTATIC  -c tcluser.c
> gcc -pipe -g -O2 -Wall -I.. -I.. -DHAVE_CONFIG_H -DSTATIC  -c userent.c
> gcc -pipe -g -O2 -Wall -I.. -I.. -DHAVE_CONFIG_H -DSTATIC  -c userrec.c
> gcc -pipe -g -O2 -Wall -I.. -I.. -DHAVE_CONFIG_H -DSTATIC  -c users.c
> gcc -pipe -g -O2 -Wall -I. -I../.. -I../.. -I../../src - 
> DHAVE_CONFIG_H -DSTATIC  -c md5c.c
> gcc -pipe -g -O2 -Wall -I../.. -I../.. -I../../src -DHAVE_CONFIG_H - 
> DSTATIC  -c inet_aton.c
> gcc -pipe -g -O2 -Wall -I../.. -I../.. -I../../src -DHAVE_CONFIG_H - 
> DSTATIC  -c snprintf.c
> gcc -pipe -g -O2 -Wall -I../.. -I../.. -I../../src -DHAVE_CONFIG_H - 
> DSTATIC  -c memset.c
> gcc -pipe -g -O2 -Wall -I../.. -I../.. -I../../src -DHAVE_CONFIG_H - 
> DSTATIC  -c memcpy.c
> gcc -pipe -g -O2 -Wall -I../.. -I../.. -I../../src -DHAVE_CONFIG_H - 
> DSTATIC  -c strcasecmp.c
> gcc -pipe -g -O2 -Wall -I../.. -I../.. -I../../src -DHAVE_CONFIG_H - 
> DSTATIC  -c strftime.c
> 
> ---------- Yeah! That's the compiling, now the linking! ----------
> 
> Linking eggdrop (static version).
> 
> gcc -pipe -o ../eggdrop bg.o botcmd.o botmsg.o botnet.o chanprog.o  
> cmds.o dcc.o dccutil.o dns.o flags.o language.o match.o main.o mem.o  
> misc.o misc_file.o modules.o net.o rfc1459.o tcl.o tcldcc.o tclhash.o  
> tclmisc.o tcluser.o userent.o userrec.o users.o mod/*.o -L/usr/lib - 
> ltcl8.4 -lm -ldl  md5/md5c.o compat/*.o `cat mod/mod.xlibs`
> ld: /usr/lib/crt1.o illegal reference to symbol: __objcInit defined  
> in indirectly referenced dynamic library /usr/lib/libobjc.A.dylib
> make[1]: *** [../eggdrop] Error 1
> make: *** [static] Error 2
> [Little-Mac:~/Desktop/eggdrop1.6.18] francis%
> 




More information about the Bugs mailing list