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