|
356b2ed2
|
2024-07-18T20:13:08
|
|
Merge remote-tracking branch 'origin/main'
|
|
04a24db2
|
2024-03-18T03:17:06
|
|
Release libbsd 0.12.2
|
|
b62f36f3
|
2024-03-13T23:34:55
|
|
test: nlist: make resilient against -Wl,--gc-sections
With linker sections GC enabled, we get a test failure in `nlist.c`:
```
nlist: nlist.c:72: main: Assertion `rc == 0' failed.
```
This turns out to be because several sections used by the test can be discarded:
```
ld: removing unused section '.text.func_pub' in file 'nlist.o'
ld: removing unused section '.bss.data_pub_uninit' in file 'nlist.o'
ld: removing unused section '.data.data_pub_init' in file 'nlist.o'
```
Reproduced with `CFLAGS="-Og -fdata-sections -ffunction-sections"` and
`LDFLAGS="-Wl,-O1 -Wl,--as-needed -Wl,--gc-sections -Wl,-z,start-stop-gc"`.
Additionally, `LDFLAGS="... -Wl,--print-gc-sections"` can help with diagnosing
which sections get removed.
We already mark these symbols as `used`, but we need `retain` [0] for them
to survive linker GC too.
[0] https://releases.llvm.org/18.1.0/tools/lld/docs/ELF/start-stop-gc.html#annotate-c-identifier-name-sections
Closes: !29
Signed-off-by: Sam James <sam@gentoo.org>
Signed-off-by: Guillem Jover <guillem@hadrons.org>
|
|
2a3d5213
|
2024-03-14T01:56:36
|
|
build: Do not rely on internal autoconf ac_cv_sys_file_offset_bits variable
This is an internal implementation detail from AC_SYS_LARGEFILE, which
happened to change with autoconf 2.72. Instead compute our own size
for off_t.
Closes: #28
|
|
149aafe1
|
2024-03-14T01:59:19
|
|
build: Use -eq instead of = as test operators for arithmetic tests
|
|
43582578
|
2024-03-13T00:56:59
|
|
build: Fix typo in ABI selection description
|
|
31e9396b
|
2024-03-13T00:56:07
|
|
build: Only install time struct conversion macros where missing
These macros are available in several systems, and we should not install
the man pages for them, otherwise we might end up shadowing the system
man pages if present.
|
|
3b8416ac
|
2024-03-10T18:01:02
|
|
man: Add links for errc module functions
Reported-by: Alejandro Colomar <alx@kernel.org>
|
|
94d0fb3c
|
2024-03-08T03:05:24
|
|
man: Do not install timeval(3bsd) nor timespec(3bsd)
These are system types, which we should not be documenting. Rewrite the
man pages around the TIMEVAL_TO_TIMESPEC and TIMESPEC_TO_TIMEVAL macros.
|
|
e848f5aa
|
2024-03-05T17:02:32
|
|
strtonum: Do not abort on EINVAL from strtoi()
With musl libc strtoimax(".", ...) returns EINVAL.
Closes: !28
Signed-off-by: Guillem Jover <guillem@hadrons.org>
|
|
ee63bca5
|
2024-03-05T17:01:29
|
|
closefrom: Ignore files starting with dot when scanning /proc/self/fd
Signed-off-by: Guillem Jover <guillem@hadrons.org>
|
|
9cbd935d
|
2024-03-06T02:12:56
|
|
build: Match also gnu* for GNU/Hurd on the glibc ABI selection
The GNU/Hurd system does not specify a kernel part, so we need to match
on both *-gnu* and gnu* (to avoid overmatching with just *gnu*).
|
|
70f49a70
|
2024-02-28T04:50:34
|
|
Release libbsd 0.12.1
|
|
b6ccd032
|
2024-02-28T04:44:02
|
|
build: Add a comment to libbsd-overlay.pc about -isystem usage
Add the reasoning for why we use -isystem instead of -I, to avoid
confusing unsuspecting readers of the file.
Prompted-by: Alejandro Colomar <alx@kernel.org>
|
|
08188f3c
|
2024-02-28T04:37:44
|
|
build: Install err.h if either of the err or errc modules are built
Both modules expose their functions in err.h, so we need to install it
whenever any of them is being built.
Reported-by: Alejandro Colomar <alx@kernel.org>
|
|
644062da
|
2024-02-27T05:52:53
|
|
Release libbsd 0.12.0
|
|
32d18dcf
|
2024-02-09T04:32:12
|
|
Add explicit time32 and time64 support
Handle the three potential system scenarios:
- system time_t is time64
- system time_t is time32 and supports time64
- system time_t is time32 and does not support time64
Add the explicit time32 and time64 functions when necessary and map
them accordingly for each of these cases.
|
|
605614d6
|
2024-02-12T03:00:06
|
|
build: Add support for AIX
|
|
ec7f5ee9
|
2024-02-12T01:04:37
|
|
Add vasprintf() and asprintf() functions missing on AIX
These functions are used by code in the library, even though these
functions started as GNU extensions, they are present in all BSDs,
so we expose them as part of our interface on AIX.
|
|
5392f0c1
|
2024-02-12T02:55:08
|
|
build: Add support for Solaris
|
|
be4aced4
|
2024-02-11T23:55:40
|
|
build: Make almost all exposed interfaces use the new ABI selection
Explicitly select what to include as part of the target ABI, instead of
letting autoconfiguration potentially break ABI if the system grows
functionality provided by the library.
Make almost all the library selectable per target. Do not install manual
pages for interfaces not included in the library. Control inclusion of
symbols in map file via pre-processor macros, and move the comments
describing the ABI selection to configure.ac.
For now the header files are included as is and filtered through
pre-processor conditionals. Eventually they might get switched to be
autogenerated at build time.
|
|
27503a10
|
2024-02-14T04:59:44
|
|
build: Rework ABI selection logic
Add a new LIBBSD_SELECT_ABI m4 macro, and use it to setup the ABI
interfaces to expose and the various variables and conditionals
to be used by the build system.
Switch to set the initial values to unknown and then set every one
of the selections explicitly by supported target.
Update comments for rationale for things to DROP, or for why some
selections are enabled.
|
|
99739877
|
2024-02-14T04:59:44
|
|
build: Rename ABI selection variables from need_ to abi_
This should make the purpose of these variables more clear.
|
|
0bdbc078
|
2024-02-21T02:29:15
|
|
build: Revert accidental testing aid change
This was accidentally included in the commit, but should have only been
used during development.
Fixes: commit de124dcafac678351366b0572938398ea7ae93e4
Changelog: silent
|
|
de124dca
|
2024-02-20T04:28:01
|
|
build: Make digest function checks conditional on their use
The digest function checks where unconditionally requiring the functions
to exist or they would error out. But these functions are not required
on all systems, they depend on the ABI to be exposed.
|
|
1d287295
|
2024-02-20T04:13:59
|
|
build: Move ABI selection at the top of configure.ac
Merge the existing host_os block for the OS detection with the ABI
selection one, as these are related. This way we will be able to make
some of the latter checks conditional on the selected ABI.
|
|
a81d0b71
|
2024-02-11T23:55:40
|
|
build: Sort variables and their contents in automake files
This should make it easier to add new entries, and find them afterwards.
|
|
c8e5338a
|
2024-02-21T02:05:57
|
|
build: Rename LIBBSD_ABI to SOVERSION
This matches the semantics of the variable, and makes it independent of
the project, just as the package variables.
|
|
b6d6da4c
|
2024-02-20T04:40:32
|
|
build: Refactor function checks into a new libbsd-funcs.m4 file
These are complex enough to clutter the main configure.ac. Move them
into their own file.
|
|
f8cb9d8b
|
2024-02-20T03:57:37
|
|
build: Remove space before shell redirection
This makes it more clear what the redirection applies to.
|
|
154624ab
|
2024-02-18T20:40:24
|
|
build: Add support for silent rules for the libbsd.map generation
The new rule was introduced w/o silent rule support.
Fixes: commit 19e06407eb365a2bedc9bdd29a83c1e1803e3f92
|
|
9fab225f
|
2024-02-17T05:25:01
|
|
Split errc family of functions from err ones
On most systems the err family of functions is already present, but are
missing the errc family of functions, which are also present on some
other systems. Splitting them into separate files will make it easer to
conditionally include one or the other.
|
|
461f10ac
|
2024-02-17T03:07:58
|
|
Sync strtoi()/strtou() implementations from NetBSD
These contain the fixes to the error handling logic.
In NetBSD the manual page for strtou.3 is generated from the strtoi.3
manual page applying some substitutions, the problem is that the
cross-references are then lost. We will still keep them separate.
Reported-by: Alejandro Colomar <alx@kernel.org>
|
|
f0501609
|
2024-02-14T03:39:16
|
|
build: Swap symbol and alias arguments order in macros creating aliases
The current order is rather confusing, pass the real symbol first
and the alias we want to create next.
|
|
19e06407
|
2024-02-11T19:35:05
|
|
build: Generate the map file from the configured ABI
Some linkers require the map file definitions to contain only symbols
that are present on the linked object, either in the map file or in the
sym file we generate from the map file.
This is preparatory work to be able to conditionally include symbols
in the man and sym files depending on the ABI definitions.
|
|
10920c30
|
2024-02-12T00:06:56
|
|
build: Make name_from_id man pages conditional instead of id_from_name
The code is only making the name_from_id function conditional, and
assumes id_from_name are always to be included, so we need to match
the logic for the man page inclusion.
|
|
97b0fe84
|
2024-01-08T23:57:45
|
|
man: Mention that funopen() can be made available on musl
As musl got fopencookie() implemented in 1.1.19, the funopen() function
can also be provided there. Note this in the documentation.
|
|
e87ae3be
|
2024-01-08T23:40:31
|
|
man: Fix manual page references
When referring to another manual page and their section number, we need
to use Xr instead of Fn, otherwise the section number is interpreted as
a function argument. For functions provided by libbsd itself we should
be using the 3bsd section instead of 3.
|
|
9275d134
|
2024-01-08T23:39:19
|
|
man: Add closefrom(), strlcpy() and strlcat() as superseded functions
These were missing from the list of functions provided by some libc
implementation.
|
|
304a1f83
|
2024-01-08T23:37:43
|
|
doc: Use macOS to refer to the operating system
This is the correct spelling, instead of capitalizing it.
|
|
edddd806
|
2024-01-08T02:16:12
|
|
Release libbsd 0.11.8
|
|
dd0bdb58
|
2024-01-08T01:58:54
|
|
test: Close all descriptors before initializing them for closefrom()
On macOS, closefrom() only sets the close-on-exec flag, so we cannot
check whether all file descriptors were closed, which means that if
on entry our file descriptor table was filled after the 4th file
descriptor, then we might fail the assertions for the flags for odd
file descriptors which we expect to be closed.
This can easily happen when running the test suite in parallel mode
with «make -j8 check» for example.
Closes: #23
|
|
0813f378
|
2023-10-28T00:52:31
|
|
build: Check out-of-tree builds in CI
Make sure the out-of-tree builds do not regress.
|
|
df116b55
|
2024-01-07T17:43:12
|
|
Adjust strlcpy() and strlcat() per glibc adoption
These functions were added in glibc 2.38, in anticipation of POSIX
adopting them too.
Closes: #26
|
|
ecb44e16
|
2023-11-14T19:15:11
|
|
Do not add a pointer to the NULL constant
Warned-by: cppcheck (nullPointerArithmetic)
|
|
459b7f7d
|
2023-11-14T19:09:25
|
|
Do not confuse code analyzers with out-of-bounds array access look alike
The code is only getting the address, but we might be performing an
addressing that is out-of-bounds. Avoid it and use the address form
instead.
Warned-by: cppcheck (objectIndex)
|
|
a44f885c
|
2023-11-14T19:08:15
|
|
test: Fix short-lived memory leak
Warned-by: cppcheck
|
|
42d42fbc
|
2023-11-21T12:30:13
|
|
win64
|
|
3f5ca0aa
|
2023-10-28T00:47:26
|
|
build: Add a coverage regex to the CI job
This is needed so that gitlab can know where to extract the coverage
percentage from in the output, to be able to track and report it.
|
|
9d3e59a0
|
2023-10-10T01:53:32
|
|
man: Use VARIANTS instead of ALTERNATIVES in libbsd(7)
Using alternatives seems confusing in this context.
|
|
f02562d6
|
2023-10-10T01:52:37
|
|
man: Markup function references with Xr instead of Fn
These references had man page sections in them, so using Fn meant that
these appeared as function arguments.
|
|
b7367c9c
|
2023-09-05T03:02:44
|
|
build: Add missing dash to macro title bar
|
|
6777eb62
|
2023-07-27T13:57:51
|
|
pwcache: Do not declare uidtb and gidtb when not used
When the system provides implementations for user_from_uid() or
group_from_gid() we are not using these variables, so better not declare
them.
Fixes: commit 21d12b02112097f0c195dceb1892c95b7b957b36
|
|
d4e0cdc9
|
2023-07-27T13:39:00
|
|
fgetln: Include <stdio.h> after <sys/*>
The <sys/*> headers tend to define things that might be used by other
headers, so while they should be self-contained, it is better to simply
include them first.
|
|
f41d6c12
|
2023-05-26T23:55:40
|
|
build: Refactor GNU .init_array support check into a new m4 function
|
|
30b48ed9
|
2023-05-26T23:50:10
|
|
build: Refactor linker script detection into a new m4 function
|
|
d0d8d019
|
2023-07-27T13:51:36
|
|
build: Do not provide prototypes for arc4random() on Solaris
These functions are provided by the system.
|
|
cf61ebb8
|
2023-04-22T20:47:20
|
|
build: Do not build the progname module if it is not needed
This was made conditional, but the code part was accidentally left
untouched due to having ported it locally to use __progname, which
caused build failures on the stock repo.
Fixes: commit 046621d7967e7a0f08ae988bcf7e4cd1b6cf204c
|
|
73b25a8f
|
2023-04-23T02:04:47
|
|
build: Sort entries alphabetically
|
|
5434ba16
|
2023-04-23T02:05:04
|
|
build: Conditionalize wcslcpy() and wcslcat() functions on macOS
These functions are provided by the system libc.
|
|
dc1bd1a2
|
2023-04-23T02:00:10
|
|
build: Conditionalize only id-from-name functions not the entire pwcache
On macOS the name-from-id functions are present, but not the
id-from-name ones, so we want to provide those instead of suppressing
the entire file.
|
|
edc746ea
|
2023-04-22T22:47:10
|
|
build: Conditionalize getprogname()/setprogname on macOS
These functions are provided by the system libc, so there is no need for
us to provide them.
|
|
8f998d1d
|
2023-04-22T20:23:08
|
|
progname: Include <procinfo.h> if available
We need this header on AIX. Missed transplanting the code from the AIX
porting system.
Fixes: commit 9fa06763a1afe0946a3a20e5bbdba72885cbade5
|
|
d08163b4
|
2023-04-18T03:56:16
|
|
build: Check whether we need libperfstat on AIX
The getentropy() implementation makes use of this library on AIX.
|
|
1186cf88
|
2023-04-18T03:59:17
|
|
build: Annotate droppable functions for musl on next SOVERSION bump
These are already provided by the musl libc, and can thus be dropped on
the next SOVERSION bump.
|
|
6385ccc9
|
2023-04-18T03:58:24
|
|
build: Conditionalize bsd_getopt() on macOS
The system library provides a getopt() with BSD semantics.
|
|
c1206817
|
2023-04-18T00:47:12
|
|
Move the version script comments before the symbols
When generating the .sym export file from the .map file, we are not
stripping these comments that are part of the same line as the symbol,
which causes ld(1) implementations to error out. Moving them before
the symbols avoids the need to strip them, as we are only keeping
actual symbol lines.
|
|
9fa06763
|
2023-04-18T00:44:49
|
|
Port getprogname() to AIX
Get the program name from the COMM field from the proc filesystem.
We could use instead the information from the psinfo binary file under
/proc, but that seems to have a shorter string limit.
|
|
92337b15
|
2023-04-17T23:59:03
|
|
Make getprogname() porting mandatory
Although the function is documented as possibly returning NULL if it
cannot find a known source of information, we should still at least
attempt to port it to any supported system, and otherwise explicitly
mark it as not implementable for such systems if that was to be the
case.
|
|
90b7f3ae
|
2023-04-17T23:59:19
|
|
test: Do not use /dev/null as compiler output file
Some ld(1) implementations, such as the one on AIX, do not support using
/dev/null as the output filename for the compiled object.
Use an actual filename that we will then clean up.
|
|
426bf452
|
2023-04-18T00:49:09
|
|
build: Add generated *.sym files to .gitignore
|
|
21d12b02
|
2023-04-04T23:59:05
|
|
build: On macOS do not build functions provided by the system
We have never built before on macOS, so we can exclude all the functions
that are currently provided in the system.
Closes: #1
Closes: !3
|
|
bc65806c
|
2023-04-06T23:05:27
|
|
build: Select whether to include funopen() in the build system
This makes sure we include it when expected, alongside the man pages,
and the test cases, and do not accidentally break the ABI if the system
starts providing such interface.
|
|
8b7a4d9d
|
2023-04-07T23:43:55
|
|
build: Move Windows OS detection to the OS features section
This was placed here to make use of the same AS_CASE, but it does not
really fit with the section. Move it to the more appropriate place, and
detangle the AS_CASE.
|
|
ccbfd1c2
|
2023-04-07T23:40:22
|
|
build: Remove __MUSL__ definition from configure
We stopped relying on this macro when we turned the funopen() cpp error
into a warning in commit e50896286cc5718898194edb73fa7262ad9a22db.
|
|
e0976d7e
|
2023-04-02T22:33:25
|
|
build: Add a new libbsd_strong_alias() macro and switch users to it
We had several cases of code needing a strong alias, so we switch those
to use the new macro. This covers systems that support the alias
attribute and others such as macOS where we need to use assembler
directives to add the alias as the attribute is not supported.
|
|
49c7dd1c
|
2023-04-02T22:32:11
|
|
build: Only emit link warnings for ELF objects
|
|
8622767a
|
2023-04-11T00:24:13
|
|
build: Use an export symbols file if there is no version script support
We generate the symbol list from the version script to avoid repeating
ourselves and potentially getting the lists out-of-sync.
|
|
8f610364
|
2023-04-11T03:03:54
|
|
build: Add -no-undefined libtool flag
We have no need for undefined symbols, so we can let the shared
library build even on systems without support for undefined symbols.
|
|
ae7942ba
|
2023-04-11T03:02:30
|
|
build: Do not override the default DEPENDENCIES for libbsd
Extend it instead via EXTRA_*_DEPENDENCIES, to make sure that we
preserve the builtin library dependencies generated from LIBADD.
|
|
a5faf170
|
2023-04-01T12:46:49
|
|
Only use <stdio_ext.h> if present
|
|
06e8a1b2
|
2023-04-01T12:45:04
|
|
Define _NSIG if it is not defined by the system
At least on macOS this macro is not defined.
|
|
44824aca
|
2023-04-01T12:41:42
|
|
Declare environ if the system does not do so
The environ variable is supposed to be defined by the code using it, but
on glibc-based systems it will get defined if we request it, by including
<unistd.h> and defining _GNU_SOURCE.
|
|
1fb6c3f4
|
2023-04-10T23:10:40
|
|
Use lockf() when flock() is not available
On Solaris flock() is not available, and we should use instead lockf()
or fcntl().
|
|
fe16f386
|
2023-04-10T23:11:33
|
|
test: Use open_memstream() only if available
On Solaris this function is not yet available.
|
|
7c652a94
|
2023-04-10T20:57:14
|
|
test: Do not hardcode root:root user and group names
On some systems the root group is named wheel, and there is no root
group.
|
|
ed2eb31d
|
2023-04-01T02:46:22
|
|
test: Fix closefrom() test on macOS
On macOS we do not close the file descriptors, and instead mark them all
as close-on-exec. So checking whether they are not valid does not work.
|
|
0f8bcdfd
|
2023-04-01T02:48:47
|
|
test: Fix closefrom() test to handle open file descriptor limits
If the system has configured a lower limit (either soft or hard) on the
number of open file descriptors, the test will fail. Make sure to check
whether we have exceeded that limit and adapt the max number of file
descriptors appropriately.
|
|
07192b31
|
2023-04-05T00:01:42
|
|
test: Disable blank_stack_side_effects() on non-Hurd systems
This code was added to cope with Hurd specific behavior, but it is
causing flakiness on containers on some Linux systems. Only enable
it where it is currently needed to try to get stability back on CI
systems.
Closes: #14
|
|
ca3db5e1
|
2023-03-29T09:35:27
|
|
build: Do not enable ASAN for musl CI pipelines
musl-libc does not currently support ASAN, so enabling it makes
configure fail to detect libmd as it cannot link to it anymore.
|
|
ff46386f
|
2023-03-29T02:32:37
|
|
man: Add HISTORY section to arc4random(3bsd)
|
|
4c6da577
|
2023-03-29T02:28:52
|
|
man: Switch arc4random(3bsd) man page from OpenBSD to NetBSD
This gets rid of the last BSD-4-clause licensed file in the project.
The man page will probably need to be adapted to the current
implementation, but that can be done piecemeal afterwards.
Closes: #7
|
|
830dd88a
|
2023-03-14T01:58:40
|
|
doc: Remove written-by attribution
While attribution is important, it is not relevant when tracking the
copyright holders for the work. And in any case it still stays in the
relevant source file.
|
|
257800a0
|
2021-02-20T22:23:40
|
|
build: Add support for sanitizer compiler flags
|
|
536a7d42
|
2023-03-21T04:11:03
|
|
test: Exempt blank_stack_side_effects() from sanitizer checks
This will mean we cannot use sanitizer support on the Hurd, for which
this function was added to fix the test. But the sanitizer suppression
function attribute is not having any effect, so this is better than
nothing.
|
|
7ed5de01
|
2023-03-21T04:10:33
|
|
test: Import explicit_bzero() sanitizer support changes from OpenBSD
|
|
05a802a2
|
2023-03-14T03:05:58
|
|
test: Fix memory leaks in fpurge test
Warned-by: gcc -fsanitize=leak
|
|
5962e03c
|
2023-03-03T01:27:31
|
|
man: Fix BSD and glibc versions
The versions used in the BSD macros are unknown, so they emit warnings,
extend or reduce them to use the two digit form. Correct the glibc
version when closefrom(3) got introduced.
|
|
59a21c7f
|
2023-02-20T00:11:10
|
|
man: Update STANDARDS and HISTORY sections
Include BSD versions when functions were introduced. Add mention
whether these are BSD extensions.
|
|
7b4ebd65
|
2023-02-16T21:26:05
|
|
include: Adjust closefrom() per glibc adoption
Added in glibc 2.34
https://sourceware.org/git/?p=glibc.git;a=commit;h=607449506f197cc9514408908f41f22537a47a8c
Signed-off-by: Guillem Jover <guillem@hadrons.org>
|