Don't pass empty options to GCC
authorLuis Machado <luis.machado@linaro.org>
Wed, 24 Mar 2021 14:12:46 +0000 (11:12 -0300)
committerLuis Machado <luis.machado@linaro.org>
Mon, 29 Mar 2021 14:59:50 +0000 (11:59 -0300)
commit9b8ffbf410f4482a51a443872758aa51ae20426f
tree54122f29d46d8d7dbc38f0f67ebf8f8e3f6c136b
parentfa167b002fd7c02adf63bf7b5dbf60ca625ec9b5
Don't pass empty options to GCC

On aarch64-linux, I noticed the compile command didn't work at all.  It
always gave the following error:

aarch64-linux-gnu-g++: error: : No such file or directory

Turns out we're passing an empty argv entry to GCC (because aarch64 doesn't
have a -m64 option), and GCC's behavior is to think that is a file it needs
to open.  One can reproduce it like so:

gcc "" "" "" ""
gcc: error: : No such file or directory
gcc: error: : No such file or directory
gcc: error: : No such file or directory
gcc: error: : No such file or directory
gcc: fatal error: no input files
compilation terminated.

The solution is to check for an empty string and skip adding that to argv.

Regression tested on aarch64-linux/Ubuntu 18.04/20.04.

gdb/ChangeLog:

2021-03-29  Luis Machado  <luis.machado@linaro.org>

* compile/compile.c (get_args): Don't add empty argv entries.
gdb/ChangeLog
gdb/compile/compile.c