Fork us on GitHub Follow us on Facebook Follow us on Twitter

Changeset 4646710 in mainline


Ignore:
Timestamp:
2017-06-07T15:39:23Z (3 years ago)
Author:
Martin Decky <martin@…>
Branches:
master
Children:
239e32b8
Parents:
22299ed
Message:

replace objcopy with mkarray.py
(objcopy is notoriously problematic due to the uncontrolable way how it generates the object files, with what flags, etc.)

Files:
1 deleted
19 edited

Legend:

Unmodified
Added
Removed
  • boot/Makefile

    r22299ed r4646710  
    2727#
    2828
    29 .PHONY: all build_dist build_comps clean_dist clean
     29.PHONY: all build_dist clean_dist clean
    3030
    3131include Makefile.common
    3232
    33 all: $(VERSION_DEF) $(COMMON_MAKEFILE) $(COMMON_HEADER) $(CONFIG_MAKEFILE) $(CONFIG_HEADER) $(PREBUILD)
     33all: $(VERSION_DEF) $(COMMON_MAKEFILE) $(COMMON_HEADER) $(CONFIG_MAKEFILE) $(CONFIG_HEADER) $(PREBUILD) build_dist
    3434        $(MAKE) -r -f $(BUILD) PRECHECK=$(PRECHECK)
    3535ifneq ($(POSTBUILD),)
    3636        $(MAKE) -r -f $(POSTBUILD) PRECHECK=$(PRECHECK)
    37 endif
    38 
    39 build_comps: $(COMPONENTS) $(LINK).in
    40         $(PACK) $(OBJCOPY) $(BFD_NAME) $(BFD_ARCH) arch/$(KARCH) $(COMPONENTS)
    41 
    42 $(INITRD).img: build_dist
    43 ifeq ($(RDFMT),tmpfs)
    44         $(MKTMPFS) $(DIST_PATH) $@
    45 endif
    46 ifeq ($(RDFMT),fat)
    47         $(MKFAT) 1048576 $(DIST_PATH) $@
    48 endif
    49 ifeq ($(RDFMT),ext4fs)
    50         $(MKEXT4) 1048576 $(DIST_PATH) $@
    5137endif
    5238
     
    132118        $(MAKE) -r -f $(POSTBUILD) clean PRECHECK=$(PRECHECK)
    133119endif
    134         rm -fr $(SANDBOX)
    135120        rm -f $(POST_OUTPUT) $(BOOT_OUTPUT) $(DEPEND) $(DEPEND_PREV) arch/*/include/common.h
    136121        find generic/src/ arch/*/src/ genarch/src/ -name '*.o' -follow -exec rm \{\} \;
    137122
    138123clean_dist:
    139         rm -f $(INITRD).img $(COMPS_H) $(COMPS_C) $(LINK) $(LINK).comp *.co
     124        rm -f $(INITRD).img $(COMPS).s $(COMPS).h $(COMPS)_desc.c $(COMPS).o $(COMPS)_desc.o $(COMPS).zip $(LINK)
    140125        find $(USPACE_PATH)/dist -mindepth 1 -maxdepth 1 -type f -exec rm \{\} \;
    141126        rm -f $(USPACE_PATH)/dist/srv/*
  • boot/Makefile.build

    r22299ed r4646710  
    9494
    9595OBJECTS := $(addsuffix .o,$(basename $(SOURCES)))
    96 COMPONENT_OBJECTS := $(addsuffix .co,$(basename $(MODULES)))
    9796
    9897all: $(VERSION_DEF) $(COMMON_MAKEFILE) $(COMMON_HEADER) $(CONFIG_MAKEFILE) $(CONFIG_HEADER) $(BOOT_OUTPUT)
     
    102101        rm -f $(RAW) $(MAP) $(ARCH_INCLUDE) $(GENARCH_INCLUDE)
    103102
     103ifneq ($(MAKECMDGOALS),clean)
    104104-include $(DEPEND)
     105endif
    105106
    106107$(BOOT_OUTPUT): $(RAW)
    107108        $(OBJCOPY) -O $(BFD_OUTPUT) $< $@
    108109
    109 $(RAW): $(OBJECTS) $(COMPONENT_OBJECTS) $(LINK)
    110         $(LD) -n $(LFLAGS) -T $(LINK) -M -Map $(MAP) -o $@ $(COMPONENT_OBJECTS) $(OBJECTS)
     110$(RAW): $(OBJECTS) $(LINK)
     111        $(LD) -n $(LFLAGS) -T $(LINK) -M -Map $(MAP) -o $@ $(OBJECTS)
    111112
    112 $(LINK): $(LINK).comp $(DEPEND)
    113         $(GCC) $(DEFS) $(GCC_CFLAGS) -D__ASM__ -D__LINKER__ -E -x c $(LINK).comp | grep -v "^\#" > $(LINK)
     113$(LINK): $(DEPEND)
     114        $(GCC) $(DEFS) $(GCC_CFLAGS) -D__ASM__ -D__LINKER__ -E -x c $(LINK).in | grep -v "^\#" > $(LINK)
    114115
    115116%.o: %.S $(DEPEND)
     
    125126endif
    126127
    127 $(DEPEND): $(ARCH_INCLUDE) $(GENARCH_INCLUDE) $(COMMON_HEADER_ARCH)
     128%.o: %.s $(DEPEND)
     129        $(AS) $(AFLAGS) -o $@ $<
     130ifeq ($(PRECHECK),y)
     131        $(JOBFILE) $(JOB) $< $@ as asm
     132endif
     133
     134$(DEPEND): $(ARCH_INCLUDE) $(GENARCH_INCLUDE) $(COMMON_HEADER_ARCH) $(PRE_DEPEND)
    128135        makedepend -f - -- $(DEPEND_DEFS) $(CFLAGS) -- $(SOURCES) > $@ 2> /dev/null
    129136        -[ -f $(DEPEND_PREV) ] && diff -q $(DEPEND_PREV) $@ && mv -f $(DEPEND_PREV) $@
     137
     138$(COMPS).s: $(COMPS).zip
     139        unzip -p $< $@ > $@
     140
     141$(COMPS).h: $(COMPS).zip
     142        unzip -p $< $@ > $@
     143
     144$(COMPS)_desc.c: $(COMPS).zip
     145        unzip -p $< $@ > $@
     146
     147$(COMPS).zip: $(COMPONENTS)
     148        $(MKARRAY) --deflate $(COMPS) $(COMP) "$(AS_PROLOG)" ".section .components, \"a\"" $^
     149
     150$(INITRD).img:
     151ifeq ($(RDFMT),tmpfs)
     152        $(MKTMPFS) $(DIST_PATH) $@
     153endif
     154ifeq ($(RDFMT),fat)
     155        $(MKFAT) 1048576 $(DIST_PATH) $@
     156endif
     157ifeq ($(RDFMT),ext4fs)
     158        $(MKEXT4) 1048576 $(DIST_PATH) $@
     159endif
    130160
    131161$(ARCH_INCLUDE): arch/$(KARCH)/include/
  • boot/Makefile.common

    r22299ed r4646710  
    5252DRVS_PATH = drv
    5353
    54 SANDBOX = pack
    55 PACK = $(TOOLS_PATH)/pack.py
     54MKARRAY = $(TOOLS_PATH)/mkarray.py
    5655MKTMPFS = $(TOOLS_PATH)/mktmpfs.py
    5756MKFAT = $(TOOLS_PATH)/mkfat.py
     
    251250
    252251LINK = arch/$(BARCH)/_link.ld
    253 COMPS_H = arch/$(BARCH)/include/_components.h
    254 COMPS_C = arch/$(BARCH)/src/_components.c
     252COMP = component
     253COMPS = $(COMP)s
    255254
    256255-include arch/$(BARCH)/Makefile.inc
     
    276275JOB ?= image.job
    277276MAP ?= image.map
    278 PREBUILD ?= build_comps
    279277BUILD ?= Makefile.build
  • boot/arch/arm32/Makefile.inc

    r22299ed r4646710  
    9696        arch/$(BARCH)/src/mm.c \
    9797        arch/$(BARCH)/src/putchar.c \
    98         $(COMPS_C) \
     98        $(COMPS).s \
     99        $(COMPS)_desc.c \
    99100        genarch/src/division.c \
    100101        generic/src/memstr.c \
     
    105106        generic/src/version.c \
    106107        generic/src/inflate.c
     108
     109PRE_DEPEND = $(COMPS).s $(COMPS).h $(COMPS)_desc.c
  • boot/arch/arm32/_link.ld.in

    r22299ed r4646710  
    2323                *(.bss);        /* uninitialized static variables */
    2424                *(COMMON);      /* global variables */
    25 [[COMPONENTS]]
     25                *(.components);
    2626        }
    2727        bdata_end = .;
  • boot/arch/arm32/src/main.c

    r22299ed r4646710  
    3737#include <arch/asm.h>
    3838#include <arch/mm.h>
    39 #include <arch/_components.h>
    4039#include <halt.h>
    4140#include <printf.h>
     
    4948#include <inflate.h>
    5049#include <arch/cp15.h>
     50#include "../../components.h"
    5151
    5252#define TOP2ADDR(top)  (((void *) PA2KA(BOOT_OFFSET)) + (top))
     
    9999       
    100100        for (size_t i = 0; i < COMPONENTS; i++) {
    101                 printf(" %p|%p: %s image (%u/%u bytes)\n", components[i].start,
    102                     components[i].start, components[i].name, components[i].inflated,
     101                printf(" %p|%p: %s image (%u/%u bytes)\n", components[i].addr,
     102                    components[i].addr, components[i].name, components[i].inflated,
    103103                    components[i].size);
    104104        }
     
    129129       
    130130        for (size_t i = cnt; i > 0; i--) {
    131                 void *tail = components[i - 1].start + components[i - 1].size;
     131                void *tail = components[i - 1].addr + components[i - 1].size;
    132132                if (tail >= dest[i - 1]) {
    133133                        printf("\n%s: Image too large to fit (%p >= %p), halting.\n",
     
    138138                printf("%s ", components[i - 1].name);
    139139               
    140                 int err = inflate(components[i - 1].start, components[i - 1].size,
     140                int err = inflate(components[i - 1].addr, components[i - 1].size,
    141141                    dest[i - 1], components[i - 1].inflated);
    142142                if (err != EOK) {
  • boot/arch/ia64/Makefile.inc

    r22299ed r4646710  
    4848        arch/$(BARCH)/src/pal_asm.S \
    4949        arch/$(BARCH)/src/putchar.c \
    50         $(COMPS_C) \
     50        $(COMPS).s \
     51        $(COMPS)_desc.c \
    5152        genarch/src/efi.c \
    5253        genarch/src/division.c \
     
    8889        bus/isa
    8990
     91PRE_DEPEND = $(COMPS).s $(COMPS).h $(COMPS)_desc.c
  • boot/arch/ia64/_link.ld.in

    r22299ed r4646710  
    1616                *(.bss);                /* uninitialized static variables */
    1717                *(COMMON);
    18 [[COMPONENTS]]
     18                *(.components);
    1919        }
    20 
     20       
    2121        /DISCARD/ : {
    2222                *(.*);
  • boot/arch/ia64/src/main.c

    r22299ed r4646710  
    3333#include <arch/arch.h>
    3434#include <arch/asm.h>
    35 #include <arch/_components.h>
    3635#include <genarch/efi.h>
    3736#include <arch/sal.h>
     
    4645#include <errno.h>
    4746#include <inflate.h>
     47#include "../../components.h"
    4848
    4949#define DEFAULT_MEMORY_BASE             0x4000000ULL
     
    7878                memmap[items].size = DEFAULT_LEGACY_IO_SIZE;
    7979                memmap[items].type = MEMMAP_IO_PORTS;
    80                 items++;                 
     80                items++;
    8181        } else {
    8282                char *cur, *mm_base = (char *) bootpar->efi_memmap;
     
    159159        size_t i;
    160160        for (i = 0; i < COMPONENTS; i++)
    161                 printf(" %p|%p: %s image (%zu/%zu bytes)\n", components[i].start,
    162                     components[i].start, components[i].name,
     161                printf(" %p|%p: %s image (%zu/%zu bytes)\n", components[i].addr,
     162                    components[i].addr, components[i].name,
    163163                    components[i].inflated, components[i].size);
    164164       
     
    202202                 * overlap with the destination for inflate().
    203203                 */
    204                 memmove((void *) top, components[i - 1].start, components[i - 1].size);
     204                memmove((void *) top, components[i - 1].addr, components[i - 1].size);
    205205               
    206206                int err = inflate((void *) top, components[i - 1].size,
  • boot/arch/mips32/Makefile.inc

    r22299ed r4646710  
    3030BITS = 32
    3131EXTRA_CFLAGS = -msoft-float -mno-abicalls -G 0 -fno-zero-initialized-in-bss -mabi=32
     32AS_PROLOG = .module softfloat;
    3233
    3334ifeq ($(MACHINE),msim)
     
    7475        arch/$(BARCH)/src/main.c \
    7576        arch/$(BARCH)/src/putchar.c \
    76         $(COMPS_C) \
     77        $(COMPS).s \
     78        $(COMPS)_desc.c \
    7779        genarch/src/division.c \
    7880        genarch/src/multiplication.c \
     
    8486        generic/src/version.c \
    8587        generic/src/inflate.c
     88
     89PRE_DEPEND = $(COMPS).s $(COMPS).h $(COMPS)_desc.c
  • boot/arch/mips32/_link.ld.in

    r22299ed r4646710  
    2121                *(.bss);        /* uninitialized static variables */
    2222                *(COMMON);      /* global variables */
    23 [[COMPONENTS]]
     23                *(.components);
    2424        }
    2525       
  • boot/arch/mips32/src/main.c

    r22299ed r4646710  
    3030#include <arch/arch.h>
    3131#include <arch/asm.h>
    32 #include <arch/_components.h>
    3332#include <halt.h>
    3433#include <printf.h>
     
    4039#include <errno.h>
    4140#include <inflate.h>
     41#include "../../components.h"
    4242
    4343#define TOP2ADDR(top)  (((void *) PA2KA(BOOT_OFFSET)) + (top))
     
    6464        size_t i;
    6565        for (i = 0; i < COMPONENTS; i++)
    66                 printf(" %p|%p: %s image (%zu/%zu bytes)\n", components[i].start,
    67                     (uintptr_t) components[i].start >= PA2KSEG(0) ?
    68                     (void *) KSEG2PA(components[i].start) :
    69                     (void *) KA2PA(components[i].start),
     66                printf(" %p|%p: %s image (%zu/%zu bytes)\n", components[i].addr,
     67                    (uintptr_t) components[i].addr >= PA2KSEG(0) ?
     68                    (void *) KSEG2PA(components[i].addr) :
     69                    (void *) KA2PA(components[i].addr),
    7070                    components[i].name, components[i].inflated,
    7171                    components[i].size);
     
    107107                printf("%s ", components[i - 1].name);
    108108               
    109                 int err = inflate(components[i - 1].start, components[i - 1].size,
     109                int err = inflate(components[i - 1].addr, components[i - 1].size,
    110110                    dest[i - 1], components[i - 1].inflated);
    111111               
  • boot/arch/ppc32/Makefile.inc

    r22299ed r4646710  
    5757        arch/$(BARCH)/src/main.c \
    5858        arch/$(BARCH)/src/ofw.c \
    59         $(COMPS_C) \
     59        $(COMPS).s \
     60        $(COMPS)_desc.c \
    6061        genarch/src/ofw.c \
    6162        genarch/src/ofw_tree.c \
     
    7071        generic/src/version.c \
    7172        generic/src/inflate.c
     73
     74PRE_DEPEND = $(COMPS).s $(COMPS).h $(COMPS)_desc.c
  • boot/arch/ppc32/_link.ld.in

    r22299ed r4646710  
    1818                *(.bss);        /* uninitialized static variables */
    1919                *(COMMON);      /* global variables */
    20 [[COMPONENTS]]
     20                *(.components);
    2121        }
    2222       
  • boot/arch/ppc32/src/main.c

    r22299ed r4646710  
    3030#include <arch/arch.h>
    3131#include <arch/asm.h>
    32 #include <arch/_components.h>
    3332#include <genarch/ofw.h>
    3433#include <genarch/ofw_tree.h>
     
    4241#include <errno.h>
    4342#include <inflate.h>
     43#include "../../components.h"
    4444
    4545#define BALLOC_MAX_SIZE  131072
     
    7575        size_t i;
    7676        for (i = 0; i < COMPONENTS; i++)
    77                 printf(" %p|%p: %s image (%zu/%zu bytes)\n", components[i].start,
    78                     ofw_translate(components[i].start), components[i].name,
     77                printf(" %p|%p: %s image (%zu/%zu bytes)\n", components[i].addr,
     78                    ofw_translate(components[i].addr), components[i].name,
    7979                    components[i].inflated, components[i].size);
    8080       
     
    139139                printf("%s ", components[i - 1].name);
    140140               
    141                 int err = inflate(components[i - 1].start, components[i - 1].size,
     141                int err = inflate(components[i - 1].addr, components[i - 1].size,
    142142                    inflate_base + dest[i - 1], components[i - 1].inflated);
    143143               
  • boot/arch/riscv64/_link.ld.in

    r22299ed r4646710  
    1717                *(.bss);        /* uninitialized static variables */
    1818                *(COMMON);      /* global variables */
    19 [[COMPONENTS]]
    2019        }
    2120       
  • boot/arch/sparc64/Makefile.inc

    r22299ed r4646710  
    5757        arch/$(BARCH)/src/main.c \
    5858        arch/$(BARCH)/src/ofw.c \
    59         $(COMPS_C) \
     59        $(COMPS).s \
     60        $(COMPS)_desc.c \
    6061        genarch/src/ofw.c \
    6162        genarch/src/ofw_tree.c \
     
    6869        generic/src/version.c \
    6970        generic/src/inflate.c
     71
     72PRE_DEPEND = $(COMPS).s $(COMPS).h $(COMPS)_desc.c
  • boot/arch/sparc64/_link.ld.in

    r22299ed r4646710  
    1515                *(.bss);        /* uninitialized static variables */
    1616                *(COMMON);      /* global variables */
    17 [[COMPONENTS]]
     17                *(.components);
    1818        }
    1919       
  • boot/arch/sparc64/src/main.c

    r22299ed r4646710  
    3232#include <arch/asm.h>
    3333#include <arch/ofw.h>
    34 #include <arch/_components.h>
    3534#include <genarch/ofw.h>
    3635#include <genarch/ofw_tree.h>
     
    4443#include <errno.h>
    4544#include <inflate.h>
     45#include "../../components.h"
    4646
    4747/* The lowest ID (read from the VER register) of some US3 CPU model */
     
    220220        size_t i;
    221221        for (i = 0; i < COMPONENTS; i++)
    222                 printf(" %p|%p: %s image (%zu/%zu bytes)\n", components[i].start,
    223                     ofw_translate(components[i].start), components[i].name,
     222                printf(" %p|%p: %s image (%zu/%zu bytes)\n", components[i].addr,
     223                    ofw_translate(components[i].addr), components[i].name,
    224224                    components[i].inflated, components[i].size);
    225225       
     
    267267                    ALIGN_UP(components[i - 1].inflated, PAGE_SIZE), -1);
    268268               
    269                 int err = inflate(components[i - 1].start, components[i - 1].size,
     269                int err = inflate(components[i - 1].addr, components[i - 1].size,
    270270                    dest[i - 1], components[i - 1].inflated);
    271271               
Note: See TracChangeset for help on using the changeset viewer.