[haiku-development] Re: Fwd: [Haiku] #7203: gcc4 seems to have an issue locating libraries

  • From: Oliver Tappe <zooey@xxxxxxxxxxxxxxx>
  • To: haiku-development@xxxxxxxxxxxxx
  • Date: Sat, 05 Mar 2011 21:31:01 +0100

On 2011-03-05 at 18:46:31 [+0100], Ingo Weinhold <ingo_weinhold@xxxxxx> 
wrote:
> 
> On 2011-03-05 at 18:22:20 [+0100], Matt Madia <mattmadia@xxxxxxxxx> wrote:
> > How does this affect running hybrids?
> > 
> > For instance, let's look at a gcc4 built Web+ and it's dependences
> > (Curl LibXML2 SQLite OpenSSL), which are also built under gcc4.
> > 
> > When building a GCC 2 Hybrid, the build system will give preference to
> > packages built for the host/main/primary gcc -- creating an image with
> > (gcc4) Web+ and (gcc2) Curl LibXML2 SQLite OpenSSL.
> 
> At least theoretically both gccs should search the paths corresponding to
> the currently set gcc. I wouldn't rule out that something goes wrong,
> though. Have you tested it?
> 
> > So ... could this scenario lead to unexpected problems for the end user?
> 
> Obviously when linking against static libraries the code for the wrong gcc
> will be linked in, which alone is a reason, which where pure C code is
> concerned probably doesn't matter much. I don't know whether there are any
> consequences with respect to shared libraries. I'd rather avoid the
> situation.

I know this doesn't help with the current hybrid problems, but ...

... with package management in place, there will no longer be any hybrid 
setups, so it probably isn't wise to invest much energy into the hybrids 
now.

From the POV of package management, every system will just have a single 
architecture (x86, x86_gcc2 and hopefully at some point x86_64). 
Support for "foreign" architectures will be implemented as specially named 
packages of the current architecture that provide the required files. 
For instance in a gcc4 Haiku, all packages will carry the 'x86' 
architecture, even a package like 'x86_gcc2-systemlibs' (which contains the 
system libraries that have been built with gcc2).

As a result of this approach, all packages need to be built for all target 
architectures, no mixing of packages into another architecture will be 
possible. It's simply too difficult to tell whether or not any package will 
work on a different architecture, too. 

cheers,
        Oliver

Other related posts: