libelf: Fix cross compilation

There is an upstream bug where it is assumed that if host != build, host
doesn't support shared libraries. We override that overly conservative
check. See
http://lists.uclibc.org/pipermail/uclibc-cvs/2005-August/019383.html

Also clean up some comments.
This commit is contained in:
John Ericson 2017-12-14 14:09:01 -05:00
parent 946c1b26fa
commit e73d805aa9

View File

@ -1,5 +1,5 @@
{ stdenv, fetchurl
, gettext, glibc
{ stdenv
, fetchurl, autoreconfHook, gettext
, buildPlatform, hostPlatform
}:
@ -17,12 +17,20 @@ stdenv.mkDerivation rec {
doCheck = true;
# Libelf's custom NLS macros fail to determine the catalog file extension on
# Darwin, so disable NLS for now.
# FIXME: Eventually make Gettext a build input on all platforms.
configureFlags = stdenv.lib.optional hostPlatform.isDarwin "--disable-nls";
configureFlags = []
# Configure check for dynamic lib support is broken, see
# http://lists.uclibc.org/pipermail/uclibc-cvs/2005-August/019383.html
++ stdenv.lib.optional (hostPlatform != buildPlatform) "mr_cv_target_elf=yes"
# Libelf's custom NLS macros fail to determine the catalog file extension
# on Darwin, so disable NLS for now.
++ stdenv.lib.optional hostPlatform.isDarwin "--disable-nls";
nativeBuildInputs = [ gettext ];
nativeBuildInputs = [ gettext ]
# Need to regenerate configure script with newer version in order to pass
# "mr_cv_target_elf=yes", but `autoreconfHook` brings in `makeWrapper`
# which doesn't work with the bootstrapTools bash, so can only do this
# for cross builds when `stdenv.shell` is a newer bash.
++ stdenv.lib.optional (hostPlatform != buildPlatform) autoreconfHook;
meta = {
description = "ELF object file access library";