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

g++/libstdc++-dev [was Re: X Strike Force SVN commit: rev 69 - branches/4.3.0/sid/debian]



[CC ing to debian-gcc, maybe Martin or Phil could comment ...]

Branden Robinson writes:
> On Thu, May 29, 2003 at 10:59:01AM +0200, Matthias Klose wrote:
> > Branden Robinson writes:
> > > On Mon, May 26, 2003 at 10:22:41PM +0200, Matthias Klose wrote:
> > > > Branden Robinson writes:
> > > > > Questions for debian-{x,devel}:
> > > > > 
> > > > > 1) Should libstdc++-dev dependencies be made "artificially" strict in
> > > > > packages destined for sid so that it's harder for packages built
> > > > > against, say, libstdc++3 to accidentally sneak in and start regressing
> > > > > the C++ ABI transition progress?
> > > > 
> > > > A dependency on the libstdc++-dev package is not (yet) needed, as
> > > > every new major version of gcc comes with a new libstdc++XXX-dev
> > > > package. Maybe it's better to depend on g++ (>= 3:3.3-1) or a specific
> > > > g++ version if yoou need it. I'll file a report on build-essential to
> > > > tighten this dependency.
> > > 
> > > I have to admit I'm not completely clear on what you mean here.
> > > 
> > > Why should a -dev package for a C++ library declare a versioned
> > > dependency on the compiler?  Why isn't it sufficient to declare a
> > > dependency, even a specific one, on the standard C++ library?
> > 
> > g++-3.2 has /usr/include/c++/3.2 in the include path, g++-3.3
> > /usr/include/c++/3.3. Declaring a dependency on libstdc++5-dev
> > (gcc-3.2 based) and building with g++ (>= 3:3.3) doesn't use
> > libstdc++5-dev, but libstdc++5-3.3-dev.
> 
> Well, uh, so what?  If G++ 3.2 and 3.3 have compatible ABIs, and the
> standard C++ libraries are compatible at the source level, does the
> above really matter?

I don'know, if the libraries are compatible at "source level", the
combination of g++ and library (from the same gcc source) should be.

> > > Or are you saying that depending on g++ (>= 3:3.3-1) is the best way to
> > > prevent people from accidentally regressing the C++ ABI transition
> > > progress?
> > > 
> > > If so, shouldn't we make that Policy?
> > 
> > As the g++ package, which makes 3.3 the default, entered testing
> > today, I filed a report to build-essential to do this change, maybe
> > this needs to be reflected in policy as well.
> 
> For purposes of Policy I'm interesting in nailing down what it means for
> a -dev package to depend on something, what those dependencies should
> generally be, and why.

The libstdc++-dev and g++ packages (built from one source) depend on
each other. IIRC other distributions have a 'g++devel' packages or
something like this and don't separate the two. AFAIK this won't
change for gcc-3.4 (we'll probably have one more ABI change). So
depending on one of the two packages seems to be enough. When
depending on the -dev package, you have to make sure you use the
correct compiler version to actually use the libstdc++-dev
package. When depending on the g++/g++-X.Y package you cannot make
this mistake (the corresponding libstdc++ version is choosen
automatically).

	Matthias



Reply to: