Bro 1.3.x / FC5 / Linking Issue

I was trying to build Bro 1.3.2 on FC5. Im running into linking issues and I wanted to see if there is a known fix before I start racking my brain on this.

It appears to be having problems with externally defined functions. These problem do not exist for 1.2.x on the same system.

Here is a sample of the linking and errors:

g++ -g -O2 -o bro DNS-binpac.o HTTP-binpac.o main.o net_util.o util.o parse.o scan.o re-parse.o re-scan.o rule-parse.o rule-scan.o Active.o Analyzer.o Anon.o ARP.o Attr.o BackDoor.o Base64.o BPF_Program.o BroString.o CCL.o ChunkedIO.o CompHash.o Conn.o ConnCompressor.o ContentLine.o DCE_RPC.o DFA.o DNS.o DNS_Mgr.o DbgBreakpoint.o DbgHelp.o DbgWatch.o Debug.o DebugCmds.o DebugLogger.o Desc.o Dict.o Discard.o DPM.o EquivClass.o Event.o EventHandler.o EventLauncher.o EventRegistry.o Expr.o FTP.o File.o FileAnalyzer.o Finger.o Frag.o Frame.o Func.o Gnutella.o HTTP.o Hash.o ICMP.o ID.o Ident.o IntSet.o InterConn.o IOSource.o IRC.o List.o Logger.o Login.o MIME.o NCP.o NFA.o NFS.o NTP.o NVT.o Net.o NetVar.o NetbiosSSN.o Obj.o OSFinger.o PacketFilter.o PacketSort.o PersistenceSerializer.o PktDagSrc.o PktSrc.o PIA.o PolicyFile.o POP3.o Portmap.o PrefixTable.o PriorityQueue.o Queue.o RE.o RPC.o Reassem.o RemoteSerializer.o Rlogin.o RSH.o Rule.o RuleAction.o RuleCondition.o RuleMatcher.o ScriptAnaly.o SmithWaterman.o SMB.o SMTP.o SSH.o Scope.o SerializationFormat.o SerialObj.o Serializer.o Sessions.o StateAccess.o Stats.o SteppingStone.o Stmt.o TCP.o TCP_Endpoint.o TCP_Reassembler.o TCP_Rewriter.o Telnet.o Timer.o Traverse.o Trigger.o TwoWise.o Type.o UDP.o Val.o Var.o XDR.o ZIP.o bsd-getopt-long.o cq.o md5.o patricia.o setsignal.o version.o UDP_Rewriter.o DNS_Rewriter.o PacketDumper.o Rewriter.o strsep.o nb_dns.o X509.o SSLCiphers.o SSLInterpreter.o SSLProxy.o SSLv2.o SSLv3.o SSLv3Automaton.o binpac-lib_pac.o binpac_bro-lib_pac.o dce_rpc_pac.o dce_rpc_simple_pac.o dns_pac.o dns_tcp_pac.o http_pac.o ncp_pac.o rpc_pac.o smb_pac.o -Llibedit -ledit -lmagic -lz -lpcap -lpcap -lssl -lcrypto -lpcap /usr/lib/libresolv.a -ltermcap -ltermcap -lm -L…/aux/binpac/lib -lbinpac -lmagic -lz -lpcap -lpcap -lssl -lcrypto -lpcap /usr/lib/libresolv.a -ltermcap -ltermcap
main.o: In function bro_new_handler':/root/BUILD/Bro/bro-1.3.2/src/ undefined reference to out_of_memory(char const*)’
main.o: In function usage()':/root/BUILD/Bro/bro-1.3.2/src/ undefined reference to bro_path()’
:/root/BUILD/Bro/bro-1.3.2/src/ undefined reference to bro_prefixes()' main.o: In function termination_signal()’:/root/BUILD/Bro/bro-1.3.2/src/ undefined reference to message(char const*)' main.o: In function sig_handler(int)’:/root/BUILD/Bro/bro-1.3.2/src/ undefined reference to internal_error(char const*, ...)' main.o: In function main’:/root/BUILD/Bro/bro-1.3.2/src/ undefined reference to copy_string(char const*)' :/root/BUILD/Bro/bro-1.3.2/src/ undefined reference to current_time(bool)’
:/root/BUILD/Bro/bro-1.3.2/src/ undefined reference to init_random_seed(unsigned int, char const*, char const*)' :/root/BUILD/Bro/bro-1.3.2/src/ undefined reference to streq(char const*, char const*)’
:/root/BUILD/Bro/bro-1.3.2/src/ undefined reference to `hash_md5(unsigned int, unsigned char const*, unsigned char*)’


// Joel

I was trying to build Bro 1.3.2 on FC5. Im running into linking issues and I
wanted to see if there is a known fix before I start racking my brain on

Not a known problem to my knowledge.

`bro_new_handler':/root/BUILD/Bro/bro-1.3.2/src/ undefined
reference to `out_of_memory(char const*)'

All of the missing functions are in util.o, so the problem is either that
util.o didn't build correctly (and is an empty object) or your linker is
somehow not loading it like it's supposed to.


The util object file seems to have built fine and it is present in the linking.
I will take a look at the loader to see what I can determine.

// Joel