[libcxx-commits] [PATCH] D154246: [libc++] Add check for building with picolibc
Alexander Richardson via Phabricator via libcxx-commits
libcxx-commits at lists.llvm.org
Mon Oct 30 22:28:26 PDT 2023
arichardson added inline comments.
================
Comment at: libcxx/test/configs/armv7m-libc++.cfg.in:17
+ # which for picolibc is defined in picolibc.h.
+ ' -include picolibc.h'
+))
----------------
michaelplatings wrote:
> arichardson wrote:
> > Doesn't this mean the library can't be used without adding this include to any build system that is trying to use libc++ with picolibc? I think it would be a lot cleaner if we could just add the required includes to the libc++ source code?
> >
> > As far as I recall from the last time I tried to use libc++ with picolibc this was not needed but I may have been building a slightly different configuration
> > Doesn't this mean the library can't be used without adding this include to any build system that is trying to use libc++ with picolibc?
>
> Most libc++ headers already indirectly include picolibc.h so most of the time this isn't a problem in practice. It's a minority of tests that fail without this include.
>
> > I think it would be a lot cleaner if we could just add the required includes to the libc++ source code?
>
> I agree with you that it would be cleaner to remove this line and instead change the libc++ headers. However I can imagine that adding extra includes could cause undesirable knock-on effects. I think it's best to limit the scope of this change to only adding the test setup and not touching libc++ itself.
Do you have a list of tests that fail? If it's just a few maybe the better solution is to add the fixme to REQUIRES?
================
Comment at: libcxx/test/configs/armv7m-libc++.cfg.in:38
+# using this feature.
+config.available_features.add('LIBCXX-PICOLIBC-FIXME')
+
----------------
michaelplatings wrote:
> arichardson wrote:
> > Could this be autodetected instead by checking for the presence of the picolibc header? Then it would also work out of the box with the default config file.
> I don't think we can infer that we're targeting picolibc from the presence of the header. It might also happen to be on an include path in a scenario in which another platform is targeted. I think it's best to be explicit here.
I meant trying to compile something like the following:
```
#include <stdio.h>
#ifndef __PICOLIBC__
#error not picolibc
#endif
```
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D154246/new/
https://reviews.llvm.org/D154246
More information about the libcxx-commits
mailing list