Print this page
7438 intermittent build failures from the new boot loader
Reviewed by: Juraj Lutter <juraj.lutter@erigones.com>
Reviewed by: Yuri Pankov <yuri.pankov@nexenta.com>
Reviewed by: Gordon Ross <gordon.w.ross@gmail.com>
Split |
Close |
Expand all |
Collapse all |
--- old/usr/src/boot/sys/boot/efi/loader/Makefile
+++ new/usr/src/boot/sys/boot/efi/loader/Makefile
1 1 #
2 2 # This file and its contents are supplied under the terms of the
3 3 # Common Development and Distribution License ("CDDL"), version 1.0.
↓ open down ↓ |
3 lines elided |
↑ open up ↑ |
4 4 # You may only use this file in accordance with the terms of version
5 5 # 1.0 of the CDDL.
6 6 #
7 7 # A full copy of the text of the CDDL should have accompanied this
8 8 # source. A copy of the CDDL is also available via the Internet at
9 9 # http://www.illumos.org/license/CDDL.
10 10 #
11 11
12 12 #
13 13 # Copyright 2016 Toomas Soome <tsoome@me.com>
14 +# Copyright 2016 RackTop Systems.
14 15 #
15 16
16 17 include $(SRC)/Makefile.master
17 18
18 19 CC= $(GCC_ROOT)/bin/gcc
19 20 LD= $(GNU_ROOT)/bin/gld
20 21 OBJCOPY= $(GNU_ROOT)/bin/gobjcopy
21 22 OBJDUMP= $(GNU_ROOT)/bin/gobjdump
22 23
23 24 PROG= loader.sym
24 25 MACHINE= $(MACH64)
25 26
26 27 # architecture-specific loader code
27 28 SRCS= autoload.c bootinfo.c conf.c copy.c devicename.c main.c self_reloc.c \
28 29 smbios.c biosacpi.c vers.c
29 30 OBJS= autoload.o bootinfo.o conf.o copy.o devicename.o main.o self_reloc.o \
30 31 smbios.o biosacpi.o vers.o
31 32
32 33 ASFLAGS=-m64 -fPIC
33 34 CFLAGS= -O2
34 35 CPPFLAGS= -nostdinc -I../../../../include -I../../..
35 36 CPPFLAGS += -I../../../../lib/libstand
36 37
37 38 include ../Makefile.inc
38 39
39 40 include arch/${MACHINE}/Makefile.inc
40 41
41 42 CPPFLAGS += -I.
42 43 CPPFLAGS += -I./arch/${MACHINE}
43 44 CPPFLAGS += -I./../include
44 45 CPPFLAGS += -I./../include/${MACHINE}
45 46 CPPFLAGS += -I./../../../contrib/dev/acpica/include
46 47 CPPFLAGS += -I./../../..
47 48 CPPFLAGS += -I./../../i386/libi386
48 49 CPPFLAGS += -I./../../zfs
49 50 CPPFLAGS += -I./../../../cddl/boot/zfs
50 51 CPPFLAGS += -DEFI_ZFS_BOOT
51 52 CPPFLAGS += -DNO_PCI -DEFI -DTERM_EMU
52 53
53 54 LIBSTAND= ../../libstand/${MACHINE}/libstand.a
54 55
55 56 BOOT_FORTH= yes
56 57 CPPFLAGS += -DBOOT_FORTH -DSTAND
57 58 CPPFLAGS += -I$(SRC)/common/ficl
58 59 CPPFLAGS += -I../../ficl
59 60 LIBFICL= ../../ficl/${MACHINE}/libficl.a
60 61
61 62 CPPFLAGS += -I../../zfs
62 63 LIBZFSBOOT= ../../zfs/${MACHINE}/libzfsboot.a
63 64
64 65 #LOADER_FDT_SUPPORT?= no
65 66 #.if ${MK_FDT} != "no" && ${LOADER_FDT_SUPPORT} != "no"
66 67 #CFLAGS+= -I${.CURDIR}/../../fdt
67 68 #CFLAGS+= -I${.OBJDIR}/../../fdt
68 69 #CFLAGS+= -DLOADER_FDT_SUPPORT
69 70 #LIBEFI_FDT= ${.OBJDIR}/../../efi/fdt/libefi_fdt.a
70 71 #LIBFDT= ${.OBJDIR}/../../fdt/libfdt.a
71 72 #.endif
72 73
73 74 # Always add MI sources
74 75 include ./Makefile.common
75 76 CPPFLAGS += -I../../common
76 77
77 78 FILES= loader.efi
78 79 FILEMODE= 0555
79 80 ROOT_BOOT= $(ROOT)/boot
80 81 ROOTBOOTFILES=$(FILES:%=$(ROOT_BOOT)/%)
↓ open down ↓ |
57 lines elided |
↑ open up ↑ |
81 82
82 83 LDSCRIPT= ./arch/${MACHINE}/ldscript.${MACHINE}
83 84 LDFLAGS = -nostdlib --eh-frame-hdr -znocombreloc
84 85 LDFLAGS += -shared --hash-style=both --enable-new-dtags
85 86 LDFLAGS += -T${LDSCRIPT} -Bsymbolic
86 87
87 88 CLEANFILES= vers.c loader.efi
88 89
89 90 NEWVERSWHAT= "EFI loader" ${MACHINE}
90 91
91 -all: machine x86 loader.efi
92 +all: loader.efi
93 +
94 +loader.efi: machine x86
95 +
92 96 install: all $(ROOTBOOTFILES)
93 97
94 98 vers.c: ../../common/newvers.sh ../../efi/loader/version
95 99 $(SH) ../../common/newvers.sh version ${NEWVERSWHAT}
96 100
97 101 EFI_TARGET= pei-x86-64
98 102
99 103 loader.efi: loader.sym
100 104 if [ `${OBJDUMP} -t loader.sym | fgrep '*UND*' | wc -l` != 0 ]; then \
101 105 ${OBJDUMP} -t loader.sym | fgrep '*UND*'; \
102 106 exit 1; \
103 107 fi
104 108 ${OBJCOPY} --readonly-text -j .peheader -j .text -j .sdata -j .data \
105 109 -j .dynamic -j .dynsym -j .rel.dyn \
106 110 -j .rela.dyn -j .reloc -j .eh_frame -j set_Xcommand_set \
107 111 --output-target=${EFI_TARGET} --subsystem efi-app loader.sym $@
108 112
109 113 LIBEFI= ../libefi/libefi.a
110 114
111 115 DPADD= ${LIBFICL} ${LIBZFSBOOT} ${LIBEFI} ${LIBFDT} ${LIBEFI_FDT} \
112 116 ${LIBSTAND} ${LDSCRIPT}
113 117 LDADD= ${LIBFICL} ${LIBZFSBOOT} ${LIBEFI} ${LIBFDT} ${LIBEFI_FDT} \
114 118 ${LIBSTAND}
115 119
116 120
117 121 loader.sym: $(OBJS) $(DPADD)
118 122 $(LD) $(LDFLAGS) -o $@ $(OBJS) $(LDADD)
119 123
120 124 beforedepend ${OBJS}: machine
121 125
122 126 CLEANFILES += machine x86
123 127
124 128 machine:
125 129 $(RM) machine
126 130 $(SYMLINK) ../../../${MACHINE}/include machine
127 131
128 132 x86:
129 133 $(RM) x86
130 134 $(SYMLINK) ../../../x86/include x86
131 135
132 136 clean clobber:
133 137 $(RM) $(CLEANFILES) $(OBJS) loader.sym loader.efi
134 138
135 139 %.o: %.c
136 140 $(COMPILE.c) $<
137 141
138 142 %.o: ./arch/${MACHINE}/%.c
139 143 $(COMPILE.c) $<
140 144
141 145 %.o: ./arch/${MACHINE}/%.S
142 146 $(COMPILE.S) $<
143 147
144 148 %.o: ../../common/%.c
145 149 $(COMPILE.c) $<
146 150
147 151 %.o: ../../common/linenoise/%.c
148 152 $(COMPILE.c) $<
149 153
150 154 %.o: ../../i386/libi386/%.c
151 155 $(COMPILE.c) $<
152 156
153 157 $(ROOT_BOOT)/%: %
154 158 $(INS.file)
↓ open down ↓ |
53 lines elided |
↑ open up ↑ |
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX