commit 608ea5c5dcd0099db0819acc42625dca85d56961 Author: Xamora Date: Tue Jan 21 15:20:22 2025 +0100 starting project diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..d23b815 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +build +*.so diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..4b5aedc --- /dev/null +++ b/Makefile @@ -0,0 +1,39 @@ +CC := gcc +LD := $(CC) +LDFLAGS := +CFLAGS := $(shell cat compile_flags.txt | sed -z "s/\n/ /g") +SRC := $(wildcard src/*.c) +LIB := lib/lib.a +OBJ_DIR := build +OBJ := $(addprefix $(OBJ_DIR)/, $(patsubst %.c,%.o,$(SRC))) +DIR := . +RAW_NAME:= libft_malloc +ifeq ($(HOSTTYPE),) + HOSTTYPE := $(shell uname -m)_$(shell uname -s) +endif +NAME := $(RAW_NAME).so +NAME_L := $(RAW_NAME)_$(HOSTTYPE).so + +all: $(NAME) + +$(NAME): $(OBJ) + @make --no-print -C lib all + $(LD) $(LDFLAGS) -o $(DIR)/$(NAME_L) $(OBJ) $(LIB) + ln -sf $(DIR)/$(NAME_L) $(DIR)/$(NAME) + +$(OBJ_DIR)/%.o: %.c + @mkdir -p $(@D) + $(CC) $(CFLAGS) -c -o $@ $< + +clean: + @rm -rf $(OBJ_DIR) + +fclean: clean + @rm -f $(DIR)/$(NAME) + @rm -f $(DIR)/$(NAME_L) + +re: + @make --no-print clean + @make --no-print all + +.PHONY: all clean re diff --git a/compile_flags.txt b/compile_flags.txt new file mode 100644 index 0000000..ad80385 --- /dev/null +++ b/compile_flags.txt @@ -0,0 +1,9 @@ +-includelib/libft/libft.h +-includelib/ft_printf/ft_printf.h +-includeinc/malloc.h +-Wall +-Wextra +-std=c23 +-iquoteinc +-iquotelib +-fPIC diff --git a/inc/malloc.h b/inc/malloc.h new file mode 100644 index 0000000..4fb6ad0 --- /dev/null +++ b/inc/malloc.h @@ -0,0 +1,9 @@ +#pragma once + +#include +#include +#include + +void free(void *ptr); +void *malloc(size_t size); +void *realloc(void *ptr, size_t size); diff --git a/lib b/lib new file mode 160000 index 0000000..6daf0df --- /dev/null +++ b/lib @@ -0,0 +1 @@ +Subproject commit 6daf0df08a7a66726c39e9c8939e2a677a21b617 diff --git a/src/free.c b/src/free.c new file mode 100644 index 0000000..ad67d21 --- /dev/null +++ b/src/free.c @@ -0,0 +1,4 @@ +void +free(void *ptr) { + +} diff --git a/src/malloc.c b/src/malloc.c new file mode 100644 index 0000000..2240312 --- /dev/null +++ b/src/malloc.c @@ -0,0 +1,12 @@ +#include "libft/libft.h" +char *memory = nullptr; + +void * +malloc(size_t size) { + if (!memory) + memory = mmap(nullptr, 4096 * 10, 0, PROT_READ | PROT_WRITE, 0, 0); + + for (i32 i = 0; i < ft_get_size(size); i++) { + + } +} diff --git a/src/realloc.c b/src/realloc.c new file mode 100644 index 0000000..04d4bcd --- /dev/null +++ b/src/realloc.c @@ -0,0 +1,4 @@ +void * +realloc(void *ptr, size_t size) { + +}