This commit is contained in:
Michael Forney 2016-12-07 07:59:07 +00:00 committed by GitHub
commit 98b010df52
4 changed files with 58 additions and 15 deletions

View File

@ -1,5 +1,5 @@
OUTPUT = $(PWD)/output OUTPUT = $(CURDIR)/output
SOURCES = sources SOURCES = sources
CONFIG_SUB_REV = 3d5db9ebe860 CONFIG_SUB_REV = 3d5db9ebe860
@ -26,6 +26,8 @@ LINUX_SITE = https://cdn.kernel.org/pub/linux/kernel
BUILD_DIR = build-$(TARGET) BUILD_DIR = build-$(TARGET)
HTTP_GET = wget -c -O $(2) $(1)
-include config.mak -include config.mak
SRC_DIRS = gcc-$(GCC_VER) binutils-$(BINUTILS_VER) musl-$(MUSL_VER) \ SRC_DIRS = gcc-$(GCC_VER) binutils-$(BINUTILS_VER) musl-$(MUSL_VER) \
@ -65,17 +67,17 @@ $(SOURCES):
$(SOURCES)/config.sub: | $(SOURCES) $(SOURCES)/config.sub: | $(SOURCES)
mkdir -p $@.tmp 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 && 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 $@) $@ mv $@.tmp/$(notdir $@) $@
rm -rf $@.tmp rm -rf $@.tmp
$(SOURCES)/%: hashes/%.sha1 | $(SOURCES) $(SOURCES)/%: hashes/%.sha1 | $(SOURCES)
mkdir -p $@.tmp 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 && touch $(notdir $@)
cd $@.tmp && sha1sum -c $(PWD)/hashes/$(notdir $@).sha1 cd $@.tmp && sha1sum -c $(CURDIR)/hashes/$(notdir $@).sha1
mv $@.tmp/$(notdir $@) $@ mv $@.tmp/$(notdir $@) $@
rm -rf $@.tmp rm -rf $@.tmp
@ -143,7 +145,7 @@ $(BUILD_DIR)/Makefile: | $(BUILD_DIR)
ln -sf ../litecross/Makefile $@ ln -sf ../litecross/Makefile $@
$(BUILD_DIR)/config.mak: | $(BUILD_DIR) $(BUILD_DIR)/config.mak: | $(BUILD_DIR)
printf >$@ -- '%s\n' \ printf >$@ '%s\n' \
"MUSL_SRCDIR = ../musl-$(MUSL_VER)" \ "MUSL_SRCDIR = ../musl-$(MUSL_VER)" \
"GCC_SRCDIR = ../gcc-$(GCC_VER)" \ "GCC_SRCDIR = ../gcc-$(GCC_VER)" \
"BINUTILS_SRCDIR = ../binutils-$(BINUTILS_VER)" \ "BINUTILS_SRCDIR = ../binutils-$(BINUTILS_VER)" \

View File

@ -41,6 +41,11 @@
# ISL_VER = # ISL_VER =
# LINUX_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 # Something like the following can be used to produce a static-linked
# toolchain that's deployable to any system with matching arch, using # toolchain that's deployable to any system with matching arch, using
# an existing musl-targeted cross compiler. This only # works if the # an existing musl-targeted cross compiler. This only # works if the
@ -64,4 +69,4 @@
# target libraries with the following, but then gdb needs to be told # target libraries with the following, but then gdb needs to be told
# where to look for source files. # where to look for source files.
# COMMON_CONFIG += --with-debug-prefix-map=$(PWD)= # COMMON_CONFIG += --with-debug-prefix-map=$(CURDIR)=

View File

