summary refs log tree commit diff
diff options
context:
space:
mode:
authortoonn <toonn@toonn.io>2021-07-27 15:26:03 +0200
committerJonathan Ringer <jonringer@users.noreply.github.com>2021-11-24 15:17:13 -0800
commit5aa4c46dcd0da403f2bf25432c72aedaf5e9a202 (patch)
tree100e6c77a358ab0da748ae1295b6b64145d78266
parent99bef3183511661808859a6c4d11643d37543099 (diff)
downloadnixpkgs-5aa4c46dcd0da403f2bf25432c72aedaf5e9a202.tar
nixpkgs-5aa4c46dcd0da403f2bf25432c72aedaf5e9a202.tar.gz
nixpkgs-5aa4c46dcd0da403f2bf25432c72aedaf5e9a202.tar.bz2
nixpkgs-5aa4c46dcd0da403f2bf25432c72aedaf5e9a202.tar.lz
nixpkgs-5aa4c46dcd0da403f2bf25432c72aedaf5e9a202.tar.xz
nixpkgs-5aa4c46dcd0da403f2bf25432c72aedaf5e9a202.tar.zst
nixpkgs-5aa4c46dcd0da403f2bf25432c72aedaf5e9a202.zip
Libc: Define target instead of including
Including `TargetConditionals.h` had knock-on effects, breaking the zlib
build because `TARGET_OS_MAC` gets defined, for instance.

Defining `TARGET_OS_EMBEDDED` to be `0` if it's not defined is simpler
and maintains the default behavior so it shouldn't break any dependents.
-rw-r--r--pkgs/os-specific/darwin/apple-source-releases/Libc/0001-Define-TARGET_OS_EMBEDDED-in-stdlib-if-not-defined.patch32
-rw-r--r--pkgs/os-specific/darwin/apple-source-releases/Libc/0001-Include-Targetconditionals-in-stdlib.patch24
-rw-r--r--pkgs/os-specific/darwin/apple-source-releases/Libc/default.nix2
3 files changed, 33 insertions, 25 deletions
diff --git a/pkgs/os-specific/darwin/apple-source-releases/Libc/0001-Define-TARGET_OS_EMBEDDED-in-stdlib-if-not-defined.patch b/pkgs/os-specific/darwin/apple-source-releases/Libc/0001-Define-TARGET_OS_EMBEDDED-in-stdlib-if-not-defined.patch
new file mode 100644
index 00000000000..0464e15c362
--- /dev/null
+++ b/pkgs/os-specific/darwin/apple-source-releases/Libc/0001-Define-TARGET_OS_EMBEDDED-in-stdlib-if-not-defined.patch
@@ -0,0 +1,32 @@
+From c0ab867bb7888401957539b0348902028a2be6e0 Mon Sep 17 00:00:00 2001
+From: toonn <toonn@toonn.io>
+Date: Tue, 27 Jul 2021 15:12:14 +0200
+Subject: [PATCH] Define TARGET_OS_EMBEDDED in stdlib if not defined
+
+Originally attempted including `TargetConditionals.h` but this had
+knock-on effects, for example, breaking the zlib build because of
+`TARGET_OS_MAC` getting defined.
+
+This should be the lowest impact solution and corresponds to the default
+behavior IIUC.
+---
+ include/stdlib.h | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/include/stdlib.h b/include/stdlib.h
+index c04d3a7..0b454ba 100644
+--- a/include/stdlib.h
++++ b/include/stdlib.h
+@@ -183,6 +183,9 @@ unsigned long long
+ #ifndef LIBC_ALIAS_SYSTEM
+ //End-Libc
+ 
++#ifndef TARGET_OS_EMBEDDED
++#  define TARGET_OS_EMBEDDED 0
++#endif
+ #if TARGET_OS_EMBEDDED
+ #define __swift_unavailable_on(osx_msg, ios_msg) __swift_unavailable(ios_msg)
+ #else
+-- 
+2.17.2 (Apple Git-113)
+
diff --git a/pkgs/os-specific/darwin/apple-source-releases/Libc/0001-Include-Targetconditionals-in-stdlib.patch b/pkgs/os-specific/darwin/apple-source-releases/Libc/0001-Include-Targetconditionals-in-stdlib.patch
deleted file mode 100644
index 57386ab0966..00000000000
--- a/pkgs/os-specific/darwin/apple-source-releases/Libc/0001-Include-Targetconditionals-in-stdlib.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-From 6e573a85b46dcfae323a99aa561c0dcc016a7791 Mon Sep 17 00:00:00 2001
-From: toonn <toonn@toonn.io>
-Date: Mon, 26 Jul 2021 16:19:44 +0200
-Subject: [PATCH] Include Targetconditionals in stdlib
-
----
- include/stdlib.h | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/include/stdlib.h b/include/stdlib.h
-index c04d3a7..94a9812 100644
---- a/include/stdlib.h
-+++ b/include/stdlib.h
-@@ -59,6 +59,7 @@
- #define _STDLIB_H_
- 
- #include <Availability.h>
-+#include <TargetConditionals.h>
- 
- #include <_types.h>
- #if !defined(_ANSI_SOURCE)
--- 
-2.17.2 (Apple Git-113)
-
diff --git a/pkgs/os-specific/darwin/apple-source-releases/Libc/default.nix b/pkgs/os-specific/darwin/apple-source-releases/Libc/default.nix
index dc6dd785d03..542e0c3f438 100644
--- a/pkgs/os-specific/darwin/apple-source-releases/Libc/default.nix
+++ b/pkgs/os-specific/darwin/apple-source-releases/Libc/default.nix
@@ -3,7 +3,7 @@
 appleDerivation' stdenvNoCC {
   nativeBuildInputs = [ ed unifdef ];
 
-  patches = [ ./0001-Include-Targetconditionals-in-stdlib.patch ];
+  patches = [ ./0001-Define-TARGET_OS_EMBEDDED-in-stdlib-if-not-defined.patch ];
 
   # TODO: asl.h actually comes from syslog project now
   installPhase = ''