# 86 Duino Debug Log ## Envrioment(`unmae-a`) Linux 6.8.0-48-generic #48~22.04.1-Ubuntu ## Building IASL 20130626 ... failed build-coreboot/coreboot/util/crossgcc/acpica-unix-20130626/source/compiler ```bash= /usr/bin/ld: obj/aslcompilerparse.o:(.bss+0x8): multiple definition of `AslCompilerlval'; obj/aslcompilerlex.o:(.bss+0x8): first defined here /usr/bin/ld: obj/prparserlex.o:(.bss+0x0): multiple definition of `LexBuffer'; obj/dtparserlex.o:(.bss+0x0): first defined here /usr/bin/ld: obj/dbfileio.o:(.bss+0x0): multiple definition of `AcpiGbl_DebugFile'; obj/aslmain.o:(.bss+0x3350): first defined here ``` (.bss+0x8): first defined here 判斷應該是撞到(因為First defined 是其他.c) 代表缺少extern * aslcompilerparse.o vs aslcompilerlex.o : AslCompilerlval * aslcompiler.y.h 有寫extern YYSTYPE AslCompilerlval , 但是只有aslcompilerlex.c 有include , aslcompilerparse 缺少include * 根據log bison -v -d -y -pAslCompiler -oobj/aslcompilerparse.c ../../../source/compiler/aslcompiler.y * 輸出 aslcompilerparse.c 輸入 aslcompiler.y * 先找找看aslcompiler.y 有沒有新版的Source Code * IASL_VERSION=20130626 now version * https://github.com/acpica/acpica/releases/tag/R06_26_13 (https://downloadmirror.intel.com/774561/acpica-unix-20130626.tar.gz) * https://github.com/acpica/acpica/releases/tag/R07_25_13 no update * https://github.com/acpica/acpica/commits/master/source/compiler/aslcompiler.l * https://github.com/acpica/acpica/commit/01ab8c6dd686139d0ccc4651cc90387081b59e09 * prparserlex.o vs dtparserlex.o : LexBuffer * https://github.com/acpica/acpica/commit/fa605f87907370b40e91e1eb90a284fd6177df59 * dbfileio.o vs aslmain.o : AcpiGbl_DebugFile * https://github.com/acpica/acpica/commit/4d8796b767f40b3c5ba4005fb1a93d1beb732975 * modify acglobal.h to `extern ACPI_FILE ACPI_INIT_GLOBAL (AcpiGbl_DebugFile, NULL);` Patch File ``` From eaaf907de6a7ada5be8f51e98c7c8dd6652dd1f6 Mon Sep 17 00:00:00 2001 From: Yu-Ti Kuo <bobgash2@gmail.com> Date: Mon, 18 Nov 2024 21:54:28 +0800 Subject: [PATCH] Fix Linker Error in new compiler --- source/compiler/aslcompiler.l | 1 - source/compiler/aslglobal.h | 2 -- source/compiler/dtparser.l | 2 +- source/compiler/prparser.l | 2 +- source/components/debugger/dbfileio.c | 8 -------- source/include/platform/acenv.h | 9 +++++++++ source/os_specific/service_layers/osunixxf.c | 1 - source/os_specific/service_layers/oswinxf.c | 1 - source/tools/acpibin/acpibin.h | 1 - source/tools/acpiexec/aecommon.h | 1 - source/tools/acpinames/anmain.c | 1 - source/tools/examples/examples.c | 1 - 12 files changed, 11 insertions(+), 19 deletions(-) diff --git a/source/compiler/aslcompiler.l b/source/compiler/aslcompiler.l index f981796..c0077e4 100644 --- a/source/compiler/aslcompiler.l +++ b/source/compiler/aslcompiler.l @@ -119,7 +119,6 @@ #include <stdlib.h> #include <string.h> -YYSTYPE AslCompilerlval; /* * Generation: Use the following command line: diff --git a/source/compiler/aslglobal.h b/source/compiler/aslglobal.h index 5468711..e361737 100644 --- a/source/compiler/aslglobal.h +++ b/source/compiler/aslglobal.h @@ -303,8 +303,6 @@ ASL_EXTERN UINT32 ASL_INIT_GLOBAL (Gbl_NumNamespaceObjects, 0) ASL_EXTERN UINT32 ASL_INIT_GLOBAL (Gbl_ReservedMethods, 0); ASL_EXTERN char ASL_INIT_GLOBAL (*Gbl_TableSignature, "NO_SIG"); ASL_EXTERN char ASL_INIT_GLOBAL (*Gbl_TableId, "NO_ID"); -ASL_EXTERN FILE *AcpiGbl_DebugFile; /* Placeholder for oswinxf only */ - /* Static structures */ diff --git a/source/compiler/dtparser.l b/source/compiler/dtparser.l index bc8b22b..e2633dc 100644 --- a/source/compiler/dtparser.l +++ b/source/compiler/dtparser.l @@ -172,7 +172,7 @@ NewLine [\n] /* * Local support functions */ -YY_BUFFER_STATE LexBuffer; +static YY_BUFFER_STATE LexBuffer; /****************************************************************************** * diff --git a/source/compiler/prparser.l b/source/compiler/prparser.l index cae12cb..65f5e67 100644 --- a/source/compiler/prparser.l +++ b/source/compiler/prparser.l @@ -178,7 +178,7 @@ Identifier [a-zA-Z][0-9a-zA-Z]* /* * Local support functions */ -YY_BUFFER_STATE LexBuffer; +static YY_BUFFER_STATE LexBuffer; /****************************************************************************** diff --git a/source/components/debugger/dbfileio.c b/source/components/debugger/dbfileio.c index 768668a..ca40272 100644 --- a/source/components/debugger/dbfileio.c +++ b/source/components/debugger/dbfileio.c @@ -132,14 +132,6 @@ #define _COMPONENT ACPI_CA_DEBUGGER ACPI_MODULE_NAME ("dbfileio") -/* - * NOTE: this is here for lack of a better place. It is used in all - * flavors of the debugger, need LCD file - */ -#ifdef ACPI_APPLICATION -#include <stdio.h> -FILE *AcpiGbl_DebugFile = NULL; -#endif #ifdef ACPI_DEBUGGER diff --git a/source/include/platform/acenv.h b/source/include/platform/acenv.h index 3838e79..807dce3 100644 --- a/source/include/platform/acenv.h +++ b/source/include/platform/acenv.h @@ -468,4 +468,13 @@ typedef char *va_list; #endif /* ACPI_USE_SYSTEM_CLIBRARY */ +#ifndef ACPI_FILE +#ifdef ACPI_APPLICATION +#include <stdio.h> +#define ACPI_FILE FILE * +#else +#define ACPI_FILE void * +#endif /* ACPI_APPLICATION */ +#endif /* ACPI_FILE */ + #endif /* __ACENV_H__ */ diff --git a/source/os_specific/service_layers/osunixxf.c b/source/os_specific/service_layers/osunixxf.c index 4be7b9b..8544a3b 100644 --- a/source/os_specific/service_layers/osunixxf.c +++ b/source/os_specific/service_layers/osunixxf.c @@ -137,7 +137,6 @@ ACPI_MODULE_NAME ("osunixxf") -extern FILE *AcpiGbl_DebugFile; FILE *AcpiGbl_OutputFile; diff --git a/source/os_specific/service_layers/oswinxf.c b/source/os_specific/service_layers/oswinxf.c index b33920b..3e5a67d 100644 --- a/source/os_specific/service_layers/oswinxf.c +++ b/source/os_specific/service_layers/oswinxf.c @@ -136,7 +136,6 @@ ACPI_MODULE_NAME ("oswinxf") -extern FILE *AcpiGbl_DebugFile; extern BOOLEAN AcpiGbl_DebugTimeout; FILE *AcpiGbl_OutputFile; diff --git a/source/tools/acpibin/acpibin.h b/source/tools/acpibin/acpibin.h index ce476eb..6c53f1c 100644 --- a/source/tools/acpibin/acpibin.h +++ b/source/tools/acpibin/acpibin.h @@ -138,7 +138,6 @@ /* Globals */ EXTERN BOOLEAN INIT_GLOBAL (Gbl_TerseMode, FALSE); -EXTERN FILE INIT_GLOBAL (*AcpiGbl_DebugFile, NULL); /* Prototypes */ diff --git a/source/tools/acpiexec/aecommon.h b/source/tools/acpiexec/aecommon.h index 4083b69..8375bea 100644 --- a/source/tools/acpiexec/aecommon.h +++ b/source/tools/acpiexec/aecommon.h @@ -135,7 +135,6 @@ #include <string.h> #include <signal.h> -extern FILE *AcpiGbl_DebugFile; extern BOOLEAN AcpiGbl_IgnoreErrors; extern UINT8 AcpiGbl_RegionFillValue; extern UINT8 AcpiGbl_UseHwReducedFadt; diff --git a/source/tools/acpinames/anmain.c b/source/tools/acpinames/anmain.c index bd29840..1bc1741 100644 --- a/source/tools/acpinames/anmain.c +++ b/source/tools/acpinames/anmain.c @@ -121,7 +121,6 @@ extern ACPI_TABLE_DESC Tables[]; -FILE *AcpiGbl_DebugFile; static AE_TABLE_DESC *AeTableListHead = NULL; diff --git a/source/tools/examples/examples.c b/source/tools/examples/examples.c index a49353d..fa2bd02 100644 --- a/source/tools/examples/examples.c +++ b/source/tools/examples/examples.c @@ -495,7 +495,6 @@ ExecuteOSI (void) * *****************************************************************************/ -FILE *AcpiGbl_DebugFile; ACPI_PHYSICAL_ADDRESS AeLocalGetRootPointer ( -- 2.34.1 ``` ## write-crossbar.py need patch for python3 ``` From 40eaf7c199908606e5b7cf10521c84ac4e65dea1 Mon Sep 17 00:00:00 2001 From: Yu-Ti Kuo <bobgash2@gmail.com> Date: Mon, 18 Nov 2024 22:34:16 +0800 Subject: [PATCH] Change to py3 --- write-crossbar.py | 30 ++++++++++++++++++++---------- 1 file changed, 20 insertions(+), 10 deletions(-) diff --git a/write-crossbar.py b/write-crossbar.py index b2cc393..058014b 100755 --- a/write-crossbar.py +++ b/write-crossbar.py @@ -1,23 +1,33 @@ -#! /usr/bin/env python +#!/usr/bin/env python3 # Write 240 byte crossbar data into ROM file address 3FD00. import sys import os + def main(): - print "write-crossbar.py : Write CrossBar data into ROM file" + print("write-crossbar.py : Write CrossBar data into ROM file") rom_fn, cb_fn = sys.argv[1], sys.argv[2] - print "ROM file : %s, CrossBar file = %s" % (rom_fn, cb_fn) - cb_data = open(cb_fn, "rb").read() + print("ROM file : {}, CrossBar file = {}".format(rom_fn, cb_fn)) + + # Open the CrossBar data file in binary mode ('rb') + with open(cb_fn, "rb") as cb_file: + cb_data = cb_file.read() + if len(cb_data) != 240: - print "CrossBar data file length error" + print("CrossBar data file length error") sys.exit(1) + + # Check ROM file size fs = os.stat(rom_fn).st_size if fs not in [512 * 1024, 256 * 1024, 4096 * 1024]: - print "ROM file file length error" + print("ROM file length error") sys.exit(1) - rom_f = open(rom_fn, "r+b") - rom_f.seek(-0x300, 2) # seek from the end of file - rom_f.write(cb_data) - print "Write CrossBar ok" + + # Open the ROM file in read/write binary mode ('r+b') + with open(rom_fn, "r+b") as rom_f: + rom_f.seek(-0x300, 2) # seek from the end of file + rom_f.write(cb_data) + + print("Write CrossBar ok") if __name__ == "__main__": main() -- 2.34.1 ``` ## build seaBios : fatal: No names found, cannot describe anything. ``` From b56ee91eed2e345035a3255e5afa557128eebf4e Mon Sep 17 00:00:00 2001 From: Yu-Ti Kuo <bobgash2@gmail.com> Date: Mon, 18 Nov 2024 22:47:41 +0800 Subject: [PATCH] Change to Python3 --- Makefile | 2 +- scripts/buildrom.py | 2 +- scripts/buildversion.sh | 2 +- scripts/checkrom.py | 2 +- scripts/checkstack.py | 2 +- scripts/checksum.py | 2 +- scripts/encodeint.py | 2 +- scripts/layoutrom.py | 2 +- scripts/readserial.py | 2 +- scripts/transdump.py | 2 +- scripts/vgafixup.py | 2 +- 11 files changed, 11 insertions(+), 11 deletions(-) diff --git a/Makefile b/Makefile index d788ffe..03e50ad 100644 --- a/Makefile +++ b/Makefile @@ -21,7 +21,7 @@ LD=$(CROSS_PREFIX)ld OBJCOPY=$(CROSS_PREFIX)objcopy OBJDUMP=$(CROSS_PREFIX)objdump STRIP=$(CROSS_PREFIX)strip -PYTHON=python +PYTHON=python3 CPP=cpp IASL:=iasl LD32BIT_FLAG:=-melf_i386 diff --git a/scripts/buildrom.py b/scripts/buildrom.py index 0499049..821f421 100755 --- a/scripts/buildrom.py +++ b/scripts/buildrom.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # Fill in checksum/size of an option rom, and pad it to proper length. # # Copyright (C) 2009 Kevin O'Connor <kevin@koconnor.net> diff --git a/scripts/buildversion.sh b/scripts/buildversion.sh index e5ce96c..6b7895d 100755 --- a/scripts/buildversion.sh +++ b/scripts/buildversion.sh @@ -5,7 +5,7 @@ VAR16MODE="$2" # Extract version info if [ -d .git -o -f .git ]; then - VERSION="`git describe --tags --long --dirty`" + VERSION="`git describe --all --long --dirty`" elif [ -f .version ]; then VERSION="`cat .version`" else diff --git a/scripts/checkrom.py b/scripts/checkrom.py index 377277d..56a43c2 100755 --- a/scripts/checkrom.py +++ b/scripts/checkrom.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # Script to check a bios image and report info on it. # # Copyright (C) 2008 Kevin O'Connor <kevin@koconnor.net> diff --git a/scripts/checkstack.py b/scripts/checkstack.py index 62fef36..e1dd929 100755 --- a/scripts/checkstack.py +++ b/scripts/checkstack.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # Script that tries to find how much stack space each function in an # object is using. # diff --git a/scripts/checksum.py b/scripts/checksum.py index 773fa7a..87cce60 100755 --- a/scripts/checksum.py +++ b/scripts/checksum.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # Script to report the checksum of a file. # # Copyright (C) 2009 Kevin O'Connor <kevin@koconnor.net> diff --git a/scripts/encodeint.py b/scripts/encodeint.py index 0d34aee..e861d81 100755 --- a/scripts/encodeint.py +++ b/scripts/encodeint.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # Encode an integer in little endian format in a file. # # Copyright (C) 2011 Kevin O'Connor <kevin@koconnor.net> diff --git a/scripts/layoutrom.py b/scripts/layoutrom.py index b325406..d10f7e0 100755 --- a/scripts/layoutrom.py +++ b/scripts/layoutrom.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # Script to analyze code and arrange ld sections. # # Copyright (C) 2008-2010 Kevin O'Connor <kevin@koconnor.net> diff --git a/scripts/readserial.py b/scripts/readserial.py index 4f29648..ed122b8 100755 --- a/scripts/readserial.py +++ b/scripts/readserial.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # Script that can read from a serial device and show timestamps. # # Copyright (C) 2009 Kevin O'Connor <kevin@koconnor.net> diff --git a/scripts/transdump.py b/scripts/transdump.py index 665f04a..9877b33 100755 --- a/scripts/transdump.py +++ b/scripts/transdump.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # This script is useful for taking the output of memdump() and # converting it back into binary output. This can be useful, for diff --git a/scripts/vgafixup.py b/scripts/vgafixup.py index a981bbf..bc25b12 100644 --- a/scripts/vgafixup.py +++ b/scripts/vgafixup.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # Work around x86emu bugs by replacing problematic instructions. # # Copyright (C) 2012 Kevin O'Connor <kevin@koconnor.net> -- 2.34.1 ``` ## Makefile.inc:69: *** empty variable name. Stop. https://review.coreboot.org/c/coreboot/+/38958 edit Makefile.inc ``` # Helper functions for ramstage postprocess spc := spc := $(spc) $(spc) ```` ## Segmentation fault (core dumped) in coreboot make use `make -nd` Reading makefile 'src/cpu/x86/smm/Makefile.inc' (search path) (don't care) (no ~ expansion)... Segmentation fault (core dumped) src/cpu/x86/smm/Makefile.inc 裡面是可以讀取的 透過 `$(error $$DATA = $(DATA))` 找到 Makefile 執行這一行的時候會 觸發 Segmentation fault (core dumped) 註解以下的功能 ``` # Call post-processors if they're defined $(foreach class,$(classes),\ $(if $(value $(class)-postprocess),$(eval $(call $(class)-postprocess,$($(class)-objs))))) ``` ## build/util/sconfig/main.o:/home/jenskuo/Documents/86Duino/build-coreboot/coreboot/util/sconfig/sconfig.h:84: multiple definition of `head'; build/util/sconfig/sconfig.tab.o:/home/jenskuo/Documents/86Duino/build-coreboot/coreboot/util/sconfig/sconfig.h:84: first defined here sconfig\sconfig.h Change to ``` extern struct device *head; ```