In that case, RTTI and exception should also be disabled from CMake generated projects right? Currently they are enabled all over my MSVC projects. On Thu, Oct 14, 2010 at 3:57 AM, Duncan Sands <baldrick at free.fr> wrote:> Hi Al, > >> It's good that llvm/lib builds with exceptions and RTTI disabled as it >> supports doing optimization and codegen on very constrained platforms. >> Judging by REQUIRES_EH in makefiles, only a few bits like TableGen, llvm-ar >> and llvm-ranlib need them, and I doubt these would need to run on a target. >> It's unlikely exceptions would get in in a random patch, because it would >> have to change the makefile; but even so, it would be useful to know that >> it's due to a definite design rule (assuming that's the case). >> Maybe this could be added to http://llvm.org/docs/CodingStandards.html ? > > yes, it's a definite design rule. Can you please send a doc patch for > CodingStandards with some appropriate text in it. > > Thanks a lot, > > Duncan. > _______________________________________________ > LLVM Developers mailing list > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev >
Hi Francois,> In that case, RTTI and exception should also be disabled from CMake > generated projects right? > Currently they are enabled all over my MSVC projects.I'm not sure what you are asking. The goal is for LLVM to not require RTTI or exception handling. Thus these can be disabled by the build system (by specifying -fno-rtti etc), since they won't be used anyway. Not disabling them won't break anything however. Ciao, Duncan.> > On Thu, Oct 14, 2010 at 3:57 AM, Duncan Sands<baldrick at free.fr> wrote: >> Hi Al, >> >>> It's good that llvm/lib builds with exceptions and RTTI disabled as it >>> supports doing optimization and codegen on very constrained platforms. >>> Judging by REQUIRES_EH in makefiles, only a few bits like TableGen, llvm-ar >>> and llvm-ranlib need them, and I doubt these would need to run on a target. >>> It's unlikely exceptions would get in in a random patch, because it would >>> have to change the makefile; but even so, it would be useful to know that >>> it's due to a definite design rule (assuming that's the case). >>> Maybe this could be added to http://llvm.org/docs/CodingStandards.html ? >> >> yes, it's a definite design rule. Can you please send a doc patch for >> CodingStandards with some appropriate text in it. >> >> Thanks a lot, >> >> Duncan. >> _______________________________________________ >> LLVM Developers mailing list >> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu >> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev >>
On Thu, Oct 14, 2010 at 4:09 PM, Duncan Sands <baldrick at free.fr> wrote:> Hi Francois, > >> In that case, RTTI and exception should also be disabled from CMake >> generated projects right? >> Currently they are enabled all over my MSVC projects. > > I'm not sure what you are asking. The goal is for LLVM to not require > RTTI or exception handling. Thus these can be disabled by the build > system (by specifying -fno-rtti etc), since they won't be used anyway. > Not disabling them won't break anything however.I am saying that if the makefile build system disables RTTI and exception handling the CMake build system should also disable them. 3 reasons: - To be consistent with the makefile build - It will generate a compile error if someone who is not aware of the rules try to use RTTI or exceptions. - Surely there will be a small code size gain after disabling RTTI. (let's me measure it) I am not a CMake expert (hello Oscar!), but if nobody fix it. I'll try to do it myself. +1 for not allowing exception in LLVM and clang. I never liked exceptions.
Reasonably Related Threads
- [LLVMdev] Why are the tablegen files excluded from source lists/
- [LLVMdev] Building poolalloc with current LLVM development branch?
- [LLVMdev] Building poolalloc with current LLVM development branch?
- llc error
- [LLVMdev] Building poolalloc with current LLVM development branch?