[LinuxBIOS] etherboot fails to compile for FILO

steve yannalfo fourstar10_2000 at yahoo.com
Tue Jun 13 20:18:35 CEST 2006


ld -m elf_i386 -N -T arch/i386/core/etherboot.lds -o bin/filo.elf.rt bin/elfprefix.exit.o  bin/filo.rt.o
bin/filo.rt.o: In function `install_pxe_stack':
: undefined reference to `allot_base_memory'
bin/filo.rt.o: In function `install_pxe_stack':
: undefined reference to `e820mangler_size'
bin/filo.rt.o: In function `install_pxe_stack':
: undefined reference to `install_rm_callback_interface'
bin/filo.rt.o: In function `install_pxe_stack':
: undefined reference to `install_e820mangler'
bin/filo.rt.o: In function `use_undi_ds_for_rm_stack':
: undefined reference to `forget_real_mode_stack'
bin/filo.rt.o: In function `hook_pxe_stack':
: undefined reference to `hide_etherboot'
bin/filo.rt.o: In function `unhook_pxe_stack':
: undefined reference to `unhide_etherboot'
bin/filo.rt.o: In function `remove_pxe_stack':
: undefined reference to `forget_base_memory'
bin/filo.rt.o: In function `pxenv_restart_tftp':
: undefined reference to `get_free_base_memory'
make: *** [bin/filo.elf.rt] Error 1
rm bin/elfprefix.entry.o bin/filo.rt.o bin/elfprefix.exit.o bin/filo.o
----------------------------------------------------------------------------------------------------



src/Config
# Select which buses etherboot should support
CFLAGS+=    -DCONFIG_PCI
CFLAGS+=    -DCONFIG_ISA
# CFLAGS+=    -DCONFIG_PCMCIA

# For prompting and default on timeout
CFLAGS+=    -DASK_BOOT=3 -DBOOT_FIRST=BOOT_NIC
# If you would like to attempt to boot from other devices as well as the network.
# CFLAGS+=    -DBOOT_SECOND=BOOT_FLOPPY
# CFLAGS+=    -DBOOT_THIRD=BOOT_DISK
# CFLAGS+=    -DBOOT_INDEX=0

# If you prefer the old style rotating bar progress display
# CFLAGS+=    -DBAR_PROGRESS

# Show size indicator
# CFLAGS+=    -DSIZEINDICATOR

# Enabling this creates non-standard images which use ports 1067 and 1068
# for DHCP/BOOTP
# CFLAGS+=    -DALTERNATE_DHCP_PORTS_1067_1068

# Enabling this makes the boot ROM require a Vendor Class Identifier
# of "Etherboot" in the Vendor Encapsulated Options
# This can be used to reject replies from servers other than the one
# we want to give out addresses to us, but it will prevent Etherboot
# from getting an IP lease until you have configured DHCPD correctly
# CFLAGS+=    -DREQUIRE_VCI_ETHERBOOT

# EXPERIMENTAL! Set DHCP_CLIENT_ID to create a Client Identifier (DHCP
# option 61, see RFC2132 section 9.14) when Etherboot sends the DHCP
# DISCOVER and REQUEST packets.  This ID must UNIQUELY identify each
# client on your local network.  Set DHCP_CLIENT_ID_TYPE to the
# appropriate hardware type as described in RFC2132 / RFC1700; this
# almost certainly means using '1' if the Client ID is an Ethernet MAC
# address and '0' otherwise. Set DHCP_CLIENT_ID_LEN to the length of
# the Client ID in octets (this is not a null terminated C string, do
# NOT add 1 for a terminator and do NOT add an extra 1 for the
# hardware type octet).  Note that to identify your client using the
# normal default MAC address of your NIC, you do NOT need to set this
# option, as the MAC address is automatically used in the
# hwtype/chaddr field; note also that this field only sets the DHCP
# option: it does NOT change the MAC address used by the client.

# CFLAGS+=    -DDHCP_CLIENT_ID="'C','L','I','E','N','T','0','0','1'" \
#        -DDHCP_CLIENT_ID_LEN=9 -DDHCP_CLIENT_ID_TYPE=0

# CFLAGS+=    -DDHCP_CLIENT_ID="0xDE,0xAD,0xBE,0xEF,0xDE,0xAD" \
#        -DDHCP_CLIENT_ID_LEN=6 -DDHCP_CLIENT_ID_TYPE=1

# EXPERIMENTAL! Set DHCP_USER_CLASS to create a User Class option (see
# RFC3004) when Etherboot sends the DHCP DISCOVER and REQUEST packets.
# This can be used for classification of clients, typically so that a
# DHCP server can send an appropriately tailored reply.  Normally, a
# string identifies a class of to which this client instance belongs
# which is useful in your network, such as a department ('FINANCE' or
# 'MARKETING') or hardware type ('THINCLIENT' or 'KIOSK').  Set
# DHCP_USER_CLASS_LEN to the length of DHCP_USER_CLASS in octets.
# This is NOT a null terminated C string, do NOT add 1 for a
# terminator.  RFC3004 advises how to lay out multiple User Class
# options by using an octet for the length of each string, as in this
# example.  It is, of course, up to the server to parse this.

# CFLAGS+=    -DDHCP_USER_CLASS="'T','E','S','T','C','L','A','S','S'"    \
#        -DDHCP_USER_CLASS_LEN=9

# CFLAGS+=    -DDHCP_USER_CLASS="5,'A','L','P','H','A',4,'B','E','T','A'" \
#        -DDHCP_USER_CLASS_LEN=11

# for btext console support
# CFLAGS+=    -DCONSOLE_BTEXT
# for direct PC kbd support
# CFLAGS+=    -DCONSOLE_PC_KBD
# Set to enable FILO support
# for FILO support it will make main call pci_init
INCLUDE_FILO=y
ifdef    INCLUDE_FILO
CFLAGS+=    -DCONFIG_FILO
endif

# Enabling this causes Etherboot to ignore Etherboot-specific options
# that are not within an Etherboot encapsulated options field.
# This option should be enabled unless you have a legacy DHCP server
# configuration from the bad old days before the use of
# encapsulated Etherboot options.
CFLAGS+=    -DALLOW_ONLY_ENCAPSULATED

# Disable DHCP support
# CFLAGS+=    -DNO_DHCP_SUPPORT

# Set to enable static boot information
# CFLAGS+=    -DUSE_STATIC_BOOT_INFO

# Specify the static boot values
# All must be specified, if -DUSE_STATIC_BOOT_INFO is defined
# CFLAGS+=    -DSTATIC_CLIENT_IP=\"192.168.25.25\"
# CFLAGS+=    -DSTATIC_SUBNET_MASK=\"255.255.255.0\"
# CFLAGS+=    -DSTATIC_SERVER_IP=\"192.168.25.101\"
# CFLAGS+=    -DSTATIC_GATEWAY_IP=\"192.168.25.1\"
# CFLAGS+=    -DSTATIC_BOOTFILE=\"tftp://192.168.25.101/pxelinux.0\"

# Specify a default bootfile to be used if the DHCP server does not
# provide the information.  If you do not specify this option, then
# DHCP offers that do not contain bootfiles will be ignored.
# CFLAGS+=    -DDEFAULT_BOOTFILE=\"tftp://192.168.1.254/lts/pxelinux.0\"

# Exit if there is an error loading the boot file
# CFLAGS+=    -DEXIT_ON_FILE_LOAD_ERROR

# Limit the delay on packet loss/congestion to a more bearable value. See
# description above.  If unset, do not limit the delay between resend.
CFLAGS+=    -DBACKOFF_LIMIT=7 -DCONGESTED

# More optional features
# CFLAGS+=    -DTRY_FLOPPY_FIRST=4
# CFLAGS+=    -DEXIT_IF_NO_OFFER

# For a serial console, which can run in parallel with FIRMWARE console
# CFLAGS+=    -DCONSOLE_DUAL -DCOMCONSOLE=0x3F8 -DCONSPEED=9600

