This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] Run gdb.compile/*.exp on {x86,x86_64,s390}-linux only


On 01/16/2018 11:50 AM, Yao Qi wrote:
> I see many gdb.compile/*.exp fails on aarch64-linux and arm-linux,
> 
> (gdb) compile code -- ;
> Could not find a compiler matching "^arm(-[^-]*)?-linux(-gnu)?-gcc$"
> (gdb) compile code -- ;
> aarch64-none-linux-gnu-gcc: error: unrecognized command line option '-m64'
> 
> I think we need to properly skip tests on targets which don't support
> compile.  As far as I know, gdb compile is supported on x86, x86_64,
> and s390.

OOC, how did you determine which archs support it?  What is needed to
support compile on other Linux archs?

Isn't the aarch64 issue simply that it's missing a
gdbarch_gcc_target_options implementation to override the default
of "-m64"?

> I think we need to properly skip tests on targets which don't support
> compile.  As far as I know, gdb compile is supported on x86, x86_64,
> and s390.
> 
> This patch matches the target triplet in
> lib/gdb.exp:skip_compile_feature_tests.  If the target triplet is
> *not* x86,x86_64, and s390 linux, return 1; otherwise, do the
> "compile code -- ;" test.
> 
> An alternative approach is to modify lib/gdb.exp:skip_compile_feature_tests
> to match these error messages above.  However, these error message is
> from libcc1, subject to change, and other targets may have different
> error messages from libcc1.

A problem with white listing is the list tends to stay with the few
initial entries.  Forks working on other ports tend to not notice
the feature gated by the check exists and needs work, because they
never had to actively look at the failures and decide to blacklist
their port, or actually fix the underlying gdb issue.  Witness the
multiple cases of things like:

 # Until "catch fork" is implemented on other targets...
 #
 if { ![istarget "*-*-linux*"] && ![istarget "*-*-openbsd*"] } then {

... which is stale in the sense that other ports have grown fork
support over time, but nobody updated the tests...

So while whitelisting is the practical thing to do in many cases,
I think it doesn't hurt to raise the bar a little higher in
this case.

So "goto again;": Isn't the aarch64 issue simply that it's missing a
gdbarch_gcc_target_options implementation to override the default
of "-m64"?  What else is missing?

Thanks,
Pedro Alves


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]