On Wed, Nov 4, 2009 at 1:45 PM, Ryan Leavengood <leavengood@xxxxxxxxx> wrote: > On Wed, Nov 4, 2009 at 4:38 PM, <HubertMH@xxxxxxxxxx> wrote: >> >> Unfortunately official Alpha 1 was released as gcc2hybrid. All ok, but what >> we have today? We're getting a lot of ports that uses additionally sdl gcc4 >> ports. This forces us to use both libs in haiku, and generates a really big >> mess in haikuOS builds [ some programs works / some not ]. > > Any hybrid build should smoothly support both gcc2 and gcc4 compiled > programs, and that is why they are called hybrids. If it does not, > then that is probably a bug. Of course you mention SDL libraries, and > that makes me wonder if maybe you and others are not installing > libraries in the correct places based on the compiler used. Those sort > of problems should go away in the future with proper package > management and installation support. Yes, package management may be the only viable solution given the current situation. Without examples, it's hard to imagine exactly what Hubert is complaining about.. but I can see a scenario that could be confusing and annoying for developers and users alike: Perhaps a C++ shared lib is ported, compiled with gcc2, and placed on HaikuPorts for users (and developers) to download. It's important to note that all libs currently available for download on HaikuPorts pretty much unzip to /boot/common/lib. This immediately makes an assumption about the target - if you use a gcc2hybrid, any c++ libs compiled with gcc4 should reside in a gcc4/ subdir under lib if you want the runtime_loader (and gcc4 compiler) to find them, if you use a gcc4hybrid, c++ libs the opposite is true, except the gcc2 c++ libs should reside in a lib/gcc2/ subdirectory instead. I highly doubt any of the .zips obtained from HaikuPorts care about this yet. Furthermore, using the same above scenario, if a developer needs a shared c++ lib from HaikuPorts to port an application requiring gcc4 while the library itself hasn't been made available in a gcc4 version yet, the developer must compile it themselves, and publish this library somewhere (or include it with their package). Things could get ugly quick I suspect without a proper package manager. To make it more complicated, I read accounts of people installing mix-and-match libs that they find on bebits, etc. many of which are compiled for BeOS R5 and probably unzip to /boot/home/config rather than /boot/common - I could see this causing all sorts of conflicts while trying to get programs running - for example, using a BeOS R5 LibPak would probably be a disaster since it duplicates many of the newer libraries already compiled natively and available for Haiku. How can we alleviate this madness now without a package manager? Perhaps we need some sort of temporary library manager app that can spit out all the shared libs, what they were compiled for/with and their versions that are found on a Haiku machine? Would something like that be possible?