From: "Roger Pau Monné" <roger.pau@citrix.com>
To: Frediano Ziglio <frediano.ziglio@cloud.com>
Cc: Jan Beulich <jbeulich@suse.com>,
Andrew Cooper <andrew.cooper3@citrix.com>,
Julien Grall <julien@xen.org>,
Stefano Stabellini <sstabellini@kernel.org>,
xen-devel@lists.xenproject.org
Subject: Re: [PATCH] x86/boot: Fix build with LLVM toolchain
Date: Wed, 6 Nov 2024 13:37:38 +0100 [thread overview]
Message-ID: <ZytjEoRjAPhtR7Ga@macbook> (raw)
In-Reply-To: <CACHz=ZjZVPSueWjxfWBjbjg8_UhZc7hMwM49BFT0bipqeBOsSA@mail.gmail.com>
On Wed, Nov 06, 2024 at 11:58:19AM +0000, Frediano Ziglio wrote:
> On Wed, Nov 6, 2024 at 11:45 AM Jan Beulich <jbeulich@suse.com> wrote:
> >
> > On 06.11.2024 12:34, Frediano Ziglio wrote:
> > > On Wed, Nov 6, 2024 at 10:59 AM Jan Beulich <jbeulich@suse.com> wrote:
> > >>
> > >> On 06.11.2024 07:56, Frediano Ziglio wrote:
> > >>> On Tue, Nov 5, 2024 at 5:06 PM Jan Beulich <jbeulich@suse.com> wrote:
> > >>>>
> > >>>> On 05.11.2024 17:35, Frediano Ziglio wrote:
> > >>>>> On Tue, Nov 5, 2024 at 3:32 PM Jan Beulich <jbeulich@suse.com> wrote:
> > >>>>>>
> > >>>>>> On 05.11.2024 15:55, Frediano Ziglio wrote:
> > >>>>>>> This toolchain generates different object and map files.
> > >>>>>>> Account for these changes.
> > >>>>>>
> > >>>>>> At least briefly mentioning what exactly the differences are would be
> > >>>>>> quite nice, imo.
> > >>>>>>
> > >>>>>
> > >>>>> What about.
> > >>>>>
> > >>>>> Object have 3 additional sections which must be handled by the linker script.
> > >>>>
> > >>>> I expect these sections are there in both cases. The difference, I assume,
> > >>>> is that for the GNU linker they don't need mentioning in the linker script.
> > >>>> Maybe that's what you mean to say, but to me at least the sentence can also
> > >>>> be interpreted differently.
> > >>>
> > >>> Why do you expect such sections? They are used for dynamic symbols in
> > >>> shared objects, we don't use shared objects here. Normal object
> > >>> symbols are not handled by these sections. GNU compiler+linker (we
> > >>> link multiple objects together) do not generate these sections. So the
> > >>> comment looks correct to me.
> > >>
> > >> About every ELF object will have .symtab and .strtab, and many also a
> > >> separate .shstrtab. There's nothing "dynamic" about them. IOW - I'm
> > >> confused by your reply.
> > >
> > > I checked the object files and there are no such sections using GNU toolchain.
> >
> > I think I checked every *.o that's under boot/, and they all have these three
> > sections. Can you clarify which one(s) specifically you checked?
> >
> > Jan
>
> $ gcc --version
> gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0
> Copyright (C) 2021 Free Software Foundation, Inc.
> This is free software; see the source for copying conditions. There is NO
> warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
>
> $ ld --version
> GNU ld (GNU Binutils for Ubuntu) 2.38
> Copyright (C) 2022 Free Software Foundation, Inc.
> This program is free software; you may redistribute it under the terms of
> the GNU General Public Licence version 3 or (at your option) a later version.
> This program has absolutely no warranty.
>
> $ find xen/normal/ xen/pvh/ -name \*.o | xargs -ifilename sh -c
> 'objdump -x filename' | grep -e \\.
> shstrtab -e \\.strtab -e \\.symtab
>
> (xen/normal and xen/pvh are the build directory, with different configurations)
>
> I'm saying that's possibly why the linker scripts didn't need to
> specify these sections.
objdump -x doesn't seem to list .symtab, .strtab or .shstrtab, but
readelf -S does:
# readelf -SW xen/arch/x86/boot/reloc.o
[...]
[11] .symtab SYMTAB 00000000 0004b0 000190 10 12 21 4
[12] .strtab STRTAB 00000000 000640 000092 00 0 0 1
[13] .shstrtab STRTAB 00000000 000734 000078 00 0 0 1
# objdump -x xen/arch/x86/boot/reloc.o
[...]
Sections:
Idx Name Size VMA LMA File off Algn
0 .group 00000008 00000000 00000000 00000034 2**2
CONTENTS, READONLY, GROUP, LINK_ONCE_DISCARD
1 .text 0000041d 00000000 00000000 00000040 2**4
CONTENTS, ALLOC, LOAD, RELOC, READONLY, CODE
2 .data 00000000 00000000 00000000 0000045d 2**0
CONTENTS, ALLOC, LOAD, DATA
3 .bss 00000000 00000000 00000000 0000045d 2**0
ALLOC
4 .rodata 00000024 00000000 00000000 00000460 2**2
CONTENTS, ALLOC, LOAD, RELOC, READONLY, DATA
5 .text.__x86.get_pc_thunk.bx 00000004 00000000 00000000 00000484 2**0
CONTENTS, ALLOC, LOAD, READONLY, CODE
6 .comment 00000028 00000000 00000000 00000488 2**0
CONTENTS, READONLY
7 .note.GNU-stack 00000000 00000000 00000000 000004b0 2**0
CONTENTS, READONLY
It also seems to skip .rel sections. It doesn't seem reliable to use
objdump to get ELF sections.
Regards, Roger.
next prev parent reply other threads:[~2024-11-06 12:37 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-11-05 14:55 [PATCH] x86/boot: Fix build with LLVM toolchain Frediano Ziglio
2024-11-05 15:32 ` Jan Beulich
2024-11-05 16:35 ` Frediano Ziglio
2024-11-05 17:06 ` Jan Beulich
2024-11-06 6:56 ` Frediano Ziglio
2024-11-06 10:59 ` Jan Beulich
2024-11-06 11:34 ` Frediano Ziglio
2024-11-06 11:45 ` Jan Beulich
2024-11-06 11:58 ` Frediano Ziglio
2024-11-06 12:37 ` Roger Pau Monné [this message]
2024-11-07 9:46 ` Jan Beulich
2024-11-05 19:23 ` Andrew Cooper
2024-11-06 10:32 ` Alejandro Vallejo
2024-11-06 10:50 ` Andrew Cooper
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=ZytjEoRjAPhtR7Ga@macbook \
--to=roger.pau@citrix.com \
--cc=andrew.cooper3@citrix.com \
--cc=frediano.ziglio@cloud.com \
--cc=jbeulich@suse.com \
--cc=julien@xen.org \
--cc=sstabellini@kernel.org \
--cc=xen-devel@lists.xenproject.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.