Hi Josh: I am looking into integrating bios bits into Qemu functional tests for acpi. Towards that end, I am trying to compile the code on a newer compiler as we might need to make some changes, for example, update acpica so that it can recognize newer tables etc.
gcc (Ubuntu 9.4.0-1ubuntu1~20.04.1) 9.4.0 Since grub/python etc are quite old in the tree, on the newer copiler it does not build out of the box (it does however build fine on my centos 7.9 vm with gcc version 4.8.5 20150623 (Red Hat 4.8.5-44)). I have resolved a number of issues and warnings when compiling it on the new version of gcc. I will at some point clean then up and share the changes through my github (most are cosmetic). However, there is one last issue which I am not able to get past: _GLOBAL_OFFSET_TABLE_ in python is not defined $ nm -g -P -p --undefined build/grub-build-i386-pc/grub-core/python.module | grep -i global _GLOBAL_OFFSET_TABLE_ U I have made the following change in rc/python/Makefile.core.def but with no help: --- a/rc/python/Makefile.core.def +++ b/rc/python/Makefile.core.def @@ -29,7 +29,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. module = { name = python; cppflags = '-I$(top_srcdir)/contrib/python -I$(srcdir)/contrib-deps/python/Include -D_IEEE_LIBM -D__LITTLE_ENDIAN= -I$(srcdir)/contrib-deps/fdlibm $(CONTRIB_CPPFLAGS) -include contrib/acpica/acenv.h -DGRUB2 -DACPI_LIBRARY -I$(top_srcdir)/contrib/acpica -I$(srcdir)/contrib-deps/acpica/source/include -U__ELF__ -I$(srcdir)/contrib-deps/libffi/include -I$(srcdir)/contrib-deps/libffi/src/x86 -I$(srcdir)/contrib-deps/python/Modules/zlib'; - cflags = '$(CONTRIB_CFLAGS) -fshort-wchar -maccumulate-outgoing-args -Wno-empty-body -Wno-float-equal -Wno-maybe-uninitialized -Wno-missing-field-initializers -Wno-missing-declarations -Wno-missing-format-attribute -Wno-missing-noreturn -Wno-missing-prototypes -Wno-nested-externs -Wno-old-style-definition -Wno-parentheses -Wno-redundant-decls -Wno-sign-compare -Wno-shadow -Wno-shift-negative-value -Wno-type-limits -Wno-undef -Wno-uninitialized -Wno-unused -Wno-unused-parameter -Wno-unused-value -Wno-unused-variable -Wno-write-strings'; + cflags = '$(CONTRIB_CFLAGS) -fshort-wchar -fno-pie -no-pie -maccumulate-outgoing-args -Wno-empty-body -Wno-float-equal -Wno-maybe-uninitialized -Wno-missing-field-initializers -Wno-missing-declarations -Wno-missing-format-attribute -Wno-missing-noreturn -Wno-missing-prototypes -Wno-nested-externs -Wno-old-style-definition -Wno-parentheses -Wno-redundant-decls -Wno-sign-compare -Wno-shadow -Wno-shift-negative-value -Wno-type-limits -Wno-undef -Wno-uninitialized -Wno-unused -Wno-unused-parameter -Wno-unused-value -Wno-unused-variable -Wno-write-strings'; enable = i386_pc; enable = i386_efi; I have ensured that the cflags are infact getting used by gcc. I am not sure how to resolve this. Do you have any ideas? Thanks, ani