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]