-
-
Notifications
You must be signed in to change notification settings - Fork 1.7k
Closed
Description
To support overflow and 128 ints property we need to either port the whole library or ship it with the compiler and link against them during compile time (as it's done with the boehm-gc).
I think the plan would be:
- update omnibus distribution-scripts llvm formula to 6.0.1.
- This will allow dropping llvm < 4 support in the codebase.
- Currently the OSX pkg link against llvm 3.9.1.
- These binaries could also be used in Linux packages if wanted.
- Currently we use the APK packages for llvm-4.0
- This will allow dropping llvm < 4 support in the codebase.
- update omnibus distribution-scripts to build llvm with compiler-rt support.
- upload llvm + compiler-rt binaries for OSX & Linux in S3
- as it is done for llvm 3.9.1 for OSX
- do a release to have the compiler-rt libraries ready to be embedded
- make compiler link the embedded compiler-rt.
When building compiler-rt there are a bunch of options and they are well described in https://embeddedartistry.com/blog/2017/2/20/compilerrt
- hard vs soft: this is floating point. Is your platform configured to support hard or soft floating point operations?
- static vs pic: is the code compiled as a static library, or are you compiling with position-independent-code? (PIC)
- i386 vs armv7x: this will be dependent upon your platform's processor. You need to pick the instruction set to match.
- The last portion of the name is the library format.
Some doubts I have are:
- Should we have a compiler option to choose specifically with which compiler-rt link against?
- Should we ship all versions of compiler-rt? of all tier-1 platforms?
- Would be safe to embed compiler-rt 6.0.1 version in Linux that use llvm 4.0? Or should we build compiler-rt 4.0 also?, or update Linux to 6.0.1?
vladfaust and bew