public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* [PATCH] Fix NetBSD bootstrap
@ 2016-11-16 17:13 Krister Walfridsson
  2016-11-16 17:57 ` Bernd Schmidt
                   ` (2 more replies)
  0 siblings, 3 replies; 7+ messages in thread
From: Krister Walfridsson @ 2016-11-16 17:13 UTC (permalink / raw)
  To: gcc-patches

[-- Attachment #1: Type: TEXT/PLAIN, Size: 778 bytes --]

NetBSD fails bootstrap with
   stdatomic.h:55:17: error: unknown type name '__INT_LEAST8_TYPE__'
This is fixed by the following patch (only i386 and x86_64 for now. I'll
do the other ports after fixing some more issues -- the NetBSD support is
rather broken at the moment...)

I'm the NetBSD maintainer, so I belive I don't need approval to commit 
this. But I have been absent for a long time, so it makes sense for 
someone to review at least this first patch.

Bootstrapped and tested on i386-unknown-netbsdelf6.1 and
x86_64-unknown-netbsd6.1.

OK to commit?

    /Krister


2016-11-16  Krister Walfridsson  <krister.walfridsson@gmail.com>

 	* config/netbsd-stdint.h: New.
 	* config.gcc (i[34567]86-*-netbsd): Add netbsd-stdint.h to tm_file.
 	(x86_64-*-netbsd*): Likewise.

[-- Attachment #2: Type: TEXT/PLAIN, Size: 3540 bytes --]

Index: gcc/config/netbsd-stdint.h
===================================================================
--- gcc/config/netbsd-stdint.h	(nonexistent)
+++ gcc/config/netbsd-stdint.h	(working copy)
@@ -0,0 +1,55 @@
+/* Definitions for <stdint.h> types for NetBSD systems.
+   Copyright (C) 2016 Free Software Foundation, Inc.
+
+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   INT8_TYPE
+#define INT_LEAST16_TYPE  INT16_TYPE
+#define INT_LEAST32_TYPE  INT32_TYPE
+#define INT_LEAST64_TYPE  INT64_TYPE
+#define UINT_LEAST8_TYPE  UINT8_TYPE
+#define UINT_LEAST16_TYPE UINT16_TYPE
+#define UINT_LEAST32_TYPE UINT32_TYPE
+#define UINT_LEAST64_TYPE UINT64_TYPE
+
+#define INT_FAST8_TYPE    INT32_TYPE
+#define INT_FAST16_TYPE   INT32_TYPE
+#define INT_FAST32_TYPE   INT32_TYPE
+#define INT_FAST64_TYPE   INT64_TYPE
+#define UINT_FAST8_TYPE   UINT32_TYPE
+#define UINT_FAST16_TYPE  UINT32_TYPE
+#define UINT_FAST32_TYPE  UINT32_TYPE
+#define UINT_FAST64_TYPE  UINT64_TYPE
+
+#define INTPTR_TYPE       (LONG_TYPE_SIZE == 64 ?  INT64_TYPE :  INT32_TYPE)
+#define UINTPTR_TYPE      (LONG_TYPE_SIZE == 64 ? UINT64_TYPE : UINT32_TYPE)
Index: gcc/config.gcc
===================================================================
--- gcc/config.gcc	(revision 242350)
+++ gcc/config.gcc	(working copy)
@@ -1455,11 +1455,11 @@
 	tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h ${fbsd_tm_file} i386/x86-64.h i386/freebsd.h i386/freebsd64.h"
 	;;
 i[34567]86-*-netbsdelf*)
-	tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h netbsd.h netbsd-elf.h i386/netbsd-elf.h"
+	tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h netbsd.h netbsd-stdint.h netbsd-elf.h i386/netbsd-elf.h"
 	extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
 	;;
 x86_64-*-netbsd*)
-	tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h netbsd.h netbsd-elf.h i386/x86-64.h i386/netbsd64.h"
+	tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h netbsd.h netbsd-stdint.h netbsd-elf.h i386/x86-64.h i386/netbsd64.h"
 	extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
 	;;
 i[34567]86-*-openbsd*)

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] Fix NetBSD bootstrap
  2016-11-16 17:13 [PATCH] Fix NetBSD bootstrap Krister Walfridsson
@ 2016-11-16 17:57 ` Bernd Schmidt
  2016-11-16 19:09 ` Mike Stump
  2016-11-17  0:50 ` Joseph Myers
  2 siblings, 0 replies; 7+ messages in thread
From: Bernd Schmidt @ 2016-11-16 17:57 UTC (permalink / raw)
  To: Krister Walfridsson, gcc-patches

On 11/16/2016 06:12 PM, Krister Walfridsson wrote:
> I'm the NetBSD maintainer, so I belive I don't need approval to commit
> this. But I have been absent for a long time, so it makes sense for
> someone to review at least this first patch.
>
> Bootstrapped and tested on i386-unknown-netbsdelf6.1 and
> x86_64-unknown-netbsd6.1.
>
> OK to commit?

I'll take the position that you know best and do not need approval from 
someone else.


Bernd

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] Fix NetBSD bootstrap
  2016-11-16 17:13 [PATCH] Fix NetBSD bootstrap Krister Walfridsson
  2016-11-16 17:57 ` Bernd Schmidt
@ 2016-11-16 19:09 ` Mike Stump
  2016-11-16 19:24   ` Krister Walfridsson
  2016-11-17  0:50 ` Joseph Myers
  2 siblings, 1 reply; 7+ messages in thread
From: Mike Stump @ 2016-11-16 19:09 UTC (permalink / raw)
  To: Krister Walfridsson; +Cc: gcc-patches


> On Nov 16, 2016, at 9:12 AM, Krister Walfridsson <krister.walfridsson@gmail.com> wrote:
> 
> NetBSD fails bootstrap with
>  stdatomic.h:55:17: error: unknown type name '__INT_LEAST8_TYPE__'
> This is fixed by the following patch (only i386 and x86_64 for now. I'll
> do the other ports after fixing some more issues -- the NetBSD support is
> rather broken at the moment...)
> 
> I'm the NetBSD maintainer, so I belive I don't need approval to commit this. But I have been absent for a long time, so it makes sense for someone to review at least this first patch.

Looks reasonable.  The biggest issue would be if any of those values changed through time, and the current version works for older netbsd releases, the patch could break them.  Of course, I don't have any visibility into how any of those values might have changed through time.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] Fix NetBSD bootstrap
  2016-11-16 19:09 ` Mike Stump
@ 2016-11-16 19:24   ` Krister Walfridsson
  2016-11-16 21:45     ` Mike Stump
  0 siblings, 1 reply; 7+ messages in thread
From: Krister Walfridsson @ 2016-11-16 19:24 UTC (permalink / raw)
  To: Mike Stump; +Cc: Krister Walfridsson, gcc-patches

On Wed, 16 Nov 2016, Mike Stump wrote:

> Looks reasonable.  The biggest issue would be if any of those values 
> changed through time, and the current version works for older netbsd 
> releases, the patch could break them.  Of course, I don't have any 
> visibility into how any of those values might have changed through time.

This should not be an issue in this case, so I'll commit the patch. 
Thanks!

    /Krister

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] Fix NetBSD bootstrap
  2016-11-16 19:24   ` Krister Walfridsson
@ 2016-11-16 21:45     ` Mike Stump
  0 siblings, 0 replies; 7+ messages in thread
From: Mike Stump @ 2016-11-16 21:45 UTC (permalink / raw)
  To: Krister Walfridsson; +Cc: gcc-patches


> On Nov 16, 2016, at 11:23 AM, Krister Walfridsson <krister.walfridsson@gmail.com> wrote:
> 
> On Wed, 16 Nov 2016, Mike Stump wrote:
> 
>> Looks reasonable.  The biggest issue would be if any of those values changed through time, and the current version works for older netbsd releases, the patch could break them.  Of course, I don't have any visibility into how any of those values might have changed through time.
> 
> This should not be an issue in this case, so I'll commit the patch. Thanks!

Oh, I don't know if you are tracking release branches so that previous releases just work, but if you are, you can keep track of patches that would need to be back ported for a release branch to work nicely.  As you finish with getting things in shape, you can then go back and see about back porting that work, if you are interested in that.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] Fix NetBSD bootstrap
  2016-11-16 17:13 [PATCH] Fix NetBSD bootstrap Krister Walfridsson
  2016-11-16 17:57 ` Bernd Schmidt
  2016-11-16 19:09 ` Mike Stump
@ 2016-11-17  0:50 ` Joseph Myers
  2016-11-19 11:21   ` Krister Walfridsson
  2 siblings, 1 reply; 7+ messages in thread
From: Joseph Myers @ 2016-11-17  0:50 UTC (permalink / raw)
  To: Krister Walfridsson; +Cc: gcc-patches

I'll presume you know best about the choices of stdint.h types.  You may 
wish to consider what the correct value of use_gcc_stdint is - the 
default "none" (rely on the system's header), or "wrap" (use GCC's header 
in freestanding mode) or "provide" (always use GCC's header).

Note that GCC's header includes support for TS 18661-1 integer width 
macros, and the testsuite verifies these work in freestanding mode.  So if 
you use "none" but your system's header lacks support for these macros, 
you'll have test failures.

-- 
Joseph S. Myers
joseph@codesourcery.com

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] Fix NetBSD bootstrap
  2016-11-17  0:50 ` Joseph Myers
@ 2016-11-19 11:21   ` Krister Walfridsson
  0 siblings, 0 replies; 7+ messages in thread
From: Krister Walfridsson @ 2016-11-19 11:21 UTC (permalink / raw)
  To: Joseph Myers; +Cc: gcc-patches

On Thu, 17 Nov 2016, Joseph Myers wrote:

> I'll presume you know best about the choices of stdint.h types.  You may
> wish to consider what the correct value of use_gcc_stdint is - the
> default "none" (rely on the system's header), or "wrap" (use GCC's header
> in freestanding mode) or "provide" (always use GCC's header).

I committed the following to set it to "wrap" (which is consistent with 
how the other BSDs handle it).

Bootstrapped and tested on x86_64-unknown-netbsd6.1.

    /Krister


2016-11-19  Krister Walfridsson  <krister.walfridsson@gmail.com>

 	* config.gcc (*-*-netbsd): Set use_gcc_stdint=wrap.



Index: gcc/config.gcc
===================================================================
--- gcc/config.gcc	(revision 242620)
+++ gcc/config.gcc	(revision 242621)
@@ -768,6 +768,7 @@
    tmake_file="t-slibgcc"
    gas=yes
    gnu_ld=yes
+  use_gcc_stdint=wrap

    # NetBSD 2.0 and later get POSIX threads enabled by default.
    # Allow them to be explicitly enabled on any other version.

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2016-11-19 11:21 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-11-16 17:13 [PATCH] Fix NetBSD bootstrap Krister Walfridsson
2016-11-16 17:57 ` Bernd Schmidt
2016-11-16 19:09 ` Mike Stump
2016-11-16 19:24   ` Krister Walfridsson
2016-11-16 21:45     ` Mike Stump
2016-11-17  0:50 ` Joseph Myers
2016-11-19 11:21   ` Krister Walfridsson

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).