From: "Dallman, John" <john.dallman@siemens.com>
To: Florian Weimer <fw@deneb.enyo.de>,
"Dallman, John via Gcc-help" <gcc-help@gcc.gnu.org>
Subject: RE: C, -fexceptions, libgcc_s, and related matters on arm64
Date: Tue, 26 Oct 2021 10:03:15 +0000 [thread overview]
Message-ID: <2bdac0728530420dab96f1c5d18dba93@siemens.com> (raw)
In-Reply-To: <87y26jdigr.fsf@mid.deneb.enyo.de>
> Check -S output and see if references to the personality routine are there. Then proceed to the generated object files.
On x86-64, the personality is referenced, quite a lot, in the assembler output:
$ grep __gcc_personality pk/pk_bb.s
.cfi_personality 0x9b,DW.ref.__gcc_personality_v0
.globl __gcc_personality_v0
.cfi_personality 0x9b,DW.ref.__gcc_personality_v0
.hidden DW.ref.__gcc_personality_v0
.weak DW.ref.__gcc_personality_v0
.section .data.DW.ref.__gcc_personality_v0,"awG",@progbits,DW.ref.__gcc_personality_v0,comdat
.type DW.ref.__gcc_personality_v0, @object
.size DW.ref.__gcc_personality_v0, 8
DW.ref.__gcc_personality_v0:
.quad __gcc_personality_v0
On arm64, it is not:
$ grep gcc_per pk/pk_bb.s
((no output))
> Maybe your AArch64 toolchain defaults to static linking?
It seems to be happily using dynamic linking. On x86-64:
$ ldd /path/to/libmine.so
linux-vdso.so.1 => (0x00007ffec69bc000)
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f5eaed0c000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f5eaeaef000)
libc.so.6 => /lib64/libc.so.6 (0x00007f5eae72e000)
libm.so.6 => /lib64/libm.so.6 (0x00007f5eae42c000)
/lib64/ld-linux-x86-64.so.2 (0x00007f5eb3c4f000)
And on arm64:
$ ldd /path/to/libmine.so
linux-vdso.so.1 (0x0000ffff90cca000)
libpthread.so.0 => /lib/aarch64-linux-gnu/libpthread.so.0 (0x0000ffff8d04d000)
libc.so.6 => /lib/aarch64-linux-gnu/libc.so.6 (0x0000ffff8ceda000)
/lib/ld-linux-aarch64.so.1 (0x0000ffff90c9a000)
libm.so.6 => /lib/aarch64-linux-gnu/libm.so.6 (0x0000ffff8ce2d000)
The difference is that the arm64 build does not reference libgcc_s.so.
> Or the compiler is not GCC and does not actually implement this GNU extension?
$ cc --version
cc (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0
Copyright (C) 2019 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.
Any more ideas?
Thanks,
--
John Dallman
Siemens Digital Industries Software
> -----Original Message-----
> From: Florian Weimer <fw@deneb.enyo.de>
> Sent: 23 October 2021 13:38
> To: Dallman, John via Gcc-help <gcc-help@gcc.gnu.org>
> Cc: Dallman, John (DI SW PE OT PC PDE) <john.dallman@siemens.com>
> Subject: Re: C, -fexceptions, libgcc_s, and related matters on arm64
>
> * John via Gcc-help Dallman:
>
> > My arm64 compile options are similar: cc -march=armv8-a
> > -ffp-contract=off -O -fPIC -D_POSIX_SOURCE -
> D_POSIX_C_SOURCE=200112L
> > -c -fexceptions -std=c99 -Wformat -Wformat-security
> > -fstack-protector-strong -fno-strict-aliasing
> >
> > Any suggestions?
>
> Check -S output and see if references to the personality routine are there.
> Then proceed to the generated object files.
>
> Maybe your AArch64 toolchain defaults to static linking? Or the compiler is
> not GCC and does not actually implement this GNU extension?
-----------------
Siemens Industry Software Limited is a limited company registered in England and Wales.
Registered number: 3476850.
Registered office: Faraday House, Sir William Siemens Square, Frimley, Surrey, GU16 8QD.
prev parent reply other threads:[~2021-10-26 10:03 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-10-22 13:24 Dallman, John
2021-10-23 12:38 ` Florian Weimer
2021-10-26 10:03 ` Dallman, John [this message]
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=2bdac0728530420dab96f1c5d18dba93@siemens.com \
--to=john.dallman@siemens.com \
--cc=fw@deneb.enyo.de \
--cc=gcc-help@gcc.gnu.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).