summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Config.in1
-rw-r--r--target/Makefile.in2
-rw-r--r--target/hurd/Config.in2
-rw-r--r--target/hurd/Makefile.in38
-rw-r--r--toolchain/gcc/4.2.1/104-gnuhurd-uclibc-conf.patch13
-rw-r--r--toolchain/gcc/gcc-uclibc-4.x.mk3
6 files changed, 57 insertions, 2 deletions
diff --git a/Config.in b/Config.in
index 34b08e630..407057d43 100644
--- a/Config.in
+++ b/Config.in
@@ -131,6 +131,7 @@ config BR2_GNU_TARGET_SUFFIX
Default options are:
linux-uclibcgnueabi for ARM EABI
linux-uclibc for the rest
+ gnuhurd-uclibc for the hurd
config BR2_JLEVEL
int "Number of jobs to run simultaneously"
diff --git a/target/Makefile.in b/target/Makefile.in
index 410ae7bd2..bb7d596cc 100644
--- a/target/Makefile.in
+++ b/target/Makefile.in
@@ -24,4 +24,4 @@ include target/*/*.mk
#else
include target/linux/Makefile.in
#endif
-
+include target/hurd/Makefile.in
diff --git a/target/hurd/Config.in b/target/hurd/Config.in
index be5675f5b..08b9ff7e7 100644
--- a/target/hurd/Config.in
+++ b/target/hurd/Config.in
@@ -1,5 +1,5 @@
config BR2_PACKAGE_HURD
- bool "Hurd kernel"
+ bool "Hurd kernel (see helptext)"
depends on BR2_KERNEL_HURD
default y
help
diff --git a/target/hurd/Makefile.in b/target/hurd/Makefile.in
new file mode 100644
index 000000000..9bd7d9b1c
--- /dev/null
+++ b/target/hurd/Makefile.in
@@ -0,0 +1,38 @@
+# GNU Hurd kernel
+#
+ifeq ($(BR2_KERNEL_HURD),y)
+
+HURD_MODULE_SITE:= -d:pserver:anonymous@cvs.savannah.gnu.org:/sources/hurd
+MIG_MODULE_NAME:=mig
+MIG_MODULE_VERSION:=cvs
+HURD_MODULE_NAME:=hurd
+HURD_MODULE_VERSION:=cvs
+HURD_CMD_CO=cvs -z3 $(HURD_MODULE_SITE) co
+HURD_CMD_UP:=cvs up -PA -d
+HURD_SRC_DIR:=hurd-$(HURD_MODULE_VERSION)
+MIG_SRC_DIR:=mig-$(MIG_MODULE_VERSION)
+
+$(TOOL_BUILD_DIR)/$(HURD_SRC_DIR)/.unpacked:
+ mkdir -p $(@D)
+ (cd $(TOOL_BUILD_DIR) && \
+ $(HURD_CMD_CO) -d $(HURD_SRC_DIR) $(HURD_MODULE_NAME); \
+ )
+ touch $@
+
+$(TOOL_BUILD_DIR)/$(MIG_SRC_DIR)/.unpacked:
+ mkdir -p $(@D)
+ (cd $(TOOL_BUILD_DIR) && \
+ $(HURD_CMD_CO) -d $(MIG_SRC_DIR) $(MIG_MODULE_NAME); \
+ )
+ touch $@
+
+$(TOOL_BUILD_DIR)/$(HURD_SRC_DIR)/.updated: $(TOOL_BUILD_DIR)/$(HURD_SRC_DIR)/.unpacked
+ (cd $(@D) && $(HURD_CMD_UP))
+
+$(TOOL_BUILD_DIR)/$(MIG_SRC_DIR)/.updated: $(TOOL_BUILD_DIR)/$(MIG_SRC_DIR)/.unpacked
+ (cd $(@D) && $(HURD_CMD_UP))
+
+hurd-source: $(TOOL_BUILD_DIR)/$(HURD_SRC_DIR)/.updated \
+ $(TOOL_BUILD_DIR)/$(MIG_SRC_DIR)/.updated
+
+endif
diff --git a/toolchain/gcc/4.2.1/104-gnuhurd-uclibc-conf.patch b/toolchain/gcc/4.2.1/104-gnuhurd-uclibc-conf.patch
new file mode 100644
index 000000000..c04dd9ff0
--- /dev/null
+++ b/toolchain/gcc/4.2.1/104-gnuhurd-uclibc-conf.patch
@@ -0,0 +1,13 @@
+diff -rdup gcc-4.2.1.oorig/gcc/config.gcc gcc-4.2.1/gcc/config.gcc
+--- gcc-4.2.1.oorig/gcc/config.gcc 2007-10-01 11:52:52.000000000 +0200
++++ gcc-4.2.1/gcc/config.gcc 2007-10-01 13:22:12.000000000 +0200
+@@ -494,6 +494,9 @@ case ${target} in
+ alpha*)
+ tm_file="${cpu_type}/${cpu_type}.h alpha/elf.h alpha/linux.h alpha/linux-elf.h gnu.h ${tm_file}"
+ ;;
++ i[34567]86-*hurd*-*)
++ tm_file="${cpu_type}/${cpu_type}.h i386/unix.h i386/att.h dbxelf.h elfos.h svr4.h i386/gnu.h gnu.h ${tm_file}"
++ ;;
+ i[34567]86-*-*)
+ tm_file="${cpu_type}/${cpu_type}.h i386/unix.h i386/att.h dbxelf.h elfos.h svr4.h linux.h i386/linux.h gnu.h ${tm_file}"
+ ;;
diff --git a/toolchain/gcc/gcc-uclibc-4.x.mk b/toolchain/gcc/gcc-uclibc-4.x.mk
index 0c6636c23..e646c515e 100644
--- a/toolchain/gcc/gcc-uclibc-4.x.mk
+++ b/toolchain/gcc/gcc-uclibc-4.x.mk
@@ -137,6 +137,9 @@ ifneq ($(BR2_ENABLE_LOCALE),y)
GCC_ENABLE_CLOCALE:=--disable-clocale
endif
+ifeq ($(BR2_KERNEL_HURD),y)
+EXTRA_GCC1_CONFIG_OPTIONS+=--without-headers
+endif
$(DL_DIR)/$(GCC_SOURCE):
mkdir -p $(DL_DIR)