Commit Graph

16 Commits

Author SHA1 Message Date
Ingo Weinhold
2ae568931f Reworked the way how the gensyscalls stuff finds out about
the sizes and alignments of syscall parameters. It no longer
generates and compiles functions with the same signature as the
syscalls. This simply doesn't generally work for cross-compilation.
Instead we provide a bit of architecture-specific code that knows
how things work for the target architecture.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15196 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-28 12:53:55 +00:00
Ingo Weinhold
3843df8eba Don't use host include options with the target compiler.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15027 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-18 23:23:04 +00:00
Ingo Weinhold
758b1d0e05 Fixes that make Haiku build with gcc 4. Mainly out of the following
categories:
* Missing includes (like <stdlib.h> and <string.h>).
* Linking against $(TARGET_LIBSTDC++) instead of libstdc++.r4.so.
* Local variables shadowing parameters.
* Default parameters in function definitions (as opposed to function
  declarations).
* All C++ stuff (nothrow, map, set, vector, min, max,...) must be imported
  explicitly from the std:: namespace now.
* "new (sometype)[...]" must read "new sometype[...]", even if sometype is
  something like "const char *".
* __FUNCTION__ is no longer a string literal (but a string expression), i.e.
  'printf(__FUNCTION__ ": ...\n")' is invalid code.
* A type cast results in a non-lvalue. E.g. "(char *)buffer += bytes"
  is an invalid expression.
* "friend class SomeClass" only works when SomeClass is known before.
  Otherwise the an inner class with that name is considered as friend.
  gcc 4 is much pickier about scopes.
* gcc 4 is generally stricter with respect to type conversions in C.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14878 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-12 23:27:14 +00:00
Ingo Weinhold
338b8dc301 Merged changes from branch build_system_redesign at revision 14573.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14574 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-10-29 16:27:43 +00:00
Andrew Bachmann
6b0cd2601e update to use OBOS_TARGET
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14003 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-08-20 21:06:07 +00:00
Axel Dörfler
900849fa0d Since objects/.../system/kernel is now a directory, the kernel target is now
called kernel_${arch} like on disk. A "jam kernel" will still work, though.
Also updated all those Jamfiles I forgot to update before.
Since makehdimage now runs through (and even builds a working image), I guess
most of the consequences of the "kernel/core" -> "system/kernel" rename task
are solved.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12364 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-13 14:49:55 +00:00
Axel Dörfler
61ad5bc2e7 Fixed various problems with the latest stdbool.h changes, including stdbool.h itself:
- SupportDefs.h only includes stdbool.h if included from C
- stdbool.h for C++ now includes a macro for "bool" as defined by that header
- stdbool.h does nothing if __bool_true_false_are_defined is already defined
- stdbool.h no longer defines a _Bool enum, but defines _Bool as unsigned char, as
  previously done by SupportDefs.h (the previous version changed the size).
- The gensyscalls Jamfile now preprocesses its headers in C++ mode so that "bool"
  stays "bool", and doesn't become _Bool.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12042 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-26 18:01:40 +00:00
Axel Dörfler
46c1b0d6db The bin/ directory has been moved out of apps/.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11912 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-19 01:10:29 +00:00
Ingo Weinhold
747fcbd3e0 We generate two more files now: A simple array with the kernel function
pointers and overall parameters size for the kernel and some more
sophisticated code for strace.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11339 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-11 04:53:31 +00:00
Ingo Weinhold
1f90f9aa63 We do now also generate a header file that defines macros for the syscall numbers.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9133 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-09-30 23:28:57 +00:00
Ingo Weinhold
b9f857f16f os/support headers not needed anymore.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8915 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-09-11 14:04:08 +00:00
Ingo Weinhold
d5ea40e2bd Use the build platform libstdc++.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8907 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-09-10 23:13:09 +00:00
Axel Dörfler
be2703cb09 GCC 3 fixes. Doesn't work yet for some reason.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8904 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-09-10 18:29:52 +00:00
Ingo Weinhold
d21749db83 Fixed a problem we had with bool parameters (probably with all types that consume more storage when being passed as function parameters).
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8784 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-09-01 20:17:57 +00:00
Ingo Weinhold
efd87ab8df Had to change the mechanism for automatically generating most of the
boring syscall stuff. It has two phases now: The first one
(gensyscallinfos) parses syscalls.h and generates a source file containing
all the required information. This file is compiled and linked to
gensyscalls, which generates the actual output files.
Added to the build.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8697 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-08-28 20:26:52 +00:00
Ingo Weinhold
2e463a12a9 The beginnings of a small tool to parse syscalls.h and generate the assembly file performing the calls and the respective part of kernel syscall dispatcher. The parsing part is done.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8618 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-08-22 00:06:00 +00:00