Skip to content

Undefinied _Py_Sigset_Converter function when HAVE_SIGSET_T not set #85670

Closed

Description

@RomanYurchak
BPO 41498
Nosy @brettcannon, @tiran, @serhiy-storchaka, @pablogsal, @miss-islington
PRs
  • bpo-41498: Fix build on platforms without sigset_t (GH-29770) #29770
  • [3.10] bpo-41498: Fix build on platforms without sigset_t (GH-29770) #29773
  • [3.9] bpo-41498: Fix build on platforms without sigset_t (GH-29770) (GH-29774) #29774
  • Note: these values reflect the state of the issue at the time it was migrated and might not reflect the current state.

    Show more details

    GitHub fields:

    assignee = None
    closed_at = <Date 2021-11-25.12:06:59.602>
    created_at = <Date 2020-08-06.20:20:07.159>
    labels = ['build', '3.8', '3.9']
    title = 'Undefinied _Py_Sigset_Converter function when HAVE_SIGSET_T not set'
    updated_at = <Date 2021-11-25.18:36:19.074>
    user = 'https://bugs.python.org/RomanYurchak'

    bugs.python.org fields:

    activity = <Date 2021-11-25.18:36:19.074>
    actor = 'brett.cannon'
    assignee = 'none'
    closed = True
    closed_date = <Date 2021-11-25.12:06:59.602>
    closer = 'christian.heimes'
    components = []
    creation = <Date 2020-08-06.20:20:07.159>
    creator = 'Roman Yurchak'
    dependencies = []
    files = []
    hgrepos = []
    issue_num = 41498
    keywords = ['patch']
    message_count = 4.0
    messages = ['374963', '406989', '406990', '406992']
    nosy_count = 6.0
    nosy_names = ['brett.cannon', 'christian.heimes', 'serhiy.storchaka', 'pablogsal', 'miss-islington', 'Roman Yurchak']
    pr_nums = ['29770', '29773', '29774']
    priority = 'normal'
    resolution = 'fixed'
    stage = 'resolved'
    status = 'closed'
    superseder = None
    type = 'compile error'
    url = 'https://bugs.python.org/issue41498'
    versions = ['Python 3.8', 'Python 3.9']

    Activity

    1. RomanYurchak commented on Aug 6, 2020

      RomanYurchakmannequin
      MannequinAuthor

      The _Py_Sigset_Converter function is conditionally defined in

      PyAPI_FUNC(int) _Py_Sigset_Converter(PyObject *, void *);
      if ifdef HAVE_SIGSET_T

      However this function is called unconditionally in

      if (!_Py_Sigset_Converter(args[1], &mask)) {
      (there are 4 such occurrences), which leads to a compilation error when HAVE_SIGSET_T is not set.

      This is regression in 3.8+ as far as I can tell due to changes in #6720

      I imagine the solution could be to always define this function but raise an exception if it is called when HAVE_SIGSET_T` is undefined, as done in the following patch: https://github.com/iodide-project/pyodide/blob/fc5495ffdb54a11fd588dc60ba6b8777f90c3724/cpython/patches/0006-fix-Py_Sigset_Converter.patch

      Would this be acceptable, or is there a better way of handling it? Thanks!

    2. tiran commented on Nov 25, 2021

      @tiran
      Member

      New changeset dc19e86 by Christian Heimes in branch 'main':
      bpo-41498: Fix build on platforms without sigset_t (GH-29770)
      dc19e86

    3. miss-islington commented on Nov 25, 2021

      @miss-islington
      Contributor

      New changeset 632d589 by Miss Islington (bot) in branch '3.10':
      [3.10] bpo-41498: Fix build on platforms without sigset_t (GH-29770) (GH-29773)
      632d589

    4. tiran commented on Nov 25, 2021

      @tiran
      Member

      New changeset 71b4147 by Christian Heimes in branch '3.9':
      [3.9] bpo-41498: Fix build on platforms without sigset_t (GH-29770) (GH-29774)
      71b4147

    5. transferred this issue fromon Apr 10, 2022
    Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

    Metadata

    Metadata

    Assignees

    No one assigned

      Labels

      3.8 (EOL)end of life3.9 (EOL)end of lifebuildThe build process and cross-build

      Projects

      No projects

        Milestone

        No milestone

        Relationships

        None yet

        Development

        No branches or pull requests

        Issue actions