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

Bug#584454: gcc-snapshot: FTBFS on hurd-i386 due to long-term difference in Debian



Package: gcc-snapshot
Version: 20100530-1
Severity: normal
Tags: patch

Hello,

gcc-snapshot currently FTBFS on hurd-i386 because Debian GNU/Hurd
doesn't strictly follow the same rules as the main GNU/Hurd: /include
does not exist on Debian GNU/Hurd. The attached patch fixes this by
dropping almost all Hurd hooks but the renaming of /include into
/usr/include (which as documented is not to be forwarded upstream), and
moving that patch to the list of patches that are always applied, even
for gcc-snapshot.

Samuel
(I'm checking gcc 4.5 ATM, the patch will probably be also to remove
every hooks from hurd-changes except the renaming).

-- System Information:
Debian Release: squeeze/sid
  APT prefers testing
  APT policy: (990, 'testing'), (500, 'unstable'), (500, 'stable'), (1, 'experimental')
Architecture: amd64 (x86_64)

Kernel: Linux 2.6.34 (SMP w/2 CPU cores)
Locale: LANG=fr_FR.UTF-8, LC_CTYPE=fr_FR.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash

Versions of packages gcc-snapshot depends on:
ii  binutils                2.20.1-9         The GNU assembler, linker and bina
ii  libasound2              1.0.22-2         shared library for ALSA applicatio
ii  libatk1.0-0             1.30.0-1         The ATK accessibility toolkit
ii  libc6                   2.10.2-9         Embedded GNU C Library: Shared lib
ii  libc6-dev               2.10.2-9         Embedded GNU C Library: Developmen
ii  libc6-dev-i386          2.10.2-9         GNU C Library: 32-bit development 
ii  libc6-i386              2.10.2-9         GNU C Library: 32-bit shared libra
ii  libcairo2               1.8.10-4         The Cairo 2D vector graphics libra
ii  libcloog-ppl0           0.15.9-1         the Chunky Loop Generator (runtime
ii  libfontconfig1          2.8.0-2.1        generic font configuration library
ii  libfreetype6            2.3.11-1         FreeType 2 font engine, shared lib
ii  libglib2.0-0            2.24.1-1         The GLib library of C routines
ii  libgmp3c2               2:4.3.2+dfsg-1   Multiprecision arithmetic library
ii  libgmpxx4ldbl           2:4.3.2+dfsg-1   Multiprecision arithmetic library 
ii  libgtk2.0-0             2.20.1-1         The GTK+ graphical user interface 
ii  libice6                 2:1.0.6-1        X11 Inter-Client Exchange library
ii  libmpfr1ldbl            2.4.2-3          multiple precision floating-point 
ii  libpango1.0-0           1.28.0-1         Layout and rendering of internatio
ii  libppl-c2               0.10.2-6         Parma Polyhedra Library (C interfa
ii  libppl7                 0.10.2-6         Parma Polyhedra Library (runtime l
ii  libsm6                  2:1.1.1-1        X11 Session Management library
ii  libxrandr2              2:1.3.0-3        X11 RandR extension library
ii  libxrender1             1:0.9.5-2        X Rendering Extension client libra
ii  libxtst6                2:1.1.0-2        X11 Testing -- Resource extension 
ii  zlib1g                  1:1.2.3.4.dfsg-3 compression library - runtime

gcc-snapshot recommends no packages.

gcc-snapshot suggests no packages.

diff -urN debian-old/patches/hurd-changes.diff debian/patches/hurd-changes.diff
--- debian-old/patches/hurd-changes.diff	2010-06-03 19:09:23.000000000 +0200
+++ debian/patches/hurd-changes.diff	2010-06-03 19:10:25.000000000 +0200
@@ -2,48 +2,12 @@
 # DP: systems do, and we support both having a /usr -> . symlink, and having a
 # DP: /usr directory like the other ports.  So this patch should NOT go
 # DP: upstream.
-# DP: 
-# DP: Define MAXPATHLEN and PATH_MAX.
 
 ---
- boehm-gc/dyn_load.c |    2 +-
- gcc/config/gnu.h    |    3 ++-
- gcc/config/t-gnu    |    2 +-
- gcc/tlink.c         |    4 ++++
- 4 files changed, 8 insertions(+), 3 deletions(-)
+ gnu.h |    3 ++-
+ t-gnu |    2 +-
+ 2 files changed, 3 insertions(+), 2 deletions(-)
 
---- a/src/boehm-gc/dyn_load.c
-+++ b/src/boehm-gc/dyn_load.c
-@@ -26,7 +26,7 @@
-  * None of this is safe with dlclose and incremental collection.
-  * But then not much of anything is safe in the presence of dlclose.
-  */
--#if (defined(__linux__) || defined(__GLIBC__)) && !defined(_GNU_SOURCE)
-+#if (defined(__linux__) || defined(__GLIBC__) || defined(__GNU__)) && !defined(_GNU_SOURCE)
-     /* Can't test LINUX, since this must be define before other includes */
- #   define _GNU_SOURCE
- #endif
---- a/src/gcc/config.gcc	2009-04-26 21:36:36.000000000 +0200
-+++ b/src/gcc/config.gcc	2009-04-26 21:36:53.000000000 +0200
-@@ -3057,7 +3057,7 @@
- 	i[34567]86-*-darwin* | x86_64-*-darwin*)
- 		tmake_file="${tmake_file} i386/t-fprules-softfp soft-fp/t-softfp"
- 		;;
--	i[34567]86-*-linux* | x86_64-*-linux* | i[34567]86-*-kfreebsd*-gnu | x86_64-*-kfreebsd*-gnu)
-+	i[34567]86-*-linux* | x86_64-*-linux* | i[34567]86-*-kfreebsd*-gnu | x86_64-*-kfreebsd*-gnu | i[34567]86-*-gnu*)
- 		tmake_file="${tmake_file} i386/t-fprules-softfp soft-fp/t-softfp i386/t-linux"
- 		;;
- 	ia64*-*-linux*)
---- a/src/libgcc/config.host	2009-04-27 02:04:10.000000000 +0200
-+++ b/src/libgcc/config.host	2009-04-27 02:04:23.000000000 +0200
-@@ -591,6 +591,7 @@
- case ${host} in
- i[34567]86-*-darwin* | x86_64-*-darwin* | \
-   i[34567]86-*-kfreebsd*-gnu | x86_64-*-kfreebsd*-gnu | \
-+  i[34567]86-*-gnu* | \
-   i[34567]86-*-linux* | x86_64-*-linux* | \
-   i[34567]86-*-cygwin* | i[34567]86-*-mingw* | x86_64-*-mingw*)
- 	if test "${host_address}" = 32; then
 --- a/src/gcc/config/gnu.h
 +++ b/src/gcc/config/gnu.h
 @@ -30,7 +30,8 @@ along with GCC.  If not, see <http://www.gnu.org/licenses/>.
