From e73d805aa9f7349cc32d5a89c20efb7a3f86eba4 Mon Sep 17 00:00:00 2001 From: John Ericson Date: Thu, 14 Dec 2017 14:09:01 -0500 Subject: [PATCH] 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. --- pkgs/development/libraries/libelf/default.nix | 22 +++++++++++++------ 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/pkgs/development/libraries/libelf/default.nix b/pkgs/development/libraries/libelf/default.nix index bd0d23bd0cdb..bb1dbe51765e 100644 --- a/pkgs/development/libraries/libelf/default.nix +++ b/pkgs/development/libraries/libelf/default.nix @@ -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";