Merge branch 'master' into paging

This commit is contained in:
Alex Kotov 2022-12-13 00:32:04 +04:00
commit bb64237fe4
Signed by: kotovalexarian
GPG Key ID: 553C0EBBEB5D5F08
12 changed files with 78 additions and 134 deletions

View File

@ -11,7 +11,7 @@ main_freebsd_task:
- pkg install --yes autoconf automake libtool
main_build_script:
- ./autogen.sh
- ./configure --enable-debug --enable-checks CFLAGS='-O3'
- ./configure --enable-debug --enable-checks --enable-checks-pthreads CFLAGS='-O3'
- make
- sudo make install
main_test_script:

View File

@ -34,7 +34,7 @@ jobs:
- name: autogen
run: ./autogen.sh
- name: configure
run: ./configure ${{matrix.debug}} --enable-checks --enable-checks-python CC='${{matrix.cc}}' CFLAGS='${{matrix.opt}}'
run: ./configure ${{matrix.debug}} --enable-checks --enable-checks-pthreads --enable-checks-python CC='${{matrix.cc}}' CFLAGS='${{matrix.opt}}'
- name: make
run: make
- name: check
@ -76,7 +76,7 @@ jobs:
- name: autogen
run: ./autogen.sh
- name: configure
run: ./configure --host='${{matrix.cross.arch}}-unknown-elf' --enable-checks --enable-checks-python AR='${{matrix.cross.cprefix}}ar' CC='${{matrix.cross.cprefix}}gcc' LD='${{matrix.cross.cprefix}}ld' RANLIB='${{matrix.cross.cprefix}}ranlib'
run: ./configure --host='${{matrix.cross.arch}}-unknown-elf' --enable-checks --enable-checks-pthreads --enable-checks-python AR='${{matrix.cross.cprefix}}ar' CC='${{matrix.cross.cprefix}}gcc' LD='${{matrix.cross.cprefix}}ld' RANLIB='${{matrix.cross.cprefix}}ranlib'
- name: make
run: make
- name: check
@ -99,7 +99,7 @@ jobs:
- name: autogen
run: ./autogen.sh
- name: configure
run: ./configure --enable-debug --enable-checks --enable-checks-python --without-${{matrix.packages.without}} ${{matrix.packages.dependencies}}
run: ./configure --enable-debug --enable-checks --enable-checks-pthreads --enable-checks-python --without-${{matrix.packages.without}} ${{matrix.packages.dependencies}}
- name: make
run: make
- name: check
@ -138,7 +138,7 @@ jobs:
- name: extract
run: tar -xzf "libkernaux-$(cat VERSION).tar.gz"
- name: configure
run: cd "libkernaux-$(cat VERSION)" && ./configure --enable-debug --enable-checks --enable-checks-python
run: cd "libkernaux-$(cat VERSION)" && ./configure --enable-debug --enable-checks --enable-checks-pthreads --enable-checks-python
- name: make
run: cd "libkernaux-$(cat VERSION)" && make
- name: check

2
.gitignore vendored
View File

@ -73,8 +73,6 @@
/libc/include/Makefile
/tests/Makefile
/include/kernaux.h
/include/kernaux/multiboot2.h
/include/kernaux/version.h
/examples/assert

View File

@ -1,3 +1,8 @@
2022-12-12 Alex Kotov <kotovalexarian@gmail.com>
* examples/Makefile.am: Fix builds without pthreads
* include/: Non-conditional headers (except <kernaux/version.h>)
2022-12-11 Alex Kotov <kotovalexarian@gmail.com>
* include/kernaux/macro.h: Macro "KERNAUX_STATIC_TEST" has been added

View File

@ -137,8 +137,9 @@ stable options.
#### Features
* `--enable-checks` - enable usual tests and examples
* `--enable-checks-all` - enable all tests
* `--enable-checks-all` - enable all checks
* `--enable-checks-cppcheck` - enable cppcheck
* `--enable-checks-pthreads` - enable tests that require pthreads
* `--enable-checks-python` - enable tests that require Python 3 with YAML and
Jinja2

View File

@ -29,8 +29,6 @@ AC_CONFIG_FILES([
include/Makefile
libc/Makefile
libc/include/Makefile
include/kernaux.h
include/kernaux/multiboot2.h
include/kernaux/version.h
tests/Makefile
])

View File

@ -41,9 +41,11 @@ generic_malloc_SOURCES = main.c generic_malloc.c
# generic_mutex #
#################
if ENABLE_CHECKS_PTHREADS
TESTS += generic_mutex
generic_mutex_LDADD = $(top_builddir)/libkernaux.la
generic_mutex_SOURCES = main.c generic_mutex.c
endif
##############
# macro_bits #

View File

@ -1,92 +1,32 @@
##################
# Required files #
##################
nobase_include_HEADERS = \
kernaux.h \
kernaux/assert.h \
kernaux/macro.h \
kernaux/macro/packing_start.run \
kernaux/macro/packing_end.run \
kernaux/version.h \
kernaux/generic/display.h \
kernaux/generic/malloc.h \
kernaux/generic/mutex.h
########
# ARCH #
########
if WITH_ARCH_I386
nobase_include_HEADERS += kernaux/arch/i386.h kernaux/arch/i386-idt.h
endif
if WITH_ARCH_RISCV64
nobase_include_HEADERS += kernaux/arch/riscv64.h
endif
if WITH_ARCH_X86_64
nobase_include_HEADERS += kernaux/arch/x86_64.h
endif
if WITH_ARCH_X86
nobase_include_HEADERS += kernaux/arch/x86.h kernaux/arch/x86-paging.h
endif
#######
# ASM #
#######
if WITH_ASM
if ASM_I386
nobase_include_HEADERS += kernaux/asm/i386.h
endif
if ASM_RISCV64
nobase_include_HEADERS += kernaux/asm/riscv64.h
endif
if ASM_X86_64
nobase_include_HEADERS += kernaux/asm/x86_64.h
endif
if ASM_X86
nobase_include_HEADERS += kernaux/asm/x86.h
endif
endif
####################
# Default packages #
####################
if WITH_CMDLINE
nobase_include_HEADERS += kernaux/cmdline.h
endif
if WITH_ELF
nobase_include_HEADERS += kernaux/elf.h
endif
if WITH_FREE_LIST
nobase_include_HEADERS += kernaux/free_list.h
endif
if WITH_MBR
nobase_include_HEADERS += kernaux/mbr.h
endif
if WITH_MEMMAP
nobase_include_HEADERS += kernaux/memmap.h
endif
if WITH_MULTIBOOT2
nobase_include_HEADERS += \
kernaux/multiboot2.h \
kernaux/multiboot2/header_macro.h
endif
if WITH_NTOA
nobase_include_HEADERS += kernaux/ntoa.h
endif
if WITH_PFA
nobase_include_HEADERS += kernaux/pfa.h
endif
if WITH_PRINTF
nobase_include_HEADERS += kernaux/printf.h
endif
if WITH_PRINTF_FMT
nobase_include_HEADERS += kernaux/printf_fmt.h
endif
if WITH_UNITS
nobase_include_HEADERS += kernaux/units.h
endif
kernaux.h \
kernaux/arch/i386.h \
kernaux/arch/i386-idt.h \
kernaux/arch/riscv64.h \
kernaux/arch/x86_64.h \
kernaux/arch/x86.h \
kernaux/arch/x86-paging.h \
kernaux/asm/i386.h \
kernaux/asm/riscv64.h \
kernaux/asm/x86_64.h \
kernaux/asm/x86.h \
kernaux/assert.h \
kernaux/cmdline.h \
kernaux/elf.h \
kernaux/free_list.h \
kernaux/generic/display.h \
kernaux/generic/malloc.h \
kernaux/generic/mutex.h \
kernaux/macro.h \
kernaux/macro/packing_end.run \
kernaux/macro/packing_start.run \
kernaux/mbr.h \
kernaux/memmap.h \
kernaux/multiboot2.h \
kernaux/multiboot2/header_macro.h \
kernaux/ntoa.h \
kernaux/pfa.h \
kernaux/printf.h \
kernaux/printf_fmt.h \
kernaux/units.h \
kernaux/version.h

26
include/kernaux.h Normal file
View File

@ -0,0 +1,26 @@
/*
We don't include <kernaux/asm/*.h> because they
contain architecture-specific assembly functions.
*/
#include <kernaux/arch/i386.h>
#include <kernaux/arch/riscv64.h>
#include <kernaux/arch/x86_64.h>
#include <kernaux/assert.h>
#include <kernaux/cmdline.h>
#include <kernaux/elf.h>
#include <kernaux/free_list.h>
#include <kernaux/generic/display.h>
#include <kernaux/generic/malloc.h>
#include <kernaux/generic/mutex.h>
#include <kernaux/macro.h>
#include <kernaux/mbr.h>
#include <kernaux/memmap.h>
#include <kernaux/multiboot2.h>
#include <kernaux/multiboot2/header_macro.h>
#include <kernaux/ntoa.h>
#include <kernaux/pfa.h>
#include <kernaux/printf.h>
#include <kernaux/printf_fmt.h>
#include <kernaux/units.h>
#include <kernaux/version.h>

View File

@ -1,28 +0,0 @@
/*
We don't include <kernaux/asm/*.h> because they
contain architecture-specific assembly functions.
*/
#include <kernaux/assert.h>
#include <kernaux/macro.h>
#include <kernaux/version.h>
#include <kernaux/generic/malloc.h>
#include <kernaux/generic/mutex.h>
@comment_line_arch_i386@#include <kernaux/arch/i386.h>
@comment_line_arch_riscv64@#include <kernaux/arch/riscv64.h>
@comment_line_arch_x86_64@#include <kernaux/arch/x86_64.h>
@comment_line_cmdline@#include <kernaux/cmdline.h>
@comment_line_elf@#include <kernaux/elf.h>
@comment_line_free_list@#include <kernaux/free_list.h>
@comment_line_mbr@#include <kernaux/mbr.h>
@comment_line_memmap@#include <kernaux/memmap.h>
@comment_line_multiboot2@#include <kernaux/multiboot2.h>
@comment_line_multiboot2@#include <kernaux/multiboot2/header_macro.h>
@comment_line_ntoa@#include <kernaux/ntoa.h>
@comment_line_pfa@#include <kernaux/pfa.h>
@comment_line_printf@#include <kernaux/printf.h>
@comment_line_printf_fmt@#include <kernaux/printf_fmt.h>
@comment_line_units@#include <kernaux/units.h>

View File

@ -7,7 +7,7 @@ extern "C" {
#include <kernaux/macro.h>
#include <kernaux/generic/display.h>
@comment_line_memmap@#include <kernaux/memmap.h>
#include <kernaux/memmap.h>
#include <kernaux/multiboot2/header_macro.h>
#include <stdint.h>
@ -585,10 +585,10 @@ const char *KernAux_Multiboot2_HTag_RelocatableHeader_Preference_to_str(
* Information conversion functions *
************************************/
@comment_line_memmap@bool KernAux_Multiboot2_Info_to_memmap(
@comment_line_memmap@ const struct KernAux_Multiboot2_Info *multiboot2_info,
@comment_line_memmap@ KernAux_MemMap memmap
@comment_line_memmap@);
bool KernAux_Multiboot2_Info_to_memmap(
const struct KernAux_Multiboot2_Info *multiboot2_info,
KernAux_MemMap memmap
);
/***************************
* Header helper functions *

View File

@ -3,7 +3,9 @@
@comment_line_cmdline@#define KERNAUX_VERSION_WITH_CMDLINE
@comment_line_elf@#define KERNAUX_VERSION_WITH_ELF
@comment_line_free_list@#define KERNAUX_VERSION_WITH_FREE_LIST
@comment_line_mbr@#define KERNAUX_VERSION_WITH_MBR
@comment_line_memmap@#define KERNAUX_VERSION_WITH_MEMMAP
@comment_line_multiboot2@#define KERNAUX_VERSION_WITH_MULTIBOOT2
@comment_line_ntoa@#define KERNAUX_VERSION_WITH_NTOA
@comment_line_pfa@#define KERNAUX_VERSION_WITH_PFA