diff --git a/.cirrus.yml b/.cirrus.yml index f97c14a..5aa5b9d 100644 --- a/.cirrus.yml +++ b/.cirrus.yml @@ -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: diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 56d397a..1745f6c 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -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 diff --git a/.gitignore b/.gitignore index c44b26b..deb9a0e 100644 --- a/.gitignore +++ b/.gitignore @@ -73,8 +73,6 @@ /libc/include/Makefile /tests/Makefile -/include/kernaux.h -/include/kernaux/multiboot2.h /include/kernaux/version.h /examples/assert diff --git a/ChangeLog b/ChangeLog index e659c8c..e02ea03 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2022-12-12 Alex Kotov + + * examples/Makefile.am: Fix builds without pthreads + * include/: Non-conditional headers (except ) + 2022-12-11 Alex Kotov * include/kernaux/macro.h: Macro "KERNAUX_STATIC_TEST" has been added diff --git a/README.md b/README.md index 69e5b44..4161746 100644 --- a/README.md +++ b/README.md @@ -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 diff --git a/configure.ac b/configure.ac index 5237c02..393838e 100644 --- a/configure.ac +++ b/configure.ac @@ -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 ]) diff --git a/examples/Makefile.am b/examples/Makefile.am index dc33671..29e32d4 100644 --- a/examples/Makefile.am +++ b/examples/Makefile.am @@ -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 # diff --git a/include/Makefile.am b/include/Makefile.am index 95072e5..f42d7ae 100644 --- a/include/Makefile.am +++ b/include/Makefile.am @@ -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 diff --git a/include/kernaux.h b/include/kernaux.h new file mode 100644 index 0000000..8d66bb7 --- /dev/null +++ b/include/kernaux.h @@ -0,0 +1,26 @@ +/* + We don't include because they + contain architecture-specific assembly functions. +*/ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include diff --git a/include/kernaux.h.in b/include/kernaux.h.in deleted file mode 100644 index 3090a5d..0000000 --- a/include/kernaux.h.in +++ /dev/null @@ -1,28 +0,0 @@ -/* - We don't include because they - contain architecture-specific assembly functions. -*/ - -#include -#include -#include - -#include -#include - -@comment_line_arch_i386@#include -@comment_line_arch_riscv64@#include -@comment_line_arch_x86_64@#include - -@comment_line_cmdline@#include -@comment_line_elf@#include -@comment_line_free_list@#include -@comment_line_mbr@#include -@comment_line_memmap@#include -@comment_line_multiboot2@#include -@comment_line_multiboot2@#include -@comment_line_ntoa@#include -@comment_line_pfa@#include -@comment_line_printf@#include -@comment_line_printf_fmt@#include -@comment_line_units@#include diff --git a/include/kernaux/multiboot2.h.in b/include/kernaux/multiboot2.h similarity index 98% rename from include/kernaux/multiboot2.h.in rename to include/kernaux/multiboot2.h index ad5941e..b689c3a 100644 --- a/include/kernaux/multiboot2.h.in +++ b/include/kernaux/multiboot2.h @@ -7,7 +7,7 @@ extern "C" { #include #include -@comment_line_memmap@#include +#include #include #include @@ -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 * diff --git a/include/kernaux/version.h.in b/include/kernaux/version.h.in index e41aee9..24db409 100644 --- a/include/kernaux/version.h.in +++ b/include/kernaux/version.h.in @@ -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