diff options
author | Jung-uk Kim <jkim@FreeBSD.org> | 2015-02-05 00:09:52 +0000 |
---|---|---|
committer | Jung-uk Kim <jkim@FreeBSD.org> | 2015-02-05 00:09:52 +0000 |
commit | 2872953d4a9c9c4e0fc0b9ab37d0e962909625a0 (patch) | |
tree | d125aa97a34ea51a7841c57256f738956bc3de3d /source/compiler/aslfiles.c | |
parent | e8991236d498c9646c20a8acf0236cf3342dad6f (diff) |
Notes
Diffstat (limited to 'source/compiler/aslfiles.c')
-rw-r--r-- | source/compiler/aslfiles.c | 35 |
1 files changed, 31 insertions, 4 deletions
diff --git a/source/compiler/aslfiles.c b/source/compiler/aslfiles.c index 722e0ee9b6205..de8e1cab39b57 100644 --- a/source/compiler/aslfiles.c +++ b/source/compiler/aslfiles.c @@ -5,7 +5,7 @@ *****************************************************************************/ /* - * Copyright (C) 2000 - 2014, Intel Corp. + * Copyright (C) 2000 - 2015, Intel Corp. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -485,6 +485,8 @@ FlOpenAmlOutputFile ( 0, 0, 0, 0, NULL, NULL); return (AE_ERROR); } + + Gbl_Files[ASL_FILE_AML_OUTPUT].Filename = Filename; } /* Open the output AML file in binary mode */ @@ -563,9 +565,14 @@ FlOpenMiscOutputFiles ( if (!Gbl_Files[ASL_FILE_DEBUG_OUTPUT].Handle) { - AslCommonError (ASL_ERROR, ASL_MSG_DEBUG_FILENAME, - 0, 0, 0, 0, NULL, NULL); - return (AE_ERROR); + /* + * A problem with freopen is that on error, + * we no longer have stderr. + */ + Gbl_DebugFlag = FALSE; + memcpy (stderr, stdout, sizeof (FILE)); + FlFileError (ASL_FILE_DEBUG_OUTPUT, ASL_MSG_DEBUG_FILENAME); + AslAbort (); } AslCompilerSignon (ASL_FILE_DEBUG_OUTPUT); @@ -758,6 +765,26 @@ FlOpenMiscOutputFiles ( AslCompilerFileHeader (ASL_FILE_NAMESPACE_OUTPUT); } + /* Create/Open a map file if requested */ + + if (Gbl_MapfileFlag) + { + Filename = FlGenerateFilename (FilenamePrefix, FILE_SUFFIX_MAP); + if (!Filename) + { + AslCommonError (ASL_ERROR, ASL_MSG_LISTING_FILENAME, + 0, 0, 0, 0, NULL, NULL); + return (AE_ERROR); + } + + /* Open the hex file, text mode (closed at compiler exit) */ + + FlOpenFile (ASL_FILE_MAP_OUTPUT, Filename, "w+t"); + + AslCompilerSignon (ASL_FILE_MAP_OUTPUT); + AslCompilerFileHeader (ASL_FILE_MAP_OUTPUT); + } + return (AE_OK); } |