[build] Fix building on FreeBSD
authorMichael Brown <mcb30@etherboot.org>
Fri, 17 Oct 2008 17:24:04 +0000 (18:24 +0100)
committerMichael Brown <mcb30@etherboot.org>
Fri, 17 Oct 2008 17:24:04 +0000 (18:24 +0100)
FreeBSD requires the object format to be specified as elf_i386_fbsd,
rather than elf_i386.

Based on a patch from Eygene Ryabinkin <rea-fbsd@codelabs.ru>

src/Makefile.housekeeping
src/arch/i386/Makefile

index 7054cdc..067ac82 100644 (file)
@@ -52,6 +52,14 @@ VERYCLEANUP  += .echocheck
 echo :
        @$(ECHO) "Using \"$(ECHO_E)\" for \"echo -e\""
 
+###############################################################################
+#
+# Determine host OS
+#
+HOST_OS                := $(shell uname -s)
+hostos :
+       @$(ECHO) $(HOST_OS)
+
 ###############################################################################
 #
 # Check for tools that can cause failed builds
index dac5349..7d3e763 100644 (file)
@@ -38,8 +38,12 @@ CFLAGS               += -freg-struct-return
 # Force 32-bit code even on an x86-64 machine
 #
 CFLAGS         += -m32
-ASFLAGS         += --32
-LDFLAGS         += -m elf_i386
+ASFLAGS                += --32
+ifeq ($(HOST_OS),FreeBSD)
+LDFLAGS                += -m elf_i386_fbsd
+else
+LDFLAGS                += -m elf_i386
+endif
 
 # EFI requires -fshort-wchar, and nothing else currently uses wchar_t
 #