Re: -Wp,-D_FORTIFY_SOURCE=3 and other compiler flags stored in Python

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Jan 16, 2023 at 9:01 PM Jakub Jelinek <jakub@xxxxxxxxxx> wrote:
>
> On Mon, Jan 16, 2023 at 08:42:32PM +0100, Miro Hrončok wrote:
> > On 16. 01. 23 20:30, Siddhesh Poyarekar wrote:
> > > If it is for distribution packages then I reckon the flags should be
> > > as close as possible for the mere reason of consistency within the
> > > distribution.
> >
> > Nope, the individual packages with extension modules all¹ use the
> > %{build_cflags} flags by default.
> >
> > ¹: Technically they are required to and it is really hard not to do that noways.
> >
> > > If they're used for custom built modules (e.g. through
> > > a tool that python auto-generates to build modules), then a very small
> > > subset of the above flags would be necessary to retain binary
> > > compatibility; you should be able to remove most of it.
> >
> > That is what I thought. Thank you.
>
> Options like -m64/-m32 are ABI changing (but in %{optflags} these days
> mostly uselessly because we don't usually cross-compile and gcc defaults to
> those), -fsigned-char/-funsigned-char (I see it in redhat-rpm-config but
> for armv3l/armv4b/armv4l which we don't build - in the past it was used on
> more platforms) would be ABI changing, again on arm the various
> -march=, -mfpu=, -mfloat-abi=, -mabi= options (but note that e.g. on most
> other arches the -march= options aren't ABI changing, one just needs hw with
> all the ISAs required by the built code), -fexceptions could be considered
> partly ABI changing (at least say pthread_cancel through some objects
> built with -fexceptions and others without that or with -fno-exceptions
> will not destruct everything that should be after reaching frames without
> it or similarly throwing C++ exceptions won't work well), so I'd suggest
> to keep that one in.  -mlong-double-{64,128} would be ABI changing, but
> we just use compiler's default.  -mabi={ibm,ieee}longdouble are ABI changing
> on ppc64le too, but again we use the compiler defaults.
> If you look at gcc documentation, many options are marked as ABI changing,
> but I don't see them used in our %{optflags}...
>
> So, when talking about options actually in use currently in f36/f37/f38 on
> Fedora supported arches, I think -fexceptions is the only one I'd list.

Isn't the problem here that building Python extensions needs to work
correctly in two - possibly conflicting - scenarios:

- in RPM packages, where using system compiler flags is a MUST
- when user installs Python packages manually, for example with pip in
a venv, where using system compiler flags isn't necessary (or
necessarily a good idea)

Just dropping everything but `-fexceptions` would certainly violate
Packaging Guidelines (i.e. packages not getting built with default
compiler and hardening flags) in the first scenario, wouldn't it?

Fabio
_______________________________________________
devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx
Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: https://lists.fedoraproject.org/archives/list/devel@xxxxxxxxxxxxxxxxxxxxxxx
Do not reply to spam, report it: https://pagure.io/fedora-infrastructure/new_issue




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Fedora Announce]     [Fedora Users]     [Fedora Kernel]     [Fedora Testing]     [Fedora Formulas]     [Fedora PHP Devel]     [Kernel Development]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Gimp]     [Yosemite News]

  Powered by Linux