[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

gcc bootstrap patch



Still need to fix the dependencies, but as I'll go enjoy the sun now
I'm sending it the way it is.
diff -Naur debian.orig2/rules2 debian/rules2
--- debian.orig2/rules2	2007-07-13 15:51:55.000000000 +0200
+++ debian/rules2	2007-07-15 11:26:17.000000000 +0200
@@ -144,16 +144,28 @@
 CONFARGS = -v \
 	--enable-languages=$(shell echo $(enabled_languages) | tr -s ' ' ',') \
 	--prefix=/$(PF) \
-	--enable-shared \
-	--with-system-zlib \
+	--with-system-zlib
+ifneq ($(DEB_CROSS_BOOTSTRAP),yes)
+  CONFARGS += \
+        --enable-shared
+else
+  CONFARGS += \
+        --disable-shared
+endif
 
 ifeq ($(PKGSOURCE),gcc-snapshot)
   with_nls := no
 else
   CONFARGS += \
 	--libexecdir=/$(libexecdir) \
-	--without-included-gettext \
-	--enable-threads=posix
+	--without-included-gettext
+  ifneq ($(DEB_CROSS_BOOTSTRAP),yes)
+    CONFARGS += \
+        --enable-threads=posix
+  else
+    CONFARGS += \
+        --disable-threads
+  endif
 endif
 
 ifeq ($(with_nls),yes)
@@ -544,6 +556,22 @@
 # DEB_CROSS is never set if REVERSE_CROSS is set and vice-versa.
 # DEB_CROSS build
 ifeq ($(DEB_CROSS),yes)
+  ifeq ($(DEB_CROSS_BOOTSTRAP),yes)
+	: # build cross compiler for $(TARGET_ALIAS)
+	( \
+	  set +e; \
+	  PATH=$(PWD)/bin:$$PATH \
+	  $(SET_LOCPATH) \
+	    $(MAKE) -C $(builddir) $(NJOBS) \
+		CC="$(CC)" \
+		CFLAGS="$(CFLAGS)" \
+		BOOT_CFLAGS="$(BOOT_CFLAGS)" \
+		LDFLAGS="$(LDFLAGS)" \
+		all-gcc ; \
+	  echo $$? > status; \
+	) 2>&1 | tee bootstrap-protocol
+	s=`cat status`; rm -f status; test $$s -eq 0
+  else
 	: # build cross compiler for $(TARGET_ALIAS)
 	( \
 	  set +e; \
@@ -558,6 +586,7 @@
 	  echo $$? > status; \
 	) 2>&1 | tee bootstrap-protocol
 	s=`cat status`; rm -f status; test $$s -eq 0
+  endif
 else
   # REVERSE_CROSS build
   ifeq ($(REVERSE_CROSS),yes)
@@ -1071,6 +1100,11 @@
   p_cpp  = cpp$(pkg_ver)$(cross_bin_arch)
   p_gcc  = gcc$(pkg_ver)$(cross_bin_arch)
   p_cxx  = g++$(pkg_ver)$(cross_bin_arch)
+ ifeq ($(DEB_CROSS_BOOTSTRAP),yes)
+   p_cpp  = cpp$(pkg_ver)-bootstrap$(cross_bin_arch)
+   p_gcc  = gcc$(pkg_ver)-bootstrap$(cross_bin_arch)
+   p_base = gcc$(pkg_ver)-bootstrap$(cross_bin_arch)-base
+ endif
 endif
 p_hppa64 = gcc$(pkg_ver)-hppa64
 
@@ -1379,6 +1413,7 @@
 	ln -s $(libdir) $(d)/$(PF)/lib64
 endif
 
+ifneq ($(DEB_CROSS_BOOTSTRAP),yes)
 	: # Install everything
 	PATH=$(PWD)/bin:$$PATH \
 	$(SET_SHELL) \
@@ -1390,6 +1425,19 @@
 	    infodir=/$(PF)/share/info \
 	    mandir=/$(PF)/share/man \
 		install
+else
+	: # Install everything
+	PATH=$(PWD)/bin:$$PATH \
+	$(SET_SHELL) \
+	  $(MAKE) -C $(builddir) \
+	    CFLAGS="$(CFLAGS)" \
+	    LDFLAGS="$(LDFLAGS)" \
+	    BOOT_CFLAGS="$(BOOT_CFLAGS)" \
+	    DESTDIR=$(PWD)/$(d) \
+	    infodir=/$(PF)/share/info \
+	    mandir=/$(PF)/share/man \
+		install-gcc
+endif
 
 ifeq ($(with_java),yes)
   ifneq (,$(filter yes, $(biarch) $(biarch32)))
diff -Naur debian.orig2/rules.conf debian/rules.conf
--- debian.orig2/rules.conf	2007-07-14 14:09:04.000000000 +0200
+++ debian/rules.conf	2007-07-14 19:05:19.000000000 +0200
@@ -265,7 +265,12 @@
   DEB_LIBGCC_VERSION := $(DEB_EVERSION)
 endif
 
-LIBGCC_DEP := libgcc$(GCC_SONAME)$(LS) (>= $(DEB_LIBGCC_VERSION))
+ifneq ($(DEB_CROSS_BOOTSTRAP),yes)
+  LIBGCC_DEP := libgcc$(GCC_SONAME)$(LS) (>= $(DEB_LIBGCC_VERSION))
+else
+  LIBGCC_DEP :=
+endif
+
 LIBGCC_BIARCH_DEP := 
 ifeq ($(biarch),yes)
   LIBGCC_BIARCH_DEP := lib64gcc$(GCC_SONAME)$(LS) (>= $(DEB_LIBGCC_VERSION))
diff -Naur debian.orig2/rules.defs debian/rules.defs
--- debian.orig2/rules.defs	2007-07-14 15:16:04.000000000 +0200
+++ debian/rules.defs	2007-07-15 10:43:50.000000000 +0200
@@ -106,7 +106,11 @@
   #     library package names (e.g. libgcc-powerpc-cross).
   DEB_TARGET_ALIAS ?= $(DEB_TARGET_GNU_TYPE)
   TP = $(DEB_TARGET_GNU_TYPE)-
+ ifneq ($(DEB_CROSS_BOOTSTRAP),yes)
   TS = -$(DEB_TARGET_ALIAS)
+ else
+  TS = -bootstrap-$(DEB_TARGET_ALIAS)
+ endif
   LS = -$(DEB_TARGET_ARCH)-cross
 endif
 
@@ -179,7 +183,11 @@
 
 # ... and some libraries, which do not change (libgcc1, libffi2, libg2c,
 # libmudflap, libssp0).
+ifneq ($(DEB_CROSS_BOOTSTRAP),yes)
 with_common_libs := yes
+else
+with_common_libs := disabled for the bootstrap compiler
+endif
 
 #ifeq ($(distribution),Debian)
 #  next_gcc_not_built := alpha m68k mips mipsel hurd-i386 kfreebsd-i386 kfreebsd-amd64
@@ -262,6 +270,9 @@
 ifeq (c++, $(findstring c++,$(subst obj-c++,,$(WITHOUT_LANG))))
   with_cxx := disabled by environment
 endif
+ifeq ($(DEB_CROSS_BOOTSTRAP),yes)
+  with_cxx := disabled for the bootstrap compiler
+endif
 # Build all packages needed for C++ development
 ifeq ($(with_cxx)-$(with_dev),yes-yes)
   with_cxxdev := yes

Reply to: