Commit Briefs

Thomas Adam

portable: remove extraneous strerror_r check

On a __GLIBC__ system, we need to use __xpg_strerror_r() -- this is already checked for, so simply one of these checks to reduce code changes from upstream.


Thomas Adam

for portability, handle errno variations upon open(2) failure with O_NOFOLLOW

Problem pointed out by naddy for FreeBSD -portable. Discussed with millert, thomas adam, and naddy.


Thomas Adam

portable: add FreeBSD support

This adds the capability to compile got-portable on FreeBSD.


Thomas Adam

sterror: use XPG version on GLIBC

It looks like autoconf 2.69 will not provide XPG strerror_r even if the appropriate macros are set which request the XPG version. Until this is fixed in autoconf and that version is more widely-adopted, this approach will provide what's required. Originally from Stefan Sperling, tweaked by me.


Thomas Adam

portable: initial Linux compilation

This commit modifies the GoT main branch to be able to compile it under linux.



Stefan Sperling

introduce got_custom_error array to support multiple errors in flight

This is still not thread-safe but at least avoids errors overwriting each other in single-threaded contexts.


Stefan Sperling

add got_error_fmt()

got_error_fmt() could eventually replace got_error_path() which has already been used to construct errors with strings that are not actually paths... ok millert@


Stefan Sperling

add got_error_from_errno_fmt() for more flexibility in error messages

suggested by and ok millert





Stefan Sperling

introduce got_error_path()



joshua stein

got_error_set_errno: take a char arg to pass to got_error_prefix_errno

$> got rm a got: : No such file or directory becomes $> got rm a got: /path/to/a: No such file or directory


joshua stein

got_error_from_errno -> got_error_prefix_errno

also add got_error_prefix_errno2 and got_error_prefix_errno3 which should hopefully all be merged into a single function with variadic args (but can't alloc mem)




Stefan Sperling

add got_error_uuid()


Stefan Sperling

add got_error_not_ref()


Stefan Sperling

remove unnecessary cast




Stefan Sperling

simplify got_error_from_errno()