protocolbuffers / protocolbuffers/protobuf

"_upb_UnreachableFailure", Building wheel for protobuf (pyproject.toml) did not run successfully.

Open
#29,364 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug untriaged
Dominant language
C++
Stars
72k
Forks
16.3k
Avg merge
1d 17h
Merged PRs (30d)
140

Description

What version of protobuf and what language are you using?
Version: last stable release 7.36.0
Language: Python
linux provides by Mageia 10
building with python 3.13.13, gcc 15.2.0, rpmbuild 4.20.1

What did you do?
using a rpmbuild spec file, I build last protobuf archive release (tazr.gz) with those macros :
%generate_buildrequires
%pyproject_buildrequires
%pyproject_wheel

What did you expect to see
complete building

What did you see instead?
building stops with a ld error :

/usr/bin/ld: build/temp.linux-x86_64-cpython-313/python/convert.o: in function `upb_FieldDef_TypeString':
  /home/paul/rpmbuild/BUILD/python-protobuf-7.36.0-build/protobuf-7.36.0/python/convert.c:176:(.text+0x4c0): undefined reference to `_upb_UnreachableFailure'
  /usr/bin/ld: build/temp.linux-x86_64-cpython-313/upb/message/compare.o: in function `upb_MessageValue_IsEqual':
  /home/paul/rpmbuild/BUILD/python-protobuf-7.36.0-build/protobuf-7.36.0/upb/message/compare.h:70:(.text+0xb4a): undefined reference to `_upb_UnreachableFailure'
  /usr/bin/ld: build/temp.linux-x86_64-cpython-313/upb/message/compare.o: in function `_upb_Extension_IsEmpty_dont_copy_me__upb_internal_use_only':
  /home/paul/rpmbuild/BUILD/python-protobuf-7.36.0-build/protobuf-7.36.0/upb/message/internal/extension.h:71:(.text+0xb62): undefined reference to `_upb_UnreachableFailure'
  /usr/bin/ld: build/temp.linux-x86_64-cpython-313/upb/message/compare.o: in function `_upb_Message_ExtensionsAreEqual':
  /home/paul/rpmbuild/BUILD/python-protobuf-7.36.0-build/protobuf-7.36.0/upb/message/compare.c:162:(.text+0xb7a): undefined reference to `_upb_UnreachableFailure'
  /usr/bin/ld: build/temp.linux-x86_64-cpython-313/upb/message/compare.o: in function `upb_MessageValue_IsEqual':
  /home/paul/rpmbuild/BUILD/python-protobuf-7.36.0-build/protobuf-7.36.0/upb/message/compare.h:70:(.text+0xf19): undefined reference to `_upb_UnreachableFailure'
  /usr/bin/ld: build/temp.linux-x86_64-cpython-313/upb/message/convert.o:/home/paul/rpmbuild/BUILD/python-protobuf-7.36.0-build/protobuf-7.36.0/upb/message/internal/extension.h:71: more undefined references to `_upb_UnreachableFailure' follow

Anything else we should know about your project / environment
pyproject_buildrequires confirms that all requirements are available
although pyproject_wheel claims for an absent external symbol `_upb_UnreachableFailure'

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the wheel build with the reported rpmbuild macros and inspect the undefined symbol references in python/convert.c, upb/message/compare.c, and upb/message/internal/extension.h. Trace where _upb_UnreachableFailure is expected to be provided during linking. Done means the protobuf 7.36.0 wheel builds successfully on the reported Python and Linux environment.

Written by the indexing model from the issue text.

Assessment

Tech stack
c, python
Domain
build-system
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.