diff options
Diffstat (limited to 'scripts')
| -rw-r--r-- | scripts/Makefile.build | 5 | ||||
| -rw-r--r-- | scripts/Makefile.lib | 94 | ||||
| -rw-r--r-- | scripts/Makefile.lib-u-boot | 96 | ||||
| -rw-r--r-- | scripts/Makefile.xpl | 1 |
4 files changed, 102 insertions, 94 deletions
diff --git a/scripts/Makefile.build b/scripts/Makefile.build index 8da9851d430..73b6769ab90 100644 --- a/scripts/Makefile.build +++ b/scripts/Makefile.build @@ -65,6 +65,7 @@ ccflags-y += $(PLATFORM_CPPFLAGS) cppflags-y += $(PLATFORM_CPPFLAGS) include $(srctree)/scripts/Makefile.lib +include $(srctree)/scripts/Makefile.lib-u-boot # Do not include hostprogs rules unless needed. # $(sort ...) is used here to remove duplicated words and excessive spaces. @@ -439,6 +440,10 @@ targets += $(call intermediate_targets, .asn1.o, .asn1.c .asn1.h) \ $(call intermediate_targets, .lex.o, .lex.c) \ $(call intermediate_targets, .tab.o, .tab.c .tab.h) +# Added for U-Boot +targets += $(call intermediate_targets, .ttf.o, .ttf.S) \ + $(call intermediate_targets, .bmp.o, .bmp.S) + # Build # --------------------------------------------------------------------------- diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib index 7386353e0cc..b8969b7de54 100644 --- a/scripts/Makefile.lib +++ b/scripts/Makefile.lib @@ -508,100 +508,6 @@ $(multi-dtb-y): FORCE $(call if_changed,fdtoverlay) $(call multi_depend, $(multi-dtb-y), .dtb, -dtbs) -# Fonts -# --------------------------------------------------------------------------- - -# Generate an assembly file to wrap the font data -quiet_cmd_S_ttf= TTF $@ -# Modified for U-Boot -cmd_S_ttf= \ -( \ - echo '.section .rodata.ttf.init,"a"'; \ - echo '.balign 16'; \ - echo '.global __ttf_$(*F)_begin'; \ - echo '__ttf_$(*F)_begin:'; \ - echo '.incbin "$<" '; \ - echo '__ttf_$(*F)_end:'; \ - echo '.global __ttf_$(*F)_end'; \ - echo '.balign 16'; \ -) > $@ - -$(obj)/%.S: $(src)/%.ttf - $(call cmd,S_ttf) - -# Splash logos -# --------------------------------------------------------------------------- - -# Generate an assembly file to wrap the splash data -quiet_cmd_S_splash= TTF $@ -# Modified for U-Boot -cmd_S_splash= \ -( \ - echo '.section .rodata.splash.init,"a"'; \ - echo '.balign 16'; \ - echo '.global __splash_$(*F)_begin'; \ - echo '__splash_$(*F)_begin:'; \ - echo '.incbin "$<" '; \ - echo '__splash_$(*F)_end:'; \ - echo '.global __splash_$(*F)_end'; \ - echo '.balign 16'; \ -) > $@ - -$(obj)/%.S: $(src)/%.bmp - $(call cmd,S_splash) - -# EFI applications -# A Makefile target *.efi is built as EFI application. -# A Makefile target *_efi.S wraps *.efi as built-in EFI application. -# --------------------------------------------------------------------------- - -# Generate an assembly file to wrap the EFI app -cmd_S_efi= \ -( \ - echo '.section .rodata.$*.init,"a"'; \ - echo '.balign 16'; \ - echo '.global __efi_$*_begin'; \ - echo '__efi_$*_begin:'; \ - echo '.incbin "$<" '; \ - echo '__efi_$*_end:'; \ - echo '.global __efi_$*_end'; \ - echo '.balign 16'; \ -) > $@ - -$(obj)/%_efi.S: $(obj)/%.efi - $(call cmd,S_efi) - -quiet_cmd_efi_objcopy = OBJCOPY $@ -cmd_efi_objcopy = $(OBJCOPY) -j .header -j .text -j .sdata -j .data \ - -j .dynamic -j .dynstr -j .dynsym -j .rel* -j .reloc \ - $(if $(EFI_TARGET),$(EFI_TARGET),-O binary) $^ $@ - -$(obj)/%.efi: $(obj)/%_efi.so - $(call cmd,efi_objcopy) - -KBUILD_EFILDFLAGS = -nostdlib -zexecstack -znocombreloc -znorelro -KBUILD_EFILDFLAGS += $(call ld-option,--no-warn-rwx-segments) -quiet_cmd_efi_ld = LD $@ -cmd_efi_ld = $(LD) $(KBUILD_EFILDFLAGS) -L $(srctree) -T $(EFI_LDS_PATH) \ - -shared -Bsymbolic -s $^ $(PLATFORM_LIBGCC) -o $@ - -EFI_LDS_PATH = arch/$(ARCH)/lib/$(EFI_LDS) - -$(obj)/efi_crt0.o: $(srctree)/arch/$(ARCH)/lib/$(EFI_CRT0:.o=.S) FORCE - $(call if_changed_dep,as_o_S) - -$(obj)/efi_reloc.o: $(srctree)/arch/$(ARCH)/lib/$(EFI_RELOC:.o=.c) $(recordmcount_source) FORCE - $(call cmd,force_checksrc) - $(call if_changed_rule,cc_o_c) - -$(obj)/%_efi.so: $(obj)/%.o $(obj)/efi_crt0.o $(obj)/efi_reloc.o $(obj)/efi_freestanding.o - $(call cmd,efi_ld) - -targets += $(obj)/efi_crt0.o $(obj)/efi_reloc.o $(obj)/efi_freestanding.o - -CFLAGS_REMOVE_efi_reloc.o := $(LTO_CFLAGS) -CFLAGS_REMOVE_efi_freestanding.o := $(LTO_CFLAGS) - # ACPI # --------------------------------------------------------------------------- # diff --git a/scripts/Makefile.lib-u-boot b/scripts/Makefile.lib-u-boot new file mode 100644 index 00000000000..4d60a8eee49 --- /dev/null +++ b/scripts/Makefile.lib-u-boot @@ -0,0 +1,96 @@ +# SPDX-License-Identifier: GPL-2.0 +# +# U-Boot-specific rules for embedding binary data via .incbin +# These are split out of Makefile.lib to simplify kbuild re-syncs. + +# Fonts +# --------------------------------------------------------------------------- + +# Generate an assembly file to wrap the font data +quiet_cmd_S_ttf= TTF $@ +cmd_S_ttf= \ +( \ + echo '.section .rodata.ttf.init,"a"'; \ + echo '.balign 16'; \ + echo '.global __ttf_$(*F)_begin'; \ + echo '__ttf_$(*F)_begin:'; \ + echo '.incbin "$<" '; \ + echo '__ttf_$(*F)_end:'; \ + echo '.global __ttf_$(*F)_end'; \ + echo '.balign 16'; \ +) > $@ + +$(obj)/%.ttf.S: $(src)/%.ttf FORCE + $(call if_changed,S_ttf) + +# Splash logos +# --------------------------------------------------------------------------- + +# Generate an assembly file to wrap the splash data +quiet_cmd_S_splash= TTF $@ +cmd_S_splash= \ +( \ + echo '.section .rodata.splash.init,"a"'; \ + echo '.balign 16'; \ + echo '.global __splash_$(*F)_begin'; \ + echo '__splash_$(*F)_begin:'; \ + echo '.incbin "$<" '; \ + echo '__splash_$(*F)_end:'; \ + echo '.global __splash_$(*F)_end'; \ + echo '.balign 16'; \ +) > $@ + +$(obj)/%.bmp.S: $(src)/%.bmp FORCE + $(call if_changed,S_splash) + +# EFI applications +# A Makefile target *.efi is built as EFI application. +# A Makefile target *_efi.S wraps *.efi as built-in EFI application. +# --------------------------------------------------------------------------- + +# Generate an assembly file to wrap the EFI app +cmd_S_efi= \ +( \ + echo '.section .rodata.$*.init,"a"'; \ + echo '.balign 16'; \ + echo '.global __efi_$*_begin'; \ + echo '__efi_$*_begin:'; \ + echo '.incbin "$<" '; \ + echo '__efi_$*_end:'; \ + echo '.global __efi_$*_end'; \ + echo '.balign 16'; \ +) > $@ + +$(obj)/%_efi.S: $(obj)/%.efi + $(call cmd,S_efi) + +quiet_cmd_efi_objcopy = OBJCOPY $@ +cmd_efi_objcopy = $(OBJCOPY) -j .header -j .text -j .sdata -j .data \ + -j .dynamic -j .dynstr -j .dynsym -j .rel* -j .reloc \ + $(if $(EFI_TARGET),$(EFI_TARGET),-O binary) $^ $@ + +$(obj)/%.efi: $(obj)/%_efi.so + $(call cmd,efi_objcopy) + +KBUILD_EFILDFLAGS = -nostdlib -zexecstack -znocombreloc -znorelro +KBUILD_EFILDFLAGS += $(call ld-option,--no-warn-rwx-segments) +quiet_cmd_efi_ld = LD $@ +cmd_efi_ld = $(LD) $(KBUILD_EFILDFLAGS) -L $(srctree) -T $(EFI_LDS_PATH) \ + -shared -Bsymbolic -s $^ $(PLATFORM_LIBGCC) -o $@ + +EFI_LDS_PATH = arch/$(ARCH)/lib/$(EFI_LDS) + +$(obj)/efi_crt0.o: $(srctree)/arch/$(ARCH)/lib/$(EFI_CRT0:.o=.S) FORCE + $(call if_changed_dep,as_o_S) + +$(obj)/efi_reloc.o: $(srctree)/arch/$(ARCH)/lib/$(EFI_RELOC:.o=.c) $(recordmcount_source) FORCE + $(call cmd,force_checksrc) + $(call if_changed_rule,cc_o_c) + +$(obj)/%_efi.so: $(obj)/%.o $(obj)/efi_crt0.o $(obj)/efi_reloc.o $(obj)/efi_freestanding.o + $(call cmd,efi_ld) + +targets += $(obj)/efi_crt0.o $(obj)/efi_reloc.o $(obj)/efi_freestanding.o + +CFLAGS_REMOVE_efi_reloc.o := $(LTO_CFLAGS) +CFLAGS_REMOVE_efi_freestanding.o := $(LTO_CFLAGS) diff --git a/scripts/Makefile.xpl b/scripts/Makefile.xpl index c5ddf64c73f..862a8e6f231 100644 --- a/scripts/Makefile.xpl +++ b/scripts/Makefile.xpl @@ -88,6 +88,7 @@ include $(srctree)/config.mk include $(srctree)/arch/$(ARCH)/Makefile include $(srctree)/scripts/Makefile.lib +include $(srctree)/scripts/Makefile.lib-u-boot # Enable garbage collection of un-used sections for SPL KBUILD_CFLAGS += -ffunction-sections -fdata-sections |
