Choose the arch specific bootcode for i386 or mips, depending on what --host is being built for.
Before this, boot_i386.S and boot_mips.S were both in the docs, but boot_mips.S was the boot code always built regardless of the actual system being built for. If the --host system is neither i386 (or x86_64 which is switched into 32bit mode) or mips, the example kernel build will be skipped. The mips definitions for kernel_ccasflags and kernel_cflags are completely untested. Signed-off-by: Hans Ulrich Niedermann <h...@n-dimensional.de> diff --git a/.gitignore b/.gitignore index 631ff668d..e27a3e0e2 100644 --- a/.gitignore +++ b/.gitignore @@ -7,7 +7,9 @@ Makefile.in /aclocal.m4 /autom4te.cache/ /compile +/config.guess /config.h.in +/config.sub /configure /depcomp /doc/mdate-sh diff --git a/configure.ac b/configure.ac index d8e08597d..830b1f57e 100644 --- a/configure.ac +++ b/configure.ac @@ -25,13 +25,37 @@ AM_INIT_AUTOMAKE([1.10.1]) AC_PROG_CC AM_PROG_AS -dnl Build the example Multiboot2 kernel. +dnl Build the example Multiboot2 kernel (if possible on this host) +AC_CANONICAL_HOST +kernel_boot_arch=unsupported +kernel_ccasflags= +kernel_cflags= +case "$host_cpu" in #( + i[[3456]]86) + kernel_boot_arch=i386 + ;; #( + x86_64) + kernel_boot_arch=i386 + kernel_ccasflags="-m32" + kernel_cflags="-m32" + ;; #( + mips*) + kernel_boot_arch=mips + kernel_ccasflags="-mabi=32" + kernel_cflags="-mabi=32" + ;; +esac +AC_SUBST([kernel_boot_arch]) +AC_SUBST([kernel_ccasflags]) +AC_SUBST([kernel_cflags]) + AC_ARG_ENABLE([example-kernel], [dnl AS_HELP_STRING([--enable-example-kernel], [build the example Multiboot2 kernel])]) AM_CONDITIONAL([BUILD_EXAMPLE_KERNEL], - [test "x$enable_example_kernel" = xyes]) + [test "x$enable_example_kernel" = xyes && + test "x$kernel_boot_arch" != "xunsupported"]) CFLAGS="-nostdlib $CFLAGS" diff --git a/doc/Makefile.am b/doc/Makefile.am index 08fdbf342..b19fc24bf 100644 --- a/doc/Makefile.am +++ b/doc/Makefile.am @@ -9,8 +9,9 @@ pkginclude_HEADERS = multiboot2.h # The example kernel is built if you specify --enable-example-kernel. if BUILD_EXAMPLE_KERNEL noinst_PROGRAMS = kernel -kernel_SOURCES = boot_mips.S kernel.c multiboot2.h -kernel_CFLAGS = -fno-builtin -nostdinc -O -g -Wall \ +kernel_SOURCES = boot_$(kernel_boot_arch).S kernel.c multiboot2.h +kernel_CCASFLAGS = $(kernel_ccasflags) +kernel_CFLAGS = $(kernel_cflags) -fno-builtin -nostdinc -O -g -Wall \ -imacros $(top_builddir)/config.h kernel_LDFLAGS = -nostdlib -Wl,-N -Wl,-Ttext -Wl,80100000 -Wl,--build-id=none endif -- 2.26.2 _______________________________________________ Grub-devel mailing list Grub-devel@gnu.org https://lists.gnu.org/mailman/listinfo/grub-devel