From: William Roberts <bill.c.roberts@gmail.com>
To: Stephen Smalley <stephen.smalley.work@gmail.com>
Cc: Stephen Smalley <sds@tycho.nsa.gov>,
Petr Lautrbach <plautrba@redhat.com>,
SElinux list <selinux@vger.kernel.org>
Subject: Re: Annotate Deprecated Functions in libselinux
Date: Thu, 27 Feb 2020 12:41:42 -0600 [thread overview]
Message-ID: <CAFftDdomj5C35JLZCx9ATaUcS7Lg3izWx8M5CAX6DPhNuZs62g@mail.gmail.com> (raw)
In-Reply-To: <CAFftDdpG-t4Zo9Ro8xJyxkd6zQ8FoyaTqfQrvG8kcbtP94Xf1Q@mail.gmail.com>
On Tue, Feb 25, 2020 at 3:06 PM William Roberts
<bill.c.roberts@gmail.com> wrote:
>
> On Tue, Feb 25, 2020 at 2:49 PM Stephen Smalley
> <stephen.smalley.work@gmail.com> wrote:
> >
> > On Tue, Feb 25, 2020 at 3:03 PM <bill.c.roberts@gmail.com> wrote:
> > > The annoying part is internal users of the routines. We could always make
> > > a v2 version of the function for internal callers, and leave the old
> > > interfaces intact to work around the warnings, or just pragma them out.
> > > This series pragma's them out.
> > >
> > > diagnostic push has been supported since GCC v4.6. Earlier versions will
> > > warn on this, and the sideffect is that the diagnostic ignored pragma
> > > will be valid for the rest of the file. Clang has similair support thats
> > > been around *at least* since clang 6.0.
> >
> > My inclination (and others are free to disagree) would be to rename
> > the deprecated functions for internal users (and mark them hidden),
> > and add stubs for the old interfaces that call the hidden functions to
> > avoid the need for this pragma.
>
> I'm actually leaning that way myself after thinking about it more.
It doesn't get us around all the issues, anything marked deprecated in selinux.h
and marked hidden_proto in selinux_internal.h, will still need a pragma.
This would be much simpler if we drop the whole hidden_proto stuff, I guess
kloczek is proposing patches? Who is that, I see the Github name as:
Tomasz Kłoczko
But I can't find any matching author in the git logs to CC them.
I'm looking at those macros:
hidden_def
hidden_proto
They both seem to take a function and create an _internal symbol, and
set the global symbol equal to the internal one. Essentially, both the
normal and _internal functions are pointing to the same address.
$ readelf -s ./src/libselinux.so | grep setexeccon_raw
176: 0000000000017c26 63 FUNC GLOBAL DEFAULT 12 setexeccon_raw
279: 0000000000017c26 63 FUNC LOCAL DEFAULT 12
setexeccon_raw_internal
606: 0000000000017c26 63 FUNC GLOBAL DEFAULT 12 setexeccon_raw
The hidden one, additionally
sets the visibility to hidden, which if IIUC, just requires one to
statically link. We can see above the
visibility is local.
What I don't understand, is why one would do this? What actual
performance enhancement do we get?
>
> > Also, FWIW, there is a push to remove
> > the hidden_def/hidden_proto stuff for LTO, see
> > https://github.com/SELinuxProject/selinux/issues/204, although I don't
> > yet know how that will turn out for libselinux.
>
> Good to know.
next prev parent reply other threads:[~2020-02-27 18:41 UTC|newest]
Thread overview: 97+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-02-25 20:02 Annotate Deprecated Functions in libselinux bill.c.roberts
2020-02-25 20:02 ` [PATCH 01/17] security_load_booleans: update return comment bill.c.roberts
2020-02-25 20:02 ` [PATCH 02/17] selinux_booleans_path: annotate deprecated bill.c.roberts
2020-02-25 20:02 ` [PATCH 03/17] " bill.c.roberts
2020-02-25 20:02 ` [PATCH 04/17] selinux_users_path: " bill.c.roberts
2020-02-25 20:02 ` [PATCH 05/17] rpm_execcon: " bill.c.roberts
2020-02-25 20:02 ` [PATCH 06/17] sidget: " bill.c.roberts
2020-02-25 20:02 ` [PATCH 07/17] sidput: " bill.c.roberts
2020-02-25 20:02 ` [PATCH 08/17] checkPasswdAccess: " bill.c.roberts
2020-02-25 20:58 ` Stephen Smalley
2020-02-25 20:02 ` [PATCH 09/17] matchpathcon_init: " bill.c.roberts
2020-02-25 20:02 ` [PATCH 10/17] matchpathcon_fini: " bill.c.roberts
2020-02-25 20:02 ` [PATCH 11/17] matchpathcon: " bill.c.roberts
2020-02-25 20:02 ` [PATCH 12/17] avc_init: " bill.c.roberts
2020-02-25 20:02 ` [PATCH 13/17] src/selinux_internal.h: fix hidden_proto indents bill.c.roberts
2020-02-25 20:02 ` [PATCH 14/17] selinux_internal.h: disable warnings on deprecated bill.c.roberts
2020-02-25 20:02 ` [PATCH 15/17] avc_open: mark allowed use of avc_init bill.c.roberts
2020-02-25 20:02 ` [PATCH 16/17] src/matchpathcon: allow use of deprecated funcs bill.c.roberts
2020-02-25 20:02 ` [PATCH 17/17] utils/matchpathcon: " bill.c.roberts
2020-02-25 20:51 ` Annotate Deprecated Functions in libselinux Stephen Smalley
2020-02-25 21:06 ` William Roberts
2020-02-27 18:41 ` William Roberts [this message]
2020-02-27 19:48 ` Stephen Smalley
2020-02-27 20:03 ` Ondrej Mosnacek
2020-02-27 20:10 ` William Roberts
2020-02-27 20:24 ` Stephen Smalley
2020-02-27 20:43 ` Ulrich Drepper
2020-02-27 21:05 ` William Roberts
2020-02-27 21:13 ` Stephen Smalley
2020-02-27 21:18 ` William Roberts
2020-02-27 21:32 ` Stephen Smalley
2020-02-27 21:34 ` William Roberts
2020-02-27 21:19 ` Ulrich Drepper
2020-02-27 21:31 ` William Roberts
2020-04-16 15:43 ` bill.c.roberts
2020-04-16 15:43 ` [PATCH v2 01/18] security_load_booleans: update return comment bill.c.roberts
2020-04-16 15:43 ` [PATCH v2 02/18] security_load_booleans: annotate deprecated bill.c.roberts
2020-04-16 15:43 ` [PATCH v2 03/18] selinux_booleans_path: " bill.c.roberts
2020-04-16 15:43 ` [PATCH v2 04/18] selinux_users_path: " bill.c.roberts
2020-04-16 15:43 ` [PATCH v2 05/18] rpm_execcon: " bill.c.roberts
2020-04-16 15:43 ` [PATCH v2 06/18] sidget: " bill.c.roberts
2020-04-16 15:43 ` [PATCH v2 07/18] sidput: " bill.c.roberts
2020-04-16 15:43 ` [PATCH v2 08/18] checkPasswdAccess: " bill.c.roberts
2020-04-16 15:43 ` [PATCH v2 09/18] matchpathcon_init: " bill.c.roberts
2020-04-16 15:43 ` [PATCH v2 10/18] matchpathcon_fini: " bill.c.roberts
2020-04-16 15:43 ` [PATCH v2 11/18] matchpathcon: " bill.c.roberts
2020-04-16 15:43 ` [PATCH v2 12/18] avc_init: " bill.c.roberts
2020-04-16 15:43 ` [PATCH v2 13/18] avc: create internal avc_init interface bill.c.roberts
2020-04-16 15:43 ` [PATCH v2 14/18] matchpathcon: create internal matchpathcon_fini interface bill.c.roberts
2020-04-16 15:43 ` [PATCH v2 15/18] matchpathcon: create internal matchpathcon interface bill.c.roberts
2020-04-16 15:43 ` [PATCH v2 16/18] selinux_check_passwd_access: annotate deprecated bill.c.roberts
2020-04-16 15:43 ` [PATCH v2 17/18] utils: matchpathcon to use interal interfaces bill.c.roberts
2020-04-16 15:43 ` [PATCH v2 18/18] utils: matchpathcon add deprecated warning bill.c.roberts
2020-04-19 13:46 ` Annotate Deprecated Functions in libselinux Nicolas Iooss
2020-04-20 14:34 ` Roberts, William C
2020-04-20 15:45 ` [v3] " bill.c.roberts
2020-04-20 15:45 ` [PATCH v3 01/19] security_load_booleans: update return comment bill.c.roberts
2020-04-20 15:45 ` [PATCH v3 02/19] security_load_booleans: annotate deprecated bill.c.roberts
2020-04-20 15:45 ` [PATCH v3 03/19] selinux_booleans_path: " bill.c.roberts
2020-04-20 15:45 ` [PATCH v3 04/19] selinux_users_path: " bill.c.roberts
2020-04-20 15:45 ` [PATCH v3 05/19] rpm_execcon: " bill.c.roberts
2020-04-20 15:45 ` [PATCH v3 06/19] sidget: " bill.c.roberts
2020-04-20 15:45 ` [PATCH v3 07/19] sidput: " bill.c.roberts
2020-04-20 15:45 ` [PATCH v3 08/19] checkPasswdAccess: " bill.c.roberts
2020-04-20 15:45 ` [PATCH v3 09/19] matchpathcon_init: " bill.c.roberts
2020-04-20 15:45 ` [PATCH v3 10/19] matchpathcon_fini: " bill.c.roberts
2020-04-20 15:45 ` [PATCH v3 11/19] matchpathcon: " bill.c.roberts
2020-04-20 15:45 ` [PATCH v3 12/19] avc_init: " bill.c.roberts
2020-04-20 15:45 ` [PATCH v3 13/19] avc: create internal avc_init interface bill.c.roberts
2020-04-26 13:33 ` Nicolas Iooss
2020-04-26 15:53 ` William Roberts
2020-04-20 15:45 ` [PATCH v3 14/19] matchpathcon: create internal matchpathcon_fini interface bill.c.roberts
2020-04-20 15:45 ` [PATCH v3 15/19] matchpathcon: create internal matchpathcon interface bill.c.roberts
2020-04-20 15:45 ` [PATCH v3 16/19] selinux_check_passwd_access: annotate deprecated bill.c.roberts
2020-04-20 15:45 ` [PATCH v3 17/19] matchpathcon: allow use of deprecated routines bill.c.roberts
2020-04-20 15:45 ` [PATCH v3 18/19] utils: matchpathcon add deprecated warning bill.c.roberts
2020-04-20 15:45 ` [PATCH v3 19/19] Makefile: swig build allow deprecated functions bill.c.roberts
2020-04-27 20:22 ` [v4] Annotate Deprecated Functions in libselinux bill.c.roberts
2020-04-27 20:22 ` [PATCH v4 01/18] security_load_booleans: update return comment bill.c.roberts
2020-04-27 20:22 ` [PATCH v4 02/18] security_load_booleans: annotate deprecated bill.c.roberts
2020-04-27 20:23 ` [PATCH v4 03/18] selinux_booleans_path: " bill.c.roberts
2020-04-27 20:23 ` [PATCH v4 04/18] selinux_users_path: " bill.c.roberts
2020-04-27 20:23 ` [PATCH v4 05/18] rpm_execcon: " bill.c.roberts
2020-04-27 20:23 ` [PATCH v4 06/18] sidget: " bill.c.roberts
2020-04-27 20:23 ` [PATCH v4 07/18] sidput: " bill.c.roberts
2020-04-27 20:23 ` [PATCH v4 08/18] checkPasswdAccess: " bill.c.roberts
2020-04-27 20:23 ` [PATCH v4 09/18] matchpathcon_init: " bill.c.roberts
2020-04-27 20:23 ` [PATCH v4 10/18] matchpathcon_fini: " bill.c.roberts
2020-04-27 20:23 ` [PATCH v4 11/18] matchpathcon: " bill.c.roberts
2020-04-27 20:23 ` [PATCH v4 12/18] avc_init: " bill.c.roberts
2020-04-27 20:23 ` [PATCH v4 13/18] avc: create internal avc_init interface bill.c.roberts
2020-04-27 20:23 ` [PATCH v4 14/18] matchpathcon: create internal matchpathcon_fini interface bill.c.roberts
2020-04-27 20:23 ` [PATCH v4 15/18] selinux_check_passwd_access: annotate deprecated bill.c.roberts
2020-04-27 20:23 ` [PATCH v4 16/18] matchpathcon: allow use of deprecated routines bill.c.roberts
2020-04-27 20:23 ` [PATCH v4 17/18] utils: matchpathcon add deprecated warning bill.c.roberts
2020-04-27 20:23 ` [PATCH v4 18/18] Makefile: swig build allow deprecated functions bill.c.roberts
2020-04-28 21:25 ` [v4] Annotate Deprecated Functions in libselinux Nicolas Iooss
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=CAFftDdomj5C35JLZCx9ATaUcS7Lg3izWx8M5CAX6DPhNuZs62g@mail.gmail.com \
--to=bill.c.roberts@gmail.com \
--cc=plautrba@redhat.com \
--cc=sds@tycho.nsa.gov \
--cc=selinux@vger.kernel.org \
--cc=stephen.smalley.work@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 NNTP newsgroup(s).