[LTP] [PATCH] [RFC] zram01: Fix on ppc64le

Cyril Hrubis
2017-02-09T14:56:48Z

Hi!
> > It's especially there for code that defines TST_NO_DEFAULT_MAIN but one
> > can argue that this is special case and if you define that macro you
> > should know what you are doing anyway...
> >
> > But still I prefer to throw error message instead of segfaulting while
> > trying to deference NULL pointer.
>
> I was suggesting we skip update_results(), not to let it segfault.

Sorry I was blind. That makes much more sense. Let's go with that one,
instead of the:

"[LTP] [PATCH 1/6] tst_test: Allow priting TINFO without initialized IPC"

> > > > Maybe
> > > > we could patch things up so that we could use SAFE_MACROS() in cleanup
> > > > as well...
> > >
> > > This should be doable with some flag we set in do_test_cleanup(), to skip
> > > further calls.
> >
> > I'm nearly finished with RFC patch. The main problem is the
> > __attribute__((noreturn)) that has been added for various tst_brk*
> > variants. So in the end it looks like only solution is to do the
> > tst_brk_() redirection in the safe_macros.c, since we cannot return from
> > tst_brkm_() since the return address is not stored on stack because it
> > has noreturn attribute. And dropping the noreturn attribute from
> > tst_brkm_() is not an option either, since that generates a ton of
> > "control reaches end of non-void function" warnings.
>
> Vast majority is from single header file:
>
> $ grep "reaches end of non-void" log.txt | sort | uniq | wc -l
> 328
>
> $ grep "reaches end of non-void" log.txt | sort | uniq | grep compat_16.h | wc -l
> 289

That is still 39 occurences to fix all over the place plus the
compat_16.h header. Have a look at the patch I've just send, I think
that it's a bit easier than patching all the tests to avoids warnings...