This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] GNU/k*BSD support (with ChangeLog) for gcc



Another ping on this (15 days).

Patch and test log attached.

On Tue, Mar 23, 2004 at 12:38:30PM +0100, Robert Millan wrote:
> On Fri, Mar 19, 2004 at 08:13:14AM -0800, David O'Brien wrote:
> > I respectfully really, really don't like this.  This is a
> > FreeBSD-specific file and the FreeBSD developers shouldn't have to be
> > careful about what symbols we start using in our kernel.  The
> > GNU/kFreeBSD bits should remain in separate files that won't get in the
> > way of FreeBSD's evolution.  Is it is really too hard to maintain things
> > they way they are now?
> 
> I'm postponing this change (and the analogous NetBSD one) and resending the
> patch without it.
> 
> > Rather than depend on ANSI-C string concatenation, why not do it right
> > and create %(link_emulation).
> 
> Done.
> 
> The revised patch also adds the missing ChangeLog entry for config/linux.h. It
> is attached together with a check log.
> 
> ChangeLog:
> 
> 2004-03-23  Robert Millan  <robertmh@gnu.org>
> 
> 	* libtool.m4: Add kfreebsd*-gnu and knetbsd*-gnu.
> 	* ltconfig: Likewise.
> 	* ltcf-c.sh: Likewise.
> 	* ltcf-cxx.sh: Likewise.
> 	* ltcf-gcj.sh: Likewise.
> 
> gcc/ChangeLog:
> 
> 2004-03-23  Robert Millan  <robertmh@gnu.org>
> 
> 	* config.gcc: Merge kfreebsd*-gnu with linux* and add knetbsd*-gnu.
> 	* config/linux.h: Allow overriding LINUX_TARGET_OS_CPP_BUILTINS.
> 	* config/i386/linux.h: Conditionalise LINK_EMULATION and
> 	DYNAMIC_LINKER. Unify sys/ucontext.h declarations across platforms.
> 	* config/kfreebsd-gnu.h: New. GNU/kFreeBSD followup for linux.h.
> 	* config/knetbsd-gnu.h: New. Ditto for GNU/kNetBSD.
> 
> 	* config/kfreebsdgnu.h: Remove.
> 	* config/t-kfreebsd-gnu: Likewise.
> 	* config/i386/kfreebsdgnu.h: Likewise.
> 
> -- 
> Robert Millan
> 
> "[..] but the delight and pride of Aule is in the deed of making, and in the
> thing made, and neither in possession nor in his own mastery; wherefore he
> gives and hoards not, and is free from care, passing ever on to some new work."
> 
>  -- J.R.R.T., Ainulindale (Silmarillion)

> 
> ChangeLog:
> 
> 2004-03-23  Robert Millan  <robertmh@gnu.org>
> 
> 	* libtool.m4: Add kfreebsd*-gnu and knetbsd*-gnu.
> 	* ltconfig: Likewise.
> 	* ltcf-c.sh: Likewise.
> 	* ltcf-cxx.sh: Likewise.
> 	* ltcf-gcj.sh: Likewise.
> 
> gcc/ChangeLog:
> 
> 2004-03-23  Robert Millan  <robertmh@gnu.org>
> 
> 	* config.gcc: Merge kfreebsd*-gnu with linux* and add knetbsd*-gnu.
> 	* config/linux.h: Allow overriding LINUX_TARGET_OS_CPP_BUILTINS.
> 	* config/i386/linux.h: Conditionalise LINK_EMULATION and
> 	DYNAMIC_LINKER. Unify sys/ucontext.h declarations across platforms.
> 	* config/kfreebsd-gnu.h: New. GNU/kFreeBSD followup for linux.h.
> 	* config/knetbsd-gnu.h: New. Ditto for GNU/kNetBSD.
> 
> 	* config/kfreebsdgnu.h: Remove.
> 	* config/t-kfreebsd-gnu: Likewise.
> 	* config/i386/kfreebsdgnu.h: Likewise.
> 
> diff -Nur gcc.old/gcc/config/i386/kfreebsdgnu.h gcc/gcc/config/i386/kfreebsdgnu.h
> --- gcc.old/gcc/config/i386/kfreebsdgnu.h	2003-10-21 11:52:47.000000000 +0200
> +++ gcc/gcc/config/i386/kfreebsdgnu.h	1970-01-01 01:00:00.000000000 +0100
> @@ -1,35 +0,0 @@
> -/* Definitions for Intel 386 running GNU/KFreeBSD systems with ELF format.
> -   Copyright (C) 2002 Free Software Foundation, Inc.
> -   Contributed by Bruno Haible.
> -
> -This file is part of GCC.
> -
> -GCC is free software; you can redistribute it and/or modify
> -it under the terms of the GNU General Public License as published by
> -the Free Software Foundation; either version 2, or (at your option)
> -any later version.
> -
> -GCC is distributed in the hope that it will be useful,
> -but WITHOUT ANY WARRANTY; without even the implied warranty of
> -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> -GNU General Public License for more details.
> -
> -You should have received a copy of the GNU General Public License
> -along with GCC; see the file COPYING.  If not, write to
> -the Free Software Foundation, 59 Temple Place - Suite 330,
> -Boston, MA 02111-1307, USA.  */
> -
> -#undef TARGET_VERSION
> -#define TARGET_VERSION fprintf (stderr, " (i386 KFreeBSD/ELF)");
> -
> -/* FIXME: Is a KFreeBSD-specific fallback mechanism necessary?  */
> -#undef MD_FALLBACK_FRAME_STATE_FOR
> -
> -#undef LINK_SPEC
> -#define LINK_SPEC "-m elf_i386_fbsd %{shared:-shared} \
> -  %{!shared: \
> -    %{!ibcs: \
> -      %{!static: \
> -	%{rdynamic:-export-dynamic} \
> -	%{!dynamic-linker:-dynamic-linker /lib/ld.so.1}} \
> -	%{static:-static}}}"
> diff -Nur gcc.old/gcc/config/i386/linux.h gcc/gcc/config/i386/linux.h
> --- gcc.old/gcc/config/i386/linux.h	2003-11-29 04:08:10.000000000 +0100
> +++ gcc/gcc/config/i386/linux.h	2004-03-22 20:45:45.000000000 +0100
> @@ -108,24 +108,30 @@
>  
>  /* If ELF is the default format, we should not use /lib/elf.  */
>  
> +#ifndef LINK_EMULATION
> +# define LINK_EMULATION "elf_i386"
> +#endif
> +#ifndef DYNAMIC_LINKER
> +# ifdef USE_GNULIBC_1
> +#  define DYNAMIC_LINKER "/lib/ld-linux.so.1"
> +# else
> +#  define DYNAMIC_LINKER "/lib/ld-linux.so.2"
> +# endif
> +#endif
> +
> +#undef  SUBTARGET_EXTRA_SPECS	/* i386.h bogusly defines it.  */
> +#define SUBTARGET_EXTRA_SPECS \
> +  { "link_emulation", LINK_EMULATION },\
> +  { "dynamic_linker", DYNAMIC_LINKER }
> +
>  #undef	LINK_SPEC
> -#ifdef USE_GNULIBC_1
> -#define LINK_SPEC "-m elf_i386 %{shared:-shared} \
> +#define LINK_SPEC "-m %(link_emulation) %{shared:-shared} \
>    %{!shared: \
>      %{!ibcs: \
>        %{!static: \
>  	%{rdynamic:-export-dynamic} \
> -	%{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.1}} \
> +	%{!dynamic-linker:-dynamic-linker %(dynamic_linker)}} \
>  	%{static:-static}}}"
> -#else
> -#define LINK_SPEC "-m elf_i386 %{shared:-shared} \
> -  %{!shared: \
> -    %{!ibcs: \
> -      %{!static: \
> -	%{rdynamic:-export-dynamic} \
> -	%{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \
> -	%{static:-static}}}"
> -#endif
>  
>  /* A C statement (sans semicolon) to output to the stdio stream
>     FILE the assembler definition of uninitialized global DECL named
> @@ -217,6 +223,18 @@
>  #include <signal.h>
>  #include <sys/ucontext.h>
>  
> +/* Unify sc_* declarations on all platforms */
> +#ifndef sc_eax
> +#define sc_eax eax
> +#define sc_ebx ebx
> +#define sc_ecx ecx
> +#define sc_edx edx
> +#define sc_esi esi
> +#define sc_edi edi
> +#define sc_ebp ebp
> +#define sc_eip eip
> +#endif
> +
>  #define MD_FALLBACK_FRAME_STATE_FOR(CONTEXT, FS, SUCCESS)		\
>    do {									\
>      unsigned char *pc_ = (CONTEXT)->ra;					\
> @@ -245,28 +263,28 @@
>      else								\
>        break;								\
>  									\
> -    new_cfa_ = sc_->esp;						\
> +    new_cfa_ = sc_->sc_esp;						\
>      (FS)->cfa_how = CFA_REG_OFFSET;					\
>      (FS)->cfa_reg = 4;							\
>      (FS)->cfa_offset = new_cfa_ - (long) (CONTEXT)->cfa;		\
>  									\
>      /* The SVR4 register numbering macros aren't usable in libgcc.  */	\
>      (FS)->regs.reg[0].how = REG_SAVED_OFFSET;				\
> -    (FS)->regs.reg[0].loc.offset = (long)&sc_->eax - new_cfa_;		\
> +    (FS)->regs.reg[0].loc.offset = (long)&sc_->sc_eax - new_cfa_;	\
>      (FS)->regs.reg[3].how = REG_SAVED_OFFSET;				\
> -    (FS)->regs.reg[3].loc.offset = (long)&sc_->ebx - new_cfa_;		\
> +    (FS)->regs.reg[3].loc.offset = (long)&sc_->sc_ebx - new_cfa_;	\
>      (FS)->regs.reg[1].how = REG_SAVED_OFFSET;				\
> -    (FS)->regs.reg[1].loc.offset = (long)&sc_->ecx - new_cfa_;		\
> +    (FS)->regs.reg[1].loc.offset = (long)&sc_->sc_ecx - new_cfa_;	\
>      (FS)->regs.reg[2].how = REG_SAVED_OFFSET;				\
> -    (FS)->regs.reg[2].loc.offset = (long)&sc_->edx - new_cfa_;		\
> +    (FS)->regs.reg[2].loc.offset = (long)&sc_->sc_edx - new_cfa_;	\
>      (FS)->regs.reg[6].how = REG_SAVED_OFFSET;				\
> -    (FS)->regs.reg[6].loc.offset = (long)&sc_->esi - new_cfa_;		\
> +    (FS)->regs.reg[6].loc.offset = (long)&sc_->sc_esi - new_cfa_;	\
>      (FS)->regs.reg[7].how = REG_SAVED_OFFSET;				\
> -    (FS)->regs.reg[7].loc.offset = (long)&sc_->edi - new_cfa_;		\
> +    (FS)->regs.reg[7].loc.offset = (long)&sc_->sc_edi - new_cfa_;	\
>      (FS)->regs.reg[5].how = REG_SAVED_OFFSET;				\
> -    (FS)->regs.reg[5].loc.offset = (long)&sc_->ebp - new_cfa_;		\
> +    (FS)->regs.reg[5].loc.offset = (long)&sc_->sc_ebp - new_cfa_;	\
>      (FS)->regs.reg[8].how = REG_SAVED_OFFSET;				\
> -    (FS)->regs.reg[8].loc.offset = (long)&sc_->eip - new_cfa_;		\
> +    (FS)->regs.reg[8].loc.offset = (long)&sc_->sc_eip - new_cfa_;	\
>      (FS)->retaddr_column = 8;						\
>      goto SUCCESS;							\
>    } while (0)
> diff -Nur gcc.old/gcc/config/kfreebsd-gnu.h gcc/gcc/config/kfreebsd-gnu.h
> --- gcc.old/gcc/config/kfreebsd-gnu.h	1970-01-01 01:00:00.000000000 +0100
> +++ gcc/gcc/config/kfreebsd-gnu.h	2004-03-22 20:46:33.000000000 +0100
> @@ -0,0 +1,46 @@
> +/* Definitions for kFreeBSD-based GNU systems with ELF format
> +   Copyright (C) 2004
> +   Free Software Foundation, Inc.
> +   Contributed by Robert Millan.
> +
> +This file is part of GCC.
> +
> +GCC is free software; you can redistribute it and/or modify
> +it under the terms of the GNU General Public License as published by
> +the Free Software Foundation; either version 2, or (at your option)
> +any later version.
> +
> +GCC is distributed in the hope that it will be useful,
> +but WITHOUT ANY WARRANTY; without even the implied warranty of
> +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> +GNU General Public License for more details.
> +
> +You should have received a copy of the GNU General Public License
> +along with GCC; see the file COPYING.  If not, write to
> +the Free Software Foundation, 59 Temple Place - Suite 330,
> +Boston, MA 02111-1307, USA.  */
> +
> +#undef LINUX_TARGET_OS_CPP_BUILTINS    
> +#define LINUX_TARGET_OS_CPP_BUILTINS()		\
> +  do						\
> +    {						\
> +	builtin_define ("__FreeBSD_kernel__");	\
> +	builtin_define ("__GLIBC__");		\
> +	builtin_define_std ("unix");		\
> +	builtin_assert ("system=unix");		\
> +	builtin_assert ("system=posix");	\
> +    }						\
> +  while (0)
> +
> +#define LINK_EMULATION "elf_i386_fbsd"
> +#define DYNAMIC_LINKER "/lib/ld.so.1"
> +
> +/* These must be macros so that i386/linux.h can check for them */
> +#define sc_eax sc_eax
> +#define sc_ebx sc_ebx
> +#define sc_ecx sc_ecx
> +#define sc_edx sc_edx
> +#define sc_esi sc_esi
> +#define sc_edi sc_edi
> +#define sc_ebp sc_ebp
> +#define sc_eip sc_eip
> diff -Nur gcc.old/gcc/config/kfreebsdgnu.h gcc/gcc/config/kfreebsdgnu.h
> --- gcc.old/gcc/config/kfreebsdgnu.h	2003-12-18 03:32:11.000000000 +0100
> +++ gcc/gcc/config/kfreebsdgnu.h	1970-01-01 01:00:00.000000000 +0100
> @@ -1,41 +0,0 @@
> -/* Definitions for GNU/KFreeBSD systems with ELF format.
> -   Copyright (C) 2002 Free Software Foundation, Inc.
> -   Contributed by Bruno Haible.
> -
> -This file is part of GCC.
> -
> -GCC is free software; you can redistribute it and/or modify
> -it under the terms of the GNU General Public License as published by
> -the Free Software Foundation; either version 2, or (at your option)
> -any later version.
> -
> -GCC is distributed in the hope that it will be useful,
> -but WITHOUT ANY WARRANTY; without even the implied warranty of
> -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> -GNU General Public License for more details.
> -
> -You should have received a copy of the GNU General Public License
> -along with GCC; see the file COPYING.  If not, write to
> -the Free Software Foundation, 59 Temple Place - Suite 330,
> -Boston, MA 02111-1307, USA.  */
> -
> -#undef WCHAR_TYPE
> -#define WCHAR_TYPE "int"
> -
> -#undef TARGET_OS_CPP_BUILTINS
> -#define TARGET_OS_CPP_BUILTINS()				\
> -  builtin_define ("__GNU_KFreeBSD__=0");		\
> -  builtin_define ("__gnu_kfreebsd__=0");		\
> -  builtin_define ("__FreeBSD_kernel__=5");		\
> -  builtin_define ("__ELF__");				\
> -  builtin_define_std ("unix");				\
> -  builtin_assert ("system=posix");
> -
> -#undef TARGET_CPU_CPP_BUILTINS
> -#define TARGET_CPU_CPP_BUILTINS()			\
> -  builtin_define ("__i386__");				\
> -  builtin_define_std ("i386");				\
> -  builtin_assert ("cpu=i386");				\
> -  builtin_assert ("machine=i386");
> -
> -/* do {} while (0) */
> diff -Nur gcc.old/gcc/config/knetbsd-gnu.h gcc/gcc/config/knetbsd-gnu.h
> --- gcc.old/gcc/config/knetbsd-gnu.h	1970-01-01 01:00:00.000000000 +0100
> +++ gcc/gcc/config/knetbsd-gnu.h	2004-03-22 20:46:51.000000000 +0100
> @@ -0,0 +1,45 @@
> +/* Definitions for kNetBSD-based GNU systems with ELF format
> +   Copyright (C) 2004
> +   Free Software Foundation, Inc.
> +   Contributed by Robert Millan.
> +
> +This file is part of GCC.
> +
> +GCC is free software; you can redistribute it and/or modify
> +it under the terms of the GNU General Public License as published by
> +the Free Software Foundation; either version 2, or (at your option)
> +any later version.
> +
> +GCC is distributed in the hope that it will be useful,
> +but WITHOUT ANY WARRANTY; without even the implied warranty of
> +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> +GNU General Public License for more details.
> +
> +You should have received a copy of the GNU General Public License
> +along with GCC; see the file COPYING.  If not, write to
> +the Free Software Foundation, 59 Temple Place - Suite 330,
> +Boston, MA 02111-1307, USA.  */
> +
> +#undef LINUX_TARGET_OS_CPP_BUILTINS    
> +#define LINUX_TARGET_OS_CPP_BUILTINS()		\
> +  do						\
> +    {						\
> +	builtin_define ("__NetBSD_kernel__");	\
> +	builtin_define ("__GLIBC__");		\
> +	builtin_define_std ("unix");		\
> +	builtin_assert ("system=unix");		\
> +	builtin_assert ("system=posix");	\
> +    }						\
> +  while (0)
> +
> +#define DYNAMIC_LINKER "/lib/ld.so.1"
> +
> +/* These must be macros so that i386/linux.h can check for them */
> +#define sc_eax sc_eax
> +#define sc_ebx sc_ebx
> +#define sc_ecx sc_ecx
> +#define sc_edx sc_edx
> +#define sc_esi sc_esi
> +#define sc_edi sc_edi
> +#define sc_ebp sc_ebp
> +#define sc_eip sc_eip
> diff -Nur gcc.old/gcc/config/linux.h gcc/gcc/config/linux.h
> --- gcc.old/gcc/config/linux.h	2003-11-29 04:08:10.000000000 +0100
> +++ gcc/gcc/config/linux.h	2004-03-22 20:32:27.000000000 +0100
> @@ -97,6 +97,7 @@
>         %{!p:%{!pg:%{!g*:-lc} %{g*:-lg}}}}"
>  #endif
>  
> +#ifndef LINUX_TARGET_OS_CPP_BUILTINS
>  #define LINUX_TARGET_OS_CPP_BUILTINS()				\
>      do {							\
>  	builtin_define ("__gnu_linux__");			\
> @@ -106,6 +107,7 @@
>  	builtin_assert ("system=unix");				\
>  	builtin_assert ("system=posix");			\
>      } while (0)
> +#endif
>  
>  #if !defined(USE_GNULIBC_1) && defined(HAVE_LD_EH_FRAME_HDR)
>  #define LINK_EH_SPEC "%{!static:--eh-frame-hdr} "
> diff -Nur gcc.old/gcc/config/t-kfreebsd-gnu gcc/gcc/config/t-kfreebsd-gnu
> --- gcc.old/gcc/config/t-kfreebsd-gnu	2003-10-21 11:52:47.000000000 +0200
> +++ gcc/gcc/config/t-kfreebsd-gnu	1970-01-01 01:00:00.000000000 +0100
> @@ -1,16 +0,0 @@
> -# glibc provides a limits.h, which must be combined with gcc's limits.h.
> -LIMITS_H_TEST = true
> -
> -# Compile crtbeginS.o and crtendS.o with pic.
> -CRTSTUFF_T_CFLAGS_S = -fPIC
> -# Compile libgcc2.a with pic.
> -TARGET_LIBGCC2_CFLAGS = -fPIC
> -
> -# Override t-slibgcc-elf-ver to export some libgcc symbols with
> -# the symbol versions that glibc used.
> -SHLIB_MAPFILES += $(srcdir)/config/libgcc-glibc.ver
> -
> -# Use unwind-dw2-fde-glibc
> -LIB2ADDEH = $(srcdir)/unwind-dw2.c $(srcdir)/unwind-dw2-fde-glibc.c \
> -  $(srcdir)/unwind-sjlj.c
> -LIB2ADDEHDEP = unwind.inc unwind-dw2-fde.h unwind-dw2-fde.c
> diff -Nur gcc.old/gcc/config.gcc gcc/gcc/config.gcc
> --- gcc.old/gcc/config.gcc	2004-03-14 18:24:36.000000000 +0100
> +++ gcc/gcc/config.gcc	2004-03-22 20:32:27.000000000 +0100
> @@ -409,21 +409,10 @@
>    esac
>    fbsd_tm_file="${fbsd_tm_file} freebsd-spec.h freebsd.h"
>    ;;
> -*-*-kfreebsd*-gnu)
> -  # Must come before *-*-gnu*
> -  xm_defines=POSIX # needed for cross-compiling from FreeBSD?
> -  extra_parts="crtbegin.o crtbeginS.o crtbeginT.o crtend.o crtendS.o"
> -  # GNU tools are the only tools.
> -  gas=yes
> -  gnu_ld=yes
> -  case ${enable_threads} in
> -    "" | yes | posix) thread_file='posix' ;;
> -  esac
> -  ;;
>  *-*-linux*libc1* | *-*-linux*aout*)
>    # Avoid the generic linux case.
>    ;;
> -*-*-linux* | frv-*-*linux*)
> +*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-knetbsd*-gnu)
>    # Must come before *-*-gnu* (because of *-*-linux-gnu* systems).
>    extra_parts="crtbegin.o crtbeginS.o crtbeginT.o crtend.o crtendS.o"
>    gas=yes
> @@ -919,10 +908,15 @@
>  	tm_file="${tm_file} i386/unix.h i386/bsd.h i386/gas.h dbxcoff.h i386/i386-coff.h"
>  	use_fixproto=yes
>  	;;
> -i[34567]86-*-linux*)	# Intel 80386's running GNU/Linux
> +i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu)
> +			# Intel 80386's running GNU/*
>  			# with ELF format using glibc 2
> -			# aka GNU/Linux C library 6
> -	tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h svr4.h linux.h i386/linux.h"
> +	tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h svr4.h"
> +	case ${target} in
> +	i[34567]86-*-knetbsd*-gnu) tm_file="${tm_file} knetbsd-gnu.h" ;;
> +	i[34567]86-*-kfreebsd*-gnu) tm_file="${tm_file} kfreebsd-gnu.h" ;;
> +	esac
> +	tm_file="${tm_file} linux.h i386/linux.h"
>  	tmake_file="${tmake_file} i386/t-crtstuff"
>  	;;
>  x86_64-*-linux*)
> @@ -930,12 +924,6 @@
>  		 i386/x86-64.h i386/linux64.h"
>  	tmake_file="${tmake_file} i386/t-linux64"
>  	;;
> -i[34567]86-*-kfreebsd*-gnu) # must be before i[34567]86-*-gnu*
> -	tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h svr4.h linux.h i386/linux.h kfreebsdgnu.h i386/kfreebsdgnu.h"
> -	tmake_file="t-slibgcc-elf-ver t-kfreebsd-gnu i386/t-crtstuff"
> -	float_format=i386
> -	use_fixproto=no
> -	;;
>  i[34567]86-*-gnu*)
>  	;;
>  i[34567]86-pc-msdosdjgpp*)
> diff -Nur gcc.old/libtool.m4 gcc/libtool.m4
> --- gcc.old/libtool.m4	2003-11-19 06:29:32.000000000 +0100
> +++ gcc/libtool.m4	2004-03-22 20:32:27.000000000 +0100
> @@ -621,7 +621,7 @@
>    lt_cv_deplibs_check_method=pass_all
>    ;;
>  
> -freebsd* )
> +freebsd* | kfreebsd*-gnu)
>    if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
>      case $host_cpu in
>      i*86 )
> @@ -689,7 +689,7 @@
>    lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so`
>    ;;
>  
> -netbsd*)
> +netbsd* | knetbsd*-gnu)
>    if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
>      [lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$']
>    else
> diff -Nur gcc.old/ltcf-c.sh gcc/ltcf-c.sh
> --- gcc.old/ltcf-c.sh	2003-11-19 06:29:32.000000000 +0100
> +++ gcc/ltcf-c.sh	2004-03-22 20:32:27.000000000 +0100
> @@ -175,7 +175,7 @@
>        $CC $output_objdir/$soname-exp '$lt_cv_cc_dll_switch' -Wl,-e,'$dll_entry' -o $output_objdir/$soname '$ltdll_obj'$libobjs $deplibs $compiler_flags'
>      ;;
>  
> -  netbsd*)
> +  netbsd* | knetbsd*-gnu)
>      if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
>        archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
>        wlarc=
> @@ -442,7 +442,7 @@
>      ;;
>  
>    # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
> -  freebsd*)
> +  freebsd* | kfreebsd*-gnu)
>      archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
>      hardcode_libdir_flag_spec='-R$libdir'
>      hardcode_direct=yes
> @@ -489,7 +489,7 @@
>      link_all_deplibs=yes
>      ;;
>  
> -  netbsd*)
> +  netbsd* | knetbsd*-gnu)
>      if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
>        archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'  # a.out
>      else
> diff -Nur gcc.old/ltcf-cxx.sh gcc/ltcf-cxx.sh
> --- gcc.old/ltcf-cxx.sh	2003-11-19 06:29:32.000000000 +0100
> +++ gcc/ltcf-cxx.sh	2004-03-22 20:32:27.000000000 +0100
> @@ -289,7 +289,7 @@
>      # C++ shared libraries reported to be fairly broken before switch to ELF
>      ld_shlibs=no
>      ;;
> -  freebsd*)
> +  freebsd* | kfreebsd*-gnu)
>      # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF
>      # conventions
>      ld_shlibs=yes
> @@ -449,7 +449,7 @@
>          ;;
>      esac
>      ;;
> -  netbsd*)
> +  netbsd* | knetbsd*-gnu)
>      # NetBSD uses g++ - do we need to do anything?
>      ;;
>    osf3*)
> @@ -804,7 +804,7 @@
>            ;;
>        esac
>        ;;
> -    freebsd*)
> +    freebsd* | kfreebsd*-gnu)
>        # FreeBSD uses GNU C++
>        ;;
>      gnu*)
> diff -Nur gcc.old/ltcf-gcj.sh gcc/ltcf-gcj.sh
> --- gcc.old/ltcf-gcj.sh	2003-11-19 06:29:32.000000000 +0100
> +++ gcc/ltcf-gcj.sh	2004-03-22 20:32:27.000000000 +0100
> @@ -178,7 +178,7 @@
>        $CC $output_objdir/$soname-exp '$lt_cv_cc_dll_switch' -Wl,-e,'$dll_entry' -o $output_objdir/$soname '$ltdll_obj'$libobjs $deplibs $compiler_flags'
>      ;;
>  
> -  netbsd*)
> +  netbsd* | knetbsd*-gnu)
>      if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
>        archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
>        wlarc=
> @@ -445,7 +445,7 @@
>      ;;
>  
>    # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
> -  freebsd*)
> +  freebsd* | kfreebsd*-gnu)
>      archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
>      hardcode_libdir_flag_spec='-R$libdir'
>      hardcode_direct=yes
> @@ -476,7 +476,7 @@
>      link_all_deplibs=yes
>      ;;
>  
> -  netbsd*)
> +  netbsd* | knetbsd*-gnu)
>      if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
>        archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'  # a.out
>      else
> diff -Nur gcc.old/ltconfig gcc/ltconfig
> --- gcc.old/ltconfig	2004-03-14 18:24:33.000000000 +0100
> +++ gcc/ltconfig	2004-03-22 20:32:27.000000000 +0100
> @@ -1168,6 +1168,17 @@
>    hardcode_into_libs=yes
>    ;;
>  
> +kfreebsd*-gnu | knetbsd*-gnu)
> +  version_type=linux
> +  need_lib_prefix=no
> +  need_version=no
> +  library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so${major} ${libname}.so'
> +  soname_spec='${libname}${release}.so$major'
> +  shlibpath_var=LD_LIBRARY_PATH
> +  shlibpath_overrides_runpath=yes
> +  hardcode_into_libs=yes
> +  ;;
> +
>  hpux9* | hpux10* | hpux11*)
>    # Give a soname corresponding to the major version so that dld.sl refuses to
>    # link against other versions.

> make[1]: Entering directory `/home/rmh/porting/tmp/pending/gcc-3.4/build/gcc'
> Making a new config file...
> echo "set tmpdir /home/rmh/porting/tmp/pending/gcc-3.4/build/gcc/testsuite" >> ./tmp0
> test -d testsuite || mkdir testsuite
> rm -f testsuite/site.exp
> sed '/set tmpdir/ s|testsuite|testsuite|' < site.exp > testsuite/site.exp
> (rootme=`${PWDCMD-pwd}`; export rootme; \
> srcdir=`cd ../../gcc/gcc; ${PWDCMD-pwd}` ; export srcdir ; \
> cd testsuite; \
> EXPECT=expect ; export EXPECT ; \
> if [ -f ${rootme}/../expect/expect ] ; then  \
>    TCL_LIBRARY=`cd .. ; cd ../../gcc/gcc/../tcl/library ; ${PWDCMD-pwd}` ; \
>     export TCL_LIBRARY ; fi ; \
> runtest --tool gcc )
> Test Run By rmh on Mon Mar 22 21:52:35 2004
> Native configuration is i386-unknown-kfreebsd5.1-gnu
> 
> 		=== gcc tests ===
> 
> Schedule of variations:
>     unix
> 
> Running target unix
> Using /usr/share/dejagnu/baseboards/unix.exp as board description file for target.
> Using /usr/share/dejagnu/config/unix.exp as generic interface file for target.
> Using /home/rmh/porting/tmp/pending/gcc-3.4/gcc/gcc/testsuite/config/default.exp as tool-and-target-specific interface file.
> Running /home/rmh/porting/tmp/pending/gcc-3.4/gcc/gcc/testsuite/gcc.c-torture/compile/compile.exp ...
> FAIL: gcc.c-torture/compile/930621-1.c  -O3 -fomit-frame-pointer  (test for excess errors)
> FAIL: gcc.c-torture/compile/930621-1.c  -O3 -fomit-frame-pointer -funroll-loops  (test for excess errors)
> FAIL: gcc.c-torture/compile/930621-1.c  -O3 -fomit-frame-pointer -funroll-all-loops -finline-functions  (test for excess errors)
> FAIL: gcc.c-torture/compile/930621-1.c  -O3 -g  (test for excess errors)
> Running /home/rmh/porting/tmp/pending/gcc-3.4/gcc/gcc/testsuite/gcc.c-torture/execute/builtins/builtins.exp ...
> Running /home/rmh/porting/tmp/pending/gcc-3.4/gcc/gcc/testsuite/gcc.c-torture/execute/execute.exp ...
> FAIL: gcc.c-torture/execute/va-arg-25.c execution,  -Os 
> Running /home/rmh/porting/tmp/pending/gcc-3.4/gcc/gcc/testsuite/gcc.c-torture/execute/ieee/ieee.exp ...
> Running /home/rmh/porting/tmp/pending/gcc-3.4/gcc/gcc/testsuite/gcc.c-torture/unsorted/unsorted.exp ...
> Running /home/rmh/porting/tmp/pending/gcc-3.4/gcc/gcc/testsuite/gcc.dg/charset/charset.exp ...
> Running /home/rmh/porting/tmp/pending/gcc-3.4/gcc/gcc/testsuite/gcc.dg/compat/compat.exp ...
> Running /home/rmh/porting/tmp/pending/gcc-3.4/gcc/gcc/testsuite/gcc.dg/cpp/cpp.exp ...
> Running /home/rmh/porting/tmp/pending/gcc-3.4/gcc/gcc/testsuite/gcc.dg/cpp/trad/trad.exp ...
> Running /home/rmh/porting/tmp/pending/gcc-3.4/gcc/gcc/testsuite/gcc.dg/debug/debug.exp ...
> Running /home/rmh/porting/tmp/pending/gcc-3.4/gcc/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf2.exp ...
> Running /home/rmh/porting/tmp/pending/gcc-3.4/gcc/gcc/testsuite/gcc.dg/dg.exp ...
> FAIL: gcc.dg/20020523-1.c (test for excess errors)
> WARNING: gcc.dg/20020523-1.c compilation failed to produce executable
> FAIL: gcc.dg/20020523-2.c (test for excess errors)
> WARNING: gcc.dg/20020523-2.c compilation failed to produce executable
> FAIL: gcc.dg/const-elim-1.c scan-assembler-not L\\$?C[^A-Z]
> Running /home/rmh/porting/tmp/pending/gcc-3.4/gcc/gcc/testsuite/gcc.dg/format/format.exp ...
> Running /home/rmh/porting/tmp/pending/gcc-3.4/gcc/gcc/testsuite/gcc.dg/noncompile/noncompile.exp ...
> Running /home/rmh/porting/tmp/pending/gcc-3.4/gcc/gcc/testsuite/gcc.dg/pch/pch.exp ...
> Running /home/rmh/porting/tmp/pending/gcc-3.4/gcc/gcc/testsuite/gcc.dg/special/mips-abi.exp ...
> Running /home/rmh/porting/tmp/pending/gcc-3.4/gcc/gcc/testsuite/gcc.dg/special/special.exp ...
> Running /home/rmh/porting/tmp/pending/gcc-3.4/gcc/gcc/testsuite/gcc.dg/tls/tls.exp ...
> Running /home/rmh/porting/tmp/pending/gcc-3.4/gcc/gcc/testsuite/gcc.dg/torture/dg-torture.exp ...
> Running /home/rmh/porting/tmp/pending/gcc-3.4/gcc/gcc/testsuite/gcc.dg/weak/weak.exp ...
> Running /home/rmh/porting/tmp/pending/gcc-3.4/gcc/gcc/testsuite/gcc.misc-tests/acker1.exp ...
> Running /home/rmh/porting/tmp/pending/gcc-3.4/gcc/gcc/testsuite/gcc.misc-tests/arm-isr.exp ...
> Running /home/rmh/porting/tmp/pending/gcc-3.4/gcc/gcc/testsuite/gcc.misc-tests/bprob.exp ...
> Running /home/rmh/porting/tmp/pending/gcc-3.4/gcc/gcc/testsuite/gcc.misc-tests/dg-test.exp ...
> Running /home/rmh/porting/tmp/pending/gcc-3.4/gcc/gcc/testsuite/gcc.misc-tests/dhry.exp ...
> Running /home/rmh/porting/tmp/pending/gcc-3.4/gcc/gcc/testsuite/gcc.misc-tests/gcov.exp ...
> Running /home/rmh/porting/tmp/pending/gcc-3.4/gcc/gcc/testsuite/gcc.misc-tests/i386-prefetch.exp ...
> Running /home/rmh/porting/tmp/pending/gcc-3.4/gcc/gcc/testsuite/gcc.misc-tests/linkage.exp ...
> Running /home/rmh/porting/tmp/pending/gcc-3.4/gcc/gcc/testsuite/gcc.misc-tests/matrix1.exp ...
> Running /home/rmh/porting/tmp/pending/gcc-3.4/gcc/gcc/testsuite/gcc.misc-tests/mg.exp ...
> Running /home/rmh/porting/tmp/pending/gcc-3.4/gcc/gcc/testsuite/gcc.misc-tests/sieve.exp ...
> Running /home/rmh/porting/tmp/pending/gcc-3.4/gcc/gcc/testsuite/gcc.misc-tests/sort2.exp ...
> 
> 		=== gcc Summary ===
> 
> # of expected passes		24873
> # of unexpected failures	8
> # of expected failures		64
> # of untested testcases		7
> # of unsupported tests		202
> /home/rmh/porting/tmp/pending/gcc-3.4/build/gcc/xgcc version 3.5.0 20040314 (experimental)
> 
> make[1]: [check-gcc] Error 1 (ignored)
> make[1]: Leaving directory `/home/rmh/porting/tmp/pending/gcc-3.4/build/gcc'
> make[1]: Entering directory `/home/rmh/porting/tmp/pending/gcc-3.4/build/intl'
> make[1]: Nothing to be done for `check'.
> make[1]: Leaving directory `/home/rmh/porting/tmp/pending/gcc-3.4/build/intl'
> make[1]: Entering directory `/home/rmh/porting/tmp/pending/gcc-3.4/build/libiberty'
> make[2]: Entering directory `/home/rmh/porting/tmp/pending/gcc-3.4/build/libiberty/testsuite'
> gcc -DHAVE_CONFIG_H -g -O2 -I.. -I../../../gcc/libiberty/testsuite/../../include  -o test-demangle \
> 	../../../gcc/libiberty/testsuite/test-demangle.c ../libiberty.a
> ./test-demangle < ../../../gcc/libiberty/testsuite/demangle-expected
> ./test-demangle: 745 tests, 0 failures
> make[2]: Leaving directory `/home/rmh/porting/tmp/pending/gcc-3.4/build/libiberty/testsuite'
> make[1]: Leaving directory `/home/rmh/porting/tmp/pending/gcc-3.4/build/libiberty'


-- 
Robert Millan

"[..] but the delight and pride of Aule is in the deed of making, and in the
thing made, and neither in possession nor in his own mastery; wherefore he
gives and hoards not, and is free from care, passing ever on to some new work."

 -- J.R.R.T., Ainulindale (Silmarillion)

Attachment: kbsd-gnu.diff
Description: Text document

Attachment: kbsd-gnu.log
Description: Text document


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]