#44286: fixes for eggdrop port on mavericks --------------------+-------------------------------- Reporter: dre@… | Owner: macports-tickets@… Type: defect | Status: new Priority: Normal | Milestone: Component: ports | Version: 2.3.1 Keywords: | Port: --------------------+-------------------------------- Symptom: {{{ ... gcc -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 -L/usr/lib -ltcl8.5 -lm -ldl -lpthread md5/md5c.o compat/*.o `cat mod/mod.xlibs` Undefined symbols for architecture x86_64: "_cron_matchfld", referenced from: _cron_match in match.o "_garbage_collect_tclhash", referenced from: _mainloop in main.o "_open_listen", referenced from: _global_table in modules.o _tcl_listen in tcldcc.o ld: symbol(s) not found for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation) make[1]: *** [../eggdrop] Error 1 make: *** [modegg] Error 2 }}} One possible solution involves a tweak to the port file and three new patch files. All patches and new files are attached and also shown below. # Add some new patches for mavericks+ {{{ --- Portfile 2014-07-09 00:00:01.000000000 -0700 +++ Portfile.patched 2014-07-08 23:59:37.000000000 -0700 @@ -40,3 +40,9 @@ if {${os.platform} eq "darwin" && ${os.major} >= 10} { patchfiles-append patch-Makefile.in.diff } + +if {${os.platform} eq "darwin" && ${os.major} >= 13} { + patchfiles-append tclhash.h.diff + patchfiles-append proto.h.diff + patchfiles-append match.c.diff +} }}} # the new patches are as follows. # files/tclhash.h.diff {{{ --- src/tclhash.h 2011-07-31 13:15:06.000000000 -0700 +++ src/tclhash.h.patched 2014-07-08 23:45:52.000000000 -0700 @@ -75,7 +75,7 @@ #ifndef MAKING_MODS -inline void garbage_collect_tclhash(void); +void garbage_collect_tclhash(void); void init_bind(void); void kill_bind(void); }}} # files/proto.h.diff {{{ --- src/proto.h 2011-07-09 08:07:48.000000000 -0700 +++ src/proto.h.patched 2014-07-08 23:46:09.000000000 -0700 @@ -271,7 +271,7 @@ void killsock(int); void killtclsock(int); int answer(int, char *, unsigned long *, unsigned short *, int); -inline int open_listen(int *); +int open_listen(int *); int open_address_listen(IP addr, int *); int open_telnet(char *, int); int open_telnet_dcc(int, char *, char *); }}} # files/match.c.diff {{{ --- src/match.c 2010-07-01 09:10:49.000000000 -0700 +++ src/match.c.patched 2014-07-08 23:46:27.000000000 -0700 @@ -367,7 +367,7 @@ /* Inline for cron_match (obviously). * Matches a single field of a crontab expression. */ -inline int cron_matchfld(char *mask, int match) +int cron_matchfld(char *mask, int match) { int skip = 0, f, t; char *p, *q; }}} -- Ticket URL: <https://trac.macports.org/ticket/44286> MacPorts <http://www.macports.org/> Ports system for OS X