Clang 3.6 for Building Linux plugins

Is Xojo still using clang3.6 for Linux ??

I am having the hardest time building new Linux build system for clang 3.6 toolchain.

(In short I cannot get it working at all)

From the lack of an answer to this point, I’m guessing this might be considered proprietary information. I hope they are communicating with you privately.

Well, I still use gcc for Linux.

They cannot have it proprietary info since they pushed me back then to use clang 3.6 over gcc to get out of the runtime library hell.

And I went through lot of work back then to go to clang 3.6 (and yes it got me out of the runtime library hell). but this data might be out of date now if they have updated, I do not know I just know that int is now very hard to set up box with this ancient version.

Do your users not get like the old runtime library hell ?

And how do you select which version makes sense to use to minimize the runtime library hell ?

My crisis is gone for now though since the broken Arm box started again, but the question is still valid and sooner or later the problem will come again.

1 Like

If the gcc version is old enough, it doesn’t refer to newer libc functions, so it can run on newer and older versions of Linux.
No problem here.

Well, my point is simply that you deserve an answer. :slight_smile:

1 Like

And such info, ‚Äúhow to‚ÄĚ, and ‚Äúbest practices‚ÄĚ should be in the plugins SDK docs too. It‚Äôs amazing that 2 of the most famous plugin devs for Xojo need to beg basic information.

2 Likes

The compiler we use is mostly irrelevant in your case. As a Xojo plugin developer all you really care about is the minimum system requirements. You can use whatever compiler suits your mold, but you will generally want to build on the minimum system requirements. i.e. don’t build your plugin on Ubuntu 20.04 if you still want to support Ubuntu 18.04 for example (unless you wanted to setup your own sysroot).

So I guess it means Clang 12.0 can be used instead of 3.6.

Install
(stable branch)

To retrieve the archive signature:

wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key|sudo apt-key add -
# Fingerprint: 6084 F3CF 814B 57C1 CF12 EFD5 15CF 4D18 AF4F 7421

To install just clang, lld and lldb (12 release):

apt-get install clang-12 lldb-12 lld-12

To install all key packages:

# LLVM
apt-get install libllvm-12-ocaml-dev libllvm12 llvm-12 llvm-12-dev llvm-12-doc llvm-12-examples llvm-12-runtime
# Clang and co
apt-get install clang-12 clang-tools-12 clang-12-doc libclang-common-12-dev libclang-12-dev libclang1-12 clang-format-12 python-clang-12 clangd-12
# libfuzzer
apt-get install libfuzzer-12-dev
# lldb
apt-get install lldb-12
# lld (linker)
apt-get install lld-12
# libc++
apt-get install libc++-12-dev libc++abi-12-dev
# OpenMP
apt-get install libomp-12-dev

I guess my question was related to this one here:

Where Joe said Xojo used 3.6 to ensure library compatibility across Linux versions.

But I guess if that no longer applies I could try newer version as suggested.