[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: libstdc++5 problem



Stuart Reeves wrote:

Hi,

I don't know if this is an appropriate list, but I'll try anyway and
prepare myself for someone to tell me to go away :)
Yes, this is an appropriate list. However, you should not hijack an existing thread, which it appears that you've done. You should create a new email instead of responding to an existing thread.

Firstly, I have done a stupid thing. I recently installed firefox and it
required libstdc++5, which I didn't have since I am running woody (i.e.,
stable only). So, I added unstable to my sources.list and apt-getted
libstdc++5, after which firefox worked ok.

Then I tried to compile a few programs and hit, with each time, the same
error, such as this when I was compiling subversion:

---
/lib/libgcc_s.so.1(*IND*+0x0): multiple definition of `__divdi3@GLIBC_2.0'
/lib/libc.so.6(.text+0x770): first defined here
/usr/bin/ld: /lib/libgcc_s.so.1: warning: unexpected redefinition of
`__umoddi3@GLIBC_2.0'
/usr/bin/ld: /lib/libgcc_s.so.1: warning: unexpected redefinition of
`__udivdi3@GLIBC_2.0'
/usr/bin/ld: /lib/libgcc_s.so.1: warning: unexpected redefinition of
`__moddi3@GLIBC_2.0'
---

Now, clearly I have a problem here since my version of gcc is the stable
woody 3.0.4 package and (according to my web searches), my problem is that
I need the gcc >= 3.2 packages in order to do the linking process
properly.

So my problem is this: is there a work-around such that I can run firefox,
but link with my older (stable) version of gcc? I could install the
unstable version of gcc which would solve the problem (I presume), however
I don't fancy running an unstable compiler and furthermore, the
dependencies seem to require that I remove my kernel-image package!
I don't know enough about mixed systems or compiling to actually address your issue, but I would like to say two things:

1) "unstable" does not refer to the programs within the unstable branch, which is what you imply when you say that you don't wish to run an "unstable compiler"; it refers to the flux that the branch goes through on a rapid basis; this package upgraded, that one replaced, this one removed, that one added, this one broken into multiple packages, that bug being fixed, etc. Whereas a particular program, such as gcc, may be unstable in the conventional sense, more often than not, it's simply improved over the older version. In other words, don't make the mistake of thinking that the unstable branch means that the packages within it are unstable. Stable vs Unstable really refers to how much change your box goes through if you apt-get upgrade often; a Stable box only gets security updates / patches, whereas an Unstable box might get new stuff every three minutes if you upgrade that often.

2) Depending on your needs, you might find that upgrading from Stable to Testing/Sarge or even to Unstable/Sid would help you more than hurt. For me, I run all my workstations on unstable; if I pick up a problem with a broken package, I either wait a few hours (or maybe days, seldom ever do I have to wait weeks) and the bug gets fixed, or I search how to fix the problem myself. More cautious people check the bug reports and change logs, etc (there are tools for doing this more automatically, such as apt-bug-list or something-or-other) and just avoid doing an upgrade when there's a bug that might hit them. By upgrading to Sarge or Sid, you get newer versions of just about everything, and by being careful with your upgrades, you can avoid doing an upgrade when it threatens to break your system. In other words, with care, you can have a more up-to-date system without it being "unstable" in the "flakey" sense. Of course, you might have a very good reason for sticking with Stable; your mileage may vary.

PS. The removal of your kernel-image package is probably a "removal followed by an upgrade" rather than an actual removal. But not having access to what you're seeing, that's just a guess.

--
Kent



Reply to: