# ROM header (e.g."pci_vendor_id=0x1186 pci_device_id=0x1300")
#
TGT_LD_DRIVERS = $(subst -,_,$(patsubst %,obj_%,$(TGT_DRIVERS)))
-TGT_LD_PREFIX = obj_$(TGT_PREFIX)prefix
TGT_LD_IDS = pci_vendor_id=$(firstword $(TGT_PCI_VENDOR) 0) \
pci_device_id=$(firstword $(TGT_PCI_DEVICE) 0)
+TGT_LD_ENTRY = _$(TGT_PREFIX)_start
# Calculate linker flags based on link-time options for the current
# target type (e.g. "bin/dfe538--prism2_pci.zrom.tmp") and derive the
# "-u obj_zpciprefix -u obj_rtl8139 -u obj_prism2_pci
# --defsym pci_vendor=0x1186 --defsym pci_device=0x1300")
#
-TGT_LD_FLAGS = $(foreach SYM,$(TGT_LD_PREFIX) $(TGT_LD_DRIVERS) obj_config,\
+TGT_LD_FLAGS = $(foreach SYM,$(TGT_LD_ENTRY) $(TGT_LD_DRIVERS) obj_config,\
-u $(SYM) --defsym check_$(SYM)=$(SYM) ) \
$(patsubst %,--defsym %,$(TGT_LD_IDS)) \
- $(TGT_LD_FLAGS_PRE)
+ -e $(TGT_LD_ENTRY)
# Calculate list of debugging versions of objects to be included in
# the target.
@$(ECHO) 'PCI device : $(TGT_PCI_DEVICE)'
@$(ECHO)
@$(ECHO) 'LD driver symbols : $(TGT_LD_DRIVERS)'
- @$(ECHO) 'LD prefix symbols : $(TGT_LD_PREFIX)'
@$(ECHO) 'LD ID symbols : $(TGT_LD_IDS)'
+ @$(ECHO) 'LD entry point : $(TGT_LD_ENTRY)'
@$(ECHO)
@$(ECHO) 'LD target flags : $(TGT_LD_FLAGS)'
@$(ECHO)
.text
.section ".prefix", "ax", @progbits
.code16
- .globl start
-start:
+ .globl _dsk_start
+_dsk_start:
jmp $BOOTSEG, $go /* reload cs:ip to match relocation addr */
go:
.section ".prefix", "awx", @progbits
.code16
.org 0
- .globl start
-start:
+ .globl _hd_start
+_hd_start:
movw $load_image, %bp
jmp find_active_partition
#define PXELOADER_KEEP_UNDI
#define PXELOADER_KEEP_PXE
+#define _pxe_start _kkpxe_start
#include "pxeprefix.S"
FILE_LICENCE ( GPL2_OR_LATER )
#define PXELOADER_KEEP_UNDI
+#define _pxe_start _kpxe_start
#include "pxeprefix.S"
.section ".text"
.code32
- .globl _start
- .type _start, @function
+ .globl _linux_start
+ .type _linux_start, @function
-_start:
+_linux_start:
xorl %ebp, %ebp
popl %esi // save argc
.arch i386
.org 0
.section ".prefix", "ax", @progbits
- .globl start
-start:
+ .globl _lkrn_start
+_lkrn_start:
/*
This is a minimal boot sector. If anyone tries to execute it (e.g., if
a .lilo file is dd'ed to a floppy), print an error message.
#define PCI_BAR_EXPROM 0x30
#define ROMPREFIX_EXCLUDE_PAYLOAD 1
+#define _rom_start _mrom_start
#include "romprefix.S"
.text
.byte 0
.byte 0 /* No flags */
.word 0x0000, 0x07c0 /* Load header to 0x07c0:0x0000 */
- .word start, 0x07c0 /* Start execution at 0x07c0:entry */
+ .word _nbi_start, 0x07c0 /* Start execution at 0x07c0:entry */
.size file_header, . - file_header
/*****************************************************************************
* NBI entry point
*****************************************************************************
*/
- .globl start
-start:
+ .globl _nbi_start
+_nbi_start:
/* Install iPXE */
call install
*****************************************************************************
*/
.section ".prefix", "ax", @progbits
- .globl start
-start:
+ .globl _pxe_start
+_pxe_start:
jmp $0x7c0, $1f
1:
/* Preserve registers for possible return to PXE */
.code16
.arch i386
.section ".prefix", "ax", @progbits
- .globl start
-start:
+ .globl _rom_start
+_rom_start:
.org 0x00
romheader:
OUTPUT_FORMAT ( "elf32-i386", "elf32-i386", "elf32-i386" )
OUTPUT_ARCH ( i386 )
-ENTRY ( _entry )
SECTIONS {
*
*/
-ENTRY ( start )
-
SECTIONS {
/* Each section starts at a virtual address of zero.
OUTPUT_FORMAT ( "elf32-i386", "elf32-i386", "elf32-i386" )
OUTPUT_ARCH ( i386 )
-ENTRY ( _start )
-
SECTIONS {
_max_align = 32;
NON_AUTO_MEDIA += efi
NON_AUTO_MEDIA += efidrv
-# Specify entry point
-#
-TGT_LD_FLAGS_PRE = -e _$(TGT_PREFIX)_start
-
# Rules for building EFI files
#
$(BIN)/%.efi : $(BIN)/%.efi.tmp $(ELF2EFI)
.section ".text"
.code64
- .globl _start
- .type _start, @function
+ .globl _linux_start
+ .type _linux_start, @function
-_start:
+_linux_start:
xorq %rbp, %rbp
popq %rdi // argc -> C arg1
OUTPUT_FORMAT ( "elf64-x86-64", "elf64-x86-64", "elf64-x86-64" )
OUTPUT_ARCH ( i386:x86-64 )
-ENTRY ( _start )
-
SECTIONS {
_max_align = 32;