armel: undefined symbol: __sync_fetch_and_add_4

Bug #375334 reported by Loïc Minier
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
gcc-4.4 (Ubuntu)
Fix Released
Medium
Unassigned
python-apt (Ubuntu)
Fix Released
Undecided
Loïc Minier

Bug Description

Hi

python-apt currently fails to build with:
/build/buildd/python-apt-0.7.10.3ubuntu1/build/lib.linux-armv5tel-2.5/apt_pkg.so: undefined symbol: __sync_fetch_and_add_4

linking with -lgcc/-lgcc_s works around the issue, but it's clearly a toolchain regression since the same source builds fine under jaunty/armel.

Other arches than armel aren't affected.

Bye

Tags: armel
Revision history for this message
Loïc Minier (lool) wrote :

Adding a python-apt task because we need to upload a workaround and I want to keep this bug open on python-apt to not forget to revert the workaround.

Revision history for this message
Matthias Klose (doko) wrote :

exception propagation support is a new feature in 4.4, not a regression. the implementation is different on arm-linux-gnueabi than on other architectures.

still unknown why the symbol is left undefined.

Changed in gcc-4.4 (Ubuntu):
importance: Undecided → Medium
status: New → Triaged
Revision history for this message
Loïc Minier (lool) wrote :

The gcc 4.4 news mention:
# GCC now supports the __sync_* atomic operations for ARM EABI GNU/Linux.

Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package gcc-4.4 - 4.4.0-3ubuntu4

---------------
gcc-4.4 (4.4.0-3ubuntu4) karmic; urgency=low

  * Update to SVN 20090514 from the gcc-4_4-branch (r147544).
    - Fixes PR tree-optimization/40062, PR middle-end/39986,
      PR middle-end/40057, PR fortran/39879, PR libstdc++/40038,
      PR middle-end/40035, PR target/37179, PR middle-end/39666,
      PR tree-optimization/40074, PR fortran/40018, PR fortran/38863,
      PR middle-end/40147.
  * Update libstdc++ symbols files.
  * Update libgcc, libobjc, libstdc++ symbols files for armel.
  * Fix version symlink in gcc_lib_dir. Closes: #527837.
  * Fix symlinks for javac and header files in /usr/lib/jvm.
    Closes: #528084.
  * Don't build the stage1 compiler with -O turned on.
  * Revert doing link tests to check for the atomic builtins, disabling
    exception propagation support in libstdc++ on armel. See PR40133, PR40134.
    LP: #375334.
  * Don't apply the patch for atom support from the intel/gcc-4_4-branch.
    Configure --with-arch=pentium-m --with-tune=i586 on lpia. LP: #376499.

 -- Matthias Klose <email address hidden> Fri, 15 May 2009 00:01:41 +0200

Changed in gcc-4.4 (Ubuntu):
status: Triaged → Fix Released
Paul Larson (pwlars)
tags: removed: arm
Revision history for this message
Paul Larson (pwlars) wrote :

Is the python-apt task still needed, or has the workaround (if it was implemented) been reverted already?

Revision history for this message
Loïc Minier (lool) wrote :

I reverted the workaround in bzr.

Changed in python-apt (Ubuntu):
assignee: nobody → Loïc Minier (lool)
status: New → Fix Committed
Revision history for this message
Launchpad Janitor (janitor) wrote :
Download full text (3.6 KiB)

This bug was fixed in the package python-apt - 0.7.12.1ubuntu1

---------------
python-apt (0.7.12.1ubuntu1) karmic; urgency=low

  [ Michael Vogt ]
  * apt/package.py:
    - add "recommends" property
  * debian/control:
    - change build-dep for libapt-pkg-dev to >= 0.7.21
  * merged with debian/unstable

  [ Loïc Minier ]
  * Revert addition of gcc and gcc_s to python-apt libs as the toolchain has
    been fixed; LP: #375334.

  [ Julian Andres Klode ]
  * apt/package.py:
   - Introduce Version.get_dependencies() which takes one or more types
     of dependencies and returns a list of Dependency objects.

python-apt (0.7.12.1) unstable; urgency=low

  * apt/debfile.py:
    - Fix missing space in message (Closes: #539704)
  * apt/package.py:
    - Add missing argument to Version.__le__() and Version.__ge__()
  * debian/control:
    - Do not build-depend on python-gtk2 and python-vte on kfreebsd-*.
  * setup.py:
    - Always build documentation, even if python-gtk2 is not installed.

python-apt (0.7.12.0) unstable; urgency=low

  [ Julian Andres Klode ]
  * python/cache.cc:
    - Support Breaks, Enhances dependency types (Closes: #416247)
  * debian/control:
    - Only recommend libjs-jquery (Closes: #527543)
    - Build-depend on libapt-pkg-dev (>= 0.7.22~)
    - Update Standards-Version to 3.8.2
  * apt/cache.py:
    - Correctly handle rootdir on second and later invocations of
      open(), by calling InitSystem again. (LP: #320665).
    - Provide broken_count, delete_count, install_count, keep_count
      properties (Closes: #532338)
    - Only create Package objects when they are requested, do not keep them in
      a dict. Saves 10MB for 25,000 packages on my machine.
  * apt/package.py:
    - Allow to set the candidate of a package (Closes: #523997)
      + Support assignments to the 'candidate' property of Package objects.
      + Initial patch by Sebastian Heinlein
    - Make comparisons of Version object more robust.
    - Return VersionList objects in Package.versions, which are sequences
      and also provide features of mappings. (partial API BREAK)
      + Allows to get a specific version (Closes: #523998)
  * apt/progress/__init__.py:
    - Do not break out of InstallProgress.waitChild()'s loop just because it
      is hitting EINTR, but only on child exit or on ECHILD.
  * Use debhelper 7 instead of CDBS

  [ Stefano Zacchiroli ]
  * debian/python-apt.doc-base: register the documentation with the
    doc-base system (Closes: #525134)

  [ Sebastian Heinlein ]
  * apt/progress.py: Extract the package name from the status message
    (Closes: #532660)

python-apt (0.7.11.1) unstable; urgency=low

  [ Stephan Peijnik ]
  * apt/progress/__init__.py:
    - Exception handling fixes in InstallProgress class.

  [ Michael Vogt ]
  * python/tag.cc:
    - merge patch from John Wright that adds FindRaw method
      (closes: #538723)

python-apt (0.7.11.0) unstable; urgency=low

  [ Julian Andres Klode ]
  * data/templates/Debian.info.in: Squeeze will be 6.0, not 5.1

  [ Stephan Peijnik ]
  * apt/progress/__init__.py:
    - add update_status_full() that takes file_size/partial_size as
      additional callback arguments
    - add pulse...

Read more...

Changed in python-apt (Ubuntu):
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.