From f39a28b7a967fb45262041ba75990c16b61f21c3 Mon Sep 17 00:00:00 2001
From: Michael Forney <mforney@mforney.org>
Date: Thu, 1 Dec 2016 23:07:03 -0800
Subject: [PATCH 1/3] Don't pass -- to printf

POSIX says that printf has no options and doesn't have to conform to the
utility syntax guidelines (which include -- handling).
---
 Makefile | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/Makefile b/Makefile
index 7b57cc9..bff0713 100644
--- a/Makefile
+++ b/Makefile
@@ -143,7 +143,7 @@ $(BUILD_DIR)/Makefile: | $(BUILD_DIR)
 	ln -sf ../litecross/Makefile $@
 
 $(BUILD_DIR)/config.mak: | $(BUILD_DIR)
-	printf >$@ -- '%s\n' \
+	printf >$@ '%s\n' \
 	"MUSL_SRCDIR = ../musl-$(MUSL_VER)" \
 	"GCC_SRCDIR = ../gcc-$(GCC_VER)" \
 	"BINUTILS_SRCDIR = ../binutils-$(BINUTILS_VER)" \

From b05d8544325b008cb8b9b98841a817afe284e14a Mon Sep 17 00:00:00 2001
From: Michael Forney <mforney@mforney.org>
Date: Thu, 1 Dec 2016 23:14:01 -0800
Subject: [PATCH 2/3] Use $(CURDIR) instead of $(PWD) in Makefile

Some shells (in particular ksh) don't export PWD by default, so it
doesn't end up as a make variable.
---
 Makefile           |  6 +++---
 config.mak.dist    |  2 +-
 litecross/Makefile | 12 ++++++------
 3 files changed, 10 insertions(+), 10 deletions(-)

diff --git a/Makefile b/Makefile
index bff0713..9aee7f9 100644
--- a/Makefile
+++ b/Makefile
@@ -1,5 +1,5 @@
 
-OUTPUT = $(PWD)/output
+OUTPUT = $(CURDIR)/output
 SOURCES = sources
 
 CONFIG_SUB_REV = 3d5db9ebe860
@@ -67,7 +67,7 @@ $(SOURCES)/config.sub: | $(SOURCES)
 	mkdir -p $@.tmp
 	cd $@.tmp && wget -c -O $(notdir $@) "http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=$(CONFIG_SUB_REV)"
 	cd $@.tmp && touch $(notdir $@)
-	cd $@.tmp && sha1sum -c $(PWD)/hashes/$(notdir $@).$(CONFIG_SUB_REV).sha1
+	cd $@.tmp && sha1sum -c $(CURDIR)/hashes/$(notdir $@).$(CONFIG_SUB_REV).sha1
 	mv $@.tmp/$(notdir $@) $@
 	rm -rf $@.tmp
 
@@ -75,7 +75,7 @@ $(SOURCES)/%: hashes/%.sha1 | $(SOURCES)
 	mkdir -p $@.tmp
 	cd $@.tmp && wget -c -O $(notdir $@) $(SITE)/$(notdir $@)
 	cd $@.tmp && touch $(notdir $@)
-	cd $@.tmp && sha1sum -c $(PWD)/hashes/$(notdir $@).sha1
+	cd $@.tmp && sha1sum -c $(CURDIR)/hashes/$(notdir $@).sha1
 	mv $@.tmp/$(notdir $@) $@
 	rm -rf $@.tmp
 
diff --git a/config.mak.dist b/config.mak.dist
index ccbc194..eb02542 100644
--- a/config.mak.dist
+++ b/config.mak.dist
@@ -64,4 +64,4 @@
 # target libraries with the following, but then gdb needs to be told
 # where to look for source files.
 
-# COMMON_CONFIG += --with-debug-prefix-map=$(PWD)=
+# COMMON_CONFIG += --with-debug-prefix-map=$(CURDIR)=
diff --git a/litecross/Makefile b/litecross/Makefile
index d3c065a..ef9a4b8 100644
--- a/litecross/Makefile
+++ b/litecross/Makefile
@@ -1,5 +1,5 @@
 
-OUTPUT = $(PWD)/output
+OUTPUT = $(CURDIR)/output
 
 BINUTILS_SRCDIR = BINUTILS_SRCDIR_not_set
 GCC_SRCDIR = GCC_SRCDIR_not_set
@@ -51,7 +51,7 @@ FULL_TOOLCHAIN_CONFIG = --enable-languages=c,c++ \
 	--target=$(TARGET) --prefix= \
 	--libdir=/lib --disable-multilib \
 	--with-sysroot=$(SYSROOT) \
-	--with-build-sysroot=$(PWD)/obj_sysroot \
+	--with-build-sysroot=$(CURDIR)/obj_sysroot \
 	--enable-tls \
 	--disable-libmudflap --disable-libsanitizer \
 	--disable-gnu-indirect-function \
@@ -162,7 +162,7 @@ obj_musl/.lc_configured: | obj_toolchain/gcc/.lc_built obj_musl src_musl
 	touch $@
 
 obj_sysroot/.lc_headers: | obj_musl/.lc_configured obj_sysroot
