From 522daeb8fae7e34fd189f2a2ce22d16839e67736 Mon Sep 17 00:00:00 2001 From: Reno Dakota <170618376+paparodeo@users.noreply.github.com> Date: Wed, 29 May 2024 09:27:11 +0000 Subject: [PATCH] coan: fix compile error in configure.ac fix the big-endian compile error (implicit return type) when built with clang --- .../tools/analysis/coan/default.nix | 11 +++++++--- .../coan/fix-big-endian-config-check.diff | 22 +++++++++++++++++++ 2 files changed, 30 insertions(+), 3 deletions(-) create mode 100644 pkgs/development/tools/analysis/coan/fix-big-endian-config-check.diff diff --git a/pkgs/development/tools/analysis/coan/default.nix b/pkgs/development/tools/analysis/coan/default.nix index 7104074a6a74..b78805c96487 100644 --- a/pkgs/development/tools/analysis/coan/default.nix +++ b/pkgs/development/tools/analysis/coan/default.nix @@ -1,4 +1,4 @@ -{ lib, stdenv, fetchurl, perl }: +{ lib, stdenv, fetchurl, autoreconfHook, perl }: stdenv.mkDerivation rec { version = "6.0.1"; @@ -9,9 +9,14 @@ stdenv.mkDerivation rec { sha256 = "1d041j0nd1hc0562lbj269dydjm4rbzagdgzdnmwdxr98544yw44"; }; - nativeBuildInputs = [ perl ]; + patches = [ + # fix compile error in configure.ac + ./fix-big-endian-config-check.diff + ]; - CXXFLAGS = "-std=c++11"; + nativeBuildInputs = [ autoreconfHook perl ]; + + configureFlags = [ "CXXFLAGS=-std=c++11" ]; enableParallelBuilding = true; diff --git a/pkgs/development/tools/analysis/coan/fix-big-endian-config-check.diff b/pkgs/development/tools/analysis/coan/fix-big-endian-config-check.diff new file mode 100644 index 000000000000..7a2965361da0 --- /dev/null +++ b/pkgs/development/tools/analysis/coan/fix-big-endian-config-check.diff @@ -0,0 +1,22 @@ +diff --git a/configure.ac b/configure.ac +index 23ba6f0..13e6647 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -4,7 +4,7 @@ AC_PREREQ(2.59) + AM_INIT_AUTOMAKE(1.13 no-define) + AC_CHECK_HEADERS(strings.h) + AC_MSG_CHECKING(for big-endian host) +-AC_TRY_RUN([main () { ++AC_TRY_RUN([int main () { + /* Are we little or big endian? From Harbison&Steele. */ + union + { +@@ -12,7 +12,7 @@ AC_TRY_RUN([main () { + char c[sizeof (long)]; + } u; + u.l = 1; +- exit (u.c[sizeof (long) - 1] == 1); ++ return u.c[sizeof (long) - 1] == 1; + }], BIG_ENDIAN=no, BIG_ENDIAN=yes) + AC_MSG_RESULT([$BIG_ENDIAN]) + AM_CONDITIONAL([IS_BIG_ENDIAN],[test "$BIG_ENDIAN" = "yes"])