This allows to use the debug features of the guarded heap also on
allocations made through the object cache API. This is obivously
horrible for performance and uses up huge amounts of memory, so the
initial and grow sizes are adjusted accordingly.
Note that this is a rather simple hack, using the object_cache pointer
to transport the allocation size. The alignment is neglected completely.
This is a very simple heap implementation that allocates memory so that
the end of each allocation always coincides with a page end and is
followed by a guard page which is marked non-present. Out of bounds
access (both read and write) therefore cause a crash (unhandled page
fault).
Note that this allocator is neither speed nor space efficient, indeed it
wastes huge amounts of pages and address space so it is quite easy to
hit limits. It is intended as a pure debug feature.
* instead of in /boot/home/config/settings/be, the compatibility
link has to live directly in the config folder, as otherwise
it doesn't help compatibility-wise at all ;-)
Package management will move the directory from common/etc to
common/settings/etc. The kernel side change that sets up the etc symlink
in the rootfs was already commited, everything still installs into the
old dir however. This symlink makes things that depend on /etc work for
now and can be removed once the files aren't populated to the old place
anymore.
* uncomment the building of libroot_build.a again
* add function remapper to HOST_STATIC_LIBROOT
* drop TODO about the function remapper not working with the static
libroot
Ingo: please review - I think this should work, but I'm not so sure
where HOST_STATIC_LIBROOT should be in the list of libraries of its
only user (<build>bfs_fuse): where it is now or right at the end?
As it is now, the resulting binary still contains references to
host-libc-implementations of close() & others, which are triggered by
the other libs (like libfuse.so). If I put HOST_STATIC_LIBROOT right at
the end, those references are gone, though. But which is correct?
This makes opening symlinks work universally in the build system tools.
Two mechanisms have been implemented, both of which don't always work.
The first is remapping via preprocessor macros. This fails where equally
named methods are used (e.g. STL fstream::open()). The other is using
hidden functions in the new libroot_build_function_remapper.a that is
linked into everything that is linked against libroot_build.so. This one
fails for functions that are defined inline in headers (Linux/glibc does
that). Together they seem to cover our build system needs ATM.
Bring the changes that aren't package management related and the ones
that are but don't take effect as long as they are ignored by the build
system into the master.
Summary of changes:
* Introduce private header <directories.h> with constants for a good
deal of paths that should usually be retrieved via find_directory().
* Replace hard-coded paths by using find_directory() or the
<directories.h> constants (e.g. in drivers and the kernel).
* Add find_directory() constants needed for package management.
* Add __HAIKU_ABI_NAME and B_HAIKU_ABI_NAME macros.
* src/apps/deskbar: BeMenu.* -> DeskbarMenu.*,
DeskBarUtils.* -> DeskbarUtils.*
* Change deskbar menu settings directory from ~/config/be to
~/config/settings/deskbar.
* Other smaller cleanups, changes, and fixes.
* Apparently caused by the fact that we no longer run fixincludes,
math.h is not being generated anymore. I haven't removed the rm
from the script in order to be compatible with older compilers.
As PulkoMandy pointed out on IRC, darwin10 and 11 (10.6 and 10.7) are at least partially 64bit, so
the test only applies there. When darwin12 comes out it'll have to be fixed.
* Resolve TODO: HOST_GCC_BASE_FLAGS should not be included in
HOST_LDFLAGS. Enable adding "-fno-strict-aliasing -fno-tree-vrp"
accordingly.
* Fix handling of HOST_PLATFORM_IS_64_BIT and HAIKU_HOST_USE_32BIT: The
former does now state whether the platform is effectively treated as
64 bit platform, i.e. it actually is 64 bit and the 32 bit mode is
not enforced. HAIKU_HOST_USE_32BIT is now only set when the platform
is actually 64 bit, but 32 bit mode is enforced.
* Map build variables HOST_CPU and HOST_ARCH to x86_64, if it they are
* x86 and
64 bit and define the __x86_64__ C macro instead of __INTEL__ in that
case.
* <OS.h>: Also handle __x86_64__.
* ensure host isn't darwin as Apple doesn't use binutils
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@43202 a95241bf-73f2-0310-859d-f6bbb57e9c96
* fix build due to changes in DSO Linking the right way
as per bonefish.
* we may need to check host GCC version here... can't find
when this option was introduced
* fixes#8031
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@43191 a95241bf-73f2-0310-859d-f6bbb57e9c96
The flags given to configure are kept and the build just adds its own flags onto these.
Also the kernel flags are also based on the flags given at configure.
I suspect this will be needed for llvm.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@43169 a95241bf-73f2-0310-859d-f6bbb57e9c96
influencing this script.
* If haikuRequiredLegacyGCCVersion has not been specified, assume that
the script was called manually and just use the version string from
the gcc sources.
* Make error output a bit more consistent.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@43163 a95241bf-73f2-0310-859d-f6bbb57e9c96
get caught in the last scan.
* the driver hardware communication works, but the
networking bit isn't done so it's kind of pointless.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@43151 a95241bf-73f2-0310-859d-f6bbb57e9c96
ThinkPad X1 and ThinkPad X100e keyboards. The name of these layout files
correspond to the model that introduced them and should cover every US and
international laptop made by IBM and Lenovo except Japanese (and perhaps some
other Asian locale) versions.
Like the Apple Aluminum keyboard layouts these are neatly tucked away in a
ThinkPad submenu in the Keymap preference app.
Removed the 'IBM Laptop International' keyboard layout file which has been
superseded by 'ThinkPad International'. Closes#8021
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@43094 a95241bf-73f2-0310-859d-f6bbb57e9c96
existing 'Apple Aluminium' keyboard layout to 'Apple Aluminium Extended
International.' The 3 new layout files are US mini and extended version
as well as an international mini version. This completes #7964
International corresponds to keyboard layouts for all locales except the US
and Japan. I have Japanese Apple Aluminum keyboard layout files almost
ready but I first need to determine what the special kana and eisu keys
are mapped to.
The Apple Aluminum keyboard layout files are tucked away in an Apple Aluminum
subdirectory. The Keymap preference app has been modified to turn
subdirectories into submenus of the Layout menu.
HaikuImage has been modified to include each keyboard layout file in the
image individually as recommended by Ingo.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@43093 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Add optional stack trace capturing for slab memory manager tracing.
* Add allocation tracking for the slab allocator (enabled via
SLAB_ALLOCATION_TRACKING). The allocation tracking requires tracing
with stack traces to be enabled for object caches and/or the memory
manager.
- Add class AllocationTrackingInfo that associates an allocation with
its respective tracing entry. The structure is added to the end of
an allocation done by the memory manager. For the object caches
there's a separate array for each slab.
- Add code range markers to the slab code, so that the first caller
into the slab code can be retrieved from the stack traces.
- Add KDL command "allocations_per_caller" that lists all allocations
summarized by caller.
* Move debug definitions from slab_private.h to slab_debug.h.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@43072 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Introduce "paranoid" malloc/free into the slab allocator (initializing
allocated memory to 0xcc and setting freed memory to 0xdeadbeef).
* Allow for optional stack traces for slab object cache tracing.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@43046 a95241bf-73f2-0310-859d-f6bbb57e9c96
* touch all .info files before trying to build the gcc4
buildtools in order to avoid the dependency on makeinfo.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@43012 a95241bf-73f2-0310-859d-f6bbb57e9c96