-	cd obj_musl && $(MAKE) DESTDIR=$(PWD)/obj_sysroot install-headers
+	cd obj_musl && $(MAKE) DESTDIR=$(CURDIR)/obj_sysroot install-headers
 	touch $@
 
 obj_toolchain/$(TARGET)/libgcc/.lc_configured: | obj_sysroot/.lc_headers
@@ -177,7 +177,7 @@ obj_musl/.lc_built: | obj_musl/.lc_configured
 	touch $@
 
 obj_sysroot/.lc_libs: | obj_musl/.lc_built
-	cd obj_musl && $(MAKE) $(MUSL_VARS) DESTDIR=$(PWD)/obj_sysroot install
+	cd obj_musl && $(MAKE) $(MUSL_VARS) DESTDIR=$(CURDIR)/obj_sysroot install
 	touch $@
 
 obj_toolchain/.lc_built: | obj_toolchain/.lc_configured obj_toolchain/gcc/.lc_built
@@ -203,8 +203,8 @@ kernel-headers: | obj_kernel_headers/.lc_built
 src_kernel_headers: | $(LINUX_SRCDIR)
 	ln -sf "$(LINUX_SRCDIR)" $@
 obj_kernel_headers/.lc_built: | src_kernel_headers
-	mkdir -p $(PWD)/obj_kernel_headers/staged
-	cd src_kernel_headers && $(MAKE) ARCH=$(LINUX_ARCH) O=$(PWD)/obj_kernel_headers INSTALL_HDR_PATH=$(PWD)/obj_kernel_headers/staged headers_install
+	mkdir -p $(CURDIR)/obj_kernel_headers/staged
+	cd src_kernel_headers && $(MAKE) ARCH=$(LINUX_ARCH) O=$(CURDIR)/obj_kernel_headers INSTALL_HDR_PATH=$(CURDIR)/obj_kernel_headers/staged headers_install
 	touch $@
 install-kernel-headers: | obj_kernel_headers/.lc_built
 	mkdir -p $(DESTDIR)$(OUTPUT)$(SYSROOT)/include

From e1e800262e184fb8cf178843cc7df2c6af7f818a Mon Sep 17 00:00:00 2001
From: Michael Forney <mforney@mforney.org>
Date: Fri, 2 Dec 2016 23:58:08 -0800
Subject: [PATCH 3/3] Allow overriding HTTP download tool in config.mak

---
 Makefile        | 6 ++++--
 config.mak.dist | 5 +++++
 2 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/Makefile b/Makefile
index 9aee7f9..d43e73b 100644
--- a/Makefile
+++ b/Makefile
@@ -26,6 +26,8 @@ LINUX_SITE = https://cdn.kernel.org/pub/linux/kernel
 
 BUILD_DIR = build-$(TARGET)
 
+HTTP_GET = wget -c -O $(2) $(1)
+
 -include config.mak
 
 SRC_DIRS = gcc-$(GCC_VER) binutils-$(BINUTILS_VER) musl-$(MUSL_VER) \
@@ -65,7 +67,7 @@ $(SOURCES):
 
 $(SOURCES)/config.sub: | $(SOURCES)
 	mkdir -p $@.tmp
-	cd $@.tmp && wget -c -O $(notdir $@) "http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=$(CONFIG_SUB_REV)"
+	cd $@.tmp && $(call HTTP_GET,"http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=$(CONFIG_SUB_REV)",$(notdir $@))
 	cd $@.tmp && touch $(notdir $@)
 	cd $@.tmp && sha1sum -c $(CURDIR)/hashes/$(notdir $@).$(CONFIG_SUB_REV).sha1
 	mv $@.tmp/$(notdir $@) $@
@@ -73,7 +75,7 @@ $(SOURCES)/config.sub: | $(SOURCES)
 
 $(SOURCES)/%: hashes/%.sha1 | $(SOURCES)
 	mkdir -p $@.tmp
-	cd $@.tmp && wget -c -O $(notdir $@) $(SITE)/$(notdir $@)
+	cd $@.tmp && $(call HTTP_GET,$(SITE)/$(notdir $@),$(notdir $@))
 	cd $@.tmp && touch $(notdir $@)
 	cd $@.tmp && sha1sum -c $(CURDIR)/hashes/$(notdir $@).sha1
 	mv $@.tmp/$(notdir $@) $@
diff --git a/config.mak.dist b/config.mak.dist
index eb02542..fcdaad6 100644
--- a/config.mak.dist
+++ b/config.mak.dist
@@ -41,6 +41,11 @@
 # ISL_VER =
 # LINUX_VER =
 
+# By default source archives are downloaded with wget. curl is also an option.
+
+# HTTP_GET = wget -c -O $(2) $(1)
+# HTTP_GET = curl -C - -L -o $(2) $(1)
+
 # Something like the following can be used to produce a static-linked
 # toolchain that's deployable to any system with matching arch, using
 # an existing musl-targeted cross compiler. This only # works if the