On Aug 8, 2005, at 10:44 AM, Martin Costabel wrote:

Lacking instructions on how to run my own 10.4 tree and therefore how to find real problems with it,

Martin: I am making some instructions, but will have to wait until SF finishes their scheduled upgrade of CVS services.

I am at the stage of imagining problems:

Here is what I have found in my experimental version of the 10.4 tree.


Concerning C++ code libraries in the future 10.4 tree, IIUC there will be two non-intersecting subtrees ("T4" and "T3"), the first one compiled with g++-4.0, the other one with g++-3.3.

Actually, there will be three, since a small handful of programs still need g++-3.1.

Ideally T3 will be empty, but right now it cannot be, because any library that is or has to be compiled with g++-3.3 will force anything linked to it to belong to this subtree.

This is true, up to a point. I have found that in some cases, either the linking in question doesn't use the c++-library from the dependent package, or the symbol mangling is apparently *not* incompatible. So sometimes, a package using g++-3.3 can depend on some packages which use g++-4.0 (or vice versa).

Since Apple X11 is compiled with gcc-3.3, at least anything linked with libGLU will belong to T3, and this means among other things qt3, kde and anything related, probably also xfree86 and xorg.

I've compiled qt3 under g++-4.0, and used this qt3 to compile kde under g++-3.3, with no apparent problems.

Probably, though, we should use g++-3.3 for xfree86 and xorg so that fink's versions have the same linker properties as Apple's versions.

Getting more paranoiac, I notice that a lot of libraries in /System/ Library/Frameworks and some in /usr/lib are C++ code, too, so anything linked to Frameworks will need to be in T3. Example libapt- pkg.3.2.dylib (C++), linked to CoreFoundation (no C++(?)), linked to /usr/lib/libicucore.A.dylib (C++).

I have compiled apt under g++-4.0 with no problems.


My question is: Is it clear how strictly transitive this has to be, for example does apt have to be built with g++-3.3? Also, if there exists a binary that is linked to two C++ libraries, one of them in T3, does this mean the other one has to be in T3, too? Or will this binary be eliminated from the 10.4 tree, or will we just live with a certain (hopefully low) level of breakage?

The FSF has told us that libraries may be incompatible, but has not spelled out the conditions under which the libraries *are* incompatible. So although the general rules are a good starting place, I think we can deviate from them when experiments prove that it is OK to do so.

  -- Dave



-------------------------------------------------------
SF.Net email is Sponsored by the Better Software Conference & EXPO
September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices
Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA
Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf
_______________________________________________
Fink-devel mailing list
Fink-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/fink-devel

Reply via email to