[Mesa-dev] [PATCH v2] pipe-loader: fix build of dynamic pipe-drivers

Andy Furniss adf.lists at gmail.com
Thu Aug 3 19:07:14 UTC 2017


The v4 version of the patch that was committed still has regressed build 
for me.

Reverting and applying v2 still builds OK.

I now get -

Making all in targets/opencl
make[4]: Entering directory '/mnt/sdb1/Gits/mesa/src/gallium/targets/opencl'
   CXXLD    libOpenCL.la
../../../../src/util/.libs/libxmlconfig.a(libxmlconfig_la-xmlconfig.o): 
In function `driParseOptionInfo':
/mnt/sdb1/Gits/mesa/src/util/xmlconfig.c:719: multiple definition of 
`driParseOptionInfo'
../../../../src/gallium/auxiliary/pipe-loader/.libs/libpipe_loader_dynamic.a(libxmlconfig_la-xmlconfig.o):/mnt/sdb1/Gits/mesa/src/util/xmlconfig.c:719: 
first defined here
../../../../src/util/.libs/libxmlconfig.a(libxmlconfig_la-xmlconfig.o): 
In function `driParseConfigFiles':
/mnt/sdb1/Gits/mesa/src/util/xmlconfig.c:990: multiple definition of 
`driParseConfigFiles'
../../../../src/gallium/auxiliary/pipe-loader/.libs/libpipe_loader_dynamic.a(libxmlconfig_la-xmlconfig.o):/mnt/sdb1/Gits/mesa/src/util/xmlconfig.c:990: 
first defined here
../../../../src/util/.libs/libxmlconfig.a(libxmlconfig_la-xmlconfig.o): 
In function `driDestroyOptionCache':
/mnt/sdb1/Gits/mesa/src/util/xmlconfig.c:1056: multiple definition of 
`driDestroyOptionCache'
../../../../src/gallium/auxiliary/pipe-loader/.libs/libpipe_loader_dynamic.a(libxmlconfig_la-xmlconfig.o):/mnt/sdb1/Gits/mesa/src/util/xmlconfig.c:1056: 
first defined here
../../../../src/util/.libs/libxmlconfig.a(libxmlconfig_la-xmlconfig.o): 
In function `driDestroyOptionInfo':
/mnt/sdb1/Gits/mesa/src/util/xmlconfig.c:1040: multiple definition of 
`driDestroyOptionInfo'
../../../../src/gallium/auxiliary/pipe-loader/.libs/libpipe_loader_dynamic.a(libxmlconfig_la-xmlconfig.o):/mnt/sdb1/Gits/mesa/src/util/xmlconfig.c:1040: 
first defined here
../../../../src/util/.libs/libxmlconfig.a(libxmlconfig_la-xmlconfig.o): 
In function `driCheckOption':
/mnt/sdb1/Gits/mesa/src/util/xmlconfig.c:1070: multiple definition of 
`driCheckOption'
../../../../src/gallium/auxiliary/pipe-loader/.libs/libpipe_loader_dynamic.a(libxmlconfig_la-xmlconfig.o):/mnt/sdb1/Gits/mesa/src/util/xmlconfig.c:1070: 
first defined here
../../../../src/util/.libs/libxmlconfig.a(libxmlconfig_la-xmlconfig.o): 
In function `driQueryOptionb':
/mnt/sdb1/Gits/mesa/src/util/xmlconfig.c:1077: multiple definition of 
`driQueryOptionb'
../../../../src/gallium/auxiliary/pipe-loader/.libs/libpipe_loader_dynamic.a(libxmlconfig_la-xmlconfig.o):/mnt/sdb1/Gits/mesa/src/util/xmlconfig.c:1077: 
first defined here
../../../../src/util/.libs/libxmlconfig.a(libxmlconfig_la-xmlconfig.o): 
In function `driQueryOptioni':
/mnt/sdb1/Gits/mesa/src/util/xmlconfig.c:1087: multiple definition of 
`driQueryOptioni'
../../../../src/gallium/auxiliary/pipe-loader/.libs/libpipe_loader_dynamic.a(libxmlconfig_la-xmlconfig.o):/mnt/sdb1/Gits/mesa/src/util/xmlconfig.c:1087: 
first defined here
../../../../src/util/.libs/libxmlconfig.a(libxmlconfig_la-xmlconfig.o): 
In function `driQueryOptionf':
/mnt/sdb1/Gits/mesa/src/util/xmlconfig.c:1097: multiple definition of 
`driQueryOptionf'
../../../../src/gallium/auxiliary/pipe-loader/.libs/libpipe_loader_dynamic.a(libxmlconfig_la-xmlconfig.o):/mnt/sdb1/Gits/mesa/src/util/xmlconfig.c:1097: 
first defined here
../../../../src/util/.libs/libxmlconfig.a(libxmlconfig_la-xmlconfig.o): 
In function `driQueryOptionstr':
/mnt/sdb1/Gits/mesa/src/util/xmlconfig.c:1107: multiple definition of 
`driQueryOptionstr'
../../../../src/gallium/auxiliary/pipe-loader/.libs/libpipe_loader_dynamic.a(libxmlconfig_la-xmlconfig.o):/mnt/sdb1/Gits/mesa/src/util/xmlconfig.c:1107: 
first defined here
collect2: error: ld returned 1 exit status
Makefile:686: recipe for target 'libOpenCL.la' failed



Nicolai Hähnle wrote:
> Thanks! I'll take that as a Tested-by.
> 
> On 02.08.2017 18:43, Andy Furniss wrote:
>> Building OK with this.
>>
>>
>> Nicolai Hähnle wrote:
>>> From: Nicolai Hähnle <nicolai.haehnle at amd.com>
>>>
>>> v2: add libxmlconfig.la to the dynamic pipe_radeonsi driver
>>>
>>> Fixes: bc7f41e11d3 ("gallium: add pipe_screen_config to screen_create 
>>> functions")
>>> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=102014
>>> -- 
>>> I believe this is the right place to add it; the error reported by
>>> Andy was missing driQueryOptionb, which makes sense since this is now
>>> used in si_pipe.c.
>>> ---
>>>   src/gallium/targets/pipe-loader/Makefile.am     | 1 +
>>>   src/gallium/targets/pipe-loader/pipe_r300.c     | 2 +-
>>>   src/gallium/targets/pipe-loader/pipe_r600.c     | 2 +-
>>>   src/gallium/targets/pipe-loader/pipe_radeonsi.c | 4 ++--
>>>   4 files changed, 5 insertions(+), 4 deletions(-)
>>>
>>> diff --git a/src/gallium/targets/pipe-loader/Makefile.am 
>>> b/src/gallium/targets/pipe-loader/Makefile.am
>>> index 400b198..db492c5 100644
>>> --- a/src/gallium/targets/pipe-loader/Makefile.am
>>> +++ b/src/gallium/targets/pipe-loader/Makefile.am
>>> @@ -146,6 +146,7 @@ pipe_radeonsi_la_LIBADD = \
>>>       $(top_builddir)/src/gallium/drivers/radeon/libradeon.la \
>>>       $(top_builddir)/src/gallium/drivers/radeonsi/libradeonsi.la \
>>>       $(top_builddir)/src/amd/common/libamd_common.la \
>>> +    $(top_builddir)/src/util/libxmlconfig.la \
>>>       $(LIBDRM_LIBS) \
>>>       $(RADEON_LIBS) \
>>>       $(AMDGPU_LIBS)
>>> diff --git a/src/gallium/targets/pipe-loader/pipe_r300.c 
>>> b/src/gallium/targets/pipe-loader/pipe_r300.c
>>> index 0dcc019..8aa1ba8 100644
>>> --- a/src/gallium/targets/pipe-loader/pipe_r300.c
>>> +++ b/src/gallium/targets/pipe-loader/pipe_r300.c
>>> @@ -9,7 +9,7 @@ create_screen(int fd, const struct pipe_screen_config 
>>> *config)
>>>   {
>>>      struct radeon_winsys *sws;
>>> -   sws = radeon_drm_winsys_create(fd, flags, r300_screen_create);
>>> +   sws = radeon_drm_winsys_create(fd, config, r300_screen_create);
>>>      return sws ? debug_screen_wrap(sws->screen) : NULL;
>>>   }
>>> diff --git a/src/gallium/targets/pipe-loader/pipe_r600.c 
>>> b/src/gallium/targets/pipe-loader/pipe_r600.c
>>> index 0eedde7..a6051aa 100644
>>> --- a/src/gallium/targets/pipe-loader/pipe_r600.c
>>> +++ b/src/gallium/targets/pipe-loader/pipe_r600.c
>>> @@ -9,7 +9,7 @@ create_screen(int fd, const struct pipe_screen_config 
>>> *config)
>>>   {
>>>      struct radeon_winsys *rw;
>>> -   rw = radeon_drm_winsys_create(fd, flags, r600_screen_create);
>>> +   rw = radeon_drm_winsys_create(fd, config, r600_screen_create);
>>>      return rw ? debug_screen_wrap(rw->screen) : NULL;
>>>   }
>>> diff --git a/src/gallium/targets/pipe-loader/pipe_radeonsi.c 
>>> b/src/gallium/targets/pipe-loader/pipe_radeonsi.c
>>> index 2d33d0e..2defc52 100644
>>> --- a/src/gallium/targets/pipe-loader/pipe_radeonsi.c
>>> +++ b/src/gallium/targets/pipe-loader/pipe_radeonsi.c
>>> @@ -12,10 +12,10 @@ create_screen(int fd, const struct 
>>> pipe_screen_config *config)
>>>      struct radeon_winsys *rw;
>>>      /* First, try amdgpu. */
>>> -   rw = amdgpu_winsys_create(fd, flags, radeonsi_screen_create);
>>> +   rw = amdgpu_winsys_create(fd, config, radeonsi_screen_create);
>>>      if (!rw)
>>> -      rw = radeon_drm_winsys_create(fd, flags, radeonsi_screen_create);
>>> +      rw = radeon_drm_winsys_create(fd, config, 
>>> radeonsi_screen_create);
>>>      return rw ? debug_screen_wrap(rw->screen) : NULL;
>>>   }
>>>
>>
> 
> 



More information about the mesa-dev mailing list