"varverify32init.patch" in the attachments. To apply a patch please copy it
to the coreboot directory, "cd" to coreboot, and - if seabios is already cloned
(e.g. after building a coreboot once, followed by a "make clean" of course)
run " patch -l -p1 < varverify32init.patch "

Sorry, my previous message had a typo, the final results for testfunc() :

(1) = OK, inside " cbfs_copyfile "
(2) = OK, inside " coreboot_cbfs_init "
(3) = ERR, inside " cbfs_run_payload "

P.S. I'm using the default "menuconfig" settings, "emulation/qemu-i440fx" target

Best regards,
Mike

On Sun, Feb 25, 2018 at 11:55 AM, Paul Menzel <pmen...@molgen.mpg.de> wrote:
> Dear Mike,
>
>
> Am 25.02.2018 um 01:05 schrieb Mike Banon:
>>
>> Friends, I need your help. While trying to improve SeaBIOS I got stuck
>> at this very strange problem - which does not appear when you do a
>> standalone build of SeaBIOS but it happens when you try building a
>> coreboot together with SeaBIOS. Steps to reproduce:
>
>
> Please attach your patch, so that it can easily applied and the build
> problem reproduced.
>
> […]
>
>
> Kind regards,
>
> Paul
diff -rupN ./payloads/external/SeaBIOS/seabios/src/fw/coreboot.c ./payloads/external/SeaBIOS/seabios/src/fw/coreboot.c
--- ./payloads/external/SeaBIOS/seabios/src/fw/coreboot.c	2018-02-25 14:00:00.000000000 +0200
+++ ./payloads/external/SeaBIOS/seabios/src/fw/coreboot.c	2018-02-25 14:00:00.000000000 +0200
@@ -273,6 +273,18 @@
     find_acpi_features();
 }
 
+/*
+   (1) = OK, cbfs_copyfile
+   (2) = OK, coreboot_cbfs_init
+   (3) = ERR, cbfs_run_payload
+*/
+
+int // doesn't matter if static or not
+testfunc(void) {
+    int *c = malloc_tmp(sizeof(int)); // doesn't matter if _tmp or _tmphigh
+    // free(c); // <--- commented out because doesn't affect the results
+    return 0;
+}
 
 /****************************************************************
  * ulzma
@@ -368,6 +380,7 @@ static int cbfs_copyfile
         }
         iomemcpy(temp, src, size);
         int ret = ulzma(dst, maxlen, temp, size);
+        testfunc(); // (1) <--- works OK there
         yield();
         free(temp);
         return ret;
@@ -478,6 +491,7 @@ void coreboot_cbfs_init
     }
 
     process_links_file();
+    testfunc(); // (2) <--- works OK there
 }
 
 struct cbfs_payload_segment {
@@ -533,6 +547,7 @@ void cbfs_run_payload
             } else if (CONFIG_LZMA
                        && seg->compression == cpu_to_be32(CBFS_COMPRESS_LZMA)) {
                 int ret = ulzma(dest, dest_len, src, src_len);
+                testfunc(); // (3) <--- gives "is VARVERIFY32INIT but used from" error
                 if (ret < 0)
                     return;
                 src_len = ret;
_______________________________________________
SeaBIOS mailing list
SeaBIOS@seabios.org
https://mail.coreboot.org/mailman/listinfo/seabios

Reply via email to