public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
From: LIU Hao <lh_mouse@126.com>
To: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>,
	Jonathan Yong <10walls@gmail.com>
Cc: GCC Patches <gcc-patches@gcc.gnu.org>
Subject: Re: Adding a new thread model to GCC
Date: Thu, 20 Oct 2022 09:25:46 +0800	[thread overview]
Message-ID: <0410571d-9341-a521-adae-479ad857c5c0@126.com> (raw)
In-Reply-To: <CAC1BbcRC9KwiJBwiOUfmZrrBKUVOo9bwicEhuwzxxv40MfEroA@mail.gmail.com>


[-- Attachment #1.1: Type: text/plain, Size: 1465 bytes --]

在 2022/10/20 03:53, Bernhard Reutner-Fischer 写道:
> 
> which has kernel32 twice, which might not be ideal for the speed of linking?
> I'm not familiar with the content of ntdll so cannot judge if you'd put that in
> MCFGTHREAD_SPEC and drop kernel32 there, though, and put the whole
> MCFG spec simply before the kernel32 in the REAL_LIBGCC_SPEC.
> 
> i.e.
> +#define MCFGTHREAD_SPEC  " -lmcfgthread -lntdll "
> ...
> +   -lmoldname -lmingwex -lmsvcrt " MCFGTHREAD_SPEC " -lkernel32 "
> 
> I hope this is constructive.
> thanks,

NTDLL is the user-mode syscall library i.e. it mainly provides syscalls as functions.

Putting `-lmcfgthread` before `-lkernel32` was what I did in the beginning. However, I had an 
impression that NTDLL and KERNEL32 may both export some functions (I believe this is no longer the 
case now). Since MSVCRT in mingw-w64 is not a 'pure' import library and contains some functions that 
we implement on top of KERNEL32, the ideal solution would be

    ```
    #define MCFGTHREAD_SPEC  " -lmcfgthread "
    #define MCFGTHREAD_NTDLL_SPEC  " -lntdll "
      ...
    -lmsvcrt " MCFGTHREAD_SPEC " -lkernel32 " MCFGTHREAD_NTDLL_SPEC
    ```

(NTDLL is only necessary when linking against the shared library.)

The committed patch inserted MCFGTHREAD after KERNEL32 for simplicity, but if you do think we had 
better not repeat KERNEL32 twice, I can propose another patch.


-- 
Best regards,
LIU Hao

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 840 bytes --]

  reply	other threads:[~2022-10-20  1:25 UTC|newest]

Thread overview: 58+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-10-01 18:34 LIU Hao
2022-10-01 20:02 ` Bernhard Reutner-Fischer
2022-10-02 12:54   ` LIU Hao
2022-10-03  5:03     ` Bernhard Reutner-Fischer
2022-10-04  8:06       ` LIU Hao
2022-10-04 19:45         ` Bernhard Reutner-Fischer
2022-10-04 12:44       ` LIU Hao
2022-10-04 13:13         ` Xi Ruoyao
2022-10-04 13:45           ` LIU Hao
2022-10-05  1:23             ` Xi Ruoyao
2022-10-10 15:56         ` LIU Hao
2022-10-11 13:22           ` LIU Hao
2022-10-14  9:39             ` Jonathan Yong
2022-10-19 13:55               ` Jonathan Yong
2022-10-19 19:53                 ` Bernhard Reutner-Fischer
2022-10-20  1:25                   ` LIU Hao [this message]
2022-10-21  9:58 ` Jonathan Wakely
2022-10-21 10:09   ` i.nixman
2022-10-21 10:48     ` Jonathan Wakely
2022-10-21 10:55       ` i.nixman
2022-10-21 11:36     ` LIU Hao
2022-10-21 11:54       ` i.nixman
2022-10-21 12:19         ` LIU Hao
2022-10-21 12:34           ` i.nixman
2022-10-24  3:40             ` LIU Hao
2022-10-24 20:50               ` Jacek Caban
2022-10-21 12:13       ` Jacek Caban
2022-10-21 12:29         ` LIU Hao
2022-10-21 12:40           ` Jacek Caban
2022-10-21 11:44   ` Eric Botcazou
2022-10-21 11:55     ` i.nixman
2022-10-21 12:30       ` Jacek Caban
2022-10-23  0:36         ` NightStrike
2022-10-24  6:53     ` i.nixman
2022-10-24  8:15       ` Eric Botcazou
2022-10-24  8:20         ` i.nixman
2022-10-31  9:18       ` Eric Botcazou
2022-10-31 15:22         ` i.nixman
2022-12-18 11:14           ` Jonathan Yong
2022-11-01  5:22         ` i.nixman
2022-11-01  9:09           ` Eric Botcazou
2022-11-02 12:05             ` i.nixman
2022-11-02 21:27               ` Eric Botcazou
2022-11-02 21:40                 ` i.nixman
2022-12-16 17:18         ` Jonathan Wakely
2022-12-16 19:20           ` Eric Botcazou
2022-12-22 12:21             ` Jonathan Yong
2022-12-22 12:28               ` i.nixman
2022-12-23 23:59                 ` Jonathan Yong
2022-12-24  5:58                   ` NightStrike
2022-12-24  6:27                     ` i.nixman
2022-12-24 13:50                     ` i.nixman
2022-12-24 15:42                       ` i.nixman
2022-12-24 15:57                         ` i.nixman
2022-12-24 21:22                           ` i.nixman
2022-12-25  1:10                             ` Jonathan Yong
2023-01-09 21:56                             ` Eric Botcazou
2022-12-24  6:22                   ` i.nixman

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=0410571d-9341-a521-adae-479ad857c5c0@126.com \
    --to=lh_mouse@126.com \
    --cc=10walls@gmail.com \
    --cc=gcc-patches@gcc.gnu.org \
    --cc=rep.dot.nop@gmail.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).