Prechádzať zdrojové kódy

- start to think about GNU/hurd support.
Not yet functional. Help welcome

Bernhard Reutner-Fischer 18 rokov pred
rodič
commit
0c16c17f53

+ 1 - 0
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"

+ 1 - 1
target/Makefile.in

@@ -24,4 +24,4 @@ include target/*/*.mk
 #else
 include target/linux/Makefile.in
 #endif
-
+include target/hurd/Makefile.in

+ 1 - 1
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

+ 38 - 0
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

+ 13 - 0
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}"
+       ;;

+ 3 - 0
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)