Re: Building fastnetmon on mipsel
Patrick Matthäi <[email protected]>
| Newsgroups | gmane.linux.debian.ports.mips |
|---|---|
| Organization | GNU/Linux Debian |
| Message-ID | <[email protected]> |
Hey, thank you very much, this was the correct solution! :) Am 06.05.2022 um 00:47 schrieb Pavel Odintsov: > Hello! > > Thank you so much for your feedback! That's indeed a very tricky one. > > Do you have any link or documentation about this issue in ld? > > I've changed the code > https://github.com/pavel-odintsov/fastnetmon/commit/6ece82da31abde8f55bfd9f1b6b457ec6b85e0f8 > and we will try to build shortly. > > Thank you! > > On Thu, 5 May 2022 at 16:27, YunQiang Su <[email protected]> wrote: > > > > Patrick Matthäi <[email protected]> 于2022年5月5日周四 19:54写道: > > Hello mips(el) porters, > > (please CC us, we are not subscribed). > > We are trying to build fastnetmon on mipsel, without success. > Maybe you can help us on fixing this?: > > /usr/bin/c++ -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wl,-z,relro -Wl,-z,now -rdynamic CMakeFiles/fastnetmon.dir/fastnetmon.cpp.o -o fastnetmon -latomic libgraphite_metrics.a libinfluxdb_metrics.a -lgpr -lgrpc++ -lgrpc libfastnetmon_grpc_pb_cc.a libfastnetmon_pb_cc.a -lprotobuf -lhiredis -lmongoc-1.0 -lbson-1.0 -llog4cpp -lpthread libpatricia.a libfastnetmon_pcap_format.a libipfix_rfc.a libfast_library.a libunified_parser.a -lssl -lcrypto libgobgp_action.a libexabgp_action.a libafpacket_plugin.a libsflow_plugin.a libnetflow_plugin.a libpcap_plugin.a libexample_plugin.a libfastnetmon_logic.a /usr/lib/mipsel-linux-gnu/libboost_thread.so.1.74.0 /usr/lib/mipsel-linux-gnu/libboost_atomic.so.1.74.0 -lpthread /usr/lib/mipsel-linux-gnu/libboost_regex.so.1.74.0 /usr/lib/mipsel-linux-gnu/libboost_program_options.so.1.74.0 /usr/lib/mipsel-linux-gnu/libboost_system.so.1.74.0 libpatricia.a libfastnetmon_pcap_format.a libsimple_packet_capnp.a -lcapnp -lkj -ljson-c -lssl -lcrypto -lgpr -lgrpc++ -lgrpc -lprotobuf libgobgp_api_client_pb_cc.a libgobgp_api_client_grpc_pb_cc.a libattribute_pb_cc.a libunified_parser.a libfastnetmon_packet_parser.a libsimple_packet_parser_ng.a libnetwork_data_structures.a liblibsflow.a libipfix_rfc.a libnetflow.a -lpcap -lhiredis -lmongoc-1.0 -lbson-1.0 libexabgp_action.a libbgp_protocol.a > > In this command, libfastnetmon_logic.a is put after -latomic, > while libfastnetmon_logic.a(fastnetmon_logic.cpp.o) uses symbols > from libatomic. > Due to the limitation of gnu ld, -latomic should be put after > libfastnetmon_logic.a. > > /usr/bin/ld: libfastnetmon_logic.a(fastnetmon_logic.cpp.o): undefined reference to symbol '__atomic_fetch_add_8@@LIBATOMIC_1.0' > /usr/bin/ld: /usr/lib/gcc/mipsel-linux-gnu/11/libatomic.so: error adding symbols: DSO missing from command line > > > > -------- Weitergeleitete Nachricht -------- > Betreff: Re: GoBGP and FastNetMon on Debian > Datum: Thu, 5 May 2022 11:33:33 +0100 > Von: Pavel Odintsov <[email protected]> > <mailto:[email protected]> > An: Patrick Matthäi <[email protected]> > <mailto:[email protected]> > > > > Hello! > > That's extremely strange indeed. > > Cmake claims that library is here: > > -- Performing Test HAVE__ATOMIC_ADD_FETCH - Failed > -- We have no __atomic_add_fetch, will try linking with libatomic > -- Looking for __atomic_add_fetch_8 in atomic > -- Looking for __atomic_add_fetch_8 in atomic - found > -- Linked with atomic library > -- Performing Test HAVE__SYNC_FETCH_AND_ADD > -- Performing Test HAVE__SYNC_FETCH_AND_ADD - Failed > -- We have no __sync_fetch_and_add on this platform, will try linking with libatomic > -- Looking for __sync_fetch_and_add_8 in atomic > -- Looking for __sync_fetch_and_add_8 in atomic - not found > -- We have no support for __sync_fetch_and_add in atomic library, skip linking > > Do you have ssh access to any machine with this such architecture? > > On Thu, 5 May 2022 at 10:37, Patrick Matthäi > <[email protected]> wrote: > > Hey, > > hmpf, I hate mipsel.. > https://buildd.debian.org/status/fetch.php?pkg=fastnetmon&arch=mipsel&ver=1.2.0%2Bgit20220505-1&stamp=1651743326&raw=0 > <https://buildd.debian.org/status/fetch.php?pkg=fastnetmon&arch=mipsel&ver=1.2.0%2Bgit20220505-1&stamp=1651743326&raw=0> > > > Am 05.05.2022 um 02:14 schrieb Pavel Odintsov: >> Good morning! >> >> I hope you liked your movie yesterday. >> >> I did my side of task and resurrected logic which >> uses __atomic_add_fetch instead of __sync_fetch_and_add: >> https://github.com/pavel-odintsov/fastnetmon/commit/dad1c7b0b9fe16d24566649aa92d757050f4ec2a >> >> >> Good news that we have it in place for Debian build for >> multiple platforms we had issues previously: >> https://salsa.debian.org/debian/fastnetmon/-/blob/master/debian/rules#L11 >> >> Please keep me updated about mipsel builds. >> >> We have some work to get rid of atomic increments and >> replace them by locks and I hope we will drop this magic >> in coming releases. >> >> >> On Wed, 4 May 2022 at 18:54, Pavel Odintsov >> <[email protected]> wrote: >> >> Hello! >> >> Excellent! >> >> Have a great evening! >> >> On Wed, 4 May 2022 at 18:54, Patrick Matthäi >> <[email protected]> wrote: >> >> Yes i will try tomorrow, now i Went to the Cinema :) >> >> Am 04.05.2022 19:45 schrieb Pavel Odintsov >> <[email protected]>: >> >> Hello! >> >> It may be really fun but I even had fix for >> it back in time: >> https://github.com/pavel-odintsov/fastnetmon/commit/d5711bb3da43bff3f90a33c5d5ab9b5a262660c5 >> >> >> I think it was removed during one of many >> code refactorings from previous years. >> >> I'll return this logic back shortly. >> >> Is it possible to set flag cmake .. >> -DUSE_NEW_ATOMIC_BUILTINS=ON only for mipsel >> targets? I'm not 100% sure about this patch >> to enable it for all platforms. >> >> Thank you! >> >> On Wed, 4 May 2022 at 18:41, Pavel Odintsov >> <[email protected]> wrote: >> >> Hello! >> >> Oh, sad stuff indeed. >> >> -- Will use new memory model aware atomic >> builtins >> -- Performing Test HAVE__ATOMIC_ADD_FETCH >> -- Performing Test HAVE__ATOMIC_ADD_FETCH >> - Failed >> -- We have no __atomic_add_fetch, will >> try linking with libatomic >> -- Looking for __atomic_add_fetch_8 in atomic >> -- Looking for __atomic_add_fetch_8 in >> atomic - found >> -- Linked with atomic library >> -- Performing Test HAVE__SYNC_FETCH_AND_ADD >> -- Performing Test >> HAVE__SYNC_FETCH_AND_ADD - Failed >> -- We have no __sync_fetch_and_add on >> this platform, will try linking with >> libatomic >> -- Looking for __sync_fetch_and_add_8 in >> atomic >> -- Looking for __sync_fetch_and_add_8 in >> atomic - not found >> -- We have no support for >> __sync_fetch_and_add in atomic library, >> skip linking >> >> We actually linked with libatomic for >> __atomic_add_fetch but it looks like >> __sync_fetch_and_add_8 is missing from >> libatomic. >> >> But I found something in Debian's bug >> tracker: >> https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=869805 >> which is quite insightful about this >> exact issue. >> >> On Wed, 4 May 2022 at 18:17, Patrick >> Matthäi <[email protected]> wrote: >> >> https://buildd.debian.org/status/fetch.php?pkg=fastnetmon&arch=mipsel&ver=1.2.0%2Bgit20220504-1&stamp=1651682939&raw=0 >> <https://buildd.debian.org/status/fetch.php?pkg=fastnetmon&arch=mipsel&ver=1.2.0%2Bgit20220504-1&stamp=1651682939&raw=0> >> >> Does not work :/ But I see the >> -latomic humpf.. >> >> Am 04.05.2022 um 14:49 schrieb Pavel >> Odintsov: >> >> Hello! >> >> Thank you for feedback. >> >> I added some logic to fix it or >> at least confirm root cause of >> this issue with atomic: >> https://github.com/pavel-odintsov/fastnetmon/commit/89e8923759175a104aa491d4d0b683d627088110 >> >> Would you mind adding this patch >> and trying build again? >> >> Thank you! >> >> On Tue, 3 May 2022 at 19:18, >> Patrick Matthäi >> <[email protected]> wrote: >> > > > > -- > YunQiang Su > > > > -- > Sincerely yours, Pavel Odintsov -- /* Mit freundlichem Gruß / With kind regards, Patrick Matthäi GNU/Linux Debian Developer Blog:https://www.linux-dev.org/ E-Mail:[email protected] [email protected] */