@@ -62,16 +26,3 @@
  # In GNU, "/usr" is a four-letter word.
 -NATIVE_SYSTEM_HEADER_DIR = /include
 +NATIVE_SYSTEM_HEADER_DIR = /usr/include
---- a/src/gcc/tlink.c
-+++ b/src/gcc/tlink.c
-@@ -34,6 +34,10 @@ along with GCC; see the file COPYING3.  If not see
- 
- #define MAX_ITERATIONS 17
- 
-+#ifndef MAXPATHLEN
-+#define MAXPATHLEN 4096
-+#endif
-+
- /* Defined in the automatically-generated underscore.c.  */
- extern int prepends_underscore;
- 
diff -urN debian-old/patches/hurd-pthread.diff debian/patches/hurd-pthread.diff
--- debian-old/patches/hurd-pthread.diff	2010-06-03 19:09:23.000000000 +0200
+++ debian/patches/hurd-pthread.diff	1970-01-01 01:00:00.000000000 +0100
@@ -1,170 +0,0 @@
-# Fix pthread support in a/src/boehm-gc
-
---- a/src/boehm-gc/pthread_support.c.orig	2009-02-07 22:27:11.828527000 +0000
-+++ b/src/boehm-gc/pthread_support.c	2009-02-07 22:27:18.279505000 +0000
-@@ -885,7 +885,7 @@
- 	  GC_nprocs = pthread_num_processors_np();
- #       endif
- #	if defined(GC_OSF1_THREADS) || defined(GC_AIX_THREADS) \
--	   || defined(GC_SOLARIS_PTHREADS)
-+	   || defined(GC_SOLARIS_PTHREADS) || defined(GC_GNU_THREADS)
- 	  GC_nprocs = sysconf(_SC_NPROCESSORS_ONLN);
- 	  if (GC_nprocs <= 0) GC_nprocs = 1;
- #	endif
---- a/src/boehm-gc/include/gc_config_macros.h.orig	2009-02-07 22:25:08.240177000 +0000
-+++ b/src/boehm-gc/include/gc_config_macros.h	2009-02-07 22:28:40.648347000 +0000
-@@ -6,7 +6,8 @@
- 		             || defined(GC_SOLARIS_PTHREADS) \
- 			     || defined(GC_HPUX_THREADS) \
- 			     || defined(GC_AIX_THREADS) \
--			     || defined(GC_LINUX_THREADS))
-+			     || defined(GC_LINUX_THREADS) \
-+			     || defined(GC_GNU_THREADS))
- # define _REENTRANT
- 	/* Better late than never.  This fails if system headers that	*/
- 	/* depend on this were previously included.			*/
-@@ -21,7 +22,8 @@
- 	defined(GC_HPUX_THREADS) || defined(GC_OSF1_THREADS) || \
- 	defined(GC_DGUX386_THREADS) || defined(GC_DARWIN_THREADS) || \
- 	defined(GC_AIX_THREADS) || \
--        (defined(GC_WIN32_THREADS) && defined(__CYGWIN32__))
-+        (defined(GC_WIN32_THREADS) && defined(__CYGWIN32__)) || \
-+	defined(GC_GNU_THREADS)
- #   define GC_PTHREADS
- # endif
- 
---- a/src/boehm-gc/threadlibs.c.orig	2009-02-07 22:34:42.429201000 +0000
-+++ b/src/boehm-gc/threadlibs.c	2009-02-07 22:34:49.530544000 +0000
-@@ -12,7 +12,8 @@
- #   endif
- #   if defined(GC_LINUX_THREADS) || defined(GC_IRIX_THREADS) \
- 	|| defined(GC_SOLARIS_PTHREADS) \
--	|| defined(GC_DARWIN_THREADS) || defined(GC_AIX_THREADS)
-+	|| defined(GC_DARWIN_THREADS) || defined(GC_AIX_THREADS) \
-+	|| defined(GC_GNU_THREADS)
-         printf("-lpthread\n");
- #   endif
- #   if defined(GC_FREEBSD_THREADS)
---- a/src/boehm-gc/configure.ac.orig	2009-02-07 22:30:12.000000000 +0000
-+++ b/src/boehm-gc/configure.ac	2009-02-07 22:35:31.717091000 +0000
-@@ -172,6 +172,11 @@
- 	AM_CPPFLAGS="$AM_CPPFLAGS -pthread"
- 	THREADLIBS=-pthread
-       	;;
-+     *-*-gnu*)
-+	AC_DEFINE(GC_GNU_THREADS,1,[support GNU threads])
-+	AC_DEFINE(_REENTRANT)
-+	AC_DEFINE(THREAD_LOCAL_ALLOC)
-+      	;;
-      *-*-solaris*)
- 	AC_DEFINE(GC_SOLARIS_PTHREADS,1,[support for Solaris pthreads])
- 	# Need to use alternate thread library, otherwise gctest hangs
---- a/src/boehm-gc/configure.orig	2009-02-07 22:32:34.000000000 +0000
-+++ b/src/boehm-gc/configure	2009-02-07 22:35:28.065650000 +0000
-@@ -5489,6 +5489,20 @@
- 	AM_CPPFLAGS="$AM_CPPFLAGS -pthread"
- 	THREADLIBS=-pthread
-       	;;
-+     *-*-gnu*)
-+cat >>confdefs.h <<\_ACEOF
-+#define GC_GNU_THREADS 1
-+_ACEOF
-+
-+       cat >>confdefs.h <<\_ACEOF
-+#define _REENTRANT 1
-+_ACEOF
-+
-+cat >>confdefs.h <<\_ACEOF
-+#define THREAD_LOCAL_ALLOC 1
-+_ACEOF
-+
-+      	;;
-      *-*-solaris*)
- 
- cat >>confdefs.h <<\_ACEOF
---- a/src/boehm-gc/os_dep.c.orig	2009-02-07 22:37:20.000000000 +0000
-+++ b/src/boehm-gc/os_dep.c	2009-02-07 22:37:40.000000000 +0000
-@@ -312,7 +312,7 @@
-   /* for recent Linux versions.  This seems to be the easiest way to	*/
-   /* cover all versions.						*/
- 
--# ifdef LINUX
-+# if defined(LINUX) || defined(HURD)
-     /* Some Linux distributions arrange to define __data_start.  Some	*/
-     /* define data_start as a weak symbol.  The latter is technically	*/
-     /* broken, since the user program may define data_start, in which	*/
-@@ -331,7 +331,7 @@
-   {
-     extern ptr_t GC_find_limit();
- 
--#   ifdef LINUX
-+#   if defined(LINUX) || defined(HURD)
-       /* Try the easy approaches first:	*/
-       if ((ptr_t)__data_start != 0) {
- 	  GC_data_start = (ptr_t)(__data_start);
---- a/src/boehm-gc/include/private/gcconfig.h.orig	2009-02-07 22:29:18.000000000 +0000
-+++ b/src/boehm-gc/include/private/gcconfig.h	2009-02-07 22:41:24.598684000 +0000
-@@ -1316,8 +1316,9 @@
- #     define OS_TYPE "HURD"
- #     define STACK_GROWS_DOWN
- #     define HEURISTIC2
--      extern int  __data_start[];
--#     define DATASTART ( (ptr_t) (__data_start))
-+#     define SIG_SUSPEND SIGUSR1
-+#     define SIG_THR_RESTART SIGUSR2
-+#     define SEARCH_FOR_DATA_START
-       extern int   _end[];
- #     define DATAEND ( (ptr_t) (_end))
- /* #     define MPROTECT_VDB  Not quite working yet? */
-@@ -2153,7 +2154,8 @@
- # if defined(SVR4) || defined(LINUX) || defined(IRIX5) || defined(HPUX) \
- 	    || defined(OPENBSD) || defined(NETBSD) || defined(FREEBSD) \
- 	    || defined(DGUX) || defined(BSD) || defined(SUNOS4) \
--	    || defined(_AIX) || defined(DARWIN) || defined(OSF1)
-+	    || defined(_AIX) || defined(DARWIN) || defined(OSF1) \
-+	    || defined(HURD)
- #   define UNIX_LIKE   /* Basic Unix-like system calls work.	*/
- # endif
- 
-@@ -2209,7 +2211,7 @@
- #   define CACHE_LINE_SIZE 32	/* Wild guess	*/
- # endif
- 
--# if defined(LINUX) || defined(__GLIBC__)
-+# if defined(LINUX) || defined(HURD) || defined(__GLIBC__)
- #   define REGISTER_LIBRARIES_EARLY
-     /* We sometimes use dl_iterate_phdr, which may acquire an internal	*/
-     /* lock.  This isn't safe after the world has stopped.  So we must	*/
-@@ -2244,6 +2246,9 @@
- # if defined(GC_AIX_THREADS) && !defined(_AIX)
- 	--> inconsistent configuration
- # endif
-+# if defined(GC_GNU_THREADS) && !defined(HURD)
-+	--> inconsistent configuration
-+# endif
- # if defined(GC_WIN32_THREADS) && !defined(MSWIN32) && !defined(CYGWIN32)
- 	--> inconsistent configuration
- # endif
---- a/src/boehm-gc/include/gc_config.h.in.orig	2009-02-08 01:51:09.707191000 +0000
-+++ b/src/boehm-gc/include/gc_config.h.in	2009-02-08 01:54:06.298757000 +0000
-@@ -33,6 +33,9 @@
- /* include support for gcj */
- #undef GC_GCJ_SUPPORT
- 
-+/* support GNU/Hurd threads */
-+#undef GC_GNU_THREADS
-+
- /* enables support for HP/UX 11 pthreads */
- #undef GC_HPUX_THREADS
- 
---- a/src/boehm-gc/specific.c.orig	2009-02-08 03:44:40.833287000 +0000
-+++ b/src/boehm-gc/specific.c	2009-02-08 03:44:50.865199000 +0000
-@@ -13,7 +13,7 @@
- 
- #include "private/gc_priv.h" /* For GC_compare_and_exchange, GC_memory_barrier */
- 
--#if defined(GC_LINUX_THREADS)
-+#if defined(GC_LINUX_THREADS) || defined(GC_GNU_THREADS)
- 
- #include "private/specific.h"
- 
diff -urN debian-old/rules.patch debian/rules.patch
--- debian-old/rules.patch	2010-06-03 19:09:23.000000000 +0200
+++ debian/rules.patch	2010-06-03 19:10:00.000000000 +0200
@@ -120,10 +120,6 @@
 #  debian_patches += gcc-d-lang
 endif
 
-ifeq ($(DEB_TARGET_ARCH_OS),hurd)
-  debian_patches += hurd-changes hurd-pthread
-endif
-
 ifeq ($(DEB_TARGET_ARCH),alpha)
   debian_patches += alpha-ieee mudflap-nocheck
   ifneq ($(GFDL_INVARIANT_FREE),yes)
@@ -169,6 +165,10 @@
   debian_patches =
 endif
 
+ifeq ($(DEB_TARGET_ARCH_OS),hurd)
+  debian_patches += hurd-changes
+endif
+
 ifeq ($(PKGSOURCE),gcc-snapshot)
   debian_patches += gcc-ice-hack-trunk gcc-ice-apport-trunk
 else

Reply to: