<html>
    <head>
      <base href="https://bugs.freedesktop.org/" />
    </head>
    <body><table border="1" cellspacing="0" cellpadding="8">
        <tr>
          <th>Bug ID</th>
          <td><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - Fails to build gallium_dri.so at linking stage with clang because of multiple redefinitions"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=90310">90310</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>Fails to build gallium_dri.so at linking stage with clang because of multiple redefinitions
          </td>
        </tr>

        <tr>
          <th>Product</th>
          <td>Mesa
          </td>
        </tr>

        <tr>
          <th>Version</th>
          <td>git
          </td>
        </tr>

        <tr>
          <th>Hardware</th>
          <td>Other
          </td>
        </tr>

        <tr>
          <th>OS</th>
          <td>All
          </td>
        </tr>

        <tr>
          <th>Status</th>
          <td>NEW
          </td>
        </tr>

        <tr>
          <th>Severity</th>
          <td>normal
          </td>
        </tr>

        <tr>
          <th>Priority</th>
          <td>medium
          </td>
        </tr>

        <tr>
          <th>Component</th>
          <td>Mesa core
          </td>
        </tr>

        <tr>
          <th>Assignee</th>
          <td>mesa-dev@lists.freedesktop.org
          </td>
        </tr>

        <tr>
          <th>Reporter</th>
          <td>julien.isorce@gmail.com
          </td>
        </tr>

        <tr>
          <th>QA Contact</th>
          <td>mesa-dev@lists.freedesktop.org
          </td>
        </tr></table>
      <p>
        <div>
        <pre>In src/gallium/targets/dri/Makefile.am:

# XXX: Temporary allow duplicated symbols, as the loader pulls in xmlconfig.c
# which already provides driParse* and driQuery* amongst others.
# Remove this hack as we come up with a cleaner solution.
gallium_dri_la_LDFLAGS += \
        -Wl,--allow-multiple-definition

But "--allow-multiple-definition" is not available with clang:

Making all in targets/dri
 cd ../../../.. && /bin/sh /Users/patch/dev/mesa/bin/missing automake-1.15
--foreign src/gallium/targets/dri/Makefile
 cd ../../../.. && /bin/sh ./config.status src/gallium/targets/dri/Makefile
depfiles
config.status: creating src/gallium/targets/dri/Makefile
config.status: executing depfiles commands
/bin/sh ../../../../libtool  --tag=CXX   --mode=link g++  -g -O2 -Wall
-fno-strict-aliasing -fno-builtin-memcmp -Qunused-arguments  -shared -shrext
.so -module -avoid-version    -Wl,--allow-multiple-definition,-v   -o
gallium_dri.la -rpath /usr/local/lib/dri gallium_dri_la-target.lo
../../../../src/mesa/libmesagallium.la
../../../../src/mesa/drivers/dri/common/libdricommon.la
../../../../src/mesa/drivers/dri/common/libmegadriver_stub.la
../../../../src/gallium/state_trackers/dri/libdri.la
../../../../src/gallium/auxiliary/libgalliumvl.la
../../../../src/gallium/auxiliary/libgallium.la
../../../../src/gallium/drivers/noop/libnoop.la
../../../../src/gallium/drivers/rbug/librbug.la
../../../../src/gallium/drivers/trace/libtrace.la  -L/opt/local/lib -lexpat  
-lm  -lpthread  ../../../../src/loader/libloader.la         
../../../../src/gallium/winsys/sw/dri/libswdri.la
../../../../src/gallium/drivers/softpipe/libsoftpipe.la       
libtool: link: g++ -Wl,-undefined -Wl,dynamic_lookup -o .libs/gallium_dri.so
-bundle  .libs/gallium_dri_la-target.o  
-Wl,-force_load,../../../../src/mesa/.libs/libmesagallium.a
-Wl,-force_load,../../../../src/mesa/drivers/dri/common/.libs/libdricommon.a
-Wl,-force_load,../../../../src/mesa/drivers/dri/common/.libs/libmegadriver_stub.a
-Wl,-force_load,../../../../src/gallium/state_trackers/dri/.libs/libdri.a
-Wl,-force_load,../../../../src/gallium/auxiliary/.libs/libgalliumvl.a
-Wl,-force_load,../../../../src/gallium/auxiliary/.libs/libgallium.a
-Wl,-force_load,../../../../src/gallium/drivers/noop/.libs/libnoop.a
-Wl,-force_load,../../../../src/gallium/drivers/rbug/.libs/librbug.a
-Wl,-force_load,../../../../src/gallium/drivers/trace/.libs/libtrace.a
-Wl,-force_load,../../../../src/loader/.libs/libloader.a
-Wl,-force_load,../../../../src/gallium/winsys/sw/dri/.libs/libswdri.a
-Wl,-force_load,../../../../src/gallium/drivers/softpipe/.libs/libsoftpipe.a 
-L/opt/local/lib -lpthread -lm -lexpat  -g -O2 -Wl,--allow-multiple-definition
-Wl,-v  
@(#)PROGRAM:ld  PROJECT:ld64-241.9
configured to support archs: armv6 armv7 armv7s arm64 i386 x86_64 x86_64h
armv6m armv7m armv7em
Library search paths:
    /opt/local/lib
    /usr/lib
    /usr/local/lib
Framework search paths:
    /Library/Frameworks/
    /System/Library/Frameworks/
ld: unknown option: --allow-multiple-definition
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[3]: *** [gallium_dri.la] Error 1</pre>
        </div>
      </p>
      <hr>
      <span>You are receiving this mail because:</span>
      
      <ul>
          <li>You are the QA Contact for the bug.</li>
          <li>You are the assignee for the bug.</li>
      </ul>
    </body>
</html>