issue on some Linux distros by now, here's a work-around.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21056 a95241bf-73f2-0310-859d-f6bbb57e9c96
make both gcc 2.95.3 and the plethora of gcc 4s happy: Typedefed
struct fssh_stat to fssh_struct_stat, thus hopefully avoiding spurious
errors concerning clashes with the function or regarding namespacing.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21055 a95241bf-73f2-0310-859d-f6bbb57e9c96
bfs_shell build on FreeBSD. ioctl() is defined in a non-standard header.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21032 a95241bf-73f2-0310-859d-f6bbb57e9c96
collide with the functions defined in libroot_build.so.
* On BeOS incompatible platforms fssh_open() and fssh_close() use the
libroot_build.so _kern_open() and _kern_close() respectively, so that the
attribute support works also when using the generic attribute
emulation.
* Use fssh_open()/fssh_close() instead of open()/close() for the cp
command, so that we get attribute support on BeOS incompatible
platforms when the generic attribute emulation is used.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20980 a95241bf-73f2-0310-859d-f6bbb57e9c96
the maximal number of (emulated) semphores on Linux before.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20973 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Added "sync" command.
* The input_loop() notifies the external command client also, if parsing
the command line failed or the command didn't exist. It doesn't no longer
try do so, when in interactive mode.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20936 a95241bf-73f2-0310-859d-f6bbb57e9c96
* On BeOS compatible host platforms we must not include
BeOSBuildCompatibility.h, but HaikuBuildCompatibility.h.
* Fixed errno usage in command_cp.cpp.
* Fixed fssh_ioctl().
* fssh_set_sem_owner() doesn't invoke BeOS's set_sem_owner() anymore or
otherwise the FS's semaphores are assigned to the kernel.
* Commented out <string.h> functions that don't exist under BeOS (and aren't
used anyway).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20934 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Added non-interactive (external commands) support. The BeOS
implementation needs some more work; well, the whole FS shell will
probably have build issues on BeOS ATM.
* Added reasonably complete argument processing in main(). Options are
similar to the old FS shell.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20894 a95241bf-73f2-0310-859d-f6bbb57e9c96
cache, so we don't run into a "vnode ... is not becoming unbusy"
problem.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20879 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Added command management, an interactive input loop, and a few basic
commands.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20876 a95241bf-73f2-0310-859d-f6bbb57e9c96
- Moved all inclusions of system headers into a new
system_dependencies.h header, which conditionally either includes
these or the FS shell headers.
- Fixed compiler warnings related to printf-like functions (int32 is
int, not long on non-BeOS platforms).
* Build a new bfs_shell. Compiles and links, but does nothing ATM.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20860 a95241bf-73f2-0310-859d-f6bbb57e9c96
Doesn't do anything ATM, but already provides the required system
interface (VFS, caches, POSIX functions).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20859 a95241bf-73f2-0310-859d-f6bbb57e9c96
section of an ELF object. Probably won't build under BeOS yet.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20080 a95241bf-73f2-0310-859d-f6bbb57e9c96
Tested with VMware Player 1.0.3 on linux and works.
Can also be used to create a haiku.vmdk file from an existing haiku.image file:
rm haiku.vmdk
generated/objects/linux/x86/release/tools/vmdkheader/vmdkheader -h 64k -i100M haiku.vmdk
cat generated/haiku.image >>haiku.vmdk
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19980 a95241bf-73f2-0310-859d-f6bbb57e9c96
It's hopefully now used everywhere instead of B_RAW_TYPE where appropriate.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19219 a95241bf-73f2-0310-859d-f6bbb57e9c96
platforms. Instead, it uses the (extended) Linux compatibility layer classes, so that
it supports setting vector icons as well.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19203 a95241bf-73f2-0310-859d-f6bbb57e9c96
style fixes
HeaderSampler.pl now outputs the good methodsynopsis content to copy/paste
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18853 a95241bf-73f2-0310-859d-f6bbb57e9c96
It includes a change to xsltproc to accept catalog paths on the command line.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18763 a95241bf-73f2-0310-859d-f6bbb57e9c96
However, an eventual existing system version info is dropped - support for this
(also on the compilation side) should be implemented as well some day.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17824 a95241bf-73f2-0310-859d-f6bbb57e9c96
stupid bug that will generally remove the last byte of any attribute.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17771 a95241bf-73f2-0310-859d-f6bbb57e9c96
* "rc" now accepts stdin as input file when "-" is used as a file name.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16225 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Added --dry-run option for paranoid ones like me.
* Added support for making partition devices bootable under Linux (x86, BIOS).
When specifying respective values for HAIKU_IMAGE_{DIR,NAME} ("/dev" and
e.g. "sda7") a "jam haiku-image" will now replace the contents of your
favorite partition with a fresh Haiku installation. BE WARNED: This is nothing
for the faint of heart and I don't guarantee that my implementation is bug-free
and won't mangle the contents of your hard disk even if you use it correctly.
That being said, note that you'll probably have to run the "jam haiku-image"
as root, if you want to access the partition devices, which is a bit annoying.
Furthermore, if the build_haiku_image script fails for any reason, jam tends
to remove the image file, which in this case would be a partition device node.
The mknod command will be your friend in this case.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16148 a95241bf-73f2-0310-859d-f6bbb57e9c96
when receiving a HELLO request. Thus it doesn't need to be restarted
when the image had been rebuilt. That was a bit annoying...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15735 a95241bf-73f2-0310-859d-f6bbb57e9c96
to make the build system happy for now. We'll see later what we
have to do.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15400 a95241bf-73f2-0310-859d-f6bbb57e9c96
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
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
a few whether they actually work.
New pseudo target "unittests", which builds all unit tests for the currently
set TARGET_PLATFORM. They are placed in generated/tests/<platform>/unittests.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14791 a95241bf-73f2-0310-859d-f6bbb57e9c96
If someone (Ingo) has a better solution, please yell :-)
The error output was strange:
C++ generated/objects/r5/x86/release/tools/rc/parser.o
In file included from /boot/home/develop/haiku/haiku/src/tools/rc/parser.y:26:
/boot/develop/headers/be/app/Message.h:38: parse error before `>'
/boot/develop/headers/be/app/Message.h:39: parse error before `>'
/boot/develop/headers/be/app/Message.h:54: template with C linkage
/boot/develop/headers/be/app/Message.h:54: confused by earlier errors, bailing out
gcc -c "generated/objects/haiku/x86/common/tools/rc/parser.cpp" -O2 -Wall -Wmissing-prototypes -Wno-ctor-dtor-privacy -Woverloaded-virtual -Wpointer-arith -Wcast-align -Wsign-compare -Wno-multichar -Wno-sign-compare -Wno-unused -include src/tools/rc/R5Compatibility.h -D_ZETA_USING_DEPRECATED_API_=1 -DARCH_x86 -D_NO_INLINE_ASM -DCOMPILE_FOR_R5 -Isrc/tools/rc -Igenerated/objects/common/tools/rc -Igenerated/objects/r5/x86/common/tools/rc -Igenerated/objects/haiku/x86/common/tools/rc -I- -o "generated/objects/r5/x86/release/tools/rc/parser.o" ;
...failed C++ generated/objects/r5/x86/release/tools/rc/parser.o ...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14581 a95241bf-73f2-0310-859d-f6bbb57e9c96
the fs_shell (some months ago, but no one noticed yet)...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13857 a95241bf-73f2-0310-859d-f6bbb57e9c96
StaticLibraryFromObjects is a copy-paste of LibraryFromObjects without grist on source files
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13199 a95241bf-73f2-0310-859d-f6bbb57e9c96
StaticLibrary now accepts static libraries to include (note that jam should be rebuilt)
LibraryFromObjects doesn't FGristFiles now, but Library does
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13119 a95241bf-73f2-0310-859d-f6bbb57e9c96
Commented out Name and Synopsis, they are useless in our case
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12811 a95241bf-73f2-0310-859d-f6bbb57e9c96
Since we currently use the same build for the host and for the target,
this is only a temporary fix - we should build it twice.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12783 a95241bf-73f2-0310-859d-f6bbb57e9c96
C++ style guide).
Prepared switching of open-brace-style via command line arguments.
rc meets our coding style guide.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12781 a95241bf-73f2-0310-859d-f6bbb57e9c96
given - it now uses the name of the first input file as a basis and exchanges
the extension (if any).
Fixed some potential buffer overflow bugs.
More style guide cleanups.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12777 a95241bf-73f2-0310-859d-f6bbb57e9c96
Also fixed a small bug: instead of the directory of the source file, the current
directory was added as include directory which caused problems with our build
system (libtracker.so).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12775 a95241bf-73f2-0310-859d-f6bbb57e9c96
I didn't manage to define this in the Jamfile (anyone, feel free to fix this)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12393 a95241bf-73f2-0310-859d-f6bbb57e9c96
added rules to produce xml from man pages
still to be sharpened :
xml files could only be objects but they are located in distro ATM
users don't read xml AFAIK, so final documentation is to be reworked
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12392 a95241bf-73f2-0310-859d-f6bbb57e9c96
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
- 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
(Daniel Furrer).
* The strace interface for the generated file changed.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11495 a95241bf-73f2-0310-859d-f6bbb57e9c96
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
experienced this problem, but others have). Original changes by Axel,
though edited quite a bit by myself.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10337 a95241bf-73f2-0310-859d-f6bbb57e9c96
To use this feature run StatCacheServer somewhere in the background.
The first run of jam will be slower, but subsequent ones will usually
benefit. Only little, if the BeOS FS cache is able to hold the data,
but as soon as the number of files and directories jam has to inspect
hits the limit at which the cache drops data needed for the next run,
the performance difference will be very noticeable.
E.g. the time for a "jam -n > /dev/null" in the root of a partially built
tree on my machine dropped from >1 min without the server to 13 secs
with it (not in the first run, of course).
Although tested quite a bit, I would still consider the feature
experimental.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9671 a95241bf-73f2-0310-859d-f6bbb57e9c96
A bug in the function reading the cache file caused everything after a
file beginning with an empty or comment line to be ignored. Since our
Jamrules begins with a comment and only after reading Jamrules the cache
starts to work anyway, it indeed had no effect at all.
Added some error output in case reading the cache file failed, so that
this can't happen unnoticed again.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9659 a95241bf-73f2-0310-859d-f6bbb57e9c96
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