Bug List: (This bug is not in your last search results)   Show last search results      Search page      Enter new bug
Bug#: 29289
Product:  
Component:  
Status: RESOLVED
Resolution: INVALID
Assigned To: Not yet assigned to anyone <unassigned@gcc.gnu.org>
Host:
Reported against  
Priority:  
Severity:  
Target Milestone:  
 
 
Target:
Reporter: Matthias Klose <doko@ubuntu.com>
Add CC:
CC:
Remove selected CCs
Build:
URL:
Summary:
Keywords:
Known to work:
Known to fail:

Attachment Description Type Created Size Actions
symbols.diff difference of symbols (objdump -T) text/plain 2006-09-29 17:46 4.22 KB Edit
Create a New Attachment (proposed patch, testcase, etc.) View All

Bug 29289 depends on: Show dependency tree
Show dependency graph
Bug 29289 blocks:

Additional Comments:






View Bug Activity   |   Format For Printing   |   Clone This Bug


Description:   Last confirmed: Opened: 2006-09-29 17:44
seen on various linux architectures, building apt results in a library with
several additional weak symbols defined. trying to build and link a program
(built with the changed compiler version) to the apt library built with the
older compiler version results in a link failure, shown below. rebuilding the
library with the changed compiler lets the application link again.

- on the 4.1 branch, the additional symbols seem to be the result
  of a part of the r116763 checkin; reverting the changes for PR26195
  restores the old behaviour.
- not yet searched on mainline; the change is between 20060815 and
  20060923.

is this a bug in apt's use in #pragma interface?


g++ -g -O2 -o synaptic gsynaptic.o gtkpkglist.o rgaboutpanel.o
rgcacheprogress.o rgpkgcdrom.o rgpreferenceswindow.o rgfetchprogress.o
rgfiltermanager.o rgfindwindow.o rgiconlegend.o rglogview.o rgmisc.o
rgsetoptwindow.o rgdummyinstallprogress.o rgdebinstallprogress.o
rgterminstallprogress.o rginstallprogress.o rgslideshow.o rgtaskswin.o
rgcdscanner.o rgmainwindow.o rgpkgdetails.o rgrepositorywin.o rgvendorswindow.o
rgsummarywindow.o rgchangeswindow.o rguserdialog.o rgwindow.o rggladewindow.o
../common/libsynaptic.a -lapt-pkg -lapt-inst -lglade-2.0 -lgtk-x11-2.0 -lxml2
-lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lm -lpangocairo-1.0 -lfontconfig
-lXext -lXrender -lXinerama -lXi -lXrandr -lXcursor -lXfixes -lcairo -lX11
-lpango-1.0 -lgobject-2.0 -lgmodule-2.0 -ldl -lglib-2.0 -lvte -lncurses -lXft
-lgtk-x11-2.0 -lpangoxft-1.0 -lpangox-1.0 -lgdk-x11-2.0 -latk-1.0
-lgdk_pixbuf-2.0 -lm -lpangocairo-1.0 -lfontconfig -lXext -lXrender -lXinerama
-lXi -lXrandr -lXcursor -lXfixes -lcairo -lX11 -lpangoft2-1.0 -lpango-1.0
-lgobject-2.0 -lgmodule-2.0 -ldl -lglib-2.0 -llaunchpad-integration
-lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lm -lpangocairo-1.0
-lfontconfig -lXext -lXrender -lXinerama -lXi -lXrandr -lXcursor -lXfixes
-lpango-1.0 -lcairo -lX11 -lgobject-2.0 -lgmodule-2.0 -ldl -lglib-2.0 -lpthread
rgpkgcdrom.o: In function `pkgCdromStatus':
/usr/include/apt-pkg/cdrom.h:20: undefined reference to `vtable for
pkgCdromStatus'
rgpkgcdrom.o: In function `~pkgCdromStatus':
/usr/include/apt-pkg/cdrom.h:21: undefined reference to `vtable for
pkgCdromStatus'
rgpkgcdrom.o: In function `pkgCdromStatus':
/usr/include/apt-pkg/cdrom.h:20: undefined reference to `vtable for
pkgCdromStatus'
rgpkgcdrom.o: In function `~pkgCdromStatus':
/usr/include/apt-pkg/cdrom.h:21: undefined reference to `vtable for
pkgCdromStatus'
/usr/include/apt-pkg/cdrom.h:21: undefined reference to `vtable for
pkgCdromStatus'
rgpkgcdrom.o:/usr/include/apt-pkg/cdrom.h:21: more undefined references to
`vtable for pkgCdromStatus' follow
rgpkgcdrom.o:(.rodata._ZTV11RGCDScanner[vtable for RGCDScanner]+0x10):
undefined reference to `pkgCdromStatus::SetTotal(int)'
rgpkgcdrom.o:(.rodata._ZTV11RGCDScanner[vtable for RGCDScanner]+0x20):
undefined reference to `pkgCdromStatus::GetOpProgress()'
rgpkgcdrom.o:(.rodata._ZTI11RGCDScanner[typeinfo for RGCDScanner]+0x10):
undefined reference to `typeinfo for pkgCdromStatus'
rgmainwindow.o: In function `~pkgCdromStatus':
/usr/include/apt-pkg/cdrom.h:21: undefined reference to `vtable for
pkgCdromStatus'
../common/libsynaptic.a(rpackagecache.o): In function `~RPkgPolicy':
/tmp/2/synaptic-0.57.11ubuntu9/common/rpackagecache.h:40: undefined reference
to `pkgPolicy::~pkgPolicy()'
/tmp/2/synaptic-0.57.11ubuntu9/common/rpackagecache.h:40: undefined reference
to `pkgPolicy::~pkgPolicy()'
../common/libsynaptic.a(rpackagelister.o): In function `pkgArchiveCleaner':
/usr/include/apt-pkg/clean.h:20: undefined reference to `vtable for
pkgArchiveCleaner'
../common/libsynaptic.a(rpackagelister.o): In function `~pkgArchiveCleaner':
/usr/include/apt-pkg/clean.h:28: undefined reference to `vtable for
pkgArchiveCleaner'
/usr/include/apt-pkg/clean.h:28: undefined reference to `vtable for
pkgArchiveCleaner'
/usr/include/apt-pkg/clean.h:28: undefined reference to `vtable for
pkgArchiveCleaner'
collect2: ld returned 1 exit status

------- Comment #1 From Matthias Klose 2006-09-29 17:46 -------
Created an attachment (id=12355) [edit]
difference of symbols (objdump -T)

sources and binaries for the shared library at
http://people.ubuntu.com/~doko/apt/

------- Comment #2 From Andrew Pinski 2006-09-29 17:59 -------
This seems more like an ABI issue in older 4.1's and 4.2's rather than a bug in
the newer 4.1.2 and 4.2.0.

I bet we had an accidental ABI change in 4.0.0 and we have no fixed that.
I am thinking we should close this as a non bug.

"#pragma interface" should be killed really, all it does is bring trouble.

------- Comment #3 From Richard Guenther 2008-03-27 22:09 -------
As suggested.  Please re-open only with a proper testcase.

Bug List: (This bug is not in your last search results)   Show last search results      Search page      Enter new bug