Thread (104 messages) 104 messages, 5 authors, 2021-07-20

Re: [dpdk-dev] [PATCH v3 19/20] net/sfc: support flow action COUNT in transfer rules

From: Andrew Rybchenko <hidden>
Date: 2021-07-02 08:43:11

Hi David,

On 7/1/21 4:05 PM, Andrew Rybchenko wrote:
@Bruce, see below.

On 7/1/21 3:34 PM, David Marchand wrote:
quoted
On Thu, Jul 1, 2021 at 11:22 AM Andrew Rybchenko
[off-list ref] wrote:
quoted
The build works fine for me on FC34, but it has
libatomic-11.1.1-3.fc34.x86_64 installed.
I first produced the issue on my "old" FC32.
Afaics, for FC33 and later, gcc now depends on libatomic and the
problem won't be noticed.
FC32 and before are EOL, but I then reproduced the issue on RHEL 8
(and Intel CI reported it on Centos 8 too).
I see. Thanks for the clarification.
quoted
quoted
I'd like to understand what we're trying to solve here.
Are we trying to make meson to report the missing library
correctly?

If so, I think I can do simple check using cc.links()
which will fail if the library is not found. I'll
test that it works as expected if the library is not
completely installed.
I tried below diff, and it works for me.
"works" as in net/sfc gets disabled without libatomic installed:
diff --git a/drivers/net/sfc/meson.build b/drivers/net/sfc/meson.build
index 32b58e3d76..8d62aad774 100644
--- a/drivers/net/sfc/meson.build
+++ b/drivers/net/sfc/meson.build
@@ -15,6 +15,7 @@ endif
 if (arch_subdir != 'x86' or not dpdk_conf.get('RTE_ARCH_64')) and
(arch_subdir != 'arm' or not
host_machine.cpu_family().startswith('aarch64'))
     build = false
     reason = 'only supported on x86_64 and aarch64'
+    subdir_done()
@Bruce  Shouldn't we add subdir_done() after all build = false
cases? As I understand it is OK for minimum supported meson
version.
quoted
 endif

 extra_flags = []
@@ -46,6 +47,14 @@ endif

 # for gcc compiles we need -latomic for 128-bit atomic ops
 if cc.get_id() == 'gcc'
+    code = '''#include <stdio.h>
+    void main() { printf("Atomilink me.\n"); }
+    '''
+    if not cc.links(code, args: '-latomic', name: 'libatomic link check')
+        build = false
+        reason = 'missing dependency, "libatomic"'
+        subdir_done()
+    endif
     ext_deps += cc.find_library('atomic')
 endif
Many thanks, LGTM. I'll pick it up and add comments why
it is checked this way.
I've send v4 with the problem fixed. However, I'm afraid
build test systems should be updated to have libatomic
correctly installed. Otherwise, they do not really check
net/sfc build.

Andrew.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help