# Enable tagged image, generic ELF, Multiboot ELF
# or FreeBSD ELF/a.out boot image support
CFLAGS+=    -DTAGGED_IMAGE -DELF_IMAGE
# CFLAGS+=    -DAOUT_IMAGE -DIMAGE_MULTIBOOT -DIMAGE_FREEBSD
# CFLAGS+=    -DAOUT_IMAGE -DAOUT_LYNX_KDI
# CFLAGS+=    -DCOFF_IMAGE
# CFLAGS+=    -DRAW_IMAGE

# Download files via TFTP
CFLAGS+=    -DDOWNLOAD_PROTO_TFTP
# FSP support
# CFLAGS+=    -DDOWNLOAD_PROTO_FSP -DDEFAULT_PROTO_FSP
# Change download protocol to NFS, default is TFTP
# CFLAGS+=    -DDOWNLOAD_PROTO_NFS
# Change download protocol to HTTP, default is TFTP
# CFLAGS+=    -DDOWNLOAD_PROTO_HTTP
# Change default protocol to NFS
# CFLAGS+=    -DDEFAULT_PROTO_NFS
# Support to resolve hostnames in boot filename
# CFLAGS+=    -DDNS_RESOLVER

# Multicast Support
# CFLAGS+=    -DALLMULTI -DMULTICAST_LEVEL1 -DMULTICAST_LEVEL2 -DDOWNLOAD_PROTO_TFTM

# Etherboot as a PXE network protocol ROM
# (Requires TFTP protocol support)
CFLAGS+=    -DPXE_IMAGE -DPXE_EXPORT
# Etherboot stricter as a PXE network protocol ROM
# CFLAGS+=    -DPXE_DHCP_STRICT

# Support for PXE emulation. Works only with FreeBSD to load the kernel
# via pxeboot, use only with DOWNLOAD_PROTO_NFS
# CFLAGS+=    -DFREEBSD_PXEEMU

# Include an auto-incrementing build serial number and optional build
# ID string
# CFLAGS+=    -DBUILD_SERIAL
# CFLAGS+=    -DBUILD_SERIAL -DBUILD_ID=\"testing\"

# Do not relocate
# core/relocate.c should really be moved to an arch specific directory
# but this is here for archs that don't support relocation
# CFLAGS+=    -DNORELOCATE

# you should normally not need to change these
HOST_CC=    gcc
CPP=        gcc -E -Wp,-Wall
RM=        rm -f
TOUCH=        touch
PERL=        /usr/bin/perl
CC=        gcc
AS=        as
LD=        ld
SIZE=        size
AR=        ar
RANLIB=        ranlib
OBJCOPY=    objcopy

CFLAGS+=    -Os -ffreestanding
CFLAGS+=    -Wall -W -Wno-format
CFLAGS+=    $(EXTRA_CFLAGS)
ASFLAGS+=    $(EXTRA_ASFLAGS)
LDFLAGS+=    $(EXTRA_LDFLAGS)
# For debugging
# LDFLAGS+=    -Map $@.map

# Location to place generated binaries, and files
BIN=bin
-----------------------------------------------------------------------------
arch/i386/Confi

# BIOS select don't change unless you know what you are doing
#CFLAGS+=    -DPCBIOS

# Compile in k8/hammer support
CFLAGS+=    -DCONFIG_X86_64

# Options to make a version of Etherboot that will work under linuxBIOS.
CFLAGS+=    -DLINUXBIOS
CFLAGS+=    -DCONFIG_TSC_CURRTICKS
CFLAGS+=    -DCONSOLE_SERIAL
CFLAGS+=    -DCOMCONSOLE=0x3f8
CFLAGS+=    -DCOMPRESERVE
CFLAGS+=    -DCONFIG_PCI_DIRECT
CFLAGS+=    -DELF_IMAGE
CFLAGS+=    -DCONSOLE_DIRECT_VGA

# These options affect the loader that is prepended to the Etherboot image
# LCONFIG+=    -DBBS_BUT_NOT_PNP_COMPLIANT
# LCONFIG+=    -DBOOT_INT18H

# Produce code that will work inside the Bochs emulator.  The pnic
# driver is probably the best one to try.
CFLAGS+=    -DCONFIG_PCI_DIRECT

