Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

dash: fix compilation on darwin #93585

Merged
merged 1 commit into from Jul 27, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
41 changes: 41 additions & 0 deletions pkgs/shells/dash/0001-fix-dirent64-et-al-on-darwin.patch
@@ -0,0 +1,41 @@
From 7e75779eaeacdbb46a387a59d9aaf1481a1da3e5 Mon Sep 17 00:00:00 2001
From: Adrian Gierakowski <agierakowski@gmail.com>
Date: Sun, 19 Jul 2020 08:38:05 +0100
Subject: [PATCH] fix dirent64 et al on darwin

---
configure.ac | 11 +++++++++++
1 file changed, 11 insertions(+)

diff --git a/configure.ac b/configure.ac
index b8faca9..cee1e4d 100644
--- a/configure.ac
+++ b/configure.ac
@@ -139,6 +139,7 @@ if test "$ac_cv_func_signal" != yes; then
[klibc has bsd_signal instead of signal])])
fi

+dnl TODO: stat64 is deprecated since macOS 10.6
dnl Check for stat64 (dietlibc/klibc).
AC_CHECK_FUNC(stat64,, [
AC_DEFINE(fstat64, fstat, [64-bit operations are the same as 32-bit])
@@ -155,6 +156,16 @@ AC_CHECK_FUNC(open64,, [
AC_DEFINE(open64, open, [64-bit operations are the same as 32-bit])
])

+dnl OS X apparently has stat64 but not readdir64.
+AC_CHECK_FUNC(readdir64,, [
+ AC_DEFINE(readdir64, readdir, [64-bit operations are the same as 32-bit])
+])
+
+dnl OS X apparently has stat64 but not dirent64.
+AC_CHECK_TYPE(struct dirent64,, [
+ AC_DEFINE(dirent64, dirent, [64-bit operations are the same as 32-bit])
+],[#include <dirent.h>])
+
dnl Check if struct stat has st_mtim.
AC_MSG_CHECKING(for stat::st_mtim)
AC_COMPILE_IFELSE(
--
2.15.1

6 changes: 5 additions & 1 deletion pkgs/shells/dash/default.nix
@@ -1,4 +1,4 @@
{ stdenv, fetchurl }:
{ autoreconfHook, lib, stdenv, fetchurl }:

stdenv.mkDerivation rec {
name = "dash-0.5.11.1";
Expand All @@ -10,6 +10,10 @@ stdenv.mkDerivation rec {

hardeningDisable = [ "format" ];

# Temporary fix until a proper one is accepted upstream
patches = lib.lists.optional stdenv.isDarwin ./0001-fix-dirent64-et-al-on-darwin.patch;
nativeBuildInputs = lib.lists.optional stdenv.isDarwin autoreconfHook;

meta = with stdenv.lib; {
homepage = "http://gondor.apana.org.au/~herbert/dash/";
description = "A POSIX-compliant implementation of /bin/sh that aims to be as small as possible";
Expand Down