Since glibc 2.26 the string.h file includes <strings.h>, which in case
of cuneiform will include the strings.h found in Kern/hhh/tigerh/h,
because of the search path order.
Fortunately for us the strings.h in cuneiform are completely unused and
no files reference or include it. I even checked various references to
types within strings.h and the only occurences are in cf_strings.h,
which is also included by other files.
Signed-off-by: aszlig <aszlig@nix.build>
Cc: @7c6f434c
This issue doesn't necessarily have to do with glibc 2.26 and it could
have been fixed if we'd replace -Werror with -Wall.
The error in question was:
storage/overlay.c:808:13: error: 'dirlen' may be used uninitialized in
this function [-Werror=maybe-uninitialized]
After looking at the code in overlay.c it indeed might use dirlen
unitialized.
Unrelated to the glibc upgrade which brought the problem to the surface,
this also has been fixed upstream at lxc/lxc@180c477a32.
The reason however, that led to the upstream fix was a segfault which
has been reported at lxc/lxc#1802.
Signed-off-by: aszlig <aszlig@nix.build>
Cc: @wkennington, @globin, @fpletz
The build fails first of all because it cannot find the function body
for __builtin_memset. In glibc 2.26 this is available via inclusion of
string.h.
Another failure was that UINT64_MAX wasn't available in staging/tools.c,
which is fixed again by inclusion of stdint.h.
Signed-off-by: aszlig <aszlig@nix.build>
Cc: @nckx
This is very similar to what we had in bb0b0822ef.
The xlocale.h header is no longer existing in glibc version 2.26, so we
need to avoid including it.
I've tested building against all of the libcxx attributes of LLVM 3.5,
3.7, 3.8, 3.9, 4 and 5.
All of them succeeded except version 3.5, which failed because of an
unrelated issue (build of libc++abi has failed, one of its
dependencies), so I only verified whether the patch applies cleanly.
Signed-off-by: aszlig <aszlig@nix.build>
Cc: @vcunat
Searching the web for the base-16 encoded hash of the one we have in the
Nix expression didn't give any results and I also couldn't find the
older tarball anywhere (even the mirrors I've checked don't have it).
So checking the updated hash I've found that other distros use this, so
I'd bet it's safe to do this.
I've tested building the package but I didn't do any runtime test.
Signed-off-by: aszlig <aszlig@nix.build>
Cc: @the-kenny
Since glibc 2.26, struct ucontext no longer exists but is wrapped in a
typedef ucontext_t.
This is basically a backport of the patch to gcc version 4.5 which was
introduced by @vcunat in f04b64c1e9.
Building against x86_64-linux and i686-linux now succeeds.
Signed-off-by: aszlig <aszlig@nix.build>
Cc: @abbradar
The header file xlocale.h has been removed in glibc 2.26.
Quoting the release notes[1]:
* The nonstandard header <xlocale.h> has been removed. Most programs
should use <locale.h> instead. If you have a specific need for the
definition of locale_t with no other declarations, please contact
libc-alpha@sourceware.org and explain.
I've backported HaxeFoundation/neko@e286c8f330
against version 2.1.0 and the build now succeeds.
Signed-off-by: aszlig <aszlig@nix.build>
Fixes the build failure after the upgrade to glibc 2.26 in
9bb67d5c1e.
From the cfree(3) manpage:
This function should never be used. Use free(3) instead. Starting with
version 2.26, it has been removed from glibc.
From the glibc 2.26 release notes[1]:
* The obsolete function cfree has been removed. Applications should use
free instead.
[1]: https://sourceware.org/ml/libc-alpha/2017-08/msg00010.html
Signed-off-by: aszlig <aszlig@nix.build>
Cc: @7c6f434c, @tohl