This patch fixes mktargetsrc.py if gm2 fails to run. With this
patch mktargetsrc.py will remove any output file and any temporary
file before exiting with a non zero status. This prevents def2doc.py
from spinning attempting to read the first 8192 bytes of a zero
length file. mktargetsrc.py now defensively invokes gm2 with -S
preventing the driver from invoking an assembler which might not be
installed. Bootstrapped on Debian x86_64 and FreeBSD15. The build
fails appropriately when configured with --target=nvptx-none.
gcc/m2/ChangeLog:
PR modula2/126911
* tools-src/mktargetsrc.py (quietSystem): Add temporaryFile
parameter.
Tidy up if result is non zero by removing temporaryFile
and args.outputfile.
Signed-off-by: Gaius Mulley <[email protected]>
---
gcc/m2/tools-src/mktargetsrc.py | 13 ++++++++-----
1 file changed, 8 insertions(+), 5 deletions(-)
diff --git a/gcc/m2/tools-src/mktargetsrc.py b/gcc/m2/tools-src/mktargetsrc.py
index cd61ecec87c..34c19233043 100644
--- a/gcc/m2/tools-src/mktargetsrc.py
+++ b/gcc/m2/tools-src/mktargetsrc.py
@@ -38,7 +38,7 @@ def printf (format, *args):
print(str(format) % args, end=' ')
-def quietSystem(args, commandLine):
+def quietSystem(args, commandLine, temporaryFile):
# Execute commandline and exit if unsuccessful. It will run
# gdb on the command line if --gdb is set in args.
if args.gdb:
@@ -46,6 +46,9 @@ def quietSystem(args, commandLine):
else:
result = os.system(commandLine + " 2>&1 /dev/null")
if result != 0:
+ os.remove(temporaryFile)
+ if (args.outputfile != None) and os.path.exists(args.outputfile):
+ os.remove(args.outputfile)
printf("failed to execute: %s with an exit code: %d\n",
commandLine, result)
sys.exit(result)
@@ -397,14 +400,14 @@ def determineBuiltins(args, includePath):
if args.fiso or (not args.fpim):
dialect = '-fiso'
compiler = stripBackslash(args.compiler)
- commandLine = "%s %s %s %s -c -fdump-system-exports -o /dev/null %s > %s"
% (
+ commandLine = "%s %s %s %s -S -fdump-system-exports -o /dev/null %s > %s"
% (
compiler, dialect, includePath, minimalCommandLine,
args.modinputfile, temporaryFile)
- quietSystem(args, commandLine)
- commandLine = "%s %s %s %s -c -fdump-builtins %s >> %s" % (
+ quietSystem(args, commandLine, temporaryFile)
+ commandLine = "%s %s %s %s -S -fdump-builtins %s >> %s" % (
compiler, dialect, includePath, minimalCommandLine,
args.modinputfile, temporaryFile)
- quietSystem(args, commandLine)
+ quietSystem(args, commandLine, temporaryFile)
generateSource(args, temporaryFile)
os.remove(temporaryFile)
--
2.47.3