public inbox for libc-help@sourceware.org
 help / color / mirror / Atom feed
From: Florian Weimer <fweimer@redhat.com>
To: <rsbecker@nexbridge.com>
Cc: <libc-help@sourceware.org>,  <mike_kilpatrick@nskopensource.com>,
	"'Shiva Subramanian'" <shiva.subramanian@tcm.uk.com>,
	 "'Bill Honaker'" <bhonaker@xid.com>,  <jojo@schmitz-digital.de>
Subject: Re: Re-port Intent for HPE NonStop (a.k.a. Tandem)
Date: Mon, 14 Mar 2022 14:12:12 +0100	[thread overview]
Message-ID: <877d8wy8yb.fsf@oldenburg.str.redhat.com> (raw)
In-Reply-To: <025601d837a1$ce111d00$6a335700$@nexbridge.com> (rsbecker@nexbridge.com's message of "Mon, 14 Mar 2022 08:48:22 -0400")

>>Can you use a GCC cross-compiler?
>
> No. GCC does not generate code that will run on the platform. While it is
> x86-based, there are complex endian concerns in the code generator,
> significant ELF header differences, and major ELF debug section differences
> that cannot be emitted by GCC. There have been at least 3 unsuccessful
> attempts I know of to port gcc to the platform and/or to generate cross
> compile code for it.

In this case, we would really need an open toolchain, otherwise we can't
maintain the ELF parts.

Keep in mind that glibc contains the dynamic linker, so it really has to
know about the details of your architecture.

> I have successfully done ports of other products with the same constraint
> (git, openssh, openssl). Usually ports are possible with minimal
> changes.

That's because you rely on the C run-time library to paper over the
differences in kernel interfaces.  With glibc itself, that's different.

> I would like to do a bit of an impact analysis to see how difficult
> this one would be.

You need to provide the rest of the toolchain first, and that seems to
require a major effort (and it's not just about writing code).

I also doubt that we would accept patches which retarget to a
proprietary kernel, but that depends on how invasive those patches are.

> How should I proceed, if I need glibc as a dependency?

You need to port GCC and binutils first, and then you can proceed with
glibc.  It's how new ports are brought up.  I'm not aware of any other
port in recent times that has been done in a different way (not using
GCC).  This is not me being snarky, it's just that the GNU toolchain
(binutils/GCC/GDB/glibc) is an integrated whole and works best in
conjunction.

It might be possible to get away with an LLVM-based toolchain, but the
porting of glibc istelf to LLVM is not yet complete, so you would
struggle on this front as well.

Thanks,
Florian


  reply	other threads:[~2022-03-14 13:12 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-03-13 12:43 rsbecker
2022-03-14  7:54 ` Florian Weimer
2022-03-14  8:12   ` AW: " Joachim Schmitz
2022-03-14  8:32     ` Florian Weimer
2022-03-14  8:49       ` AW: " Joachim Schmitz
2022-03-14  8:55         ` Florian Weimer
2022-03-14 12:48   ` rsbecker
2022-03-14 13:12     ` Florian Weimer [this message]
2022-03-14 14:20       ` Adhemerval Zanella

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=877d8wy8yb.fsf@oldenburg.str.redhat.com \
    --to=fweimer@redhat.com \
    --cc=bhonaker@xid.com \
    --cc=jojo@schmitz-digital.de \
    --cc=libc-help@sourceware.org \
    --cc=mike_kilpatrick@nskopensource.com \
    --cc=rsbecker@nexbridge.com \
    --cc=shiva.subramanian@tcm.uk.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).