title: C++ symbol has different size in shared object
body: <p>I have been working on a cross platform windowing library aimed to be used for OpenGL specifically, currently focusing on linux. I am making use of glload to manage OpenGL extensions, and this is being compiled, along with other libraries that I will use later, into an <code>.so</code>. This `.so is being dynamically loaded as you would expect, but at run time the program gives the following output (manually wrapped so it is easier to read):</p>
  
  <pre><code>_dist/x64-linux-debug/bin/test: Symbol `glXCreateContextAttribsARB' has \
  different size in shared object, consider re-linking
  </code></pre>
  
  <p>Now, obviously I have tried re-linking, going as far as rebuilding the entire project many times (testing things out, not just blindly hoping it will magically make it all better). The program does seem to be willing to run as it will produce some logging output as I would expect it to. I have used <code>nm</code> to confirm that the 'symbol' is in the <code>.so</code></p>
  
  <pre><code>nm _dist/x64-linux-debug/lib64/libvendor.so | grep glXCreateContextAttribsARB
  00000000009e0e78 B glXCreateContextAttribsARB
  </code></pre>
  
  <p>If I use <code>readelf</code> to look at the symbols being defined I get the following (again, I have manually wrapped the first three lines for formatting sake):</p>
  
  <pre><code>readelf -Ws _dist/x64-linux-debug/bin/test \
  _dist/x64-linux-debug/lib64/libvendor.so | \
  grep glXCreateContextAttribsARB
     348: 000000000062b318  8 OBJECT  GLOBAL DEFAULT  26 glXCreateContextAttribsARB
     421: 000000000062b318  8 OBJECT  GLOBAL DEFAULT  26 glXCreateContextAttribsARB
    1370: 00000000009e0e78  8 OBJECT  GLOBAL DEFAULT  25 glXCreateContextAttribsARB
   17464: 00000000009e0e78  8 OBJECT  GLOBAL DEFAULT  25 glXCreateContextAttribsARB
  </code></pre>
  
  <p>I am afraid that this is about all I can offer to help, as I really do not know what to try or look into. Like I said, I am sure more will info will be need, so please just say an I will provide what I can. I am running these commands from my project root, encase you are wondering.</p>