Log

Author Commit Date CI Message
Guillem Jover 99320b91 2019-06-13T23:43:57 man: Define doc-operating-system-NetBSD string variables This way we do not depend on the installed groff being new enough. Signed-off-by: Guillem Jover <guillem@hadrons.org>
Guillem Jover 71c710e9 2019-06-13T23:42:49 man: Use major.minor version for .Nx macros The macro only recognizes this version form, and not just major alone. Signed-off-by: Guillem Jover <guillem@hadrons.org>
Guillem Jover 1899e2c5 2019-07-31T02:58:01 Update TODO Signed-off-by: Guillem Jover <guillem@hadrons.org>
Guillem Jover 2e071c3c 2019-08-06T19:14:29 build: Support platforms without symbol versioning The .symver directive is ELF-specific. On non-ELF platforms, work around this with __attribute__((__alias__)) for the default symbol, and ignore the variant versioned symbols. Based-on-patch-by: Aaron Dierking <aarond@fb.com> Signed-off-by: Guillem Jover <guillem@hadrons.org>
Guillem Jover 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.
Aaron Dierking 48033408 2018-06-14T11:38:32 Provide a <sys/param.h> with MIN() and MAX() Windows doesn't provide <sys/param.h>. Several libbsd sources require it for MIN(), and these are useful non-system-specific macros anyway. Signed-off-by: Guillem Jover <guillem@hadrons.org>
Guillem Jover 21f4052c 2019-06-13T23:36:09 man: Add doc-str-Lb-libbsd aliases for str-Lb-libbsd groff(1) has changed the internal layout for the .Lb doc strings, but to preserve backwards compatibility we cannot simply rename them, we need to create new aliases so that these will work with old and new macros. Signed-off-by: Guillem Jover <guillem@hadrons.org>
Aaron Dierking f99b8ea5 2018-06-14T11:38:33 build: Disable CRT warnings on Windows These warnings are not helpful for libbsd. [guillem@hadrons.org: - Rename WINDOWS conditional to OS_WINDOWS. - Add a nil terminator to the AM_CPPFLAGS. ] Signed-off-by: Guillem Jover <guillem@hadrons.org>
Aaron Dierking 4bed4839 2018-06-14T11:38:32 build: Detect Windows/MinGW at configure time Extend the host OS checks to define an OS_WINDOWS automake conditional if the host is MinGW-like. This will be useful for future Windows-specific build tweaks. [guillem@hadrons.org: - Rename WINDOWS conditional to OS_WINDOWS. ] Signed-off-by: Guillem Jover <guillem@hadrons.org>
Guillem Jover 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>
Guillem Jover 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.
Aaron Dierking 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>
Aaron Dierking 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>
Aaron Dierking 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>
Aaron Dierking 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>
Aaron Dierking 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>
Guillem Jover 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.
Aaron Dierking 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>
Aaron Dierking 2ebe6d5a 2018-06-14T11:38:32 Windows support for inet_net_pton() Signed-off-by: Guillem Jover <guillem@hadrons.org>
Aaron Dierking 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>
Guillem Jover 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
Guillem Jover 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
Baruch Siach 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>
Guillem Jover 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».
Guillem Jover e354f9b1 2018-05-31T03:46:14 build: Install git in gitlab CI configuration
Guillem Jover 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.
Guillem Jover 005b5090 2018-05-31T01:45:28 build: Add a gitlab CI configuration file
Jakub Wilk a8531ad0 2018-05-22T13:08:56 man: Fix comma splice Signed-off-by: Guillem Jover <guillem@hadrons.org>
Jakub Wilk c4b0fd2c 2018-05-22T13:08:55 man: Fix name of the function injected by libbsd-ctor Signed-off-by: Guillem Jover <guillem@hadrons.org>
Guillem Jover 1ca09c18 2018-05-22T16:03:59 Release libbsd 0.9.1
Guillem Jover 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
Guillem Jover bf697b90 2018-05-22T15:43:48 Add symbol redirection support We need this to be able to select different version symbols at compile-time.
Guillem Jover 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.
Guillem Jover e007233c 2018-05-21T04:41:56 Release libbsd 0.9.0
Guillem Jover 3cabf46b 2018-05-21T03:15:59 Deprecate fgetwln() This function has the same problems as fgetln() which is already marked as deprecated.
Guillem Jover 6eebc1f2 2018-05-21T03:10:12 Fix typo in fgetln() linker warning
Guillem Jover a1730c10 2018-05-15T00:55:02 Add Windows support for getentropy() and arc4random() Import from OpenBSD.
Guillem Jover 6f68c930 2018-05-21T00:22:38 Switch strtonum() implementation from strtoll() to strtoi() Import from NetBSD.
Guillem Jover e13b1a33 2018-05-21T00:20:49 Import strtoi() and strtou() functions from NetBSD
Guillem Jover 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.
Guillem Jover 2d7de186 2018-05-21T03:09:05 Update vis/unvis modules from NetBSD
Guillem Jover 3efad641 2018-05-21T01:56:33 Update readpassphrase() from OpenBSD
Guillem Jover a6f407ab 2018-05-21T01:34:17 Update heapsort() from OpenBSD
Guillem Jover 21edbb4f 2018-05-21T00:31:15 Update fmtcheck() from NetBSD
Guillem Jover e3979d1a 2018-05-20T19:22:16 Update humanize_number() from FreeBSD Implements HN_IEC_PREFIXES.
Guillem Jover 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.
Guillem Jover 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.
Guillem Jover 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
Guillem Jover 993828d8 2018-05-21T01:11:46 Add flopenat() function from FreeBSD
Guillem Jover 30b4d507 2018-05-21T03:00:47 Add __arraycount() macro from NetBSD
Baruch Siach 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>
Guillem Jover 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>
Guillem Jover 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.
Guillem Jover 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
Guillem Jover 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>
Guillem Jover 0093ca2b 2018-03-05T00:02:34 Handle SPARC V8+ on Sun Studio compiler
James Clarke 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>
Guillem Jover 0b61c5ff 2018-01-13T16:20:35 Release libbsd 0.8.7
Jason Duerstock 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>
Adam Lackorzynski 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>
Guillem Jover 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.
Guillem Jover b4f7c065 2017-08-05T13:42:56 man: Document on what other BSDs arc4random(3) is present
Guillem Jover bbf90ac3 2017-07-17T01:01:13 Release libbsd 0.8.6
Guillem Jover 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.
Guillem Jover 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>
Guillem Jover 415e3cb2 2017-06-24T16:10:14 Release libbsd 0.8.5
Guillem Jover 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
Guillem Jover a4dd754c 2017-06-22T04:58:09 man: Ship and install libbsd(7) Fixes: https://bugs.freedesktop.org/101543
James Cowgill 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>
James Cowgill 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>
Guillem Jover c4e58c09 2017-06-19T21:41:13 test: Remove unused variable in nlist() unit test
Guillem Jover 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
Guillem Jover 8bff4b1f 2017-06-19T03:16:56 Release libbsd 0.8.4
Guillem Jover 0071b979 2017-06-05T05:43:26 Import <sys/time.h> for some of its macros Fixes: https://bugs.freedesktop.org/94320
Guillem Jover cdbb9d05 2017-06-18T20:30:40 test: Add new strnstr() unit test
Guillem Jover 0365d0ef 2017-06-18T20:30:19 test: Add new setprogname() and getprogname() unit test
Guillem Jover 10b13285 2017-06-18T20:29:52 test: Add new setmode() and getmode() unit test
Guillem Jover 922eff5c 2017-06-14T01:52:12 test: Add new nlist() unit test
Guillem Jover 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.
Guillem Jover 79386192 2017-06-14T02:45:13 Update .gitignore for headers generator
Guillem Jover ec5d9a68 2017-06-14T02:44:37 Namespace header inclusion protection macros Use LIBBSD_, and remove trailing underscores.
Guillem Jover 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.
Guillem Jover 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.
Igor Gnatenko 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>
Guillem Jover ab5db68b 2017-06-19T03:02:32 build: Add missing \ at end of line Fixes: commit 934b7a0ccbdc60313102f153eadc2f46853a505b
Guillem Jover 5a46e486 2017-06-18T20:30:51 Update TODO
Guillem Jover 7a75f550 2017-06-06T04:56:49 Update TODO
Guillem Jover f1dd5f2e 2017-06-09T05:13:32 test: Add unit test for strlcpy() and strlcat()
Guillem Jover 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>
Guillem Jover 4fec871c 2017-06-09T04:52:45 build: Quote the arguments to AC_CONDITIONAL
Guillem Jover 3945693e 2017-06-09T04:52:45 build: Move AC_TYPE_UID_T close to the other AC_TYPE_* checks
Guillem Jover c253365d 2017-06-09T04:52:45 build: Move configure.ac comment into actual AC_CASE
Guillem Jover 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.
Guillem Jover c74ca099 2017-06-07T22:46:07 man: Use .In intead of .Fd macros for includes
Guillem Jover ba9e2a5a 2017-06-05T06:33:47 man: Add new libbsd(7) library overview man page
Guillem Jover 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.
Guillem Jover 934b7a0c 2017-06-05T06:32:36 man: Add missing aliases
Guillem Jover 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.
Guillem Jover 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
Guillem Jover 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.