From: "Ard Biesheuvel" <ardb@kernel.org>
To: devel@edk2.groups.io, kraxel@redhat.com
Cc: "Marvin Häuser" <mhaeuser@posteo.de>,
"Pawel Polawski" <ppolawsk@redhat.com>,
"Dongyan Qian" <qiandongyan@loongson.cn>,
"Sunil V L" <sunilvl@ventanamicro.com>,
"Baoqi Zhang" <zhangbaoqi@loongson.cn>,
"Chao Li" <lichao@loongson.cn>,
"Rebecca Cran" <rebecca@bsdio.com>,
"Ard Biesheuvel" <ardb+tianocore@kernel.org>,
"Zhiguang Liu" <zhiguang.liu@intel.com>,
"Liming Gao" <gaoliming@byosoft.com.cn>,
"Yuwei Chen" <yuwei.chen@intel.com>,
"Leif Lindholm" <quic_llindhol@quicinc.com>,
"Michael D Kinney" <michael.d.kinney@intel.com>,
"Daniel Schaefer" <git@danielschaefer.me>,
"Bob Feng" <bob.c.feng@intel.com>,
"Oliver Steffen" <osteffen@redhat.com>
Subject: Re: [edk2-devel] [PATCH v4 01/10] BaseTools: add BASETOOLS define
Date: Fri, 14 Apr 2023 16:57:29 +0200 [thread overview]
Message-ID: <CAMj1kXGXZuATx3_xYJkiu51Ee=hSuHtjJRi0MPx-X=35-S=u8A@mail.gmail.com> (raw)
In-Reply-To: <qotxseb6anmjqqi2lmbmkfuchr3k7vv3walpqfczuvnhwzuwa3@tmkxlll6eixj>
On Fri, 14 Apr 2023 at 16:37, Gerd Hoffmann <kraxel@redhat.com> wrote:
>
> On Fri, Apr 14, 2023 at 12:29:21PM +0000, Marvin Häuser wrote:
> > Hi Gerd,
> >
> > Thanks for your effort!
> >
> > Sorry, but I *really* dislike this “BASETOOLS” notion. There might be
> > external tools that also want to use the header (like we do with AUDK)
> > and also edk2 supports host-based unit tests. Imo the macro name
> > should be generic, like “HOST_OS” or “USERLAND” or something (I’m bad
> > with names :) ).
>
> I'm certainly open to better naming ideas.
>
> Underlying problem is that x64 ProcessorBind.h sets visibility to
> hidden (anyone knows why?).
Yes. Toolchains tend to assume that you are generating code for a
shared library once you enabled -fpic, and this results in lots of
pointless indirections via the GOT. (This has to do with the
copy-on-write footprint of shared library pages, as a GOT tends to
gather all relocated quantities in a small region of memory. It is
also related to ELF symbol preemption, which is another thing we don't
give a ^$& about).
*However*, recent linkers do a better job getting rid of these GOT
references at link time, once you pass the --relax option. On X64 in
particular, there are special, relaxable GOTPCREL relocations now that
will not result in to symbol references via the GOT if the linker
notices that the symbol in question is never preempted and not
provided externally.
So it is worth an experiment whether we still need this to begin with.
> Seems to be fine for freestanding binaries,
> but when linking host tools against shared libraries things break. For
> some reason on ubuntu only, fedora works fine (both gcc and clang).
>
> Automatically detecting freestanding vs. hosted would be even better,
> anyone knows whenever there is a define which can be used for this? At
> least the gcc man page doesn't mention any ...
>
ard@gambale:~/linux-build-x86$ gcc -dM -E -o - -xc - <<< ""|grep HOSTED
#define __STDC_HOSTED__ 1
ard@gambale:~/linux-build-x86$ gcc -ffreestanding -dM -E -o - -xc -
<<< ""|grep HOSTED
#define __STDC_HOSTED__ 0
next prev parent reply other threads:[~2023-04-14 14:57 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-04-14 8:02 [PATCH v4 00/10] BaseTools: remove duplicate includes Gerd Hoffmann
2023-04-14 8:02 ` [PATCH v4 01/10] BaseTools: add BASETOOLS define Gerd Hoffmann
2023-04-14 12:29 ` Marvin Häuser
2023-04-14 14:37 ` Gerd Hoffmann
2023-04-14 14:51 ` Marvin Häuser
2023-04-14 14:57 ` Ard Biesheuvel [this message]
2023-04-14 15:10 ` [edk2-devel] " Marvin Häuser
2023-04-18 11:52 ` Gerd Hoffmann
2023-04-18 11:59 ` Ard Biesheuvel
2023-04-18 13:20 ` Gerd Hoffmann
2023-04-18 13:41 ` Marvin Häuser
2023-04-18 15:50 ` Ard Biesheuvel
2023-04-21 3:26 ` 回复: " gaoliming
2023-05-22 12:27 ` Gerd Hoffmann
2023-05-22 12:55 ` Ard Biesheuvel
2023-05-22 13:38 ` Gerd Hoffmann
2023-05-22 14:31 ` Gerd Hoffmann
2023-05-23 7:07 ` Ard Biesheuvel
2023-05-23 8:49 ` Gerd Hoffmann
2023-05-23 8:54 ` Ard Biesheuvel
2023-04-14 8:02 ` [PATCH v4 02/10] MdePkg: don't set visibility to hidden for BaseTools Gerd Hoffmann
2023-04-14 8:02 ` [PATCH v4 03/10] BaseTools: remove WinNtInclude.h Gerd Hoffmann
2023-04-14 8:02 ` [PATCH v4 04/10] BaseTools: remove duplicate includes: <arch>/ProcessorBind.h Gerd Hoffmann
2023-04-14 8:02 ` [PATCH v4 05/10] BaseTools: remove duplicate includes: IndustryStandard/Acpi*.h Gerd Hoffmann
2023-04-14 8:02 ` [PATCH v4 06/10] MdePkg/PeImage.h: add bits from BaseTools version Gerd Hoffmann
2023-04-14 8:02 ` [PATCH v4 07/10] BaseTools: drop IMAGE_FILE_MACHINE_ARM hacks Gerd Hoffmann
2023-04-14 8:02 ` [PATCH v4 08/10] BaseTools: switch from EFI_IMAGE_MACHINE_* to IMAGE_FILE_MACHINE_* Gerd Hoffmann
2023-04-14 12:16 ` [edk2-devel] " Rebecca Cran
2023-04-14 14:39 ` Gerd Hoffmann
2023-04-14 8:02 ` [PATCH v4 09/10] BaseTools: remove duplicate includes: IndustryStandard/PeImage.h Gerd Hoffmann
2023-04-14 8:02 ` [PATCH v4 10/10] BaseTools: remove duplicate includes: IndustryStandard/*.h Gerd Hoffmann
2023-04-14 12:18 ` [edk2-devel] [PATCH v4 00/10] BaseTools: remove duplicate includes Rebecca Cran
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-list 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='CAMj1kXGXZuATx3_xYJkiu51Ee=hSuHtjJRi0MPx-X=35-S=u8A@mail.gmail.com' \
--to=devel@edk2.groups.io \
/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