[haiku-development] Building libroot.so within Haiku

  • From: Rick Hansen <in_rapture@xxxxxxxxx>
  • To: haiku-development@xxxxxxxxxxxxx
  • Date: Mon, 16 Feb 2009 23:47:11 -0800 (PST)

Trying to get my feet wet in Haiku, I wanted to get
gcc to build a test app within Haiku (just a simple C
hello world app). After getting Haiku on a big enough
partition I downloaded all of the development tools
(gcc, etc) and did a checkout of the Haiku code.

My first compile attempt of this little test app gave
me missing header errors (only 1 really, stdio.h) so I
rummaged around in the Haiku code base and copied the
header files over to /boot/develop/headers.

After that a second compile attempt the linker
complained of a missing crti.o file. Again, in the
Haiku code I found it down in a .../glue/... directory
and built it copying 4 or so .o files to
/boot/common/lib.

Now another test app compile attempt has the linker
yelling about -lroot. Heading to the Haiku tree again
I find haiku/src/build/libroot, and attempt to compile
it. Here is where I am having an issue. The
libroot/errors.cpp file spits out a whole bunch of
undeclared references:

...
/boot/home/development/haiku/src/build/libroot/errors.cpp:104:
`EIO' undeclared (first use this function)
/boot/home/development/haiku/src/build/libroot/errors.cpp:105:
`EBUSY' undeclared (first use this function)
/boot/home/development/haiku/src/build/libroot/errors.cpp:106:
`EFAULT' undeclared (first use this function)
...

Grepping for these the only consistent file that has
them defined is headers/build/os/support/Errors.h
which is being included via BeOSBuildCompatibility.h,
but the definitions are being suppressed because of
the #define BUILDING_HAIKU_ERROR_MAPPER 1 line in
errors.cpp.

So, I commented out the #define
BUILDING_HAIKU_ERROR_MAPPER 1 line just to see if I
could get this library to build and am now getting:

...
Ranlib
../../../generated/objects/haiku_host/x86/release/build/libroot/libroot_build.a

Link
../../../generated/objects/haiku_host/lib/libroot_build.so

/boot/develop/tools/gnupro/i586-pc-haiku/bin/ld:
cannot find -lroot
collect2: ld returned 1 exit status

rm -f
"../../../generated/objects/haiku_host/lib/libroot_build.so"
...

which really looks like I need libroot.so to build
libroot.so.

So, now that the history is out of the way I have a
couple of questions. Is there a better way (a script
or something) to get the header files in the
/boot/develop directory so everything gets placed
where it "should"? And, is there a way to build
libroot.so within Haiku, without already having it on
the system?

Thanks,
Rick Hansen



      

Other related posts: