Merge branch 'master' into multiboot2-bindings

This commit is contained in:
Alex Kotov 2022-12-23 14:39:48 +04:00
commit 32b3c0cdef
Signed by: kotovalexarian
GPG Key ID: 553C0EBBEB5D5F08
18 changed files with 123 additions and 84 deletions

2
.gitignore vendored
View File

@ -81,3 +81,5 @@
/libc/Makefile
/libc/include/Makefile
/tests/Makefile
/libkernaux.pc

View File

@ -1,58 +1,3 @@
2022-12-22 Alex Kotov <kotovalexarian@gmail.com>
2022-12-23 Alex Kotov <kotovalexarian@gmail.com>
* include/kernaux/memmap.h: Complete rewrite
2022-12-21 Alex Kotov <kotovalexarian@gmail.com>
* configure.ac: Rename feature "--(enable|disable)-debug" to
"--(enable|disable)-assert"
* include/: Definition "KERNAUX_DEBUG" has been removed
* include/kernaux/runtime.h: New header
* include/kernaux/assert.h: Removed header
2022-12-19 Alex Kotov <kotovalexarian@gmail.com>
* src/multiboot2/*_print.c: Print Multiboot 2 ELF section headers
2022-12-17 Alex Kotov <kotovalexarian@gmail.com>
* configure.ac: Feature "--(enable|disable)-fixtures" has been added
* src/multiboot2/*_print.c: Print some values in hex
2022-12-16 Alex Kotov <kotovalexarian@gmail.com>
* configure.ac: Package "--with[out]-multiboot2" has been added
* include/kernaux/multiboot2.h: Has been made stable
2022-12-14 Alex Kotov <kotovalexarian@gmail.com>
* configure.ac: Enable shared library
2022-12-13 Alex Kotov <kotovalexarian@gmail.com>
* tests/Makefile.am: Fix FreeBSD builds
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
2022-12-10 Alex Kotov <kotovalexarian@gmail.com>
* include/kernaux/macro.h: Macros "KERNAUX_CAST_(VAR|CONST)" have been added
2022-12-09 Alex Kotov <kotovalexarian@gmail.com>
* include/kernaux/generic/display.h: The header has been added
2022-12-08 Alex Kotov <kotovalexarian@gmail.com>
* include/kernaux/*.h: Definition "KERNAUX_BITFIELDS" has been added
2022-12-05 Alex Kotov <kotovalexarian@gmail.com>
libkernaux 0.6.1 released
libkernaux 0.7.0 released

View File

@ -28,6 +28,11 @@ AM_CFLAGS += -DKERNAUX_ACCESS_PRIVATE
lib_LTLIBRARIES = libkernaux.la
if ENABLE_PKG_CONFIG
pkgconfigdir = @pkgconfdir@
pkgconfig_DATA = libkernaux.pc
endif
##################
# Required files #
##################

38
NEWS.md
View File

@ -3,6 +3,44 @@ Releases
0.7.0 (2022-12-23)
------------------
169 files changed, 6332 insertions(+), 3858 deletions(-)
### Breaking changes
* `./configure` - feature `--(enable|disable)-debug` has been removed.
* `<kernaux/*>` - definition `KERNAUX_DEBUG` has been removed.
* `<kernaux/assert.h>` - it has been removed.
* `<kernaux/memmap.h>` - it has been completely rewritten.
### New features
* `./configure` - feature `--(enable|disable)-fixtures` has been added.
* `./configure` - feature `--(enable|disable)-pkg-config[=PATH` has been added.
It allows you to specify where to install **pkg-config** files.
* `./configure` - package `--with[out]-multiboot2` has been added.
* `<kernaux/*>` - definition `KERNAUX_BITFIELDS` has been added.
* `<kernaux/generic/display.h>` - new header.
* `<kernaux/macro.h>` - macro `KERNAUX_STATIC_TEST` has been added.
* `<kernaux/macro.h>` - macros `KERNAUX_CAST_(VAR|CONST)` have been added.
* `<kernaux/multiboot2.h>` - new header.
* `<kernaux/runtime.h>` - new header. Now it contains the variable
`kernaux_assert_cb`.
### Other changes
* `./configure` - a shared library is built by default.
* `<kernaux/*>` - the headers are the same regardless of the selection
of features and packages (except `<kernaux/version.h>`).
* `examples/Makefile` - the test suite can be built now without **pthreads**.
* `tests/Makefile` - the ability to run tests from with any working directory
has been added.
* `tests/Makefile` - the test suite has been fixed to run on FreeBSD.
0.6.1 (2022-12-05)
------------------

View File

@ -40,7 +40,7 @@ zero). Work-in-progress APIs can change at any time.
* Basic features
* [Feature macros](/include/kernaux/version.h.in) (*work in progress*)
* [Runtime environment](/include/kernaux/runtime.h) (*non-breaking since* **?.?.?**)
* [Runtime environment](/include/kernaux/runtime.h) (*non-breaking since* **0.7.0**)
* [Macros](/include/kernaux/macro.h) (*non-breaking since* **0.6.0**)
* [Example: packing](/examples/macro_packing.c)
* [Example: BITS](/examples/macro_bits.c)
@ -49,7 +49,7 @@ zero). Work-in-progress APIs can change at any time.
* [Example: STATIC\_TEST\*](/examples/macro_static_test.c)
* Stack trace *(planned)*
* Generic types
* [Display](/include/kernaux/generic/display.h) (*non-breaking since* **?.?.?**)
* [Display](/include/kernaux/generic/display.h) (*non-breaking since* **0.7.0**)
* [Example](/examples/generic_display.c)
* [Memory allocator](/include/kernaux/generic/malloc.h) (*non-breaking since* **0.5.0**)
* [Example](/examples/generic_malloc.c)
@ -64,12 +64,12 @@ zero). Work-in-progress APIs can change at any time.
* Data formats
* [ELF](/include/kernaux/elf.h) (*work in progress*)
* [MBR](/include/kernaux/mbr.h) (*work in progress*)
* [Multiboot 2 (GRUB 2)](/include/kernaux/multiboot2.h.in) (*non-breaking since* **?.?.?**)
* [Multiboot 2 (GRUB 2)](/include/kernaux/multiboot2.h.in) (*non-breaking since* **0.7.0**)
* [Example: header macros](/examples/multiboot2_header_macro.c)
* Utilities
* [Measurement units utils](/include/kernaux/units.h) (*work in progress*)
* [Example: To human](/examples/units_human.c)
* [Memory map](/include/kernaux/memmap.h) (*non-breaking since* **?.?.?**)
* [Memory map](/include/kernaux/memmap.h) (*non-breaking since* **0.7.0**)
* [Example](/examples/memmap.c)
* [printf format parser](/include/kernaux/printf_fmt.h) (*non-breaking since* **0.6.0**)
* [Example](/examples/printf_fmt.c)
@ -140,6 +140,8 @@ stable options.
* `--enable-checks-python` - enable tests that require Python 3 with YAML and
Jinja2
* `--enable-fixtures` - enable fixtures for tests and bindings
* `--enable-pkg-config[=PATH]` - install pkg-config files
[PATH='${libdir}/pkgconfig']
#### Packages

View File

@ -1 +1 @@
0.6.1
0.7.0

View File

@ -19,8 +19,8 @@ MRuby::Build.new do |conf|
# ...
conf.gem github: 'tailix/libkernaux',
path: 'bindings/mruby',
branch: 'v0.6.1',
checksum_hash: 'dfaf233b1a03de29a04560902010c6a31e37140a'
branch: 'v0.7.0',
checksum_hash: '1cfff3fca3fc3f8990f43f0d6d5c91929c8f359c'
# ...
end
```

View File

@ -1,5 +1,5 @@
MRuby::Gem::Specification.new 'mruby-kernaux' do |spec|
spec.version = '0.6.1'
spec.version = '0.7.0'
spec.license = 'MIT'
spec.homepage =
'https://github.com/tailix/libkernaux/tree/master/bindings/ruby'

View File

@ -15,7 +15,7 @@ Install
Add the following to your `Gemfile`:
```ruby
gem 'kernaux', '~> 0.6.1'
gem 'kernaux', '~> 0.7.0'
```
Or add the following to your `*.gemspec`:
@ -23,7 +23,7 @@ Or add the following to your `*.gemspec`:
```ruby
Gem::Specification.new do |spec|
# ...
spec.add_runtime_dependency 'kernaux', '~> 0.6.1'
spec.add_runtime_dependency 'kernaux', '~> 0.7.0'
# ...
end
```

View File

@ -2,7 +2,7 @@
module KernAux
# Gem version.
VERSION = '0.6.1'
VERSION = '0.7.0'
##
# This module includes functions to determine if specific features are

View File

@ -1,6 +1,6 @@
[package]
name = "kernaux-sys"
version = "0.6.1"
version = "0.7.0"
authors = ["Alex Kotov <kotovalexarian@gmail.com>"]
edition = "2021"
description = "Unsafe no-std binding to libkernaux - auxiliary library for kernel development"

View File

@ -1,6 +1,6 @@
[package]
name = "kernaux"
version = "0.6.1"
version = "0.7.0"
authors = ["Alex Kotov <kotovalexarian@gmail.com>"]
edition = "2021"
description = "Safe binding to libkernaux - auxiliary library for kernel development"
@ -21,7 +21,7 @@ ntoa = ["kernaux-sys/ntoa"]
ctor = "0.1.22"
[dependencies.kernaux-sys]
version = "0.6.1"
version = "0.7.0"
default-features = false
path = "../kernaux-sys"

View File

@ -25,6 +25,7 @@ AC_CONFIG_HEADERS([config.h])
AC_CONFIG_SRCDIR([src/runtime.c])
AC_CONFIG_FILES([
Makefile
libkernaux.pc
examples/Makefile
fixtures/Makefile
fixtures/multiboot2_bin_examples_gen.c
@ -39,6 +40,7 @@ AC_CONFIG_FILES([
AM_INIT_AUTOMAKE([1.16 subdir-objects])
AC_SUBST([PACKAGE_DESCR], ['Auxiliary library for kernel development'])
AC_SUBST([PACKAGE_VERSION_SO], m4_normalize(m4_include([VERSION_SO])))
@ -55,12 +57,15 @@ AC_ARG_ENABLE([werror], AS_HELP_STRING([--disable-werror], [dis
dnl Features (disabled by default)
AC_ARG_ENABLE([fixtures], AS_HELP_STRING([--enable-fixtures], [enable fixtures for tests and bindings]))
AC_ARG_ENABLE([freestanding], AS_HELP_STRING([--enable-freestanding], [build for freestanding environment]))
AC_ARG_ENABLE([split-libc], AS_HELP_STRING([--enable-split-libc], [split off libc]))
AC_ARG_ENABLE([checks], AS_HELP_STRING([--enable-checks], [enable usual tests and examples]))
AC_ARG_ENABLE([checks-all], AS_HELP_STRING([--enable-checks-all], [enable all checks]))
AC_ARG_ENABLE([checks-cppcheck], AS_HELP_STRING([--enable-checks-cppcheck], [enable cppcheck]))
AC_ARG_ENABLE([checks-pthreads], AS_HELP_STRING([--enable-checks-pthreads], [enable tests that require pthreads]))
AC_ARG_ENABLE([checks-python], AS_HELP_STRING([--enable-checks-python], [enable tests that require Python 3 with YAML and Jinja2]))
AC_ARG_ENABLE([split-libc], AS_HELP_STRING([--enable-split-libc], [split off libc]))
dnl Features (with parameter)
AC_ARG_ENABLE([pkg-config], AS_HELP_STRING([--enable-pkg-config@<:@=PATH@:>@], [install pkg-config files @<:@PATH='${libdir}/pkgconfig'@:>@]))
dnl Packages (enabled by default)
AC_ARG_WITH( [all], AS_HELP_STRING([--without-all], [without all default packages]))
@ -141,12 +146,16 @@ AS_IF([test "$enable_werror" = no ], [enable_werror=no], [ena
dnl Features (disabled by default)
AS_IF([test "$enable_fixtures" = yes], [enable_fixtures=yes], [enable_fixtures=no])
AS_IF([test "$enable_freestanding" = yes], [enable_freestanding=yes], [enable_freestanding=no])
AS_IF([test "$enable_split_libc" = yes], [enable_split_libc=yes], [enable_split_libc=no])
AS_IF([test "$enable_checks" = yes], [enable_checks=yes], [enable_checks=no])
AS_IF([test "$enable_checks_all" = yes], [enable_checks_all=yes], [enable_checks_all=no])
AS_IF([test "$enable_checks_cppcheck" = yes], [enable_checks_cppcheck=yes], [enable_checks_cppcheck=no])
AS_IF([test "$enable_checks_pthreads" = yes], [enable_checks_pthreads=yes], [enable_checks_pthreads=no])
AS_IF([test "$enable_checks_python" = yes], [enable_checks_python=yes], [enable_checks_python=no])
AS_IF([test "$enable_split_libc" = yes], [enable_split_libc=yes], [enable_split_libc=no])
dnl Features (with parameter)
AS_IF([test "$enable_pkg_config" = yes], [enable_pkg_config='${libdir}/pkgconfig'])
AS_IF([test "$enable_pkg_config" = no ], [enable_pkg_config=''])
dnl Packages (enabled by default)
AS_IF([test "$with_all" = no ], [with_all=no], [with_all=yes])
@ -207,11 +216,14 @@ AM_CONDITIONAL([ENABLE_WERROR], [test "$enable_werror" = yes])
dnl Features (disabled by default)
AM_CONDITIONAL([ENABLE_FIXTURES], [test "$enable_fixtures" = yes])
AM_CONDITIONAL([ENABLE_FREESTANDING], [test "$enable_freestanding" = yes])
AM_CONDITIONAL([ENABLE_SPLIT_LIBC], [test "$enable_split_libc" = yes])
AM_CONDITIONAL([ENABLE_CHECKS], [test "$enable_checks" = yes])
AM_CONDITIONAL([ENABLE_CHECKS_CPPCHECK], [test "$enable_checks_cppcheck" = yes])
AM_CONDITIONAL([ENABLE_CHECKS_PTHREADS], [test "$enable_checks_pthreads" = yes])
AM_CONDITIONAL([ENABLE_CHECKS_PYTHON], [test "$enable_checks_python" = yes])
AM_CONDITIONAL([ENABLE_SPLIT_LIBC], [test "$enable_split_libc" = yes])
dnl Features (with parameter)
AM_CONDITIONAL([ENABLE_PKG_CONFIG], [test ! -z "$enable_pkg_config"])
dnl Packages (enabled by default)
AM_CONDITIONAL([WITH_ARCH_I386], [test "$with_arch_i386" = yes])
@ -257,13 +269,13 @@ AS_IF([test "$enable_float" = yes], [AC_DEFINE([ENABLE_FLOAT],
AS_IF([test "$enable_werror" = yes], [AC_DEFINE([ENABLE_WERROR], [1], [enabled -Werror])])
dnl Features (disabled by default)
AS_IF([test "$enable_split_libc" = yes], [AC_DEFINE([ENABLE_SPLIT_LIBC], [1], [split off libc])])
AS_IF([test "$enable_fixtures" = yes], [AC_DEFINE([ENABLE_FIXTURES], [1], [enabled fixtures for tests and bindings])])
AS_IF([test "$enable_freestanding" = yes], [AC_DEFINE([ENABLE_FREESTANDING], [1], [build for freestanding environment])])
AS_IF([test "$enable_checks" = yes], [AC_DEFINE([ENABLE_CHECKS], [1], [enabled usual tests and examples])])
AS_IF([test "$enable_checks_cppcheck" = yes], [AC_DEFINE([ENABLE_CHECKS_CPPCHECK], [1], [enabled cppcheck])])
AS_IF([test "$enable_checks_pthreads" = yes], [AC_DEFINE([ENABLE_CHECKS_PTHREADS], [1], [enabled tests that require pthreads])])
AS_IF([test "$enable_checks_python" = yes], [AC_DEFINE([ENABLE_CHECKS_PYTHON], [1], [enabled tests that require Python 3 with YAML and Jinja2])])
AS_IF([test "$enable_split_libc" = yes], [AC_DEFINE([ENABLE_SPLIT_LIBC], [1], [split off libc])])
dnl Packages (enabled by default)
AS_IF([test "$with_arch_i386" = yes], [AC_DEFINE([WITH_ARCH_I386], [1], [with architecture i386])])
@ -295,6 +307,9 @@ AS_IF([test "$with_arch_x86_64" = yes], [AC_DEFINE([WITH_ARCH_X86],
# Autoconf substitutions #
##########################
dnl Features (with parameter)
AC_SUBST([pkgconfdir], [$enable_pkg_config])
dnl Packages (enabled by default)
AS_IF([test "$with_arch_i386" = no], [AC_SUBST([comment_line_arch_i386], [//])])
AS_IF([test "$with_arch_riscv64" = no], [AC_SUBST([comment_line_arch_riscv64], [//])])

11
libkernaux.pc.in Normal file
View File

@ -0,0 +1,11 @@
prefix=@prefix@
exec_prefix=@exec_prefix@
libdir=@libdir@
includedir=@includedir@
Name: @PACKAGE_NAME@
Description: @PACKAGE_DESCR@
URL: @PACKAGE_URL@
Version: @PACKAGE_VERSION@
Libs: -L${libdir} -lkernaux
Cflags: -I${includedir}

View File

@ -1,5 +1,5 @@
PORTNAME= libkernaux
DISTVERSION= 0.6.1
DISTVERSION= 0.7.0
CATEGORIES= devel
MASTER_SITES= https://github.com/tailix/libkernaux/releases/download/v${DISTVERSION}/
@ -10,9 +10,10 @@ WWW= https://github.com/tailix/libkernaux
LICENSE= MIT
LICENSE_FILE= ${WRKSRC}/COPYING
USES= libtool
USE_LDCONFIG= yes
GNU_CONFIGURE= yes
CONFIGURE_ARGS+= --enable-shared
USES= libtool
USE_LDCONFIG= yes
GNU_CONFIGURE= yes
CONFIGURE_ARGS+= --enable-pkg-config=${PREFIX}/libdata/pkgconfig
.include <bsd.port.mk>

View File

@ -1,3 +1,3 @@
TIMESTAMP = 1671469243
SHA256 (libkernaux-0.6.1.tar.gz) = 16fc83a36826cad527ec0a232032b7b131b5be0468ccff9163df12e3e3986b9f
SIZE (libkernaux-0.6.1.tar.gz) = 486595
TIMESTAMP = 1671787519
SHA256 (libkernaux-0.7.0.tar.gz) = 19bbfe5d38731175fd762547fc169adffde6350cf30c9238f931909b26decd85
SIZE (libkernaux-0.7.0.tar.gz) = 500752

View File

@ -1,12 +1,17 @@
include/kernaux.h
include/kernaux/arch/i386-idt.h
include/kernaux/arch/i386.h
include/kernaux/arch/riscv64.h
include/kernaux/arch/x86.h
include/kernaux/arch/x86_64.h
include/kernaux/assert.h
include/kernaux/asm/i386.h
include/kernaux/asm/riscv64.h
include/kernaux/asm/x86.h
include/kernaux/asm/x86_64.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
@ -15,14 +20,24 @@ include/kernaux/macro/packing_start.run
include/kernaux/mbr.h
include/kernaux/memmap.h
include/kernaux/multiboot2.h
include/kernaux/multiboot2/header_enums.h
include/kernaux/multiboot2/header_helpers.h
include/kernaux/multiboot2/header_is_valid.h
include/kernaux/multiboot2/header_macro.h
include/kernaux/multiboot2/header_print.h
include/kernaux/multiboot2/info_enums.h
include/kernaux/multiboot2/info_helpers.h
include/kernaux/multiboot2/info_is_valid.h
include/kernaux/multiboot2/info_print.h
include/kernaux/ntoa.h
include/kernaux/pfa.h
include/kernaux/printf.h
include/kernaux/printf_fmt.h
include/kernaux/runtime.h
include/kernaux/units.h
include/kernaux/version.h
lib/libkernaux.a
lib/libkernaux.so
lib/libkernaux.so.0
lib/libkernaux.so.0.0.0
libdata/pkgconfig/libkernaux.pc

View File

@ -1,3 +1,8 @@
19bbfe5d38731175fd762547fc169adffde6350cf30c9238f931909b26decd85 libkernaux-0.7.0.tar.gz
ab54d7ed92e37ac9ae4982e297c4dcc49f9ae18e1be59631d175a33596d6cfcc kernaux-0.7.0.crate
15d41c87e270fa34a482df5cc243cdc87171ac513eb779f329fd4003d6df693a kernaux-sys-0.7.0.crate
0f3f97ad8244cbe2a0cdb8f8092f4f20d704281d91f0b41955270808f66aead4 kernaux-0.7.0.gem
#
16fc83a36826cad527ec0a232032b7b131b5be0468ccff9163df12e3e3986b9f libkernaux-0.6.1.tar.gz
e330f19d04d392e5c5979f3f4b88029b10ffe23fdf34f6d801947b20c8d0ba88 kernaux-0.6.1.crate
f21520d8d84558408ea444f0029dfca871fd3622513537837f86a97fc3c60648 kernaux-sys-0.6.1.crate