1 #
2 # This file and its contents are supplied under the terms of the
3 # Common Development and Distribution License ("CDDL"), version 1.0.
4 # You may only use this file in accordance with the terms of version
5 # 1.0 of the CDDL.
6 #
7 # A full copy of the text of the CDDL should have accompanied this
8 # source. A copy of the CDDL is also available via the Internet at
9 # http://www.illumos.org/license/CDDL.
10 #
11
12 #
13 # Copyright 2016 Toomas Soome <tsoome@me.com>
14 #
15
16 include $(SRC)/Makefile.master
17
18 CC= $(GCC_ROOT)/bin/gcc
19 LD= $(GNU_ROOT)/bin/gld
20 OBJCOPY= $(GNU_ROOT)/bin/gobjcopy
21 OBJDUMP= $(GNU_ROOT)/bin/gobjdump
22
23 PROG= loader.sym
24 MACHINE= $(MACH64)
25
26 # architecture-specific loader code
27 SRCS= autoload.c bootinfo.c conf.c copy.c devicename.c main.c self_reloc.c \
28 smbios.c biosacpi.c vers.c
29 OBJS= autoload.o bootinfo.o conf.o copy.o devicename.o main.o self_reloc.o \
30 smbios.o biosacpi.o vers.o
31
32 ASFLAGS=-m64 -fPIC
33 CFLAGS= -O2
71 #.endif
72
73 # Always add MI sources
74 include ./Makefile.common
75 CPPFLAGS += -I../../common
76
77 FILES= loader.efi
78 FILEMODE= 0555
79 ROOT_BOOT= $(ROOT)/boot
80 ROOTBOOTFILES=$(FILES:%=$(ROOT_BOOT)/%)
81
82 LDSCRIPT= ./arch/${MACHINE}/ldscript.${MACHINE}
83 LDFLAGS = -nostdlib --eh-frame-hdr -znocombreloc
84 LDFLAGS += -shared --hash-style=both --enable-new-dtags
85 LDFLAGS += -T${LDSCRIPT} -Bsymbolic
86
87 CLEANFILES= vers.c loader.efi
88
89 NEWVERSWHAT= "EFI loader" ${MACHINE}
90
91 all: machine x86 loader.efi
92 install: all $(ROOTBOOTFILES)
93
94 vers.c: ../../common/newvers.sh ../../efi/loader/version
95 $(SH) ../../common/newvers.sh version ${NEWVERSWHAT}
96
97 EFI_TARGET= pei-x86-64
98
99 loader.efi: loader.sym
100 if [ `${OBJDUMP} -t loader.sym | fgrep '*UND*' | wc -l` != 0 ]; then \
101 ${OBJDUMP} -t loader.sym | fgrep '*UND*'; \
102 exit 1; \
103 fi
104 ${OBJCOPY} --readonly-text -j .peheader -j .text -j .sdata -j .data \
105 -j .dynamic -j .dynsym -j .rel.dyn \
106 -j .rela.dyn -j .reloc -j .eh_frame -j set_Xcommand_set \
107 --output-target=${EFI_TARGET} --subsystem efi-app loader.sym $@
108
109 LIBEFI= ../libefi/libefi.a
110
111 DPADD= ${LIBFICL} ${LIBZFSBOOT} ${LIBEFI} ${LIBFDT} ${LIBEFI_FDT} \
|
1 #
2 # This file and its contents are supplied under the terms of the
3 # Common Development and Distribution License ("CDDL"), version 1.0.
4 # You may only use this file in accordance with the terms of version
5 # 1.0 of the CDDL.
6 #
7 # A full copy of the text of the CDDL should have accompanied this
8 # source. A copy of the CDDL is also available via the Internet at
9 # http://www.illumos.org/license/CDDL.
10 #
11
12 #
13 # Copyright 2016 Toomas Soome <tsoome@me.com>
14 # Copyright 2016 RackTop Systems.
15 #
16
17 include $(SRC)/Makefile.master
18
19 CC= $(GCC_ROOT)/bin/gcc
20 LD= $(GNU_ROOT)/bin/gld
21 OBJCOPY= $(GNU_ROOT)/bin/gobjcopy
22 OBJDUMP= $(GNU_ROOT)/bin/gobjdump
23
24 PROG= loader.sym
25 MACHINE= $(MACH64)
26
27 # architecture-specific loader code
28 SRCS= autoload.c bootinfo.c conf.c copy.c devicename.c main.c self_reloc.c \
29 smbios.c biosacpi.c vers.c
30 OBJS= autoload.o bootinfo.o conf.o copy.o devicename.o main.o self_reloc.o \
31 smbios.o biosacpi.o vers.o
32
33 ASFLAGS=-m64 -fPIC
34 CFLAGS= -O2
72 #.endif
73
74 # Always add MI sources
75 include ./Makefile.common
76 CPPFLAGS += -I../../common
77
78 FILES= loader.efi
79 FILEMODE= 0555
80 ROOT_BOOT= $(ROOT)/boot
81 ROOTBOOTFILES=$(FILES:%=$(ROOT_BOOT)/%)
82
83 LDSCRIPT= ./arch/${MACHINE}/ldscript.${MACHINE}
84 LDFLAGS = -nostdlib --eh-frame-hdr -znocombreloc
85 LDFLAGS += -shared --hash-style=both --enable-new-dtags
86 LDFLAGS += -T${LDSCRIPT} -Bsymbolic
87
88 CLEANFILES= vers.c loader.efi
89
90 NEWVERSWHAT= "EFI loader" ${MACHINE}
91
92 all: loader.efi
93
94 loader.efi: machine x86
95
96 install: all $(ROOTBOOTFILES)
97
98 vers.c: ../../common/newvers.sh ../../efi/loader/version
99 $(SH) ../../common/newvers.sh version ${NEWVERSWHAT}
100
101 EFI_TARGET= pei-x86-64
102
103 loader.efi: loader.sym
104 if [ `${OBJDUMP} -t loader.sym | fgrep '*UND*' | wc -l` != 0 ]; then \
105 ${OBJDUMP} -t loader.sym | fgrep '*UND*'; \
106 exit 1; \
107 fi
108 ${OBJCOPY} --readonly-text -j .peheader -j .text -j .sdata -j .data \
109 -j .dynamic -j .dynsym -j .rel.dyn \
110 -j .rela.dyn -j .reloc -j .eh_frame -j set_Xcommand_set \
111 --output-target=${EFI_TARGET} --subsystem efi-app loader.sym $@
112
113 LIBEFI= ../libefi/libefi.a
114
115 DPADD= ${LIBFICL} ${LIBZFSBOOT} ${LIBEFI} ${LIBFDT} ${LIBEFI_FDT} \
|