[PATCH] Allow static building of dtc
Signed-off-by: Tero Tervala <tero.tervala@unikie.com> --- ...01-Use-libfdt.a-if-building-staticly.patch | 54 +++++++++++++++++++ pkgs/development/compilers/dtc/default.nix | 4 ++ 2 files changed, 58 insertions(+) create mode 100644 pkgs/development/compilers/dtc/0001-Use-libfdt.a-if-building-staticly.patch diff --git a/pkgs/development/compilers/dtc/0001-Use-libfdt.a-if-building-staticly.patch b/pkgs/development/compilers/dtc/0001-Use-libfdt.a-if-building-staticly.patch new file mode 100644 index 00000000000..4f0d6193030 --- /dev/null +++ b/pkgs/development/compilers/dtc/0001-Use-libfdt.a-if-building-staticly.patch @@ -0,0 +1,54 @@ +From 59258caa6e02b5a7d5afc0bfde777b250ef74bbb Mon Sep 17 00:00:00 2001 +From: Tero Tervala <tero.tervala@unikie.com> +Date: Wed, 18 May 2022 11:20:40 +0300 +Subject: [PATCH] Use libfdt.a if building staticly + +Signed-off-by: Tero Tervala <tero.tervala@unikie.com> +--- + Makefile | 14 ++++++++++---- + 1 file changed, 10 insertions(+), 4 deletions(-) + +diff --git a/Makefile b/Makefile +index ea8c659..9474b63 100644 +--- a/Makefile ++++ b/Makefile +@@ -151,7 +151,7 @@ BIN += fdtoverlay + + SCRIPTS = dtdiff + +-all: $(BIN) libfdt ++all: libfdt $(BIN) + + # We need both Python and swig to build/install pylibfdt. + # This builds the given make ${target} if those deps are found. +@@ -198,6 +198,12 @@ LIBFDT_lib = $(LIBFDT_dir)/$(LIBFDT_LIB) + LIBFDT_include = $(addprefix $(LIBFDT_dir)/,$(LIBFDT_INCLUDES)) + LIBFDT_version = $(addprefix $(LIBFDT_dir)/,$(LIBFDT_VERSION)) + ++ifneq (,$(findstring -static,$(CFLAGS))) ++ LIBFDT_dep = $(LIBFDT_archive) ++else ++ LIBFDT_dep = $(LIBFDT_lib) ++endif ++ + include $(LIBFDT_dir)/Makefile.libfdt + + .PHONY: libfdt +@@ -261,11 +267,11 @@ convert-dtsv0: $(CONVERT_OBJS) + + fdtdump: $(FDTDUMP_OBJS) + +-fdtget: $(FDTGET_OBJS) $(LIBFDT_lib) ++fdtget: $(FDTGET_OBJS) $(LIBFDT_dep) + +-fdtput: $(FDTPUT_OBJS) $(LIBFDT_lib) ++fdtput: $(FDTPUT_OBJS) $(LIBFDT_dep) + +-fdtoverlay: $(FDTOVERLAY_OBJS) $(LIBFDT_lib) ++fdtoverlay: $(FDTOVERLAY_OBJS) $(LIBFDT_dep) + + dist: + git archive --format=tar --prefix=dtc-$(dtc_version)/ HEAD \ +-- +2.25.1 + diff --git a/pkgs/development/compilers/dtc/default.nix b/pkgs/development/compilers/dtc/default.nix index 04dca4772a9..33369fb1fcc 100644 --- a/pkgs/development/compilers/dtc/default.nix +++ b/pkgs/development/compilers/dtc/default.nix @@ -12,6 +12,10 @@ stdenv.mkDerivation rec { sha256 = "sha256-gx9LG3U9etWhPxm7Ox7rOu9X5272qGeHqZtOe68zFs4="; }; + patches = [ + ./0001-Use-libfdt.a-if-building-staticly.patch + ]; + buildInputs = [ libyaml ]; nativeBuildInputs = [ flex bison pkg-config which ] ++ lib.optionals pythonSupport [ python swig ]; -- 2.33.3
On Fri, May 20, 2022 at 12:52:57PM +0300, Tero Tervala wrote:
Signed-off-by: Tero Tervala <tero.tervala@unikie.com> --- ...01-Use-libfdt.a-if-building-staticly.patch | 54 +++++++++++++++++++ pkgs/development/compilers/dtc/default.nix | 4 ++ 2 files changed, 58 insertions(+) create mode 100644 pkgs/development/compilers/dtc/0001-Use-libfdt.a-if-building-staticly.patch
Thanks for the patch! Since pkgsStatic.dtc is broken in upstream Nixpkgs, would you mind submitting it there? [1] It will get us wider review than on the Spectrum list, and if it's accepted upstream (I imagine this or a similar fix will be) it'll minimize how much Spectrum Nixpkgs diverges, which is important for maintainability. Once it's accepted upstream (or if it ends up being difficult to upstream), we can cherry-pick it into Spectrum's nixpkgs, or update Spectrum's nixpkgs to a version that includes the fix. When you open the Nixpkgs PR, please CC me. My GitHub username is @alyssais. Nixpkgs is quite picky about commit message format, so make sure to look at the examples in the documentation linked below. When I get a chance, I'll update the documentation to recommend submitting fixes to upstream Nixpkgs first if applicable. [1]: https://nixos.org/manual/nixpkgs/unstable/#chap-submitting-changes
Hi, there is now PR on the nixpkgs side for this fix. On 20.5.2022 15.56, Alyssa Ross wrote:
On Fri, May 20, 2022 at 12:52:57PM +0300, Tero Tervala wrote:
Signed-off-by: Tero Tervala <tero.tervala@unikie.com> --- ...01-Use-libfdt.a-if-building-staticly.patch | 54 +++++++++++++++++++ pkgs/development/compilers/dtc/default.nix | 4 ++ 2 files changed, 58 insertions(+) create mode 100644 pkgs/development/compilers/dtc/0001-Use-libfdt.a-if-building-staticly.patch Thanks for the patch! Since pkgsStatic.dtc is broken in upstream Nixpkgs, would you mind submitting it there? [1] It will get us wider review than on the Spectrum list, and if it's accepted upstream (I imagine this or a similar fix will be) it'll minimize how much Spectrum Nixpkgs diverges, which is important for maintainability. Once it's accepted upstream (or if it ends up being difficult to upstream), we can cherry-pick it into Spectrum's nixpkgs, or update Spectrum's nixpkgs to a version that includes the fix.
When you open the Nixpkgs PR, please CC me. My GitHub username is @alyssais. Nixpkgs is quite picky about commit message format, so make sure to look at the examples in the documentation linked below.
When I get a chance, I'll update the documentation to recommend submitting fixes to upstream Nixpkgs first if applicable.
[1]: https://nixos.org/manual/nixpkgs/unstable/#chap-submitting-changes
participants (2)
-
Alyssa Ross -
Tero Tervala