Print this page
7438 intermittent build failures from the new boot loader
Reviewed by: Gordon Ross <gordon.w.ross@gmail.com>
Reviewed by: Toomas Soome <tsoome@me.com>
Split |
Close |
Expand all |
Collapse all |
--- old/usr/src/boot/sys/boot/efi/boot1/Makefile
+++ new/usr/src/boot/sys/boot/efi/boot1/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 OBJCOPY= /code/binutils-gdb/binutils/objcopy
23 24 OBJDUMP= /code/binutils-gdb/binutils/objdump
24 25
25 26 PROG= boot1.sym
26 27 MACHINE=$(MACH64)
27 28
28 29 # need to update this to trigger installboot updates.
29 30 BUILDDATE :sh = TZ=UTC date +%Y%m%dT%H%M%SZ
30 31 BOOT1_VERSION= 1.1:$(BUILDDATE)
31 32
32 33 # architecture-specific loader code
33 34 SRCS= boot1.c self_reloc.c start.S ufs_module.c zfs_module.c devopen.c
34 35 OBJS= boot1.o self_reloc.o start.o ufs_module.o zfs_module.o devopen.o
35 36
36 37 ASFLAGS=-m64 -fPIC
37 38 CFLAGS= -O2
38 39 CPPFLAGS= -nostdinc
39 40 CPPFLAGS += -I.
40 41 CPPFLAGS += -I./../include
41 42 CPPFLAGS += -I./../include/${MACHINE}
42 43 CPPFLAGS += -I./../../../contrib/dev/acpica/include
43 44 CPPFLAGS += -I./../../../../include
44 45 CPPFLAGS += -I./../../../sys
45 46 CPPFLAGS += -I./../../..
46 47 CPPFLAGS += -I../../../../lib/libstand
47 48 CPPFLAGS += -DEFI_UFS_BOOT
48 49 # CPPFLAGS += -DEFI_DEBUG
49 50
50 51 CPPFLAGS += -I./../../zfs/
51 52 CPPFLAGS += -I./../../../cddl/boot/zfs/
52 53 CPPFLAGS += -DEFI_ZFS_BOOT
53 54
54 55 # Always add MI sources and REGULAR efi loader bits
55 56 CPPFLAGS += -I./../../common
56 57
57 58 include ../Makefile.inc
58 59
↓ open down ↓ |
35 lines elided |
↑ open up ↑ |
59 60 FILES= boot1.efi
60 61 FILEMODE= 0555
61 62 ROOT_BOOT= $(ROOT)/boot
62 63 ROOTBOOTFILES=$(FILES:%=$(ROOT_BOOT)/%)
63 64
64 65 LDSCRIPT= ./../loader/arch/${MACHINE}/ldscript.${MACHINE}
65 66 LDFLAGS= -nostdlib --eh-frame-hdr -znocombreloc
66 67 LDFLAGS += -shared --hash-style=both --enable-new-dtags
67 68 LDFLAGS += -T${LDSCRIPT} -Bsymbolic
68 69
69 -all: machine x86 boot1.efi
70 +all: boot1.efi
71 +
70 72 install: all $(ROOTBOOTFILES)
71 73
72 74 #
73 75 # Add libstand for the runtime functions used by the compiler - for example
74 76 # __aeabi_* (arm) or __divdi3 (i386).
75 77 # as well as required string and memory functions for all platforms.
76 78 #
77 79 LIBSTAND= ../../libstand/$(MACH64)/libstand.a
78 80 LIBZFSBOOT= ../../zfs/$(MACH64)/libzfsboot.a
79 81 DPADD= ${LIBSTAND} ${LIBZFSBOOT}
80 82 LDADD= -L../../zfs/$(MACH64) -lzfsboot -L../../libstand/$(MACH64) -lstand
81 83
82 84 DPADD += ${LDSCRIPT}
83 85
84 86 EFI_TARGET= pei-x86-64
85 87
86 88 boot1.efi: ${PROG}
87 89 if [ `${OBJDUMP} -t ${PROG} | fgrep '*UND*' | wc -l` != 0 ]; then \
88 90 ${OBJDUMP} -t ${PROG} | fgrep '*UND*'; \
89 91 exit 1; \
90 92 fi
91 93 ${OBJCOPY} --readonly-text -j .peheader -j .text -j .sdata -j .data \
92 94 -j .dynamic -j .dynsym -j .rel.dyn \
93 95 -j .rela.dyn -j .reloc -j .eh_frame \
94 96 --output-target=${EFI_TARGET} --subsystem efi-app ${PROG} $@
95 97
96 98 boot1.o: ./../../common/ufsread.c
97 99
98 100 CLEANFILES= boot1.efi ${PROG}
99 101
100 102 ${PROG}: $(OBJS) $(DPADD)
101 103 $(LD) $(LDFLAGS) -o $@ $(OBJS) $(LDADD)
↓ open down ↓ |
22 lines elided |
↑ open up ↑ |
102 104
103 105 CLEANFILES += machine x86
104 106
105 107 machine:
106 108 $(RM) machine
107 109 $(SYMLINK) ./../../../${MACHINE}/include machine
108 110
109 111 x86:
110 112 $(RM) x86
111 113 $(SYMLINK) ./../../../x86/include x86
114 +
115 +$(OBJS): machine x86
112 116
113 117 clean clobber:
114 118 $(RM) $(CLEANFILES) $(OBJS)
115 119
116 120 %.o: ../loader/arch/${MACHINE}/%.S
117 121 $(COMPILE.S) $<
118 122
119 123 %.o: ../loader/%.c
120 124 $(COMPILE.c) $<
121 125
122 126 %.o: ../../common/%.c
123 127 $(COMPILE.c) $<
124 128
125 129 $(ROOT_BOOT)/%: %
126 130 $(INS.file)
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX