diff mbox series

add glibc-stdint.h to vax and lm32 linux target (PR target/105525)

Message ID 20230428174524.1006324-1-mikpelinux@gmail.com
State New
Headers show
Series add glibc-stdint.h to vax and lm32 linux target (PR target/105525) | expand

Commit Message

Mikael Pettersson April 28, 2023, 5:45 p.m. UTC
PR target/105525 is a build regression for the vax and lm32 linux
targets present in gcc-12/13/head, where the builds fail due to
unsatisfied references to __INTPTR_TYPE__ and __UINTPTR_TYPE__,
caused by these two targets failing to provide glibc-stdint.h.

Fixed thusly, tested by building crosses, which now succeeds.

Ok for trunk? (Note I don't have commit rights.)

2023-04-28  Mikael Pettersson  <mikpelinux@gmail.com>

	PR target/105525
	* config.gcc (vax-*-linux*): Add glibc-stdint.h.
	(lm32-*-uclinux*): Likewise.
---
 gcc/config.gcc | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

Jeff Law April 29, 2023, 4:58 p.m. UTC | #1
On 4/28/23 11:45, Mikael Pettersson via Gcc-patches wrote:
> PR target/105525 is a build regression for the vax and lm32 linux
> targets present in gcc-12/13/head, where the builds fail due to
> unsatisfied references to __INTPTR_TYPE__ and __UINTPTR_TYPE__,
> caused by these two targets failing to provide glibc-stdint.h.
> 
> Fixed thusly, tested by building crosses, which now succeeds.
> 
> Ok for trunk? (Note I don't have commit rights.)
> 
> 2023-04-28  Mikael Pettersson<mikpelinux@gmail.com>
> 
> 	PR target/105525
> 	* config.gcc (vax-*-linux*): Add glibc-stdint.h.
> 	(lm32-*-uclinux*): Likewise.
Thanks.  I've pushed this to the trunk.
jeff
Maciej W. Rozycki May 19, 2023, 12:06 p.m. UTC | #2
On Sat, 29 Apr 2023, Jeff Law via Gcc-patches wrote:

> > PR target/105525 is a build regression for the vax and lm32 linux
> > targets present in gcc-12/13/head, where the builds fail due to
> > unsatisfied references to __INTPTR_TYPE__ and __UINTPTR_TYPE__,
> > caused by these two targets failing to provide glibc-stdint.h.
> > 
> > Fixed thusly, tested by building crosses, which now succeeds.
> > 
> > Ok for trunk? (Note I don't have commit rights.)
> > 
> > 2023-04-28  Mikael Pettersson<mikpelinux@gmail.com>
> > 
> > 	PR target/105525
> > 	* config.gcc (vax-*-linux*): Add glibc-stdint.h.
> > 	(lm32-*-uclinux*): Likewise.
> Thanks.  I've pushed this to the trunk.

 Hmm, I find it quite insteresting and indeed encouraging that someone 
actually verifies our VAX/Linux target.

 Mikael, how do you actually verify it however?

 I'm asking because while I did a glibc port for VAX/Linux (including VAX 
floating-point format support), it was many years ago and for LinuxThreads 
configuration only (hence glibc 2.4 only), which I suspect may not be 
supported by GCC anymore.  And it has never made its way upstream, because 
we'd have to land Linux kernel bits there first and that effort has 
stalled.

 I can still boot that old stuff on my VAX machine, but the userland is 
minimal and somewhat unstable as things sometimes crash or otherwise 
behave in a weird way.  I do have working `bash' and more importantly 
`gdbserver' binaries though.

  Maciej
Mikael Pettersson May 19, 2023, 1:59 p.m. UTC | #3
On Fri, May 19, 2023 at 2:06 PM Maciej W. Rozycki <macro@orcam.me.uk> wrote:
>
> On Sat, 29 Apr 2023, Jeff Law via Gcc-patches wrote:
>
> > > PR target/105525 is a build regression for the vax and lm32 linux
> > > targets present in gcc-12/13/head, where the builds fail due to
> > > unsatisfied references to __INTPTR_TYPE__ and __UINTPTR_TYPE__,
> > > caused by these two targets failing to provide glibc-stdint.h.
> > >
> > > Fixed thusly, tested by building crosses, which now succeeds.
> > >
> > > Ok for trunk? (Note I don't have commit rights.)
> > >
> > > 2023-04-28  Mikael Pettersson<mikpelinux@gmail.com>
> > >
> > >     PR target/105525
> > >     * config.gcc (vax-*-linux*): Add glibc-stdint.h.
> > >     (lm32-*-uclinux*): Likewise.
> > Thanks.  I've pushed this to the trunk.
>
>  Hmm, I find it quite insteresting and indeed encouraging that someone
> actually verifies our VAX/Linux target.
>
>  Mikael, how do you actually verify it however?

My vax builds are only cross-compilers without kernel headers or libc.

The background is that I maintain a script to build GCC-based crosses to
as many targets as I can, currently it supports 78 distinct processors and
82 triplets (four processors have multiple triplets). I only check that I can
build the toolchains (full linux-gnu ones where possible).

/Mikael

>  I'm asking because while I did a glibc port for VAX/Linux (including VAX
> floating-point format support), it was many years ago and for LinuxThreads
> configuration only (hence glibc 2.4 only), which I suspect may not be
> supported by GCC anymore.  And it has never made its way upstream, because
> we'd have to land Linux kernel bits there first and that effort has
> stalled.
>
>  I can still boot that old stuff on my VAX machine, but the userland is
> minimal and somewhat unstable as things sometimes crash or otherwise
> behave in a weird way.  I do have working `bash' and more importantly
> `gdbserver' binaries though.
>
>   Maciej
Maciej W. Rozycki May 22, 2023, 1:10 p.m. UTC | #4
On Fri, 19 May 2023, Mikael Pettersson wrote:

> >  Hmm, I find it quite insteresting and indeed encouraging that someone
> > actually verifies our VAX/Linux target.
> >
> >  Mikael, how do you actually verify it however?
> 
> My vax builds are only cross-compilers without kernel headers or libc.

 Hmm, interesting, I wasn't aware you could actually build stage 1 GCC 
without target headers nowadays.

 When I tried it previously, it failed, and I had to come up with a hack 
to make glibc's `make install-headers' work, as ordinarily it requires a 
target compiler, making it a chicken-and-egg problem.

> The background is that I maintain a script to build GCC-based crosses to
> as many targets as I can, currently it supports 78 distinct processors and
> 82 triplets (four processors have multiple triplets). I only check that I can
> build the toolchains (full linux-gnu ones where possible).

 Great work, thanks!

  Maciej
Jan-Benedict Glaw May 22, 2023, 1:57 p.m. UTC | #5
Hi!

On Mon, 2023-05-22 14:10:48 +0100, Maciej W. Rozycki <macro@orcam.me.uk> wrote:
> On Fri, 19 May 2023, Mikael Pettersson wrote:
> > The background is that I maintain a script to build GCC-based crosses to
> > as many targets as I can, currently it supports 78 distinct processors and
> > 82 triplets (four processors have multiple triplets). I only check that I can
> > build the toolchains (full linux-gnu ones where possible).
> 
>  Great work, thanks!

I'd be very much interested in running your script as one build
variant for my http://toolchain.lug-owl.de/ efforts. Is it available
somewhere? That would be nice!

MfG, JBG

--
Mikael Pettersson May 22, 2023, 3:25 p.m. UTC | #6
On Mon, May 22, 2023 at 3:57 PM Jan-Benedict Glaw <jbglaw@lug-owl.de> wrote:
>
> Hi!
>
> On Mon, 2023-05-22 14:10:48 +0100, Maciej W. Rozycki <macro@orcam.me.uk> wrote:
> > On Fri, 19 May 2023, Mikael Pettersson wrote:
> > > The background is that I maintain a script to build GCC-based crosses to
> > > as many targets as I can, currently it supports 78 distinct processors and
> > > 82 triplets (four processors have multiple triplets). I only check that I can
> > > build the toolchains (full linux-gnu ones where possible).
> >
> >  Great work, thanks!
>
> I'd be very much interested in running your script as one build
> variant for my http://toolchain.lug-owl.de/ efforts. Is it available
> somewhere? That would be nice!

The script is publicly available as https://github.com/mikpe/buildcross.git.
Usage for actively maintained toolchains is pretty easy. For example, to build
a cross to sparc64-unknown-linux-gnu you just run

    buildcross -jN sparc64

and it will leave the toolchain in cross-sparc64. (Other bits will
land in downloads/,
sources/, and host-tools/.)

Many older targets require older gcc versions to even build, and may
not work well
as 64-bit builds, so for those the operator needs to provide overrides
via the environment,
see e.g. the comments for the "a29k" target. None of that is automated, sorry.

If you're only interested in linux-gnu toolchains for actively
maintained targets there's
a build-many-glibcs.py script in glibc that should be a better fit.

/Mikael
Jan-Benedict Glaw May 22, 2023, 4 p.m. UTC | #7
Hi Mikael!

On Mon, 2023-05-22 17:25:39 +0200, Mikael Pettersson <mikpelinux@gmail.com> wrote:
> On Mon, May 22, 2023 at 3:57 PM Jan-Benedict Glaw <jbglaw@lug-owl.de> wrote:
> > On Mon, 2023-05-22 14:10:48 +0100, Maciej W. Rozycki <macro@orcam.me.uk> wrote:
> > > On Fri, 19 May 2023, Mikael Pettersson wrote:
> > > > The background is that I maintain a script to build GCC-based crosses to
> > > > as many targets as I can, currently it supports 78 distinct processors and
> > > > 82 triplets (four processors have multiple triplets). I only check that I can
> > > > build the toolchains (full linux-gnu ones where possible).
> > >
> > >  Great work, thanks!
> >
> > I'd be very much interested in running your script as one build
> > variant for my http://toolchain.lug-owl.de/ efforts. Is it available
> > somewhere? That would be nice!
> 
> The script is publicly available as https://github.com/mikpe/buildcross.git.
> Usage for actively maintained toolchains is pretty easy. For example, to build
> a cross to sparc64-unknown-linux-gnu you just run
> 
>     buildcross -jN sparc64
> 
> and it will leave the toolchain in cross-sparc64. (Other bits will
> land in downloads/,
> sources/, and host-tools/.)

Thanks, I'll have a look!

> If you're only interested in linux-gnu toolchains for actively
> maintained targets there's
> a build-many-glibcs.py script in glibc that should be a better fit.

My intention is to gain access to as many targets and different
configurations and build strategies as possible. glibc's script is
already included. (As I build with all languages, most of the target
configurations fail right now.)

Thanks!

Jan-Benedict
--
diff mbox series

Patch

diff --git a/gcc/config.gcc b/gcc/config.gcc
index 6fd1594480a..671c7e3b018 100644
--- a/gcc/config.gcc
+++ b/gcc/config.gcc
@@ -2287,7 +2287,7 @@  lm32-*-rtems*)
 	tmake_file="${tmake_file} lm32/t-rtems"
          ;;
 lm32-*-uclinux*)
-        tm_file="elfos.h ${tm_file} gnu-user.h linux.h lm32/uclinux-elf.h"
+        tm_file="elfos.h ${tm_file} gnu-user.h linux.h glibc-stdint.h lm32/uclinux-elf.h"
 	tmake_file="${tmake_file} lm32/t-lm32"
         ;;
 m32r-*-elf*)
@@ -3488,7 +3488,7 @@  v850*-*-*)
 	use_gcc_stdint=wrap
 	;;
 vax-*-linux*)
-	tm_file="${tm_file} elfos.h gnu-user.h linux.h vax/elf.h vax/linux.h"
+	tm_file="${tm_file} elfos.h gnu-user.h linux.h glibc-stdint.h vax/elf.h vax/linux.h"
 	extra_options="${extra_options} vax/elf.opt"
 	;;
 vax-*-netbsdelf*)