patches/gcc/4.4.1/290-freebsd.patch
author Johannes Stezenbach <js@sig21.net>
Tue Oct 30 00:22:25 2012 +0000 (2012-10-30)
changeset 3097 5c67476c7342
parent 1393 b432bd628b10
permissions -rw-r--r--
scripts/functions: fix endless loop in debug-shell with IO redirection

CT_DEBUG_INTERACTIVE is disabled when stdin, stdout or
stderr are redirected, but the check is only done at
the start of the build and doesn't catch when individual
build commands use redirection. When stdin is redirected
it will cause the debug shell to exit immediately, causing
and endless loop. Thus, save the stdin/our/err file handles
and restore them before invoking the debug shell.

Signed-off-by: Johannes Stezenbach <js@sig21.net>
Message-Id: <20121030102225.GA8303@sig21.net>
Patchwork-Id: 195409
     1 diff -durN gcc-4.4.0.orig/gcc/config/freebsd-spec.h gcc-4.4.0/gcc/config/freebsd-spec.h
     2 --- gcc-4.4.0.orig/gcc/config/freebsd-spec.h	2009-05-27 21:38:47.000000000 +0200
     3 +++ gcc-4.4.0/gcc/config/freebsd-spec.h	2009-05-27 21:38:47.000000000 +0200
     4 @@ -86,9 +86,10 @@
     5  #define FBSD_STARTFILE_SPEC \
     6    "%{!shared: \
     7       %{pg:gcrt1.o%s} %{!pg:%{p:gcrt1.o%s} \
     8 -		       %{!p:%{profile:gcrt1.o%s} \
     9 -			 %{!profile:crt1.o%s}}}} \
    10 -   crti.o%s %{!shared:crtbegin.o%s} %{shared:crtbeginS.o%s}"
    11 +	%{!p:%{profile:gcrt1.o%s} \
    12 +	 %{!profile:crt1.o%s}}}} \
    13 +   crti.o%s \
    14 +   %{static:crtbeginT.o%s;shared:crtbeginS.o%s;:crtbegin.o%s}"
    15  
    16  /* Provide a ENDFILE_SPEC appropriate for FreeBSD.  Here we tack on
    17     the magical crtend.o file (see crtstuff.c) which provides part of 
    18 @@ -126,7 +127,8 @@
    19      %{pg:  -lc_p}							\
    20    }"
    21  #else
    22 -#if FBSD_MAJOR < 5
    23 +#include <sys/param.h>
    24 +#if __FreeBSD_version < 500016
    25  #define FBSD_LIB_SPEC "							\
    26    %{!shared:								\
    27      %{!pg:								\
    28 @@ -136,17 +138,34 @@
    29        %{!pthread:-lc_p}							\
    30        %{pthread:-lc_r_p}}						\
    31    }"
    32 -#else
    33 +#elif __FreeBSD_version < 700022
    34  #define FBSD_LIB_SPEC "							\
    35    %{!shared:								\
    36      %{!pg: %{pthread:-lpthread} -lc}					\
    37      %{pg:  %{pthread:-lpthread_p} -lc_p}				\
    38    }"
    39 +#else
    40 +#define FBSD_LIB_SPEC "							\
    41 +  %{!shared:								\
    42 +    %{!pg: %{pthread:-lpthread} -lc}					\
    43 +    %{pg:  %{pthread:-lpthread_p} -lc_p}}				\
    44 +  %{shared:								\
    45 +    %{pthread:-lpthread} -lc}						\
    46 +  "
    47  #endif
    48  #endif
    49  
    50 -#if FBSD_MAJOR < 6
    51 +#if FBSD_MAJOR < 5
    52  #define FBSD_DYNAMIC_LINKER "/usr/libexec/ld-elf.so.1"
    53  #else
    54  #define FBSD_DYNAMIC_LINKER "/libexec/ld-elf.so.1"
    55  #endif
    56 +
    57 +#if defined(HAVE_LD_EH_FRAME_HDR)
    58 +#define LINK_EH_SPEC "%{!static:--eh-frame-hdr} "
    59 +#endif
    60 +
    61 +/* Use --as-needed -lgcc_s for eh support.  */
    62 +#ifdef HAVE_LD_AS_NEEDED
    63 +#define USE_LD_AS_NEEDED 1
    64 +#endif