Expensify / Bedrock

Rock solid distributed database specializing in active/active automatic failover and WAN replication
https://bedrockdb.com
GNU Lesser General Public License v3.0
1.08k stars 82 forks source link

[HOLD] Move from GCC to Clang #1816

Open johnmlee101 opened 1 month ago

johnmlee101 commented 1 month ago

Details

Fixed Issues

Fixes GH_LINK

Tests


Internal Testing Reminder: when changing bedrock, please compile auth against your new changes

johnmlee101 commented 1 month ago

Okay steps so far to get to where I'm at.

on the vm in a random spot

wget https://apt.llvm.org/llvm.sh
chmod +x llvm.sh
sudo ./llvm.sh 18 all

add /usr/lib/llvm-18/lib to the ldconfig

and right now its seems to fail on the linking and I'm stuck on compilation, the linker seems to not be working well with libc++ or importing it properly and it is returning

SSocketPool.cpp:(.text+0x2c): undefined reference to `std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::basic_string(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)'

and such which is failing compilation

johnmlee101 commented 1 month ago

This pcre problem is a real head-scratcher- pcre hasn't been maintained in awhile so pcre2 is the way to go, but we might need a wrapper to properly drop-in install it.

tylerkaraszewski commented 1 month ago

It's used in only a few places. We could update code to use PCRE2 pretty easily, it's probably only a few lines.

johnmlee101 commented 1 month ago

was trying to get gh actions working but llvm.sh is failing so will check on this later