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 -- Summary: [4.1/4.2] additionally weak symbols referenced/generated Product: gcc Version: 4.1.2 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: doko at ubuntu dot com http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29289