Re: [LTP] [PATCH] config: Explicitly set gnu99

Petr Vorel
2022-11-22T08:26:28Z

Hi all,

Reviewed-by: Petr Vorel <pvorel@suse.cz>

> Hi!
> > > I woder if this would work with different compilers. I suppose clang
> > > does work, but what about icc?

> > Clang is fine. I doubt that icc compiles LTP at present unless it does
> > support GNU extensions.

> Fair enough.

FYI The code was compiled also with -std=c99 on both gcc and clang
(just in case some strange compiler had problems with gnu99).

> > > I supose that we get tons of 'can't do pointer arithmetics on void*
> > > pointers and stuff' with plain c99. Maybe it would be better to clean
> > > these out instead.

> > https://github.com/richiejp/ltp/actions/runs/3515165803/jobs/5890081736

> > Some of this is solved by -D_XOPEN_SOURCE=700 or some other macro (we
> > need multiple). However it doesn't end there:

> > make STDCFLAGS='-std=c2x -D_XOPEN_SOURCE=700'
> > make -C "lib" \
> > -f "/home/rich/qa/ltp/lib/Makefile" all
> > make[1]: Entering directory '/home/rich/qa/ltp/lib'
> > In file included from ../include/old/test.h:37,
> > from get_path.c:41:
> > get_path.c: In function ‘tst_get_path’:
> > ../include/tst_minmax.h:10:9: warning: implicit declaration of function ‘typeof’ [-Wimplicit-function-declaration]
> > 10 | typeof(a) _a = (a); \
> > | ^~~~~~

> Hmm that's strange, supposedly typeof() is finally standartized in c2x,
> but it would be obviously missing from anything older.

> > We probably also use 'x ?: y' and stuff like that.

> > So this opens up a rats nest basically.

> Sigh, well LTP was never a nice codebase, at least it compiles most of
> the time these days.

Kind regards,
Petr