WillAyd commented on issue #48433:
URL: https://github.com/apache/arrow/issues/48433#issuecomment-3644913703

   The more I look at this the more I think it is potentially a bug with gcc. 
For example, if I produce an MRE like:
   
   ```cpp
   #include "absl/synchronization/mutex.h"
   
   void foo() {
     auto var = absl::Mutex{};
     var.Lock();
   }
   ```
   
   and compile that with g++-14:
   
   ```shell
   $ g++-14 -Iliblib.so.p -I. -I.. -fdiagnostics-color=always 
-D_GLIBCXX_ASSERTIONS=1 -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -O0 -g -O0 
-fPIC -DNOMINMAX -MD -MQ liblib.so.p/src.cc.o -MF liblib.so.p/src.cc.o.d -o 
liblib.so.p/src.cc.o -c ../src.cc
   ```
   
   then no errant symbol appears:
   
   ```shell
   $ objdump --syms liblib.so.p/src.cc.o | grep Dtor
   ```
   
   If I run the same command but symbol reference a compiler installed by the 
conda compilers package:
   
   ```shell
   $ $ g++-14 -Iliblib.so.p -I. -I.. -fdiagnostics-color=always 
-D_GLIBCXX_ASSERTIONS=1 -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -O0 -g -O0 
-fPIC -DNOMINMAX -MD -MQ liblib.so.p/src.cc.o -MF liblib.so.p/src.cc.o.d -o 
liblib.so.p/src.cc.o -c ../src.cc
   ```
   
   then the errant reference appears:
   
   ```
   $ objdump --syms liblib.so.p/src.cc.o | grep Dtor
   0000000000000000         *UND*       0000000000000000 
_ZN4absl12lts_202407225Mutex4DtorEv
   ```
   
   On ubuntu 24.04 it looks like g++-14 provides version 14.2, whereas conda 
provides 14.3. So perhaps there is a regression between the minor versions 


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to