Files
RedBear-OS/local/recipes/libs/libgpg-error/source/src
vasilito c825f470cb
redbear-ci / check (push) Has been cancelled
libs: vendor libgcrypt 1.11.1 + libgpg-error 1.55; wire into kf6-kwallet
kf6-kwallet's kwalletbackend hard-requires LibGcrypt 1.5.0 for PBKDF2 key
derivation and the GPG-backed wallet format. Vendor both libraries under the
full-fork model (committed source/, offline-reproducible) and add libgcrypt to
kf6-kwallet's dependencies.

Release tarballs ship a pre-generated configure and a config.sub that already
recognises the *-redox triple, so no autotools regeneration is needed at cook
time. libgpg-error supplies a generic pthread-backed gpgrt_lock_t for Redox via
its build script; the test-only redox.patch (tms/times stub) is baked into
libgcrypt's source and kept alongside for future version bumps.

Promoted from the stale recipes/wip copies (now .disabled).
2026-08-02 04:29:16 +03:00
..

Notes on the source code
========================

The mechanism to generate the system error codes is delicate and
fragile, but it's the best I could come up with that supports
cross-compilation and dynamic self-configuration.  Here is how it
works:

1. Generate list of supported system error codes.

mkerrcodes1.awk generates a list of supported system error codes from
errnos.in.  Each entry in the list is protected with #ifdef/#endif,
and contains a GPG_ERR_* marker.  The list is stored in "_mkerrcodes.h".

2. The HOST cpp is run on _mkerrcodes.h.  This evaluates the known
system error macros to something (may be a number, maybe a constant
expression as on the GNU/Hurd), suppressing the unknown ones.  The
output is piped into step 3.

3. The cpp output is filtered with grep for only those lines which
contain a GPG_ERR_* marker.  The output is piped into step 4.

4. The filtered output is processed by mkerrcodes.awk, which produces
a table of constant expressions plus GPG_ERR_* code string symbols in
a format suitable for the C program mkerrcodes.c.  At this point we
are crossing our fingers that the constant expressions produced by the
system do not contain GPG_ERR_* markers.  The output is stored in
mkerrcodes.h.

5. The file mkerrcodes.h is included by mkerrcodes.c, which is
compiled to a binary executable on the BUILD system.  At this point we
are crossing our fingers that the constant expressions produced by the
system do not depend on the build platform anymore.  The output is
post-processed by mkerrcodes2.awk and stored in "code-from-errno.h",
which is subsequently used in the library.

-- Marcus

 Copyright 2006 g10 Code GmbH

 This file is free software; as a special exception the author gives
 unlimited permission to copy and/or distribute it, with or without
 modifications, as long as this notice is preserved.

 This file is distributed in the hope that it will be useful, but
 WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
 implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.