From 5057c439be750f778400953bbd864849521b9fc8 Mon Sep 17 00:00:00 2001 From: Danny Holman Date: Wed, 15 Oct 2025 19:53:50 -0500 Subject: bootstrap: stage2: create build files Create the baseline build files from templates in the project root. Since the second stage is *mostly* standardized, overrides should be kept to a minimum unless a specific architecture/platform requires it. Signed-off-by: Danny Holman --- bootstrap/stage2/Makefile | 7 ++++++- bootstrap/stage2/arch/x86_64/linker.ld | 2 +- bootstrap/stage2/arch/x86_64/make.conf | 17 +++++++++++++++++ 3 files changed, 24 insertions(+), 2 deletions(-) diff --git a/bootstrap/stage2/Makefile b/bootstrap/stage2/Makefile index 2b3951d..1799157 100644 --- a/bootstrap/stage2/Makefile +++ b/bootstrap/stage2/Makefile @@ -17,7 +17,7 @@ include $(ROOTDIR)/common.mk -ifeq (BS_DEBUG,YES) +ifeq ($(BS_DEBUG),YES) AFLAGS+=-g CFLAGS+=-g endif @@ -28,7 +28,12 @@ CFLAGS+=-ffreestanding -fno-stack-protector $(BS_OPLVL) BINARY=bootstrap-stage2 include $(ARCHDIR)/make.conf +FIRMWARE_DIR=firmware/$(FIRMWARE) +include $(FIRMWARE_DIR)/make.conf +COMMON_DIR=firmware/common OBJS=$(ARCH_OBJS) \ + $(COMMON_OBJS) \ + $(FIRMWARE_OBJS) \ include $(ROOTDIR)/patterns.mk diff --git a/bootstrap/stage2/arch/x86_64/linker.ld b/bootstrap/stage2/arch/x86_64/linker.ld index 7bd0460..f5489e5 100644 --- a/bootstrap/stage2/arch/x86_64/linker.ld +++ b/bootstrap/stage2/arch/x86_64/linker.ld @@ -1,7 +1,7 @@ ENTRY(_start) SECTIONS { - . = 0x2000; + . = 0x100000; __bstart = .; .text : { diff --git a/bootstrap/stage2/arch/x86_64/make.conf b/bootstrap/stage2/arch/x86_64/make.conf index 930b95e..4e4ab6f 100644 --- a/bootstrap/stage2/arch/x86_64/make.conf +++ b/bootstrap/stage2/arch/x86_64/make.conf @@ -1,3 +1,20 @@ +# Copyright (C) 2025 Danny Holman +# +# This file is part of BoxOS, a free and open-source Unix-like operating +# system. +# +# BoxOS is free software; you can redistribute it and/or modify under the +# terms of the GNU General Public License as published by the Free Software +# Foundation; either version 2 of the License, or (at your option) any later +# version. +# +# BoxOS is distributed in the hope it will be useful, but WITHOUT ANY WARRANTY; +# without even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. See the GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License along with +# BoxOS; if not, see . + AFLAGS+=-target $(ARCH)-none-elf CFLAGS+=-target $(ARCH)-none-elf -mno-red-zone -mno-mmx -mno-sse -mno-sse2 LDFLAGS+=--script=$(ARCHDIR)/linker.ld -- cgit v1.2.3