mirror of https://github.com/tailix/mrubyvisor.git
Use libclayer
This commit is contained in:
parent
aa22bab79f
commit
4943183cb1
|
@ -7,3 +7,6 @@
|
|||
[submodule "vendor/drivers"]
|
||||
path = vendor/drivers
|
||||
url = https://github.com/tailix/drivers.git
|
||||
[submodule "vendor/libclayer"]
|
||||
path = vendor/libclayer
|
||||
url = https://github.com/tailix/libclayer.git
|
||||
|
|
28
Makefile
28
Makefile
|
@ -35,6 +35,7 @@ ROOTFS_DIR = rootfs
|
|||
SRC_DIR = src
|
||||
|
||||
# Basic paths (dependencies)
|
||||
LIBCLAYER_DIR = vendor/libclayer
|
||||
LIBKERNAUX_DIR = vendor/libkernaux
|
||||
DRIVERS_DIR = vendor/drivers
|
||||
MRUBY_DIR = vendor/mruby
|
||||
|
@ -42,12 +43,22 @@ MRUBY_DIR = vendor/mruby
|
|||
# Deeper paths
|
||||
INCLUDE_DIR = $(DEST_DIR)/include
|
||||
LIB_DIR = $(DEST_DIR)/lib
|
||||
LIBCLAYER = $(LIB_DIR)/libc.a
|
||||
LIBDRIVERS = $(LIB_DIR)/libdrivers.a
|
||||
LIBKERNAUX = $(LIB_DIR)/libkernaux.a
|
||||
LIBMRUBY = $(LIB_DIR)/libmruby.a
|
||||
GRUBCFG = $(ROOTFS_DIR)/boot/grub/grub.cfg
|
||||
MRUBYVISOR = $(ROOTFS_DIR)/boot/mrubyvisor.multiboot2
|
||||
|
||||
#############
|
||||
# libclayer #
|
||||
#############
|
||||
|
||||
LIBCLAYER_ARGS = \
|
||||
--enable-libc \
|
||||
--disable-libclayer \
|
||||
--enable-freestanding
|
||||
|
||||
##############
|
||||
# libkernaux #
|
||||
##############
|
||||
|
@ -57,7 +68,7 @@ LIBKERNAUX_ARGS = \
|
|||
--enable-split-libc \
|
||||
--enable-debug \
|
||||
--disable-float \
|
||||
--with-libc
|
||||
CFLAGS='-I$(ABS_REPO)/$(INCLUDE_DIR)'
|
||||
|
||||
###########
|
||||
# drivers #
|
||||
|
@ -93,7 +104,7 @@ runc: $(IMAGE)
|
|||
runw: $(IMAGE)
|
||||
$(QEMU) -cdrom $< -serial stdio
|
||||
|
||||
clean: clean-src clean-dest clean-mruby clean-libkernaux
|
||||
clean: clean-src clean-dest clean-mruby clean-libkernaux clean-libclayer
|
||||
|
||||
clean-src:
|
||||
$(MAKE) -C $(SRC_DIR) clean
|
||||
|
@ -110,6 +121,9 @@ clean-drivers:
|
|||
clean-libkernaux:
|
||||
$(MAKE) -C $(LIBKERNAUX_DIR) distclean || true
|
||||
|
||||
clean-libclayer:
|
||||
$(MAKE) -C $(LIBCLAYER_DIR) distclean || true
|
||||
|
||||
##############
|
||||
# File tasks #
|
||||
##############
|
||||
|
@ -117,11 +131,17 @@ clean-libkernaux:
|
|||
$(IMAGE): $(GRUBCFG) $(MRUBYVISOR)
|
||||
$(GRUB_MKRESCUE) $(ROOTFS_DIR) -o $@
|
||||
|
||||
$(MRUBYVISOR): $(LIBKERNAUX) $(LIBDRIVERS) $(LIBMRUBY)
|
||||
$(MRUBYVISOR): $(LIBCLAYER) $(LIBKERNAUX) $(LIBDRIVERS) $(LIBMRUBY)
|
||||
$(MAKE) -C $(SRC_DIR) mrubyvisor.multiboot2 CCPREFIX='$(CCPREFIX)' DEST='$(ABS_REPO)/$(DEST_DIR)' MRUBY_FLAGS='$(MRUBY_FLAGS)'
|
||||
$(CP) $(SRC_DIR)/mrubyvisor.multiboot2 $@
|
||||
|
||||
$(LIBKERNAUX):
|
||||
$(LIBCLAYER):
|
||||
cd $(LIBCLAYER_DIR) && ./autogen.sh
|
||||
cd $(LIBCLAYER_DIR) && ./configure --host='i386-elf' --prefix='$(ABS_REPO)/$(DEST_DIR)' $(LIBCLAYER_ARGS) AR='$(AR)' AS='$(AS)' CC='$(CC)' LD='$(LD)' RANLIB='$(RANLIB)'
|
||||
cd $(LIBCLAYER_DIR) && $(MAKE)
|
||||
cd $(LIBCLAYER_DIR) && $(MAKE) install
|
||||
|
||||
$(LIBKERNAUX): $(LIBCLAYER)
|
||||
cd $(LIBKERNAUX_DIR) && ./autogen.sh
|
||||
cd $(LIBKERNAUX_DIR) && ./configure --host='i386-elf' --prefix='$(ABS_REPO)/$(DEST_DIR)' $(LIBKERNAUX_ARGS) AR='$(AR)' AS='$(AS)' CC='$(CC)' LD='$(LD)' RANLIB='$(RANLIB)'
|
||||
cd $(LIBKERNAUX_DIR) && $(MAKE)
|
||||
|
|
14
src/libc.c
14
src/libc.c
|
@ -6,7 +6,7 @@
|
|||
#include <drivers/shutdown.h>
|
||||
#include <kernaux/generic/malloc.h>
|
||||
#include <kernaux/free_list.h>
|
||||
#include <kernaux/libc.h>
|
||||
#include <libclayer.h>
|
||||
|
||||
static struct KernAux_FreeList allocator;
|
||||
static uint8_t memory[1024 * 128]; // 128 KiB
|
||||
|
@ -26,13 +26,13 @@ void libc_init()
|
|||
KernAux_FreeList_init(&allocator, NULL);
|
||||
KernAux_FreeList_add_zone(&allocator, memory, sizeof(memory));
|
||||
|
||||
kernaux_libc.abort = my_abort;
|
||||
kernaux_libc.exit = my_exit;
|
||||
libclayer.abort = my_abort;
|
||||
libclayer.exit = my_exit;
|
||||
|
||||
kernaux_libc.calloc = my_calloc;
|
||||
kernaux_libc.free = my_free;
|
||||
kernaux_libc.malloc = my_malloc;
|
||||
kernaux_libc.realloc = my_realloc;
|
||||
libclayer.calloc = my_calloc;
|
||||
libclayer.free = my_free;
|
||||
libclayer.malloc = my_malloc;
|
||||
libclayer.realloc = my_realloc;
|
||||
}
|
||||
|
||||
void my_abort()
|
||||
|
|
|
@ -1 +1 @@
|
|||
Subproject commit aad813390ed6062f65ee89be47c214481e3ae5bd
|
||||
Subproject commit 38241b9fd261d069a5277cf959c3cf574f34e7cd
|
|
@ -0,0 +1 @@
|
|||
Subproject commit 881f6ecb5b5c74fc2823b860fd6b186452af5406
|
|
@ -1 +1 @@
|
|||
Subproject commit b812b52a9cbc4730c0719be288f0826583f69461
|
||||
Subproject commit 5ac4de42038a90bc22f9d7799acdfe6420ec6b07
|
Loading…
Reference in New Issue