@ -1,5 +1,5 @@
OUTPUT = $(PWD)/output OUTPUT = $(CURDIR)/output
BINUTILS_SRCDIR = BINUTILS_SRCDIR_not_set BINUTILS_SRCDIR = BINUTILS_SRCDIR_not_set
GCC_SRCDIR = GCC_SRCDIR_not_set GCC_SRCDIR = GCC_SRCDIR_not_set
@ -51,7 +51,6 @@ FULL_TOOLCHAIN_CONFIG = --enable-languages=c,c++ \
--target=$(TARGET) --prefix= \ --target=$(TARGET) --prefix= \
--libdir=/lib --disable-multilib \ --libdir=/lib --disable-multilib \
--with-sysroot=$(SYSROOT) \ --with-sysroot=$(SYSROOT) \
--with-build-sysroot=$(PWD)/obj_sysroot \
--enable-tls \ --enable-tls \
--disable-libmudflap --disable-libsanitizer \ --disable-libmudflap --disable-libsanitizer \
--disable-gnu-indirect-function \ --disable-gnu-indirect-function \
@ -63,9 +62,12 @@ FULL_MUSL_CONFIG = $(MUSL_CONFIG) \
ifeq ($(NATIVE),) ifeq ($(NATIVE),)
SYSROOT = /$(TARGET) SYSROOT = /$(TARGET)
FULL_TOOLCHAIN_CONFIG += --with-build-sysroot=$(CURDIR)/obj_sysroot
FULL_MUSL_CONFIG += CC="$(XGCC)" LIBCC="../obj_toolchain/$(TARGET)/libgcc/libgcc.a" FULL_MUSL_CONFIG += CC="$(XGCC)" LIBCC="../obj_toolchain/$(TARGET)/libgcc/libgcc.a"
MUSL_VARS = AR=../obj_toolchain/binutils/ar RANLIB=../obj_toolchain/binutils/ranlib MUSL_VARS = AR=../obj_toolchain/binutils/ar RANLIB=../obj_toolchain/binutils/ranlib
obj_musl/.lc_configured: | obj_toolchain/gcc/.lc_built
obj_musl/.lc_built: | obj_toolchain/$(TARGET)/libgcc/libgcc.a obj_musl/.lc_built: | obj_toolchain/$(TARGET)/libgcc/libgcc.a
obj_toolchain/gcc/.lc_built: | obj_sysroot/usr obj_sysroot/lib64 obj_sysroot/include
obj_toolchain/.lc_built: | obj_sysroot/.lc_libs obj_sysroot/.lc_headers obj_toolchain/.lc_built: | obj_sysroot/.lc_libs obj_sysroot/.lc_headers
else else
SYSROOT = / SYSROOT = /
@ -153,16 +155,16 @@ obj_toolchain/.lc_configured: | obj_toolchain src_toolchain
cd obj_toolchain && ../src_toolchain/configure $(FULL_TOOLCHAIN_CONFIG) cd obj_toolchain && ../src_toolchain/configure $(FULL_TOOLCHAIN_CONFIG)
touch $@ touch $@
obj_toolchain/gcc/.lc_built: | obj_toolchain/.lc_configured obj_sysroot/usr obj_sysroot/lib64 obj_sysroot/include obj_toolchain/gcc/.lc_built: | obj_toolchain/.lc_configured
cd obj_toolchain && $(MAKE) MAKE="$(MAKE)" all-gcc cd obj_toolchain && $(MAKE) MAKE="$(MAKE)" all-gcc
touch $@ touch $@
obj_musl/.lc_configured: | obj_toolchain/gcc/.lc_built obj_musl src_musl obj_musl/.lc_configured: | obj_musl src_musl
cd obj_musl && ../src_musl/configure $(FULL_MUSL_CONFIG) cd obj_musl && ../src_musl/configure $(FULL_MUSL_CONFIG)
touch $@ touch $@
obj_sysroot/.lc_headers: | obj_musl/.lc_configured obj_sysroot 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 $@ touch $@
obj_toolchain/$(TARGET)/libgcc/.lc_configured: | obj_sysroot/.lc_headers obj_toolchain/$(TARGET)/libgcc/.lc_configured: | obj_sysroot/.lc_headers
@ -177,7 +179,7 @@ obj_musl/.lc_built: | obj_musl/.lc_configured
touch $@ touch $@
obj_sysroot/.lc_libs: | obj_musl/.lc_built 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 $@ touch $@
obj_toolchain/.lc_built: | obj_toolchain/.lc_configured obj_toolchain/gcc/.lc_built obj_toolchain/.lc_built: | obj_toolchain/.lc_configured obj_toolchain/gcc/.lc_built
@ -203,8 +205,9 @@ kernel-headers: | obj_kernel_headers/.lc_built
src_kernel_headers: | $(LINUX_SRCDIR) src_kernel_headers: | $(LINUX_SRCDIR)
ln -sf "$(LINUX_SRCDIR)" $@ ln -sf "$(LINUX_SRCDIR)" $@
obj_kernel_headers/.lc_built: | src_kernel_headers obj_kernel_headers/.lc_built: | src_kernel_headers
mkdir -p $(PWD)/obj_kernel_headers/staged mkdir -p $(CURDIR)/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 cd src_kernel_headers && $(MAKE) $(KERNEL_VARS) ARCH=$(LINUX_ARCH) O=$(CURDIR)/obj_kernel_headers INSTALL_HDR_PATH=$(CURDIR)/obj_kernel_headers/staged headers_install
find obj_kernel_headers/staged/include '(' -name .install -o -name ..install.cmd ')' -exec rm {} +
touch $@ touch $@
install-kernel-headers: | obj_kernel_headers/.lc_built install-kernel-headers: | obj_kernel_headers/.lc_built
mkdir -p $(DESTDIR)$(OUTPUT)$(SYSROOT)/include mkdir -p $(DESTDIR)$(OUTPUT)$(SYSROOT)/include

View File

@ -0,0 +1,33 @@
From 22cbfa6ae94c9a09ee2ea6b6237d9674be3b7e03 Mon Sep 17 00:00:00 2001
From: Michael Forney <mforney@mforney.org>
Date: Tue, 6 Dec 2016 21:43:13 -0800
Subject: [PATCH] Expand \t escapes in sed expressions
---
scripts/headers_install.sh | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/scripts/headers_install.sh b/scripts/headers_install.sh
index fdebd66..a9a9ef2 100755
--- a/scripts/headers_install.sh
+++ b/scripts/headers_install.sh
@@ -31,12 +31,12 @@ for i in "$@"
do
FILE="$(basename "$i")"
sed -r \
- -e 's/([ \t(])(__user|__force|__iomem)[ \t]/\1/g' \
- -e 's/__attribute_const__([ \t]|$)/\1/g' \
+ -e 's/([ (])(__user|__force|__iomem)[ ]/\1/g' \
+ -e 's/__attribute_const__([ ]|$)/\1/g' \
-e 's@^#include <linux/compiler.h>@@' \
-e 's/(^|[^a-zA-Z0-9])__packed([^a-zA-Z0-9_]|$)/\1__attribute__((packed))\2/g' \
- -e 's/(^|[ \t(])(inline|asm|volatile)([ \t(]|$)/\1__\2__\3/g' \
- -e 's@#(ifndef|define|endif[ \t]*/[*])[ \t]*_UAPI@#\1 @' \
+ -e 's/(^|[ (])(inline|asm|volatile)([ (]|$)/\1__\2__\3/g' \
+ -e 's@#(ifndef|define|endif[ ]*/[*])[ ]*_UAPI@#\1 @' \
"$SRCDIR/$i" > "$OUTDIR/$FILE.sed" || exit 1
scripts/unifdef -U__KERNEL__ -D__EXPORTED_HEADERS__ "$OUTDIR/$FILE.sed" \
> "$OUTDIR/$FILE"
--
2.10.2