[haiku-development] [PATCH] libroot improvements

  • From: Artur Wyszynski <aljen-mlists@xxxxxxx>
  • To: haiku-development@xxxxxxxxxxxxx
  • Date: Fri, 27 Feb 2009 04:02:49 +0100

Hey,
while i was trying to port Chrome to Haiku, i came across a problem with broken/missing wide chars support (Chrome is using them everywhere), looking at current libroot status i noticed a mix composed by different versions of glibc with some features enabled/disabled and some ports of bsd code there. Then i removed completly glibc and friends mixes from libroot and started porting libc and Sun math library from FreeBSD. Now it's working as expected, with full posix support (even c99), wide chars enabled, support for locales, etc. Don't worry, it won't break binary compatibility, because it's ported & enabled only for gcc4 build, gcc2 is still using old
libroot+glibc&friends.

Current status:
* old libroot is moved from src/system/libroot to src/system/libroot/compatibility and gcc2 builds it from there
* new libroot is now in src/system/libroot
* headers/posix is moved to headers/compatibility/beos/posix and they are used in buildtools scripts to instruct gcc2 where headers are and in build/jam/HeadersRules where they are when building Haiku
* new posix headers are in headers/posix

Tested configurations (currently i only tested x86 arch, others are propably broken for gcc4 with this patch): * plain gcc2 build, you can still do it by ./configure --build-cross-tools ../buildtools; jam haiku-image and it will build
old glibc based libroot and nothing is changed here, no binary comp break
* gcc4 build, nothing changed in here, except that current binaries built for gcc4 won't work, they need to be rebuilt * gcc4 build with gcc2 alternative libraries, worked as expected, system is gcc4 with new libroot/libc, and you can still use beos applications, no binary break for gcc2
* gcc2 build with gcc4 alternative, same as above, but vice versa :)

Things noticed by me (and not only, thx for testing guys :P):
* system is noticable faster compared to other builds, i mean gui and boot; for virtual box on my machine (dont know how others and i didn't tested this on real hardware yet) boot time was decrased from 24-26 seconds to 14 (don't know the reason)
* gui is more responsible, i think it's because new sun math library

Things that yet to be fixed:
* on gcc4 build, letter 'q' appears randomly on screen, no mather is it terminal or you're editing filename in tracker (don't know the reason
for that yet)
* headers/os/support/Errors.h: posix error codes are messed and i need
to revert them to old ones + add new from libc

Patch for trunk:
http://hitomi.pl/haiku/patches/libc_final.patch (12MB)
or 7ziped
http://hitomi.pl/haiku/patches/libc_final.patch.7z (1.4MB)

Patch for buildtools:
http://hitomi.pl/haiku/patches/libc_buildtools.patch

I think that's all for now, i'm waiting for your comments :)

regards, aljen


Other related posts: