public inbox for libc-alpha@sourceware.org
 help / color / mirror / Atom feed
From: Adhemerval Zanella <adhemerval.zanella@linaro.org>
To: libc-alpha@sourceware.org
Subject: Re: [PATCH v4 09/13] LoongArch: Linux ABI
Date: Mon, 16 May 2022 15:49:28 -0300	[thread overview]
Message-ID: <a0067873-b584-a407-90ab-116e8620d864@linaro.org> (raw)
In-Reply-To: <e808403f-0101-69c4-c026-c42323430fd6@loongson.cn>



On 15/05/2022 00:32, caiyinyu wrote:
> 
> 在 2022/5/11 下午3:08, Arnd Bergmann 写道:
>> On Mon, May 9, 2022 at 4:26 AM caiyinyu <caiyinyu@loongson.cn> wrote:
>>> +
>>> +#include <bits/wordsize.h>
>>> +
>>> +/* In 64-bit ISA files are always with 64bit off_t and F_*LK64 are the same as
>>> +   non-64-bit versions.  It will need to be revised for 128-bit.  */
>>> +#if __WORDSIZE == 64
>>> +#define __O_LARGEFILE 0
>>> +
>>> +#define F_GETLK64 5  /* Get record locking info.  */
>>> +#define F_SETLK64 6  /* Set record locking info (non-blocking).  */
>>> +#define F_SETLKW64 7 /* Set record locking info (blocking).  */
>>> +#endif
>>> +
>>> +struct flock
>>> +{
>>> +  short int l_type;   /* Type of lock: F_RDLCK, F_WRLCK, or F_UNLCK.  */
>>> +  short int l_whence; /* Where `l_start' is relative to (like `lseek').  */
>>> +#ifndef __USE_FILE_OFFSET64
>>> +  __off_t l_start; /* Offset where the lock begins.  */
>>> +  __off_t l_len;   /* Size of the locked area; zero means until EOF.  */
>>> +#else
>>> +  __off64_t l_start; /* Offset where the lock begins.  */
>>> +  __off64_t l_len;   /* Size of the locked area; zero means until EOF.  */
>>> +#endif
>>> +  __pid_t l_pid; /* Process holding the lock.  */
>>> +};
>>> +
>>> +#ifdef __USE_LARGEFILE64
>>> +struct flock64
>>> +{
>>> +  short int l_type;   /* Type of lock: F_RDLCK, F_WRLCK, or F_UNLCK.  */
>>> +  short int l_whence; /* Where `l_start' is relative to (like `lseek').  */
>>> +  __off64_t l_start;  /* Offset where the lock begins.  */
>>> +  __off64_t l_len;    /* Size of the locked area; zero means until EOF.  */
>>> +  __pid_t l_pid;      /* Process holding the lock.  */
>>> +};
>>> +#endif
>> Not sure why these are provided here, the kernel has no loongarch64 specific
>> interface for flock in the current version, so either this refers to
>> an older version
>> of the kernel port, or it is something that could be generalized into an
>> architecture-independent file in glibc.
>>
>>          Arnd
> 
> 
> There are struct flock and flock64 we need in glibc bits/fcntl.h, but
> the macro F_GETLK64 F_SETLK64 F_SETLKW64 in
> sysdeps/unix/sysv/linux/bits/fcntl-linux.h are:
> 
> ...
> # define F_GETLK64      12      /* Get record locking info.  */
> # define F_SETLK64      13      /* Set record locking info (non-blocking).  */
> # define F_SETLKW64     14      /* Set record locking info (blocking).  */
> ...
> 
> what we need:
> 
> +#define F_GETLK64 5  /* Get record locking info.  */
> +#define F_SETLK64 6  /* Set record locking info (non-blocking). */
> +#define F_SETLKW64 7 /* Set record locking info (blocking).  */
> 
> x86 ia64 s390 and aarch64 have the same problem and they all use their own fcntl.h.
> 
> Define new value of these macro in sysdeps/unix/sysv/linux/bits/fcntl-linux.h or
> add fcntl-linux.h in loongarch port or keep the status quo??

Ideally I would like to have sysdeps/unix/sysv/linux/bits/fcntl.h with the
common fcntl.h definitions (including flock/flock64 definitions) and move
any arch-specific bits to sysdeps/unix/sysv/linux/<arch>/bits/fcntl-arch.h
and have a generic fcntl-arch.h with current linux UAPI definition (so
newer ports won't need to add anything, assuming its uses the expected
Linux definitions).

It would require to change some non loongarch code, so I don't expect you
do push for this to get the loongarch code.  Having a loonarch fcntl.h
should be fine for now.

  reply	other threads:[~2022-05-16 18:49 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-05-09  2:25 [PATCH v3 00/13] GLIBC LoongArch PATCHES caiyinyu
2022-05-09  2:25 ` [PATCH v4 01/13] LoongArch: Update NEWS and README for the LoongArch port caiyinyu
2022-05-11 17:05   ` Adhemerval Zanella
2022-05-09  2:26 ` [PATCH v4 02/13] LoongArch: Add LoongArch entries to config.h.in caiyinyu
2022-05-09  2:26 ` [PATCH v4 03/13] LoongArch: Add relocations and ELF flags to elf.h and scripts/glibcelf.py caiyinyu
2022-05-09  2:26 ` [PATCH v4 04/13] LoongArch: ABI Implementation caiyinyu
2022-05-09  2:26 ` [PATCH v4 05/13] LoongArch: Thread-Local Storage Support caiyinyu
2022-05-09  2:26 ` [PATCH v4 06/13] LoongArch: Generic <math.h> and soft-fp Routines caiyinyu
2022-05-09  2:26 ` [PATCH v4 07/13] LoongArch: Atomic and Locking Routines caiyinyu
2022-05-09  2:26 ` [PATCH v4 08/13] LoongArch: Linux Syscall Interface caiyinyu
2022-05-11  7:02   ` Arnd Bergmann
2022-05-11 13:20     ` Adhemerval Zanella
2022-05-15  7:53     ` caiyinyu
2022-05-16 18:44       ` Adhemerval Zanella
2022-05-09  2:26 ` [PATCH v4 09/13] LoongArch: Linux ABI caiyinyu
2022-05-11  7:08   ` Arnd Bergmann
2022-05-11 13:27     ` Adhemerval Zanella
2022-05-11 17:32       ` Joseph Myers
2022-05-15  3:32     ` caiyinyu
2022-05-16 18:49       ` Adhemerval Zanella [this message]
2022-05-18  3:40     ` caiyinyu
2022-05-18  7:33       ` Arnd Bergmann
2022-05-09  2:26 ` [PATCH v4 10/13] LoongArch: Add ABI Lists caiyinyu
2022-05-10 19:37 ` [PATCH v3 00/13] GLIBC LoongArch PATCHES Florian Weimer
2022-05-10 20:33   ` Joseph Myers
2022-05-11  6:57   ` Arnd Bergmann
2022-05-11 13:17     ` Adhemerval Zanella
2022-05-09  2:29 [PATCH v4 " caiyinyu
2022-05-09  2:30 ` [PATCH v4 09/13] LoongArch: Linux ABI caiyinyu

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=a0067873-b584-a407-90ab-116e8620d864@linaro.org \
    --to=adhemerval.zanella@linaro.org \
    --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).