FAQ Search Today's Posts Mark Forums Read
» Video Reviews

» Linux Archive

Linux-archive is a website aiming to archive linux email lists and to make them easily accessible for linux users/developers.


» Sponsor

» Partners

» Sponsor

Go Back   Linux Archive > Debian > Debian GCC

 
 
LinkBack Thread Tools
 
Old 06-18-2011, 02:13 AM
Steve Langasek
 
Default Bug#630853: cpp: multi-arch: foreign or multi-arch: allowed?

Package: cpp
Version: 4:4.6.0-6
Severity: wishlist
Usertags: multiarch

Hi there,

The cpp metapackage has certain reverse-dependencies which, in the multiarch
world, need to be coinstallable (e.g., -dev packages like libregina3-dev and
xutils-dev). To support this, cpp needs to be tagged either Multi-Arch:
foreign, or Multi-Arch: allowed.

Upon consideration, I think Multi-Arch: foreign is ok here. The interface
that cpp provides to its reverse-deps is always an exec() interface of
course, rather than a library interface, which normally would be enough to
qualify for Multi-Arch: foreign. But here there's also the factor that cpp
provides /usr/bin/$target-cpp, only for the given architecture. Could an
arch-dependent package that depends on cpp be assuming the availability of
/usr/bin/$target-cpp for its own arch? Or, coming from the other side,
cpp's preprocessing behavior is architecture independent but its header
search paths are not. Could accidentally installing a foreign arch version
of cpp break native packages that depend on it finding the native headers?

I believe we're safe from both.

We're safe from the first because the only case I know of where cpp will be
invoked as $target-cpp is when a package is being cross-built (either
because it's actually being cross-built, or because of a mis-invocation of
autoconf that sets things up for a cross-build instead of a native build).
In that case, you almost certainly aren't going to get very far with
cross-cpp, you need a cross-compiler as well; and if you have the
cross-compiler correctly installed and configured, it will almost certainly
come with (or depend on) cross-cpp, so no harm done.

We're safe from the second because again, nobody uses cpp by itself as a
toolchain that cares about system headers - they use it together with a
compiler. And the compiler has this dependency graph:

gcc ---Depends--> cpp
|
Depends Depends
|
V V
gcc-4.x --Depends--> cpp-4.x

So since none of the other packages in this graph are Multi-Arch: foreign,
installing a foreign-arch cpp package would require installing foreign-arch
versions of all the others - breaking any dependencies on gcc by a
native-arch package.

If you agree with the above reasoning, please make cpp Multi-Arch: foreign.
If you see flaws in my reasoning, please make cpp Multi-Arch: allowed
instead, and let me know what my error is.

Thanks,
--
Steve Langasek Give me a lever long enough and a Free OS
Debian Developer to set it on, and I can move the world.
Ubuntu Developer http://www.debian.org/
slangasek@ubuntu.com vorlon@debian.org
 
Old 06-20-2011, 10:35 AM
Matthias Klose
 
Default Bug#630853: cpp: multi-arch: foreign or multi-arch: allowed?

On 06/18/2011 04:13 AM, Steve Langasek wrote:
> Package: cpp
> Version: 4:4.6.0-6
> Severity: wishlist
> Usertags: multiarch
>
> Hi there,
>
> The cpp metapackage has certain reverse-dependencies which, in the multiarch
> world, need to be coinstallable (e.g., -dev packages like libregina3-dev and
> xutils-dev). To support this, cpp needs to be tagged either Multi-Arch:
> foreign, or Multi-Arch: allowed.
>
> Upon consideration, I think Multi-Arch: foreign is ok here. The interface
> that cpp provides to its reverse-deps is always an exec() interface of
> course, rather than a library interface, which normally would be enough to
> qualify for Multi-Arch: foreign. But here there's also the factor that cpp
> provides /usr/bin/$target-cpp, only for the given architecture. Could an
> arch-dependent package that depends on cpp be assuming the availability of
> /usr/bin/$target-cpp for its own arch? Or, coming from the other side,

> cpp's preprocessing behavior is architecture independent

I don't think so. the predefined macros differ depending on the architecture /
operating system.

> but its header
> search paths are not. Could accidentally installing a foreign arch version
> of cpp break native packages that depend on it finding the native headers?

why not, assuming that there is architecture dependent information in an
architecture specific header?

for the use of cpp to preprocess an series.in file (python2.7 package), I'm
relying on the architecture pre-defines.

Is this only an issue with cpp, or with gcc too (holding headers and .o files) too?

Matthias



--
To UNSUBSCRIBE, email to debian-gcc-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
Archive: 4DFF225B.5000303@debian.org">http://lists.debian.org/4DFF225B.5000303@debian.org
 
Old 06-20-2011, 06:52 PM
Steve Langasek
 
Default Bug#630853: cpp: multi-arch: foreign or multi-arch: allowed?

On Mon, Jun 20, 2011 at 12:35:07PM +0200, Matthias Klose wrote:

> > cpp's preprocessing behavior is architecture independent

> I don't think so. the predefined macros differ depending on the
> architecture / operating system.

Ok, true.

> > but its header
> > search paths are not. Could accidentally installing a foreign arch version
> > of cpp break native packages that depend on it finding the native headers?

> why not, assuming that there is architecture dependent information in an
> architecture specific header?

> for the use of cpp to preprocess an series.in file (python2.7 package), I'm
> relying on the architecture pre-defines.

Alright. Then cpp should be Multi-Arch: allowed, and those reverse-depends
which don't care about architecture defines and includes can use the ':any'
syntax to depend on cpp.

> Is this only an issue with cpp, or with gcc too (holding headers and .o
> files) too?

I haven't yet encountered any cases where this matters for gcc, so I would
recommend only changing cpp for now.

Thanks,
--
Steve Langasek Give me a lever long enough and a Free OS
Debian Developer to set it on, and I can move the world.
Ubuntu Developer http://www.debian.org/
slangasek@ubuntu.com vorlon@debian.org
 

Thread Tools




All times are GMT. The time now is 01:23 PM.

VBulletin, Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO ©2007, Crawlability, Inc.
Copyright 2007 - 2008, www.linux-archive.org