|
890699a7
|
2019-08-06T18:51:45
|
|
build: Abstract symbol versioning via new libbsd_symver_* macros
This makes it more obvious what they are doing. It will make it easier
to make these directives more portable, as they are really ELF specific.
|
|
b0ebb0d4
|
2019-08-06T23:16:42
|
|
build: Use __register_atfork() only if really available
This is a glibc-specific symbol that has no public declaration. But is
being used by the OpenBSD and this implementation as a hack to avoid
having to link against the pthread library. This interface is at least
included in LSB 5.0 [L], and using pthread_atfork() is otherwise
problematic anyway [P].
[L] <https://refspecs.linuxfoundation.org/LSB_5.0.0/LSB-Core-generic/LSB-Core-generic/baselib---register-atfork.html>
[P] <http://austingroupbugs.net/view.php?id=851>
One problem is that we were using it whenever __GLIBC__ is defined,
which is supposed to be defined only on an actual glibc, but uClibc
defines that macro, but it does not provide the symbol on its noMMU
variant.
We add a new configure check that will try to link a program that uses
that symbol to make sure it is present.
Closes: !2
Reported-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
|
|
73aea4f8
|
2019-08-06T23:11:50
|
|
build: Fix check for clock_gettime() within librt
The check was always setting the libraries to link to include -lrt,
as the success case includes the builtin one. Handle the various
values.
|
|
7cfa2d45
|
2018-06-14T11:38:31
|
|
Correct Clang feature detection
Clang's __GNUC__ and __GNUC_MINOR__ definitions are not reliable and may
not be defined at all when targeting the MSVC ABI. Use feature-checking
macros when possible or check for __clang__.
[guillem@hadrons.org: Update for __ protected keyword change. ]
Signed-off-by: Guillem Jover <guillem@hadrons.org>
|
|
aeea1f40
|
2018-06-14T11:38:32
|
|
Windows support for HASHFileChunk()
<io.h> provides the necessary file I/O functions.
[guillem@hadrons.org: Move include before <hashinc>. ]
Signed-off-by: Guillem Jover <guillem@hadrons.org>
|
|
0500a1bd
|
2018-06-14T11:38:32
|
|
Don't require <grp.h>
This is only used in the overlay test and Windows does not provide it.
Signed-off-by: Guillem Jover <guillem@hadrons.org>
|
|
574c7a13
|
2018-06-18T00:36:44
|
|
Protect C language extensions with two leading and trailing underscores
This should make their usage safer against user macros.
|
|
3d9c6c08
|
2018-06-14T11:38:32
|
|
Only define S_ISTXT if S_ISVTX is defined
Windows doesn't provide S_ISVTX. Prefer not defining it rather than
defining it to something invalid.
Signed-off-by: Guillem Jover <guillem@hadrons.org>
|
|
b9dee9f6
|
2018-06-14T11:38:31
|
|
Use CHAR_BIT instead of NBBY in strnvis()
<sys/param.h> is not available on Windows.
Signed-off-by: Guillem Jover <guillem@hadrons.org>
|
|
c2d9d840
|
2018-06-14T11:38:32
|
|
Guard non-portable forwarded includes
These headers are not available on Windows. <bsd/sys/cdefs.h> ensures
that __has_include() and __has_include_next() are defined.
Signed-off-by: Guillem Jover <guillem@hadrons.org>
|
|
2ebe6d5a
|
2018-06-14T11:38:32
|
|
Windows support for inet_net_pton()
Signed-off-by: Guillem Jover <guillem@hadrons.org>
|
|
81c3c3e4
|
2018-06-14T11:38:31
|
|
Replace reintroduced legacy u_* type usage in strnvis() and strnunvis()
This fixes a regression caused by 2d7de18. These types are not available
on all systems.
Fixes: commit 2d7de186e9cb19a756c0630ee85cb3f2d29b3484
Signed-off-by: Guillem Jover <guillem@hadrons.org>
|
|
5e0998fa
|
2018-06-09T00:08:14
|
|
Remove dead code in vis
The loop only executes while len > 0, and the trinary operator in the
function argument is checking against len >= 1 which will always be
true.
Warned-by: coverity
|
|
8e2d5504
|
2018-06-06T05:41:34
|
|
Fix vis family of functions to not leak
The code uses an internal helper function to avoid code repetition. But
to get there, the function takes a pointer to a pointer, so that the few
functions that require returning an allocated buffer can get hold of it
this way.
The problem is that the user might pass a NULL pointer and trigger an
internal allocation even if the functions are not expected to do so.
Add a new internal helper for non-allocations, that will assert that
condition, and make any other function that requires this behavior call
this one instead.
Warned-by: coverity
|
|
13c32916
|
2018-06-05T19:21:46
|
|
flopen: Add missing <fcntl.h> include
Commit 993828d84ee (Add flopenat() function from FreeBSD) dropped the
fcntl.h header. This breaks the build with musl libc:
flopen.c: In function ‘vflopenat’:
flopen.c:60:14: error: ‘O_CREAT’ undeclared (first use in this function)
if (flags & O_CREAT) {
^~~~~~~
Restore the fcntl.h header include to fix the build.
Fixes: commit 993828d84eed0468c6c15b2818e534e6b134b8e4
Submitted-also-by: parazyd <parazyd@dyne.org>
Signed-off-by: Baruch Siach <baruch@tkos.co.il>
Signed-off-by: Guillem Jover <guillem@hadrons.org>
|
|
8e834cd0
|
2018-05-31T03:59:49
|
|
build: Simplify gitlab CI configuration
Merge all stages so that we do not need to pass artifacts around.
Quiesce «apt install».
|
|
e354f9b1
|
2018-05-31T03:46:14
|
|
build: Install git in gitlab CI configuration
|
|
4c5e9b47
|
2018-05-31T03:34:07
|
|
build: Fix gitlab CI configuration
Run «apt install» in non-interactive mode, and do not install
Recommends. Replace build-essential, which is rather fat, with gcc
and make. Execute autogen instead of autoreconf directly.
|
|
005b5090
|
2018-05-31T01:45:28
|
|
build: Add a gitlab CI configuration file
|
|
a8531ad0
|
2018-05-22T13:08:56
|
|
man: Fix comma splice
Signed-off-by: Guillem Jover <guillem@hadrons.org>
|
|
c4b0fd2c
|
2018-05-22T13:08:55
|
|
man: Fix name of the function injected by libbsd-ctor
Signed-off-by: Guillem Jover <guillem@hadrons.org>
|
|
1ca09c18
|
2018-05-22T16:03:59
|
|
Release libbsd 0.9.1
|
|
e4e15ed2
|
2018-05-22T13:50:44
|
|
Fix strnvis() and strnunvis() NetBSD ABI break
The NetBSD implementations have different prototypes to the ones coming
from OpenBSD, which will break builds, and have caused segfaults at
run-time. We provide now both interfaces with different prototypes as
different version nodes allow selecting them at compile-time, defaulting
for now to the OpenBSD one to avoid build-time breakage, while emitting
a compile-time warning. Later on, in 0.10.0, we will be switching the
compile-time default to the NetBSD version.
Ref: http://gnats.netbsd.org/44977
Fixes: https://bugs.debian.org/899282
|
|
bf697b90
|
2018-05-22T15:43:48
|
|
Add symbol redirection support
We need this to be able to select different version symbols at
compile-time.
|
|
f1966385
|
2018-05-21T22:41:23
|
|
Fix COPYING file format
We cannot refer to a License short-name if that is not on its own
License paragraph. Split several other common License fields into
their own paragraphs to avoid this problem in the future.
|
|
e007233c
|
2018-05-21T04:41:56
|
|
Release libbsd 0.9.0
|
|
3cabf46b
|
2018-05-21T03:15:59
|
|
Deprecate fgetwln()
This function has the same problems as fgetln() which is already marked
as deprecated.
|
|
6eebc1f2
|
2018-05-21T03:10:12
|
|
Fix typo in fgetln() linker warning
|
|
a1730c10
|
2018-05-15T00:55:02
|
|
Add Windows support for getentropy() and arc4random()
Import from OpenBSD.
|
|
6f68c930
|
2018-05-21T00:22:38
|
|
Switch strtonum() implementation from strtoll() to strtoi()
Import from NetBSD.
|
|
ef5faeb5
|
2018-05-20T19:20:33
|
|
Update few RCS keyword contents to match BSD originals
This will slightly reduce the delta, and makes it easier to compare the
sources.
|
|
2d7de186
|
2018-05-21T03:09:05
|
|
Update vis/unvis modules from NetBSD
|
|
3efad641
|
2018-05-21T01:56:33
|
|
Update readpassphrase() from OpenBSD
|
|
a6f407ab
|
2018-05-21T01:34:17
|
|
Update heapsort() from OpenBSD
|
|
21edbb4f
|
2018-05-21T00:31:15
|
|
Update fmtcheck() from NetBSD
|
|
e3979d1a
|
2018-05-20T19:22:16
|
|
Update humanize_number() from FreeBSD
Implements HN_IEC_PREFIXES.
|
|
facbddb6
|
2018-05-20T19:18:18
|
|
Update pidfile module from FreeBSD
Use EINVAL instead of EDOOFUS. Add a missing synopsis for
pidfile_fileno() in the man page. Move the definition of struct pidfh
from libutil.h into pidfile.c following upstream change.
|
|
3d88c999
|
2018-05-15T00:41:26
|
|
Update arc4random() headers from OpenBSD
Split Linux support into its own header separate from the generic Unix
to fix a Linux-specific issue with clone(). Reset rsp to NULL on failure.
|
|
e42381dc
|
2018-05-15T00:41:26
|
|
Update getentropy() code from OpenBSD
Includes changes to handle the Linux syscall blocking when there is not
enough entropy during boot, by switching it to non-blocking mode and
falling back to the alternative implementations. Man page URL reference
fixes. Build fixes for Mac OS X.
Fixes: https://bugs.debian.org/898088
|
|
e13b1a33
|
2018-05-21T00:20:49
|
|
Import strtoi() and strtou() functions from NetBSD
|
|
993828d8
|
2018-05-21T01:11:46
|
|
Add flopenat() function from FreeBSD
|
|
30b4d507
|
2018-05-21T03:00:47
|
|
Add __arraycount() macro from NetBSD
|
|
f6ed7c27
|
2018-04-03T20:10:14
|
|
Fix build for openrisc with uClibc
uClibc defines EM_OR1K instead of EM_OPENRISC for the OpenRISC ELF
e_machine ID. Use EM_OR1K when EM_OPENRISC is not defined.
This fixes the following build failure:
In file included from nlist.c:44:0:
nlist.c: In function ‘__elf_is_okay__’:
local-elf.h:224:23: error: ‘EM_OPENRISC’ undeclared (first use in this function)
#define ELF_TARG_MACH EM_OPENRISC
^
nlist.c:77:26: note: in expansion of macro ‘ELF_TARG_MACH’
if (ehdr->e_machine == ELF_TARG_MACH &&
^
Signed-off-by: Guillem Jover <guillem@hadrons.org>
|
|
1f8a3f7b
|
2018-03-06T01:39:45
|
|
Fix function declaration protection for glibc already providing them
On non-glibc based systems we cannot unconditionally use the
__GLIBC_PREREQ macro as it gets expanded before evaluation. Instead,
if it is undefined, define it to 0.
We should also always declare these functions on non-glibc based
systems. And on systems with a new enough glibc, which provides these
functions, we should still provide the declarations if _GNU_SOURCE
is *not* defined.
Reported-by: Jörg Krause <joerg.krause@embedded.rocks>
|
|
b20272f5
|
2018-03-06T01:42:52
|
|
Remove <features.h> inclusion from <bsd/libutil.h>
This is a non-portable header, and we should not assume it is present.
Let the first system header pull it in if needed.
|
|
11ec8f1e
|
2018-03-06T01:41:35
|
|
Handle systems missing <sys/cdefs.h>
This is a non-portable header, and we cannot expect it to be provided by
the system libc (e.g. musl). We just need and rely on declaration that
we have defined ourselves in our own <bsd/sys/cdefs.h>. So we switch to
only ever assume that.
Fixes: https://bugs.freedesktop.org/105281
|
|
5ba8c5ba
|
2018-03-05T00:37:47
|
|
progname: Port to Windows
Define the directory separator depending on the system targetted.
Reported-by: Progyan Bhattacharya <progyanb@acm.org>
|
|
0093ca2b
|
2018-03-05T00:02:34
|
|
Handle SPARC V8+ on Sun Studio compiler
|
|
0b65d439
|
2018-03-04T23:44:52
|
|
Add support for ELF machine EM_SPARC32PLUS
32-bit SPARC on V8+ uses a different ELF machine type.
Fixes: https://bugs.gentoo.org/634550
Signed-off-by: Guillem Jover <guillem@hadrons.org>
|
|
0b61c5ff
|
2018-01-13T16:20:35
|
|
Release libbsd 0.8.7
|
|
9ceac74e
|
2017-12-03T16:50:07
|
|
test: Fix nlist(3) unit test on IA64
On IA64 this is only the case in the ELF binary, but it gets normalized
when loaded at run-time.
Fixes: https://bugs.debian.org/881611
Signed-off-by: Guillem Jover <guillem@hadrons.org>
|
|
9afc7100
|
2017-12-03T16:46:19
|
|
Fix <sys/cdefs.h> for gcc with no __has_include or __has_include_next support
Fixes: https://bugs.freedesktop.org/103396
Signed-off-by: Guillem Jover <guillem@hadrons.org>
|
|
22fbd623
|
2017-09-02T19:55:50
|
|
Handle several functions now being provided by glibc
We mention that these are now superseded by the glibc implementations,
make the headers cope with already declared functions on glibc-based
systems, and document this in the man pages.
|
|
b4f7c065
|
2017-08-05T13:42:56
|
|
man: Document on what other BSDs arc4random(3) is present
|
|
bbf90ac3
|
2017-07-17T01:01:13
|
|
Release libbsd 0.8.6
|
|
2a8514d8
|
2017-07-17T00:57:07
|
|
Fix handling of non-contiguous argv + envp in setproctitle()
The two arrays might not reference contiguous memory, and assuming they
are does break at least now on GNU/Hurd, which contains an unmapped
memory block between the memory used by the two arrays.
Just check that each element is strictly after the previous one, so that
we know there are no unmapped memory blocks inbetween.
|
|
3b2b7938
|
2017-06-25T01:51:30
|
|
test: Fix nlist() unit test on IA64 and PowerPC 64-bit ELFv1
At least on IA64 and PowerPC 64-bit ELFv1, the functions are stored in
the .text sections but they are accessed through a function descriptor
stored in a data section, for example for PowerPC 64-bit ELFv1 that
section is called .opd.
We should take this into account when checking the n_type for the
functions we have requested information from nlist().
Rationale-by: James Clarke <jrtc27@jrtc27.com>
|
|
415e3cb2
|
2017-06-24T16:10:14
|
|
Release libbsd 0.8.5
|
|
9532cb39
|
2017-06-23T05:59:35
|
|
man: Update man page sections in titles and references
We have moved all man pages to section 3bsd, let's do the same for the
page title, and in all the references for uniformity and to avoid
confusions.
Fixes: https://bugs.freedesktop.org/101545
|
|
a4dd754c
|
2017-06-22T04:58:09
|
|
man: Ship and install libbsd(7)
Fixes: https://bugs.freedesktop.org/101543
|
|
b480b7a3
|
2017-06-19T21:38:40
|
|
Fix ELF definitions for MIPS in local-elf.h
Add a check for _MIPS_SIM inside the __mips__ #elif to detect mips64el
and use ELFCLASS64 in that case. Note that we can't use defined(__mips64)
here because that is also defined when the n32 ABI is in use, which uses
ELFCLASS32.
Fixes: https://bugs.debian.org/865091
Signed-off-by: Guillem Jover <guillem@hadrons.org>
|
|
4cc20e23
|
2017-06-19T21:37:14
|
|
Fix ELF definitions for PowerPC in local-elf.h
* ppc64el defines both __powerpc__ and __powerpc64__ but since the
__powerpc64__ #elif is below the __powerpc__ one, it will never be hit.
* Both assumed that powerpc* was big-endian.
Fixes: https://bugs.debian.org/865091
Signed-off-by: Guillem Jover <guillem@hadrons.org>
|
|
c4e58c09
|
2017-06-19T21:41:13
|
|
test: Remove unused variable in nlist() unit test
|
|
736e12e8
|
2017-06-19T21:32:01
|
|
test: Handle libtool executable names in getprogname() unit test
Sometimes libtool will prefix the test programs with "lt-", we should
handle these and strip the prefix.
Fixes: https://bugs.debian.org/865090
|
|
8bff4b1f
|
2017-06-19T03:16:56
|
|
Release libbsd 0.8.4
|
|
0071b979
|
2017-06-05T05:43:26
|
|
Import <sys/time.h> for some of its macros
Fixes: https://bugs.freedesktop.org/94320
|
|
cdbb9d05
|
2017-06-18T20:30:40
|
|
test: Add new strnstr() unit test
|
|
0365d0ef
|
2017-06-18T20:30:19
|
|
test: Add new setprogname() and getprogname() unit test
|
|
10b13285
|
2017-06-18T20:29:52
|
|
test: Add new setmode() and getmode() unit test
|
|
922eff5c
|
2017-06-14T01:52:12
|
|
test: Add new nlist() unit test
|
|
8e8834d8
|
2017-06-14T02:53:35
|
|
Remove RCSID tags
These are obsolete markers, and in some cases they repeat the
information already present in the comment header.
|
|
79386192
|
2017-06-14T02:45:13
|
|
Update .gitignore for headers generator
|
|
ec5d9a68
|
2017-06-14T02:44:37
|
|
Namespace header inclusion protection macros
Use LIBBSD_, and remove trailing underscores.
|
|
47013bc9
|
2017-06-14T01:49:25
|
|
Fix broken mmap() usage in nlist() by switching to pread()
The offset is not page aligned, which makes mmap() return EINVAL on
Linux. Switch to use pread() which handles unaligned offset and non-page
sized reads, and because we are already loading parts of the executable
by read() calls, so there's not much point in using mmap() anyway.
|
|
e8d340de
|
2017-06-05T05:30:27
|
|
Remove a.out support from nlist()
Some libc libraries do not have an <a.out.h> header. And a.out as an
executable format is very much obsolete on pretty much all currently
supported systems, even if they might still support loading such
objects.
Remove the a.out support to increase portability.
|
|
7aede6a9
|
2016-06-27T09:21:43
|
|
Make strlcpy()/strlcat() slightly easier to read
Backport new changes from OpenBSD.
[guillem@hadrons.org:
- Update copyright years in COPYING. ]
References: https://svnweb.freebsd.org/base?view=revision&revision=281135
Signed-off-by: Igor Gnatenko <i.gnatenko.brain@gmail.com>
Signed-off-by: Guillem Jover <guillem@hadrons.org>
|
|
ab5db68b
|
2017-06-19T03:02:32
|
|
build: Add missing \ at end of line
Fixes: commit 934b7a0ccbdc60313102f153eadc2f46853a505b
|
|
5a46e486
|
2017-06-18T20:30:51
|
|
Update TODO
|
|
7a75f550
|
2017-06-06T04:56:49
|
|
Update TODO
|
|
f1dd5f2e
|
2017-06-09T05:13:32
|
|
test: Add unit test for strlcpy() and strlcat()
|
|
c8a1b08b
|
2017-06-09T05:14:24
|
|
build: Match any glibc and musl ABIs on the host_os AS_CASE
Reported-by: Helmut Grohne <helmut@subdivi.de>
|
|
4fec871c
|
2017-06-09T04:52:45
|
|
build: Quote the arguments to AC_CONDITIONAL
|
|
3945693e
|
2017-06-09T04:52:45
|
|
build: Move AC_TYPE_UID_T close to the other AC_TYPE_* checks
|
|
c253365d
|
2017-06-09T04:52:45
|
|
build: Move configure.ac comment into actual AC_CASE
|
|
8248e5f7
|
2017-06-07T23:09:40
|
|
build: Use src/strlcpy.c in AC_CONFIG_SRCDIR
The src/fgetln.c file contains a function considered obsolete, use one
that is not.
|
|
c74ca099
|
2017-06-07T22:46:07
|
|
man: Use .In intead of .Fd macros for includes
|
|
ba9e2a5a
|
2017-06-05T06:33:47
|
|
man: Add new libbsd(7) library overview man page
|
|
6a5a5158
|
2017-06-07T05:00:34
|
|
man: Add missing man pages
This adds man pages for byteorder(3), errc(3) and fpurge(3), including
all their aliases.
|
|
934b7a0c
|
2017-06-05T06:32:36
|
|
man: Add missing aliases
|
|
f20e6972
|
2017-06-05T06:43:22
|
|
man: Move all man pages to section 3bsd
This should guarantee that even if the system provides or will provide
native implementations of these functions, we will not have file
conflicts.
|
|
07c76b66
|
2017-06-05T06:17:27
|
|
Do not use legacy BSD u_* types
Some systems do not have these types available, and they are simply
convenience aliases. Instead use the expanded versions which are more
portable.
Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=101192
|
|
e4475738
|
2017-01-20T02:20:12
|
|
Try <linux/a.out.h> if <a.out.h> is not present
At least musl ships the former but not the latter.
|
|
d6c35f61
|
2017-01-10T04:33:15
|
|
Do not provide funopen() on musl
Fixes: https://bugs.debian.org/818246
|
|
db7470b0
|
2017-01-10T04:27:25
|
|
Gracefully handle lack of system <sys/cdefs.h>
This is the case on musl.
Fixes: https://bugs.debian.org/810589
|
|
368af99f
|
2016-08-28T17:13:20
|
|
Fix the __progname check to avoid the optimizer discarding the symbol
Because we were assigning to another unused variable, when building the
check with optimizations enabled, which is the default when using gcc
as the compiler, the variable was being discarded. Instead pass it to
printf() so that it cannot do so.
|
|
337e6202
|
2017-01-10T04:24:35
|
|
Support GCC deprecated attribute for GCC older than 4.5
Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=99190
Based-on-patch-by: Eric Smith <brouhaha@fedoraproject.org>
|
|
088f147e
|
2017-02-08T01:49:48
|
|
Add support for RISC-V
|
|
b2b1020d
|
2017-01-10T03:47:52
|
|
Add support for TileGX
Fixes: https://bugs.debian.org/847560
Signed-off-by: Guillem Jover <guillem@hadrons.org>
|
|
9bed430e
|
2016-04-23T10:13:23
|
|
Release libbsd 0.8.3
|
|
cbfe0ebc
|
2016-03-27T12:37:09
|
|
Add missing <fcntl.h> includes
These are required due to the O_* macro usage, but have passed
undetected on glibc-based systems due to implicit inclusions.
Signed-off-by: Guillem Jover <guillem@hadrons.org>
|