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] stdint.h support for FreeBSD (was: (Broken)...)


Approved.  Thank you for all the work on this issue Gerald. -Loren

On Sun, May 31, 2009 at 2:36 PM, Gerald Pfeifer <gerald@pfeifer.com> wrote:
> Note the changed subject. ;-) ?Patch for approval below.
>
> On Sat, 30 May 2009, Richard Guenther wrote:
>> No, do
>>
>> #define INT16_TYPE ? ? ? ?"short int"
>
> On Sat, 30 May 2009, Joseph S. Myers wrote:
>> No, you should use "short int", as described in tm.texi.
>
> That did the job, indeed, though tm.texi wasn't immediate to me on
> this. ?Thanks for your quick feedback.
>
> This patch fixes the following on i386-unknown-freebsd7.1
>
> ?FAIL: gcc.dg/c99-stdint-2.c (test for excess errors)
> ?FAIL: gcc.dg/c99-stdint-5.c (test for excess errors)
> ?FAIL: gcc.dg/c99-stdint-6.c (test for excess errors)
> ?FAIL: gcc.dg/c99-stdint-8.c (test for excess errors)
>
> and brings Fortran from
>
> ?# of expected passes ? ? ? ? ?30269
> ?# of unexpected failures ? ? ?19
>
> to
> ?# of expected passes ? ? ? ? ?30303
> ?# of unexpected failures ? ? ?1
>
>
> Okay for trunk?
>
> Gerald
>
> 2009-05-31 ?Gerald Pfeifer ?<gerald@pfeifer.com>
>
> ? ? ? ?* config/freebsd-stdint.h: New file.
> ? ? ? ?* config.gcc (*-*-freebsd): Set use_gcc_stdint=wrap.
> ? ? ? ?Add freebsd-stdint.h to tm_file.
>
> Index: config.gcc
> ===================================================================
> --- config.gcc ?(revision 148012)
> +++ config.gcc ?(working copy)
> @@ -475,7 +475,8 @@
> ? ? ? exit 1
> ? ? ? ;;
> ? esac
> - ?fbsd_tm_file="${fbsd_tm_file} freebsd-spec.h freebsd.h"
> + ?fbsd_tm_file="${fbsd_tm_file} freebsd-spec.h freebsd.h freebsd-stdint.h"
> + ?use_gcc_stdint=wrap
> ? ;;
> ?*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu)
> ? extra_parts="crtbegin.o crtbeginS.o crtbeginT.o crtend.o crtendS.o"
> Index: config/freebsd-stdint.h
> ===================================================================
> --- config/freebsd-stdint.h ? ? (revision 0)
> +++ config/freebsd-stdint.h ? ? (revision 0)
> @@ -0,0 +1,56 @@
> +/* Definitions for <stdint.h> types for FreeBSD systems.
> + ? Copyright (C) 2009 Free Software Foundation, Inc.
> + ? Contributed by Gerald Pfeifer <gerald@pfeifer.com>.
> +
> +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 3, 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.
> +
> +Under Section 7 of GPL version 3, you are granted additional
> +permissions described in the GCC Runtime Library Exception, version
> +3.1, as published by the Free Software Foundation.
> +
> +You should have received a copy of the GNU General Public License and
> +a copy of the GCC Runtime Library Exception along with this program;
> +see the files COPYING3 and COPYING.RUNTIME respectively. ?If not, see
> +<http://www.gnu.org/licenses/>. ?*/
> +
> +#define SIG_ATOMIC_TYPE ? "int"
> +
> +#define INT8_TYPE ? ? ? ? "signed char"
> +#define INT16_TYPE ? ? ? ?"short int"
> +#define INT32_TYPE ? ? ? ?"int"
> +#define INT64_TYPE ? ? ? ?(LONG_TYPE_SIZE == 64 ? "long int" : "long long int")
> +#define UINT8_TYPE ? ? ? ?"unsigned char"
> +#define UINT16_TYPE ? ? ? "short unsigned int"
> +#define UINT32_TYPE ? ? ? "unsigned int"
> +#define UINT64_TYPE ? ? ? (LONG_TYPE_SIZE == 64 ? "long unsigned int" : "long long unsigned int")
> +
> +#define INT_LEAST8_TYPE ? "signed char"
> +#define INT_LEAST16_TYPE ?"short int"
> +#define INT_LEAST32_TYPE ?"int"
> +#define INT_LEAST64_TYPE ?(LONG_TYPE_SIZE == 64 ? "long int" : "long long int")
> +#define UINT_LEAST8_TYPE ?"unsigned char"
> +#define UINT_LEAST16_TYPE "short unsigned int"
> +#define UINT_LEAST32_TYPE "unsigned int"
> +#define UINT_LEAST64_TYPE (LONG_TYPE_SIZE == 64 ? "long unsigned int" : "long long unsigned int")
> +
> +#define INT_FAST8_TYPE ? ?"int"
> +#define INT_FAST16_TYPE ? "int"
> +#define INT_FAST32_TYPE ? "int"
> +#define INT_FAST64_TYPE ? (LONG_TYPE_SIZE == 64 ? "long int" : "long long int")
> +#define UINT_FAST8_TYPE ? "unsigned int"
> +#define UINT_FAST16_TYPE ?"unsigned int"
> +#define UINT_FAST32_TYPE ?"unsigned int"
> +#define UINT_FAST64_TYPE ?(LONG_TYPE_SIZE == 64 ? "long unsigned int" : "long long unsigned int")
> +
> +#define INTPTR_TYPE ? ? ? (LONG_TYPE_SIZE == 64 ? "long int" : "int")
> +#define UINTPTR_TYPE ? ? ?(LONG_TYPE_SIZE == 64 ? "long unsigned int" : "unsigned int")
>


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