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 - pkg install --yes autoconf automake libtool
main_build_script: main_build_script:
- ./autogen.sh - ./autogen.sh
- ./configure --enable-debug --enable-checks CFLAGS='-O3' - ./configure --enable-debug --enable-checks --enable-checks-pthreads CFLAGS='-O3'
- make - make
- sudo make install - sudo make install
main_test_script: main_test_script:

View File

@ -34,7 +34,7 @@ jobs:
- name: autogen - name: autogen
run: ./autogen.sh run: ./autogen.sh
- name: configure - 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 - name: make
run: make run: make
- name: check - name: check
@ -76,7 +76,7 @@ jobs:
- name: autogen - name: autogen
run: ./autogen.sh run: ./autogen.sh
- name: configure - 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 - name: make
run: make run: make
- name: check - name: check
@ -99,7 +99,7 @@ jobs:
- name: autogen - name: autogen
run: ./autogen.sh run: ./autogen.sh
- name: configure - 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 - name: make
run: make run: make
- name: check - name: check
@ -138,7 +138,7 @@ jobs:
- name: extract - name: extract
run: tar -xzf "libkernaux-$(cat VERSION).tar.gz" run: tar -xzf "libkernaux-$(cat VERSION).tar.gz"
- name: configure - 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 - name: make
run: cd "libkernaux-$(cat VERSION)" && make run: cd "libkernaux-$(cat VERSION)" && make
- name: check - name: check

2
.gitignore vendored
View File

@ -73,8 +73,6 @@
/libc/include/Makefile /libc/include/Makefile
/tests/Makefile /tests/Makefile
/include/kernaux.h
/include/kernaux/multiboot2.h
/include/kernaux/version.h /include/kernaux/version.h
/examples/assert /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> 2022-12-11 Alex Kotov <kotovalexarian@gmail.com>
* include/kernaux/macro.h: Macro "KERNAUX_STATIC_TEST" has been added * include/kernaux/macro.h: Macro "KERNAUX_STATIC_TEST" has been added

View File

@ -137,8 +137,9 @@ stable options.
#### Features #### Features
* `--enable-checks` - enable usual tests and examples * `--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-cppcheck` - enable cppcheck
* `--enable-checks-pthreads` - enable tests that require pthreads
* `--enable-checks-python` - enable tests that require Python 3 with YAML and * `--enable-checks-python` - enable tests that require Python 3 with YAML and
Jinja2 Jinja2

View File

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

View File

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

View File

@ -1,92 +1,32 @@
##################
# Required files #
##################
nobase_include_HEADERS = \ nobase_include_HEADERS = \
kernaux.h \ kernaux.h \
kernaux/assert.h \ kernaux/arch/i386.h \
kernaux/macro.h \ kernaux/arch/i386-idt.h \
kernaux/macro/packing_start.run \ kernaux/arch/riscv64.h \
kernaux/macro/packing_end.run \ kernaux/arch/x86_64.h \
kernaux/version.h \ kernaux/arch/x86.h \
kernaux/generic/display.h \ kernaux/arch/x86-paging.h \
kernaux/generic/malloc.h \ kernaux/asm/i386.h \
kernaux/generic/mutex.h kernaux/asm/riscv64.h \
kernaux/asm/x86_64.h \
######## kernaux/asm/x86.h \
# ARCH # kernaux/assert.h \
######## kernaux/cmdline.h \
kernaux/elf.h \
if WITH_ARCH_I386 kernaux/free_list.h \
nobase_include_HEADERS += kernaux/arch/i386.h kernaux/arch/i386-idt.h kernaux/generic/display.h \
endif kernaux/generic/malloc.h \
if WITH_ARCH_RISCV64 kernaux/generic/mutex.h \
nobase_include_HEADERS += kernaux/arch/riscv64.h kernaux/macro.h \
endif kernaux/macro/packing_end.run \
if WITH_ARCH_X86_64 kernaux/macro/packing_start.run \
nobase_include_HEADERS += kernaux/arch/x86_64.h kernaux/mbr.h \
endif kernaux/memmap.h \
kernaux/multiboot2.h \
if WITH_ARCH_X86 kernaux/multiboot2/header_macro.h \
nobase_include_HEADERS += kernaux/arch/x86.h kernaux/arch/x86-paging.h kernaux/ntoa.h \
endif kernaux/pfa.h \
kernaux/printf.h \
####### kernaux/printf_fmt.h \
# ASM # kernaux/units.h \
####### kernaux/version.h
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

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

View File

@ -3,7 +3,9 @@
@comment_line_cmdline@#define KERNAUX_VERSION_WITH_CMDLINE @comment_line_cmdline@#define KERNAUX_VERSION_WITH_CMDLINE
@comment_line_elf@#define KERNAUX_VERSION_WITH_ELF @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_mbr@#define KERNAUX_VERSION_WITH_MBR
@comment_line_memmap@#define KERNAUX_VERSION_WITH_MEMMAP
@comment_line_multiboot2@#define KERNAUX_VERSION_WITH_MULTIBOOT2 @comment_line_multiboot2@#define KERNAUX_VERSION_WITH_MULTIBOOT2
@comment_line_ntoa@#define KERNAUX_VERSION_WITH_NTOA @comment_line_ntoa@#define KERNAUX_VERSION_WITH_NTOA
@comment_line_pfa@#define KERNAUX_VERSION_WITH_PFA @comment_line_pfa@#define KERNAUX_VERSION_WITH_PFA