[PATCH] D53651: [clangd] Use thread pool for background indexing.

Mikael Holmén via cfe-commits cfe-commits at lists.llvm.org
Wed Nov 7 02:34:34 PST 2018



On 11/7/18 11:31 AM, Sam McCall wrote:
> I'll send a patch shortly to unbreak this.
> 
> Is emitting a warning a problem for you? (i.e. do you build with -Werror)

Yes "unfortunately" we use -Werror.

> I'd like to do something like #ifdef SCHED_IDLE ... #else #warning "old 
> libc?" #endif
> That way if this isn't actually working we'll break in linux 
> configurations covered by -Werror bots, we'll notice.
> 

I can always remove the #warning locally if you want to give a warning 
about it but nicest for me would of course be if it was silent. :)

/Mikael

> On Wed, Nov 7, 2018 at 11:22 AM Mikael Holmén 
> <mikael.holmen at ericsson.com <mailto:mikael.holmen at ericsson.com>> wrote:
> 
>     Hi,
> 
>     On 11/7/18 11:03 AM, Sam McCall wrote:
>      > On Wed, Nov 7, 2018 at 10:32 AM Mikael Holmén via Phabricator
>      > <reviews at reviews.llvm.org <mailto:reviews at reviews.llvm.org>
>     <mailto:reviews at reviews.llvm.org <mailto:reviews at reviews.llvm.org>>>
>     wrote:
>      >
>      >     uabelho added a comment.
>      >
>      >     Hi,
>      >
>      >     I've got a post-review comment about the use of SCHED_IDLE vs the
>      >     needed gcc version.
>      >
>      >
>      >
>      >     ================
>      >     Comment at: clang-tools-extra/trunk/clangd/Threading.cpp:110
>      >     +      T.native_handle(),
>      >     +      Priority == ThreadPriority::Low ? SCHED_IDLE :
>     SCHED_OTHER,
>      >     &priority);
>      >     +#endif
>      >     ----------------
>      >     I noticed that when I compile this with gcc 5.4.0, I get a
>      >     compilation error about SCHED_IDLE not being defined.
>      >     Indeed, if I look in sched.h used with gcc 5.4.0, these are the
>      >     SCHED_* definitions:
>      >
>      > Sorry for the breakage here!
>      >
>      > sched.h comes from glibc, rather than GCC.
>      > SCHED_IDLE was added in glibc 2.12, which is considerably older
>     than any
>      > supported compiler (2010, vs 2013 for gcc 4.8 and 2016 for gcc 5.4).
>      >
>      > I don't think there's a documented policy on libc versions...
>     what does
>      > this system look like? (e.g. glibc version, distribution?)
> 
>     Ok, we're apparently using glibc 2.11.3. A bit too old then :/
> 
>     We're cross-compiling llvm using rather old gcc and glibc versions so
>     that it will work on a number of different machines with different OS
>     versions that our users have.
> 
>     /Mikael
> 
>      >
>      > (It seems like it would be OK to #ifdef SCHED_IDLE here and do
>     nothing
>      > the libc is just too old, but it may mask other problems we'd
>     want to
>      > know about).
>      >
>      >     ```
>      >     /* Scheduling algorithms.  */
>      >     #define SCHED_OTHER     0
>      >     #define SCHED_FIFO      1
>      >     #define SCHED_RR        2
>      >     #ifdef __USE_GNU
>      >     # define SCHED_BATCH    3
>      >     #endif
>      >     ```
>      >     I suppose SCHED_IDLE was added in some later version...
>      >
>      >     On
>      >
>     https://llvm.org/docs/GettingStarted.html#host-c-toolchain-both-compiler-and-standard-library
>      >     it says that gcc 4.8 should work, but it doesn't now then?
>      >
>      >
>      >
>      >     Repository:
>      >        rL LLVM
>      >
>      > https://reviews.llvm.org/D53651
>      >
>      >
>      >
> 



More information about the cfe-commits mailing list