• Fwd: Building fastnetmon on mipsel (1/2)

    From =?UTF-8?Q?Patrick_Matth=c3=a4i?=@21:1/5 to All on Thu May 5 14:00:02 2022
    This is a multi-part message in MIME format. SGVsbG8gbWlwcyhlbCkgcG9ydGVycywNCg0KKHBsZWFzZSBDQyB1cywgd2UgYXJlIG5vdCBz dWJzY3JpYmVkKS4NCg0KV2UgYXJlIHRyeWluZyB0byBidWlsZCBmYXN0bmV0bW9uIG9uIG1p cHNlbCwgd2l0aG91dCBzdWNjZXNzLiBNYXliZSB5b3UgDQpjYW4gaGVscCB1cyBvbiBmaXhp bmcgdGhpcz86DQoNCi91c3IvYmluL2MrKyAtZyAtTzIgLWZmaWxlLXByZWZpeC1tYXA9Lzw8 UEtHQlVJTERESVI+Pj0uIC1mc3RhY2stcHJvdGVjdG9yLXN0cm9uZyAtV2Zvcm1hdCAtV2Vy cm9yPWZvcm1hdC1zZWN1cml0eSAtV2RhdGUtdGltZSAtRF9GT1JUSUZZX1NPVVJDRT0yIC1X bCwteixyZWxybyAtV2wsLXosbm93IC1yZHluYW1pYyBDTWFrZUZpbGVzL2Zhc3RuZXRtb24u ZGlyL2Zhc3RuZXRtb24uY3BwLm8gLW8gZmFzdG5ldG1vbiAgLWxhdG9taWMgbGliZ3JhcGhp dGVfbWV0cmljcy5hIGxpYmluZmx1eGRiX21ldHJpY3MuYSAtbGdwciAtbGdycGMrKyAtbGdy cGMgbGliZmFzdG5ldG1vbl9ncnBjX3BiX2NjLmEgbGliZmFzdG5ldG1vbl9wYl9jYy5hIC1s cHJvdG9idWYgLWxoaXJlZGlzIC1sbW9uZ29jLTEuMCAtbGJzb24tMS4wIC1sbG9nNGNwcCAt bHB0aHJlYWQgbGlicGF0cmljaWEuYSBsaWJmYXN0bmV0bW9uX3BjYXBfZm9ybWF0LmEgbGli aXBmaXhfcmZjLmEgbGliZmFzdF9saWJyYXJ5LmEgbGlidW5pZmllZF9wYXJzZXIuYSAtbHNz bCAtbGNyeXB0byBsaWJnb2JncF9hY3Rpb24uYSBsaWJleGFiZ3BfYWN0aW9uLmEgbGliYWZw YWNrZXRfcGx1Z2luLmEgbGlic2Zsb3dfcGx1Z2luLmEgbGlibmV0Zmxvd19wbHVnaW4uYSBs aWJwY2FwX3BsdWdpbi5hIGxpYmV4YW1wbGVfcGx1Z2luLmEgbGliZmFzdG5ldG1vbl9sb2dp Yy5hIC91c3IvbGliL21pcHNlbC1saW51eC1nbnUvbGliYm9vc3RfdGhyZWFkLnNvLjEuNzQu MCAvdXNyL2xpYi9taXBzZWwtbGludXgtZ251L2xpYmJvb3N0X2F0b21pYy5zby4xLjc0LjAg LWxwdGhyZWFkIC91c3IvbGliL21pcHNlbC1saW51eC1nbnUvbGliYm9vc3RfcmVnZXguc28u MS43NC4wIC91c3IvbGliL21pcHNlbC1saW51eC1nbnUvbGliYm9vc3RfcHJvZ3JhbV9vcHRp b25zLnNvLjEuNzQuMCAvdXNyL2xpYi9taXBzZWwtbGludXgtZ251L2xpYmJvb3N0X3N5c3Rl bS5zby4xLjc0LjAgbGlicGF0cmljaWEuYSBsaWJmYXN0bmV0bW9uX3BjYXBfZm9ybWF0LmEg bGlic2ltcGxlX3BhY2tldF9jYXBucC5hIC1sY2FwbnAgLWxraiAtbGpzb24tYyAtbHNzbCAt bGNyeXB0byAtbGdwciAtbGdycGMrKyAtbGdycGMgLWxwcm90b2J1ZiBsaWJnb2JncF9hcGlf Y2xpZW50X3BiX2NjLmEgbGliZ29iZ3BfYXBpX2NsaWVudF9ncnBjX3BiX2NjLmEgbGliYXR0 cmlidXRlX3BiX2NjLmEgbGlidW5pZmllZF9wYXJzZXIuYSBsaWJmYXN0bmV0bW9uX3BhY2tl dF9wYXJzZXIuYSBsaWJzaW1wbGVfcGFja2V0X3BhcnNlcl9uZy5hIGxpYm5ldHdvcmtfZGF0 YV9zdHJ1Y3R1cmVzLmEgbGlibGlic2Zsb3cuYSBsaWJpcGZpeF9yZmMuYSBsaWJuZXRmbG93 LmEgLWxwY2FwIC1saGlyZWRpcyAtbG1vbmdvYy0xLjAgLWxic29uLTEuMCBsaWJleGFiZ3Bf YWN0aW9uLmEgbGliYmdwX3Byb3RvY29sLmENCi91c3IvYmluL2xkOiBsaWJmYXN0bmV0bW9u X2xvZ2ljLmEoZmFzdG5ldG1vbl9sb2dpYy5jcHAubyk6IHVuZGVmaW5lZCByZWZlcmVuY2Ug dG8gc3ltYm9sICdfX2F0b21pY19mZXRjaF9hZGRfOEBATElCQVRPTUlDXzEuMCcNCi91c3Iv YmluL2xkOiAvdXNyL2xpYi9nY2MvbWlwc2VsLWxpbnV4LWdudS8xMS9saWJhdG9taWMuc286 IGVycm9yIGFkZGluZyBzeW1ib2xzOiBEU08gbWlzc2luZyBmcm9tIGNvbW1hbmQgbGluZQ0K DQoNCg0KLS0tLS0tLS0gV2VpdGVyZ2VsZWl0ZXRlIE5hY2hyaWNodCAtLS0tLS0tLQ0KQmV0 cmVmZjogCVJlOiBHb0JHUCBhbmQgRmFzdE5ldE1vbiBvbiBEZWJpYW4NCkRhdHVtOiAJVGh1 LCA1IE1heSAyMDIyIDExOjMzOjMzICswMTAwDQpWb246IAlQYXZlbCBPZGludHNvdiA8cGF2 ZWwub2RpbnRzb3ZAZ21haWwuY29tPg0KQW46IAlQYXRyaWNrIE1hdHRow6RpIDxwYXRyaWNr QGxpbnV4LWRldi5vcmc+DQoNCg0KDQpIZWxsbyENCg0KVGhhdCdzIGV4dHJlbWVseSBzdHJh bmdlIGluZGVlZC4NCg0KQ21ha2UgY2xhaW1zIHRoYXQgbGlicmFyeSBpcyBoZXJlOg0KDQot LSBQZXJmb3JtaW5nIFRlc3QgSEFWRV9fQVRPTUlDX0FERF9GRVRDSCAtIEZhaWxlZA0KLS0g V2UgaGF2ZSBubyBfX2F0b21pY19hZGRfZmV0Y2gsIHdpbGwgdHJ5IGxpbmtpbmcgd2l0aCBs aWJhdG9taWMNCi0tIExvb2tpbmcgZm9yIF9fYXRvbWljX2FkZF9mZXRjaF84IGluIGF0b21p Yw0KLS0gTG9va2luZyBmb3IgX19hdG9taWNfYWRkX2ZldGNoXzggaW4gYXRvbWljIC0gZm91 bmQNCi0tIExpbmtlZCB3aXRoIGF0b21pYyBsaWJyYXJ5DQotLSBQZXJmb3JtaW5nIFRlc3Qg SEFWRV9fU1lOQ19GRVRDSF9BTkRfQUREDQotLSBQZXJmb3JtaW5nIFRlc3QgSEFWRV9fU1lO Q19GRVRDSF9BTkRfQUREIC0gRmFpbGVkDQotLSBXZSBoYXZlIG5vIF9fc3luY19mZXRjaF9h bmRfYWRkIG9uIHRoaXMgcGxhdGZvcm0sIHdpbGwgdHJ5IGxpbmtpbmcgd2l0aCBsaWJhdG9t aWMNCi0tIExvb2tpbmcgZm9yIF9fc3luY19mZXRjaF9hbmRfYWRkXzggaW4gYXRvbWljDQot LSBMb29raW5nIGZvciBfX3N5bmNfZmV0Y2hfYW5kX2FkZF84IGluIGF0b21pYyAtIG5vdCBm b3VuZA0KLS0gV2UgaGF2ZSBubyBzdXBwb3J0IGZvciBfX3N5bmNfZmV0Y2hfYW5kX2FkZCBp biBhdG9taWMgbGlicmFyeSwgc2tpcCBsaW5raW5nDQoNCkRvIHlvdSBoYXZlIHNzaCBhY2Nl c3MgdG8gYW55IG1hY2hpbmUgd2l0aCB0aGlzIHN1Y2ggYXJjaGl0ZWN0dXJlPw0KDQpPbiBU aHUsIDUgTWF5IDIwMjIgYXQgMTA6MzcsIFBhdHJpY2sgTWF0dGjDpGkgPHBhdHJpY2tAbGlu dXgtZGV2Lm9yZz4gd3JvdGU6DQoNCiAgICBIZXksDQoNCiAgICBobXBmLCBJIGhhdGUgbWlw c2VsLi4NCiAgICBodHRwczovL2J1aWxkZC5kZWJpYW4ub3JnL3N0YXR1cy9mZXRjaC5waHA/ cGtnPWZhc3RuZXRtb24mYXJjaD1taXBzZWwmdmVyPTEuMi4wJTJCZ2l0MjAyMjA1MDUtMSZz dGFtcD0xNjUxNzQzMzI2JnJhdz0wDQogICAgPGh0dHBzOi8vYnVpbGRkLmRlYmlhbi5vcmcv c3RhdHVzL2ZldGNoLnBocD9wa2c9ZmFzdG5ldG1vbiZhcmNoPW1pcHNlbCZ2ZXI9MS4yLjAl MkJnaXQyMDIyMDUwNS0xJnN0YW1wPTE2NTE3NDMzMjYmcmF3PTA+DQoNCg0KICAgIEFtIDA1 LjA1LjIwMjIgdW0gMDI6MTQgc2NocmllYiBQYXZlbCBPZGludHNvdjoNCj4gICAgIEdvb2Qg bW9ybmluZyENCj4NCj4gICAgIEkgaG9wZSB5b3UgbGlrZWQgeW91ciBtb3ZpZcKgeWVzdGVy ZGF5Lg0KPg0KPiAgICAgSSBkaWQgbXkgc2lkZSBvZiB0YXNrIGFuZCByZXN1cnJlY3RlZCBs b2dpYyB3aGljaA0KPiAgICAgdXNlc8KgX19hdG9taWNfYWRkX2ZldGNoIGluc3RlYWQgb2Yg X19zeW5jX2ZldGNoX2FuZF9hZGQ6DQo+ICAgICBodHRwczovL2dpdGh1Yi5jb20vcGF2ZWwt b2RpbnRzb3YvZmFzdG5ldG1vbi9jb21taXQvZGFkMWM3YjBiOWZlMTZkMjQ1NjY2NDlhYTky ZDc1NzA1MGY0ZWMyYQ0KPg0KPg0KPiAgICAgR29vZCBuZXdzIHRoYXQgd2UgaGF2ZSBpdCBp biBwbGFjZSBmb3IgRGViaWFuIGJ1aWxkIGZvciBtdWx0aXBsZQ0KPiAgICAgcGxhdGZvcm1z IHdlIGhhZCBpc3N1ZXMgcHJldmlvdXNseToNCj4gICAgIGh0dHBzOi8vc2Fsc2EuZGViaWFu Lm9yZy9kZWJpYW4vZmFzdG5ldG1vbi8tL2Jsb2IvbWFzdGVyL2RlYmlhbi9ydWxlcyNMMTEN Cj4NCj4gICAgIFBsZWFzZSBrZWVwIG1lIHVwZGF0ZWQgYWJvdXQgbWlwc2VsIGJ1aWxkcy4N Cj4NCj4gICAgIFdlIGhhdmUgc29tZSB3b3JrIHRvIGdldCByaWQgb2YgYXRvbWljIGluY3Jl bWVudHMgYW5kIHJlcGxhY2UgdGhlbQ0KPiAgICAgYnkgbG9ja3MgYW5kIEkgaG9wZSB3ZSB3 aWxsIGRyb3AgdGhpcyBtYWdpYyBpbiBjb21pbmcgcmVsZWFzZXMuDQo+DQo+DQo+ICAgICBP biBXZWQsIDQgTWF5IDIwMjIgYXQgMTg6NTQsIFBhdmVsIE9kaW50c292DQo+ICAgICA8cGF2 ZWwub2RpbnRzb3ZAZ21haWwuY29tPiB3cm90ZToNCj4NCj4gICAgICAgICBIZWxsbyENCj4N Cj4gICAgICAgICBFeGNlbGxlbnQhDQo+DQo+ICAgICAgICAgSGF2ZSBhIGdyZWF0IGV2ZW5p bmchDQo+DQo+ICAgICAgICAgT24gV2VkLCA0IE1heSAyMDIyIGF0IDE4OjU0LCBQYXRyaWNr IE1hdHRow6RpDQo+ICAgICAgICAgPHBhdHJpY2tAbGludXgtZGV2Lm9yZz4gd3JvdGU6DQo+ DQo+ICAgICAgICAgICAgIFllcyBpIHdpbGwgdHJ5IHRvbW9ycm93LCBub3cgaSBXZW50IHRv IHRoZSBDaW5lbWEgOikNCj4NCj4gICAgICAgICAgICAgQW0gMDQuMDUuMjAyMiAxOTo0NSBz Y2hyaWViIFBhdmVsIE9kaW50c292DQo+ICAgICAgICAgICAgIDxwYXZlbC5vZGludHNvdkBn bWFpbC5jb20+Og0KPg0KPiAgICAgICAgICAgICAgICAgSGVsbG8hDQo+DQo+ICAgICAgICAg ICAgICAgICBJdCBtYXkgYmUgcmVhbGx5wqBmdW4gYnV0IEkgZXZlbiBoYWQgZml4IGZvciBp dCBiYWNrIGluDQo+ICAgICAgICAgICAgICAgICB0aW1lOg0KPiAgICAgICAgICAgICAgICAg aHR0cHM6Ly9naXRodWIuY29tL3BhdmVsLW9kaW50c292L2Zhc3RuZXRtb24vY29tbWl0L2Q1 NzExYmIzZGE0M2JmZjNmOTBhMzNjNWQ1YWI5YjVhMjYyNjYwYzUNCj4NCj4NCj4gICAgICAg ICAgICAgICAgIEkgdGhpbmsgaXQgd2FzIHJlbW92ZWQgZHVyaW5nIG9uZSBvZiBtYW55IGNv ZGUNCj4gICAgICAgICAgICAgICAgIHJlZmFjdG9yaW5ncyBmcm9tIHByZXZpb3VzIHllYXJz Lg0KPg0KPiAgICAgICAgICAgICAgICAgSSdsbCByZXR1cm4gdGhpcyBsb2dpY8KgYmFjayBz aG9ydGx5Lg0KPg0KPiAgICAgICAgICAgICAgICAgSXMgaXQgcG9zc2libGUgdG8gc2V0IGZs YWfCoGNtYWtlIC4uDQo+ICAgICAgICAgICAgICAgICAtRFVTRV9ORVdfQVRPTUlDX0JVSUxU SU5TPU9OIG9ubHkgZm9yIG1pcHNlbCB0YXJnZXRzPw0KPiAgICAgICAgICAgICAgICAgSSdt IG5vdCAxMDAlIHN1cmUgYWJvdXQgdGhpcyBwYXRjaCB0byBlbmFibGUgaXQgZm9yDQo+ICAg ICAgICAgICAgICAgICBhbGwgcGxhdGZvcm1zLg0KPg0KPiAgICAgICAgICAgICAgICAgVGhh bmsgeW91IQ0KPg0KPiAgICAgICAgICAgICAgICAgT24gV2VkLCA0IE1heSAyMDIyIGF0IDE4 OjQxLCBQYXZlbCBPZGludHNvdg0KPiAgICAgICAgICAgICAgICAgPHBhdmVsLm9kaW50c292 QGdtYWlsLmNvbT4gd3JvdGU6DQo+DQo+ICAgICAgICAgICAgICAgICAgICAgSGVsbG8hDQo+ DQo+ICAgICAgICAgICAgICAgICAgICAgT2gsIHNhZCBzdHVmZsKgaW5kZWVkLg0KPg0KPiAg ICAgICAgICAgICAgICAgICAgIC0tIFdpbGwgdXNlIG5ldyBtZW1vcnkgbW9kZWwgYXdhcmUg YXRvbWljIGJ1aWx0aW5zDQo+ICAgICAgICAgICAgICAgICAgICAgLS0gUGVyZm9ybWluZyBU ZXN0IEhBVkVfX0FUT01JQ19BRERfRkVUQ0gNCj4gICAgICAgICAgICAgICAgICAgICAtLSBQ ZXJmb3JtaW5nIFRlc3QgSEFWRV9fQVRPTUlDX0FERF9GRVRDSCAtIEZhaWxlZA0KPiAgICAg ICAgICAgICAgICAgICAgIC0tIFdlIGhhdmUgbm8gX19hdG9taWNfYWRkX2ZldGNoLCB3aWxs IHRyeSBsaW5raW5nDQo+ICAgICAgICAgICAgICAgICAgICAgd2l0aCBsaWJhdG9taWMNCj4g ICAgICAgICAgICAgICAgICAgICAtLSBMb29raW5nIGZvciBfX2F0b21pY19hZGRfZmV0Y2hf OCBpbiBhdG9taWMNCj4gICAgICAgICAgICAgICAgICAgICAtLSBMb29raW5nIGZvciBfX2F0 b21pY19hZGRfZmV0Y2hfOCBpbiBhdG9taWMgLSBmb3VuZA0KPiAgICAgICAgICAgICAgICAg ICAgIC0tIExpbmtlZCB3aXRoIGF0b21pYyBsaWJyYXJ5DQo+ICAgICAgICAgICAgICAgICAg ICAgLS0gUGVyZm9ybWluZyBUZXN0IEhBVkVfX1NZTkNfRkVUQ0hfQU5EX0FERA0KPiAgICAg ICAgICAgICAgICAgICAgIC0tIFBlcmZvcm1pbmcgVGVzdCBIQVZFX19TWU5DX0ZFVENIX0FO RF9BREQgLSBGYWlsZWQNCj4gICAgICAgICAgICAgICAgICAgICAtLSBXZSBoYXZlIG5vIF9f c3luY19mZXRjaF9hbmRfYWRkIG9uIHRoaXMNCj4gICAgICAgICAgICAgICAgICAgICBwbGF0 Zm9ybSwgd2lsbCB0cnkgbGlua2luZyB3aXRoIGxpYmF0b21pYw0KPiAgICAgICAgICAgICAg ICAgICAgIC0tIExvb2tpbmcgZm9yIF9fc3luY19mZXRjaF9hbmRfYWRkXzggaW4gYXRvbWlj DQo+ICAgICAgICAgICAgICAgICAgICAgLS0gTG9va2luZyBmb3IgX19zeW5jX2ZldGNoX2Fu ZF9hZGRfOCBpbiBhdG9taWMgLQ0KPiAgICAgICAgICAgICAgICAgICAgIG5vdCBmb3VuZA0K PiAgICAgICAgICAgICAgICAgICAgIC0tIFdlIGhhdmUgbm8gc3VwcG9ydCBmb3IgX19zeW5j X2ZldGNoX2FuZF9hZGQgaW4NCj4gICAgICAgICAgICAgICAgICAgICBhdG9taWMgbGlicmFy eSwgc2tpcCBsaW5raW5nDQo+DQo+ICAgICAgICAgICAgICAgICAgICAgV2UgYWN0dWFsbHnC oGxpbmtlZCB3aXRowqBsaWJhdG9taWMgZm9yDQo+ICAgICAgICAgICAgICAgICAgICAgX19h dG9taWNfYWRkX2ZldGNoIGJ1dCBpdCBsb29rcyBsaWtlDQo+ICAgICAgICAgICAgICAgICAg ICAgX19zeW5jX2ZldGNoX2FuZF9hZGRfOMKgaXMgbWlzc2luZ8KgZnJvbSBsaWJhdG9taWMu DQo+DQo+ICAgICAgICAgICAgICAgICAgICAgQnV0IEkgZm91bmQgc29tZXRoaW5nIGluIERl YmlhbidzIGJ1ZyB0cmFja2VyOg0KPiAgICAgICAgICAgICAgICAgICAgIGh0dHBzOi8vYnVn cy5kZWJpYW4ub3JnL2NnaS1iaW4vYnVncmVwb3J0LmNnaT9idWc9ODY5ODA1DQo+ICAgICAg ICAgICAgICAgICAgICAgd2hpY2ggaXMgcXVpdGUgaW5zaWdodGZ1bCBhYm91dCB0aGlzIGV4 YWN0IGlzc3VlLg0KPg0KPiAgICAgICAgICAgICAgICAgICAgIE9uIFdlZCwgNCBNYXkgMjAy MiBhdCAxODoxNywgUGF0cmljayBNYXR0aMOkaQ0KPiAgICAgICAgICAgICAgICAgICAgIDxw YXRyaWNrQGxpbnV4LWRldi5vcmc+IHdyb3RlOg0KPg0KPiAgICAgICAgICAgICAgICAgICAg ICAgICBodHRwczovL2J1aWxkZC5kZWJpYW4ub3JnL3N0YXR1cy9mZXRjaC5waHA/cGtnPWZh c3RuZXRtb24mYXJjaD1taXBzZWwmdmVyPTEuMi4wJTJCZ2l0MjAyMjA1MDQtMSZzdGFtcD0x NjUxNjgyOTM5JnJhdz0wDQo+ICAgICAgICAgICAgICAgICAgICAgICAgIDxodHRwczovL2J1 aWxkZC5kZWJpYW4ub3JnL3N0YXR1cy9mZXRjaC5waHA/cGtnPWZhc3RuZXRtb24mYXJjaD1t aXBzZWwmdmVyPTEuMi4wJTJCZ2l0MjAyMjA1MDQtMSZzdGFtcD0xNjUxNjgyOTM5JnJhdz0w Pg0KPg0KPiAgICAgICAgICAgICAgICAgICAgICAgICBEb2VzIG5vdCB3b3JrIDovIEJ1dCBJ IHNlZSB0aGUgLWxhdG9taWMgaHVtcGYuLg0KPg0KPiAgICAgICAgICAgICAgICAgICAgICAg ICBBbSAwNC4wNS4yMDIyIHVtIDE0OjQ5IHNjaHJpZWIgUGF2ZWwgT2RpbnRzb3Y6DQo+DQo+ ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBIZWxsbyENCj4NCj4gICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFRoYW5rIHlvdSBmb3IgZmVlZGJhY2suDQo+DQo+ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBJIGFkZGVkIHNvbWUgbG9naWMgdG8gZml4IGl0IG9yIGF0 IGxlYXN0DQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maXJtIHJvb3QgY2F1 c2Ugb2YgdGhpcyBpc3N1ZSB3aXRoIGF0b21pYzoNCj4gICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9wYXZlbC1vZGludHNvdi9mYXN0bmV0bW9uL2Nv bW1pdC84OWU4OTIzNzU5MTc1YTEwNGFhNDkxZDRkMGI2ODNkNjI3MDg4MTEwDQo+DQo+ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBXb3VsZCB5b3UgbWluZCBhZGRpbmcgdGhpcyBw YXRjaCBhbmQNCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyeWluZyBidWlsZCBh Z2Fpbj8NCj4NCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRoYW5rIHlvdSENCj4N Cj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9uIFR1ZSwgMyBNYXkgMjAyMiBhdCAx OToxOCwgUGF0cmljaw0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWF0dGjDpGkg PHBhdHJpY2tAbGludXgtZGV2Lm9yZz4gd3JvdGU6DQo+DQoNCg==
    <html>
    <head>

    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
    </head>
    <body>
    <p>Hello mips(el) porters,<br>
    </p>
    <div class="moz-forward-container">(please CC us, we are not
    subscribed).</div>
    <div class="moz-forward-container"><br>
    </div>
    <div class="moz-forward-container">We are trying to build fastnetmon
    on mipsel, without success. Maybe you can help us on fixing this?:<br>
    <br>
    <pre>/usr/bin/c++ -g -O2 -ffile-prefix-map=/&lt;&lt;PKGBUILDDIR&gt;&gt;=. -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
    /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</pre>
    </div>
    <div class="moz-forward-container"><br>
    </div>
    <div class="moz-forward-container"><br>
    -------- Weitergeleitete Nachricht --------
    <table class="moz-email-headers-table" cellspacing="0"
    cellpadding="0" border="0">
    <tbody>
    <tr>
    <th valign="BASELINE" nowrap="nowrap" align="RIGHT">Betreff:
    </th>
    <td>Re: GoBGP and FastNetMon on Debian</td>
    </tr>
    <tr>
    <th valign="BASELINE" nowrap="nowrap" align="RIGHT">Datum: </th>
    <td>Thu, 5 May 2022 11:33:33 +0100</td>
    </tr>
    <tr>
    <th valign="BASELINE" nowrap="nowrap" align="RIGHT">Von: </th>
    <td>Pavel Odintsov <a class="moz-txt-link-rfc2396E" href="mailto:pavel.odintsov@gmail.com">&lt;pavel.odintsov@gmail.com&gt;</a></td>
    </tr>
    <tr>
    <th valign="BASELINE" nowrap="nowrap" align="RIGHT">An: </th>
    <td>Patrick Matthäi <a class="moz-txt-link-rfc2396E" href="mailto:patrick@linux-dev.org">&lt;patrick@linux-dev.org&gt;</a></td>
    </tr>
    </tbody>
    </table>
    <br>
    <br>
    <div>
    <div dir="auto">Hello!</div>
    <div dir="auto"><br>
    </div>
    <div dir="auto">That's extremely strange indeed. </div>
    </div>
    <div>
    <div dir="auto"><br>
    </div>
    <div dir="auto">Cmake claims that library is here: </div>
    <pre style="-webkit-tap-highlight-color: rgba(26, 26, 26, 0.3); -webkit-text-size-adjust: auto;" dir="auto">-- 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</pre>
    <pre style="-webkit-tap-highlight-color: rgba(26, 26, 26, 0.3); -webkit-text-size-adjust: auto;" dir="auto">Do you have ssh access to any machine with this such architecture?</pre>
    <div>
    <div class="gmail_quote">
    <div dir="ltr" class="gmail_attr">On Thu, 5 May 2022 at
    10:37, Patrick Matthäi &lt;<a
    href="mailto:patrick@linux-dev.org" target="_blank"
    moz-do-not-send="true" class="moz-txt-link-freetext">patrick@linux-dev.org</a>&gt;
    wrote:<br>
    </div>
    <blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;padding-left:1ex;border-left-color:rgb(204,204,204)">
    <div>
    <p>Hey,</p>
    <p>hmpf, I hate mipsel..<br>
    <a href="https://buildd.debian.org/status/fetch.php?pkg=fastnetmon&amp;arch=mipsel&amp;ver=1.2.0%2Bgit20220505-1&amp;stamp=1651743326&amp;raw=0"
    target="_blank" moz-do-not-send="true">https://buildd.debian.org/status/fetch.php?pkg=fastnetmon&amp;arch=mipsel&amp;ver=1.2.0%2Bgit20220505-1&amp;stamp=1651743326&amp;raw=0</a></p>
    </div>
    <div>
    <p><br>
    </p>
    <div>Am 05.05.2022 um 02:14 schrieb Pavel Odintsov:<br>
    </div>
    <blockquote type="cite">
    <div dir="ltr">Good morning!
    <div><br>
    </div>
    <div>I hope you liked your movie yesterday.</div>
    <div><br>
    </div>
    <div>I did my side of task and resurrected logic
    which uses __atomic_add_fetch instead of
    __sync_fetch_and_add: <a href="https://github.com/pavel-odintsov/fastnetmon/commit/dad1c7b0b9fe16d24566649aa92d757050f4ec2a"
    target="_blank" moz-do-not-send="true"
    class="moz-txt-link-freetext">https://github.com/pavel-odintsov/fastnetmon/commit/dad1c7b0b9fe16d24566649aa92d757050f4ec2a</a> </div>
    <div><br>
    </div>
    <div>Good news that we have it in place for Debian
    build for multiple platforms we had issues
    previously: <a href="https://salsa.debian.org/debian/fastnetmon/-/blob/master/debian/rules#L11"
    target="_blank" moz-do-not-send="true"
    class="moz-txt-link-freetext">https://salsa.debian.org/debian/fastnetmon/-/blob/master/debian/rules#L11</a></div>
    <div><br>
    </div>
    <div>Please keep me updated about mipsel builds.</div>
    <div><br>
    </div>
    <div>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. </div>
    <div><br>
    </div>
    </div>
    <br>
    <div class="gmail_quote">
    <div dir="ltr" class="gmail_attr">On Wed, 4 May 2022
    at 18:54, Pavel Odintsov &lt;<a
    href="mailto:pavel.odintsov@gmail.com"
    target="_blank" moz-do-not-send="true"
    class="moz-txt-link-freetext">pavel.odintsov@gmail.com</a>&gt;
    wrote:<br>
    </div>
    <blockquote class="gmail_quote" style="margin:0px
    0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;padding-left:1ex;border-left-color:rgb(204,204,204)">
    <div dir="ltr">Hello!
    <div><br>
    </div>
    <div>Excellent!</div>
    <div><br>
    </div>
    <div>Have a great evening! </div>
    </div>
    <br>
    <div class="gmail_quote">
    <div dir="ltr" class="gmail_attr">On Wed, 4 May
    2022 at 18:54, Patrick Matthäi &lt;<a
    href="mailto:patrick@linux-dev.org"
    target="_blank" moz-do-not-send="true"
    class="moz-txt-link-freetext">patrick@linux-dev.org</a>&gt;
    wrote:<br>
    </div>
    <blockquote class="gmail_quote"
    style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;padding-left:1ex;border-left-color:rgb(204,204,204)">
    <div dir="auto">Yes i will try tomorrow, now i
    Went to the Cinema :)</div>
    <div class="gmail_extra"><br>
    <div class="gmail_quote">Am 04.05.2022 19:45
    schrieb Pavel Odintsov &lt;<a
    href="mailto:pavel.odintsov@gmail.com"
    target="_blank" moz-do-not-send="true"
    class="moz-txt-link-freetext">pavel.odintsov@gmail.com</a>&gt;:<br
    type="attribution">
    <blockquote style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;padding-left:1ex;border-left-color:rgb(204,204,204)">
    <div dir="ltr">Hello!
    <div><br>
    </div>
    <div>It may be really fun but I even
    had fix for it back in time: <a href="https://github.com/pavel-odintsov/fastnetmon/commit/d5711bb3da43bff3f90a33c5d5ab9b5a262660c5"
    target="_blank"
    moz-do-not-send="true"
    class="moz-txt-link-freetext">https://github.com/pavel-odintsov/fastnetmon/commit/d5711bb3da43bff3f90a33c5d5ab9b5a262660c5</a> </div>
    <div><br>
    </div>
    <div>I think it was removed during one
    of many code refactorings from
    previous years. </div>
    <div><br>
    </div>
    <div>I'll return this logic back
    shortly. </div>
    <div><br>
    </div>
    <div>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. </div>
    <div><br>
    </div>
    <div>Thank you! </div>
    </div>
    <br>
    <div>
    <div dir="ltr">On Wed, 4 May 2022 at
    18:41, Pavel Odintsov &lt;<a
    href="mailto:pavel.odintsov@gmail.com"
    target="_blank"
    moz-do-not-send="true"
    class="moz-txt-link-freetext">pavel.odintsov@gmail.com</a>&gt;
    wrote:<br>
    </div>
    <blockquote style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;padding-left:1ex;border-left-color:rgb(204,204,204)">
    <div dir="ltr">Hello!
    <div><br>
    </div>
    <div>Oh, sad stuff indeed.</div>
    <div><br>
    </div>
    <div>-- Will use new memory model
    aware atomic builtins<br>
    -- Performing Test
    HAVE__ATOMIC_ADD_FETCH<br>
    -- Performing Test
    HAVE__ATOMIC_ADD_FETCH - Failed<br>
    -- We have no
    __atomic_add_fetch, will try
    linking with libatomic<br>
    -- Looking for
    __atomic_add_fetch_8 in atomic<br>
    -- Looking for
    __atomic_add_fetch_8 in atomic -
    found<br>
    -- Linked with atomic library<br>
    -- Performing Test
    HAVE__SYNC_FETCH_AND_ADD<br>
    -- Performing Test
    HAVE__SYNC_FETCH_AND_ADD -
    Failed<br>
    -- We have no
    __sync_fetch_and_add on this
    platform, will try linking with
    libatomic<br>
    -- Looking for
    __sync_fetch_and_add_8 in atomic<br>
    -- Looking for
    __sync_fetch_and_add_8 in atomic
    - not found<br>
    -- We have no support for
    __sync_fetch_and_add in atomic
    library, skip linking<br>
    </div>
    <div><br>
    </div>
    <div>We actually linked
    with libatomic for
    __atomic_add_fetch but it looks
    like __sync_fetch_and_add_8 is
    missing from libatomic. </div>
    <div><br>
    </div>
    <div>But I found something in
    Debian's bug tracker: <a
    href="https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=869805"
    target="_blank"
    moz-do-not-send="true"
    class="moz-txt-link-freetext">https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=869805</a>
    which is quite insightful about
    this exact issue. </div>
    </div>
    <br>
    <div>
    <div dir="ltr">On Wed, 4 May 2022
    at 18:17, Patrick Matthäi &lt;<a href="mailto:patrick@linux-dev.org" target="_blank"
    moz-do-not-send="true"
    class="moz-txt-link-freetext">patrick@linux-dev.org</a>&gt;
    wrote:<br>
    </div>
    <blockquote style="margin:0px 0px
    0px 0.8ex;border-left-width:1px;border-left-style:solid;padding-left:1ex;border-left-color:rgb(204,204,204)">
    <div>
    <p><a href="https://buildd.debian.org/status/fetch.php?pkg=fastnetmon&amp;arch=mipsel&amp;ver=1.2.0%2Bgit20220504-1&amp;stamp=1651682939&amp;raw=0"
    target="_blank"
    moz-do-not-send="true">https://buildd.debian.org/status/fetch.php?pkg=fastnetmon&amp;arch=mipsel&amp;ver=1.2.0%2Bgit20220504-1&amp;stamp=1651682939&amp;raw=0</a></p>
    <p>Does not work :/ But I see
    the -latomic humpf..<br>
    </p>
    <div>Am 04.05.2022 um 14:49
    schrieb Pavel Odintsov:<br>
    </div>
    <blockquote>
    <div dir="auto">Hello!</div>
    <div dir="auto"><br>
    </div>
    <div dir="auto">Thank you
    for feedback.</div>
    <div dir="auto"><br>
    </div>
    <div dir="auto">I added some
    logic to fix it or at
    least confirm root cause
    of this issue with
    atomic: 
    <div><a href="https://github.com/pavel-odintsov/fastnetmon/commit/89e8923759175a104aa491d4d0b683d627088110"
    target="_blank"
    moz-do-not-send="true" class="moz-txt-link-freetext">https://github.com/pavel-odintsov/fastnetmon/commit/89e8923759175a104aa491d4d0b683d627088110</a></div>
    <div dir="auto"><br>
    </div>
    <div dir="auto">Would you
    mind adding this patch
    and trying build again?</div>
    <div dir="auto"><br>
    </div>
    <div dir="auto">Thank you!</div>
    </div>
    <div><br>
    <div>
    <div dir="ltr">On Tue, 3
    May 2022 at 19:18,
    Patrick Matthäi &lt;<a href="mailto:patrick@linux-dev.org" target="_blank"
    moz-do-not-send="true" class="moz-txt-link-freetext">patrick@linux-dev.org</a>&gt; wrote:<br>
    </div>
    </div>
    </div>
    </blockquote>
    </div>
    </blockquote>
    </div>
    </blockquote>
    </div>
    </blockquote>
    </div>
    </div>
    </blockquote>
    </div>
    </blockquote>
    </div>
    </blockquote>
    </div>
    </blockquote>
    </div>
    </div>
    </div>

    [continued in next message]

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Jeffrey Walton@21:1/5 to patrick@linux-dev.org on Thu May 5 16:50:01 2022
    -- Looking for __sync_fetch_and_add_8 in atomic
    -- Looking for __sync_fetch_and_add_8 in atomic - not found

    I hit this a long time ago in a non-CMake project. If memory serves me correctly...

    According to Jakub Jelinek, you should use the GCC builtin and link to libatomic. GCC will emulate the missing primitive through the builtin.
    Instead of using __atomic_fetch_add_8 directly, use
    __atomic_fetch_add.

    Also see https://gcc.gnu.org/bugzilla/show_bug.cgi?id=56296#c1 and https://gcc.gnu.org/onlinedocs/gcc/_005f_005fatomic-Builtins.html .

    Jeff

    On Thu, May 5, 2022 at 7:54 AM Patrick Matthäi <patrick@linux-dev.org> wrote:

    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
    /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 <pavel.odintsov@gmail.com>
    An: Patrick Matthäi <patrick@linux-dev.org>

    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 <patrick@linux-dev.org> 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

    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 <pavel.odintsov@gmail.com> wrote:

    Hello!

    Excellent!

    Have a great evening!

    On Wed, 4 May 2022 at 18:54, Patrick Matthäi <patrick@linux-dev.org> wrote:

    Yes i will try tomorrow, now i Went to the Cinema :)

    Am 04.05.2022 19:45 schrieb Pavel Odintsov <pavel.odintsov@gmail.com>: >>>>
    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 <pavel.odintsov@gmail.com> 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 <patrick@linux-dev.org> wrote:

    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 <patrick@linux-dev.org> wrote:



    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Pavel Odintsov@21:1/5 to Jeffrey Walton on Thu May 5 17:20:01 2022
    Hello!

    Thank you so much for your feedback!

    Yep, that's actually what we're trying to do.

    My code looks like:
    __atomic_add_fetch(&total_simple_packets_processed, 1, __ATOMIC_RELAXED);

    Full link to code: https://github.com/pavel-odintsov/fastnetmon/blob/master/src/fastnetmon_logic.cpp#L2675

    And we try to explicitly link with -latomic and cmake does right thing by adding -atomic:
    /usr/bin/c++ -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security ..... -o
    fastnetmon -latomic

    But liker fails to link it to atomic due to missing function call:
    /usr/bin/ld: libfastnetmon_logic.a(fastnetmon_logic.cpp.o): undefined
    reference to symbol '__atomic_fetch_add_8@@LIBATOMIC_1.0'

    We do not call __atomic_fetch_add_8 directly, it's just how lineker sees
    it.

    On Thu, 5 May 2022 at 15:44, Jeffrey Walton <noloader@gmail.com> wrote:

    -- Looking for __sync_fetch_and_add_8 in atomic
    -- Looking for __sync_fetch_and_add_8 in atomic - not found

    I hit this a long time ago in a non-CMake project. If memory serves me correctly...

    According to Jakub Jelinek, you should use the GCC builtin and link to libatomic. GCC will emulate the missing primitive through the builtin. Instead of using __atomic_fetch_add_8 directly, use
    __atomic_fetch_add.

    Also see https://gcc.gnu.org/bugzilla/show_bug.cgi?id=56296#c1 and https://gcc.gnu.org/onlinedocs/gcc/_005f_005fatomic-Builtins.html .

    Jeff

    On Thu, May 5, 2022 at 7:54 AM Patrick Matthäi <patrick@linux-dev.org> wrote:

    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
    /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 <pavel.odintsov@gmail.com>
    An: Patrick Matthäi <patrick@linux-dev.org>

    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 <patrick@linux-dev.org>
    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

    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 <pavel.odintsov@gmail.com> wrote:

    Hello!

    Excellent!

    Have a great evening!

    On Wed, 4 May 2022 at 18:54, Patrick Matthäi <patrick@linux-dev.org> wrote:

    Yes i will try tomorrow, now i Went to the Cinema :)

    Am 04.05.2022 19:45 schrieb Pavel Odintsov <pavel.odintsov@gmail.com
    :

    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 <pavel.odintsov@gmail.com> 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 <patrick@linux-dev.org> wrote:

    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 <patrick@linux-dev.org> wrote:





    --
    Sincerely yours, Pavel Odintsov

    <div dir="ltr">Hello!<div><br></div><div>Thank you so much for your feedback!</div><div><br></div><div>Yep, that&#39;s actually what we&#39;re trying to do.</div><div><br></div><div>My code looks like:</div>__atomic_add_fetch(&amp;total_simple_packets_
    processed, 1, __ATOMIC_RELAXED);<div><br></div><div>Full link to code: <a href="https://github.com/pavel-odintsov/fastnetmon/blob/master/src/fastnetmon_logic.cpp#L2675">https://github.com/pavel-odintsov/fastnetmon/blob/master/src/fastnetmon_logic.cpp#
    L2675</a></div><div><br></div><div>And we try to explicitly link with -latomic and cmake does right thing by adding -atomic:</div><div>/usr/bin/c++ -g -O2 -ffile-prefix-map=/&lt;&lt;PKGBUILDDIR&gt;&gt;=. -fstack-protector-strong -Wformat -Werror=format-
    security ..... -o fastnetmon  -latomic<br></div><div><br></div><div>But liker fails to link it to atomic due to missing function call:</div><div>/usr/bin/ld: libfastnetmon_logic.a(fastnetmon_logic.cpp.o): undefined ref
  • From YunQiang Su@21:1/5 to All on Thu May 5 17:30:02 2022
    Patrick Matthäi <patrick@linux-dev.org> 于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 <pavel.odintsov@gmail.com> <pavel.odintsov@gmail.com>
    An: Patrick Matthäi <patrick@linux-dev.org> <patrick@linux-dev.org>

    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 <patrick@linux-dev.org>
    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


    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 <pavel.odintsov@gmail.com>
    wrote:

    Hello!

    Excellent!

    Have a great evening!

    On Wed, 4 May 2022 at 18:54, Patrick Matthäi <patrick@linux-dev.org>
    wrote:

    Yes i will try tomorrow, now i Went to the Cinema :)

    Am 04.05.2022 19:45 schrieb Pavel Odintsov <pavel.odintsov@gmail.com>: >>>>
    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 <pavel.odintsov@gmail.com> >>>> 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 <patrick@linux-dev.org>
    wrote:


    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 <patrick@linux-dev.org>
    wrote:




    --
    YunQiang Su

    <div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Patrick Matthäi &lt;<a href="mailto:patrick@linux-dev.org">patrick@linux-dev.org</a>&gt; 于2022年5月5日周四 19:54写道:<br></div><blockquote
    class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex">




    <div>
    <p>Hello mips(el) porters,<br>
    </p>
    <div>(please CC us, we are not
    subscribed).</div>
    <div><br>
    </div>
    <div>We are trying to build fastnetmon
    on mipsel, without success. Maybe you can help us on fixing this?:<br>
    <br>
    <pre>/usr/bin/c++ -g -O2 -ffile-prefix-map=/&lt;&lt;PKGBUILDDIR&gt;&gt;=. -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 libinf
  • From Pavel Odintsov@21:1/5 to YunQiang Su on Fri May 6 01:10:01 2022
    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 <wzssyqa@gmail.com> wrote:



    Patrick Matthäi <patrick@linux-dev.org> 于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 <pavel.odintsov@gmail.com> <pavel.odintsov@gmail.com>
    An: Patrick Matthäi <patrick@linux-dev.org> <patrick@linux-dev.org>

    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 <patrick@linux-dev.org>
    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


    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 <pavel.odintsov@gmail.com>
    wrote:

    Hello!

    Excellent!

    Have a great evening!

    On Wed, 4 May 2022 at 18:54, Patrick Matthäi <patrick@linux-dev.org>
    wrote:

    Yes i will try tomorrow, now i Went to the Cinema :)

    Am 04.05.2022 19:45 schrieb Pavel Odintsov <pavel.odintsov@gmail.com>: >>>>>
    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 <pavel.odintsov@gmail.com> >>>>> 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 <patrick@linux-dev.org> >>>>> wrote:


    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 <patrick@linux-dev.org> >>>>> wrote:




    --
    YunQiang Su



    --
    Sincerely yours, Pavel Odintsov

    <div dir="ltr">Hello!<div><br></div><div>Thank you so much for your feedback! That&#39;s indeed a very tricky one. </div><div><br></div><div>Do you have any link or documentation about this issue in ld?</div><div><br></div><div>I&#39;ve changed the
    code <a href="https://github.com/pavel-odintsov/fastnetmon/commit/6ece82da31abde8f55bfd9f1b6b457ec6b85e0f8">https://github.com/pavel-odintsov/fastnetmon/commit/6ece82da31abde8f55bfd9f1b6b457ec6b85e0f8</a> and we will try to build shortly. </div><div><br>
    </div><div>Thank you! </div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, 5 May 2022 at 16:27, YunQiang Su &lt;<a href="mailto:wzssyqa@gmail.com">wzssyqa@gmail.com</a>&gt; wrote:<br></div><blockquote class="gmail_quote"
    style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Patrick Matthäi &lt;<a hre
  • From YunQiang Su@21:1/5 to All on Fri May 6 01:50:01 2022
    Pavel Odintsov <pavel.odintsov@gmail.com> 于2022年5月6日周五 06:47写道:

    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?


    https://ftp.gnu.org/old-gnu/Manuals/ld-2.9.1/html_mono/ld.html
    --start-group archives --end-groupThe archives should be a list of
    archive files. They may be either explicit file names, or `-l'
    options. The specified archives are searched repeatedly until no new
    undefined references are created. Normally, an archive is searched
    only once in the order that it is specified on the command line. If a
    symbol in that archive is needed to resolve an undefined symbol
    referred to by an object in an archive that appears later on the
    command line, the linker would not be able to resolve that reference.
    By grouping the archives, they all be searched repeatedly until all
    possible references are resolved. Using this option has a significant performance cost. It is best to use it only when there are unavoidable
    circular references between two or more archives.


    And:
    https://llvm.org/devmtg/2017-10/slides/Ueyama-lld.pdf




    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 <wzssyqa@gmail.com> wrote:



    Patrick Matthäi <patrick@linux-dev.org> 于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 <pavel.odintsov@gmail.com>
    An: Patrick Matthäi <patrick@linux-dev.org>


    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 <patrick@linux-dev.org> 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


    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 <pavel.odintsov@gmail.com> wrote:

    Hello!

    Excellent!

    Have a great evening!

    On Wed, 4 May 2022 at 18:54, Patrick Matthäi <patrick@linux-dev.org> wrote:

    Yes i will try tomorrow, now i Went to the Cinema :)

    Am 04.05.2022 19:45 schrieb Pavel Odintsov <pavel.odintsov@gmail.com>: >>>>>>
    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 <pavel.odintsov@gmail.com> 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 <patrick@linux-dev.org> wrote:

    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 <patrick@linux-dev.org> wrote:




    --
    YunQiang Su



    --
    Sincerely yours, Pavel Odintsov



    --
    YunQiang Su

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)