From 0c16c17f539ccbc91d4dd1ea5168e7beb390fa5d Mon Sep 17 00:00:00 2001 From: Bernhard Reutner-Fischer Date: Fri, 5 Oct 2007 11:06:56 +0000 Subject: [PATCH] - start to think about GNU/hurd support. Not yet functional. Help welcome --- Config.in | 1 + target/Makefile.in | 2 +- target/hurd/Config.in | 2 +- target/hurd/Makefile.in | 38 +++++++++++++++++++ .../gcc/4.2.1/104-gnuhurd-uclibc-conf.patch | 13 +++++++ toolchain/gcc/gcc-uclibc-4.x.mk | 3 ++ 6 files changed, 57 insertions(+), 2 deletions(-) create mode 100644 target/hurd/Makefile.in create mode 100644 toolchain/gcc/4.2.1/104-gnuhurd-uclibc-conf.patch diff --git a/Config.in b/Config.in index 34b08e6302..407057d438 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 410ae7bd2b..bb7d596cc7 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 be5675f5bd..08b9ff7e73 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 0000000000..9bd7d9b1cf --- /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 0000000000..c04dd9ff00 --- /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 0c6636c23a..e646c515e7 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) -- 2.30.2