On 18 Aug 2015, at 17:23, Joerg Sonnenberger via llvm-dev <llvm-dev at lists.llvm.org> wrote:> > Freestanding code is still documented to require memset and a few other > things.I had found a few messages mentioning that they are required when generating freestanding code with clang (and GCC), but nothing about llvm. Could you point me to that documentation so I know what I have to provide? Thanks, Jonas
On Wed, Aug 19, 2015 at 09:04:00AM +0200, Jonas Maebe via llvm-dev wrote:> > > On 18 Aug 2015, at 17:23, Joerg Sonnenberger via llvm-dev <llvm-dev at lists.llvm.org> wrote: > > > > Freestanding code is still documented to require memset and a few other > > things. > > I had found a few messages mentioning that they are required when > generating freestanding code with clang (and GCC), but nothing about > llvm. Could you point me to that documentation so I know what I have > to provide?I don't think you will find any other documentation. Basically, memset and co will still be emitted if the number of operations is beyond a certain threshold. Joerg
[accidentally replied in private the first time, sorry] On 19/08/15 14:16, Joerg Sonnenberger via llvm-dev wrote:> On Wed, Aug 19, 2015 at 09:04:00AM +0200, Jonas Maebe via llvm-dev wrote: >> >> I had found a few messages mentioning that they are required when >> generating freestanding code with clang (and GCC), but nothing about >> llvm. Could you point me to that documentation so I know what I have >> to provide? > > I don't think you will find any other documentation. Basically, memset > and co will still be emitted if the number of operations is beyond a > certain threshold.The definition of freestanding in the C standard means that everything from <float.h>, <limits.h>, <stdarg.h>, <stddef.h> and <iso646.h> needs to be available. That's rather a lot of stuff to add for a run time library that is not based on the C library in any way. Jonas