Date: Sun, 8 May 2016 14:50:38 -0700 From: Adrian Chadd <adrian.chadd@gmail.com> To: Victor Toni <victor.toni@gmail.com> Cc: FreeBSD Net <freebsd-net@freebsd.org> Subject: Re: [FreeBSD 10-3] undefined reference to getsourcefilter /setsourcefilter Message-ID: <CAJ-VmomvCOTnaAd%2B%2BcBZt-SCv_uSFimDFqRdz3ioFgU8LaM8sA@mail.gmail.com> In-Reply-To: <CAG0OSgdKb1Pz47FzuRrtU8t8xfsqH2Lv4kF-XsHWdyW7FpWw8Q@mail.gmail.com> References: <CAG0OSgdKb1Pz47FzuRrtU8t8xfsqH2Lv4kF-XsHWdyW7FpWw8Q@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
Some extern "C" { } around some includes? :) -a On 8 May 2016 at 14:46, Victor Toni <victor.toni@gmail.com> wrote: > Trying to port mcproxy to FreeBSD I encountered a quite strange problem. > Compiling everything works but linking fails with the following error: > > $ c++ -v -Wl,-rpath,/usr/local/lib -pthread -o mcproxy main.o > hamcast_logging.o mc_socket.o addr_storage.o mroute_socket.o if_prop.o > reverse_path_filter.o proxy.o sender.o receiver.o mld_receiver.o > igmp_receiver.o mld_sender.o igmp_sender.o proxy_instance.o routing.o > worker.o timing.o check_if.o check_kernel.o membership_db.o querier.o > timers_values.o interfaces.o def.o simple_mc_proxy_routing.o > simple_routing_data.o scanner.o token.o configuration.o parser.o > interface.o -L/usr/local/lib -L/usr/lib -lpthread > FreeBSD clang version 3.4.1 (tags/RELEASE_34/dot1-final 208032) 20140512 > Target: i386-unknown-freebsd10.3 > Thread model: posix > Selected GCC installation: > "/usr/bin/ld" --eh-frame-hdr -dynamic-linker /libexec/ld-elf.so.1 > --hash-style=both --enable-new-dtags -m elf_i386_fbsd -o mcproxy > /usr/lib/crt1.o /usr/lib/crti.o /usr/lib/crtbegin.o -L/usr/local/lib > -L/usr/lib -L/usr/lib -rpath /usr/local/lib main.o hamcast_logging.o > mc_socket.o addr_storage.o mroute_socket.o if_prop.o reverse_path_filter.o > proxy.o sender.o receiver.o mld_receiver.o igmp_receiver.o mld_sender.o > igmp_sender.o proxy_instance.o routing.o worker.o timing.o check_if.o > check_kernel.o membership_db.o querier.o timers_values.o interfaces.o def.o > simple_mc_proxy_routing.o simple_routing_data.o scanner.o token.o > configuration.o parser.o interface.o -lpthread -lc++ -lm -lgcc --as-needed > -lgcc_s --no-as-needed -lpthread -lc -lgcc --as-needed -lgcc_s > --no-as-needed /usr/lib/crtend.o /usr/lib/crtn.o > mc_socket.o: In function `mc_socket::set_source_filter(unsigned int, > addr_storage const&, unsigned int, std::__1::list<addr_storage, > std::__1::allocator<addr_storage> > const&) const': > src/utils/mc_socket.cpp:(.text+0x29cc): undefined reference to > `setsourcefilter(int, unsigned int, sockaddr*, unsigned int, unsigned int, > unsigned int, sockaddr_storage*)' > mc_socket.o: In function `mc_socket::get_source_filter(unsigned int, > addr_storage const&, unsigned int&, std::__1::list<addr_storage, > std::__1::allocator<addr_storage> >&) const': > src/utils/mc_socket.cpp:(.text+0x2c29): undefined reference to > `getsourcefilter(int, unsigned int, sockaddr*, unsigned int, unsigned int*, > unsigned int*, sockaddr_storage*)' > src/utils/mc_socket.cpp:(.text+0x2cae): undefined reference to > `getsourcefilter(int, unsigned int, sockaddr*, unsigned int, unsigned int*, > unsigned int*, sockaddr_storage*)' > c++: error: linker command failed with exit code 1 (use -v to see > invocation) > > The methods should be found: > > $ readelf -s /usr/lib/libc.a | grep etsourcefilter > 10: 00000600 392 FUNC GLOBAL DEFAULT 1 getsourcefilter > 12: 00000290 305 FUNC GLOBAL DEFAULT 1 setsourcefilter > > > What am I missing? > _______________________________________________ > freebsd-net@freebsd.org mailing list > https://lists.freebsd.org/mailman/listinfo/freebsd-net > To unsubscribe, send any mail to "freebsd-net-unsubscribe@freebsd.org"
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAJ-VmomvCOTnaAd%2B%2BcBZt-SCv_uSFimDFqRdz3ioFgU8LaM8sA>