Re: [PATCH libdrm] meson: use pkg-config to detect libatomic_ops

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thursday, 2018-03-08 18:10:03 +0000, Emil Velikov wrote:
> On 5 March 2018 at 12:03, Eric Engestrom <eric.engestrom@xxxxxxxxxx> wrote:
> > Ping? :)
> > Both for this patch and the equivalent autotools patch it replies to.
> >
> The autotools one needs the CFLAGS added - meson does it automatically for us.

I'll let Peter re-spin his patch, but I might push the meson one before
his lands.

> 
> > On Wednesday, 2018-02-07 14:24:33 +0000, Eric Engestrom wrote:
> >> Signed-off-by: Eric Engestrom <eric.engestrom@xxxxxxxxxx>
> >> ---
> >>  amdgpu/meson.build    | 2 +-
> >>  etnaviv/meson.build   | 2 +-
> >>  freedreno/meson.build | 2 +-
> >>  intel/meson.build     | 2 +-
> >>  meson.build           | 3 ++-
> >>  nouveau/meson.build   | 2 +-
> >>  omap/meson.build      | 2 +-
> >>  radeon/meson.build    | 2 +-
> >>  tegra/meson.build     | 2 +-
> >>  9 files changed, 10 insertions(+), 9 deletions(-)
> >>
> >> diff --git a/amdgpu/meson.build b/amdgpu/meson.build
> >> index 8b0452056e2513892c2c..7040ebab86e271022323 100644
> >> --- a/amdgpu/meson.build
> >> +++ b/amdgpu/meson.build
> >> @@ -37,7 +37,7 @@ libdrm_amdgpu = shared_library(
> >>    ],
> >>    include_directories : [inc_root, inc_drm],
> >>    link_with : libdrm,
> >> -  dependencies : dep_pthread_stubs,
> >> +  dependencies : [dep_pthread_stubs, dep_atomic_ops],
> >>    version : '1.0.0',
> >>    install : true,
> >>  )
> >> diff --git a/etnaviv/meson.build b/etnaviv/meson.build
> >> index 1767733bd510efdaad86..ca2aa544c58924a15d8b 100644
> >> --- a/etnaviv/meson.build
> >> +++ b/etnaviv/meson.build
> >> @@ -31,7 +31,7 @@ libdrm_etnaviv = shared_library(
> >>    include_directories : [inc_root, inc_drm],
> >>    link_with : libdrm,
> >>    c_args : warn_c_args,
> >> -  dependencies : [dep_pthread_stubs, dep_rt],
> >> +  dependencies : [dep_pthread_stubs, dep_rt, dep_atomic_ops],
> >>    version : '1.0.0',
> >>    install : true,
> >>  )
> >> diff --git a/freedreno/meson.build b/freedreno/meson.build
> >> index de6a413fa93e63c0ad4a..da993c10355578838f29 100644
> >> --- a/freedreno/meson.build
> >> +++ b/freedreno/meson.build
> >> @@ -44,7 +44,7 @@ libdrm_freedreno = shared_library(
> >>    [files_freedreno, config_file],
> >>    c_args : warn_c_args,
> >>    include_directories : [inc_root, inc_drm],
> >> -  dependencies : [dep_valgrind, dep_pthread_stubs, dep_rt],
> >> +  dependencies : [dep_valgrind, dep_pthread_stubs, dep_rt, dep_atomic_ops],
> >>    link_with : libdrm,
> >>    version : '1.0.0',
> >>    install : true,
> >> diff --git a/intel/meson.build b/intel/meson.build
> >> index ad877274f8d488a80d54..42402f60e38cd5e7359f 100644
> >> --- a/intel/meson.build
> >> +++ b/intel/meson.build
> >> @@ -29,7 +29,7 @@ libdrm_intel = shared_library(
> >>    ],
> >>    include_directories : [inc_root, inc_drm],
> >>    link_with : libdrm,
> >> -  dependencies : [dep_pciaccess, dep_pthread_stubs, dep_rt, dep_valgrind],
> >> +  dependencies : [dep_pciaccess, dep_pthread_stubs, dep_rt, dep_valgrind, dep_atomic_ops],
> >>    c_args : warn_c_args,
> >>    version : '1.0.0',
> >>    install : true,
> >> diff --git a/meson.build b/meson.build
> >> index a19e600c7475b2578e2d..f45c14a70baa2456582d 100644
> >> --- a/meson.build
> >> +++ b/meson.build
> >> @@ -51,6 +51,7 @@ cc = meson.get_compiler('c')
> >>  intel_atomics = false
> >>  lib_atomics = false
> >>
> >> +dep_atomic_ops = dependency('atomic_ops', required : false)
> >>  if cc.compiles('''
> >>      int atomic_add(int *i) { return __sync_add_and_fetch (i, 1); }
> >>      int atomic_cmpxchg(int *i, int j, int k) { return __sync_val_compare_and_swap (i, j, k); }
> >> @@ -58,7 +59,7 @@ if cc.compiles('''
> >>      name : 'Intel Atomics')
> >>    intel_atomics = true
> >>    with_atomics = true
> >
> > Change added here locally; there's no need to link again `dep_atomic_ops`
> > in this branch, although it doesn't hurt:
> >
> > +       dep_atomic_ops = []
> >
> The dummy dep_atomic_ops is needed for almost all cases in the if/else
> ladder. The exception being the .found() case.

Actually, because of the way the `if` chain is written, the dep_atomic_ops
has to be created before the list; in the `if` cases before this one,
that dep might exist, but we don't need it. In the branch that uses it,
if we got in the branch then it exists, and we need it. In the branches
after that, it doesn't exist and we don't need it either.

That means that only up to that branch can it contain anything;
afterwards, it's empty anyway.

And like I said, it only has the effect of maybe on the branches before
adding unused flags to the compiler & linker, which shouldn't have any
effect anyway.

> 
> With that
> Reviewed-by: Emil Velikov <emil.velikov@xxxxxxxxxxxxx>

With the explanation, does your r-b stand for the current version?
_______________________________________________
dri-devel mailing list
dri-devel@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/dri-devel




[Index of Archives]     [Linux DRI Users]     [Linux Intel Graphics]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux