public inbox for libc-alpha@sourceware.org
 help / color / mirror / Atom feed
From: Palmer Dabbelt <palmer@dabbelt.com>
To: adhemerval.zanella@linaro.org
Cc: hch@lst.de, joseph@codesourcery.com, libc-alpha@sourceware.org,
	Andrew Waterman <andrew@sifive.com>,
	Darius Rad <darius@bluespec.com>,
	dj@redhat.com
Subject: Re: [PATCH v2 10/15] RISC-V: Linux Syscall Interface
Date: Tue, 09 Jan 2018 01:30:00 -0000	[thread overview]
Message-ID: <mhng-b0c744e9-7c76-484f-8da8-540a02326da5@palmer-si-x1c4> (raw)
In-Reply-To: <88080cf9-23d3-6e05-ca9c-4baabfca79e3@linaro.org>

On Wed, 03 Jan 2018 07:56:32 PST (-0800), adhemerval.zanella@linaro.org wrote:
>
>
> On 03/01/2018 11:43, Christoph Hellwig wrote:
>> On Mon, Jan 01, 2018 at 12:56:14AM +0000, Joseph Myers wrote:
>>> such case, whether a copy from another architecture or a #include from
>>> another architecture, indicates a case where refactoring is needed to
>>> avoid such duplication - if the code can be generic for all new ports it
>>> should be in a generic location, while if it's generic for ports with a
>>> particular property things should be factored so a port only needs to
>>> declare that it has that property.  (Of course such refactoring is risky
>>> so not typically appropriate during a release freeze.)
>>>
>>> Often, the files for i386 are actually generic for *old* ports and so if
>>> you're copying or including such a file (or one from another old
>>> architecture) you need to be particularly careful that it actually
>>> represents the desired way to do things now, rather than compatibility
>>> with old ABIs or old versions of the syscall interface.
>>
>> clone is a hodegepodge, but the clone(2) manpage documents it well.
>> There are two major camps, and risv implements on of those.  And then
>> there are various oddballs.
>>
>> So for now it might make sense to just duplicate the i386 file for
>> riscv, or follow the example of various forks to include it.  In the
>> long run having a generic implementation for the two common versions
>> might be useful.
>>
>
> Sometime ago I tried to check if it was worth to simplify the arch-fork.h
> by defining the supported kernel variations and adding a arch-specific
> define (maybe on kernel-features.h).  I did not follow up, but I think it
> might be feasible: afaik Linux defines 4 variants:
>
>   - CONFIG_CLONE_BACKWARDS
>   - CONFIG_CLONE_BACKWARDS2
>   - CONFIG_CLONE_BACKWARDS3
>   - And the generic one which I assume it is meant for newer ports.
>
> So I think we expand the arch-fork.h generic to issue the clone based on
> arch-specific flags with a generic one as default.  It will make unnecessary
> for newer ports to add a arch-fork.h implementation.

I asked on the Linux mailing list what the sane thing to do is here.  Thanks 
for bringing this up, but it might be too late to change anything on our end -- 
there's probably only 1 more Linux RC left, so unless there's a strong reason 
to prefer one argument ordering I think I'm just going to leave it alone.

Sorry we didn't get around to this sooner!

  reply	other threads:[~2018-01-09  1:30 UTC|newest]

Thread overview: 76+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-12-20  7:23 RISC-V glibc port v2 Palmer Dabbelt
2017-12-20  7:23 ` [PATCH v2 01/15] RISC-V: Build Infastructure Palmer Dabbelt
2017-12-20 14:05   ` Dmitry V. Levin
2017-12-20 20:25     ` Palmer Dabbelt
2017-12-20 16:22   ` Joseph Myers
2017-12-20 16:49     ` Adhemerval Zanella
2017-12-23  2:22     ` Palmer Dabbelt
2017-12-23 12:44       ` Joseph Myers
2017-12-25 20:58         ` Palmer Dabbelt
2018-01-01  1:21           ` Joseph Myers
2017-12-20 16:43   ` Joseph Myers
2017-12-23  3:41     ` Palmer Dabbelt
2017-12-23 12:53       ` Joseph Myers
2017-12-20  7:23 ` [PATCH v2 04/15] RISC-V: Thread-Local Storage Support Palmer Dabbelt
2017-12-20 16:45   ` Joseph Myers
2017-12-23 19:10     ` Palmer Dabbelt
2017-12-20  7:23 ` [PATCH v2 02/15] RISC-V: ABI Implementation Palmer Dabbelt
2017-12-20 16:31   ` Joseph Myers
2017-12-23  3:25     ` Palmer Dabbelt
2017-12-23  3:30       ` DJ Delorie
2017-12-20  7:23 ` [PATCH v2 03/15] RISC-V: Startup and Dynamic Loading Code Palmer Dabbelt
2017-12-20 16:38   ` Joseph Myers
2017-12-23  3:25     ` Palmer Dabbelt
2017-12-23  3:33       ` DJ Delorie
2017-12-23 12:52       ` Joseph Myers
2017-12-20  7:23 ` [PATCH v2 05/15] RISC-V: Generic <string.h> Routines Palmer Dabbelt
2017-12-20 16:48   ` Joseph Myers
2017-12-23 22:01     ` Palmer Dabbelt
2018-01-01  0:52       ` Joseph Myers
2018-01-03 15:46         ` Adhemerval Zanella
2018-01-03 16:03           ` Joseph Myers
2018-01-03 16:08             ` Adhemerval Zanella
2017-12-20  7:24 ` [PATCH v2 15/15] Add RISC-V to build-many-glibcs.py Palmer Dabbelt
2017-12-20  7:24 ` [PATCH v2 12/15] RISC-V: Linux Startup and Dynamic Loading Code Palmer Dabbelt
2017-12-20  7:24 ` [PATCH v2 10/15] RISC-V: Linux Syscall Interface Palmer Dabbelt
2017-12-20 16:57   ` Adhemerval Zanella
2017-12-24  0:24     ` Palmer Dabbelt
2018-01-01  0:56       ` Joseph Myers
2018-01-03 13:43         ` Christoph Hellwig
2018-01-03 15:56           ` Adhemerval Zanella
2018-01-09  1:30             ` Palmer Dabbelt [this message]
2018-01-09 11:16               ` Adhemerval Zanella
2017-12-20 17:24   ` Joseph Myers
2017-12-25 19:47     ` Palmer Dabbelt
2017-12-20  7:24 ` [PATCH v2 07/15] RISC-V: RV32F Support Palmer Dabbelt
2017-12-20 17:01   ` Joseph Myers
2017-12-20 17:04     ` Joseph Myers
2017-12-24  1:26       ` Palmer Dabbelt
2017-12-24  0:37     ` Palmer Dabbelt
2018-01-01  0:57       ` Joseph Myers
2017-12-20  7:24 ` [PATCH v2 14/15] Add linux-4.15 VDSO hash for RISC-V Palmer Dabbelt
2017-12-20  7:24 ` [PATCH v2 13/15] Add RISC-V dynamic relocations to elf.h Palmer Dabbelt
2017-12-20  7:24 ` [PATCH v2 09/15] RISC-V: Atomic and Locking Routines Palmer Dabbelt
2017-12-20 17:08   ` Joseph Myers
2017-12-24  1:26     ` Palmer Dabbelt
2017-12-20  7:24 ` [PATCH v2 08/15] RISC-V: RV32D, RV64F, and RV64D Support Palmer Dabbelt
2017-12-20  7:24 ` [PATCH v2 06/15] RISC-V: Generic <math.h> and soft-fp Routines Palmer Dabbelt
2017-12-20 16:50   ` Joseph Myers
2017-12-24  0:24     ` Palmer Dabbelt
2017-12-20  7:24 ` [PATCH v2 11/15] RISC-V: Linux ABI Palmer Dabbelt
2017-12-20 17:33   ` Joseph Myers
2017-12-25 19:47     ` Palmer Dabbelt
2018-01-01  1:04       ` Joseph Myers
2018-01-02 20:59         ` Joseph Myers
2017-12-20 16:04 ` RISC-V glibc port v2 Joseph Myers
2017-12-20 20:25   ` Palmer Dabbelt
2017-12-20 20:42     ` Joseph Myers
2017-12-20 17:40 ` Joseph Myers
2017-12-25 20:20   ` Palmer Dabbelt
2018-01-01  1:20     ` Joseph Myers
2018-01-03 13:37       ` Christoph Hellwig
2018-01-03 13:42         ` Joseph Myers
2017-12-20 21:11 ` Joseph Myers
2017-12-20 21:45   ` Palmer Dabbelt
2017-12-25 12:57     ` Adhemerval Zanella
2018-01-01  0:58       ` Joseph Myers

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=mhng-b0c744e9-7c76-484f-8da8-540a02326da5@palmer-si-x1c4 \
    --to=palmer@dabbelt.com \
    --cc=adhemerval.zanella@linaro.org \
    --cc=andrew@sifive.com \
    --cc=darius@bluespec.com \
    --cc=dj@redhat.com \
    --cc=hch@lst.de \
    --cc=joseph@codesourcery.com \
    --cc=libc-alpha@sourceware.org \
    /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).