# Produce code that will work with OpenBSD's pxeboot
#CFLAGS+=    -DFLATTEN_REAL_MODE

CFLAGS+= -fstrength-reduce -fomit-frame-pointer -march=i386
# Squeeze the code in as little space as possible.
# gcc3 needs a different syntax to gcc2 if you want to avoid spurious warnings.
GCC_VERSION     = $(subst ., ,$(shell $(CC) -dumpversion))
GCC_MAJORVERSION = $(firstword $(GCC_VERSION))
ifeq ($(GCC_MAJORVERSION),2)
CFLAGS+=    -malign-jumps=1 -malign-loops=1 -malign-functions=1
else
CFLAGS+=    -falign-jumps=1 -falign-loops=1 -falign-functions=1
endif
GCC_MINORVERSION = $(word 2, $(GCC_VERSION))
ifneq ($(GCC_MINORVERSION),4)
CFLAGS+=    -march=i386
endif

LDFLAGS+=    -N

ifeq "$(shell uname -s)" "FreeBSD"
CFLAGS+=    -DIMAGE_FREEBSD -DELF_IMAGE -DAOUT_IMAGE
endif

# An alternate location for isolinux.bin can be set here
# ISOLINUX_BIN=/path/to/isolinux.bin
-----------------------------------------------------------------------------------
filo/Config
#AUTOBOOT_FILE = "hda3:/boot/vmlinuz root=/dev/hda3 console=tty0 console=ttyS0,115200"
AUTOBOOT_FILE = "hda2:/boot/vmlinuz initrd=/boot/initrd pci=noacpi ro root=/dev/hda2 console=tty0 console=ttyS0,115200"
#AUTOBOOT_FILE = "mem at 0xfff80000"
#AUTOBOOT_FILE = "hde1 at 0"
#AUTOBOOT_FILE = "uda1:/ram0_2.5_2.6.5_k8.2_mydisk7.elf"
#AUTOBOOT_FILE = "hda5:/boot/vmlinuz initrd=/boot/initrd ro root=/dev/hda7 console=tty0 console=ttyS0,115200"

# Time in second before booting AUTOBOOT_FILE
AUTOBOOT_DELAY = 2

# Driver for hard disk, CompactFlash, and CD-ROM on IDE bus
IDE_DISK = 1

# Driver for USB disk
USB_DISK = 1

# Filesystems
# To make filo.zelf < 32 k, You may not enable JFS, MINIX, XFS
# Is anyone still using these file system? BY LYH
FSYS_EXT2FS = 1
FSYS_FAT = 1
#FSYS_JFS = 1
#FSYS_MINIX = 1
FSYS_REISERFS = 1
#FSYS_XFS = 1
FSYS_ISO9660 = 1

# Support for boot disk image in bootable CD-ROM (El Torito)
ELTORITO = 1

# PCI support
SUPPORT_PCI = 1


# Debugging
#DEBUG_ALL = 1
#DEBUG_ELFBOOT = 1
#DEBUG_ELFNOTE = 1
#DEBUG_LINUXBIOS = 1
#DEBUG_MALLOC = 1
#DEBUG_MULTIBOOT = 1
#DEBUG_SEGMENT = 1
#DEBUG_SYS_INFO = 1
#DEBUG_TIMER = 1
#DEBUG_BLOCKDEV = 1
#DEBUG_PCI = 1
#DEBUG_LINUXLOAD = 1
#DEBUG_IDE = 1
#DEBUG_USB = 1
#DEBUG_ELTORITO = 1

# i386 options

# Loader for standard Linux kernel image, a.k.a. /vmlinuz
LINUX_LOADER = 1

# Boot FILO from Multiboot loader (eg. GRUB)
# You need to modify i386/multiboot.c to use it. change mmrange to e820entries.
# By LYH
#MULTIBOOT_IMAGE = 1

# Use PCI Configuration Mechanism #1 (most boards)
PCI_CONFIG_1 = 1

 __________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 
 __________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.coreboot.org/pipermail/coreboot/attachments/20060613/f7864704/attachment.html>


More information about the coreboot mailing list