73 lines
2.3 KiB
Diff
73 lines
2.3 KiB
Diff
|
From 69171c22f3872ecb4c1ab27985e93ca44084595e Mon Sep 17 00:00:00 2001
|
||
|
From: Fan Xin <fan.xin@jp.fujitsu.com>
|
||
|
Date: Mon, 5 Jun 2017 13:26:38 +0900
|
||
|
Subject: [PATCH] aslfiles.c: manipulate fds instead of FILE
|
||
|
|
||
|
Copying what stdout/stderr point to is not portable and fails with
|
||
|
musl because FILE is an undefined struct.
|
||
|
|
||
|
Instead, use lower-level Unix functions to modify the file that stderr
|
||
|
writes into. This works on the platforms that Yocto targets.
|
||
|
|
||
|
Upstream-Status: Inappropriate [embedded specific]
|
||
|
|
||
|
Signed-off-by: Patrick Ohly <patrick.ohly@intel.com>
|
||
|
|
||
|
Rebase on acpica 20170303
|
||
|
|
||
|
Signed-off-by: Fan Xin <fan.xin@jp.fujitsu.com>
|
||
|
---
|
||
|
acpica-unix2-20170303/source/compiler/aslfiles.c | 14 +++++++++++---
|
||
|
1 file changed, 11 insertions(+), 3 deletions(-)
|
||
|
|
||
|
diff --git a/acpica-unix2-20170303/source/compiler/aslfiles.c b/acpica-unix2-20170303/source/compiler/aslfiles.c
|
||
|
index 809090c..97898b1 100644
|
||
|
--- a/acpica-unix2-20170303/source/compiler/aslfiles.c
|
||
|
+++ b/acpica-unix2-20170303/source/compiler/aslfiles.c
|
||
|
@@ -44,6 +44,10 @@
|
||
|
#include "aslcompiler.h"
|
||
|
#include "acapps.h"
|
||
|
#include "dtcompiler.h"
|
||
|
+#include <sys/types.h>
|
||
|
+#include <sys/stat.h>
|
||
|
+#include <fcntl.h>
|
||
|
+#include <unistd.h>
|
||
|
|
||
|
#define _COMPONENT ACPI_COMPILER
|
||
|
ACPI_MODULE_NAME ("aslfiles")
|
||
|
@@ -607,6 +611,8 @@ FlOpenMiscOutputFiles (
|
||
|
|
||
|
if (Gbl_DebugFlag)
|
||
|
{
|
||
|
+ int fd;
|
||
|
+
|
||
|
Filename = FlGenerateFilename (FilenamePrefix, FILE_SUFFIX_DEBUG);
|
||
|
if (!Filename)
|
||
|
{
|
||
|
@@ -618,10 +624,10 @@ FlOpenMiscOutputFiles (
|
||
|
/* Open the debug file as STDERR, text mode */
|
||
|
|
||
|
Gbl_Files[ASL_FILE_DEBUG_OUTPUT].Filename = Filename;
|
||
|
- Gbl_Files[ASL_FILE_DEBUG_OUTPUT].Handle =
|
||
|
- freopen (Filename, "w+t", stderr);
|
||
|
|
||
|
- if (!Gbl_Files[ASL_FILE_DEBUG_OUTPUT].Handle)
|
||
|
+ fd = open(Filename, O_CREAT|O_TRUNC, S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH);
|
||
|
+ if (fd < 0 ||
|
||
|
+ dup2(fd, fileno(stderr)))
|
||
|
{
|
||
|
/*
|
||
|
* A problem with freopen is that on error, we no longer
|
||
|
@@ -635,6 +641,8 @@ FlOpenMiscOutputFiles (
|
||
|
exit (1);
|
||
|
}
|
||
|
|
||
|
+ Gbl_Files[ASL_FILE_DEBUG_OUTPUT].Handle = stderr;
|
||
|
+
|
||
|
AslCompilerSignon (ASL_FILE_DEBUG_OUTPUT);
|
||
|
AslCompilerFileHeader (ASL_FILE_DEBUG_OUTPUT);
|
||
|
}
|
||
|
--
|
||
|
1.9.1
|
||
|
|