40 lines
1.6 KiB
Diff
40 lines
1.6 KiB
Diff
|
On s390, GCC does not like the string initialization in this case. When
|
||
|
ValueToWrite is initialized this way, GCC tries to copy the entire string
|
||
|
into an ACPI_OBJECT instead of just the pointer (see the use in the call
|
||
|
to memcpy()). So, move the init so GCC recognizes that ValueToWrite is
|
||
|
only a pointer, and not a whole string that needs to be moved.
|
||
|
|
||
|
diff -Naur acpica-unix2-20200214.orig/source/components/debugger/dbtest.c acpica-unix2-20200214/source/components/debugger/dbtest.c
|
||
|
--- acpica-unix2-20200214.orig/source/components/debugger/dbtest.c 2020-02-14 10:33:54.000000000 -0700
|
||
|
+++ acpica-unix2-20200214/source/components/debugger/dbtest.c 2020-02-25 10:50:42.793372070 -0700
|
||
|
@@ -719,9 +719,10 @@
|
||
|
ACPI_OBJECT *Temp1 = NULL;
|
||
|
ACPI_OBJECT *Temp2 = NULL;
|
||
|
ACPI_OBJECT *Temp3 = NULL;
|
||
|
- char *ValueToWrite = "Test String from AML Debugger";
|
||
|
+ char *ValueToWrite = NULL;
|
||
|
ACPI_OBJECT WriteValue;
|
||
|
ACPI_STATUS Status;
|
||
|
+ const char *TestStr = "Test String from AML Debugger";
|
||
|
|
||
|
|
||
|
/* Read the original value */
|
||
|
@@ -737,6 +738,9 @@
|
||
|
|
||
|
/* Write a new value */
|
||
|
|
||
|
+ ValueToWrite = AcpiOsAllocateZeroed(strlen(TestStr)+1);
|
||
|
+ strncpy(ValueToWrite, TestStr, strlen(TestStr));
|
||
|
+
|
||
|
WriteValue.Type = ACPI_TYPE_STRING;
|
||
|
WriteValue.String.Length = strlen (ValueToWrite);
|
||
|
WriteValue.String.Pointer = ValueToWrite;
|
||
|
@@ -790,6 +794,7 @@
|
||
|
if (Temp1) {AcpiOsFree (Temp1);}
|
||
|
if (Temp2) {AcpiOsFree (Temp2);}
|
||
|
if (Temp3) {AcpiOsFree (Temp3);}
|
||
|
+ if (ValueToWrite) {AcpiOsFree (ValueToWrite);}
|
||
|
return (Status);
|
||
|
}
|
||
|
|