[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